¿Cómo me recupero al presionar un file gitosis.conf con errores de análisis debido a saltos de línea?

He configurado con éxito la gitosis para un espejo Android (que contiene múltiples repositorys git). Al agregar una nueva ruta de acceso .git después de escribir = en gitosis.conf logré insert algunos saltos de línea. Guardado, confirmado y enviado al server cuando recibí el siguiente error de análisis:

Rastreo (llamada más reciente): Archivo "/ usr / bin / gitosis-run-hook", línea 8, en load_entry_point ('gitosis == 0.2', 'console_scripts', 'gitosis-run-hook') ()

Archivo "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py", línea 24, en ejecutar return app.main ()

Archivo "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py", línea 38, en main.handle_args (analizador, cfg, options, args)

Archivo "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py", línea 75, en handle_args post_update (cfg, git_dir)

Archivo "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py", línea 33, en post_update cfg.read (os.path.join (export, ' .. ',' gitosis.conf '))

File "/usr/lib/python2.5/ConfigParser.py", línea 267, en read self._read (fp, filename)

Archivo "/usr/lib/python2.5/ConfigParser.py", línea 490, en _read raise e

ConfigParser.ParsingError: el file contiene errores de análisis: ./gitosis-export/../gitosis.conf

(…)

He eliminado el salto de línea y enmendar la confirmación por

git commit -m "corregir salto de línea" –mendar

Sin embargo, git push todavía produce exactamente el mismo error. Me lleva a creer que la gitosis me impide hacer más impulsos.

¿Cómo me recupero de esto?

Hago esto todo el time. 🙂 La respuesta es iniciar session en el server de gitosis y editar la copy del file de configuration allí. En el directory de inicio del usuario que posee la instancia de gitosis, debe haber un enlace llamado .gitosis.conf (en realidad apunta a gitosis-admin.git / gitosis.conf). Edite ese file y solucione los problemas allí; luego, cuando presiones el siguiente, todo estará bien.

En realidad puedes hacer algo un poco más inteligente. Dado que gitosis-admin.git es un file de git, puede clonarlo localmente, restablecerlo a una versión de trabajo y confirmar el cambio. Un truco es que tienes que hacer todo como el usuario "git".

Lo hicimos de esta manera, pero planeamos cambiar a gitolite, que busca errores antes de incorporar cambios por esta razón.

cambiar a un directory vacío al que el usuario "git" tiene acceso de escritura

sudo -H -u git git clone (directory gitosis repo) /gitosis-admin.git

cd gitosis-admin

sudo -H -u git git rebase -i (identificación de confirmación del último estado de trabajo conocido)

p.ej

sudo -H -u git git rebase -i HEAD ^^

con la bandera interactiva, es más difícil cometer un error; siga las instrucciones para elegir solo el derecho (conocido para trabajar) cometer

sudo -H -u git git push -f origin master

La bandera -f obliga a git a hacer el empuje aunque la twig principal del repository no sea un antecesor de su nueva twig. Esto debería solucionar el problema, y ​​usted debería ser capaz de empujar / tirar normalmente desde sus sucursales locales.