2010-01-19 10 views
8

He estado usando Git & Git-Svn durante un año y de alguna manera me he dado cuenta de que, después de un dcommit, mi historial de confirmaciones se conserva, pero las marcas de tiempo no . En otras palabras, cada entrada de commit de git se conserva, pero en Svn cada commit tiene la misma marca de tiempo (más o menos).Git-Svn: conservar la marca de tiempo después de ejecutar

No es raro que trabaje de forma remota durante un día o más a la vez, haciendo cualquier cantidad de compromisos durante ese tiempo. Idealmente, me gustaría que mi registro de svn refleje las veces que realicé esas confirmaciones en git en lugar de la hora en que la confirmación (junto con cualquier otra confirmación) fue dcommitted a svn. ¿Es eso posible?

Gracias.

Respuesta

8

Cuando git-svn crea una confirmación de Subversion, hace aproximadamente lo mismo que normalmente haría con Subversion para crear una confirmación. Esto significa que la marca de tiempo de Subversion será el momento en que se ejecute la operación de git svn dcommit.

Incluso si pudiera cambiar la marca de tiempo de confirmación, esto puede no ser lo que desea hacer. Normalmente, la gente esperará que las marcas de tiempo de compromiso en Subversion sigan una secuencia cronológicamente creciente, y podría ser confuso ver las marcas de tiempo "anticuadas" en el repositorio.

+0

Bastante. En este caso, estoy trabajando solo en un proyecto, pero tienes razón de que sería increíblemente confuso en una situación de equipo. Especialmente dado que cada commit de git se aplica encima de cualquier cambio anterior a través de rebase. –

1

Es posible si usa SubGit en el servidor. Intenta preservar las fechas de confirmación de Git ya que es posible (desafortunadamente, el repositorio SVN tiene una restricción interna que las fechas deben ir cronológicamente, de lo contrario, algunos algoritmos de búsqueda binarios no funcionarán correctamente). No conozco otra solución que modifique svn: date dentro de la misma transacción de confirmación. Git-svn usa el motor SVN de libsvn que, como sé, no permite dicha modificación de svn: date (solo después de la transacción cuando se crea la revisión y usted conoce su número).

Cuestiones relacionadas