Наредни систем за који ћете видети процедуру увоза је Перфорс. Као што смо разматрали изнад, постоји два начина да Гит и Перфорс комуницирају међусобно: git-p4 и Perforce Git Fusion.
”Git Fusion” чини овај процес прилично безболним. Једноставно конфигуришете поставке вашег пројекта, мапирања корисника и гране користећи конфигурациони фајл (као што је разматрано у [_p4_git_fusion]), и клонирате репозиторијум. Git Fusion вам оставља оно што изгледа као природни Гит репозиторијум, који затим можете да гурнете на природни Гит хост ако желите. Могли бисте чак да користите и Перфорс као свој Гит гост ако то желите.
Git-p4 такође може да се понаша као алат за увоз. Као пример, извршићемо увоз Jam пројекта из Перфорс јавног депоа. Да бисте подесили свој клијент, прво морате да извезете променљиву окружења P4PORT тако да показује на Перфорс депо:
$ export P4PORT=public.perforce.com:1666
Note
|
Да бисте могли пратити пример, потребан вам је Перфорс депо на који можете да се повежете. У нашим примерима ћемо користити јавни депо на адреси public.perforce.com, али можете да користите било који депо на које имате приступ. |
Извршите команду git p4 clone
да увезете Jam пројекат са Перфорс сервера, наводећи депо и путању пројекта, као и путању у коју желите да увезете пројекат:
$ git-p4 clone //guest/perforce_software/jam@all p4import
Importing from //guest/perforce_software/jam@all into p4import
Initialized empty Git repository in /private/tmp/p4import/.git/
Import destination: refs/remotes/p4/master
Importing revision 9957 (100%)
Овај пројекат има само једну грану, али ако имате гране конфигурисане да погледима на гране (или само скуп директоријума), можете да употребите заставицу --detect-branches
уз команду git p4 clone
да такође увезете и све гране пројекта.
За мало више детаља у вези овога, погледајте [_git_p4_branches].
У овом тренутку сте скоро готови.
Ако одете у p4import
директоријум и извршите git log
, видећете ваш увезени рад:
$ git log -2
commit e5da1c909e5db3036475419f6379f2c73710c4e6
Author: giles <giles@[email protected]>
Date: Wed Feb 8 03:13:27 2012 -0800
Correction to line 355; change </UL> to </OL>.
[git-p4: depot-paths = "//public/jam/src/": change = 8068]
commit aa21359a0a135dda85c50a7f7cf249e4f7b8fd98
Author: kwirth <[email protected]>
Date: Tue Jul 7 01:35:51 2009 -0800
Fix spelling error on Jam doc page (cummulative -> cumulative).
[git-p4: depot-paths = "//public/jam/src/": change = 7304]
Можете видети да је git-p4
оставила идентификатор у свакој комит поруци.
Нема проблема да се тај идентификатор тамо задржи, у случају да вам је касније потребна референца на Перфорс број измене.
Међутим, ако желите да уклоните идентификатор, сада је право време за то – пре него што почнете рад на репозиторијуму.
За групно уклањање идентификатора можете употребити команду git filter-branch
:
$ git filter-branch --msg-filter 'sed -e "/^\[git-p4:/d"'
Rewrite e5da1c909e5db3036475419f6379f2c73710c4e6 (125/125)
Ref 'refs/heads/master' was rewritten
Ако извршите git log
видећете да се се измениле све SHA-1 контролне суме комитова, али да се git-p4
стрингови више не налазе у комит порукама:
$ git log -2
commit b17341801ed838d97f7800a54a6f9b95750839b7
Author: giles <giles@[email protected]>
Date: Wed Feb 8 03:13:27 2012 -0800
Correction to line 355; change </UL> to </OL>.
commit 3e68c2e26cd89cb983eb52c024ecdfba1d6b3fff
Author: kwirth <[email protected]>
Date: Tue Jul 7 01:35:51 2009 -0800
Fix spelling error on Jam doc page (cummulative -> cumulative).
Ваш увоз је спреман да се гурне на нови Гит сервер.