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