2009-08-19 4 views
16

Ich habe erfolgreich Gitosis für einen Android-Spiegel (mit mehreren Git Repositories) eingerichtet. Beim Hinzufügen eines neuen .git-Pfads nach dem Schreibzugriff in der Datei gitosis.conf habe ich einige Zeilenumbrüche eingefügt. Gespeichert, engagiert und schob zum Server, wenn ich die folgenden Parsing-Fehler erhalten:Wie erhole ich mich vom Verschieben einer gitosis.conf-Datei mit Analysefehlern aufgrund von Zeilenumbrüchen?

Traceback (most recent call last): File "/usr/bin/gitosis-run-hook", line 8, in load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')()

File "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py", line 24, in run return app.main()

File "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py", line 38, in main self.handle_args(parser, cfg, options, args)

File "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py", line 75, in handle_args post_update(cfg, git_dir)

File "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py", line 33, in post_update cfg.read(os.path.join(export, '..', 'gitosis.conf'))

File "/usr/lib/python2.5/ConfigParser.py", line 267, in read self._read(fp, filename)

File "/usr/lib/python2.5/ConfigParser.py", line 490, in _read raise e

ConfigParser.ParsingError: File contains parsing errors: ./gitosis-export/../gitosis.conf

(...)

ich den Zeilenumbruch entfernt und amendend begehen die

von

git -m „fix Zeilenumbruch“ begehen --amend

Allerdings liefert Git Push immer noch genau den gleichen Fehler. Es lässt mich glauben, dass die Gitose mich daran hindert, weitere Schritte zu unternehmen.

Wie erhole ich mich davon?

Antwort

27

Ich mache das die ganze Zeit. :-) Die Antwort ist, sich am Gitosis-Server anzumelden und dort die Kopie der Konfigurationsdatei zu bearbeiten. Im Home-Verzeichnis des Benutzers, der die Gitosis-Instanz besitzt, sollte ein Link mit der Bezeichnung .gitosis.conf vorhanden sein (dieser verweist auf gitosis-admin.git/gitosis.conf). Bearbeiten Sie diese Datei und beheben Sie die Probleme dort; dann, wenn Sie als nächstes drücken, wird es gut.

+0

Arbeitete perfekt. Ich musste auch eine zusätzliche $ git merge Herkunft/Master – Shoan

+0

Saved me, große Zeit! –

+0

Arbeitete für mich. Vielen Dank. – cjungel

2

Sie können tatsächlich etwas etwas schlauer tun. Da gitosis-admin.git ein Git-Archiv ist, können Sie es lokal klonen, auf eine funktionierende Version zurücksetzen und die Änderung festschreiben. Ein Trick ist, dass Sie als "git" -Benutzer alles machen müssen.

Wir haben es so gemacht, aber wir planen, zu gitolite zu wechseln, das auf Fehler prüft, bevor Änderungen genau aus diesem Grund eingearbeitet werden.

Änderung in ein leeres Verzeichnis, auf die die „GIT“ Benutzer Schreibzugriff hat

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

cd gitosis-admin

sudo -H -u git git rebase -i (commit id of last known working state)

z.B.

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

mit der interaktiven Flagge, ist es schwerer, einen Fehler zu machen; folgen Sie den Anweisungen nur das Recht (bekannt Arbeit) zu holen begehen

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

Das -f Flag erzwingt git die Push zu tun, auch wenn der Master-Zweig in dem Repo nicht ein Vorfahre der neuen Niederlassung ist. Dies sollte das Problem beheben, und Sie sollten in der Lage sein, wie gewohnt von Ihren lokalen Niederlassungen zu drücken/ziehen.

Verwandte Themen