You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ko ustvarite potrditev s pogonom `git commit`, Git preveri kontrolne vsote za vsak poddirektorij (v tem primeru samo vrhnji direktorij projekta) in jih shrani kot drevesni objekt v repozitorij Git.
21
-
Git nato ustvari objekt potrditve, ki ima meta podatke in kazalec na vrhnje drevo projekta, da lahko ponovno ustvari posnetek, ko je treba.(((Ukazi Git, commit)))
21
+
Git nato ustvari objekt potrditve, ki ima metapodatke in kazalec na vrhnje drevo projekta, da lahko ponovno ustvari posnetek, ko je treba.(((Ukazi Git, commit)))
22
22
23
-
Vaš repozitorij Git sedaj vsebuje pet objektov: tri _blobe_ (vsak predstavlja vsebino ene izmed treh datotek), eno _drevo_, ki izpisuje vsebino direktorija in določa, katera imena datotek so shranjena kot blobi, in eno _potrditev_ s kazalcem na to vrhnje drevo ter vse meta podatke potrditve.
23
+
Vaš repozitorij Git sedaj vsebuje pet objektov: tri _blobe_ (vsak predstavlja vsebino ene izmed treh datotek), eno _drevo_, ki izpisuje vsebino direktorija in določa, katera imena datotek so shranjena kot blobi, in eno _potrditev_ s kazalcem na to vrhnje drevo ter vse metapodatke potrditve.
24
24
25
25
.Potrditev in njeno drevo
26
26
image::images/commit-and-tree.png[Potrditev in njeno drevo]
Opazili boste, da delo z Mercurialovim repozitorijem uporablja standardni ukaz `git clone`.
65
-
To je zato, ker git-remote-hg deluje na precej nizki ravni, uporabljajoč podoben mehanizem, kot je implementacija Gitovega protokola HTTP/S (oddaljeni pomočniki).
65
+
To je zato, ker git-remote-hg deluje na precej nizki ravni in uporablja podoben mehanizem, kot je implementacija Gitovega protokola HTTP/S (oddaljeni pomočniki).
66
66
Ker sta Git in Mercurial zasnovana tako, da ima vsak odjemalec polno kopijo zgodovine repozitorija, ta ukaz naredi celotno kopijo, vključno z vso zgodovino projekta, in to relativno hitro.
67
67
68
68
Ukaz `log` prikaže dve spremembi, najnovejša od teh je označena z velikim številom referenc.
Copy file name to clipboardexpand all lines: book/09-git-and-other-scms/sections/client-p4.asc
+24-24
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ Druga možnost pa je git-p4, most na strani odjemalca, ki vam omogoča uporabo G
17
17
(((Perforce, Git Fusion)))
18
18
Perforce zagotavlja izdelek, imenovan Git Fusion (dostopen na https://www.perforce.com/git-fusion[^]), ki sinhronizira strežnik Perforce z repozitoriji Git na strežniški strani.
19
19
20
-
====== Setting Up
20
+
====== Nastavitev
21
21
22
22
Za svoje primere bomo uporabili najlažjo namestitveno metodo Git Fusion in sicer prenos virtualne naprave, ki poganja prikriti proces Perforce in Git Fusion.
23
23
Sliko virtualne naprave lahko dobite na https://www.perforce.com/downloads/Perforce/20-User[^] in ko se prenos konča, ga uvozite v svoj najljubši program za virtualizacijo (uporabili bomo VirtualBox).
To je preslikava med vejami Perforce in vejami Git.
148
148
Odsek se lahko imenuje poljubno, dokler je ime edinstveno.
149
-
`git-branch-name` omogoča pretvorbo depot poti, ki bi bil pod Gitom neroden, v bolj prijazno ime.
149
+
`git-branch-name` omogoča pretvorbo poti depoja (angl. _depot_) v bolj prijazno ime, saj bi bilo pod Gitom nerodno.
150
150
Nastavitev `view` nadzoruje, kako so datoteke iz Perforce preslikane v repozitorij Git, pri čemer se uporablja standardna sintaksa preslikave pogledov.
Tako lahko, če običajna preslikava delovnega prostora vključuje spremembe v strukturi map, to replicirate z repozitorijem Git.
162
162
163
163
Zadnja datoteka, o kateri bomo razpravljali, je `users/p4gf_usermap`, ki preslika uporabnike Perforce v uporabnike Git, in ki je morda sploh ne boste potrebovali.
164
-
Pri pretvorbi iz nabora sprememb Perforce v potrditev Git, je privzeto obnašanje Git Fusiona, da poišče uporabnika Perforce in uporabi tam shranjen e-poštni naslov in polno ime za polje avtorja/izvajalca v Gitu.
164
+
Pri pretvorbi iz nabora sprememb Perforce v potrditev Git, je privzeto obnašanje Git Fusiona, da poišče uporabnika Perforce in uporabi tam shranjen e-poštni naslov in polno ime za polje avtorja/potrjevalca v Gitu.
165
165
Pri pretvorbi v drugo smer pa privzeto poišče uporabnika Perforce z e-poštnim naslovom, shranjenim v polju avtorja potrditve Git, in pošlje nabor sprememb kot tega uporabnika (s primernimi dovoljenji).
166
166
V večini primerov bo ta način obnašanja povsem dovolj, vendar upoštevajte naslednjo preslikovalno datoteko:
167
167
@@ -286,12 +286,12 @@ To https://10.0.1.254/Jam
286
286
----
287
287
288
288
Git misli, da je to delovalo.
289
-
Poglejmo zgodovino datoteke `README` iz zornega kota Perfocea z uporabo lastnosti revizijskega grafa `p4v`:
289
+
Poglejmo zgodovino datoteke `README` iz zornega kota Perforca z uporabo lastnosti revizijskega grafa `p4v`:
290
290
291
291
.Revizijski graf Perforce, ki izhaja iz potiskanja Git
292
292
image::images/git-fusion-perforce-graph.png["Revizijski graf Perforce, ki izhaja iz potiskanja Git"]
293
293
294
-
Če tega pogleda še niste videli, se vam lahko zdi zmedeno, toda prikazuje iste zasnove kot grafični prikazovalnik zgodovine Gita.
294
+
Če tega pogleda še niste videli, se vam lahko zdi zmeden, toda prikazuje iste zasnove kot grafični prikazovalnik zgodovine Gita.
295
295
Gledamo zgodovino datoteke `README`, zato nam drevesna struktura v zgornjem levem kotu prikazuje samo to datoteko, ki se pojavlja v različnih vejah.
296
296
Na zgornjem desnem delu imamo vizualni graf, kako so povezane različne različice datoteke, in celostni pogled na ta graf je na spodnjem desnem delu.
297
297
Preostanek prikaza je namenjen podrobnostim za izbrano revizijo (v tem primeru `2`).
@@ -300,7 +300,7 @@ Ena stvar, ki jo je treba opaziti, je, da se graf zdi povsem enak kot v Gitovi z
300
300
Perforce ni imel imenovane veje, kjer bi shranil potrditvi `1` in `2`, zato je ustvaril vejo »anonymous« v imeniku `.git-fusion`.
301
301
To se bo zgodilo tudi za imenovane veje Git, ki se ne ujemajo z imenovano vejo Perforce (kasneje pa jih lahko preslikate na vejo Perforce z uporabo konfiguracijske datoteke).
302
302
303
-
Večina tega se zgodi za zavesami, vendar končni rezultat je, da lahko ena oseba v ekipi uporablja Git, druga pa lahko Perfoce in nobena izmed njiju bo vedela o izbiri drug drugega.
303
+
Večina tega se zgodi za zavesami, vendar končni rezultat je, da lahko ena oseba v ekipi uporablja Git, druga pa lahko Perforce in nobena izmed njiju bo vedela o izbiri drug drugega.
304
304
305
305
====== Povzetek Git-Fusion
306
306
@@ -318,11 +318,11 @@ Lahko celo uporabite podmodule Git (čeprav bodo za uporabnike Perforce videti
318
318
(((Ukazi Git, p4)))
319
319
Git-p4 je most med Gitom in Perforceom v dveh smereh.
320
320
Deluje v celoti znotraj vašega repozitorija Git, zato ne boste potrebovali nobene vrste dostopa do strežnika Perforce (razen seveda uporabniških poverilnic).
321
-
Git-p4 ni tako prilagodljiva ali popolna rešitev kot Git Fusion, vendar vam omogoča, da večino tega, kar bi radi storili, izvedete brez poseganja v okolje strežnika.
321
+
Git-p4 ni tako prilagodljiva ali popolna rešitev tako kot Git Fusion, vendar vam omogoča, da večino tega, kar bi radi storili, izvedete brez poseganja v okolje strežnika.
322
322
323
323
[NOTE]
324
324
======
325
-
Potrebovali boste orodje `p4` nekje v vaši poti `PATH`, da boste lahko delali z git-p4.
325
+
Da boste lahko delali z git-p4, boste potrebovali orodje `p4` nekje v vaši poti `PATH`.
326
326
V času tega pisanja je prosto dostopno na https://www.perforce.com/downloads/Perforce/20-User[^].
327
327
======
328
328
@@ -350,7 +350,7 @@ Initialized empty Git repository in /private/tmp/www-shallow/.git/
350
350
Doing initial import of //depot/www/live/ from revision #head into refs/remotes/p4/master
351
351
----
352
352
353
-
To ustvari »površinski« klon v izrazoslovju Git; uvozimo samo najnovejšo revizijo Perforce v Git; spomnimo se, da Perforce ni zasnovan tako, da bi vsakemu uporabniku zagotovil vsako revizijo.
353
+
To ustvari »površinski« (angl. _shallow_) klon v izrazoslovju Git; v Git uvozimo samo najnovejšo revizijo Perforce; spomnimo se, da Perforce ni zasnovan tako, da bi vsakemu uporabniku zagotovil vsako revizijo.
354
354
To je dovolj za uporabo Gita kot odjemalca Perforce, vendar za druge namene ni dovolj.
355
355
356
356
Ko je postopek končan, imamo popolnoma funkcionalni repozitorij Git:
Rezultat je tak, kot da bi pravkar izvedli `git push`, kar je najbližja analogija temu, kar se je dejansko zgodilo.
524
524
525
525
Upoštevajte, da se med tem postopkom vsaka potrditev Git pretvori v nabor sprememb Perforce; če jih želite stisniti v en sam nabor sprememb, to lahko storite s pomočjo interaktivnega zaslona ponovnega baziranja pred zagonom `git p4 submit`.
526
-
Poleg tega bodite pozorni na to, da se zgoščene vrednosti SHA-1 vseh potrditev, ki so bile oddane kot nabori sprememb, spremenijo; to je zato, ker git-p4 dodaja vrstico na konec vsake pretvorjene potrditve:
526
+
Poleg tega bodite pozorni na to, da se zgoščene vrednosti SHA-1 vseh potrditev, ki so bile predložene kot nabori sprememb, spremenijo; to je zato, ker git-p4 dodaja vrstico na konec vsake pretvorjene potrditve:
* 70eaf78 Initial import of //depot/www/live/ from the state at revision #head
593
593
----
594
594
595
-
Naša zgodovina je postala linearna, tako kot bi bilo po ponovnem baziranju pred oddajo (kar je dejansko tudi res).
595
+
Naša zgodovina je postala linearna, tako kot bi bilo po ponovnem baziranju pred predložitvijo (kar je dejansko tudi res).
596
596
To pomeni, da lahko ustvarjate, delate, zavržete in združujete veje na strani Git, ne da bi se bali, da bo vaša zgodovina na kakršenkoli način postala nezdružljiva s Perforceom.
597
597
Če lahko ponovno bazirate, lahko prispevate k strežniku Perforce.
598
598
599
599
[[_git_p4_branches]]
600
600
====== Veje
601
601
602
-
Če ima vaš projekt v Perforcu več vej, še niste obupali; git-p4 lahko to obdela na način, ki se zdi kot Git.
603
-
Recimo, da je vaš depo Perforce urejen takole:
602
+
Če ima vaš projekt v Perforcu več vej, imate srečo; git-p4 lahko to obdela na način, ki se zdi kot Git.
603
+
Recimo, da je vaš depo (angl. _depot_) Perforce urejen takole:
Opazite »@all« določevalec v poti depoja; to pove git-p4, naj ne klonira samo najnovejšega nabora sprememb za to poddrevo, temveč celoten nabor sprememb, ki so se kdaj koli dotaknile teh poti.
641
+
Opazite določevalec »@all« v poti depoja; to pove git-p4, naj ne klonira samo najnovejšega nabora sprememb za to poddrevo, temveč celoten nabor sprememb, ki so se kdaj koli dotaknile teh poti.
642
642
To je bližje zasnovi kloniranja v Gitu, vendar lahko pri delu na projektu z dolgo zgodovino to traja nekaj časa.
643
643
644
644
Zastavica `--detect-branches` pove git-p4, naj uporabi specifikacije vej Perforce za preslikavo vej na reference Git.
Nastavljanje konfiguracijske spremenljivke `git-p4.branchList` na `main:dev` pove git-p4, da sta `main` in `dev` obe veji in da je druga veja potomec prve.
657
657
658
658
Če zdaj naredimo `git checkout -b dev p4/project/dev` in naredimo nekaj potrditev, bo git-p4 dovolj pameten, da bo pravilno ciljal na pravo vejo, ko bomo izvedli `git p4 submit`.
659
-
Na žalost git-p4 ne more mešati plitvih klonov in več vej; če imate ogromen projekt in želite delati na več kot eni veji, boste morali `git p4 clone` izvesti enkrat za vsako vejo, v katero želite oddati.
659
+
Na žalost git-p4 ne more mešati površinskih klonov in več vej; če imate ogromen projekt in želite delati na več kot eni veji, boste morali `git p4 clone` izvesti enkrat za vsako vejo, v katero želite predložiti.
660
660
661
661
Za ustvarjanje ali integracijo vej boste morali uporabiti odjemalca Perforce.
662
-
Git-p4 lahko samo sinhronizira in odda obstoječe veje in to lahko stori samo po eno linearno spremembo hkrati.
663
-
Če združite dve veji v Git in poskušate oddati novo zbirko sprememb, bo zabeleženo samo nekaj sprememb datotek; izgubljeni bodo metapodatki o tem, katere veje so vključene v integracijo.
662
+
Git-p4 lahko samo sinhronizira in predloži obstoječe veje in to lahko stori samo po eno linearno spremembo hkrati.
663
+
Če združite dve veji v Git in poskušate predložiti novo zbirko sprememb, bo zabeleženo samo nekaj sprememb datotek; izgubljeni bodo metapodatki o tem, katere veje so vključene v integracijo.
664
664
665
665
===== Povzetek Gita in Perforca
666
666
667
-
Git-p4 omogoča uporabo poteka dela Git s strežnikom Perforce in je zelo učinkovit pri tem.
667
+
Git-p4 omogoča uporabo poteka dela Git s strežnikom Perforce in je pri tem zelo učinkovit.
668
668
Vendar pa je pomembno vedeti, da je Perforce odgovoren za vir in da uporabljate Git le lokalno.
669
-
Bodite previdni pri deljenju potrditev Git; če imate oddaljeni repozitorij, ki ga uporabljajo druge osebe, ne potiskajte nobenih potrditev, ki še niso bile oddane na strežnik Perforce.
669
+
Bodite previdni pri deljenju potrditev Git; če imate oddaljeni repozitorij, ki ga uporabljajo druge osebe, ne potiskajte nobenih potrditev, ki še niso bile predložene na strežnik Perforce.
670
670
671
671
Če želite prosto mešati uporabo Perforce in Git kot odjemalcev za nadzor izvorne kode, in če lahko prepričate upravitelja strežnika, da ga namesti, lahko uporabite Git Fusion, ki omogoča uporabo Git kot odjemalca za strežnik Perforce.
0 commit comments