什麼是設置現有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