Yamaları çok fazla kullanmama konusunda itiraf etmeliyim, bu doğru iş akışı olmayabilir, ama ne denemek isterdim, eğer bu durumda olsaydım, yamayu esas olarak temel aldığı değişiklik kümesine uygulamak oldu.
+-- you're here
|
v
1---2---3---4---5---6
\
\
X <-- patch was built to change 2 to X
Ben ne yapardım, ben yama aslen dayanıyordu changeset biliyorum sağlanan bu Changeset geri güncellemek olacaktır: Aşağıdaki durum var gibi başka deyişle
, bu sesler Yamayı uygulayın, bu başka bir kafa ekleyecektir, daha sonra bunu deponuzun ucuna birleştirin.
bu eylemlerin ardından, depo gibi görünmelidir:
+-- you're here
|
v
1---2---3---4---5---6---8
\ /
\ /
7-------------/
^
|
+-- this is the changeset you committed after applying the patch
Şimdi, farklı bir yol.
Tek yönlü bir yama mu kullanıyor? Mercurial'i kullanmanın en yaygın yollarından biri de, merkezi deponun tam bir klonunu içeren kendi deponuzu, bir çatalı kurmanızdır, ancak erişiminiz var demektir.
Böylece yeni değişikliklerinizi kendi klonunuza dahil edebilirsiniz.
Klonlamadan sonra merkezi depo yeni eklenen değişikliklere sahipse, bir noktada klonunuza çekip birleştirin.
Memnun kaldığınızda, merkezi depodaki bakım görevlilerine bir çek talepte bulunursunuz, “Hey, sizin için bazı değişikliklerim var, bunları klonumdan çekebilirsiniz: http: // ... ".
Bu yolla, onlar için her türlü zor işi yaptıkları için, bakıcıların her şeyi almaları gerçekten çok kolay.
central: 1--2
clone: 1--2
Sana, işine ekleyin: Bu böyle iki depoları var anlamına gelir
sen it Sonra
central: 1--2--3--4--5--6
clone: 1--2--3
:
central: 1--2
clone: 1--2--3
Bazı changesets eklemek :
Sonra birleştirme: sürdürücüler şimdi senden çekersen
central: 1--2--3--4--5--6
clone: 1--2--4--5--6--7--8
\ /
\ /
3--------/
, onların depoya tam aynı tarih olsun.
Ayrıca, çekme ve birleştirmek zorunda kalmamanız anlamına gelen rebasing için bazı destek de vardır, ancak buradaki değişiklikler "rebase ile çek" komutunu yayınlar, böylece değişiklik setinizi geçerli konumdan yeni bir konuma taşır. onların depoda pozisyon, bu şu şekilde görünecektir: hayır birleştirme çakışma varsa
central: 1--2--3--4--5--6---7
^
clone: 1--2--3 | relocated here
| |
+------------+
Bu yalnızca çalışacak. Çekip birleştirdiğiniz yöntem onlar için en iyisidir, çünkü tüm zor işleri yaptığınızdan, sadece kodun istedikleri şey olduğunu doğrulamak zorundadırlar.
Forking hakkında daha fazla bilgi için, Tekpub'un CodePlex ve Mercurial'daki videosunu izleyin, burada: , forking parçasının başlaması için saat 21:15 civarında arama yapın.
"Çatal" ın temel olarak sadece bir klon olduğuna dikkat edin, CodePlex'te forking'in çalışması, kendi hesabınızda bir klon oluşturmayı otomatik hale getirmesi ve orijinal bekleyicileri çekme isteğini göndermesini otomatik hale getirmesidir. Bitbucket veya CodePlex'te hesabınızı veya herhangi bir şekilde klonunuzu orada yayınlayın ve yalnızca bakıcılara depo URL'nizle birlikte bir e-posta gönderin.
nasıl kafa ile birleştirme, sonra onu işlemekten, uygulayarak, yama için inşa edildi Changeset geri güncellemeyle ilgili? –
@Lasse öneri için teşekkürler. Bunu bir deneme yapıp geri bildireceğim. Bu, bir yanıt olarak göndermeye değer olabilir, bu nedenle kapsamlı yazma için teşekkürler – greatwolf