2011-03-07 12 views
7

Sadece subversion'dan civcivlere değiştik ve beklenenden daha fazla zaman alan bir şey var; birleşme kafaları.2 kafasını mercurial ile otomatik olarak birleştirmek için

2 taahhütten bağımsız olarak (subversion'a kıyasla) bağımsız olarak birleşmeyi sürdürdüğümüz gerçeğini seviyoruz, ancak ilişkisiz değişiklikler için 2 başlığın birleştirilmesiyle düzenli olarak sonuçlanıyoruz.

Basit senaryo. Hem ben hem de Bob güncel. İkimiz de varsayılan (ana ana) branşta güncelleştirilmiş ve farklı dosyalarda iyileştirme yaptık.

Yapacağız ve sadece bir tanesi merkezi sunucuya geçebilecek, diğeri ise 2 kafa oluşturacak. Ardından, çekin, 2 kafa seçin, birleştirme yapın (değişiklikler farklı dosyalarda olduğu için kolayca gidecektir). Komuta et, sonra it. o da şudur 1 böylece

nedenle, çakışma Biz otomatik bir sunucuda bu çalıştırmak isteyen

birleştirme İptal başka Teslim Eğer bu adımlar Denemesi birleştirme yapar bir uzantısı vardır Komut satırı ve başka bir +1, çalışma kopyasına dokunmadan birleştirmeyi yapabilir.

Teşekkürler!


Güncelleme:
Biz en yaygın görevleri yönetmek için birkaç piton komut dosyalarını yapıyor sona erdi (& gelişmeleri bizlere birleştirme, 2 kafaları birleştirme).

Yardımın için teşekkürler!

cevap

3

Bunun için hg fetch kullanabilmeniz gerektiği gibi geliyor. Değişiklikleri sunucudan alır, birleştirir ve otomatik olarak birleştirme işlemini gerçekleştirir. Birleştirme ihtilafları için de geçerli. Mercurial ile birlikte gelir, bu yüzden hgrc'nize

'u ekleyin ve hepsi ayarlanmış olmalıdır. Otomatik olarak zorlanmaz, ancak bu genelde kötü bir fikirdir. Genellikle kodunuzu herkese göndermeden önce testleri çalıştırıp herhangi bir birleştirme sorununu çözmek istersiniz.

+1

FWIW Mercurial'in yazarı Matt, getirinin gerçekten kötü bir fikir olduğunu düşünüyor: http://www.selenic.com/pipermail/mercurial/2009-June/026320.html –

+0

@ Ry4an - Muhtemelen, ancak otomatik olarak ebeveynleri değiştirebilirsin hgrc aracılığıyla (http://www.selenic.com/pipermail/mercurial/2009-June/026324.html). Getirme birçok tuş vuruşunu kaydeder ve ekip üyelerinin birbirleriyle yakın olarak çalıştığı basit depolar için çok iyi çalışır. – derekerdmann

+1

--switch-parent ne yapmalı? Matt getirme konusunda tavsiye edilmedi çünkü ana baba hakkında bilmiyordu (muhtemelen yazdı). Buna karşı tavsiye ediyor çünkü genel olarak yanlış bir özellik olduğunu düşünüyor. Yoksayılması/tamamen kaldırılması hakkında konuştu, ama çok geç olduğu konusunda korkuyor.Bu kötü bir fikir. –

3

Birleştirmeler gerçekten bu kadar zaman alıyor mu? "İlişkili olmayan değişiklikler" ise, göz kırpmıyor mu?

Birisi zaten fetch'u önerdi ve başka biri muhtemelen rebase önerecektir, ancak ben şahsen ben kodlama olarak birleştirme düşünün ve el ile olmasını istiyorum. Neredeyse hiç zaman almaz ve "Jane'in işini FooBar çalışmamın yarısına kadar çekerek" (mesajın getirdiği işe yaramaz mesajlar yerine) gibi iyi bir mesaj vermek için bir fırsattır.

+1

Ortak görevlerin çoğunu otomatikleştirmeye çalışıyoruz ve bu komut dosyası çalışırken 2 başlık yaygın olacak. Sistem durdurabilir ve 2 başlığın bir araya gelmesini bekleyebilirdik, ama istemeyiz. – Babouchk

+1

Birleşme **, ** kodlamasıdır ve hiçbir insan müdahalesi olmadan otomatik olarak işlenmemelidir. –

İlgili konular