Commit einer einzelnen Datei 'ne gute Idee?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Hallo,

ich bin mir nicht sicher, ob es eine gute Idee ist, sowas wie ein Teil-commit zu machen. Konkreter Fall:
Ich arbeite an einem Modul, das Funktionen aus einem Modul 'utils.py' verwendet. Dabei habe ich an einer solchen Funktion eine kleine Änderung vorgenommen. Jetzt möchte ich aber noch keinen kompletten commit machen, diese kleine Änderung aber trotzdem festhalten.

Also einfach 'hg comm utils.py'? Oder handel' ich mir da irgendwann ein Problem ein?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
sparrow
User
Beiträge: 4600
Registriert: Freitag 17. April 2009, 10:28

Genau so mache ich das auch.

Übrigens solltest du im Topic schreiben, dass es um Mercurial geht.
Das hat ja nur indirekt etwas mit Python zu tun ;)

Gruß
sparrow
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wenn du der Änderung einen Namen geben kannst mach einen Commit. Ich mach einen für jeden Typo den ich in der Dokumentation korrigiere.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Also, das hat doch weder was mit Python noch mit hg zu tun. Einzelne Dateien absenden hat oft den Vorteil detaillierterer Kommentare - IMHO. Man sollte halt aufpassen, daß durch evtl. bestehende Abhängigkeiten, die Funktionalität anderer Elemente / Module / Bibliotheken / usw. nicht gebrochen wird.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ich halte es mit DasIch. Daneben sind kleinere Commits immer besser als groessere, es sei denn sie verletzen die von CM genannten Eigenschaften.
BlackJack

Ich schliesse mich CM an. Mir ist wichtig, dass ein einzelner Commit das Projekt nicht „kaputt” macht. Jemand der alles bis und inklusive dem Commit auscheckt, sollte ein Projekt haben, das zumindest nicht funktionsunfähiger ist, als alles bis vor dem Commit.

Und dann breche ich auch den Inhalt *einer* Datei oft auf mehrere Commits runter oder auch den Inhalt von mehreren Dateien innerhalb der Dateien, wenn dort mehrere unabhängige Änderungen enthalten sind. TortioseHG lässt einen da sehr bequem einzelne „Hunks” aus dem Diff auswählen, die man committen möchte.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

BlackJack hat geschrieben:TortioseHG lässt einen da sehr bequem einzelne „Hunks” aus dem Diff auswählen, die man committen möchte.
Fuer Emacs-Menschen sei hier noch monky genannt (oder das Vorbild Magit, aber fuer git wie der Name schon sagt).
Wobei das hunkweise/teilweise committen auch seine Tuecken hat, z.B. kann man u.U. ungetesteten Code committen und gerade aus Mercurial-Richtung wurde afair ziemlich gegen git gewettert, weil es das zulaesst, ja sogar beguenstigt.
Benutzeravatar
snafu
User
Beiträge: 6908
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@mutella: Was genau ist denn der Sachverhalt bei dir? Hast du eine Funktion von woanders aus in `utils.py` verschoben und zusätzlich an der Funktion eine kleinere Veränderung vorgenommen und willst du eigentlich nur die geänderte Funktion committen, ohne dass alle anderen Funktionen schon mit dabei sind?

In solchen Fällen mach ich's einfach so, dass ich mir den alten Stand aus dem Repo kopiere, die Änderung dort einfüge, dies committe und dann wieder mittels Undo-Funktion des Editors auf den Stand mit den anderen Änderungen zurückspringe. Geht sicher wesentlich eleganter, aber ich habe mich mit Branches & Merges (die hier vermutlich sinnvoller wären) noch nicht so detailliert beschäftigt. :oops:
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@snafu: Nein, die Strukturen sind völlig gleich geblieben. Ich habe lediglich einen kleinen, feinen Fehler an einer utils-Funktion entdeckt und behoben, wollte das aber gleich committen, obwohl ich mit den eigentlichen Änderungen in anderen Modulen noch nicht abgeschlossen hab'.

Das, das Du beschreibst klingt ein wenig verwegen und gefährlich... :wink: Die Undo-Funktion Deines Editors sollte hier auf gar keinen Fall versagen! Keine Ahnung weshalb, aber immer, als ich 'undo' am dringensten gebraucht hätte, stand ich an der Wand!

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Antworten