2013-11-21 29 views
1

我正在将我们的存储库移至git。在过渡期间,工程师仍将提交给Perforce存储库。当工程师仍在工作时,我将切换系统以使用Git存储库。因此,我一直在做以下,以保持库同步:如何在保持现有Git提交哈希的同时将Perforce同步到Git?

rm -rf family 
git clone ssh://[email protected]:7999/project/family.git 

cd family 
git p4 sync //depot/project/[email protected] 
git rebase remotes/p4/master 
git push -f 

这工作得很好,但我们的工具之一,需要提交的哈希值保持不变;上面创建了新的提交,因此创建了新的提交哈希。我甚至需要git-p4git?如果是这样,我想象它需要魔术与update-refs等,我仍然在学习曲线,当涉及到git管道命令。

+0

你有没有想过运行Perforce的Git的融合产品? – cmcginty

+0

是的,它看起来会帮助转换,但它对于我们所需要的东西太多了。 –

回答

1

对我来说,以下工作:

rm -rf family 
git clone ssh://[email protected]:7999/project/family.git 

cd family 
git update-ref refs/remotes/p4/master $(git log -1 --format='%H') 
git symbolic-ref refs/remotes/p4/HEAD refs/remotes/p4/master 
git p4 sync //depot/project/family || true 
git p4 rebase 
git push 
+1

git log -1 --format ='%H'可能更容易 – cmcginty

+0

感谢您的提示。我曾经找过类似的东西,但一定是错过了。 –

相关问题