`git-p4 clone`失败“新提示......不包含......”

时间:2010-10-29 23:52:42

标签: git perforce git-p4

我在Windows上运行,使用windows p4客户端,并通过Cygwin安装git。 p4客户端宣传它的语法在不同平台上的规则性以及所有这些,因此应该是hunky-dory。

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

  

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

并以“git-fast-import statistics”的大块结尾。看错误:新提示?咦?需要包含什么?

我剩下的是一个.git repo,它是几个megs(比完整源代码树要小得多)。有什么想法吗?

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

与接受的答案类似,尝试同步到表单中的git分支时遇到同样的问题:

git p4 sync --branch=feature/f1 //depot/path/to/code

分支名称中的/似乎导致同样神秘的快速导入失败警告。不幸的是,git-p4似乎不支持标准的git-flow分支名称。

更改为这样的分支有效:

git p4 sync --branch=f1 //depot/path/to/code

答案 2 :(得分:2)

你得到"忽略修订版XYZ,因为它会产生一个空提交"对于第一个要导入的CL?

如果是这样,你就会在git-p4.py中遇到一个错误,它会清除" initialParent"设置(必要的,以便git fast-import可以在实际提交任何内容之前加入新的提交直到上一次导入)。因此,新的导入文件流将保持未连接到旧文件。

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

答案 3 :(得分:1)

我有类似的问题。对我有用的是更新git-p4 python代码。您可以查看提交here,但希望它很快会被提升。

答案 4 :(得分:1)

我还遇到了“新提示x不包含y”错误,运行快速导入。

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

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