| 

.NET C# Java Javascript Exception

2
Worüber ich mich, als relativ neuer Mercurial- und bisheriger Subversion-Nutzer, nun schon einige Male geärgert habe: wenn ich von einem entfernten Repository pulle und dann die Änderungen lokal mergen möchte, zwingt mich TortoiseHG (bzw. Mercurial selbst?) dazu, meine lokalen Änderungen entweder einzuchecken, in Flicken zu verstauen oder zu verwerfen. Ich habe aber oft ein paar Änderungen für Entwicklungszwecke (z.B. in der app.config) offen, die ich bewußt nicht einchecken will, und die auch mit keiner der entfernten Änderungen in einem Konflikt stehen. Was ist der einfachste Weg (in SVN mußte ich dafür rein gar nichts tun), die Änderungen vom entfernten Repo in meine lokale Arbeitskopie zu bekommen und danach meine lokalen Änderungen, nicht eingecheckt natürlich, wieder so zu haben wie vorher? Das mit den Flicken finde ich scheußlich umständlich.
Oder auch andersherum: wie kann ich lokal eingecheckte Änderungen pushen, wenn entfernt ebenfalls Änderungen vorliegen, die ich bei mir noch nicht drin habe, ich gleichzeitig aber lokale Änderungen habe, die ich nicht einchecken will?
09.02.2012
Matthias Hlawatsch 13,2k 4 9
1 Antwort
1
Wieso gehst Du nicht über einen temporären Branch?
$ hg branch issue-1
marked working directory as branch issue-1
$ hg commit -m 'Starting branch for Issue 1.'


Später schließt Du den Branch wieder, wenn Du mit Tests fertig bist und mergst Deine Änderungen
$ hg commit --close-branch -m 'Close branch, Issue 1 is fixed.' 
$ hg update default
$ hg merge issue-1
$ hg commit -m 'Merged fix for Issue 1.'


Wenn Du den Branch nicht wieder löscht, kannst Du natürlich parallel auf beiden Branches weiterarbeiten. Theoretisch kannst Du über die Funktion des HgWorkbench "Mit lokaler Kopie verschmelzen" die Version des Default Branches mit Deinem Test Version Branch zusammenführen und je nach Bedarf im Default oder test Branch mit führen.

Den Workflow findest Du hier
10.02.2012
judgy 3,0k 1 1 8
+1 für den, für sich genommen, nützlichen Link - Danke.
Aber entweder hast Du mein Problem nicht verstanden oder ich nicht, wie Deine Antwort es löst.
Die lokalen Änderungen, die ich beibehalten, aber nicht einchecken will, sind solche Sachen wie Änderungen in Konfigurationsdateien zur Anpassung an meine lokale Umgebung. Die will ich behalten, aber nicht einchecken. Gleichzeitig will ich aber meine "echten" Änderungen einchecken und (!) pushen und Änderungen von anderen pullen und mergen können. Ich sehe nicht, wir mir dabei ein Branch helfen kann.
Matthias Hlawatsch 10.02.2012

Stelle deine Mercurial-Frage jetzt!