问题标签 [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 投票
3 回答
3920 浏览

git - git-p4:致命:git 是在不支持 git-p4 的情况下构建的(NO_PYTHON=1)

我正在尝试在我的 Linux 计算机上使用 git p4。但由于某种原因,git-p4 似乎存在问题。当我运行 git p4 命令时,我得到:

知道为什么显示此消息吗?无论如何我可以修复它吗?

我正在使用内核版本 3.11.0 的 Ubuntu 发行版。

先感谢您。

0 投票
1 回答
261 浏览

git - git p4 clone 没有得到@rev,#head 的所有文件

我尝试从中间克隆一个 p4 存储库,因为它是一个历史悠久的大型存储库,所以 @all 不是一个选项。

问题是工作副本中缺少一些文件,因为它们是在我开始修订之前添加的。

直接使用#head就没有这个问题(即:git p4 clone //depot)

例如,//depot/misc/file.txt 下添加了一个文件,版本为 123456 最新版本为 400000

当我执行“git p4 clone //depot”时,我从#head 获取所有文件(显然,“git p4 clone //depot@all”将包含文件和所有历史记录)

当我执行“git p4 clone //depot@250000,#head”时,我没有得到 //depot/misc/file.txt。

我应该怎么做才能让它工作?

谢谢。

0 投票
1 回答
874 浏览

git - 使用 git-p4 导入分支 - 未知版本或路径不在工作树中

我正在尝试从 Perforce 迁移到 Git。我们的发展结构如下:

1.3.0 版已创建、开发、发布到生产环境。开发仍在继续,版本 1.3.1 已分支和开发等。

目前,我们有一大堆按递增顺序创建的版本。我的任务是将这些版本作为连续分支导入,即分支 1.3.1 来自 1.3.0;分支 1.4.0 来自分支 1.3.1 等...

我正在使用以下一组命令:

最终的 branchList 配置如下所示:

当我运行上述命令时,我得到一个错误:

但是,如果我的 branchList 配置如下所示:

导入完全成功,但分支历史记录未正确反映。

这里有什么问题?

0 投票
1 回答
95 浏览

git - 如果对仓库进行更改,则 git p4 rebase 失败

我最近在工作中为我的主要 c# 项目设置了一个 git p4 克隆。我正在执行以下操作:

  • git checkout -b 新分支
  • git p4 rebase(确保分支与仓库是最新的)
  • 做出改变
  • git 提交 -a
  • 做出更多改变
  • git 提交 -a
  • 准备将文件推送到 p4 仓库

在这一点上,如果自从我开始我的分支以来项目的仓库路径没有任何变化,我可以做一个

  • git p4 变基
  • git p4 提交

一切都很好。但是,如果仓库中有更改,当我运行“git p4 rebase”时,它会应用仓库中的内容,然后当它尝试重新应用我的提交时,它会出错,说“本地更改将被覆盖通过合并”。然后它继续列出我已经提交的所有文件,告诉我应该提交或存储它们。奇怪的是,如果我运行“git status”,则不会显示任何文件。这里发生了什么?

我能够弄清楚使其工作的唯一事情是执行以下操作:

  • git rebase -i HEAD~{自上次仓库更改以来的提交次数}
  • 混帐藏匿
  • git p4 变基
  • git stash 弹出
  • git p4 提交

但我也不是这个的忠实拥护者,因为现在我的提交历史丢失了——我最终得到了一个怪物提交。就 p4 depot 而言,这还不错(哎呀,这就是我最终想要的),但我仍然希望我的本地 Git 提交是可见的,否则我在使用 Git 时失去了很多价值。

值得一提的是,Git 在引发最终错误之前还会显示几个空格警告......但它们都以“警告:”为前缀,所以我认为这不是根本原因。

0 投票
2 回答
2685 浏览

git - git-p4 提交失败,出现“路径不在客户端根目录下”错误

我已经通过 git-p4 配置了 perforce 存储库的 git 镜像,如http://answers.perforce.com/articles/KB_Article/Git-P4中所述,并且工作了一段时间:我能够将 perforce 更改为 git 和提交 git 更改到 perforce。然后突然git p4 submit命令停止工作。当我运行它时,我得到一个错误:

当我以详细模式运行它时,它显示该p4 -c <client name> -G opened ...命令失败并显示以下输出:

嗯,它确实不是,/path/to/git-p4-area但以前不是问题。我仍然可以git p4 rebase毫无问题地运行。如何修复Path is not under client's root错误?

更新

感谢布莱恩的回答,我能够解决它。事实证明我得到的错误是正确的,我确实在 perforce 中打开了文件。我已经用p4 revert ...里面的命令恢复了它们,/path/to/git-p4-area现在git p4 submit可以正常工作了。

该错误使我感到困惑,因为当您使用 git-p4 时,您不会更改 perforce 工作区中的文件,而是使用 git 存储库,而 git-p4 会将 git 提交转换为 perforce 更改,反之亦然。原来我的 perforce 票在上次提交操作的中间过期(票每 12 小时过期)。因此,一些文件在 perforce 工作区中打开。最好的解决办法是工作不到 12 小时……

0 投票
1 回答
132 浏览

git-p4 - `git-p4 sync` 能否像 `p4 sync` 那样只抓取指定时间戳的文件?

我需要将 500 多个项目从 Perforce 导入到 Git,而且它们都是相互关联的。为此,我需要“冻结”世界并同时导入所有项目。我编写的脚本运行了大约 2 天,这意味着开发人员在这 2 天内可以提交更改,这将破坏已经导入的项目。

我知道p4 sync //depot/path/to/project/...@$timestamp导入项目的提交/提交高达 $timestamp。有git p4 sync //path/to/projects那个选项吗?文档根本没有提到时间戳导入。

0 投票
3 回答
544 浏览

github - 将 git hub 存储库与 perforce 库合并

我有项目 A。项目 A 和 github(业务决策)一样有效。他们俩都不同步。我看到我可以使用 git-p4 工具http://git-scm.com/docs/git-p4将 git 更改提交到 perforce。问题是它的第一条指令是:

git p4 clone //仓库/路径/项目

此命令将在 git hub 中创建一个新的 repo。我不要那个。我希望我现有的 perforce 仓库连接到退出的 github 存储库,然后将文件从 github 同步到 perforce。可能吗?

0 投票
2 回答
271 浏览

git - 是否可以克隆 git-p4 存储库?

是否可以使用git clone现有git p4存储库,以便可以git p4用于新存储库?

这里是用例:我有一个从 perforce ( git p4 clone <somepath>@all) 克隆的完整存储库的台式机,我想在不接触 p4 服务器的情况下将其克隆到笔记本电脑(链接到它的速度很慢且滞后),并且能够提交对 perforce 的更改。git clone --depth理想情况下,使用稀疏克隆来减少笔记本电脑磁盘的使用会很好。

0 投票
2 回答
2115 浏览

git - 为什么我推送到 repo 的新分支没有 remotes/origin/HEAD -> origin/master

我创建了一个 git 分支并将其推送到 origin master。现在,当我这样做时git branch --all,它不会显示给我remotes/origin/HEAD --> origin/master。不过,我能够执行所有 git 操作。

  • 这是预期的吗?
  • 有/没有这个条目背后的逻辑是什么?

编辑:

看起来我实际所做的事情有些混乱。我从 p4 导入了一个 repo 这是顺序:

然后当我做 git branch --all 我没有看到那个特定的条目:

** 第二次编辑:**

当我克隆同一个分支并git branch --all得到remotes/origin/HEAD --> origin/master. 这是预期的克隆后的输出

所以现在我更加困惑:)

0 投票
2 回答
245 浏览

git - 将单独的 Perforce 分支迁移到单个 Git 存储库

我正在尝试将项目从 Perforce 迁移到 Git。

我有一个不寻常的场景(至少我没有发现有人问任何类似的东西),Perforce 项目看起来像这样:

我正在尝试将 MAIN 迁移到 Git。MAIN 在 OTHER 之前开始,并且仍然存在。OTHER 通过执行 Perforce “移动/重命名”操作在某个时间点合并到 MAIN 中。

当我在 Perforce 中查看 MAIN 中最初来自 OTHER 的文件的历史记录时,我可以看到完整的历史记录,包括移动之前发生的更改。

但是,当我将 MAIN 迁移到 Git 时(使用 git-p4 clone),来自 OTHER 的所有文件的历史记录在文件移动时开始(在上面的 X 处)。

所以,显而易见的问题是:我怎样才能将完整的历史迁移到 Git,包括在 OTHER 中完成的修订?