将更改从GIT传播到Perforce

时间:2016-01-12 19:00:20

标签: git perforce

我们曾经有一个Perforce项目,让我们在// depot / path / myProject中说myProject。我们最近将它迁移到GIT(myProject.git),但仍有一些人正在使用Perforce。因此,如果一个人A修改了GIT中的文件A.txt,那么在//depot/path/myProject/A.txt中将这些更改传播到perforce的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用Helix GitSwarm之类的git前端(基于GitLab),它基本上是一个集成的Git服务器,映射到常规Perforce分支/流。

但是我不认为你可以在同一个项目中并行实际拥有2个不同的SCM。很快这两个项目就会出现分歧。

让我们在某个时候说一个文件你是同一个状态A:

 Perforce:
 A 

 Git:
 A

然后,如果两者并行发展,你会得到类似的东西:

Perforce:
A --> B --> D --> E

Git:
A --> M --> N --> P

假设您想要将不同的A - > E应用于Git,您可以直接“修补”主线,因为您会期望看起来像A的东西。

你可以做的是从共同的祖先分支:

Perforce:
A --> B --> D --> E
Git:
A --> M --> N -->P--> R
\                  /
 -->B --> D --> E 

然后你必须决定是否将R合并回Perforce。但这将是一个噩梦,因为您必须手动跟踪您同步2个工具的位置。

SCM的目的是为您的项目提供统一的历史记录,如果您一次使用2,则无法再获得一致的历史记录。

正如所提到的,将遗留系统置于只读状态可能更容易,并帮助人们过渡到新系统。

答案 1 :(得分:0)

如果您想使用Git Swarm镜像Perforce的内容,您还需要使用Git Fusion来实现这一目标。

如果您不需要Git Swarm的UI和Git Management功能,您可以自己使用Git Fusion。

Git Fusion是Perforce Server和Git用户之间的桥梁。

你会创建Git Fusion repos,它映射到Git用户需要使用的软件仓库区域。

Git用户可以通过Git Fusion克隆,拉动,推送等。

然后,Perforce用户可以看到他们在分支机构中所做的更改,并且可以通过Git用户更改Perforce用户的make。

Git Fusion管理指南在这里:

https://www.perforce.com/perforce/doc.current/manuals/git-fusion/

希望这有帮助, 仁。