标签: git-p4

在使用P4进行远程提交时,如何为本地提交设置Git?

我工作的地方使用Perforce环境但我们不允许在我们的功能完成并准备好进行测试之前办理登机手续.我需要能够进行本地提交,因为有时我已经检查了超过50个文件一周而没有对我的更改进行任何版本控制.

Git符合我的目的,但我不确定如何将其设置为与我的其他环境最佳集成.

我的目标是:

  • 在处理某项功能时,我希望能够完全忽略Perforce并尽可能多地编辑和提交(在Git中).
  • 在提交功能之前,我需要能够进入P4V或P4Win以区分文件并确保一切都是最新的,并且在测试之后我希望我的所有更改都在一次提交中.

看起来在我的本地工作区的根目录下创建一个git存储库会起作用,但我有一些问题......

  1. 此存储库中有大量文件,至少初始提交git正在爬行.
  2. 当我从Perforce"获取最新信息"时,我需要能够轻松更新git存储库
  3. 在编辑之前,我不想在Perforce中检查每个文件,也不想在Perforce中执行强制同步,因为它们是未检出的可写文件.

谁能给我一些关于此的提示?我一直在看git中的子模块作为一种可能减少git repo大小的方法,因为perforce repo的很多部分我都不需要进行版本控制.

git version-control perforce git-p4

7
推荐指数
1
解决办法
497
查看次数

无法将所有perforce分支导入git repo

我正在尝试将项目从我公司的Perforce仓库导入到git存储库中.我已成功将单个分支转换为单个git仓库,但我想要做的是将整个项目加上所有分支,但我无法使其正常工作.

我有我的.p4settings文件:

P4PORT=perforce-server.local:1666
P4USER=my.username
P4CLIENT=my.clientspec.name
Run Code Online (Sandbox Code Playgroud)

Clientspec非常简单:

//project/... //my.clientspec.name/project/...
-//project/External/... //my.clientspec.name/project/External/...
Run Code Online (Sandbox Code Playgroud)

第二行是从结帐中排除外部库二进制文件.

我使用以下命令行启动git-p4导入:

git p4 clone --verbose --detect-branches --max-changes=100 //project/...@all
Run Code Online (Sandbox Code Playgroud)

这将检查所有分支名称等,并尝试从第一次提交开始导入(此特定项目从changelist 771开始)

Importing from //project/...@all into project
Initialized empty Git repository in /Users/grant/Development/git_test/project/.git/
Reading pipe: git config git-p4.useclientspec
Reading pipe: git config git-p4.user
Reading pipe: git config git-p4.password
Reading pipe: git config git-p4.port
Reading pipe: git config git-p4.host
Reading pipe: git config git-p4.client
p4 -G branches
Opening pipe: p4 -G branches
p4 -G branch -o branch-1
Opening pipe: p4 -G branch …
Run Code Online (Sandbox Code Playgroud)

git perforce git-p4

7
推荐指数
1
解决办法
1929
查看次数

git-p4 - 对它如何工作的任何重要解释

如果您远程使用perforce并且希望获得用于跟踪差异的强大git速度,则可以使用以下解决方案:http://kb.perforce.com/article/1417/git-p4

但是,我注意到以下几点:

  1. 完全按照说明操作
  2. 导入大型树而不获取历史记录可能需要一段时间
  3. 在大型树上,第一次提交将花费很长时间,因为此命令将同步整个树.
  4. 如果你做了一个你不想发送给perforce的提交,你必须做一个"git rebase -i"并删除有问题的提交记录.你不能做"git p4 submit",然后"p4 revert"你不想发送的文件.
  5. 如果你搞砸了什么,事情会变得非常混乱.

这是我的问题.git-p4如何使用远程存储库有一个很好的解释吗?热git-p4的整体解释有效吗?

git-p4不适合胆小的人.我知道你真的需要理解git才能很好地使用它.

git perforce git-p4

7
推荐指数
1
解决办法
6165
查看次数

git p4提交:补丁不适用

最近我一直在使用git-p4遇到问题.

我目前的工作流程是:

git checkout -b some_feature
# do some work and commit to some_feature branch
git checkout master
git merge --no-ff some_feature
git p4 rebase
git p4 submit
Run Code Online (Sandbox Code Playgroud)

