首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用git-p4进行--检测分支?

如何使用git-p4进行--检测分支?
EN

Stack Overflow用户
提问于 2010-04-29 22:11:10
回答 2查看 2.3K关注 0票数 10

我的p4存储库的结构类似于:

代码语言:javascript
复制
//depot/project/branch1
//depot/project/branch2
//depot/project/branch3
... etc

但是,当我使用git-p4克隆“项目”时,所有3个分支都不会被视为分支,所有分支都克隆到单个主分支中。

下面是我调用git-p4的方式:

代码语言:javascript
复制
git-p4 clone --detect-branches //depot/project

我期望git-p4为"project“创建一个具有三个分支的git数据库,并且项目的根将被映射到分支名称之后的路径部分(例如:如果//depot/project/branch1有一个名为"lib”(//depot/project/branch1/lib)的子目录,那么我的本地文件系统应该类似于具有三个git分支的/git_project/lib )。

我所期待的是错误的吗?我是否错误地调用了git-p4

EN

回答 2

Stack Overflow用户

发布于 2010-04-30 01:10:49

如果你看一下git-p4 code (也是originally here),你会看到:

代码语言:javascript
复制
if self.detectBranches:
  branches = self.splitFilesIntoBranches(description)
  for branch in branches.keys():
    ## HACK  --hwn
    branchPrefix = self.depotPaths[0] + branch + "/"

使用splitFilesIntoBranches探索分支的p4代码库。

所以也许git-p4 clone //depot/project@all --detect-branches就可以了(在这个SO answer中使用@all,在repo路径之后使用--detect-branches选项)?

也就是说,如果脚本不够智能,可能更简单的解决方案是运行3次,每个分支一次,然后将结果导入一个Git代码库。

票数 1
EN

Stack Overflow用户

发布于 2012-08-18 12:43:46

我刚刚在--detect-branches上处理了一个相关的bug。这个脚本做了几件事:

  1. 使用p4 data
  2. 检测分支名称创建每个分支的父级映射
  3. 将文件映射到特定分支
  4. 在提交到git

之前删除分支前缀

您必须按照代码进行操作,以确保每个步骤都正确完成。使用pdb可以很好地完成这项工作。

步骤1和2是在P4Sync.getBranchMapping中完成的

步骤3在P4Sync.splitFilesIntoBranches中完成

对于步骤4,这是通过P4Sync.stripRepoPath完成的。在那里设置一个断点,您可以查看是否已检测到分支以及是否正确地重命名了文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2737999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档