2

svn ( git svn fetch) から一定時間 (例えば 1 時間) で更新される git リポジトリがあります。fetch が終了すると、 from のすべてのブランチがrefs/heads対応する from のブランチで更新されrefs/remotesます。の Svn ブランチは、refs/headsこの更新プロセス中にのみ更新され、他の誰もそれらに書き込みアクセスできません。

svn 更新プロセス中にリポジトリにアクセスして破損する可能性があるのだろうか? たとえば、リポジトリ全体のクローン作成、そこからの最新の変更の取得、またはプッシュ (svn ブランチへではない) などです。

4

1 に答える 1

1

個人的な経験に基づいて、私の会社はSVNリポジトリを主要なリポジトリとして使用しており、新しいリビジョンが20分ごとにSVNリポジトリに生成されます。

コマンドを実行すると、実行を開始しgit-svnたスクリプトの最後のリビジョンが記憶さgit-svnれます。たとえば、svnリポジトリに新しいリビジョンが生成された場合、新しいリビジョンはGitリポジトリにフェッチされません。次回git svn fetchコマンドを実行すると、gitリポジトリにフェッチされます。

私が直面している最も問題は、まだ実行中のラップトップの電源を切るgit svn fetchことですが、タスクスケジューラのバックグラウンドプロセスであるため、気付かないでしょう。したがって、この場合、gitリポジトリにロックファイルがある可能性があります。git svn fetchロックファイルが発生した場合、エラーメッセージが表示される可能性があるため、gitリポジトリ内のロックファイルを削除するまで実行できません。

于 2012-10-25T15:46:48.830 に答える