对Git的性能:无效选项:-r

对Git的性能:无效选项:-r,git,version-control,migration,perforce,git-p4,Git,Version Control,Migration,Perforce,Git P4,我正在尝试将一个项目从Perforce迁移到Git。我正在使用git-p4作为我的主要工具来为我完成繁重的工作,默认情况下,它与Windows上的git一起提供: C:\Program Files\Git\mingw64\libexec\Git core\Git-p4 接下来,我执行了克隆命令:gitp4 clone(其中p4是git-p4.py文件的别名) 我不断地犯错误: 无效选项:-r C:\P4到Git>gitp4克隆//仓库/C:\build\mainline@all . 从//dep

我正在尝试将一个项目从Perforce迁移到Git。我正在使用
git-p4
作为我的主要工具来为我完成繁重的工作,默认情况下,它与Windows上的git一起提供:

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

接下来,我执行了克隆命令:
gitp4 clone
(其中p4是git-p4.py文件的别名)

我不断地犯错误:

无效选项:-r

C:\P4到Git>gitp4克隆//仓库/C:\build\mainline@all .
从//depot/C:/build导入/mainline@all进入
将C:/P4中的现有Git存储库重新初始化为Git/.Git/
Perforce客户端错误:
p4-h用于使用。
无效选项:-r。
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Git\mingw64\libexec\Git core\Git-p4”,第3840行,在
main()
文件“C:\Program Files\Git\mingw64\libexec\Git core\Git-p4”,第3834行,在main中
如果不是cmd.run(args):
文件“C:\Program Files\Git\mingw64\libexec\Git core\Git-p4”,第3706行,正在运行
如果不是P4Sync.run(自身、DepotPath):
文件“C:\Program Files\Git\mingw64\libexec\Git core\Git-p4”,第3546行,正在运行
更改=P4ChangesForPath(self.DepotPath、self.changeRange、self.changes\u块大小)
文件“C:\Program Files\Git\mingw64\libexec\Git core\Git-p4”,第852行,位于p4ChangesForPaths中
changeEnd=p4\u最后一次更改()
文件“C:\Program Files\Git\mingw64\libexec\Git core\Git-p4”,第317行,在p4\u last\u change中
返回int(结果[0]['change'])
KeyError:“更改”

我已经研究了p4gitpython文件,没有使用
-r
的地方。有什么帮助吗?

请尝试设置git-p4。重试设置为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.

尝试将git-p4设置为
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.

您的P4路径似乎不正确:
//仓库/C:\build\mainline@all
。如果git-p4支持,可以使用仓库路径(如
//depot/foo/bar/mainline/…
),也可以使用本地路径(
C:\build\mainline\…
)。另外,您确定“
@all
”吗?这是一个标签吗?@sferencik我的p4路径似乎有效,因为其他(您的)路径示例不起作用+我的示例的第一行显示了正确的路径。我不知道你是什么意思?你能键入整个命令吗?而
@all
告诉git-p4也要导入所有的历史记录
//depot/foo/bar/mainline/…
只是一个例子。当然,您的项目不在“foo/bar”下。您需要找到项目的实际仓库路径。你使用Perforce吗?或者你的团队中可以帮助你找到正确的仓库路径的人?我强烈怀疑
//depot/C:\build\mainline
是否正确。@sferencik抱歉,我现在很困惑,您的第一条评论建议使用“foo/bar”depot路径,然后您的第二条评论说它看起来不像“foo/bar”。你能帮我找到停车场的路吗?显示站点路径的示例?@SandraK连接到您的Perforce服务器,并尝试运行一些命令,如
p4 depots
p4文件//depot/..
p4 dirs//depot/*
。这可能会让您大致了解站点的外观,并建议要导入的路径。如果在尝试运行这些命令时出现连接错误,则此操作将失败,因为您没有可通过此计算机上设置的
P4PORT
值访问的Perforce服务器(git-p4将尝试使用该值)。您的p4路径似乎不正确:
//depot/C:\build\mainline@all
。如果git-p4支持,可以使用仓库路径(如
//depot/foo/bar/mainline/…
),也可以使用本地路径(
C:\build\mainline\…
)。另外,您确定“
@all
”吗?这是一个标签吗?@sferencik我的p4路径似乎有效,因为其他(您的)路径示例不起作用+我的示例的第一行显示了正确的路径。我不知道你是什么意思?你能键入整个命令吗?而
@all
告诉git-p4也要导入所有的历史记录
//depot/foo/bar/mainline/…
只是一个例子。当然,您的项目不在“foo/bar”下。您需要找到项目的实际仓库路径。你使用Perforce吗?或者你的团队中可以帮助你找到正确的仓库路径的人?我强烈怀疑
//depot/C:\build\mainline
是否正确。@sferencik抱歉,我现在很困惑,您的第一条评论建议使用“foo/bar”depot路径,然后您的第二条评论说它看起来不像“foo/bar”。你能帮我找到停车场的路吗?显示站点路径的示例?@SandraK连接到您的Perforce服务器,并尝试运行一些命令,如
p4 depots
p4文件//depot/..
p4 dirs//depot/*
。这可能会让您大致了解站点的外观,并建议要导入的路径。如果您在尝试运行这些命令时出现连接错误,那么这项工作将注定失败,因为您没有可通过此计算机上设置的
P4PORT
值访问的Performance server(这是git-p4将尝试使用的)。感谢您的回答,我如何设置
git-p4。重试
?我试着打开文件并对其进行硬编码,但没有成功(我是一个完全的git新手,只是在这里搜索文档),但我想你想要
git config
?或者,如果这不起作用,只需获得一个新的
p4
可执行文件,这是一个免费下载(ftp.perforce.com),你所要做的就是用新的文件替换旧的文件。你知道如何设置git-p4.retries了吗?谢谢你的回答,我该如何设置
git-p4.retries
?我试过了