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

git - git-p4:无法映射文件错误

我正在使用这个版本的gitp4.py并且在尝试克隆 repo 时出现以下错误。

请注意,根路径不同。似乎我的 repo (xxx) 包含一个引用另一个 repo (yyy) 的文件。我无权访问 yyy 存储库。有没有办法通过完全跳过此修订版或从历史记录中删除此文件来防止此错误?

谢谢,M。

0 投票
1 回答
939 浏览

git - 将多个分支从 Perforce 迁移到 Git

我正在尝试使用 git-p4 工具将 perforce 存储库迁移到 Git,但在分支配置方面遇到了困难。考虑以下 P4 布局:

在这里,我需要将 SubFolder1 和 SubFolder2 作为单独的分支迁移,同时将 Folder2、file1 和 file2 保留在 master 分支中。

我尝试在 p4.branchList 配置中指定以下配置:

但我得到了这个错误,它不是很有帮助:

很确定我做错了什么,我什至不确定当前的布局迁移是否可以使用 git-p4。任何帮助将不胜感激。

谢谢

更新

我忘了提到我尝试运行 p4 describe 命令,如错误消息中所示,但我收到另一个错误,指出“缺少更改描述”。

0 投票
2 回答
625 浏览

git - git p4 同步更改列表间隔

我的目标是使用更改列表的间隔从 p4 同步存储库,以便将存储库的第一个更改列表版本视为初始提交。所以我使用了以下命令:

wherecl1cl2是提到的变更列表的数量。

完成后,之前创建的文件cl1不在HEAD.

正如我所看到的,问题在于,在同步给定范围内的更改之前,p4 任务不会同步到cl1存储库的版本,并将提交应用于空存储库。

这是一个错误还是我对 git p4 应该如何工作的误解?我应该如何正确地做到这一点?

UPD:我需要更改列表间隔的原因是 p4 数据库存在问题,我无法在过去某个时间点之前签出更改列表。而且我想迁移到具有所有可访问历史记录的 git。

0 投票
0 回答
48 浏览

git-p4 - 可以将 p4-git clone 配置为将目录中的所有文件都视为大文件吗

我有一个大型存储库,其中包含许多二进制文件和其他文件类型。使用 largefileextensions 配置,我可以跟踪 GitLFS 大型文件系统的某些文件类型。有一个目录,其中的文件都应被视为大文件。有没有办法配置 p4-git clone 以便目录中的任何文件都被视为大文件而不配置目录中文件的所有扩展名?

0 投票
1 回答
274 浏览

git - 使用合并策略联合将远程 .gitattribute 文件与本地 .gitattribute 文件合并

我正在使用 git p4 rebase 和 git LFS。不幸的是,在将 P4 内容同步到本地 git 存储库后,它会从 .gitattributes 中删除所有现有的 LFS 跟踪文件,并将文件添加到已同步的 .gitattributes 中。

例子:

同步前的本地和远程 .gitattributes 文件

同步后的本地 .gitattributes 文件

现在,如果我推送到远程,我将失去对 1、2、3 的跟踪。所以在我推送之前,我需要将远程 .gitattributes 文件与本地 .gitattributes 文件合并以获得

然后我可以推送到远程。

0 投票
1 回答
774 浏览

python - os.path.split seems to be returning wrong

I can't understand what os.path.split is doing. I'm debugging a program (specifically git's interface with Perforce: git-p4) and seeing that os.path.split is splitting the incoming path in ways the script isn't expecting, and also seems inconsistent with the documentation. I made some simpler tests and can't figure out what it's doing myself.

The path I want to split is //a/b (The path is actually a Perforce path, not a local filesystem path), and I need b in the second half of the returned pair. I'm running on Windows, and suspect the issue has something to do with the path not looking very Windows-esque. When I tried running my test code in an online sandbox it worked as expected unlike my Windows machine.

I've read the documentation:

os.path.split(path)

Split the pathname path into a pair, (head, tail) where tail is the last pathname component and head is everything leading up to that. The tail part will never contain a slash; if path ends in a slash, tail will be empty. If there is no slash in path, head will be empty. If path is empty, both head and tail are empty. Trailing slashes are stripped from head unless it is the root (one or more slashes only). In all cases, join(head, tail) returns a path to the same location as path (but the strings may differ). Also see the functions dirname() and basename().

My test code:

What I'd expect:

What I actually get on a couple online sandboxes:

What I actually get on my PC:

Python 2 because the git-p4 code is written for Python 2.

So my first question is just for my own understanding. What's going wrong here? An OS difference?

And then beyond my own curiosity, I need a fix. I've been able to modify git-p4, but I'd of course prefer to edit it as little as possible as I'm not trying to understand it! I'm not a python expert. Is there a comparable method that can get ('//a', 'b') returned?

0 投票
1 回答
459 浏览

git - Perforce 到 Git:无效选项:-r

我正在尝试将项目从 Perforce 迁移到 Git。我使用git-p4它作为我的主要工具来为我完成繁重的工作,它默认与 Windows 上的 Git 一起提供:

C:\Program Files\Git\mingw64\libexec\git-core\git-p4.

Windows 中将 Perforce 迁移到 Git 之后,我已经到了执行克隆命令的步骤:(git p4 clone <PerforceRepo>其中 p4 是文件 git-p4.py 的别名)

我不断收到错误:

无效选项:-r。

我查看了 p4-git python 文件,没有-r使用的地方。有什么帮助吗?

0 投票
1 回答
254 浏览

git - Perforce 到 Git:克隆错误“未进行任何更改”

我正在尝试将项目从 Perforce 迁移到 Git。我正在关注并在克隆步骤中,执行停止并显示一条消息:

导入没有变化!

不签出任何分支,使用“git checkout -q -b master”

可能是什么问题?

0 投票
1 回答
155 浏览

git - 如何推送和合并特定的提交历史?

我将 Perfoce 中的一个 Repo 及其所有历史克隆到本地 Git,调用它SubProj,然后我将它推送到一个远程 repo,并使用该远程 repo 合并SubProj到一个SuperProj.

无法将部分历史记录从 Perforce 导入到 Git,无论是@all还是none. 无论如何,一切顺利,我删除了本地仓库及其远程仓库。

现在,Perforce 仓库发生了变化SubProj,所以我再次克隆SubProj了所有历史记录,我想推送然后合并,SuperProj但我不想要整个历史记录(只有新的变化)。

SaySubProj有这段历史,而且是本地的:

A--B--C--D--E--F--G--H

我知道我们可以从最旧的提交开始推送,直到特定的提交。前任:

将推A--B--C送到遥控器。

但:

我可以只推E--F--G--H送到远程仓库吗?

我可以全部推,然后只合并E--F--G--H吗?

0 投票
2 回答
205 浏览

git - 尝试从 Perforce 同步到 GIt,来自不同版本的相同产品

我正在尝试从 perforce 同步到 Git,将不同版本的相同产品同步到 diff 分支,我需要每周进行一次。我不需要以其他方式进行(git-> perforce),并且 git repo 不会有任何更改,它只是每周同步的一种方式

我在一定程度上遵循了这个git-p4 migrate 不同子目录中的分支,但是由于我需要同步的最终文件夹名称是相同的,我有点困惑如何把它向前推进

在此之后,命令无限运行了几个小时,我不得不杀死它,之后我跑了

这是我在日志中看到的,对于 Rel1 看起来不错,对于 Rel2 看起来不太好

任何帮助/指导表示赞赏