Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
`git-p4克隆“失败”;新提示。。。不包含……”;_Git_Perforce_Git P4 - Fatal编程技术网

`git-p4克隆“失败”;新提示。。。不包含……”;

`git-p4克隆“失败”;新提示。。。不包含……”;,git,perforce,git-p4,Git,Perforce,Git P4,我在Windows上运行,使用Windows p4客户端,通过Cygwin安装git。p4客户机宣传它的语法在不同平台上的规则性,所以这应该是很好的 因此,当我转到git-p4 clone--verbose//depot/path/to/source时,它列出了存储库中的所有文件,就像它们被签出一样,然后说 异常:快速导入失败:警告:不更新refs/remotes/p4/master(新) 提示cd601b92da8625c90af05685e450e55b6d19c9e9不含3a512c940

我在Windows上运行,使用Windows p4客户端,通过Cygwin安装git。p4客户机宣传它的语法在不同平台上的规则性,所以这应该是很好的

因此,当我转到
git-p4 clone--verbose//depot/path/to/source
时,它列出了存储库中的所有文件,就像它们被签出一样,然后说

异常:快速导入失败:警告:不更新refs/remotes/p4/master(新) 提示cd601b92da8625c90af05685e450e55b6d19c9e9不含3a512c9408e3cbeef 94c78dfd7115f81e4a6fd0d)

最后是一大块“git快速导入统计”。查看错误:新提示?嗯?需要包含哪些内容


我剩下的是一个.git回购协议,它只有两个meg(比完整的源代码树要小得多)。有什么想法吗?

我也遇到过类似的问题,通常可以追溯到路径、分支名称等的大小写。不确定P4,但确保没有主分支-它应该是主分支。全面跟随同一个团。此外,避免目录和文件名中带有空格。很多以git为中心的工具都不喜欢这样。Gitolite就是一个例子。它不允许存储库中有空间。

我也遇到过类似的问题。对我有效的是更新git-p4 python代码。您可以查看提交,但希望它很快就会被拉出。

与公认的答案类似,我在尝试同步到表单中的git分支时遇到了相同的问题:

git p4 sync --branch=feature/f1 //depot/path/to/code
分支名称中的/似乎导致相同的神秘快速导入失败警告。不幸的是,git-p4似乎不支持标准git流分支名称

更改为这样的分支会起作用:

git p4 sync --branch=f1 //depot/path/to/code
运行快速导入时,我还遇到了“新提示x不包含y”错误

在我的例子中,这是由我试图导入的回购协议的主分支中一个不相关的预先存在的提交引起的。我已经用GitHub客户端初始化了repo,它添加了一个初始提交(以添加一个.gitignore文件)。快速导入工具可能无法将导入的提交与分支的当前状态进行协调,因为GitHub工具的提交与导入的提交没有关系

我的解决方案是用“git init”初始化一个空的repo,然后运行fast import。

对于要导入的第一个CL,是否会得到“忽略修订版XYZ,因为它将生成一个空提交”

如果是这样,那么您在git-p4.py中遇到了一个bug,它在实际提交任何内容之前清除了“initialParent”设置(这是必要的,以便git fast import可以将新提交加入到上一个导入中)。因此,导入的新文件流与旧文件流没有连接


我目前正在使用--changesfile解决这个问题,并明确地确定需要导入哪些CL。

您是否尝试联系git-p4的维护人员?您做得对:移动到路径名中没有空格的文件夹修复了它。@Hober没有空格是什么意思?在你的问题中,我在命令中看不到任何空格。@Giedrius我是指文件系统路径中有空格,如“C:\Program Files\foo”。解决此问题的一个好方法是使用您的C:\Users目录,或者出于开发目的创建您自己的C:\dev目录。很抱歉回答太慢。对于“点”也一样,必须从“1.0”改为“1.0”。如果您不介意在git树中进行一些不更改的提交,您还可以使用
git config git-p4.keepmptycommits true来解决这个问题。@Anton,我处理这个问题大约3到4个月,甚至对这个问题有自己的答案(现在已删除)这涉及回滚p4/master提交并再次重定基址。然后我重新阅读了这个答案,得出了这个新的解决方案,到目前为止还没有遇到任何问题。希望git-p4将来会被修复,这样我们就不需要额外的空提交,但这是一个很好的折衷方案,可以避免它经常中断:-)这个答案说明了我遇到错误的根本原因。非常感谢。我在一个非常大的仓库的一小块地方工作(据说我的公司是p4最大的企业用户之一)。
p4 sync
范围的第一个变更列表通常不与镜像到my git repo中的文件子集相交,my git repo是使用--use-client-spec填充的。即使使用mingw版本的git(git Bash Shell for Windows),这仍然是一个问题。启用
keepmptycommits
对于mingw和cygwin版本的git来说都是一个可行的解决方案。我不清楚是第一个还是最后一个p4变更列表(当“空”时)触发了错误。我怀疑这是该范围内的最后一个更改列表,或者可能是整个范围为空时。当我尝试使用
.gittributes
文件初始化存储库以设置二进制文件模式时,遇到了相同的问题。我希望此提交是存储库中的第一个提交,以确保定义适用于所有标记的版本。