将SVN中/branch目录内容迁移至/trunk并保留历史的解决方案
解决SVN无/trunk目录的Git迁移问题
方法一:直接用git svn指定自定义trunk路径(无需修改SVN仓库)
git svn默认会识别/trunk、/branches、/tags这类标准目录,你的仓库代码存在/branch目录,直接在clone时通过参数指定trunk路径即可完整保留历史:
git svn clone --trunk=branch --no-branches --no-tags <你的SVN仓库URL>
--trunk=branch:告知git svn将/branch作为主干目录处理--no-branches和--no-tags:由于仓库没有标准的分支/标签目录,添加这两个参数避免git svn尝试查找它们引发报错
方法二:先在SVN仓库内将/branch迁移至/trunk(保留历史)
如果需要先调整SVN目录结构,把/branch的内容迁移到/trunk并保留所有提交历史,执行以下步骤:
- 先将整个SVN仓库checkout到本地:
svn checkout <你的SVN仓库URL> svn-local cd svn-local
- 使用svn move命令完成目录迁移,该操作会完整保留历史记录:
svn move branch trunk
- 将目录变更提交到SVN服务器:
svn commit -m "Move branch to trunk to match standard SVN layout"
- 此时SVN仓库已具备标准/trunk目录,可正常执行git svn clone:
git svn clone <你的SVN仓库URL>
注意:如果有其他开发者使用该SVN仓库,需通知他们更新本地工作副本,避免后续操作冲突。
内容的提问来源于stack exchange,提问作者Boomfelled
相关产品推荐
相关产品推荐

