2011-08-02 16 views
8
$ git svn clone -s http://a_repo local_dir (by default this brings me r1) to hdd 
    Initialized empty Git repository in d:/Temp/local_dir/.git/ 
    r1 = some_SHA (refs/remotes/trunk) 

    $ cd local_dir 
    $ git svn rebase 
    fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. 
    Use '--' to separate paths from revisions 
    log --no-color --no-decorate --first-parent --pretty=medium HEAD: command returned error: 128 

¿Cómo puedo pagar el reintegro?git svn argumento ambiguo 'HEAD'

También intenté sin rebasar, usar fetch, pero solo trae una revisión a la vez. Tenemos varios miles de confirmaciones, a este ritmo, tomará días copiar el repositorio.

+0

que quiere decir 'git svn clone' trae solamente UN revisión? Está utilizando '-s', ¿su repositorio SVN está realmente en disposición estándar? Normalmente, 'git svn clone' shoud también crea una copia de trabajo. – eckes

Respuesta

9

Si obtienes solo una confirmación de tu repositorio SVN, supongo que el repositorio SVN no está en el diseño estándar pero dices git svn que es.

git svn clone http://a_repo local_dir 

(es decir, sin la bandera -s) debe ser capaz de clonar el repositorio SVN. Si esto funciona, vuelva a intentar el clon y especifique los directorios de troncales, etiquetas y ramas como se describe en el docs of git-svn.

+0

Mi repositorio está en diseño estándar. También probé a través de -T, especificando el tronco como parámetro, lo mismo. Recuerdo haber leído en alguna parte que si inicias un clon svn mediante 'fetch', solo puedes continuar a través de' fetch'. Tal vez es la razón por la cual buscar "funciona" (obteniendo solo una revisión por cada llamada)? Porque un clon git es un init seguido de un fetch? – Senthess

+0

@Senthess: ¿Funciona o no un simple 'git svn clone http: // a_repo local_dir' (es decir, sin ningún tipo de repo-layout-info-params)? Además, 'git svn fetch' debería mostrar todas las revisiones, no solo una. Usted hace un 'git svn clone' en un nuevo directorio sin repo, ¿verdad? – eckes

+0

Ya no estoy en el trabajo, y desafortunadamente no puedo probar esto. Escribiré el resultado por la mañana. Estoy clonando en un directorio nuevo (no existen archivos antes del clon). – Senthess

2
git svn clone [your-repo-url] -s 
# OR 
git svn clone [your-repo-url] -T [your-trunk-dir] -t [your-tags-dir] -b [your-branches-dir] 

Si no se especifica la bandera -r (como el anterior), entonces usted necesita para

git svn fetch 
2

Este error se produce cuando se clona un rama en lugar de todo el repositorio SVN.

Si la URL de recompra parece https://svnserver/project/repo/trunk o https://svnserver/project/branches/pre-something, cambie el comando de clonación a:

git svn clone https://svnserver/project/repo --stdlayout