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

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

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

有任何想法吗?


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

大概是这样的:

“合并/修补时,如果一侧有序列号,则输出;如果不止一侧有序列号,则使用文件 (1|2|3) 中存在的序列号”


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


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

有帮助吗?

解决方案

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

其他提示

在水银,你可以很容易忽略列.ASM文件73年底 - 只需添加到您的.hgrc以下行:

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

(或略微如果你想支持Windows系统,以及;-)更复杂的方式。然而,这将无法满足你的“忽略但保存”规范(正如尼尔的评论指出,有些问题本身)的“保护”的一部分。

我觉得“保存”的意思是这里的关键。当你说的序列号是“几乎没有任何意义”,是否“差不多”包括除了序列什么?在黄金时代,我们用来编码一种在那边程序流程图(你可以找到在布鲁克斯的人月神话的第一版的例子),但这种做法已经谢天谢地死了。

如果序列号列的唯一意义是作为数字的有序序列。我会尝试使用@亚历克斯的做法 - 你可以从一个脚本在任何现代VC工具预处理文件 - 削减的序列号,那么当你提取一个文件,使用类似的工具,再次重新排序记录<。 / p>

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

你想要的是一个diff工具能够理解,在72-80列中的东西是“空白”不管你用的字符填充的事实的。

语义设计COBOL智能差分器具有IBM企业COBOL变体,其明白这一点就好了。

SD使得智能Differencers用于各种汉语语言和IBM汇编为将来目标值。关于智能差分器为IBM汇编讨论,SD离线联系,如果你有兴趣。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top