Mercurial - Lokale Änderungen in zweites lokales Repository übertragen
Ab und zu beginne ich damit, Änderungen in einem lokalen Mercurial Repository durchzuführen und werde damit nicht fertig. In der Regel mache ich dann später einfach weiter und nutze dafür den gleichen Rechner. Ab und zu möchte ich aber lieber mit einem anderen Rechner weiterarbeiten. Zum Beispiel mit meinem Notebook auf dem Sofa.
Wie nun am besten die lokalen Änderungen von Rechner A auf Rechner B übertragen?
Am einfachsten wäre es wohl, einen Commit über die unfertigen Änderungen zu erstellen, diesen bei beispielsweise Github hochzuladen und dann auf Rechner B das Arbeitsverzeichnis damit zu aktualisieren. Ich vermeide aber möglichst solche Work in Progress Commits.
Das Repository mit Tools wie Syncthing von einem Rechner auf den anderen übertragen? Das klappt bei Repositories wohl in der Regel. Aber es gibt auch schon einige negativen Erfahrungen. Wohl hauptsächlich mit den Verzeichnissen wie .git oder .hg in denen unter anderem die Historie gespeichert ist. Ein zusätzliches bare Repository zu nutzen wäre vermutlich eine Alternative.
Da ich den Anwendungsfall aber nur sehr habe, habe ich mich für eine andere Lösung entschieden. Im Arbeitsverzeichnis des Repositories in dem ich mit den Änderungen begonnen habe, erstelle ich mittels hg diff > patch.diff einen Patch über die vorhandenen Änderungen. Diesen Patch spiele ich dann im zweiten Repository mittels hg import –no-commit patch.diff ein. Wichtig ist hierbei den Parameter –no-commit zu nutzen, da sonst für die Änderungen ein Commit erstellt wird, was ich ja erst einmal vermeiden will bis ich wirklich fertig bin.
Das mag nun nicht die beste Lösung sein. Und vielleicht kann man es mit einer anderen Versionsverwaltung (die ich nicht nutzen will) einfacher lösen. Aber für mich ist es erst einmal ausreichend.
Diese Artikel könnten auch interessant sein:
- Mercurial - Mehrere Commits zu einem Commit zusammenfügen
- Github mit Mercurial nutzen
- Heptapod - Gitlab mit Unterstützung von Mercurial
- Bitbucket verabschiedet sich von Mercurial
- Hooks unter Mercurial