Güncel Mercurial Revizyon Özetini Yazdır?


124

Mercurial'deki mevcut revizyon özetini çıkarmaktan daha iyi bir yol var mı?

hg log -l1|grep changeset|cut -d: -f3

?

Web uygulaması dağıtım komut dosyamın bir kısmı, yüklenen uygulama tarball'unu benzersiz revizyon hashiyle "etiketler".


2
Not hg log -l 1değil de en son changeset, şu anda güncellendi ediyoruz mutlaka birini verir! -F bayrağı hg günlük çıktısını mevcut çalışma dizininin atalarına sınırlar, böylece hg log -f -l1istediğiniz şeye daha yakındır.
su geçirmez

Yanıtlar:


196

Deneyin:

hg id -i

Misal:

$ hg id -i
adc56745e928

22
Tam hash kullanımını istiyorsanız, insanların aşağıdaki çözümleri kaçırması durumunda: hg --debug id -iŞablon desteğini kullanmak istiyorsanız hg parent --template '{node}' Kullanmayın hg log -l 1, en son depo değişiklik kümesidir, mevcut çalışma kopyası değişiklik kümesi değil.
Joseph Lisee

7
Komut dosyalarında --debug kullanılması önerilmez, bu çıktı geriye dönük uyumlulukla daha az dikkatli bir şekilde kontrol edilir. Şablonu kullanın. Eğer w / log yapmak istiyorsanız ., revizyon olarak nokta kullanın .
Ry4an Brase

Teşekkürler Ry4an "-r" hakkında hiçbir fikrim yoktu. mevcut çalışma kopyası revizyonuna atıfta bulunur. Bu, "günlük" ten "ebeveyn" e geçtikten sonra daha iyi gibi görünüyor.
Joseph Lisee

Sorun yok. hg help revisionsve hg help revsetsbunun gibi bazı çılgın, güçlü kısayolları var.
Ry4an Brase

Ancak sorunun en spesifik cevabı bu değil, çünkü afaik hg id -iglobal hash id'nin yalnızca kısa (12 karakterli) formunu yazdırıyor ve afaiklerden hg identifyyoksun --templateolduğu için man sayfası söylediği için sadece revizyonu çıkarmanın ve başka hiçbir şey yapmanın bir yolu yok . bir özet yazdırır.
Shelby Moore III

41
hg --debug id -i

Bu, taahhüt edilmeyen değişiklikler varsa bir artı ile birlikte uzun hash üretir.


Bu, 3.1.2'de varsayılan gibi görünüyor
nickd

1
Çünkü Ry4an en hakkındaki Downvoting comment .
Shelby Moore III

20

--Template'i parent komutuyla kullanabilirsiniz, bunu uzun hash'i elde etmek için kullanıyorum:

hg parent --template '{node}'

Sayfa diyor hg adam hg parentsolan DEPRECATED Bu yanıtı yazdığında kudreti durum olamazdı belki de her ne kadar,. Gerçekleştirilmemiş bir birleştirme varsa, iki üst düzeltme vardır .
Shelby Moore III

2
Birisi bize hg ebeveynlerinin neden kullanımdan kaldırıldığını ve bunun yerine ne kullanmamız gerektiğini söyleyebilir mi?
Vincent

17

Yanıtları ve yanıtlarını özetlediğimizde, mevcut sürümün benzersiz (kısa biçim değil) tanımlayıcısını yazdırmanın en iyi yolu budur :

hg log -l 1 --template '{node}\n' -r .

Bir varsa Not kaydedilmemiş birleştirme , .(nokta) sadece görüntüler ilk ebeveyn çalışma grubunun iki ebeveynin.
Shelby Moore III

9
hg log -l 1 --template '{node|short}\n'

Dokümanlar , paragraflar "Şablon oluşturmanın temelleri" ve aşağıdaki paragraflara bakın .


2
Neredeyse bunu istedim, ama uzun hash ile. Tam olarak bunu elde lidetmek için takma ad log -l 1 --template '{node}\n'- tam revizyon kimliğini yazdırın.
Michael Ekstrand

6
Bu, en son çekilen değişiklik setini yazdırır. Çalışma dizinimiz daha eski bir değişiklik kümesine güncellenebilir. Güncellediğimiz değişiklik setini yazdırmak için "hg id" kullanın. Tek sorun, "hg id" nin şablonları desteklememesi veya uzun hash yazdırma seçeneğine sahip olmamasıdır (birisi bunu nasıl yapacağını bilmediği sürece).
Eiver

1
Eiver'ın dediği gibi, bu çalışma kopyanızdaki gerçekte revizyonu yalnızca deponuzdaki en sonuncuyu yazdırmaz. Bu çözümü kullanmak izleme hatalarına yol açabileceğinden, bu çözüme oy verdim.
Joseph Lisee

1
Ditto Joe olumsuz oy kullanıyor. Ayrıca @Eiver hg --debug id -ibaşka bir yerde söylendiği gibi kullanın .
AJP

3

Varlığından dolayı, --templateyalnızca bu kısalık gerekliyse revizyon bilgisini yazdırabilen en spesifik DEPRECATED olmayan komut (sorunun ima ettiği gibi):

hg log -l 1 -b . -T '{rev}:{node|short}\n'

Veya benzersiz uzun hash biçimi için:

hg log -l 1 -r . -T '{node}\n'

-b .Veya branch(.)(şube adı için nokta) Geçerli çalışma dizini dalı demektir ve -r .bir Geçerli çalışma dizini revizyon anlamına gelir belgelenmiş içinde hg help revsetsve hg help revisions.

Bir varsa Not kaydedilmemiş birleştirme , .(nokta) sadece görüntüler ilk ebeveyn çalışma grubunun iki ebeveynin.


3

Başkalarının da belirttiği gibi, kullanmayın log -l .

Çıktısı sınırlı olan ve şablonları desteklemeyenlerin hg log -r .aksine ayrıntılı bilgi almak için kullanın hg id. Ayrıca küçük bir takma ad oluşturabilir here = log -r .ve kullanabilirsiniz hg here. Sadece hash kullanmak istiyorsanız hg log -r . --template '{node}\n'.


1

TortoiseHg kullanılması durumunda, Workbench'teki revizyon satırına sağ tıklayın ve "Hash'i kopyala" seçeneğini seçin ( belgelere göre ).

görüntü açıklamasını buraya girin

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.