git-p4迁移Performance“;“主要”;作为子目录分支到git分支(git分支中的代码加倍) 形势

git-p4迁移Performance“;“主要”;作为子目录分支到git分支(git分支中的代码加倍) 形势,git,perforce,git-p4,Git,Perforce,Git P4,正在尝试将1个“main”和2个分支从perforce迁移到git。在将perforce中的分支映射到spec之后,我尝试了一次典型的迁移,这导致了代码目录复制问题 问题 运行“git p4”(克隆或同步)时,分支中包含主分支代码的副本,分支代码位于主分支旁边的目录中。我希望在git暂存区域中只看到分支代码 安装程序 迁移尝试 这是怎么回事 agvscm01.inq.com /git/buildmaster/git 225 % git init Initialized empty Git re

正在尝试将1个“main”和2个分支从perforce迁移到git。在将perforce中的分支映射到spec之后,我尝试了一次典型的迁移,这导致了代码目录复制问题

问题 运行“git p4”(克隆或同步)时,分支中包含主分支代码的副本,分支代码位于主分支旁边的目录中。我希望在git暂存区域中只看到分支代码

安装程序 迁移尝试 这是怎么回事

agvscm01.inq.com /git/buildmaster/git 225  % git init
Initialized empty Git repository in /git/buildmaster/git/.git/
agvscm01.inq.com /git/buildmaster/git 226  % git p4 sync --detect-branches --use-client-spec //depot/main/branches@all
Importing revision 20482 (88%)
    Importing new branch branches/MAINT_01

    Resuming with change 20482
Importing revision 21137 (96%)
    Importing new branch branches/mobile

    Resuming with change 21137
Importing revision 21396 (100%)
Updated branches: MAINT_01 MAINT_02 mobile
agvscm01.inq.com /git/buildmaster/git 227  % git checkout -b master p4/branches/MAINT_01
Checking out files: 100% (14923/14923), done.
Already on 'master'
agvscm01.inq.com /git/buildmaster/git 228  % git checkout -b rel_2 p4/branches/MAINT_02
Checking out files: 100% (15142/15142), done.
Switched to a new branch 'rel_2'
agvscm01.inq.com /git/buildmaster/git 229  % git checkout -b mobile p4/branches/mobile
Checking out files: 100% (29960/29960), done.
Switched to a new branch 'mobile'
agvscm01.inq.com /git/buildmaster/git 233  % git checkout master
Switched to branch 'master'
  agvscm01.inq.com /git/buildmaster/git2 303  % git branch -a
* master
  mobile
  rel_2
  remotes/p4/branches/MAINT_01
  remotes/p4/branches/MAINT_02
  remotes/p4/branches/mobile
结果 请注意,MAINT_01和mobile目录具有所有正确的历史记录,但在该级别上只能看到mobile的内容

期望 移动分支不应包括MAINT_01目录。移动电话是MAINT_01的一个分支。这可能很简单,但我没有看到。 此外,签出master只包括MAINT_01作为根目录。MAINT_01的内容应为分支的根

agvscm01.inq.com /git/buildmaster/git2_bak 307  % git checkout master
Switched to branch 'master'
agvscm01.inq.com /git/buildmaster/git2_bak 308  % ls
MAINT_01
agvscm01.inq.com /git/buildmaster/git2_bak 309  %
谢谢你的帮助



从1.7.11开始,git-p4模块中的git中存在一个已确认的错误,即在一起使用--使用客户端规范--检测分支选项时,将Performce代码错误映射到git repo。当我向git开发团队报告该问题时,邮件响应中的一个片段

谢谢你的详细报告。这是1.7.12-rc2中的一个错误。 本系列在origin/master的基础上修复了它

问题的关键是文件被映射到错误的 当同时使用客户端规范和分支检测时,git中的位置 已启用

皮特·威克夫(5):

  • git p4测试:将client_view()函数移动到库
  • git p4测试:添加断开的--使用客户端规范--检测分支测试
  • git p4:在初始化中设置self.branchPrefixes
  • git p4:在stripRepoPath中执行通配符解码
  • git p4:使用客户机规范进行分支检测

目前他们发布了1.7.12rc2。在等待固定版本时

1.7.12版中的git-p4脚本似乎存在问题。rc2I能够对发布的版本执行更健壮的导入。我想这可能是我的问题。正在验证…我刚刚遇到了同样的问题。在这里看到我的答案了吗?有没有办法手动将这些文件夹同步到repo中以保存历史记录?
agvscm01.inq.com /git/buildmaster/git2 304  % git checkout mobile
Checking out files: 100% (15073/15073), done.
Switched to branch 'mobile'
agvscm01.inq.com /git/buildmaster/git2 305  % ls
MAINT_01  mobile
agvscm01.inq.com /git/buildmaster/git2 306  %
agvscm01.inq.com /git/buildmaster/git2_bak 307  % git checkout master
Switched to branch 'master'
agvscm01.inq.com /git/buildmaster/git2_bak 308  % ls
MAINT_01
agvscm01.inq.com /git/buildmaster/git2_bak 309  %
 git-p4.py                     | 75 +++++++++++++++++++++++++++--------------

 t/lib-git-p4.sh               | 18 ++++++++++

 t/t9801-git-p4-branch.sh      | 77 +++++++++++++++++++++++++++++++++++++++++++

 t/t9809-git-p4-client-view.sh | 17 ----------

 4 files changed, 146 insertions(+), 41 deletions(-)