No se puede determinar la información de SVN ascendente del historial de HEAD

2 minutos de lectura

¿Por qué recibo este mensaje de error?

  • Eso solo significa que muchas personas pueden responder o editar o editar respuestas. Todavía debería hacer una pregunta.

    – bmargulies

    30 jun.

Recibí este mensaje debido a la clonación del repositorio svn con --no-metadata opción. Tal vez ese sea el caso con su problema también.

Al clonarlo sin esa opción todo bien.

El --no-metadata La opción está destinada a clonar un repositorio SVN cuando el nuevo git clon se convertirá en la fuente canónica en el futuro. Carece de la capacidad de volver a comprometerse con el SVN ascendente, porque no tiene forma de rastrear las diferencias entre el clon de git y el SVN ascendente.

  • Esto es lo que hice.

    – Dan Gayle

    05 jul.

(Publiqué la “pregunta” de Chad como respuesta, formato fijo y errores tipográficos).

Hay un par de causas para este mensaje de error.

El primero, siendo el más común. Tiene dos historias separadas en su repositorio git: la historia que hizo en git y la historia del repositorio svn remoto.

Para solucionar esto, debe hacer que su repositorio git y el repositorio svn compartan un ancestro común para que git pueda determinar qué confirmaciones han cambiado qué.

La siguiente Artículoexplica cómo solucionar el problema:

La segunda posible causa del problema es si tiene una versión anterior de git (posible, paquete msysGit de Windows) y acaba de crear un nuevo repositorio de git que se comunica con un repositorio svn remoto.

Por ejemplo:

git svn init svn://svn.xxx.xxx/xxx/trunk
git svn fetch -r BASE:10

o

git clone svn://svn.xxx.xxx/xxx/trunk // Adds all the files in the revision...

Y recibe los siguientes mensajes de error cuando usa los siguientes comandos.

git svn info

No se puede determinar la información de svn ascendente del árbol de trabajo o

git svn rebase

no se puede determinar el historial del árbol de trabajo de información de svn ascendente o

  git svn dcommit

No se puede determinar la información de SVN ascendente del historial de HEAD

Si recibe los mensajes de error anteriores, el primer paso es verificar su versión de git. Si está ejecutando una versión anterior de git <= 1.6.3.3.* que fue en mi caso con (msysGit), entonces la forma más fácil de solucionar el problema es actualizar a una versión más nueva de git como 1.6.4.*.

La siguiente Artículo discute el problema con más detalle.

  • Gracias por el enlace al artículo, que me permitió cambiar a un repositorio svn diferente y ¡ahora estoy de vuelta en el negocio!

    – Matt Connolly

    05 may.

  • Para el primer caso común, las instrucciones del artículo están desactualizadas. El póster aquí tiene instrucciones actualizadas para los principiantes de git stackoverflow.com/questions/457694/…

    – Jaime

    12 jul.

  • Tuve este problema porque la URL del repositorio de Subversion había cambiado. Asegúrese de poder acceder a la ruta configurada en git usando un cliente svn.

    – ahnkle

    21 abr.

En mi caso, el HEAD del repositorio svn debería haber coincidido con el HEAD del repositorio git. Esta debe resolver el problema:

git update-ref refs/remotes/git-svn refs/remotes/origin/master

Si usa una rama de git diferente para svn trunk, por ejemplo svntrunkesa rama debe ser referenciada en su lugar, es decir:

git update-ref refs/remotes/git-svn refs/remotes/origin/svntrunk

  • Esto no solucionó mi problema.

    -Michael Ozeryansky

    02 ene.

  • Esto solucionó mi problema.

    – ZJ Lyu

    24 sep.

  • Error: fatal: refs/remotes/origin/master: no es un SHA1 válido

    – El Padrino

    22 jul.

  • ¡Trabajó para mi! refs/remotes/origin/master fue en cambio refs/remotes/origin/svntrunk ya que mantengo svn tronco en otra rama. Agrego esto en la publicación ya que es una wiki comunitaria.

    – ceztko

    15 mayo 2019 en 14:09

  • Esto me recordó que solo hice git clone pero olvidó git svn init ¡después! Esta secuencia funcionó: git clonegit svn initgit update-ref.

    – ulidtko

    10 oct.

