2010-01-19 10 views
8

Ich habe Git & Git-Svn für ein Jahr oder so jetzt und irgendwie gerade bemerkt, dass nach einem dcommit, ist mein Commit-Geschichte erhalten, aber die Zeitstempel sind nicht . Mit anderen Worten, jeder Git-Commit-Eintrag wird beibehalten, aber in Svn hat jeder Commit den gleichen Zeitstempel (mehr oder weniger).Git-Svn: commit Zeitstempel nach dcommit

Es ist nicht ungewöhnlich für mich für einen Tag der Ferne zu arbeiten oder so zu einer Zeit, eine beliebige Anzahl von Commits während dieser Zeit. Im Idealfall möchte ich, dass mein SVN-Protokoll die Zeiten widerspiegelt, in denen ich diese Commits gemacht habe, und nicht die Zeit, zu der das Commit (zusammen mit anderen Commits) dcommitted an svn war. Ist das möglich?

Danke.

Antwort

8

Wenn git-svn erstellt eine Subversion begehen, ist es in etwa die gleiche Sache, die Sie normalerweise mit Subversion tun würde, ein Commit zu erstellen. Dies bedeutet, dass der Subversion-Zeitstempel der Zeitpunkt ist, zu dem die git svn dcommit-Operation ausgeführt wird.

Auch wenn Sie den Zeitstempel begehen ändern könnte, kann dies nicht sein, was Sie tun wollen. Normalerweise wird erwartet, dass die Commit-Zeitstempel in Subversion einer chronologisch ansteigenden Reihenfolge folgen, und es könnte verwirrend sein, "backdated" Zeitstempel im Repository zu sehen.

+0

Fair genug. In diesem Fall arbeite ich alleine an einem Projekt, aber Sie haben recht, dass es in einer Teamsituation unglaublich verwirrend wäre. Zumal jedes Git-Commit über jede frühere Änderung via Rebase angewendet wird. –

1

Es ist möglich, wenn Sie SubGit auf dem Server verwenden. Es versucht, Git-Commit-Daten zu erhalten, wie es möglich ist (leider hat SVN-Repository eine interne Einschränkung, dass Daten chronologisch gehen sollten, sonst funktionieren einige binäre Suchalgorithmen nicht korrekt). Ich kenne keine andere Lösung, die SVN ändern würde: Datum innerhalb der gleichen Commit-Transaktion. Git-svn verwendet libsvn SVN-Engine, die, wie ich weiß, solche svn: Datumsänderung nicht erlaubt (nur nach der Transaktion, wenn Revision erstellt wird und Sie ihre Nummer kennen).

Verwandte Themen