bugfix> git > 投稿

プロジェクトをPerforceからGitに移行しようとしています。私は git-p4 を使用しています私のための重労働を行うための私のメインツールとして、そしてそれはWindows上のGitにデフォルトで付属しています:

C:\Program Files\Git\mingw64\libexec\git-core\git-p4

以下WindowsでのPerforceのGitへの移行、クローン作成コマンド git p4 clone <PerforceRepo> を実行するステップに到達しました(p4はgit-p4.pyファイルのエイリアスです)

エラーが発生し続けます:

Invalid option: -r.

C:\P4-To-Git>git p4 clone //depot/C:\build\mainline@all .
Importing from //depot/C:/build/mainline@all into .
Reinitialized existing Git repository in C:/P4-To-Git/.git/
Perforce client error:
        p4 -h for usage.
        Invalid option: -r.
Traceback (most recent call last):
  File "C:\Program Files\Git\mingw64\libexec\git-core\git-p4", line 3840, in <module>
    main()
  File "C:\Program Files\Git\mingw64\libexec\git-core\git-p4", line 3834, in main
    if not cmd.run(args):
  File "C:\Program Files\Git\mingw64\libexec\git-core\git-p4", line 3706, in run
    if not P4Sync.run(self, depotPaths):
  File "C:\Program Files\Git\mingw64\libexec\git-core\git-p4", line 3546, in run
    changes = p4ChangesForPaths(self.depotPaths, self.changeRange, self.changes_block_size)
  File "C:\Program Files\Git\mingw64\libexec\git-core\git-p4", line 852, in p4ChangesForPaths
    changeEnd = p4_last_change()
  File "C:\Program Files\Git\mingw64\libexec\git-core\git-p4", line 317, in p4_last_change
    return int(results[0]['change'])
KeyError: 'change'

私はp4-git pythonファイルを調べましたが、 -r がある場所はありません使用されています。助けがありますか?

回答 1 件
  • git-p4.retries を設定してみてください  0に?

    if retries > 0:
        # Provide a way to not pass this option by setting git-p4.retries to 0
        real_cmd += ["-r", str(retries)]
    
    

    または、 p4 をアップグレードします   -r をサポートする実行可能ファイル  グローバルフラグ-このオプションは2012.2リリースで追加されました。

    Minor new functionality in 2012.2
        #384638 *** ** *
            The net.maxwait configurable can be used to specify a hard limit
            (in seconds) on the maximum time that a connection will wait for
            any single network send or receive to complete. The 'p4 sync'
            command now supports a '-r' global flag to specify that the sync
            command should be retried if a network error occurs.
    
    

あなたの答え