什么是设置现有svn仓库的只读git镜像的最佳方式,并设置post-commit挂钩,以便每当有人提交svn时,git镜像会自动更新?主要是,我想在服务器上运行git-svn clone一次,然后让人们从git中检出,而不必git-svn自己克隆整个svn库。svn仓库的只读git镜像
回答
我这样做的项目,使用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"
如果触发这个从SVN提交钩子,而不是一个cron作业,它应该工作。
当然,您需要使用git remote add github [...]
设置一个名为github
的远程设备。我使用的git存储库是一个“裸”存储库(请参阅git init --bare
)。
设置Svn/Git镜像(可写入)的最佳方法是使用SubGit - 这是专门为此任务开发的工具。免责声明:我是这个工具的开发者。
美丽,谢谢 – 2012-01-06 00:42:04
此外,SubGit 2.0不再需要本地访问Subversion存储库,也可以构建远程Subversion存储库的可写Git镜像(请参阅http:// subgit.com/eap)。 – 2012-11-26 21:48:39
@AlexanderKitaev请注意,您必须在链接到产品或其他网站时披露您的联系。我从[这篇文章](http://stackoverflow.com/a/13288270/2057919)看到你开发了SubGit。我编辑了这个答案来反映这一点。将来,如果您链接到SubGit,请务必提及您的连接。 – 2016-01-19 18:03:10
- 1. svn仓库的可更新镜像,只读检出
- 2. 镜像Git仓库定期
- 3. 如何使用git镜像SVN仓库中的源代码
- 4. git-svn多个git仓库到同一个svn仓库
- 5. SourceForge:将GIT存储库镜像到SVN
- 6. 如何镜像和同步一个git仓库到另一个仓库仓库?
- 7. SVN仓库移动后的git-svn?
- 8. Git分支Svn仓库
- 9. 迁移SVN仓库到Git
- 10. SVN GIT仓库服务器
- 11. git仓库不能访问只读
- 12. 使用git和只读仓库
- 13. 将SVN仓库转换为Git,维护SVN仓库
- 14. 如何镜像GitHub的SVN仓库到SVN库在其他地方举办
- 15. svn存储库“回滚”后恢复git-svn镜像
- 16. 的git - svn的一起仓库
- 17. 与主svn仓库使用git-svn的git工作流程
- 18. 将git的主分支镜像到SVN
- 19. 维护和同步镜像的远程Git仓库
- 20. 镜像制作环境中的git仓库
- 21. 镜像git仓库的某些文件/目录
- 22. Git仓库取代svn的Scratchbox构建?
- 23. 推送现有的svn仓库git
- 24. svn仓库中的git子目录?
- 25. 按现有git仓库到现有的SVN仓库
- 26. 如何导入git仓库下的svn仓库?
- 27. 如何将git仓库复制到新的svn仓库?
- 28. 只从svn仓库导入特定的文件到git
- 29. git-svn和大量的svn仓库与许多“子库”
- 30. 如何防止gerrit复制ref/changes/*镜像git仓库
谢谢,使用github似乎要走的路 – 2009-11-08 13:50:29