git-p4迁移Performance“;“主要”;作为子目录分支到git分支(git分支中的代码加倍) 形势
正在尝试将1个“main”和2个分支从perforce迁移到git。在将perforce中的分支映射到spec之后,我尝试了一次典型的迁移,这导致了代码目录复制问题 问题 运行“git p4”(克隆或同步)时,分支中包含主分支代码的副本,分支代码位于主分支旁边的目录中。我希望在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
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(-)