问题标签 [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.
git - git-p4:致命:git 是在不支持 git-p4 的情况下构建的(NO_PYTHON=1)
我正在尝试在我的 Linux 计算机上使用 git p4。但由于某种原因,git-p4 似乎存在问题。当我运行 git p4 命令时,我得到:
知道为什么显示此消息吗?无论如何我可以修复它吗?
我正在使用内核版本 3.11.0 的 Ubuntu 发行版。
先感谢您。
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。
我应该怎么做才能让它工作?
谢谢。
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 配置如下所示:
导入完全成功,但分支历史记录未正确反映。
这里有什么问题?
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 在引发最终错误之前还会显示几个空格警告......但它们都以“警告:”为前缀,所以我认为这不是根本原因。
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 小时……
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
那个选项吗?文档根本没有提到时间戳导入。
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。可能吗?
git - 是否可以克隆 git-p4 存储库?
是否可以使用git clone
现有git p4
存储库,以便可以git p4
用于新存储库?
这里是用例:我有一个从 perforce ( git p4 clone <somepath>@all
) 克隆的完整存储库的台式机,我想在不接触 p4 服务器的情况下将其克隆到笔记本电脑(链接到它的速度很慢且滞后),并且能够提交对 perforce 的更改。git clone --depth
理想情况下,使用稀疏克隆来减少笔记本电脑磁盘的使用会很好。
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
. 这是预期的克隆后的输出
所以现在我更加困惑:)
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 中完成的修订?