Mercurial'da yeniyim. Doğru komutu bulamıyorum. Şanssız güncelleme / ödeme denendi. Yerel depoyu kullanıyorum. Teşekkürler
Mercurial'da yeniyim. Doğru komutu bulamıyorum. Şanssız güncelleme / ödeme denendi. Yerel depoyu kullanıyorum. Teşekkürler
Yanıtlar:
Sanırım istiyorsun hg revert -r<rev> <file>
(bu, dosyayı verilen revizyondaki gibi değiştirecek).
Djc'nin dediği gibi revert
, önceki revizyona uyacak şekilde yerinde bir dosyayı değiştirir. Yerinde olmamasını istiyorsanız hg cat -r revisionid filename
, dosyayı stdout'a çıkaracak, istediğiniz herhangi bir yere yeniden yönlendirmek için uygun olan (revisionid ve dosya adını değiştirerek) kullanabilirsiniz .
hg revert
gerçekten de bu sorunu çözüyor. Ama bence, sorunun cevabından çok daha geniş bir yelpazede kafanız karıştı ve daha eksiksiz cevap vermeye çalışmak istiyorsunuz.
hg update
tam bir depo komutudur ve tek tek dosyalar üzerinde çalışmayacaktır. svn update
Bu şekilde yıkıma benzemiyor . Bunu yaparsanız hg --help update
, komutun dosya argümanı almadığı için durumun böyle olduğunu görebilirsiniz. Tüm deponuzu belirli bir anlık görüntüye taşımak için kullanılabilir, ancak bunu tek bir dosyaya yapmak için kullanılamaz.
Eğer yazarsanız hg --help
size komutların bir listesini görebilirsiniz. Oldukça geniş ve biraz ürkütücü bir liste, ancak onu okursanız, şu satırı bulacaksınız:
revert restore individual files or directories to an earlier state
Şimdi, karşılaştırma amacıyla sadece son durumu istiyorsanız, ilgilenebileceğiniz başka bir komut var ve bu hg cat
. Bu, belirli bir revizyonda bir dosyanın içeriğini yazdırmanıza olanak tanır. Daha sonra çıktısını başka bir dosyaya yönlendirebilirsiniz. Ardından, yan yana karşılaştırmak için dosyanızın önceki bilinen iyi sürümüne ve eski sürümüne sahip olabilirsiniz.
Mercurial'in ayrı bir update
komuta sahip olmasının nedeni, Mercurial'de Subversion'da imkansız olan bir şeyi yapmanın mümkün olmasıdır. Daha update
önceki bir sürüme geçebilir , değişiklikler yapabilir ve ardından taahhüt edebilirsiniz. Bu bir dal yaratacaktır. update
Komut ayrıca geçerli çalışma dizininin ana revizyon değişen yanı sıra söz konusu ebeveyn revize edilen versiyonlarına o dizindeki tüm dosyaların içeriğini değiştirme etkisine sahiptir.
Bu revert
, bir dosyanın içeriğini (hatta komuta doğru argümanlar verirseniz tüm depoyu) değiştirir, ancak mevcut çalışan kopyanın üst revizyonunu aynı şekilde bırakır.
hg parents
Komutu kullanarak mevcut çalışma kopyasının üst revizyonunu (veya birleştirme durumunda revizyonları) öğrenebilirsiniz .
Subversion'da revizyonlar kesinlikle doğrusal bir ilerlemedir. Mercurial, bir şapkanın damlasında dallar oluşturur ve neredeyse birleştirilmesi kadar kolaydır. Revizyonlar, kesinlikle doğrusal bir ilerleme değil, bir DAG oluşturur.
Belirli bir dosyanın belirli bir revizyonunu çıkarmak için bunu Windows'ta yapabilirsiniz:
hg cat "<FileToBeExtractedPath>" -r 9 > "<ExtractionPath>"
Burada 9 revizyon numarasıdır.
Ya da daha iyisi:
hg cat "<FileToBeExtractedPath>" -r 9 -o "<ExtractionPath>"