Umbenannte Dateien automatisch erkennen

posted by Steve Losh on September 30, 2009

Der Befehl hg addremove ist praktisch wenn Sie mehrere Dateien von Hand verschieben. Sie können zum Verschieben jedes beliebige Werkzeug nutzen (Finder, Windows Explorer, die Kommandozeile, usw.). Rufen Sie am Ende einfach hg addremove auf um Mercurial zu sagen dass es selber herausfinden soll, was Sie geändert haben.

Eine wenig bekannte Möglichkeit von hg addremove ist die Erkennung von umbenannten Dateien statt einem löschen und hinzufügen. Wird das umbenennen gespeichert, kann Mercurial später einfacher mergen.

Um Mercurial nach unebannten Dateien suchen zu lassen, müssen Sie die Option --similarity bei hg addremove angeben:

$ hg addremove --similarity 100

Die Zahl ist ein Prozentwert. In diesem Beispiel wird Mercurial nur dann eine Datei als umbenannt ansehen, wenn die neue Datei zu 100% identisch ist mit der die entfernt wurde.

Eine tieferer Wert erkennt auch Umbenennungen die eine Änderung beinhalten. Allerdings erhöht dies das Risiko einer falschen Zuordnung. Gewöhnen Sie sich an, die Strukturänderungen einzuchecken und erst danach den Inhalt der Dateien zu verändern.

Wenn Sie dies häufig benutzen, können Sie --similarity 100 als Standartwert in der [Datei ~/.hgrc(/tips/beginner/2009-09-30-configuring-mercurial/) durch diese Ergänzung hinterlegen:

[defaults]
addremove = --similarity 100

Seien Sie vorsichtig. Diese Einstellung beeinflusst jeden Aufruf dieses Befehls, auch wenn Sie diesen in einem Script aufrufen!

Mercurial kann selber herausfinden, welche Dateien hinzugefügt oder entfernt wurden - wenn Sie freundlich fragen.