【问题标题】:svn or git or something else?svn 或 git 或别的什么?
【发布时间】:2012-07-02 14:40:37
【问题描述】:

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

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

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

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

如果有人可以设计概念策略会很有帮助。
以下是我的想法,虽然我自己还没有完成分支/合并_back。
我在处理这个问题上是否走在正确的轨道上?

  1. fork 项目
  2. 将我的更改应用到分叉项目并不断从主干获取更新
  3. 如果需要,将我的更改合并回主目录(我团队的 svn 存储库)。
  • 任何实用技巧(例如在 svn/git 之间进行选择)将不胜感激!

【问题讨论】:

  • SVN 还是 git? Here 是答案 :)...我没有太多使用 svn(到目前为止只有一些 git),创建了一个本地分支来跟踪 master,进行更改并提交到本地分支并推送到 master 或为其他人创建补丁在需要时(这几乎就是您正在做的事情)在实际推送之前验证应该可以正常工作恕我直言。
  • 如果我用 git 创建一个分支,如何将更改合并回 svn 主干?
  • 嗯不确定但git-svn 可能会有所帮助,但不幸的是我从未使用过它。也许在这个主题上有更多权威的人可能会提供更好的解决方案,现在请看看 git-svn 是否适合你的账单

标签: git svn merge branch


【解决方案1】:

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

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

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

【讨论】:

  • 并回答问题:“如果我用 git 创建一个分支,我如何将更改合并回 svn 主干?” --- 只需使用 git merge 创建一个 Git 提交并推送它。所有 3 个工具都会将存储库中的 svn:mergeinfo 修改为正确的值(尽管使用 git-svn 可能会出现一些问题:您应该确保您合并的所有提交都被推送到 SVN 存储库并且您合并的历史不是很复杂) .
【解决方案2】:

我相信答案取决于您的项目计划有多大,以及您计划在开发中走多远。

更大的项目将会是,而且你会发现,对于你个人来说,这个方便的工具比任何人的任何建议都更有价值。

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

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

但在你的情况下 git-svnSubGit 会有所帮助。

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

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

【讨论】:

    猜你喜欢
    • 2011-01-31
    • 2011-02-11
    • 2021-02-22
    • 2011-02-05
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    相关资源
    最近更新 更多