---这条线在2013年非常糟糕---
当存储库主要由单个开发人员访问时,是否值得从SVN转到GIT?我有几台机器用于开发,而不是主要用C#开发.但我在我的存储库中混合使用VB,VB.Net,PHP,C#,C++,HTML,Batch,BASH等等.通过从SVN迁移到GIT,我将获得什么?现在使用TortoiseSVN + VisualSVN Server与一组中央存储库和几个客户端机器.虽然我已授予一些朋友访问我的存储库的权限,但他们并不经常更新或提交(如果有的话).
还有一种方法可以使用VisualSVN Server + TortiseSVN和Git获得灵活性和易维护性吗?
((我会咬一口......对于一个开发者/小组来说,其他平台和技巧会引人注目吗?)
请列出优点和缺点,而不仅仅是单方面的意见.
当前工具链... Visual Studio 2008(C#/ VB.Net)+ TortoiseSVN + VisualSVN
主要焦点... XNA游戏,WCF /套接字服务,Web开发
Abi*_*ern 23
我可以给你三个好处:
有一个缺点; 也就是说,Windows上可用的可视化工具不像那些可能用于其他平台的可视化工具那样友好.
has*_*sen 15
当然是.
你误解了git是什么.我的意思是,你为什么认为它只对团队有用?
如果你是一个开发人员,git更值得.
grep或ls或任何其他简单的命令行实用程序.您不需要设置任何服务器或类似的东西.winmergeu <conflictfile>在每个冲突文件上调用该命令来解决冲突.(注意:WinMerge不是命令行合并工具,它是一个可视化合并工具,具有正常的gui).我没注意到你在几台不同的机器上工作.
它没有什么区别,只要你切换到另一台机器就必须记住推拉,但你已经用svn:commit/update做了这个.
你将获得分支/合并的力量.不要低估这种力量.
你有多少次想过实现一些疯狂的想法,但从来不敢这么做因为你不想弄乱你的代码?git让你免于这些烦恼.只是在分支中执行它,如果它运行,将它合并到主分支,如果没有,删除分支并忘记它.
当然,你可能会说你也可以这样做svn revert,在你开始疯狂的想法之前恢复到修订版.但是,如果你同时修复了错误修复怎么办?如果你恢复了疯狂的想法,你将失去在尝试疯狂想法时所做的所有错误修复/维护工作.
Mar*_*ini 15
除了已经说过的话,如果你是一个单一的开发人员并且没有遇到过SVN的麻烦,我认为没有理由转换.svnserve(守护进程)在本地工作正常(我有OS X).
与Git工具相比,TortoiseSVN是一种祝福......你有什么特别的理由想要摆脱Subversion吗?
这实际上取决于您的工作流程.你经常在无法到达svn服务器的地方工作吗?你的项目是否有大量的分支,因为你喜欢同时处理几个(大)的事情?你在机器之间复制工作副本吗?你是否从现有的分支机构中拆分了新的分支机构?你有时在后备箱上工作,在一堆变化的中途想到"我应该在一个分支中做到这一点"吗?如果是这样,那么它可能是有用的.
从单一开发人员的角度来看,像svn这样的中央系统和像git这样的分散系统之间的主要区别在于,在svn中,修订是线性的.用git它是一棵树.当您处理要在多次提交中执行的更大功能时,这非常有用.
示例:您有一个很大的功能F,它包含更改a,b,c和d.使用Subversion,您可以在主干上单独提交a,b,c和d,或者您创建一个分支,这意味着您必须进行大量合并.使用git,您可以查看工作副本,提交a,b,c和d.然后你将它作为单个更改F推送给你的主人.因此,您只需在主干上看到一次提交,而不是四次提交.这样可以更容易地从日志中看到发生了什么.
您也可以使用svn分支执行此操作.但现在假设a部分也包含多个部分,如a1和a2.
这种开发模型可以使用Subversion完成.例如,Python Twisted以这种方式完成.所有的开发都是在分支上进行的,没有人在主干上工作.但是git使这样的工作流更容易.
我在Windows下使用Visual Studio 2008以您描述的方式使用这些系统:
如果你珍惜你的生活,不要 永远使用Visual Source Safe中...