SORU
3 Kasım 2009, Salı


Cherry-pick Mercurial tek bir revizyon?

İçinde Cıva/TortoiseHg, verilen aşağıdaki örnek, nedir en kolay yolu birleştirme revizyon "G" içine Bir repo almadan D,E ve F (Varsayalım G yok bağımlılık D,E ve F).

Repo A: A - B - C

Repo B (Clone of A) A - B - C - D - E - F - G

Yama iyi bahistir?

CEVAP
4 Kasım 2009, ÇARŞAMBA


Tonfa haklı. Tarif ettiğiniz şey değil 'birleştirme (ya da 'itme' veya ''); çekiyor 'seçmek'.' Ya da bir çekme itme zaten repo olmayan başka bir repo tüm değişiklik kümeleri taşır. ''İki kere 'kafa' ve ikisinin kombinasyonu olan yeni bir değişiklik için onları birleştirir. birleştirme

Eğer gerçekten ihtiyacınız taşı G üzerinde ama mümkün değil uymak zorunda D,E,F yok etmelisiniz 'hg verme' G repo ve sonra 'hg alma' repo A. Transplant extension etrafında sarıcı ihracat/ithalat ile bazı incelikler için yardım önlemek aynı hareketli değişiklik kümesi üzerinde birden çok kez.

Ancakgenel olarak/ihracat , nakil, ve kiraz toplama kullanarak almak için olumsuzluk gerçekten sağı solu belli olmayan bir değişiklik çünkü onun ataları olmadan G üzerinde hareket edemezsinadıonun 'hashid ebeveyninin hashids içerir. Farklı ebeveynler (G yeni üst C ve F değil) farklı bir hashid demek, adı artık G -- G işi ama yeni bir değişiklik değil.

Yeni bir şey olarak G Tamam, hadi G' (Gee Başbakan), diğerleri için bazı kullanımlar için, ama büyük bir pide. büyütülecek bir şey değil Ara Yakında B yeni bir değişiklik, H ve üst G G', farklı sağlamalarının. başlıkların değişecektir üzerine taşımak istiyorum repo Bu H üzerinde H' -- 100 satır aşağı değişiklik kümeleri ve D,E,repo A. F olan duramazdın çünkü her şey için farklı hashids . olarak hareket anlamına gelir

İşler daha da içine Repo Repo B (önceki hareket ters yönde) şeyler taşımak istediğinizde ise ayarsız alacak. Eğer seni denemek için bunu basit bir 'hg bas' A noktasından B alacaksın G' (H' ve sonraki soyundan) olacak birden fazla değişiklik zaten Repo B

O zaman, ne seçenekleri nelerdir?

  1. Umurumda değil.Veri hala orada, sadece farklı isimler ile aynı değişiklik kümeleri ve iki repo arasında gelecekteki değişimleri üzerine daha fazla çalışma ile sonuna kadar. Yanlış değil, sadece biraz hantal olabilir, ve bazı insanlar umurumda değil.
  2. Repo A üzerinde D,E ve F ile birlikte gitmekEğer zararsızdırlar eğer üzerinde tüm değişiklik kümeleri hareket ve tüm güçlük önleyebilirsiniz. Onlar üzerinde hareket ve bir yapın, böylece zararsız değiller 'hg' etkilerini geri almak için D,E ve F yeni bir değişiklik H. . backout eğer
  3. G ile başlamak için iyi bir soy ver.Beni bu güzergah (editing history) olmadan gitmek için çok geç, çünkü bu söz demek. Sana negerekirdeğişiklik G hg update C oldu çalışmaya başlamadan önce yapmış. Eğer G güveniyor ya da değişiklik gerektirmez ise D,E ve F sonra kendi çocuğu olmamalı.

Bunun yerine C için ilk güncelleme eğer böyle bir grafik var

A - B - C - D - E - F
          \
            G

o zaman, bu sorunun bütün cevabı sadece hg push -r G ../repoA ve G üzerinden temiz bir şekilde, aynı onun hashid tutarak hareket eder, ve D, E ve F ile gitmez.

GÜNCELLEME:

Gibi yorumlar dikkat çekti. Modern Mercurials hg graft komut bunu yapmak için mükemmel bir yoldur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • fufko

    fufko

    27 ŞUBAT 2006
  • Influencer Plus

    Influencer P

    2 Ocak 2013