2009-08-19 13 views
16

Androidミラー(複数のgitリポジトリを含む)のgitosisを正常にセットアップしました。 gitosis.confにwritable =の後に新しい.gitパスを追加すると、私はいくつかの改行を挿入することができました。保存された、コミットされ、私は、次の解析エラー受信時にサーバーにプッシュ:私は改行を削除し、-m「修正改行を」コミット改行のために解析エラーが発生したgitosis.confファイルをプッシュする方法はありますか?

のgitでコミットamendendいる

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

(...)

--amend

しかしgit pushを実行しても、まったく同じエラーが返されます。それは、私が、二腎症が、私にそれ以上のプッシュをするのを妨げていると信じさせる。

これからどのように復旧しますか?

答えて

27

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

+0

完全に作業しました。私も追加しなければならなかった $ git merge origin/master – Shoan

+0

私を救いました、大きな時間! –

+0

私のために働いた。ありがとう。 – cjungel

2

実際には少し賢いことができます。 gitosis-admin.gitはgitアーカイブなので、ローカルでクローンして、動作中のバージョンにリセットして変更をコミットできます。一つのトリックは、あなたが "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 (commit id of last known working state)

などを書き込む有しへ

空のディレクトリに変更を

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

インタラクティブフラグを使用すると、間違いをするのは難しくなります。のみ(仕事に知られている)右

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

レポでのmasterブランチがあなたの新しいブランチの祖先ではないにもかかわらず、プッシュを行うには、-fフラグを強制的にgitのコミットを選択する指示に従ってください。これで問題は解決するはずです。ローカルブランチから通常どおりにプッシュ/プルできるようにする必要があります。

関連する問題