![]() |
TortoiseHG: Wie chunks aufsplitten?
Ich habe ein banales Anfängerproblem:
Angenommen ich ändere
Delphi-Quellcode:
in
procedure someProc();
begin // Diese Zeile wird gleich fehlen end;
Delphi-Quellcode:
.
procedure someProc();
begin // Dies ist ein Kommentar someStuff1(); someStuff2(); end; Möchte ich nun comitten, bin ich der Art und Weise wie der Computer daraus einzelne "Chunks" bastelt vollkommen ausgeliefert: Ich bekomme einen Chunk den ich entweder comitten kann oder auch nicht:
Code:
Verständlich. Aber ich möchte daraus zwei Commits machen. In Subversion wäre das jetzt einfach. Aber hier (Mercurial) stehe ich auf dem Schlauch.
@@ -9,7 +9,10 @@
procedure someProc(); begin - // Diese Zeile wird gleich fehlen + // Dies ist ein Kommentar + someStuff1(); + + someStuff2(); end; begin Meine Vermutung ist, dass mir jetzt das "Shelve Tool" weiterhelfen kann, aber irgendwie sehe ich hier auch keine Option, an den mir vorgegebenen Chunks etwas zu ändern. |
AW: TortoiseHG: Wie chunks aufsplitten?
Du möchtest erst das "weggelassene" und das das neue committen?
Mavarik |
AW: TortoiseHG: Wie chunks aufsplitten?
Ja, so ungefähr: Ich würde, in diesem Beispiel, gerne erst das
Code:
und dann das
- // Diese Zeile wird gleich fehlen
+ // Dies ist ein Kommentar + someStuff1();
Code:
committen.
+
+ someStuff2(); Ein etwas praxisnäheres Beispiel ist, dass er mir gerne einen Quelltextblock mit zwei Methoden folgendermaßen in zwei Chunks aufsplittet:
Delphi-Quellcode:
// CHUNK 1 START
procedure someProc1(); begin ShowMessage('Hallo Welt'); // CHUNK 1 ENDE // CHUNK 2 START end; procedure someProc2(); begin ShowMessage('Tschüss Welt'); end; // CHUNK 2 ENDE |
AW: TortoiseHG: Wie chunks aufsplitten?
Solange Mercurial die beiden Änderungen als zu dem gleichen Codebereich gehörend ansieht und in einen Chunk packt, weiß ich auch keine Möglichkeit, das aufzusplitten. Auch das Shelve-Tool arbeitet immer noch chunk-orientiert. Im Moment sehe ich da nur die Möglichkeit, die Datei zu sichern, die unerwünschten Zeilen rauszulöschen, committen, rücksichern und nochmal committen.
Nur mal aus Interesse, weil ich schon lange nicht mehr damit gearbeitet habe: wie würdest du das denn in SVN machen? |
AW: TortoiseHG: Wie chunks aufsplitten?
Dann wäre ich jetzt aber wirklich hilflos :pale:
In Subversion würde man einfach
Ich hatte mir so viel vom Mercurial Shelf erhofft, aber wenn der im Endeffekt überhaupt nichts kann ist das ja auch irgendwo weitgehend sinnfrei :-( "Sichern und Wiederherstellen". Eigentlich möchte ich ja auch genau das. Kennst du da zufällig ein Add-On? Das jedes mal von Hand zu machen raubt einem ja auch die Zeit... |
AW: TortoiseHG: Wie chunks aufsplitten?
Wäre
![]() |
AW: TortoiseHG: Wie chunks aufsplitten?
Das sieht gut aus, läuft aber nicht einmal unter Windows.
|
AW: TortoiseHG: Wie chunks aufsplitten?
Die Frage ist jetzt aber wirklich mal rein akademischer Natur, oder? Wenn Dich Zwischenschritte interessieren, die Du nicht comitted hast, dann solltest Du sie halt künftig comitten. Woher soll denn Hg wissen, wie Deine Zwischenschritte zu einem Commit aussehen? Oder anders gefragt: wieso sollte sich Hg mit der Abspeicherung von (erratenen) Zwischenschritten belasten? Ist der Code nach einem Pull oder Merge falsch? Wenn nein, ist alles gut. Wenn ja, dann könnten wir dort prüfen, wieso er falsch ist, und einen Bugreport aufmachen.
Ausserdem: Befrei Dich von Deiner Erinnerung an SVN, das ist eigentlich kontraproduktiv. Sherlock |
AW: TortoiseHG: Wie chunks aufsplitten?
Zitat:
Jetzt kommt mir gerade eine Idee, wie man das durch einen geschickten Workflow eventuell auch mit Bordmitteln lösen könnte. Ich muss mir das mal eine Weile durch den Kopf gehen lassen... |
AW: TortoiseHG: Wie chunks aufsplitten?
Ich gebe ein ganz anderes Beispiel: Du änderst an einem DFM-Formular etwas. Setzt eine Komponente von
Delphi-Quellcode:
auf
Enabled = True
Delphi-Quellcode:
oder so etwas.
Enabled = False
Zeitgleich ändern sich am Formular auch ganz automatisch Werte wie Height, Width, ClientHeight, ClientWidth, ExplicitWidth, ExplicitHeight, TabOrder. Oder ich verschiebe aus Versehen einen Button um einen Pixel. Die Änderungen liegen jetzt nah genug bei einander- Ich "bekomme" nur einen Chunk. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz