6

この回答https://stackoverflow.com/a/13354944/867294によると、git をセットアップして水銀の「依存関係などなし」で動作するようにするのはかなり簡単なはずです。

これは、Windows タフではそれほどスムーズに動作しないようです。

このガイドに従おうとしました

https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg

私のシステムで動作するようにmakeFileを修正し、gitを構築した後、git-remote-hgを呼び出すことができませんでした.pythonインタープリターが見つからないと不平を言っていたためです。だから私は手動でそれを呼び出しました

C:/Python27/python.exe git-remote-hg clone C:/TestMercurialRepo

これにより、次のエラーが表示されます。

Traceback (most recent call last):
  File "git-remote-hg", line 99, in <module>
    sys.exit(HgRemoteHelper().main(sys.argv))
  File "d:\development\msysgit\git\git_remote_helpers\helper.py", line 196, in m
ain
    repo = self.get_repo(alias, url)
  File "git-remote-hg", line 33, in get_repo
    if repo.capable('branchmap'):
  File "c:\Python27\lib\site-packages\mercurial\repoview.py", line 205, in __get
attr__
    return getattr(self._unfilteredrepo, attr)
AttributeError: 'mqrepo' object has no attribute 'capable'

どうすればこれを修正できますか?
どこかにビルド前のバージョンがあれば、それはとても素晴らしいことです。

4

2 に答える 2

8

今日、これをWindowsで動作させました。基本的に、msysgit ディストリビューションは Python をサポートしていないため、Felipe の git-remote-hg.py ファイルを取得し、py2exe を使用して実行可能ファイルとしてパッケージ化しました。その後、すべての py2exe 出力を Git インストール ディレクトリの下の「libexec」フォルダーに配置すると、動作します。

それが機能するには、次のものが必要です。

  1. パイソン 2.7
  2. Mercurial Python モジュール (Windows インストーラーはこちら)
  3. py2exe (Windows インストーラーはこちら)
  4. Felipe の git-remote-hg python スクリプト (raw をファイルに保存ここ)

以下を含む setup.py という名前のファイルを作成します。

from distutils.core import setup
import py2exe

setup(console=['git-remote-hg.py'])

ファイルをファイル システムに保存し、次のコマンドを実行します。

python setup.py py2exe --include mercurial    

py2exe は、出力を含む「dist」というフォルダーを作成します。そのフォルダーの内容をメインの Git インストール フォルダー (例: C:\Program Files(x86)\Git) の下の libexec\git-core フォルダーにコピーします。

これで、Git クライアントを使用して Mercurial リポジトリからクローンを作成できるはずです。

(注:これらの手順は少し急いで書いたので、抜けているものがあれば投稿してください)。

于 2013-06-19T18:18:40.037 に答える
0

もう少し調査する必要がありますが、これはgit-remote-hgインストールされている Mercurial の特定のバージョンに依存するようです。特に、repoオブジェクトがメソッドをサポートするcapableもの。

これは git-remote-hg コードのバグのようです。十分に新しい Mercurial のバージョンはrepoview、あらゆる種類のリポジトリ オブジェクトがcapableメソッドをサポートするのに十分なほど新しいものでもあります。したがって、問題のあるオブジェクトは git-remote-hg によって作成されたオブジェクトであると推測しています。

とにかく、git-remote-hg が Mercurial Python コードを使用して機能していることは明らかです。したがって、それらの間には依存関係があります。

また、バックトレースはhttps://github.com/felipec/git/blob/fc/remote/hg/contrib/remote-helpers/git-remote-hgのコードと一致しないため、セットアップをデバッグするのは困難です.

于 2013-03-24T17:24:39.577 に答える