Hg forget ve hg remove arasındaki fark nedir?


313

Merkürün deponun mevcut durumundan birkaç dosyayı kaldırmasını istiyorum. Ancak, dosyaların geçmişte var olmasını istiyorum.

Nasıl forgetve removefarklı, ve istediğimi yapabilirler mi?


27
Endişelenmeyin, Mercurial'da önceki geçmişten bir dosyayı kaldıramazsınız - uzantıları kullanmaya başlamadığınız sürece geçmiş genellikle değişmezdir.
Martin Geisler

Yanıtlar:


348

' hg forget' sadece kısaltmadır ' hg remove -Af'. ' hg remove' Yardımından:

... ve -Af, bir sonraki revizyondaki dosyaları çalışma dizininden silmeden kaldırmak için kullanılabilir.

Alt satır: ' remove' dosyayı diskteki çalışma kopyanızdan siler (siz kullanmazsanız -Af) ve ' forget' yapmaz.


7
"hg unut" Mercurial 1.3 "hg kaldır -Af" yapmanın daha kolay bir yolu olarak yeniden tanıtıldı. Dosyayı çalışma kopyasından kaldırmadan silinmek üzere zamanlar.
Martin Geisler

5
Duyduğuma sevindim. 'remove -Af' (ve 'kaldır' yardım sayfasındaki seçeneklerin tümü) deliliktir.
Ry4an Brase

32
@ Ry4an: Cidden, gülünçtü. 'Unut' u tekrar ekleyen yamaya katkıda bulundum. Bunu yaparken kodda tam bir anlam ifade ettiyse de, kullanıcının bakış açısından tamamen saçma olduğunu fark ettim.
Steve Losh

10
Heh, mercurial için bu kadar harika olan şey bu - insanlar aktif ve yinelemeli olarak kullanıcının bakış açısından neyin anlamlı olduğunu düşünüyorlar. Bunu düzelttiğiniz için teşekkürler.
Ry4an Brase

9
Yerel yapı yapılandırma dosyaları veya benzeri? Sistemden sisteme farklılık gösteren yerel araçlara giden yollar? Kaynak kontrolünde istemediğiniz, ancak kaydetmek istediğiniz bir günlük dosyasını yanlışlıkla eklediniz mi? Sanırım olur.
Ry4an Brase

42

Koymak için en iyi yol olduğunu hg forgetolduğunu özdeş etmek hg remove hariç o geride dosyaları bıraktığı sizin çalışma kopyası. Dosyalar izlenmeyen dosyalar olarak geride bırakılır ve artık isteğe bağlı olarak bir desenle yok sayılabilir .hgignore.

Başka bir deyişle, kullandığınızdan veya sizden ne zaman çektiğimi söyleyemem . Eğer koştum bir dosya üzerinde olacak kullanmış hemen görürsünüz - O Changeset güncellemek zaman silinecek bunun yerine.hg forgethg removehg forgethg remove


27

Belgelerden, dosyayı proje geçmişinde tutmak için her iki komutu da kullanabilirsiniz. Kaldırmak istediğiniz gibi görünüyor, çünkü dosyayı çalışma dizininden de siliyor.

Http://hgbook.red-bean.com/read/ adresindeki Mercurial kitabından :

Bir dosyanın kaldırılması geçmişini etkilemez. Bir dosyayı kaldırmanın sadece iki etkisi olduğunu anlamak önemlidir. Dosyanın geçerli sürümünü çalışma dizininden kaldırır. Mercurial'ın bir sonraki işlemin yapıldığı andan itibaren dosyadaki değişiklikleri izlemesini durdurur. Bir dosyanın kaldırılması hiçbir şekilde dosyanın geçmişini değiştirmez.

Man sayfası hg (1) unutmak için bunu söylüyor:

Belirtilen dosyaları bir sonraki işlemden sonra izlenmeyecek şekilde işaretleyin. Bu, dosyaları tüm proje geçmişinden değil, yalnızca geçerli şubeden kaldırır ve çalışma dizininden silmez.

Ve bu kaldırmayla ilgili:

Belirtilen dosyaları depodan kaldırılmak üzere zamanlayın. Bu, dosyaları tüm proje geçmişinden değil, yalnızca geçerli şubeden kaldırır.


3

"hg remove b"Durumu "A" olan bir dosyaya karşı kullanırsanız , bu dosya eklendiği ancak işlenmediği anlamına gelirse Mercurial yanıt verecektir:

  not removing b: file has been marked for add (use forget to undo)

Bu yanıt, kaldır ve unut arasındaki farkın çok açık bir açıklamasıdır.

Anladığım kadarıyla, "hg forget"eklenen ancak işlenmemiş bir dosyayı geri almak, böylece sürüm denetimi tarafından izlenmemesi; ise "hg remove"sürüm denetiminden kaydedilmiş bir dosyayı almak içindir.

Bu iş parçacığınınhg remove 7 farklı durum türündeki dosyalara karşı kullanımına bir örnek vardır .


2

Bir dosya izlenebilir veya izlenebilir değil, bir dosyayı izlemek için hg add kullanın ve izini kaldırmak için hg remove veya hg unut. Bayraklar olmadan hg remove'i kullanmak hem dosyayı siler hem de izini kaldırır , hg forget sadece silmeden izini kaldırır .


3
Adamın kendisi zaten içeri girdiğinde bu teklifi eklemeye neden ihtiyaç duyduğunu bilmiyorum, ama hey, teknende ne olursa olsun.
Nathan Tuggy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.