2013-11-21 2 views
1

Я сейчас перемещаю наш репозиторий в git. Во время перехода инженеры все равно будут отправлять в репозиторий Perforce. Пока инженеры все еще работают, я буду переключать системы на использование репозитория Git. Таким образом, я делаю следующее, чтобы сохранить репозитории в синхронизации:Как синхронизировать Perforce с Git, сохраняя существующие хэты 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-p4 и git? Если это так, я предполагаю, что это потребует магии с update-refs и т. Д., И я все еще нахожусь на кривой обучения, когда дело доходит до git сантехнических команд.

+0

Вы думали о запуске продукта неволей Git Fusion? – 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

Спасибо за подсказку. Я искал что-то подобное, но, должно быть, пропустил это. –

Смежные вопросы