如何在版本控制系统中找到某些更改?

时间:2012-02-13 07:34:15

标签: version-control

我不知道我是否触及一个微妙的主题,至少它似乎并不容易......

那里有很多VCS,还有更多帖子/博客/ ...描述它们的效率。并且还有许多建议在不需要时从代码中删除东西(干净的代码)。总有句话“不会迷路”,“你总能回到它”,......

我不能完全遵循这一点。假设有一些开发人员在一个特定项目上工作。新要求出现在场景中,导致创建,修改和删除代码。并希望重构。

实际上偶尔需要某个功能,然后丢弃然后再重新添加。换句话说,已经编写了代码。该代码在“必需”阶段写入,并在“不再”阶段被删除。在“重新添加”阶段会发生什么?有些人可能会建议重写代码,但我不认为这是一个选项。实际上,“旧”代码可能包含当时出现的问题的修复程序。

项目不小,很多课程,充足的逻辑,也许一些人事变动,你明白了。恕我直言,总是希望至少有一位开发人员能够记住编写的代码及其发生的位置(包括分支名称)。

VCS是否有任何支持来回答

等问题
  • 一个尚未删除的特定方法在哪里,我对其名称只有一个模糊的猜测?
  • 我很确定这里有一个if语句,但发生了什么?
  • ...

我不想将此问题限制为一个VCS。这应该是一个普遍的问题。如果有人关心,我们目前使用Mercurial。

1 个答案:

答案 0 :(得分:0)

这种情况最好用以下方式处理:

  • 许多功能分支
  • 您要合并的一个合并分支(或reverting如果您不想再合并某个功能)应该为下一个版本提供的所有功能,以便执行集成测试。

(如“What is a useful Branch Versioning Strategy?”中所述)

使用DVCS(Mercurial,Git)更容易,因为您可以轻松地将一组提交从一个分支合并到另一个分支,然后canceling commits you don't want to see


现在关于“寻找东西”:

由于DVCS中的修订版本比CVCS中的修订版小,因此您最终会在自己的提交中分离出“小东西”,以便稍后再回过头来查看它们是否已合并。

DVCS也更容易: