2014-02-07 167 views
1

在我的工作场所,我们一直在使用SVN(相当不太有效),并且终于寻找可以将Git整合到我们日常工作流程中的方式。由于我是这里少数几个有Git经验(在GitHub上管理个人项目)的员工之一,我正在玩弄git svn,暂时用它作为我们svn仓库的客户端,希望能够写出一些文档可以帮助其他开发人员引入Git,而无需我们移动整个源代码管理和构建系统。git和svn共享目录

我在混帐bash中使用以下命令克隆我们的主要SVN开发分支:

git svn clone -r HEAD path_to_svn Work 

,它已成功地创建了我的工作文件夹,并拉下我的所有文件。我一直在浏览这个website for git svn tutorials的一些示例工作流程,这些工作流程都非常有希望。但是,我想知道是否可以为我新创建的工作目录引用SVN回购以及Git。我们使用TortoiseSVN作为我们SVN的客户端,我特别需要的是能够右键单击Windows中的克隆SVN repo并访问"Check for modifications"等工具,以查看当前代码库与包含的内容之间存在什么差异远程SVN仓库。

理想情况下,我希望能够继续使用我们的TortoiseSVN工具和提交对话框,以便实际推动对服务器的更改,同时充分利用关于Git中的分支和制作更高效的工作流的所有内容。我觉得会有一个体面的过渡期,让人们使用这些新技术,所以我想尽可能地让这种体验变得友好。这有可能吗?或者通过切换到git-svn,我不得不使用git作为我的SVN服务器的独家客户端,并使用诸如git svn dcommit等命令来实际推动我的工作。

回答

1

如果你使用的是git svn clone SVN-repository,你可以获得源SVN作为远程的本地Git-repository(并且可以使用Git-client将Subversion推送到客户端)。因此 - 您可以Work使用SVN客户端:它确实有什么SVN相关

可以尝试到两个工作目录的单个目录合并,但 - 头痛(未测试 - Checkout的修订与SVN另一个位置,移动.svn文件夹到Work,忽略颠覆.git文件夹和Git的.svn文件夹)不保证良好的效果

1

由于您对TortoiseSVN感到满意,我建议您使用TortoiseGit。 UI &的体验非常相似。看到这里TortoiseGit的一些screenshots。在与svn相同的地方创建git repo不是一个好主意。因为如果您使用TortoiseSVN将您的更改提交到svn,则git repo不处于相同状态。所以下一次你git svn rebase你的工作目录将与git试图拉动的更改发生冲突。相反,我会建议你有你的svn仓库与你的git clone分开。所以如果由于某种原因你不清楚你在git上做什么,你总是可以切换回svn。但是,如果你真的想使用git-svn,不要过多依赖备份(如svn)。