16

Android ミラー (複数の git リポジトリを含む) の gitosis を正常にセットアップしました。gitosis.conf で writable= の後に新しい .git パスを追加する際に、いくつかの改行を挿入することができました。次の解析エラーを受け取ったときに、保存、コミット、およびサーバーへのプッシュ:

トレースバック (最新の呼び出しが最後): ファイル "/usr/bin/gitosis-run-hook"、8 行目、load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')() 内

ファイル「/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py」、24 行目、実行中 return app.main()

ファイル "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py"、38 行目、メインの self.handle_args(parser, cfg, options, args)

ファイル "/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py"、75 行目、handle_args post_update(cfg, git_dir) 内

post_update cfg.read(os.path.join(export, ' ..', 'gitosis.conf'))

ファイル「/usr/lib/python2.5/ConfigParser.py」、267行目、読み取りself._read(fp、filename)

ファイル "/usr/lib/python2.5/ConfigParser.py"、490 行目、_read raise e

ConfigParser.ParsingError: ファイルに解析エラーが含まれています: ./gitosis-export/../gitosis.conf

(...)

改行を削除し、コミットを修正しました

git commit -m "改行を修正" --amend

ただし、 git push でもまったく同じエラーが発生します。それは、ギトーシスが私がそれ以上のプッシュをするのを妨げていると私に信じさせます.

これから回復するにはどうすればよいですか?

4

2 に答える 2

27

私はいつもこれをします。:-) 答えは、gitosis サーバーにログオンし、そこにある構成ファイルのコピーを編集することです。gitosis インスタンスを所有するユーザーのホーム ディレクトリには、.gitosis.conf という名前のリンクがあるはずです (実際には gitosis-admin.git/gitosis.conf を指しています)。そのファイルを編集して問題を修正します。次に押したらOKです。

于 2009-08-23T06:19:28.467 に答える
2

実際には、もう少し賢いことをすることができます。gitosis-admin.gitはgitアーカイブであるため、ローカルでクローンを作成し、作業バージョンにリセットして変更をコミットできます。1つのトリックは、「git」ユーザーとしてすべてを実行する必要があるということです。

このようにしましたが、この理由だけで変更を組み込む前にエラーをチェックするgitoliteに変更する予定です。

「git」ユーザーが書き込みアクセス権を持つ空のディレクトリに移動します

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

cd gitosis-admin

sudo -H -u git git rebase -i(最後に認識された動作状態のコミットID)

例えば

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

インタラクティブフラグを使用すると、間違いを犯しにくくなります。指示に従って、正しい(動作することがわかっている)コミットのみを選択します

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

-fフラグは、リポジトリ内のマスターブランチが新しいブランチの祖先ではない場合でも、gitにプッシュを強制します。これで問題が解決し、ローカルブランチから通常どおりプッシュ/プルできるようになります。

于 2010-04-01T22:43:24.630 に答える