问题标签 [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 回答
710 浏览

git - 迁移后如何处理 git-p4 远程分支?

从 P4 迁移到 Git 时,我对 refs/remotes/p4/master 的含义有一个模糊的理解(文档不是很清楚,我在这里找不到解释)。

根据git-p4 克隆文档:

将来自给定 p4 软件仓库路径的头部修订的全部内容导入到 Git 分支 refs/remotes/p4/master 中的单个提交中。

如果我理解正确,Git 会以某种方式使用 refs/remotes 来跟踪使用原始 P4 存储库创建的本地 Git 存储库(如果我弄错了,请纠正我)。

我的问题是:如果迁移后我不想保持 Git 和 P4 之间的连接 - 我应该删除 ref/remotes/p4/master 分支吗?还是我应该移动它?它甚至有任何影响吗?也许为了安全起见,把它放在那里会更好……?

注意:稍后我需要将同一项目的更多分支从 Perforce 迁移到 Git,但同样,一旦分支迁移,我将不再需要在 Perforce 中跟踪它。

0 投票
2 回答
548 浏览

git - Git -> Perforce 的翻译失败

我尝试将 Git 存储库迁移到 Perforce。我尝试过的是(例如)

  1. 克隆git clone https://github.com/mbostock/d3.git
  2. 将目录更改为新文件夹
  3. 提交与git p4 submit

片刻后失败并显示错误消息

我还没有找到迁移适用的 Git。我正在使用 Git 1.9.5。我究竟做错了什么?

0 投票
1 回答
247 浏览

git - git p4 克隆失败:ValueError 错误的封送数据

我正在尝试使用 Git-P4 使项目的日常更改更容易一些。当我进入git p4 克隆阶段时,在 Git wiki 中遵循 Git-p4 用法时,我收到以下错误(故意删除了路径):

不确定这是否意味着我必须更改 p4 print 命令?社区中的其他人遇到此错误吗?和/或有建议吗?

编辑 输出示例

0 投票
1 回答
1131 浏览

git - git-p4 克隆命令失败

我正在尝试运行此命令: git-p4 clone -v //depot/path/project/v31a

它失败并出现错误:

从 //depot/path/project 导入到项目中

重新初始化 /home/xxx/Downloads/p4tmp/v31a/.git/ 中的现有 Git 存储库

读取管道:['git', 'config', '--bool', 'git-p4.useclientspec']

将 //depot/path/project/v31a/ 从修订版#head 初始导入到 refs/remotes/p4/master

读取管道:['git', 'config', 'git-p4.user']

读取管道:['git', 'config', 'git-p4.password']

读取管道:['git', 'config', 'git-p4.port']

读取管道:['git', 'config', 'git-p4.host']

读取管道:['git', 'config', 'git-p4.client']

打开管道:['p4', '-G', 'files', '//depot/path/project/v31a/...#head']

打开管道:['p4', '-G', 'describe', '-s', '222342']

读取管道:['git', 'config', '--bool', 'core.ignorecase']

提交到 refs/remotes/p4/master

打开管道:p4 -G users

git 快速导入的 IO 错误。你的 git 版本够新吗?

===============================================

在此之前,我已经设置了 P4HOST、P4USER 和 P4PASSWD 环境变量。

知道这个错误是什么吗?我的 git 版本是 2.3.6。

0 投票
1 回答
351 浏览

python - Cygwin下的Git P4:提交失败,“补丁不适用”

我正在尝试在 Cygwin 下使用 git-p4 。工作流程的“克隆”和“变基”部分似乎工作正常,但我无法“提交”。我猜这可能与行尾约定有关。我已经查看了这个 git-p4 问题及其链接项目,但是对行尾和空格配置的操作到目前为止还没有成功。我的配置中的注意事项:

(1) 我正在使用 bash shell 函数技巧来让路径正常工作:

(2) 我已经尝试了 git 值的所有设置autocrlf——无论 (true,false,input) 是什么结果都是失败的。目前尝试“假”,因为这在与仓库进行比较时最有意义。

(3) 我也玩过 p4 clientspec 的 lineend 值;目前正在尝试“unix”、Cygwin 的 b/c 和在 OSX 下运行的 P4 沙箱服务器。

测试很简单。存储库包含一个文件 foo1。仓库版本看起来像(使用输出od -c):

本地 git 提交的版本如下所示:

applyCommit()在 git-p4 的方法中添加了一些额外的诊断输出。结合使用 --verbose 运行提交:

注意“理智:”诊断行。这是方法tryPatchCmd中失败的值applyCommit()。如果我在 bash 命令行执行语句的第一部分,我会看到:

将其连接到命令的第二部分不会导致错误。我很困惑为什么os.system()在 Python 脚本中使用命令执行失败但否则成功。想法?

0 投票
1 回答
989 浏览

python - git-p4 消息和作者编码

今天我可以将一些相当古老的 perforce 存储库迁移到 git。虽然这真的很有趣,但有一件事引起了我的注意。提交消息中的所有特殊字符,甚至作者姓名都不是正确的编码。

所以我试图调查问题来自哪里。

  • 首先 perforce 服务器不支持 unicode,所以设置 P4CHARSET 没有效果,但是Unicode clients require a unicode enabled server.
  • 然后我检查了简单命令的输出,例如p4 usersANSI 中确实存在的位置(根据file -bi重定向输出咨询 notepad++ 或 ISO-8859-1)
  • locale命令说 LANG=en_US.UTF-8 ...

毕竟我的猜测是所有 p4 客户端输出都在 ISO-8859-1 中,但 git-p4 假定为 UTF-8。

我尝试用重写提交消息

但这并不能解决问题,特别是因为它不打算重写作者姓名。

任何人都猜测如何在 git-p4 接收它们之前强制将输出转换为 UTF-8?

更新:

我尝试使用添加到 PATH 的简单 shell 脚本“覆盖”默认的 p4 命令输出

但这破坏了明显使用的编组 python 对象:

更新2:

如此处所见更改 Python 的默认编码?我试图将python编码设置为ascii:

输出:

但仍然没有正确迁移所有消息和作者。

更新 3:

即使尝试修补 git-p4.pydef commit(self, details, files, branch, parent = "")功能也无济于事:更改

对其中之一

刚刚提出:

因为我不是 python 开发人员,所以我不知道接下来要尝试什么。

0 投票
5 回答
2885 浏览

github - 寻找一种同步 Perforce <-> Git 的方法

我们的团队正在寻求将我们的 perforce 服务器迁移到 Git。有没有办法从我们的 Github 服务器中的一个分支同步签入到 Perforce 以保持同步?我一直在查看 git-p4 ,似乎有很多关于如何同步 Perforce -> Git 的文档,但反之则不然。理想情况下,我希望它以两种方式同步 perforce <-> git,p4-git 可以吗?

0 投票
3 回答
1612 浏览

git - git p4 sync - perforce 的变化去哪儿了?

在我当前的设置中,在 Perforce 软件仓库中所做的所有更改都会迁移到 git 存储库。转移是一种方式,总是从 Perforce 到 git,而不是相反。我使用将 depot 复制到新的 git repo 没有问题git p4 clone,但是,我现在正在尝试使用git p4 sync,并且我的 repo 没有被更新。

当我运行git p4 sync时,它确实显示了有关从 Perforce 库导入新更改的状态消息。如果我再次运行该命令,它会说一切都是最新的。我的master分支没有更改,并且我的存储库中没有列出任何其他分支或遥控器(例如,使用git branch -vand git remote -v。我如何签出这些更改?

(使用git version 2.3.2 (Apple Git-55))。

0 投票
1 回答
286 浏览

git-p4 - 致命:不支持的命令:Users.Ref "KPLUS"

我正在将几个 Perforce 项目迁移到 Git。一个在 18% 的过程中失败了:

致命:不支持的命令:Users.Ref "KPLUS"

看起来 git fast-import 正在尝试执行文件中应该打印的文本(我认为)

快速导入崩溃报告告诉我

文本位于似乎格式不正确的 xml 文件中,但我认为这无关紧要。

0 投票
5 回答
5599 浏览

git - 无法执行 - Git P4 克隆损坏

安装git后- 我尝试克隆现有的p4分支,但失败并显示以下信息: