9

gitolite リポジトリと同じサーバーに Redmine をインストールしています。

リポジトリを Redmine インスタンスにリンクするために、次のコマンドを使用してローカルでリポジトリのクローンを作成しました。

git clone --bare --local /home/git/repositories/my-repo.git

サーバーでレポのクローンを作成したのと同じように、Redmine でレポをナビゲートできます。

問題は、それを行うとすぐに、ローカル マシンのリモート リポジトリに何もプッシュできなくなることです。

やってみると

git push

次のエラーが表示されます。

Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 695 bytes, done.
Total 8 (delta 6), reused 0 (delta 0)
fatal: loose object 455f30c5243ec5b5cc698b1e51bdfb23ee6c1b22 (stored in     ./objects/45/5f30c5243ec5b5cc698b1e51bdfb23ee6c1b22) is corrupt
error: unpack failed: unpack-objects abnormal exit
To git@dev.my-host.org:my-repo.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'git@my-host.org:my-repo.git'

それに関するアイデアはありますか?

編集#1

gitolite ログには次のように表示されます。

2012-10-22.10:59:59     13121   ssh     ARGV=drgomesp   SOC=git-receive-pack 'my-repo.git'   FROM=187.65.248.7
2012-10-22.11:00:00     13121           access(my-repo, drgomesp, W, 'any'),-> refs/.*
2012-10-22.11:00:00     13121           trigger,Writable,access_1,ACCESS_1,my-repo,drgomesp,W,any,refs/.*
2012-10-22.11:00:00     13121   pre_git my-repo      drgomesp        W       any     -> refs/.*
2012-10-22.11:00:00     13121           system,git,shell,-c,git-receive-pack '/home/git/repositories/my-repo.git'
2012-10-22.11:00:00     13121   END
4

2 に答える 2

16

両方とも同じマシン上にあるため、いくつかの簡単な手順に従って、元のレポを Redmine に向けて動作させることができました。

  1. gitolite のリポジトリの元のリポジトリを使用して、Redmine にリポジトリを追加します。パスは次のようになります/home/git/repositories/my-repo.git

  2. 最初、Redmine にはリポジトリを読み取る権限がないため、実行して Redmine ユーザー (通常はwww-dataまたはapache) をgitグループに追加することで問題を解決します (usermod -a -G git www-dataサーバーの構成に注意してください。 gitolite の設定方法に。

  3. UMASKファイルのプロパティを.gitolite.rc、デフォルト値の0077から、ディレクトリおよびファイルの場合と0022同等の に変更します。755 (rwxr-xr-x)644 (rw-r--r--)

  4. 既存のリポジトリの場合、実行する必要がある場合がありますchmod -R g+rX

404Redmine でリポジトリ タブのリポジトリではなく を開くというアクセス許可の問題が引き続き発生する場合は、Redmine ユーザーがリポジトリ全体を確実に読み取れるようにするためにchmod -R g+rX、 全体で を実行する必要がある場合があります。/home/git/repositories

于 2012-10-26T12:18:07.990 に答える
1

git repack remote/origin/masterが問題を解決しない場合は、「 git:プッシュできません(アンパッカーエラー)umask 0002 」で説明されているように、書き込み権限の問題を回避するためにumask()を確認してください。

そのほかに、「アンパッカーエラーGit-ベアリポジトリからステージングサーバーへのプッシュ」は、チェックする他のすべてのポイントを要約しています。

于 2012-10-21T17:45:27.897 に答える