SORU
17 Temmuz 2012, Salı


Nasıl başka bir şey üzerinde çalışırken kaydedilmemiş değişiklikleri bir sürü kenara koyayım

Kaydedilmemiş değişiklikler var ve bir kenara başka bir şey üzerinde çalışmak yerine, ve daha sonra (f.ayarlamak istiyorsanız ben. ve devam çalışma için birkaç gün sonra geri gel. Bunu yapmanın en kolay iş ne olurdu? (Şimdiye kadar Mercurial temel işlevsellik) ile tek deneyimim var. Her zamanki yöntemi yeni bir şube klon oluşturmak için, ama daha iyi bir yolu olabilir.

CEVAP
17 Temmuz 2012, Salı


Seçenekleri bir avuç vardır:

  1. Shelve öğeleri. Bu şube devam edebilmesi için değişiklikleri kaydeder ve çalışma dizininden kaldırır. Bir değişiklik kümesi oluşturmak değil.

    hg shelve --all --name "UnfinishedChanges"
    
    hg unshelve --name "UnfinishedChanges"
    

    /Düzenle: Mercurial daha yeni sürümlerini kullanmak gerekebilir

    hg shelve -n "UnfinishedChanges"
    hg unshelve "UnfinishedChanges"
    

    Hala -n ama mercurial alternatif --name gibi görünmüyor gibi --name artık kullanabilirsiniz. Ayrıca, --all artık gerekli değildir, ve mercurial aslında bunun için panik olurlar.

  2. Patch queue öğeler mq kullanarak. Bu bazı açılardan rafa kaldırmak çok farklı değil, ama farklı davranır. Sonuç aynı, değişiklikler kaldırılır ve isteğe bağlı olarak yeniden uygulandıktan sonra olabilir. Yamalar mantıklı itti-ayarlar değiştiğinde, ortaya çıkınca başka bir yerde kaydedilir ve set değiştirme tarihinin bir parçası.

    hg qnew "UnfinishedWork"
    hg qrefresh
    hg qpop
    
    hg qpush "UnfinishedWork"
    
  3. Bunları yerel olarak işlemek, önceki-set ve çalışmaya devam güncelleştirme ve anonim dalları (veya birden fazla kafa). Eğer daha sonra bir değişiklik istiyorsanız, kafaları birleştirebilirsiniz. Eğer bir değişiklik istiyorsanız Eğer, değişim seti 19**.

    hg commit -m"Commiting unfinished work in-line."
    hg update -r<previous revision>
    
    hg strip -r<revision of temporary commit>
    
  4. Adında bir şube için onları bağlamak. İş akışı sonra seçenek 3 - hazır olduğunuzda birleştirme ya da şerit olarak aynı olur.

    hg branch "NewBranch"
    hg commit -m"Commiting unfinished work to temporary named branch."
    hg update <previous branch name>
    

Kişisel değişim setleri sıyırma veya kısmi kontrol kodu (sonunda basılmadığı sürece) sorun yok gibi ya da 4 seçenek 3 kullanıyorum. Bu ihtiyaç eğer değiştirmek-ayarlar diğer kullanıcılardan ** 20 yerel saklamak için yeni malzeme ile birlikte kullanılabilir.

Ben de rebase birleştirme yerleri değiştirmek setleri birleştirir önlemek için etrafında taşımak için komut kodu tarihine bir şey eklemek olmaz kullanın. Birleştirir önemli dalları (serbest dalları gibi), ya da daha uzun ömürlü özelliği, bir şube faaliyet arasında faaliyet kurtarmak için eğilimindedir. Ayrıca "onları azaltır" değerini. konuşkan olmam yerleri değiştirmek-ayarlar sıkıştırmak için kullanıyorum histedit komutu var

Yama kuyruklar da bunun için ortak bir mekanizma vardır, ama semantik yığını var. Ve yamalar, ama "başka yama yığınının üstüne bir de itilmiş olması gerekir. altında bir yama push pop

Uyarıolduğunu , tüm bu seçenekler, eğer bu dosyalar daha fazla değişiklik bu yana geçici olarak değiştiren ettik rafa / sıraya / dallı, birleştirme çözünürlük gerektiğinde BM-raf / itme / birleştirme.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jbignacio

    jbignacio

    13 Mart 2006
  • Manuel Vizcaino

    Manuel Vizca

    27 Mayıs 2008
  • stewmurray47

    stewmurray47

    1 Kasım 2006