2

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

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

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

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

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

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

2 回答 2

1

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

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

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

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

更大的项目将是,并且就您而言,您会注意到对您个人而言方便的工具比任何人的任何建议都更有价值。

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

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

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

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

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

于 2012-07-03T09:19:59.803 回答