2

私は現在、タスクの説明で特定の#を指定して変更されたすべてのファイルを検出するスクリプトを作成しようとしていますが、そのためのスクリプトを取得しました。しかし今、私はファイルが追加されたか、変更されたか、削除されたかによってそれをソートしようとしています。Mercurial APIを調べましたが、やりたいことができるものが見つかりません。

私のコードは現在、それを使用repo[revnum].description()および解析して、が含まれているものを見つけ、含まれている#場合は、ファイルコンテキストをリストに追加します。これは正常に機能し、ファイルのリストを印刷できますが、各コンテキストで何が行われたかを確認する方法が見つかりません。誰かがここで私を助けてくれますか、それとももっと良いドキュメントを教えてもらえますか?

4

3 に答える 3

2

Mercurial APIを使用する必要がありますか?の出力を操作することにより、必要なことを行うことができます。hg log

于 2012-06-01T17:43:02.923 に答える
1

一般に、MercurialAPIを使用してスクリプトを直接作成することは避けてください。CLIを使用するように、またはおそらくを使用するようにスクリプトを作成することをお勧めしますhglibMercurialApi wikiに記載されているように:

サードパーティのコードの大部分では、Mercurialの公開され、文書化された、安定したAPIであるコマンドラインインターフェイスを使用するのが最善の方法です。

そうは言っても、本当にAPIを使用する必要がある場合は、次の情報を使用repo.status()して質問した情報を見つけることができます。

modified, added, removed, deleted, unknown, ignored, clean = repo.status(revnum-1, revnum)
于 2012-06-01T18:00:42.413 に答える
1

私はまだAPIを使用していましたが、Timが言ったのと同じようなものを使用することになりました。Mercurialからコマンドをインポートし、commands.status(repo.ui、repo、change = revnum)を呼び出しました。

次の形式のrepo.ui.pushbuffer()とrepo.ui.popbuffer()を使用して、この出力をキャプチャしました。

A file_path1
R file_path2
R file_path3
A file_path4
M file_path5

この入力を解析し、追加、削除、変更などに並べ替えました。

于 2012-06-01T19:01:49.647 に答える