2008-09-17 22 views
5

Windows'ta CVS'yi (WinCVS ön uç ile) kullanıyorum ve düzeltmeyi kolaylaştırmak için, bir yapı başarısız olduğunda, otomatik oluşturma işlemimizden gelen e-postaya son kontrolün ayrıntılarını eklemek istiyorum. .Son kontrolün ayrıntılarını almak için CVS komut satırı seçeneklerini bilen var mı?

Değiştirilen dosyaları, bunları değiştiren kullanıcıyı ve yorumu bilmem gerekiyor.

Komut satırı seçeneklerini denemeye çalışıyorum, ancak hiçbir zaman doğru sonuçlar elde edemiyorum (iki hafta önce yalnızca bir kontrol noktasından ya da rastgele bir kontrolün ayrıntıları yerine çok fazla sonuç alın)

+0

Bu soruları yayınladığımdan beri SVN'ye yükseltildik, bu da (diğer pek çok yararla birlikte) önemsiz bir sorundur. Yükseltmeyi tavsiye ederim! –

cevap

1

Wow.

Bunun ne kadar zor olduğunu unutmuştum. Daha önce yaptığım şey iki aşamalı bir süreçti. önceki 7 gün içinde tüm checkins hakkında bilgi toplamak için ve gönderildiği e-postanın bir kısmını oluşturmak için kullanılacak bir komut dosyası oluşturmak için

cvs history -c -a -D "7 days ago" | 
    gawk '{ print "$1 == \"" $6 "\" && $2 == \"" $8 "/" $7 "\" { print \"" $2 " " $3 " " $6 " " $5 " " $8 "/" $7 "\"; next }" }' > /tmp/$$.awk 

çalışan Öncelikle

.

Daha sonra daha fazla bilgi almak için bozuk dosya (lar) içeren dizinde CVS/Entries dosyasını tırtıldım.

Bu iki kişiyi bir araya getirmek suçluyu işaretlememe ve yapıyı kırdıklarını belirten bir e-posta göndermemi sağladı.

Bu cevabın umduğum kadar eksiksiz olmadığını üzgünüm.

+1

İsteğe bağlı 'geçmişin' olduğunu varsayarsak, aksi halde "cvs [sunucu iptal edildi]: Bu depoda Geçmiş günlüğü etkin değil" –

1

CVS bu özelliği sağlamıyor. Ancak, FishEye için bir lisans satın alarak veya CVSTrac'u kullanarak edinebilirsiniz (not: CVS Trac'i denemedim). Veya bu yeteneği atomik işlemler aracılığıyla sağlayan SVN'ye geçiş yapabilirsiniz. Bir grup dosyada kontrol edebilir ve tek bir taahhüt olarak sayabilirsiniz. CVS'de, her dosya ne yaparsanız yapın, ayrı bir işlemdir.

2

CVS, diğer sürüm kontrol sistemleri gibi değişiklik kümelerini gruplandırmaz; Her dosyanın kendi bağımsız sürüm numarası ve geçmişi vardır. Bu, CVS'nin insanları daha yeni bir VC'ye taşımasını isteyen eksikliklerden biridir.

Bu, hedefinize ulaşabileceğiniz yolların olduğunu söyledi. En kolayı, e-posta göndermek veya bir dosyaya giriş yapmak için post-commit bir kanca eklemek olabilir. Daha sonra, en azından, bir dizi gönderiyi, e-postaların gönderildiği zamana bakarak ve değişikliği kimin yaptığını birlikte gruplayabilirsiniz.

0

"Cvs history -a -l" sizi yakınlaştıracak mı? Proje başına tüm kullanıcılar için son etkinliği gösterir ...

+0

Denediğim şey bu, ama ~ 40 sonuç verdi! –

1

Bunu, changelog'u döken bir perl betiği aracılığıyla gerçekleştirdik ve ikinci bağlantıda Windows için perl'in ücretsiz bir sürümünü edinebilirsiniz.

Cvs2Cl script

Active Perl

0

CVSNT günlükte etiketi yerine kullanabileceğiniz commit IDs, ödeme destekler veya komutları güncelleyin. İşlenen her dosya kümesi (CVSNT'de atomiktir) kendi benzersiz kimliğini alır. Sadece en son kontrol edilen dosyanın dosya bilgisini önce cvs günlüğü ile belirleyiniz (çıktıyı -d "1 saat önce" veya benzeri) ile kısıtlayabilir ve daha sonra başka hangi dosyaların bu kimliğe sahip olduğunu sorgulayabilirsiniz.

0

Eclipse, yerleşik olarak değiştirilmiş olan yerleşik kümelere sahiptir. Son değişikliklere (en azından gelen değişikliklerin aka güncellemelerine) göz atabilirsiniz. Bunu, taahhütleri yazar, taahhüt mesajı ve benzeri zaman damgalarıyla gruplayarak yapar.

Ayrıca, "Dallar, Etiketler ve Tarihler" i seçebileceğiniz "Başka Bir Dalla veya Sürümle Karşılaştır" için de çalışır. "Ayarları Değiştir" i içeren bir açılır menü için Senkronizasyon Görünümü Simgelerini gözden geçirin ve kendiniz görün.

Düzenleme: Bu, en azından bir görüntüleyici olarak Eclipse olarak değiştirilmesini gerektirir, ancak karşılaştırmak ve gruplandırmak istediğiniz frekansa bağlı olarak çok kötü olmayabilir. Daha fazla kullanmak istemiyorsanız - sadece CVS için Eclipse kullanın. Hatta tüm eklentileri ile rcp aracılığıyla iyi bir boyutlu grafik cvs istemcisi elde etmek mümkün olmalıdır, ancak bu kesinlikle kapsam dışı olurdu ...

0

Bu bir sorun değil mi? Hem CVS hem de e-posta bildirimlerini destekleyen CI Matrix'daki bazı araçların sizin için bunu yapabileceğini düşünürdüm.

İlgili konular