2

奇妙な問題が発生しています。これはバグの可能性があると思います。

構成の変更をGitサーバーにプッシュしました。これには新しいリポジトリが含まれていたため、プッシュした後、サーバーにログオンしてリポジトリを作成および初期化しました(メイン製品のリポジトリteamer.gitのコピーとして)。

rwel@ve-git:/home/git/repositories/teamer$ sudo su git
git@ve-git:~/repositories/teamer$ git clone --bare ../teamer.git analytics.git
git@ve-git:~/repositories/teamer$ gitolite setup 

奇妙なことに、「gitolite setup」を実行すると、変更が元に戻ったように見えます。リポジトリに、構成の以前の状態とまったく同じ新しいコミットが表示されます。

GitXスクリーンショット ここで何が起こったのですか、どうすれば修正できますか?さらに詳しい情報が必要な場合は、お知らせください。

ありがとう!


編集:新しい構成をプッシュした後にいくつかのエラーが発生しました。これと関係がある可能性があります:

gitolite-admin rwel$ git push origin
Counting objects: 11, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (7/7), 1.07 KiB, done.
Total 7 (delta 2), reused 0 (delta 0)
remote: *** hooks.mailinglist is not set so no email will be sent
remote: *** for refs/heads/master update 85dd4c5e7592fadbdb0d445a245a8763d6e2042b->1063acec3b106b348fadac655d154a78ea15ead5
remote: FATAL: no files/dirs called 'hooks' or 'logs' are allowed
4

1 に答える 1

2

私は問題を見つけたと思います。(共通の)フックをGitolite管理リポジトリのルートディレクトリに配置しました([gitolite-admin.git]/hooks/common)。Gitはこれを好まないため、エラーが発生します。

remote: FATAL: no files/dirs called 'hooks' or 'logs' are allowed

おそらくこれが原因で、Gitoliteのインストールが台無しになり、セットアップスクリプトが失敗したコミットを元に戻そうとしているように見えます。

修正

  1. gitolite-admin.gitまず、サーバーにクローンを作成し、リセットしてHEAD^リポジトリに強制的にプッシュすることで、リポジトリ内の混乱をクリーンアップする必要がありました(ここで説明します)。

    git@ve-git:~/temp$ git reset --hard HEAD^
    git@ve-git:~/temp$ gitolite push origin -f
    
  2. 致命的なエラーを修正するために、ドキュメントでアドバイスされているように、フックをサブディレクトリに移動しました(ステップ1からのリセットに基づくブランチでmaster):

    $ git checkout -b hooksfix origin/master
    $ mkdir extra
    $ mv hooks extra
    $ git add --all
    $ git commit -m "moved hooks directory to prevent errors"
    $ git push origin hooksfix:master
    

    これを機能させる.gitolite.rcには、Gitサーバー上のファイルに次の行を追加する必要もありました。

    LOCAL_CODE                  => "$ENV{HOME}/.gitolite/extra",
    
  3. これをプッシュした後、致命的なエラーはなくなりました。次に、最初の変更を修正済みにリベースmasterし、問題なくプッシュできるようになりました。

    $ git checkout master
    $ git rebase origin/master
    $ git push origin
    
于 2012-11-20T09:52:55.517 に答える