2

特定のコミット ID または時間の後に、変更セットを含むすべてのコミットを取得したいと考えています。Mercurial API を使用してそれを行う直接的な方法はありますか?

4

1 に答える 1

1

おそらくご存じのとおり、Mercurial 用の安定した Python レベルの APIはありません。コマンド ラインは、実際にサポートされている唯一の API です ( JavaHgpython-hglibなどのラッパー ライブラリを使用しない場合)。

したがって、コマンドラインで実行します

$ hg log -r "ID::"

の後にすべての変更セットを取得しますID::オペレーターは子孫を提供します。ID:たとえID.

JavaHg を使用して、Repositoryオブジェクトをインスタンス化し、以下を使用しますLogCommand

List<Changeset> changesets = LogCommand.on(repo).rev(id + "::").execute();

その後、リストを反復処理できchangesetsます。python-hglib を使用すると、次のようになります

changesets = client.log(id + "::")

最後に、Mercurial コードを直接インポートすると、次のことができます。

ctxs = repo.set(id + "::")

オブジェクトを生成するイテレータを取得しchangectxます。Python API についての保証はありませんが、これも非常に安定していると思います。

上記は、変更セット ID またはリビジョン番号による検索に焦点を当てていました。日付で検索したい場合は、同等のものを呼び出す必要があります

$ hg log -d '>YOUR-DATE'

date(String date)JavaHg ではメソッド onを使用するだけLogCommandで、python-hglib ではdateキーワード引数を設定し、内部ではdaterevset 述語を使用します — を参照してくださいhg help revsets

于 2012-02-08T13:30:37.583 に答える