3

我正在使用“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)
4

2 回答 2

0

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

于 2016-03-29T08:31:15.077 回答
0

最近在一个git-fast-import过程中描述了一个类似的案例

使用 Git 2.26(2020 年第一季度),git-p4在这种边缘情况下应该更加健壮。

请参阅Luke Diamand ( ) 的commit 43f33e4(2020 年 1 月 30 日)和commit 19fa5accommit 6026affcommit ca5b5cccommit 4c1d586commit 5c3d502commit 837b3a6 ldiamand42 2020 年 1 月 29 日
(由Junio C Hamano 合并 -- gitster--提交 4a77434中,2020 年 2 月 14 日)

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

签字人:卢克·戴曼德

出错后,git-p4调用die(). 这只是退出,并使子进程仍在运行。

与其调用die(),不如引发异常并在创建子进程 ( ) 的位置捕获它git-fastimport

此更改未解决p4CmdList()调用子子项而不是在错误时等待它的特定问题。

于 2020-02-17T17:32:38.907 回答