2012-01-24 9 views
5

Estoy usando git svn para fusionar los cambios de mi repositorio git local a un servidor SVN. Sin embargo, cuando emito git svn dcommit, realmente enviaré cualquier archivo .gitignore que tenga en mi árbol fuente. Esto incluso después de haber comprobado el repositorio SVN localmente (usando SVN), configurar la propiedad svn: ignore (de forma recursiva, enumerando .gitignore como uno de los archivos a ignorar), y luego al comprometer esa propiedad, cambiar directamente a SVN.¿Es posible mantener archivos .gitignore fuera de SVN?

¿Tiene este comportamiento previsto? ¿Un insecto? ¿Hay algún trabajo que nadie sepa para mantener .gitignore fuera de SVN?

Solo sé que un usuario que no es git en mi equipo verá estos archivos y comenzará a eliminarlos, y la próxima vez que vaya al rebase/dcommit, una gran cantidad de archivos no deseados terminarán en SVN.

Respuesta

8

Puede usar el archivo "excluido" específico de repo de Git, en lugar de usar los archivos .gitignore. El archivo "excluir" reside en $GIT_DIR/info/exclude (donde $GIT_DIR es el directorio del repositorio de Git, generalmente .git). El formato de este archivo es exactamente el mismo que el de los archivos .gitignore. La diferencia es que este es un archivo específico del repositorio, solo existirá en su repositorio. No se propagará a ningún otro repositorio (por ejemplo, a través de git clone o git svn dcommit).

No hay forma de omitir los archivos .gitignore del repositorio SVN, pero guárdelos en Git. Cualquier intento de hacerlo provocaría que sus confirmaciones locales no coincidan con las confirmaciones que git-svn recupera del servidor SVN. En otras palabras, el historial de su repositorio local no sería conciliable con el historial de SVN; estarían permanentemente fuera de sincronización.

+0

¡Es bueno saber sobre los repo-ignores y también que no soy el único que no puede mantener esos molestos archivos .gitignore fuera de SVN! – ThaDon

+0

Parece que el archivo ahora se llama '$ GIT_DIR/info/exclude' sin plural-s. –

+0

@JannikJochem Creo que fue solo un error de mi parte. Hasta donde yo sé, siempre se ha denominado "excluir", no "excluir". ¡Gracias por señalar eso! :) –

Cuestiones relacionadas