0

あるバージョンのリポジトリから取得され、その後変更された可能性があるファイルが与えられた場合、それが (おそらく) 元のバージョンを特定する良い方法はありますか? それをすべてのファイルのバージョン(または十分なバージョン)と比較し、最小の差分を持つものを選択するという行に沿って、何かを期待します。

私のユースケース: 何年にもわたって、私はまだ使用されているさまざまなラテックス スタイルを作成し、解放してきました。多くの場合、公式の「リリース」もバージョン番号もありませんでした。バージョン番号を更新するのを忘れることもありました。私は今、このファイルまたはそのファイルに関する質問を定期的に受け取ります。私は mercurial を使用してスタイルの履歴 (一部はさかのぼって) を追跡しています。スクリプトの履歴の場所をすばやく見つけることができるので、既に修正した問題に対処しているかどうかを判断できます。

ファイルをリポジトリ履歴と照合する方法に興味があります。前向きな解決策は明らかです。常にバージョン番号を使用して問題を回避してください。関連する質問に対するこの回答が示唆するように、KeywordExtension はバージョン番号を自動化できます。その使用は推奨されていないため、「より良い」アプローチの提案も歓迎します。

4

1 に答える 1

0
  1. 問題のファイルのチェックサムとその履歴リビジョン以外は使用できません
  2. Mercurial templater にチェックサム関連のキーワードがありません
  3. [alias] セクションを使用して、新しいコマンドを Mercurial に追加できます (エイリアス定義ではシェルコマンドも使用できます)。

上記は、少なくとも 2 つの解決策があるという結論につながります。

  • チェックサム用の template-keyword を追加および実装し、外部ファイルのチェックサムを計算し、ファイルのすべてのリビジョンのチェックサムを取得し ( hg log FILENAME --template "{md5(FILENAME)}\n")、ヒットを検出しようとするMercurial の拡張機能を作成できます。
  • チェックサム用に Mercurial にエイリアスを追加するlog FILENAMEと、ファイルのすべてのリビジョンが得られます。 md5 -r REV FILENAME は md5 ベースのハッシュを再度生成します。

hg log FILENAME --template "{rev}\n" | xargs $(...)

于 2012-12-02T08:31:31.760 に答える