2012-03-26 17 views
13

İki rasgele değişiklik listesi arasında değiştirilmiş dosyaların listesini nasıl alabilirim?Mercurial: list "hg diff" dosyaları

# files where something has been added 
hg diff -r AA -r BB|grep -- +++|cut -f1|cut -d/ -f2- >/tmp/ka 

# files where something has been removed 
hg diff -r AA -r BB|grep -- ---|cut -f1|cut -d/ -f2- >>/tmp/ka 

# filtering out "dev/null": it appears when a file is added or removed from the repository 
sort -u /tmp/ka |grep -v dev/null 

Belki fark etmedi bir cıva komutu var:

Benim tek tahminim bu gibi korkunç bir şeydir? Tek bir değişiklik kümesinin değiştirilmiş dosyaları yok


NOT.
düzenleme: Bir .diff ne anlamıyorum Tunç çağından bazı programcılar ile çalışıyorum çünkü bunu yapmak gerekir, bana ayı ...

+0

, İtalyanca yazınız. Çünkü "iki rasgele değişiklikten modifiye", öngörülemeyen bir gürültü ve yanlış yorumlama parçasıdır. İki ya da sadece bu ikisi arasında mı? –

+1

Bir repo değişiklikleri-by-changeset'de ne olduğunu incelemeye gayret ediyor, tek bir değişiklik için değişiklik geçmişini incelemek gibi. –

+0

Değiştirilmiş AA ve değişiklikleri BB arasında değiştirilen dosyalar. "Hg diff -r AA -r BB" gibi bir şey ama dosya adları sadece bir bütünlük yerine, yani, bu komut satırında önerdiğim gibi. –

cevap

30

hg diff -r 182 -r 193 --stat

ya lütfen

hg status --rev 182:193

+0

oh, teşekkürler, işte bu! –

+0

'--rev' ve' -r' sistemimde aynı davranıyor ... 2012'de bir hata mıydı? – mpen

+0

Şimdi düzeltildi gibi görünüyor, evet. –

0

Çözüm bir. Diff tabanlı

>hg diff -r 3 -r 4 --stat 
comments.php | 14 +++----------- 
functions.php | 15 +++++++++++++-- 
header.php | 2 +- 
readme.txt | 17 ++++++++++++++--- 
sidebar.php | 43 ++++--------------------------------------- 
style.css  | 18 ++++++++++++------ 
6 files changed, 47 insertions(+), 62 deletions(-) 

üzerinde grepping tarafından değiştirilen dosyaları elde edebilirsiniz "|" Char veya tam 4 alanlarına ile kayıt için $ 1

Çözüm iki yazdırmak aval aval boru çıkışı, (benim POV daha iyi ve daha güzel bir yaklaşım). Giriş + çiftleşmiş + revsets

>hg log -r "3::4" --template "{file_mods}\n" 
footer.php functions.php header.php search.php style.css 
comments.php functions.php header.php readme.txt sidebar.php style.css 

dönüştürme Eğer

8

dosya durumu hakkında bir şeyler bilmek istediğinizde aramaya temel komut hg status olduğu için ben bırakacağım (mümkünse) çiftleri elemek, listelemek için. Durum komutu dosya adı yönlendirilmiş komuttur ve bazı dosya adlarını bilmek istersiniz. Eğer

$ hg status 

olarak çalıştırın

o zaman çalışma kopyası ebeveyn revizyon (.) ile çalışma kopyası durumunu karşılaştırır. Eğer

$ hg status --rev AA:BB 

olarak çalıştırırsanız Ama sonra AA ve BB arasında değiştirilmiş dosyaları gösterecektir! Grepping, kesme, sıralama veya şablonlara gerek yok.

(I here, here ve here önce açıkladım, daha fazla ipucu için bu soruları ve cevapları bakınız.)

+0

"-r --removed show only remove files" ile çalışmaz - bu zor bir UI başarısız. –

+0

@asaddude: ups! Bunun için üzgünüm, yerine '--rev' kullanmak için düzeltdim. –

İlgili konular