Cómo establecer propiedades de Subversion con git-svn


¿Hay alguna forma de establecer las propiedades de subversion en un repositorio git que fue creado por git-svn?

En mi caso, quiero editar la versión de svn:external, svn:ignore y svn:executable.

Sin embargo, la única manera de hacerlo parece implicar un check-out con el cliente de subversion. ¿Hay alguna forma de editar las propiedades svn sin tener que revisar el repositorio dos veces (una vez para git y otra vez con svn para las propiedades)?

Author: Black, 2009-08-13

5 answers

git-svn no soporta propiedades de Subversion. Cuando me encuentro con este problema, por lo general termino teniendo dos cheques.

Esto se menciona en el git-svn documentación bajo BUGS:

Ignoramos todas las propiedades SVN excepto svn:executable. Cualquier propiedad no manejada se registra en $GIT_DIR/svn/<refname>/unhandled.log

 17
Author: Greg Hewgill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-26 12:36:15

Nota: git 2.3.0 (febrero de 2015) soporta proset con git svn.
Véase commit 83c9433 por Alfred Perlstein (splbio):

git-svn: soporte para git-svn propset

Este cambio permite a git-svn soportar la configuración de propiedades de subversion.

Es útil para establecer manualmente las propiedades cuando se realiza un repositorio de subversion que requiere que se establezcan las propiedades sin necesidad de mover su conjunto de cambios a subversion por separado checkout con el fin de establecer accesorios.

Hay una nit para señalar: el código no admite la adición de props a menos que también haya cambios de contenido en los archivos.
Esto se demuestra en el testcase.

Así, como se ve en t/t9148-git-svn-propset.sh, esto ahora funciona:

git svn propset "$1" "$2" "$file" 
# like
git svn propset "svn:keywords" "FreeBSD=%H" "foo"
 19
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-01 21:21:24

Comenzó a trabajar en un parche para soportar git svn propset aquí: git svn propset support

 5
Author: David Fraser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-10 16:01:22

Es posible, simplemente clone su repositorio SVN con SmartGit. Traduce svn: executable, svn: externals y svn: ignore a ejecutable, .gitsvnextmodules y .gitignore. Por lo tanto, puede modificarlos y retroceder, lo que resultará en la modificación de las propiedades correspondientes.

Si tiene acceso a su servidor SVN, puede instalar SubGit en él. Traduce svn: executable y svn: ignore en el lado del servidor proporcionando una interfaz Git a su repositorio SVN.

 3
Author: Dmitry Pavlenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-13 00:26:55

También puedes usar svnmucc, en caso de que no quieras tener un svn checkout completo solo para establecer props (mi repositorio remoto es realmente grande).

Aquí está mi orden para agregar una línea a svn:ignore, replace URL, DIR y VALUE.

svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR
 2
Author: user3361691,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-23 16:43:29