我对以下场景的正确工作流程感到有些失落。 我正在使用一个开源项目,该项目托管在subversion repo中的谷歌代码上。我更喜欢使用git所以我使用git-svn将svn repo克隆到git repo。 原作者仍然致力于svn repo(耶!)而我和我的团队都承诺使用git repo。
我需要能够 - 克隆git repo(包含svn历史记录) - 配置git,以便它可以从svn存储库中获取 - 配置git-svn以便从特定的修订号
中获取注意:当你克隆git repo时,所有到svn的链接都会丢失。
答案 0 :(得分:2)
SubGit可以是一个选项,它们承诺包含所有SVN功能的双向Git< - > SVN镜像。免费开源项目。听起来很有意思,但我还没试过这个。
此外,GitHub还有一个双向 SVN connector,其功能与SubGit大致相同。您可以使用Subversion简单地查看Git URL,它开箱即用。这将需要一次性migration from SVN to Git。另见:How to migrate SVN repository with history to a new Git repository?
如果两者都不适合您,最安全的选择可能是每个客户单独git svn clone
。如果身份验证不是URL的一部分,您始终可以将克隆的GitSVN工作副本部署到其他计算机,但这与工作流程有关...相关:git clone of git-svn tree?
(我不隶属于上面列出的任何公司。)
答案 1 :(得分:0)
好的,所以我找到了一种方法来做到这一点
首先将svn repo添加到git配置文件中,如下所示
[svn-remote "svn"]
url = http://url/to/repo/svn/trunk
fetch = :refs/remotes/git-svn
注意:如果您的git repo曾经是主干,请确保将其包含在网址中
然后使用svn调用git svn fetch(获取之后)是svn-remote的名称,-r832代表-r(修订版),832是我们想要从
git svn fetch svn -r832
之后我打来电话
git svn rebase并重新定位了它的所有选择我收到一条消息说我应该创建一个分支,因为所有的变化都被重新定位然后我做了然后我切换到master并合并了刚刚创建的分支的更改。
现在我可以从该回购中获取svn fetch:D
如果有比这更好/更短的方式,听听它会很棒:)