Svn 版本控制系统->;分支问题

Svn 版本控制系统->;分支问题,svn,version-control,cvs,Svn,Version Control,Cvs,我正在进行下一项任务,突然意识到我需要与主管讨论一些细节,以便继续。我将在几天后与我的主管会面时讨论此事。在那之前,我需要做另一件事 正确的方法是什么 我看到两种选择: 1) 将head revision从存储库复制到新分支,并在那里启动另一项任务。在我完成后-将其合并到主干中。或者我可能需要先从主干合并到分支,然后再合并回主干 2) 从工作副本复制到新分支。将主干还原到上一个版本(在我开始需要讨论的任务之前),切换到主干并处理另一个任务,然后在分支中完成当前任务并合并 请详细解释正确的方法,因

我正在进行下一项任务,突然意识到我需要与主管讨论一些细节,以便继续。我将在几天后与我的主管会面时讨论此事。在那之前,我需要做另一件事

正确的方法是什么

我看到两种选择:

1) 将head revision从存储库复制到新分支,并在那里启动另一项任务。在我完成后-将其合并到主干中。或者我可能需要先从主干合并到分支,然后再合并回主干

2) 从工作副本复制到新分支。将主干还原到上一个版本(在我开始需要讨论的任务之前),切换到主干并处理另一个任务,然后在分支中完成当前任务并合并


请详细解释正确的方法,因为我不是一个有经验的VCS用户。提前谢谢。

您面临的问题是,您在trunk上启动了更改,但希望将其提交到其他地方。大多数版本控制系统对此没有内置行为,这是不幸的。在SVN中,您的最佳选择是:

  • 从主干创建一个新分支
  • 执行SVN切换以将当前工作副本切换到该分支
  • 您现在应该可以修改本地更改,并能够在新分支上提交它们
  • 将它们提交到分支后,再切换回主干
  • 使用trunk上的新功能
  • 在你和你的主管讨论细节之后,把他们从分支机构合并回主干

  • 希望对我们分支机构的发布有所帮助,而不是任务。所以现在我们准备在几周内发布的所有内容都在5.1.1分支中。这些更改在发布到生产环境时会合并回主干

    事实上,两种选择都适合你,而且两种选择都不比另一种更正确;决定最简单的行动方案的是合并更改所需的难度。通常在svn中,如果可能的话,您希望避免合并

    通常这种决定取决于你的团队文化;如果您的同事通常不希望主干中有未完成/未经批准的更改,那么将您的更改移动到分支,然后在主管批准您的代码后合并是有意义的。当然,如果你是一个人工作,那么一切都取决于你


    根据您的情况,您确实有第三个选项,可能有效,也可能无效,即只需同时处理主干中的两个任务,并分别提交各个更改。

    我将执行第一个选项,因为我可以保持主干干净(随时工作)。因为你正在谈论的功能仍然需要得到你老板的确认。如果该功能最终被丢弃,您的主干仍然不会受到影响,团队中的其他成员也不会对这些更改感到困惑。

    您使用的是哪个版本控制系统?标记同时表示“svn”和“cvs”。我认为这不重要,因为问题是一般性的,但我使用svn如果它不重要,那么使用
    git stash
    :)说真的,事实上,您可以将git用作具有
    git svn
    的Subversion客户端,并提供所有git轻量级分支管理功能。我一直都在这样做,不想放弃。我是应该从标题修订版还是从工作副本创建一个新的分支?我们也这样做。。。这给我们带来的痛苦和痛苦。全铲回归(因为bug修复是在客户的生产分支中完成的,但没有合并到主干中)。由于功能集无法及时完成,但已经在同一批中提交了一部分,所以发布周期会延长到永恒。。。从这一点上说,别无选择。。。完成一个急急忙忙开始的工作,抄近路,在接下来的3个月里稳定局势,并从管理层那里得到一个延迟的、不稳定的发布版本。。。sightWe也有同样的问题,这就是为什么我们构建了ReleaseManager工具,现在可以很容易地拉出一个特性并控制发布中的内容。