既存の svn リポジトリの読み取り専用 git ミラーをセットアップし、誰かが svn にコミットするたびに git ミラーが自動的に更新されるようにポストコミット フックをセットアップする最良の方法は何でしょうか? 主に、サーバー上で git-svn clone を一度だけ実行してから、svn リポジトリ全体を git-svn clone することなく、git からチェックアウトできるようにしたいと考えています。
3601 次
2 に答える
4
私はSVNを使用するプロジェクトでそれを行います(githubの公開リポジトリにプッシュします)。SVNコミットフックはありませんが、これはcronジョブで:
#!/bin/bash
repo=/path/to/my-mirror.git
lockfile="$repo/cron-lock"
if ! lockfile -r1 "$lockfile";then
exit 1
fi
export GIT_DIR=$repo
# update refs/remotes/git-svn:
git svn fetch -q
# make 'master' match the git-svn branch:
git fetch "$repo" refs/remotes/git-svn:refs/heads/master
# publish to github
git push github master
rm -f "$lockfile"
cron ジョブの代わりに SVN コミット フックからこれをトリガーすると、動作するはずです。
もちろん、をgithub
使用してというリモートをセットアップする必要がありますgit remote add github [...]
。私が使用している git リポジトリは「ベア」リポジトリです (参考文献を参照git init --bare
)。
于 2009-11-07T19:05:01.750 に答える
2
Svn/Git ミラー (書き込み可能) をセットアップする最良の方法は、SubGit を使用することです。これは、このタスクのために特別に開発されたツールです。免責事項: 私はこのツールの開発者です。
于 2012-01-04T13:01:06.007 に答える