Source

hgtip-content / advanced / 2009-09-30-detecting-renames-automatically.html

Full commit
{% extends "_tip.html" %}
{%hyde
    title: Umbenannte Dateien automatisch erkennen
    author_name: Steve Losh
    author_link: http://stevelosh.com/
    created: 2009-09-30
%}


{% block excerpt %}
Mercurial kann selber herausfinden, welche Dateien hinzugefügt oder entfernt 
wurden - *wenn* Sie freundlich fragen.
{% endblock %}


{% block tip %}

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`({{ links.tip_edit_hgrc }}) 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!

{% endblock %}