透明案例注释以找到添加了特定LOC的罪魁祸首



我在编写脚本的中间,以找到在Clearcase中添加特定代码的罪魁祸首。我正在使用注释命令。cleartool annotate -all -fmt "%Ad %-8.8u %-100.150Vn | " -nheader -force我正在使用 - 以便可以探索无关的级别(不在同一血统中)。但是我闻到了一个问题。如果我的.c文件中有2行相同的代码,那么选择哪个?因此,要解决此问题,我认为我可以删除所有 - 并在同一下降行中找到特定版本。然后查看任何合并即将到达该特定版本,并在该版本中执行另一个annotate
所以我的问题是,如果我目前不在此版本中,我可以这样做吗?

cleartool annotate -all -fmt "%Ad %-8.8u %-100.150Vn | "  -nheader -force MEMManager.c@@mainoptimus_2_buildoptimus_r10_integration_branch12

我朝正确的方向吗?还是我可以使用更好的命令来实现此目标?

我真的不能说出最好的方法,我可以在上次不得不处理的时候做什么,"这种变化从何而来?"问题。

我使用注释将VTREE返回。我用-Long(以获取整个代码,因为它的缩进非常缩进)注释了当前版本,并找到了更改的行及其来自位置。然后,我转到该版本并注释它,发现所讨论的行来自另一个版本(该版本已合并到此"中间"版本中)。泡沫,冲洗,根据需要重复。

是的,这很乏味,但是那是一段时间前...出于某种原因,我没有出现 -

" 2个相同的更改"问题可能没有任何操作影响。但这是简单的Hello.c来源中的"相同更改"的样子:

##### 2016-12-05T09:19:55-05:00 Brian    main1                  |                         | #include <stdio.h>
#####                             .                               |                         | 
#####                             .                               |                         | int main(int argc, char** argv)
#####                             .                               |                         | {
##### 2016-12-05T09:23:38-05:00 Brian    maintestbr2           |                         |         // And here 
##### 2016-12-05T09:22:10-05:00 Brian    main3                  | UNRELATED               |         // And here 
##### 2016-12-05T09:19:55-05:00 Brian    main1                  |                         |         printf("Hello World!n");
#####                             .                               |                         |         return 0;
##### 2016-12-05T09:21:31-05:00 Brian    main2                  | UNRELATED               |         // I felt like adding this here
##### 2016-12-05T09:21:02-05:00 Brian    maintestbr1           |                         |         // I felt like adding this here
##### 2016-12-05T09:19:55-05:00 Brian    main1                  |                         | }

"无关"的意思是它确实来自当前的"下降线",并且还告诉您更改也发生在哪里。这可能是因为其中一个版本已合并到多个分支,或者有些是非常多产的打字员。

cleartool注释并未查明(也是)在许多情况下更改代码行的人。只需考虑合并而创建的文件版本。 ClearTool Annotate 将此版本视为更改,但这不是真正的!真正的一个实际上是在另一个流/分支上。此外,可能是这个"真实的"源版本不是真实的版本,而是另一个合并的目的地!这是一种递归。

有一个clearcase实用程序, getRealChange ,它为您提供了给定代码行的真实版本。它很快,支持Windows和Linux。请参阅http://almtoolbox.com/va4vs。

最新更新