1

Mercurial リポジトリに 2 つの非常に大きなプロジェクトがありました。
私はそれらの両方を小さなサブプロジェクトにリファクタリングしている最中です。
これには、ソースのセットを親プロジェクト ディレクトリからサブプロジェクトのサブディレクトリに移動することが含まれます。
ほとんどのファイルについては、単純に移動しました。
一部のファイルについては、変更も必要でした。
リファクタリングの変更をコミットする前に、ソース ファイルに対して行った編集を確認したいと思います。GUI ツールの SourceTree では、(ファイルが移動/名前変更されたことを示すだけでなく) 変更が表示されます。Mercurial コマンド ラインから変更されたファイルを特定する方法はありますか?

これが私が話していることの具体的な例です:

iphonedev:EveryScape cdoucette$ hg status -C Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m
Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m Engineering/iOS/ESSDK/src/ESDataManagerInMemory.メートル

古いリビジョンを別の場所にある現在の作業コピーと比較するにはどうすればよいですか?

私がこれを行うだけなら:

hg diff Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m

ファイルの内容全体が表示されます (技術的には新しい場所に追加されたため)。

代わりに、私は次のことを比較したい:

  1. Engineering/iOS/ESSDK/src/ESDataManagerInMemory.m (リポジトリのコピー - 前のリビジョン)
  2. Engineering/iOS/ESSDK/src/ESSDK-Miscellaneous/ESDataManagerInMemory.m (作業コピー)

同様の質問を検索しました。この投稿は近いものでしたが、先に進んで変更をコミットした場合にのみ意味があるようです。代わりに、コミットする前に自分の変更を見つけて確認したいと考えています。
移動/名前変更後にMercurial diffが機能しない

4

1 に答える 1

1

私はそれを次のようにスクリプト化します:

hg cat -r <oldrev> <oldfilename> > oldfile.oldrev

diff <newfilename> oldfile.oldrev
于 2012-09-28T23:05:49.727 に答える