texto saltos salto parrafo nbsp linea codigo bootstrap git gitosis

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



salto linea texto html (2)

He configurado con éxito la gitosis para un espejo de Android (que contiene varios repositorios de git). Mientras agregaba una nueva ruta .git siguiendo writable = en gitosis.conf logré insertar algunos saltos de línea. Guardado, confirmado y enviado al servidor cuando recibí el siguiente error de análisis:

Seguimiento (última 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 ejecución retorno app.main ()

Archivo "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py", línea 38, en main self.handle_args (analizador, cfg, opciones, 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 ''))

Archivo "/usr/lib/python2.5/ConfigParser.py", línea 267, en lectura self._read (fp, nombre de archivo)

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

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

(...)

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

git commit -m "fix linebreak" --amend

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

¿Cómo me recupero de esto?


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

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

cambiar a un directorio vacío en el que el usuario "git" tenga acceso de escritura

sudo -H -u git git clone (directorio repos de gitosis) /gitosis-admin.git

cd gitosis-admin

sudo -H -u git git rebase -i (ID 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 compromiso correcto (que se sabe que funciona)

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

La bandera -f obliga a git a hacer el impulso aunque la rama maestra en el repositorio no es un antepasado de su nueva rama. Esto debería solucionar el problema, y ​​debería poder empujar / tirar normalmente de sus sucursales locales.


Hago esto todo el tiempo. :-) La respuesta es iniciar sesión en el servidor de gitosis y editar la copia del archivo de configuración allí. En el directorio 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 archivo y arregle los problemas allí; entonces, cuando empujes el siguiente, estará bien.