1

apache2 で DAV を使用して構成された git に奇妙な問題があります。

必要に応じて詳細を説明しますが、問題の概要を以下に示します。

リポジトリの 3 つのクローンがあります。

  1. 押したり引いたりする裸のもの
  2. マシン A に 1 つ
  3. マシン B に 1 つ

マシン A で最後の 1 つの変更を行い、すべての変更をプッシュし、両方でプルを行いました。問題は、何らかの理由で、マシン B をプルした後に最後の変更が表示されないことです。

どちらのマシンでも、リモートよりも進んでいるというメッセージはありません。

奇妙な部分は次のとおりです。

  • 裸のリポジトリで「git log」を実行すると、マシン A からの最後の変更がそこに表示されます
  • ベア リポジトリの別のクローンを作成しても、変更は存在しません。マシン B が確認する最後の変更までのみです。

これはサーバー構成の問題ですか、それとも git の問題ですか? 私はこの問題を何ヶ月も抱えています。

git branch -aプリント:

マシン A:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

マシン B:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

.git/config両方のための:

[core]
  repositoryformatversion = 0
  filemode = false
  bare = false
  logallrefupdates = true
[branch "master"]
  remote = origin
  merge = refs/heads/master
[remote "origin"]
  url = http://<url>/p/home.git
  fetch = +refs/heads/*:refs/remotes/origin/*
4

1 に答える 1

3

コメントで私の推測が正しいことを確認したので、これを回答として追加します:) 問題は、この git FAQ で説明されているもののようです:

https://git.wiki.kernel.org/index.php/GitFaq#My_HTTP_repository_has_updates.2C_which_.27git_clone.27_misses._What_happened.3F

git update-server-info.git/hooks/ に post-update.sample と呼ばれるサンプル フックがあり、プッシュ後に自動的に実行するために名前を post-update に変更できます。これにより、ダム HTTP トランスポートが必要とする情報が生成されます。

于 2011-01-03T14:27:37.787 に答える