svn或git还是其他什么?

时间:2012-07-02 07:26:55

标签: git svn merge branch

我们的团队正在开发游戏。

我想尝试基于我们的代码的单独原型,但稍有不同 我们使用svn代码库。

现在对于我自己的原型,我应该如何设置一个仓库以便我可以保留svn的更新,但不会让我意外地提交我的更改?

我认为分支(或分叉?)是这里的相关概念,但实际上并没有自己设置。

如果有人能够制定概念策略,那将会很有帮助 以下是我的想法,虽然我自己没有做过分支/合并 我是否正在接近这个?

  
      
  1. 分叉项目
  2.   
  3. 将我的更改应用于分叉项目&继续从主干获取更新
  4.   如果需要,
  5. 将我的更改合并到主(我的团队的svn repo)。
  6.   
  • 非常感谢任何实用技巧(例如svn / git之间的选择)!

2 个答案:

答案 0 :(得分:1)

我认为你只需使用SVN即可: “为项目分叉”==“为您的案例创建一个分支”。这是一个常见的过程:创建分支,进行更改,可能会定期将主干合并到其中(所谓的同步合并),如果原型成功或者忘记分支,则将其合并回主干。也许在处理代码库的副本时,您将修复原始代码中的一些错误,因此您可以选择修复回原始主干版本(这是不将项目分支到单独的存储库的原因)。

如果您更喜欢Git,请查看以下工具:

  • SubGit。您将它安装到您的SVN存储库中,它为SVN存储库(纯Git接口,而不是git-svn)创建一个Git接口,具有动态合并,忽略和标记转换。因此,您可以尝试这两个接口并最终关闭接口(如果您的团队决定完全切换到它,或者只有SVN,如果Git不适合您,则只留下Git。)
  • 您也可以使用git-svn,但提供相当有限的功能:您只能推送线性历史记录,它不会即时转换忽略或标记;不支持樱桃选择
  • 您可以将SmartGit视为git-svn替换:支持ignores,tags,cherry-pick甚至svn:externals

答案 1 :(得分:0)

我认为答案取决于您的项目计划的规模,以及您计划在开发过程中的进度。

更大的项目将是,并且到目前为止,你会注意到,对于你个人来说,方便的工具比任何人的任何建议都更有价值。

我会选择分布式版本控制集中在任何情况下。而git是市场上最先进的DVCS之一。你不会出错。

在我们的项目中,我们在开发人员的工作站上使用git,集中式版本控制在服务器上作为主存储(即PVCS Serena)。我们没有一个插件来自动同步Serena和git并手动执行此操作,并考虑到使用git的好处的这个小的过度杀伤。

但在你的情况下, git-svn SubGit 会有所帮助。

但是,如果您需要的不仅仅是版本控制(并且由于任何原因无法使用github) - 问题跟踪,文档维基,请考虑fossil。它基于与git相同的原则,但具有问题跟踪,文档维基,Web界面和非常小的可执行文件,无需安装。

但是如果这些变化微不足道,或者你不打算走得太远,为什么不坚持使用别人的标准选择呢?