1

Mercurial リポジトリ「proj1」のローカル コピーがあります。Python スクリプト経由でMercurial APIを使用して受信変更を取得したい。私はそのようにしてみました:

from mercurial import hg, ui, commands, util, scmutil, httpconnection

repopath = "/home/username/develop/hg_repo"

myui = ui.ui()

repo = hg.repository(myui, repopath)

commands.incoming(myui, repo)

このコードは次のメッセージで失敗しました:

mercurial.error.RepoError: ストレージのデフォルトが見つかりません

しかし、commands.summary(...)、commands.branch(...)、commands.branches(...) は問題なく動作しています。

手伝って頂けますか?ありがとう。

PS: 私の英語で申し訳ありません

4

1 に答える 1

4

まず、repo オブジェクトからコマンド ui に渡す必要があります: repo.ui :

commands.incoming(repo.ui, repo)

( http://mercurial.808500.n3.nabble.com/repository-default-not-found-using-API-td3999339.html ) そして、KeyError: 'bundle' があるよりも

Mercurial がオプションbundleforceのデフォルトを設定しない理由がわからないので、それも渡す必要があります。

commands.incoming(repo.ui, repo, bundle=None,force=False)

また、リモートリポジトリをほとんど設定できません:

commands.incoming(repo.ui, repo, source='default', bundle=None,force=False)

詳細については、lib/site-packages/mercurial/commands.py、hg.py を参照してください。

于 2013-08-21T08:02:45.953 に答える