并非总是如此,但偶尔执行时git p4 submit,更改实际上并不适用,而是我看到:

error: some_file.extension: patch does not apply
Run Code Online (Sandbox Code Playgroud)

做了一些研究,我尝试在主机上进行硬重置并在没有--no-ff标志的情况下再次合并,但这似乎没有帮助.

任何想法都非常感谢.

git perforce git-p4

7
推荐指数
2
解决办法
1671
查看次数

git-p4 克隆单个文件

我想使用git对特定文件进行一些临时管理。该目录结构中有许多我不想要的文件(并且 git 不能很好地处理),但我需要对这个文件使用其补丁管理功能。

我想使用 git-p4。是否可以克隆一个文件而不是整个目录结构?

git git-p4

6
推荐指数
1
解决办法
341
查看次数

git p4提交失败

我尝试在一个repo上运行git p4 submit,我一直在运行它作为git和perforce之间的临时桥梁.多人使用repo作为遥控器,并定期将其提交回perforce.

除了一些重复的perforce提交之外,它一直很好地工作,其奇怪的行为我似乎无法再现.然后有一天,我得到了这个错误.我不能再将任何git提交到perforce.

user@hostname:~/Source/code$ git p4 submit -M --export-labels
Perforce checkout for depot path //depot/perforce/workspace/ located at /home/user/Source/git-p4-area/perforce/workspace/
Synchronizing p4 checkout...
... - file(s) up-to-date.
Applying ffa390f comments in config xml files
//depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/second.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/third.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/forth.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/fifth.xml#1 - opened for edit
error: patch failed: sub/folder/structure/first.xml:1
error: sub/folder/structure/first.xml: patch does not apply
error: patch failed: sub/folder/structure/second.xml:1
error: sub/folder/structure/second.xml: patch does not apply
error: patch …
Run Code Online (Sandbox Code Playgroud)

git perforce git-p4

6
推荐指数
1
解决办法
2640
查看次数

初始克隆后扩展`git-p4` clientspec

执行git-p4 clone --use-clientspec完之后,我想在clientspec中添加一个额外的条目,并将添加的条目的当前状态导入到我的Git存储库中.

在我扩展了clientspec之后,a git-p4 rebase什么也没做(可能是因为自上次提交的更改以来没有新的相关更改列表,我所做的就是更新clientspec)

我试过做了git-p4 sync --use-client-spec,但是抱怨快速导入失败了,因为新的提示不包含我的初始提交.

有没有办法扩展客户端规范,而无需git-p4 clone从头开始新的Git存储库?

git perforce git-p4

6
推荐指数
1
解决办法
857
查看次数

git p4 clone没有文件

我正在从Perforce迁移到git,在这个过程中我正在努力使文件结构正确.

目前的perforce结构是这样的:

//depot
    /android
        /main
        /other_branches
        /core_library
            /main
            /other_branches
Run Code Online (Sandbox Code Playgroud)

我在git中拍摄这样的东西:

/android
/core_library
Run Code Online (Sandbox Code Playgroud)

我设置了我的客户端规范View如下(我稍后会担心分支):

//depot/android/main/... //p4-git/android/...
//depot/android/core_library/main/... //p4-git/core_library/...
Run Code Online (Sandbox Code Playgroud)

我运行以下命令,显示完整的提交历史记录,但没有文件.

set P4CLIENT=p4-git
git p4 clone --use-client-spec //p4-git/@all
Run Code Online (Sandbox Code Playgroud)

git perforce git-p4

6
推荐指数
1
解决办法
313
查看次数

无法执行 - Git P4克隆坏了

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

c:\P4_GIT\DT>git p4 clone //depot/CTAT/Windows/OneP/
fatal: 'p4' appears to be a git command, but we were not
able to execute it. Maybe git-p4 is broken?
Run Code Online (Sandbox Code Playgroud)

git perforce git-p4

6
推荐指数
4
解决办法
3185
查看次数

如何使用git-p4取消更改

最新的git-p4脚本(https://github.com/ermshiperete/git-p4)有一个"搁置"但没有"取消搁置"的命令.如何使用它取消更改?

git perforce git-p4

5
推荐指数
1
解决办法
1047
查看次数

标签 统计

git ×10

git-p4 ×10

perforce ×9

version-control ×1