问题标签 [git-p4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
989 浏览

git - git p4 同步操作失败

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

第一次运行:

第二次运行:

错误:

0 投票
1 回答
96 浏览

ansible - git-p4 在通过 ansible 执行时无法克隆 repo

我正在运行一个带有 shell 脚本的 Ansible 主机,它将我的 repo 克隆到我的本地 git 服务器。我从 Perforce 克隆,因此使用 git-p4 模块。

我的目标机器有 RHEL 7,如果我在目标机器上执行这个 shell 脚本,它可以正常工作。但是,如果我使用命令模块从我的 Ansible 主机运行它,则会引发以下错误:

0 投票
3 回答
2874 浏览

git - git-p4 迁移不同子目录中的分支

我想将源代码树从 perforce 迁移到 git。源代码包含分散在 perforce 仓库中的多个开发分支,不一定在同一目录中。例如结构是这样的 -

我浏览了 git-p4 文档https://git-scm.com/docs/git-p4 BRANCH DETECTION 部分以及类似的文章http://forums.perforce.com/index.php?/topic/1395-git- p4 和多个分支/

我能够迁移具有历史记录的分支,用于直接父级下的分支,例如

我无法实现的是如何一次将所有六个分支一起迁移。

在指定分支规范后,我尝试在 //depot@all 级别上运行迁移,但是由于 perforce 服务器很大,它失败了,它给出了 maxresults 异常或会话超时。有人可以指导如何处理这种情况吗?

我看到的另一种选择是单独迁移分支(一个分支到一个 git repo),然后将所有分支合并到一个新的 git repo。我不确定这样做是否会产生影响/不利因素。

0 投票
3 回答
819 浏览

git - git-p4 和配置 git-p4.largeFileExtensions

我正在尝试使用git-p4(使用 git for Windows)将 Perforce 存储库转换为 git 存储库。我有很多图像,并想为它们使用 LFS。但是,我似乎无法让git-p4.largeFileExtensions配置设置与多个扩展一起正常工作。如果我执行以下操作:

我得到(如果我使用两个以上,所有对都会报告类似的警告):

.git/config文件是我所期望的,是 largeFileExtensions 的多值条目:

但是.gitattributes创建的文件如下所示:

我做错了什么,还是largeFileExtensions属性格式不同?

0 投票
0 回答
400 浏览

git - git p4 仅同步标签

我正在将一个 repo 从 Perforce 迁移到 Git。我已经迁移了所有感兴趣的分支。现在我正在寻找将所有 perforce 标签迁移为 git 标签。

我在命令下运行

git-p4.py 同步 //depot/path/... --import-labels --verbose

这无法获取所有标签,说它找不到 git commit for changelist。如果我使用 @all 运行它,它能够获取标签。唯一担心的是需要更多时间。

有没有只导入标签的选项,我不热衷于修改。谢谢 !

0 投票
0 回答
33 浏览

perforce - 如何使用特殊的工作区映射处理 git-p4

我正在尝试制作一个 git repo,我可以推动 master 执行。我正在考虑使用 git+gitflow 和 rebase 到 master 来更新上游。这是为了增加开发人员在实验分支上的协作,并且仍然有办法将其推向 perforce。

在我的工作区中,我有一个如下所示的工作区映射:

我尝试过执行以下操作:

现在这给了我 3 个 git repo,我必须独立地与 perforce 同步。有没有办法只获得一个 git repo?

有没有办法让我最终得到一个 git 存储库?

0 投票
1 回答
714 浏览

git - git p4 克隆文件历史记录,包括集成历史记录

tl;博士; 我希望保留迁移到 git 的文件的历史记录,包括早期集成的历史记录。即git p4 clone这样git log --all --follow <file>==p4 filelog -li <file>

更长的版本:

我有一个项目,perforce其中包含过去在存储库中的其他项目周围移动和复制的文件。

在当前位置显示文件的历史记录(-l表示长格式)。文件被移动(复制),p4 integrate例如

要查看您使用的移动前的历史记录:

等效的git命令是:

现在,如果我使用以下方法克隆perforce项目的一部分:

我获得了该文件的完整历史记录,就像获得当前目录位置在perforce.

(您现在在 is 处获得文件的单个提交,而没有@all 看到使用 git-p4 获取整个文件历史记录

我怎样才能git log --follow <file2> 给我我会看到的完整历史p4 filelog -li

您可能会注意到文件历史记录本身不如存储库历史记录有用。例如,如果没有其他文件在正确的相对位置的正确版本,一个单独的文件甚至可能无法编译。但是,完整的perforce存储库包含许多其他不相关项目的历史记录,这些项目不得包含在 git 存储库中。我不希望修剪存储库或嫁接历史是一个漫长而痛苦的过程(对于现在来说相对较新git并且希望避免较暗的角落)。

添加一个选项以git p4 clone跨集成复制文件历史记录以便--follow工作需要什么?

这与git p4: migrate full history - 包括集成历史非常相似

与那个问题不同,我总是使用 p4 集成在存储库中移动文件,因此 perforce 记录的文件历史记录是完整的。那应该使我的任务更容易。虽然我不确定它是否在实践中。

0 投票
2 回答
1266 浏览

git - git-p4 如何获取变更列表

git p4 submit --shelve在本地 git repo 中获取您提交的更改并将它们放入更改列表 X 并将它们搁置。

假设我对搁置的更改进行了一些代码审查,因此我的本地 git 存储库中的文件与更改列表 X 中的文件不同。如何将更改列表 X 中的更新获取到我的本地 git 存储库中?

0 投票
1 回答
122 浏览

git - 由于文件名中的非法字符,git2p4 提交失败

我们的团队使用 git2p4 在 github repo 上进行本地开发,然后提交给 perforce。例如。

/home/workspace/src/ - git repo 代码(存在更改)

/home/workspace_p4git/src - 与 perforce 上的软件仓库关联的本地客户端工作区。

当我们在 perforce 本地目录中复制 git repo 源代码时,更改在 git 中被视为未暂存。

现在我的问题:

git repo 中有一个名为:abc %28def%29.extension 的文件。

当我 'git add -A'; 它显示我 -
重命名:abc %2528def%2529.extension -> abc %28def%29.extension

也许这是因为 Perforce 不允许在文件名中使用 '%' 字符。

然后我尝试将我的代码提交到 git repo - git p4 submit -M

这失败并出现以下错误:

目标文件具有非法的转义序列 [%xx]。

命令失败:p4 集成 -Dt "abc %2528def62%2529.extension" "abc %28def%29.extension"

除了更改 git repo 中的文件名之外,有没有人有任何解决此问题的建议?

0 投票
2 回答
466 浏览

github - 你如何在 perforce 和 git repos 之间同步文件

我在 Perforce 项目中有一组文件,用户会不时更新这些文件。我在一个单独的 Github 项目的目录中拥有这些文件集的副本。我希望能够在我的 Github 存储库或我的工作站中的本地副本中自动同步这些文件,只要对 perforce 存储库中的这些文件进行了更改。