2010-07-19 21 views
14

Recientemente tuve un objeto dañado en mi repositorio, apuntando en mi HEAD (el objeto estaba vacío). Sucedió después de interrumpir un comando git-svn. Luego, restauré mi repositorio cambiando manualmente las referencias en este objeto.git-svn fetch/rebase falla después de intentar reparar un archivo dañado

Ahora, yo quiero sincronizar mi repositorio git con SVN, pero svn git fetch devuelve:

fatal: Invalid revision range 5a5dc92cd3083960fb4828ae387a32cda0554fa8..refs/remotes/a-branch 
rev-list --pretty=raw --no-color --reverse 5a5dc92cd3083960fb4828ae387a32cda0554fa8..refs/remotes/a-branch --: command returned error: 128 

5a5dc92cd3083960fb4828ae387a32cda0554fa8 se refiere al objeto dañado, me gustaría decir git-svn no tener en cuenta este objeto, pero otro, pero no sé cómo hackear esto.

Si alguien sabe dónde/cómo git-svn internamente almacena este valor, sería genial.

Gracias

Respuesta

17

si ha svn metadatos almacenados con sus mensajes de confirmación (los http://svn.…./svn/[email protected] (<id>)), puede eliminar los archivos .rev_map.<id> de los .git/svn/… directorios.

git-svn los volverá a crear antes de ejecutar el siguiente comando.

Editar: Cuando se ejecuta git gc si usted ve la salida a lo largo de las líneas de:

$ git gc 
warning: reflog of 'HEAD' references pruned commits 
warning: reflog of 'refs/heads/master' references pruned commits 
warning: reflog of 'refs/remotes/trunk' references pruned commits 

entonces usted sabe que usted necesita para llevar a cabo el truco anterior. En este caso:

rm .git/svn/refs/remotes/trunk/.rev_map.* 
+0

He editado la respuesta para que sea más claro que el en el rev_map proviene de la referencia anterior, ya que trabajé a cabo lo que se necesitaba de otra referencia en la web. –

Cuestiones relacionadas