有没有办法使用 git-svn 将 Git 存储库镜像到 SVN 并使 Git 标签/分支成为 SVN 标签/分支?
我尝试过使用 git-svn 将 Git 存储库镜像到 SVN 存储库,但我似乎只能将主更改推送到 SVN 存储库主干。
基本上我到目前为止所做的就是创建一个具有标准布局(项目名称/主干、项目名称/标签、项目名称/分支)的 SVN 存储库,然后执行 'git svn init --stdlayout http://server/svn/project-name'。这会为当前的 Git 存储库设置 git-svn,然后我在 Git 存储库中进行任何我想要的更改,然后通过“git svn dcommit”将这些更改推送到 SVN,但这似乎只适用于推送当前分支(通常是 master) 到 SVN 项目的 trunk 文件夹。
我想要做的是创建 Git 标签,然后将它们推送到 SVN 项目的标签文件夹。我想对所有分支执行相同的操作,但这不是必需的。我需要 SVN 镜像来让 trunk 镜像 Git master 分支,让标签镜像 Git 标签。
注意:SVN镜像是只读的
I've played around with using git-svn to mirror a Git repo to an SVN repo, but I can't seem to do more than push the master changes to the SVN repos trunk.
Essentially what I've done so far is create an SVN repo with the standard layout (project-name/trunk, project-name/tags, project-name/branches) and then do a 'git svn init --stdlayout http://server/svn/project-name'. This sets up git-svn for the current Git repo and then I make any changes I want to in the Git repo and then push those to SVN via 'git svn dcommit', but this only seems to work for the pushing the current branch (usually master) to the SVN project's trunk folder.
What I'd like to be able to do is create Git tags and then push those to the SVN project's tags folder. I'd like to do the same for all of the branches, but that's not required. I need the SVN mirror to have trunk mirror the Git master branch and the tags mirror the Git tags.
Note: the SVN mirror would be read-only
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试 SubGit 而不是 git-svn。
SubGit 为 Subversion 和 Git 存储库提供读写镜像功能。除此之外,它将 Git 分支和标签转换为 Subversion 分支和标签目录。
请参阅 SubGit 文档 和 git-svn 比较 了解更多详细信息。
SubGit 是一个商业产品,有一些免费选项。一次性导入也是免费的。
You may try SubGit instead of git-svn.
SubGit provides read-write mirror functionality for Subversion and Git repositories. Among other things it converts both Git branches and tags into Subversion branches and tags directories.
See SubGit documentation and git-svn comparison for more details.
SubGit is a commercial product with some free options. One-time import is also free.
仅使用 git svn ,您无法将任何 Git 操作镜像回 SVN 中。只有在镜像分支中完成的新提交才能安全地提交回 SVN。
要获得更完整的往返,您可以 尝试 git2svn 重建 SVN 存储库。
同时,您可以研究这个 git svn 工作流程,即使没有明确提及标签。
With
git svn
alone, you cannot mirror any Git operation back in the SVN. Only new commits done in mirrored branches can be safely dcommit back to SVN.For a more complete round-trip, you could try git2svn to rebuild a SVN repo.
In the meantime, you can study this git svn workflow, even though tags aren't explicitly mentioned.