git p4 同步操作失败

问题描述 投票:0回答:2

我正在使用“git-p4”脚本从 p4 迁移到 GIT。由于大量更改列表(大约 500 万),克隆操作失败。所以我尝试执行增量导入操作: 我尝试克隆第一次运行然后同步操作。我用小改动列表进行了测试。

第一次运行:

git p4 clone //depot/f1/f2/f3/ere@17888479,17918050 -v

第二次运行:

git p4 sync //depot/f1/f2/f3/ere@17918051,17918064 -v     

错误:

Traceback (most recent call last):
  File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 3677, in <module>
    main()
  File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 3671, in main
    if not cmd.run(args):
  File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 3429, in run
    die("fast-import failed: %s" % self.gitError.read())
  File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 122, in die
    raise Exception(msg)
Exception: fast-import failed: warning: Not updating refs/remotes/p4/master (new tip 85c94d84335bb1441a7f959b384729b2a4d633f4 does not contain 3222bdc29799d1fe5fff91c36524481b1469f1d9)
git perforce git-p4
2个回答
0
投票

解决方法: - 创建一个目录并克隆具有更改列表范围的代码。 git p4克隆 //depot/f1/f2/f3/ere@17888479,17918050 -v - 将代码推送到 GIT 存储库。您可以使用下面链接上的给定脚本来移动具有历史记录的代码。 https://gist.github.com/emiller/6769886 - 创建另一个目录(空存储库)并克隆具有增量更改列表范围的代码。 - 从 GIT 中提取代码并将其与本地存储库中的代码合并。 - 解决冲突并在提交后推送


0
投票

git-fast-import过程中

有一个
最近描述的类似案例

使用 Git 2.26(2020 年第一季度),

git-p4
在这种边缘情况下应该更加稳健。

请参阅 commit 43f33e4(2020 年 1 月 30 日)、commit 19fa5accommit 6026affcommit ca5b5cccommit 4c1d586commit 5c3d502com mit 837b3a6(2020 年 1 月 29 日)作者:Luke钻石(

ldiamand42
).
(由 Junio C Hamano --
gitster
--
合并于 commit 4a77434,2020 年 2 月 14 日)

git-p4
:在错误退出时更好地清理

签署人:Luke Diamand

出现错误后,

git-p4
会调用
die()
。这只是退出,并且子进程仍在运行。

不要调用

die()
,而是引发异常并在创建子进程 (
git-fastimport
) 的位置捕获它。

此更改并未解决

p4CmdList()
调用子子项且错误时不等待它的特定问题。


并且,如果

git-p4
是问题的原因,则使用 Git 2.46 (Q3 2024)、batch 3
git-fast-import
将更加明确:

请参阅Fahad Alrashed (alrashedf)

提交 55702c5
(2024 年 5 月 8 日)。
(由 Junio C Hamano -- gitster
 --
合并于
commit bbffcd4,2024 年 5 月 13 日)

git-p4
:向用户显示 Perforce 错误

签署人:Fahad Alrashed

git p4 clone

 期间,如果 
p4
 进程从服务器返回错误,它将将该消息存储在 'err' 变量中。
然后它会发送一个文本命令“
die-now
”到
git-fast-import
但是,
git-fast-import
(man) 会引发异常:fatal: Unsupported command: die-now
,并且 
err
 永远不会显示。
此补丁可确保向最终用户显示
err

© www.soinside.com 2019 - 2024. All rights reserved.