3

「ファイル名にバージョン番号が含まれる」に基づく VC から、特に分岐とマージの機能を提供する最新の VC に、IBM アセンブラー言語プログラムの大規模なスイートを移行することを検討しています。

これらのファイルには 80 列のレコードがあり、最後の 8 列はほとんど意味のないシーケンス番号です。

実際にはスペースを無駄にしたくないいくつかの理由から、vcs がシーケンス番号列を無視し (ただし、適切に定義された方法で保持されることを願っています)、および diff とパッチのみに基づいて、シーケンス番号列が必要です。最初の 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

(開示:私はこの回答で説明されているツールのベンダーを代表しています)。

必要なのは、文字で埋めたという事実に関係なく、列 72 ~ 80 の内容が「空白」であることを理解する差分ツールです。

Semantic Designs COBOL Smart Differencerには、これをうまく理解する IBM Enterprise COBOL バリアントがあります。

SD はさまざまな言語用の Smart Differencers を作成しており、IBM Assembler は将来のターゲットです。Smart Differencer for IBM Assembler について興味がある場合は、SD offline にお問い合わせください。

于 2010-05-22T21:56:01.173 に答える
1

ここで重要なのは「保存」の意味だと思います。シーケンス番号が「ほとんど意味がない」と言うとき、「ほぼ」にはシーケンス以外のものが含まれますか? ドリームタイムでは、あちらこちらで一種のプログラム フロー チャートをエンコードしていました (ブルックスの Mythical Man Month の初版で例を見つけることができます) が、ありがたいことにその慣習はなくなりました。

シーケンス番号列の唯一の意味が、番号の順序付けられたシーケンスである場合。@Alex のアプローチを使用したくなるでしょう — 最新の VC ツールのいずれかでスクリプトからファイルを前処理できます — シーケンス番号をカットし、ファイルを抽出するときに、類似のツールを使用してレコードを再度並べ替えます。

于 2009-05-10T14:37:01.130 に答える