3

我正在考虑将大量 IBM 汇编语言程序套件从基于“文件名包括版本号”的 vcs 迁移到现代 vcs,这将使我能够分支和合并。

这些文件有 80 列记录,最后 8 列是几乎没有意义的序列号。

由于许多我不想浪费空间的原因,我需要 vcs 忽略(但希望以某种明确定义的方式保留)序列号列,并仅基于前 72 列的内容。

有任何想法吗?


只是为了澄清“忽略但保留”:我接受它有点模糊,因为我还没有完全收集我的想法。

这将是这样的:

“合并/打补丁时,如果一侧有序列号,则输出它们;如果多于一侧有序列号,则使用文件中存在的序列号 (1|2|3)”


为什么要保留序列号?首先,它们确实序列号。其次,我想将这些东西重新集成到大型机上,其中序列号可能非常重要。(知道“SMP/E”是什么意思的人会明白。不知道的人,高兴,但颤抖......)


我刚刚意识到我没有接受答案。艰难的选择,但@Noldorin 最接近我要去的地方。

4

4 回答 4

3

在 Mercurial 中,您可以轻松地忽略 .asm 文件的第 73 列 - 只需将以下行添加到您的 .hgrc 中:

[encode]
*.asm: cut -b -72

(或者如果您也想支持 Windows 系统,则采用稍微复杂的方法;-)。但是,这不符合您的“忽略但保留”规范的“保留”部分(正如尼尔的评论指出的那样,这本身就有些问题)。

于 2009-05-10T13:07:11.023 回答
2

我相信任何现代版本控制系统(SubversionBazaar是我通常推荐的,分别是集中式和分布式的)都可以利用外部差异/合并工具。不幸的是,我认为您必须自己编写此自定义合并工具(至少我从未听说过您需要的工具),尽管我想这不应该是一项艰巨的任务。话虽如此,您可能对这个 StackOverflow 问题这个问题中给出的建议有一些运气. 抱歉,我无法提供更多信息,说明您特别想研究哪些内容,但值得浏览一下,以防它们中的任何一个确实满足您的要求。

于 2009-05-10T12:21:26.437 回答
1

我认为“保留”的含义是这里的关键。当您说序列号“几乎没有意义”时,“几乎”是否包括序列以外的任何内容?在 Dreamtime 中,我们曾经在那里编写过一种程序流程图(您可以在 Brooks 的神话人物月的第一版中找到一个示例),但幸运的是这种做法已经消失了。

如果序列号列的唯一含义是作为有序的数字序列。我很想使用@Alex 的方法——你可以在任何现代 VC 工具中预处理来自脚本的文件——来剪切序列号,然后当你提取文件时,使用类似的工具再次对记录重新排序。

于 2009-05-10T14:37:01.130 回答
1

(披露:我代表此答案中描述的工具供应商)。

您想要的是一个 diff 工具,该工具可以理解第 72-80 列中的内容是“空白”,而不管您是否用字符填充了它。

Semantic Designs COBOL Smart Differencer有一个 IBM Enterprise COBOL 变体,可以很好地理解这一点 。

SD 为各种语言制作 Smart Differencers,而 IBM Assembler 是未来的目标。如果您有兴趣,请离线联系 SD 以讨论 IBM Assembler 的 Smart Differencer。

于 2010-05-22T21:56:01.173 回答