2010-10-26 20 views
13

Başlığın bunu söylediğine inanıyorum. Kaynak kontrol şeylerine yeniyim.Aynı dosyayı düzenleyen iki kişi nasıl işlenir?

Yani, aynı proje üzerinde çalışan iki geliştiricim olduğunu ve aynı dosyayı/dosyaları aynı anda düzenlemeye başladıklarını ve herkesin yeni sürümü biraz farklı bir zamanda gönderdiklerini söyleyebilirim. Son değişiklikleri gönderen kişiden, değişikliklerinin devam ettiği andan itibaren, diğerinin kodu sadece arşivde olacak!

Bu doğru mu?

Lütfen açıklayınız. Teşekkürler.

cevap

29

Hayır, bu doğru değil. Kullanmakta olduğunuz hangi sürüm kontrol yazılımına bağlı olsa da Git'i seviyorum, bundan bahsedeceğim.

class Foo { 
    public void printAWittyMessage() { 
     // TODO: Be witty 
    } 
} 

Alice ve Bob hem dosyayı değiştirin: Varsayalım

bir dosya Foo.java var. Alice yapar:

class Foo { 
    public void printAWittyMessage() { 
     System.out.println("Alice is the coolest"); 
    } 
} 

ve Bob yapar:

class Foo { 
    public void printAWittyMessage() { 
     System.out.println("Alice is teh suk"); 
    } 
} 

Alice ilk ona sürümünü denetler. Bob, kontrol etmeyi denediğinde, Git, bir çakışma olduğunu ve taahhüdün ana depoya itilmesine izin vermeyeceği konusunda uyarır. Bob yerel deposunu güncellemeli ve çatışmayı düzeltmeli. O böyle bir şey çıkacak:

class Foo { 
    public void printAWittyMessage() { 
<<<<< HEAD:<some git nonsense> 
     System.out.println("Alice is the coolest"); 
===== 
     System.out.println("Alice is teh suk"); 
>>>>> blahdeblahdeblah:<some more git nonsense> 
    } 
} 

<<<<<, ===== ve >>>>> belirteçler hatları eş zamanlı değiştirildi hangi göstermektedir. Bob çatışmayı mantıklı bir şekilde çözmeli, işaretleyicileri kaldırmalı ve sonucu vermelidir.

Peki sonunda depoda yaşayan geçerli:

Orijinal versiyonu -> Alice'in sürümü -> Mehmet'in çatışma sabit sürümü.

Özetlemek gerekirse: ilk işlenecek herhangi bir sorun yaşanmadan, ikincisinin depoya girmeden önce çatışmayı çözmesi gerekir. Birinin otomatik olarak değişmesiyle asla değişmemelisin. Açıkçası Bob çatışmayı yanlış çözebilir, ancak sürüm kontrolünün güzelliği yanlış düzeltmeyi geri alabilir ve onarabilir.

+0

Sen güzel söyledin! Alkışlar :-) –

4

Kullandığınız sisteme çok bağlıdır. Bununla birlikte, ortak durumda: değişikliklerini kimin gerçekleştireceği ikinci bir "birleştirme" operasyonu gerçekleştirmek zorunda kalacaktı. Anlamı iki dosyayı karşılaştırmalı ve birleştirilmiş bir sürümle gelmelidir. Ancak (!) Birçok popüler sistem (IDE dahil) bunu yapmanıza yardımcı olacak akıllı araçlarla gelir. karşılaştırıldığında böyle İşte

birkaç araç: http://en.wikipedia.org/wiki/Comparison_of_file_comparison_tools

İlgili konular