2011-06-27 17 views

cevap

21

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ı.

+0

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

0

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> 
0

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.

İlgili konular