Bir dosyanın dağılımını, CVS repo'daki en iyi iki düzeltmenin oluşturulmasının bir yolu var mı? Düzeltme sayılarını ve yerel teslim alınmış dosyamı umursamıyorum. İhtiyacım olan tek şey, son taahhütteki ve son işlemden önceki fark.CVS'deki bir dosyanın en iyi iki düzeltmesi arasında fark yaratılıyor
cevap
Sen
cvs diff -r FIRSTREVISION -r SECONDREVISION filename
iki düzeltmeleri karşılaştırmak için kullanabilirsiniz.
Doğrudan ihtiyacınız olan karşılaştırmayı yapmak mümkün olabilir, ancak biz de cvs log filename
sonuçlarını işleyerek otomatikleştirebiliriz. Yani, örneğin,
cvs log filename | grep ^revision | head -n 1 | cut -c 10-
en son revizyon numarası ve (lastdiff denilen demek Birlikte bu birleştirme, böylece bir BASH komut dosyası oluşturmak istediğiniz
cvs log filename | grep ^revision | head -n 2 | tail -n 1 | cut -c 10-
önceki revizyon olsun.
cvs diff -r $(cvs log $1 | grep ^revision | head -n 2 | tail -n 1 | cut -c 10-) -r $(cvs log $1 | grep ^revision | head -n 1 | cut -c 10-) $1
ve sonra örneğin parametre olarak dosya adı ile yürüterek sizin diff almak mümkün olacak: içeriyor sh) ./lastdiff.sh
dosya adı.
Yerel kullanıma sunulan sürüm ile başlığın mevcut sürümü arasındaki farkları öğrenmek için cvs diff
'u kullanabilirsiniz.
cvs diff -r ver1 -r ver2 <FILE-NAME>
Ben eksikti bariz cvs seçenek yoktu umduğu, ancak borrible metne oluyor çözümünü gibi görünüyor. Sebebi ne olursa olsun hala cvs kullanıyorsanız, size yararlı bu arıtmayı bulabilirsiniz: Bu, hem sed kullanır
cvs diff $(cvs log $FILE |
grep "^revision" |
sed "s/^revision/-r/
2q") $FILE
"cvs log" tek çağırma gelen iki son revizyonları kapmak ve r seçenekleri oluşturmak doğrudan bu çıktıdan.
Bu çok kullanışlıdır. Ama bu işi şubeye bağlı kod için yapmanın bir yolu var. Yukarıdaki çözüm ile 1.1 ile 1.2 arasında bir fark elde edebiliyorum ancak 1.1 ile 1.1.2.1 arasında bir fark almak istiyorum. – user1305398