我已经在Windows上使用TortoiseSVN多年,为我自己的项目使用本地文件系统存储库。我打算开始与其中一个项目的朋友合作,并将存储库转移到我自己的网站。我读了很多“git beats SVN!”过去几年的帖子,并认为我至少应该看到大惊小怪的是什么。一些研究发现了“git svn”命令,并且TortoiseGit声称拥有一定程度的git-svn支持。我喜欢保留SVN存储库的想法,并在将它们提交到存储库之前用git做一些本地提交或分支。 “搁置”命令听起来也很有用。
不幸的是,虽然有很多CLI git-svn教程,但TortoiseGit却没有任何东西(事实上它似乎仍处于早期开发阶段)。结果,我在试图找出让这些部分合作所需的工作流程时遇到了问题。
我在D:\ Projects \ repositories \ MyProject中有一个SVN存储库。我创建了D:\ Projects \ temp \ gittest,并尝试对存储库执行TortoiseGit“Git Clone”。从那里,我有问题试图指出trunk / branches / tags文件夹的位置(这只是我的存储库中的标准布局)。当我离开那些未经检查的时候,我只能得到有用的结果。当我似乎确实正确启动了git存储库时,我能够进行一些更改并执行一些git提交,但是在执行SVN DCommit时遇到了问题。
所以,我希望有人可以提供一套相当详细的说明,说明如何正确使用TortoiseGit和现有的SVN存储库(在本地文件系统或远程服务器上使用存储库)。不“不要使用SVN!”请回答 - 我有兴趣学习如何让这两件作品一起工作。如果你觉得TortoiseGit的SVN支持还不够成熟,那么这也是有用的信息。
谢谢!
答案 0 :(得分:25)
答案 1 :(得分:9)
更新:我支持我写的问题的答案(“我打算开始与朋友合作......”),但如果你确实想要/需要保留Subversion我更喜欢my git-svn workflow。
git-svn存在的唯一原因是允许在现有的Subversion基础设施旁边使用Git。由于您基本上没有基础设施,因此绝对没有理由不完全切换到Git。 git-svn比svn好,但是如果可能的话应该避免使用。
我强烈建议你git svn clone -s --no-metadata <path_to_svn>
然后忘记你曾经有过。{/ p>
答案 2 :(得分:8)
现在这可能是显而易见的,但是tortoisegit现在已经内置了对git-svn的支持。
答案 3 :(得分:3)
之前已经注意到 - 只需将其作为正确的答案:)
TortoiseGit现在已经为SVN提供了支持,因此它应该可以正常工作。
答案 4 :(得分:1)
我使用了来自http://msysgit.github.com/的msysgit,以便我可以从subversion存储库中提取,这需要接受安全证书和其他命令提示符选项。一旦代码被拉出,我就可以使用TortoiseGit来实现大部分功能(除了svn push AFAIR)
答案 5 :(得分:1)
您可以尝试使用没有集成SVN支持的TortoiseGit,而不是通常的Git客户端。要使其工作,您可以将SubGit安装到SVN存储库中。
下面我列出了一些如何设置SubGit的基本说明:
$ subgit configure SVN_REPOS
# Adjust SVN_REPOS/conf/subgit.conf to specify your branches and tags
# Adjust SVN_REPOS/conf/authors.txt to specify git & svn authors mapping
$ subgit install SVN_REPOS
...
$ INSTALLATION SUCCESSFUL
安装完成后,您可以在SVN_REPOS / .git中找到Git存储库,并像使用普通的Git存储库一样使用它。 TortoiseGit执行的每个git push
都会触发预接收和后接收挂钩,将传入的修改复制到SVN存储库中。
有关详细信息,请参阅SubGit documentation和git-svn比较页面。
从版本2.0开始(发布时尚未发布)SubGit允许同步位于不同主机上的Subversion和Git存储库。
SubGit是一种商业工具,但对于拥有多达10个提交者以及开源和学术项目的存储库,它是免费的。
免责声明:我是SubGit开发人员之一。
答案 6 :(得分:0)
可能你可以把你的项目放到支持svn access的github上。因此,您可以继续使用TortoiseSVN并与他人合作。另一方面,你可以使用sourceforge等东西来通过SVN而不是git进行协作。 BTW为什么不使用git svn clone URLOfTheSVNRepos而后来改为git提交。
答案 7 :(得分:0)
仅供记录:SourceTree for Windows正在计划从版本1.4开始支持git-svn(和hgsubversion)。相应的问题是SRCTREEWIN-119。