如何比较PyCharm中的2个修订版,而不包括中间修订版

时间:2016-03-15 22:17:32

标签: mercurial pycharm

快速问题我似乎无法找到我的生活:如何比较PyCharm中的2个修订而不将2中的修订包含在比较中?

我使用书签功能(因为分支机构用于更长期的用途,例如测试,开发等)。我编写了几个功能(在单独的书签中)并推送它们。过了一段时间,我会去上游做代码审查。但是,多个书签中的多个提交被组合在一起,当我尝试进行比较时,我会从不同的书签中获取代码来污染比较。

示例:

|
o         r10 - baseline
o \       r11 - feature B work
| o \     r12 - feature A work
| | o \   r13 - feature C work
| o | |   r14 - feature A work (complete)

我想在第14版和第10版之间进行比较以对功能a进行代码审查,但是当我从修订版中执行代码时,11,12和13都包含在比较中。

这是令人愤怒的,因为当我确定代码是好的并将书签合并到基线时,在提交时我得到一个更改列表,显示基线和功能A之间的变化,没有干预修订。我可以简单地使用它,但我不愿意,因为偶然的进入'按下可以提交代码,我不能使用其他PyCharm工具,因为我已经卡住了#39;在提交审核窗口和其他原因。

1 个答案:

答案 0 :(得分:0)

为修订版添加书签不会自动创建新版本 - 只需在给定版本上附加名称。

但是,如果您为每个功能创建了一个新的匿名头并为其添加了书签,从而创建了一个与您的基本修订版r10作为共同祖先的不同历史记录以及所有基于此类功能的功能,如图所示,您应该是罚款并准确获得char buffer_copy[1000]; strcpy( buffer_copy, buffer ); char * tokens[1000]; size_t token_count = 0; char * ptr = tokens[token_count] = buffer_copy; while( *ptr ) if( ( *ptr == '@' ) || ( *ptr == '\n' ) ) *ptr++ = '\0', tokens[++token_count] = ptr; else ++ptr; size_t index; for( index = 0; index < token_count; ++index ) if( !strcmp( tokens[index], "member" ) ) printf( "%d: %s | %s", index, tokens[index], buffer ); 您希望得到的输出:第12和第14版所做的更改。

如果不是这种情况,那么要么你创建了一些更线性的历史记录(因此你的图表看起来不同;也许你在开始处理特征B和C之前没有检查基本修订版r10)或者PyCharm做了有些不同。在要求差异时,请确保同时提供开始和结束修订,或者mercurial将用当前签出的版本替换后者。