跟踪每日变化,如同一个peon,在一个明确的商店

时间:2009-06-11 23:54:46

标签: git mercurial clearcase

我正在努力应对跟踪所有更改之间的冲突,以便我可以弄清楚我昨天在哪里破坏了代码,并且拥有一个可控制的(高开销)代码审查流程,可以保持理智。

  我在一家非常传统的ClearCase商店工作。所有签到都需要代码审查,我缺乏创建私有分支的权限。为了满足对我所有日常工作的版本控制的原始冲动,我使用mercurial从明确的视图中这种唯一的作品

我寻求集体智慧,以便在与明显案例人员尽可能好地玩耍的同时,跟踪我的日常变化的最佳方式是什么。

5 个答案:

答案 0 :(得分:3)

  

所有签到都需要代码审查,我没有权限创建私有分支。

我们也使用ClearCase并且有开发分支(不是每个开发人员的分支!,但是“ development effort ”的分支涉及到一个很少开发商)为了尽早检查。
但规则是:它必须编译并通过基本的单元测试。如果CI - 持续集成工具 - “变红”,那么开发工作团队中的所有人就会停止。并帮助解决这个问题 这样,我们提前提交并提前修复

然后,合并分支有助于报告已通过更严格控制的代码(代码审查或某些高级测试)。

这是关于 merge workflow 的全部内容。

对于非常中间的提交,我在我的ClearCase视图中使用Git (ClearCase视图中的一个简单的“git init”,你已经准备好了自己的Git工作区!)。
任何数量的私人分支都可以在这个工作区中生活,有助于私人实验 “git bundle”帮助我将Git工作区的当前状态备份到工作站外的文件中。


  

如何处理从一个明确的案例视图移动到另一个案例?

这是合并工作流程的缺点:使用ClearCase,您必须设置与Streams(使用UCM)或分支(非UCM)一样多的视图。我们对合并及其解决方案使用动态视图,然后使用快照视图进行开发 由于我们对不同的流有不同的视图,因此我们可以轻松地将两种不同的开发工作与简单的WinMerge进行比较。

答案 1 :(得分:1)

您是否与您的同事谈过您的问题?他们应该面对同样的问题,也许会有一些好主意 我会尝试让你的老板获得创建分支机构的许可 - 或者至少要获得一个私人分支机构。但使用此分支并不会改变您当前的问题。当您转储4780行进行代码审查时,没有人关心它们来自何处 您应该尽早并经常尝试办理登机手续。如果你需要在私人分支机构进行试验 - 很好。但是一旦得到结果,你应该提交它并进行代码审查 使用mercurial听起来不像“官方方式” - 你的老板知道吗?它经常被备份吗?这就是为什么我会去私人分支机构。在遇到麻烦之前让你的工作流程正常化。

答案 2 :(得分:1)

尽早并经常提交。您的同事将会欣赏较小的代码审核,并且更改将更易于管理和合并。专注于咬掉小件作品,然后提交这些作品。

跟踪每日变化有什么问题?做一个clearcase差异会告诉你你改变了什么。

答案 3 :(得分:1)

我和tanascius和Stephen在一起。仅仅因为您使用mercurial跟踪个人更改并不意味着您不能提前提交给ClearCase进行审核。问题不是多变的,也不是ClearCase,它提交了4780行代码供有人审核。

我还在一家拥有严格审核政策和Perforce的商店工作。我使用git来跟踪当地的小变化,但是在变化变得很大之前我仍然会发送给我的同事来理解它。

尽早承诺并提交小事。

答案 4 :(得分:1)

我不熟悉ClearCase,因此我的答案范围只是 mercurial

我考虑你的以下问题:我在本地跟踪更改以便能够保存我的步骤,即使步骤不完整/已损坏,然后我提交整个图片以供审阅,但它通常会被提交为太大而且不容易审核。我是对的吗?

要解决此特定问题,请使用Mercurial Queues。这些队列允许您基本上编辑本地未刷新的提交,重新排序并将几个补丁折叠成一个/或将一个提交拆分成小的可读块。在阅读更多相关内容之前,我建议您如何使用它们:

  • 你做你平常的工作。根据您自己的个人标准,按照您的意愿轻松提交,因为您的同事不会看到提交。如果必须,打破构建,做任何你想做的事。
  • 一旦你全面了解了4780行长补丁,暂停
  • 在mercurial队列中导入本地提交。
  • 在本地查看您的连续提交,并问自己“我怎样才能使这个可读?”。例如,您将在同一功能上标识提交组。或者多次尝试解决同样的问题。
  • 一旦确定了有意义的提交组,请重新排序补丁(重新排序您的提交:这就是Mercurial Queues允许您执行的操作)。在此之后,fold类似的补丁在一起。例如,如果你有连续的尝试n,n + 1和n + 2,其中n + 1部分撤消n,而n + 1是一个错误的oneliner ......好吧,只需将三个提交合并为一个有意义的提交“这个提交完全解决了问题#1212313这样做和那个“。
  • 在重新组织你的提交堆/队列之后,你最终会得到一系列有意义的小补丁。因为它们很小,所以很容易阅读。只需向同事提交一系列有意义的补丁:如果每个补丁都干净,小,并解决了一个问题,那么审核时间就会非常短。