Yoksa değişiklikler varsa 0 dönmelidir
svn status | grep [AMCDG]
echo $?
deneyebilirsiniz ve 1 Projeniz svn:externals
referans içeriyorsa kabul edilen cevap çalışmaz. Bu durumda, çalışan kopyada yerel değişiklik yoksa bile, svn status -q
hala çıktı üretecektir. Örneğin, benim proje her depo ayrı bir bölümünde muhafaza birkaç kütüphaneleri bağlıdır:
$ svn status -q
X Externals/ETCKit
X Externals/RulesParser
X Externals/XMLRPC
Performing status on external item at 'Externals/ETCKit':
Performing status on external item at 'Externals/XMLRPC':
Performing status on external item at 'Externals/RulesParser':
bu ek çıkışı için hesap için, ben awk
kullanarak sona erdi:
if [[ -n $(svn status -q . | awk '$1 ~ /[!?ABCDGKLMORST]/') ]]; then
echo "The working copy at $(pwd) appears to have local modifications"
fi
Bu komut dosyası svn status -q
çıktısını alır ve yerel bir değişikliği gösteren bir durum koduyla başlamayan satırları filtreler. Son sonuç boş dizeyse, çalışma kopyası temizdir.
Evet, bu fikri aldım ve çok benzer bir şeyle karşılaştım: [code] eğer [-z "$ (svn st)"]; daha sonra echo "çalışma kopyası bozulmamış" başka bir " echo" çalışma kopyası değişiklik içeriyor " exit; fi [/ code] – fishtoprecords
@fishtoprecords, lütfen yanıt olarak gönderin. Kendi sorunuza bir cevap göndermek için sorun yok. – Nowaker
Unutmayın - Eğer dışsallarınız varsa bunun işe yaramayacağını düşünüyorum. Çalışmak için '--ignore-externals 'ekleyebilirsin, ama tabiki bu dışsalları kontrol edemezsin (eğer bunu önemsersen). – histumness