Recibí este mensaje después de agregar incorrectamente el -s/--stdlayout parámetro a la git svn clone comando para un repositorio de Subversion que hizo no tener el “diseño estándar de Subversion” de trunk, tagsy branches caminos relativos.

(Los repositorios de Subversion que suelo clonar tienen las rutas relativas estándar, por lo que cuando cloné un repositorio de Subversion que no los tenía usando mi habitual git svn clone comando, recibí este mensaje críptico. El mensaje es 100% correcto, pero casi 100% inútil cuando se trata de averiguar cuál es el problema).

También puede recibir este error, cuando haya comprado un repositorio SVN recién creado.

He resuelto esto por

  1. Primero haciendo una confirmación inicial a través del comando svn
  2. Luego clone el repositorio usando el comando git svn.

tengo el mismo problema, aquí hay una solución basada en http://eikke.com/importing-a-git-tree-into-a-subversion-repository/ artículo:

$ git svn init http://server.com/svn/project/trunk/prototypes/proto1/
$ git svn fetch
  W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '/svn/!svn/bc/100/dcom/trunk/prototypes/ws' path not found
  W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
  This may take a while on large repositories
  r147367 = 37c9910f794cb9cff7ca0d5d2eb26e1f0dabbc4d (refs/remotes/git-svn)
$ svn log http://server.com/svn/project/trunk/prototypes/proto1/
  ------------------------------------------------------------------------
  r147367 | user | 2014-01-16 18:02:43 +0100 (Thu, 16 Jan 2014) | 1 line
  proto1 home
  ------------------------------------------------------------------------
$ git log --pretty=oneline master | tail -n1
  71ceab2f4776089ddbc882b8636aacec1ba5e832 Creating template
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #1

$ git show-ref git-svn
  37c9910f794cb9cff7ca0d5d2eb26e1f0dabbc4d refs/remotes/git-svn
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #2

$ echo "71ceab2f4776089ddbc882b8636aacec1ba5e832 37c9910f794cb9cff7ca0d5d2eb26e1f0dabbc4d" >> .git/info/grafts

$ git svn dcommit
  Committing to http://server.com/svn/project/trunk/prototypes/proto1 ...
    A   README.md
    A   pom.xml
A   src/main/java/.gitkeep
A   src/main/resources/.gitkeep
A   src/main/webapp/WEB-INF/web.xml
A   src/main/webapp/index.html
A   webapps/.gitkeep
  Committed r147419
    A   README.md
    A   pom.xml
A   src/main/java/.gitkeep
A   src/main/resources/.gitkeep
A   src/main/webapp/WEB-INF/web.xml
A   src/main/webapp/index.html
A   webapps/.gitkeep
  r147419 = 6a8bda7262739306d0a6e17eaad2802737dedc35 (refs/remotes/git-svn)
  No changes between current HEAD and refs/remotes/git-svn
  Resetting to the latest refs/remotes/git-svn
  Unstaged changes after reset:
    M   pom.xml
    M   src/main/webapp/index.html
    A   .gitignore
  Committed r147420
    M   pom.xml
    M   src/main/webapp/index.html
    A   .gitignore
  r147420 = 749b5acec55c341672bca08d07de8c336b5a4701 (refs/remotes/git-svn)
  No changes between current HEAD and refs/remotes/git-svn
  Resetting to the latest refs/remotes/git-svn
  ...etc...

Otra causa de este problema es un mal svn-remote.svn.rewriteRoot opción (consulte esta respuesta para obtener instrucciones sobre cómo usar esto).

El git-svn-id línea en sus compromisos importados de Subversion tiene que coincidir con el rewriteRoot URL si está configurado.

  • ¡El simple cambio de URL svn de la respuesta vinculada aquí funcionó!

    – lkraav

    05 ago. 15 en 15:28

.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad