Skip to content

Latest commit

 

History

History
102 lines (77 loc) · 4.23 KB

File metadata and controls

102 lines (77 loc) · 4.23 KB

Perforce

İçe aktarmayı inceleyeceğimiz bir sonraki sistem Perforce’tur. Yukarıda belirttiğimiz gibi Git ve Perforce’un birbirleriyle konuşmasına izin vermenin iki yolu vardır: git-p4 ve Perforce Git Fusion.

Perforce Git Fusion

Git Fusion bu süreci oldukça ağrısız hale getirir. Proje ayarlarınızı, kullanıcı eşlemelerinizi ve dallarınızı bir yapılandırma dosyası kullanarak ([_p4_git_fusion] bölümünde anlatıldığı gibi) yapılandırın ve repoyu kopyalayın. Git Fusion size yerel bir Git reposuna benzer bir şey bırakır. Bunu daha sonra isterseniz yerel bir Git ana bilgisayarına gönderebilirsiniz. İsterseniz Perforce’u Git sunucunuz olarak bile kullanabilirsiniz.

Git-p4

Git-p4 aynı zamanda bir içe aktarma aracı görevi de görebilir. Örnek olarak Jam projesini "Perforce Public Depot" 'dan içe aktaracağız. İstemcinizi kurmak için P4PORT ortam değişkenini Perforce deposunu işaret edecek şekilde dışa aktarmanız gerekir:

$ export P4PORT=public.perforce.com:1666
Note

Takip etmek için bağlantı kurabileceğiniz bir Perforce deposuna ihtiyacınız olacak. Örneklerimiz için public.perforce.com adresindeki genel depoyu kullanacağız, ancak erişiminiz olan herhangi bir depoyu da kullanabilirsiniz.

Jam projesini Perforce sunucusundan içe aktarmak için depo ve proje yolunu ve projeyi içe aktarmak istediğiniz yolu sağlayarak git p4 clone komutunu çalıştırın:

$ 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%)

Bu özel projenin yalnızca bir dalı vardır, ancak dal görünümleriyle (veya yalnızca bir dizin kümesi) yapılandırılmış dallarınız varsa; tüm dosyaları ve projenin alt dallarını içe aktarmak için --detect-branches işaretini git p4 clone komutuna ekleyerek kullanabilirsiniz. Bu konuda biraz daha ayrıntılı bilgi için [_git_p4_branches] konusuna bakın.

Bu noktada işiniz neredeyse bitti. p4import dizinine gidip git log çalıştırırsanız, içe aktarılan çalışmanızı görebilirsiniz:

$ git log -2
commit e5da1c909e5db3036475419f6379f2c73710c4e6
Author: giles <giles@giles@perforce.com>
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 <kwirth@perforce.com>
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 'ün her katkı mesajında ​​bir tanımlayıcı bıraktığını görebilirsiniz. Daha sonra Perforce değişiklik numarasına başvurmanız gerekebileceği ihtimaline karşı, bu tanımlayıcıyı orada tutmanızda bir sakınca yoktur. Ancak tanımlayıcıyı kaldırmak isterseniz (ki yeni repo üzerinde çalışmaya başlamadan önce bunu yapmanın tam zamanıdır), tanımlayıcı dizeleri topluca kaldırmak için git filter-branch 'ı kullanabilirsiniz:

$ git filter-branch --msg-filter 'sed -e "/^\[git-p4:/d"'
Rewrite e5da1c909e5db3036475419f6379f2c73710c4e6 (125/125)
Ref 'refs/heads/master' was rewritten

git log 'u çalıştırırsanız, katkılara ilişkin tüm SHA-1 sağlama toplamlarının değiştiğini, ancak git-p4 dizelerinin artık katkı mesajlarında olmadığını görebilirsiniz:

$ git log -2
commit b17341801ed838d97f7800a54a6f9b95750839b7
Author: giles <giles@giles@perforce.com>
Date:   Wed Feb 8 03:13:27 2012 -0800

    Correction to line 355; change </UL> to </OL>.

commit 3e68c2e26cd89cb983eb52c024ecdfba1d6b3fff
Author: kwirth <kwirth@perforce.com>
Date:   Tue Jul 7 01:35:51 2009 -0800

    Fix spelling error on Jam doc page (cummulative -> cumulative).

İçe aktarma işleminiz yeni Git sunucunuza gönderilmeye hazırdır.