Naslednji sistem, ki ga boste pogledali pri uvažanju, je Perforce. Kot smo govorili zgoraj, sta dva načina, da omogočimo Gitu in Perforcu govoriti drug z drugim: git-p4 in Perforce Git Fusion.
Git Fusion naredi ta proces precej neboleč. Samo nastavite nastavitve svojega projekta, preslikave uporabnika in veje, ki uporabljajo nastavitveno datoteko (kot je omenjeno v [_p4_git_fusion]) in klonirajte repozitorij. Git Fusion vas pusti z nečim, kar je videti kot domači repozitorij Git, ki je nato pripravljen za potiskanje na domačega gostitelja Git, če želite. Perforce bi lahko uporabili celo kot vaš gostitelj Git, če želite.
Git-p4 se lahko obnaša tudi kot uvozno orodje. Kot primer, bomo uvozili projekt Jam iz Perforce Public Depot. Da nastavite svojega odjemalca, morate izvoziti okoljsko spremenljivko P4PORT, da kaže na depo Perforce:
$ export P4PORT=public.perforce.com:1666
Note
|
Da sledite zraven, boste za povezavo potrebovali depo Perforce. Za svoj primer bomo uporabljali javni depo na public.perforce.com, vendar lahko uporabite tudi katerikoli drugi depo, do katerega imate dostop. |
Poženite ukaz git p4 clone
, da uvozite projekt Jam iz strežnika Perforce, kar dobavlja depo in pot projekta ter pot, v katero želite uvoziti projekt:
$ 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%)
Ta določeni projekt ima samo eno vejo, vendar če imate veje, ki so nastavljive s pogledi vej (ali samo skupkom direktorijev), lahko uporabite zastavico --detect-branches
na git p4 clone
, da uvozite tudi vse veje projekta.
Glejte razdelek [_git_p4_branches] za nekoliko več podrobnosti o tem.
Na tej točki ste že skoraj končali.
Če greste v direktorij p4import
in poženete git log
, lahko vidite svoje uvoženo delo:
$ 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]
Vidite lahko, da je git-p4
pustil identifikator v vsakem sporočilu potrditve.
V redu je obdržati ta identifikator tam v primeru, če se morate kasneje sklicevati na število spremembe Perforce.
Vendar če želite odstraniti identifikator, je to sedaj čas, da naredite — preden začnete delati na novem repozitoriju.
Lahko uporabite git filter-branch
, da odstranite nize identifikatorja v celoti:
$ git filter-branch --msg-filter 'sed -e "/^\[git-p4:/d"'
Rewrite e5da1c909e5db3036475419f6379f2c73710c4e6 (125/125)
Ref 'refs/heads/master' was rewritten
Če poženete git log
, lahko vidite, da so bile vse kontrolne vsote SHA-1 za potrditve spremenjene, vendar nizi git-p4
niso več v sporočilih potrditev:
$ 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).
Vaš uvoz je sedaj pripravljen za potisk na vaš novi strežnik Git.