2010-04-20 8 views
26

Ich weiß, dass Mercurial umbenennen von Dateien verfolgen kann, aber wie bekomme ich es zu zeigen ich benennt umbenennen statt fügt/entfernt, wenn ich tun hg status? Zum Beispiel anstelle von:Zeigt umbenennen in HG-Status?

A bin/extract-csv-column.pl 
A bin/find-mirna-binding.pl 
A bin/xls2csv-separate-sheets.pl 
A lib/Text/CSV/Euclid.pm 
R src/extract-csv-column.pl 
R src/find-mirna-binding.pl 
R src/modules/Text/CSV/Euclid.pm 
R src/xls2csv-separate-sheets.pl 

Ich möchte ein Anzeichen dafür, dass vier Dateien verschoben wurden.

Ich denke irgendwo habe ich gelesen, dass die Ausgabe so ist, um die Rückwärtskompatibilität mit irgendwas zu erhalten, aber darüber mache ich mir keine Sorgen.

+0

Meinst du "hg status"? Ich glaube nicht, dass hg log Ausgaben in dem von Ihnen angegebenen Format produziert. –

+0

Eigentlich benutze ich folgendes, um hg log show extra Sachen (und Farben) zu machen: http://bitbucket.org/sjl/mercurial-cli-templates/src/ Also lass uns die Frage in 'hg status' ändern. –

Antwort

32

Es gibt mehrere Möglichkeiten, dies zu tun.

Bevor Sie begehen, können Sie hg diff --git verwenden zu zeigen, was umbenannt wurde:

$ hg diff --git 
diff --git a/theTest.txt b/aTest.txt 
rename from theTest.txt 
rename to aTest.txt 

Beachten Sie, dass dies nur funktioniert, wenn Sie verwendet hg mv, hg rename oder mv und hg addremove --similarity 100.

Nachdem Sie begehen, können Sie immer noch hg diff verwenden, aber Sie werden die Änderung mit -r angeben:

$ hg diff -r 0 -r 1 --git 
diff --git a/test.txt b/theTest.txt 
rename from test.txt 
rename to theTest.txt 

Für beide hg status und hg log, verwenden Sie die C-Befehlszeile-Flag, um zu sehen die Quelle, von der eine Datei kopiert wurde.

$ hg status -C 
A aTest.txt 
    theTest.txt 
R theTest.txt 

Die Linie knapp unterhalb aTest.txt gibt die Quelle aus (theTest.txt) kopiert wurde.

$ hg log -v -C 
changeset: 1:4d7b42489d9f 
tag:   tip 
user:  jhurne 
date:  Tue Apr 20 20:57:07 2010 -0400 
files:  test.txt theTest.txt 
copies:  theTest.txt (test.txt) 
description: 
Renamed test.txt 

Sie können die Dateien sehen, die betroffen waren (test.txt und theTest.txt), und dass "theTest.txt" wurde von test.txt kopiert.

14

Sie können herausfinden, wie viele Dateien mit HG Zusammenfassung umbenannt wurden. Wenn Sie die aktuellen Dateien sehen wollen, die umbenannt wurden, der schnellste Weg, die ich gefunden habe ist zu tun:

hg st -a -C 

Dies führt zu dieser Ausgabe wie folgt aus:

A <path\to\renamed\file> 
    <path\copied\from> 
A <path\to\added\file> 
A <path\to\renamed\file> 
    <path\copied\from> 

Seit hg Status eines Umbenennungs hält Um eine Kopie und ein Entfernen zu sein, werden Ihre umbenannten Dateien eine kopierte Datei auflisten. Dateien, die hinzugefügt, aber nicht umbenannt wurden, zeigen keine kopierten Dateien an.