2015-03-12 9 views
9

Ho utilizzato git cvsimport per importare il mio repository CVS in un nuovo GIT.Importare un repository CVS in GIT genera alcuni comportamenti fuorvianti relativi ai timestamp

Sfortunatamente, in alcuni casi alcuni commit sono stati segnalati in un ordine errato.

E.g. Ho avuto due revisioni CVS di un file, rev1.1 alle 11.39 e rev1.2 alle 11.42; in GIT, posso vedere un commit alle 11.42 (con contenuto uguale a rev1.2) e uno successivo alle 11.45 (con contenuto uguale a rev1.1).

Sono a conoscenza del problema noto indicato nella pagina di cvsimport uomo

Se timestamp di commit nel repository CVS non sono abbastanza stabili da utilizzare per l'ordinazione il commit delle modifiche possono presentarsi in ordine errato .

ma non riesco a capire che cosa fa abbastanza stabile dire.

Inoltre, sarebbe bello se qualcuno potesse fornirmi una soluzione per questo problema.

La ringrazio molto

cghersi

risposta

0

è molto facile da imbrogliare git in timestamp, in quanto controlla solo l'ora locale, quindi probabilmente i cvs controllò l'ora nell'ordine dei tag è stata impostata.

Ma una soluzione a questo è utilizzare cherry-pick. Questo comando è quasi un copia-incolla da commit, quindi è possibile dare un checkout a un commit da rev1.1 e utilizzare lo cherry-pick nel commit perso dopo rev1.2. Poi usa uno rebase -i solo per cancellare/schiacciare il commit duplicato dopo rev1.2. Come usando rebase/cherry-pick, l'albero del commit richiede un triste push -f nel ramo per risolvere tutto.

Problemi correlati