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 revertgerç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 updatetam bir depo komutudur ve tek tek dosyalar üzerinde çalışmayacaktır. svn updateBu ş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 --helpsize 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 updatekomuta 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. updateKomut 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 parentsKomutu 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>"