2010-01-19 5 views
8

Utilizzo Git & Git-Svn per circa un anno ora e in qualche modo ho appena notato che, dopo un dcommit, la cronologia dei commit viene conservata, ma i timestamp non sono . In altre parole, ogni voce di commit git viene mantenuta, ma in Svn ogni commit ha lo stesso timestamp (più o meno).Git-Svn: Mantieni la data/ora di commit dopo dcommit

Non è insolito per me lavorare in remoto per un giorno o due alla volta, effettuando un numero qualsiasi di commit per tutto quel tempo. Idealmente, mi piacerebbe che il mio log di svn riflettesse le volte in cui ho commesso quei commit da git piuttosto che il tempo in cui il commit (insieme a qualsiasi altro commit) era dcommitted in svn. È possibile?

Grazie.

risposta

8

Quando git-svn crea un commit di Subversion, fa all'incirca la stessa cosa che normalmente si farebbe con Subversion per creare un commit. Ciò significa che il timestamp di Subversion sarà l'ora in cui viene eseguita l'operazione git svn dcommit.

Anche se è possibile modificare il timestamp di commit, questo potrebbe non essere ciò che si desidera fare. Normalmente le persone si aspetteranno che i timestamp di commit in Subversion seguano una sequenza in ordine cronologico crescente e potrebbe essere difficile vedere timestamp "backdated" nel repository.

+0

Abbastanza giusto. In questo caso, mi capita di lavorare da solo su un progetto, ma hai ragione che sarebbe incredibilmente confuso in una situazione di squadra. Soprattutto dal momento che ogni commit git viene applicato in cima a qualsiasi modifica precedente tramite rebase. –

1

È possibile se si utilizza SubGit sul server. Cerca di conservare le date di commit Git come è possibile (sfortunatamente, il repository SVN ha una restrizione interna che le date dovrebbero andare cronologicamente, altrimenti alcuni algoritmi di ricerca binaria non funzioneranno correttamente). Non conosco altra soluzione che possa modificare svn: data all'interno della stessa transazione di commit. Git-svn usa il motore SVN di libsvn che, come so, non consente tale svn: modifica della data (solo dopo la transazione quando viene creata la revisione e si conosce il suo numero).

Problemi correlati