2012-06-19 16 views
6

CVS ve RCS depolarının bir grup dönüşümünü Subversion'a dönüştürüyorum. Her şimdi ve sonra hasarlı bir v dosyasına giriyorum. Bunları manuel olarak nasıl tamir edeceğimi anladım, ama sıkıcı oluyor ve son projemde çok sayıda hasarlı dosya var, el ile tamir etmekten çok daha fazla.RCS/CVS, v dosyalarını onarmak için bir araç var mı?

RCS dosyalarını ayrıştırıp onarmak için bir araç kullanmak istiyorum. Bu, bazı eski sürümlerin eksik olacağı anlamına gelebilir. Örneğin, 1.1 sürümünün eksik olduğu durumları gördüm, bu nedenle eksik olduğunu belirten bir yorum ile boş bir düzeltme eklenmesi hile yapar.

Böyle bir araç bulmaya çalışan birçok arama yaptım, ancak hiçbir şey ortaya koymadım. Kendi aracımı yazmaya başlamak üzereydim, ama önce burada sormayı denemeliyim diye düşündüm.

Ben sadece kod anlık görüntülerini almak ve bu alabiliriz biliyorum ve (sadece :) bu önerileri devre dışı baş şahsen yapmak

+0

ve bunu nasıl tamir edilir: null bir demet bir revizyon sonra bu Örneğin olduğunu olmalı nulls bir demet var ise ? –

+0

Çok çeşitli hasar var. Şu anda karşı karşıya olduğum en kötüsü, v dosyalarının bölümlerinin null ile değiştirilmiş olmasıdır (bir diskin dolu olduğunu tahmin ediyorum veya uzak geçmişte bir noktada bir disk hatası vardı). Tek yapabildiğim bozuk düzeltmeleri (her zaman çok eski sürümleri olan), bozuk olduklarını gösteren boş düzeltmelerle değiştirmektir. Şimdi sahip olduklarından daha kötü değil. – trent

cevap

2

++ sayesinde zorunda olsam bunu çare olacak Süreç çok zaman alıcı olduğundan ve sonuçta ortaya çıkan repoda tam bir veri/meta veri seti ile çıkmanın bir yolu olmadığından manuel geçişi önermeyin.

SVN CVS göç için bir araç vardır ve cvs2svn denir. Bu "CVS deposu Subversion, git veya Bazaar'a geçmek için bir araçtır". Hızlı başlangıç ​​önerisi için this how-to'a bakabilirsiniz.

Kontrol this üzerinden:

CVS RCS'ye sadece ön uç oldu ve * .v dosyaları gerçekten RCS dosyalarıdır. Sadece onları kontrol et. örneğin sen foo varsa, v sadece yürütün:

co foo 

ve o v dosyasından foo ödeme olacaktır.

Ayrıca bir RCS to SVN converter var ve bunu da deneyebilirsiniz.

+0

Evet, cvs2svn kullanıyorum. Dönüşüm sorun değil, sorun bozuk, v dosyaları üzerinde boğulmasıdır. Onları manuel olarak tamir etmek sıkıcı ve biraz hataya eğilimli bir süreçtir ve bir şekilde otomatik hale getirilmiş gibi görünmektedir. – trent

+0

Cevabımı güncelledim, bunu deneyin. :) –

+0

RCS, bu dosyalarda da bomba komutları veriyor. Bunlardan birkaçı zarar görecek şekilde hasar görmüş, ancak hasarın bulunduğu yerde revizyonları kontrol etmeye çalıştığımda kalan kısım başarısız oluyor. Rlog çalıştıran tüm v dosyalarını çalıştırabilmek için bir betik yazdım ve ardından her bir revizyonda işbirliği yaptım. – trent

0

RCS dosyalarını değiştirilebilen ve daha sonra yeni bir RCS dosyası olarak yazılan bir ağacın içine bölen bir Python kitaplığı,yazdım. Geçersiz RCS dosyaları ile başa çıkmak için tasarlanmamıştır, ancak yolsuzluk yalnızca veri bölümlerinde ise veya herhangi bir bozuk meta veriye çalışmak için kütüphaneyi değiştirirseniz makul bir başlangıç ​​noktası olabilir. belirli soruya alakalı Ayrıca

:

  1. RCS dosyaları store gövde geriye gidiş gövde ve fark dosyaları en son revizyonu. Bu yüzden eğer tarihi bir revizyon için fark geri dönüşü olmayan bir şekilde bozulmuşsa, o zaman değişiklikten ne çıkabileceğini veya çatışmaya girmediğini tahmin edemezseniz, ondan önce herhangi bir şey kullanılamaz veya en azından yanlış olabilir. (Dallar sorunlu olabilir yolsuzluk açısından, onların dallanma noktasının gelen ileri fark şekilde bütün dalları saklanır.)

  2. O, revizyon Numaralandırmadaki bir boşluk olması geçerli olabilen bir revizyon sahiptir

    eğer "rcs -o" kullanarak RCS dosyasından removed olmuştur.

    # Setup 
    echo 1 > test 
    echo "initial commit" | ci -l test 
    echo 2 >> test 
    echo "2" | ci -l test 
    echo 3 >> test 
    echo "3" | ci -l test 
    
    # RCS file contains revisions 1.1, 1.2, 1.3 
    rlog test 
    
    # Remove revision 1.2 
    rcs -o1.2 test 
    
    # RCS file now contains revisions 1.1, 1.3 
    rlog test 
    
hasar doğası nedir
İlgili konular