1

私はこのファイルで作業していますが、歴史のある時点で変更されたと思うコードに出くわしました。どこで変更されたか知りたいのですが。

履歴の多いかなり大きなファイルなので、hg diffを使用すると膨大なリストが表示され、検索するのは効率的ではないと思います。

ファイルの古いリビジョンを調べて、ある時点でのファイルの外観を確認できれば、本当に便利です。次に、当時のコードがどのように機能したかを確認できるので、バグがどのように進化したかを結論付けることができます。もちろん、私は現在ファイルで作業していて、ファイルに変更を加えているので、ファイルを更新せずにこれを実行したいと思います。

それで、ファイルを更新せずにファイルの履歴を調べることができる方法はありますか?

4

2 に答える 2

2

あなたを助けるためのいくつかのツールがあります:

hg log FILEファイルの履歴を取得するには、これがおそらく最良の出発点として使用できます。

hg annotate FILEまた、ファイル内のすべての行を一覧表示し、現在のように変更されたリビジョンを示すwhichを使用することもできます。--rev REVコマンドテールを使用してリビジョンを取得し、ファイルの古いバージョンを確認することもできます。

特定のリビジョンのファイルの内容を一覧表示するには、を使用できますhg cat FILE --rev REV

これらのツールを使用してバグを追跡するのが難しすぎる場合は、リポジトリを別の場所に複製して、それを使用hg bisectして追跡することができます。

于 2013-03-26T11:05:19.707 に答える
0

hg bisectを使用すると、問題を引き起こしたチェンジセットを見つけることができます。検索を開始するには、hg bisect --resetコマンドを実行します。Mercurial:TheDefinitiveGuideによく記載されています。

于 2013-03-26T13:06:37.950 に答える