Git kullanıcıları için performans mı? [kapalı]


173

Orada çok fazla "Performans için Git kullanıcıları" belgeleri var, ama görünüşe göre çok az.

Git'i daha önce kullanmıştım ve yakın zamanda Perforce'ı çok kullanmam gereken bir işe başladım ve kendimi çok fazla kafam karıştı. Git'ten alışkın olduğum kavramlar Performans ile hiç eşleşmiyor gibi görünüyor.

Git'e alışkın olan biri için Perforce kullanmak için birkaç ipucu bir araya getirmek isteyen var mı?

Yanıtlar:


334

Bu son birkaç haftadır üzerinde çalıştığım bir şey. Hala evrim geçiriyor, ama yardımcı olabilir. Lütfen bir Performce çalışanı olduğumu unutmayın.

Git kullanıcıları için Performans'a giriş

Git'ten Performans'a veya Performanstan Git'e geçişin önemsiz olduğunu söylemek büyük bir eksikliktir. Görünüşte aynı şeyi yapan iki araç olduğu için yaklaşımları daha farklı olamazdı. Bu kısa yazı Git'ten gelen yeni Perforce kullanıcılarının yeni dünyalarını anlamalarına yardımcı olmaya çalışacaktır.

Biz dalış önce kısa bir servis yolu; Git'i tercih ederseniz Git'i Performce ile oldukça iyi kullanabilirsiniz. Perforce sunucusuyla senkronize tutulan Git depolarını oluşturan Git Fusion adlı bir araç sunuyoruz. Git ve Perforce kullanıcıları aynı kod üzerinde çalışarak uyum içinde yaşayabilirler, çoğunlukla çalışma arkadaşlarının sürüm kontrolü tercihlerinden etkilenmezler. Git Fusions 13.3, Perforce web sitesinden edinilebilir . Perforce yöneticisi tarafından yüklenmesi gerekir, ancak yüklerseniz depo dilimleme özelliğinin Git kullanıcısı olarak oldukça kullanışlı olabileceğini göreceksiniz.

Yöneticinizi Git Fusion'ı yüklemeye ikna edemiyorsanız Git'in kendisi Git-P4 adında bir Performans bağlamasıyla birlikte gelir ve Git'i bir Perforce çalışma alanındaki dosyaları değiştirmek ve göndermek için kullanabilirsiniz. Bununla ilgili daha fazla bilgiyi şu adreste bulabilirsiniz: https://git.wiki.kernel.org/index.php/GitP4

Hala burada? Güzel, haydi Perforce'ye bakalım.

Çözülecek Bazı Terminoloji Farklılıkları

Detaylara girmeden önce Git ve Perforce arasındaki birkaç terminoloji farkını kısaca ele almamız gerekiyor.

Birincisi ödeme . Git'te, kodun belirli bir daldan çalışma alanınıza bir kopyasını bu şekilde alırsınız. Perforce'de buna komut satırından veya GUI P4V "En Son Revizyonu Al" dan bir senkronizasyon diyoruz . Perforce , P4V'den veya komut satırından çıkış kelimesini p4 editsürüm kontrol sisteminden bir dosyayı değiştirmeyi planladığınız anlamına gelir. Bu belgenin geri kalanında, kelimenin Performans anlamında ödeme kullanacağım.

İkinci Git olduğunu taahhüt Perforce karşı teslim . Git'te nerede taahhütte bulunacağınızı Performans olarak sunacaksınız. Tüm işlemlerin paylaşılan Perforce sürümlendirme hizmetine karşı gerçekleşmesi nedeniyle, Perforce'nin eşdeğeri yoktur git push. Aynı şekilde pull; yukarıdan senkronizasyon komutu bizim için dosya almayı halleder. Aşağıda kısaca açıklanan P4Sandbox aracımızı kullanmayı seçmedikçe, Performans'ta saf bir yerel gönderim kavramı yoktur.

Performansta Anahtar Kavramlar

Performansı iki temel kavrama sadeleştirecek olsaydım depoya ve çalışma alanına odaklanırdım. Perforce deposu, Perforce sunucusunda yaşayan dosyaların deposudur. Performans sunucusunda herhangi bir sayıda depo bulunabilir ve her depoda çok sayıda dosya bulunabilir. Perforce kullanıcılarının depo ve sunucuyu birbirinin yerine kullandığını sık sık duyarsınız, ancak bunlar farklıdır. Bir Performans sitesi birden çok sunucuya sahip olmayı seçebilir, ancak çoğunlukla tüm dosyalar tek bir sunucuda bulunur.

Performans çalışma alanı veya istemcisi, sistemdeki Performans sunucusundaki bir dizi dosyayı kullanıcının dosya sistemindeki bir konuma eşleyen bir nesnedir. Her kullanıcının kullandığı her makine için bir çalışma alanı vardır ve sıklıkla kullanıcılar aynı makine için birden fazla çalışma alanına sahip olur. Çalışma alanının en önemli kısmı çalışma alanı eşlemesi veya görünümüdür.

Çalışma alanı görünümü, depodaki yerel makineyle eşlenmesi gereken dosya kümesini belirtir. Bu önemlidir, çünkü sunucuda bulunan tüm dosyaları istememe şansınız vardır. Çalışma alanı görünümü, yalnızca önem verdiğiniz seti seçmenizi sağlar. Bir çalışma alanının birden fazla depodaki içeriği eşleyebileceğini, ancak yalnızca bir sunucudaki içeriği eşleyebileceğini unutmayın.

Bu bağlamda Performansı Git ile karşılaştırmak için Git ile ilgilendiğiniz Git depoları kümesini seçer ve seçersiniz. Her repo genellikle ilgili dosyaları içerecek şekilde sıkıca kaplanır. Bunun avantajı, sizin tarafınızdan yapılacak bir yapılandırma olmamasıdır; önem verdiğiniz şeylerin git klonunu yaparsınız ve işiniz biter. Bu, yalnızca bir veya iki havuzla çalışıyorsanız özellikle güzeldir. Perforce ile istediğiniz kod parçalarını seçmek ve seçmek için biraz zaman harcamanız gerekir.

Birçok Perforce mağazası, otomatik olarak bir çalışma alanı görünümü oluşturabilen akışlar kullanır veya komut dosyalarını veya şablon çalışma alanlarını kullanarak görünümü oluşturur. Aynı şekilde, çoğu kullanıcı çalışma alanlarını kendileri oluşturmak için terk eder. Bir çalışma alanında birkaç modülü eşleştirmenin bir avantajı, tek bir check-in'de birden fazla kod modülünü kolayca değiştirebilmenizdir; check-in'inizle senkronize edilen benzer bir müşteri görünümüne sahip olan herkesin tüm kodun doğru durumda olacağı garanti edilebilir. Bu aynı zamanda aşırı bağımlı koda da yol açabilir; Git'in zorla ayrılması daha iyi modülerliğe yol açabilir. Neyse ki Perforce de katı modülerliği de destekleyebilir. Her şey aracı nasıl kullanmayı seçtiğinize dair bir soru.

Neden Çalışma Alanları?

Git'ten geldiğimde, tüm çalışma alanı konseptinin değerinden çok daha fazla sorun olduğunu hissetmek kolay. Birkaç Git deposunu klonlamakla karşılaştırıldığında, bu kuşkusuz doğrudur. Çalışma alanlarının parladığı ve Perforce'nin bunca yıldan sonra hala iş dünyasında olmasının nedeni, çalışma alanlarının geliştiriciler için milyonlarca dosya projesini çözümlemenin harika bir yolu olması ve aynı zamanda tüm kaynağın birlikte alınmasını ve yayınlanmasını kolaylaştırmasıdır. bir yetkili kaynak. Çalışma alanları, Perforce'nin ölçeklendirdiği kadar ölçeklendirebilmesinin temel nedenlerinden biridir.

Çalışma alanları ayrıca depodaki dosyaların düzeninin ve kullanıcının makinesindeki düzenin gerektiğinde değişebilmesi açısından da iyidir. Birçok şirket depolarını, şirketlerinin organizasyonunu yansıtacak şekilde düzenleyerek insanların iş birimi veya projeye göre içerik bulmasını kolaylaştırır. Ancak yapı sistemleri bu hiyerarşiyi daha az umursamazdı; çalışma alanı, depo hiyerarşilerini araçlarına mantıklı bir şekilde yeniden eşlemelerine olanak tanır. Ayrıca, kodun insanlar için tamamen kafa karıştırıcı olan çok özel yapılandırmalarda olmasını gerektiren son derece esnek olmayan yapı sistemleri kullanan şirketler tarafından da kullanıldığını gördüm. Çalışma alanları, bu şirketlerin, yapı araçları ihtiyaç duydukları yapıyı elde ederken insan tarafından yönlendirilebilen bir kaynak hiyerarşisine sahip olmalarını sağlar.

Performance'daki çalışma alanları yalnızca bir kullanıcının çalışmak istediği dosya kümesini eşlemek için değil, aynı zamanda sunucu tarafından kullanıcının her bir dosyanın hangi revizyonlarını tam olarak senkronize ettiğini izlemek için de kullanılır. Bu, sistemin hangi dosyaların güncellenmesi gerektiğini görmek için dosyaları taramak zorunda kalmadan senkronize edilirken kullanıcıya doğru dosya kümesini göndermesini sağlar. Büyük miktarda veri ile bu büyük bir performans kazancı olabilir. Bu, çok sıkı denetim kurallarına sahip endüstrilerde de çok popülerdir; Performans yöneticileri hangi geliştiricilerin hangi dosyaları senkronize ettiğini kolayca izleyebilir ve günlüğe kaydedebilir.

Perforce çalışma alanlarının tüm gücü hakkında daha fazla bilgi için P4'ü Yapılandırma konusunu okuyun .

Açık Checkout ve Örtülü Checkout

Git'ten Perforce'a geçiş yapan kullanıcılar için en büyük zorluklardan biri açık ödeme konseptidir. Dosyaları değiştirme Git / SVN / CVS iş akışına alışkınsanız ve daha sonra sürüm kontrol sistemine yaptıklarınızı aramasını söylüyorsanız, son derece acı verici bir geçiş olabilir.

İyi haber şu ki, eğer seçerseniz, Performce'de Git tarzı iş akışıyla çalışabilirsiniz. Perforce'de çalışma alanınızda "allwrite" seçeneğini ayarlayabilirsiniz. Bu, Perforce'a tüm dosyaların yazılabilir bit seti ile diske yazılması gerektiğini söyleyecektir. Daha sonra Perforce'ı açıkça söylemeden istediğiniz herhangi bir dosyayı değiştirebilirsiniz. Perforce'nin yaptığınız değişiklikleri uzlaştırması için "p4 durumu" nu çalıştırabilirsiniz. Dosyaları uygun şekilde eklemek, düzenlemek ve silmek için açar. Bu şekilde çalışırken sunucudan yeni revizyonlar almak için "p4 senkronizasyonu" yerine "p4 güncellemesi" ni kullanmak isteyeceksiniz; "p4 güncellemesi" senkronizasyondan önce değişiklikleri kontrol eder, bu nedenle henüz "p4 durumu" nu çalıştırmadıysanız yerel değişikliklerinizi engellemez.

Neden Açık Ödeme?

Sık sık aldığım bir soru "neden hiçbir zaman açık ödeme kullanmak istesin?" İlk başta kızarmak çılgın bir tasarım kararı gibi görünebilir, ancak açık kasanın bazı güçlü faydaları vardır.

Açık bir ödeme yapmanın bir nedeni, dosyaları içerik değişiklikleri için tarama ihtiyacını ortadan kaldırmasıdır. Farklılıkları bulmak için her dosya için karmaları hesaplayan daha küçük projelerle birlikte, kullanıcılarımızın çoğunun çalışma alanında milyonlarca dosya ve / veya daha büyük olmasa da 100 megabayt boyutunda dosyaları vardır. Bu durumlarda tüm karmaları hesaplamak son derece zaman alıcıdır. Açık ödeme, Perforce'nin tam olarak hangi dosyalarla çalışması gerektiğini bilmesini sağlar. Bu davranış, Perforce'nin oyun, film ve donanım endüstrileri gibi büyük dosya endüstrilerinde bu kadar popüler olmasının nedenlerinden biridir.

Başka bir fayda, açık ödeme, geliştiricilerin genellikle akranlarının ne üzerinde çalıştığını veya en azından nerede olduğunu bilmesini sağlayan bir asenkron iletişim biçimi sağlar. Gereksiz bir çatışmayı önlemek için belirli bir alanda çalışmaktan kaçınmak isteyebileceğinizi bildirebilir veya takımdaki yeni bir geliştiricinin belki de ihtiyaç duymadıkları kodlara girdiği konusunda sizi uyarabilir. düzenleme. Benim kişisel deneyimim, Git'te ya da Perforce'ı tek ya da nadiren katkıda bulunduğum projelerde allwrite ile kullanma eğilimindeyim ve bir ekiple sıkı çalıştığımda açık ödeme yapıyorum. Neyse ki seçim senin.

Açık ödeme, beklemedeki changelistlerin Perforce konseptiyle de güzel oynuyor. Bekleyen değişiklik listeleri, açık dosyalarınızı çalışmanızı düzenlemek için koyabileceğiniz kovalardır. Git'te potansiyel olarak işi düzenlemek için farklı dalları kova olarak kullanırsınız. Şubeler harika, ancak bazen gerçekten sunucuya göndermeden önce çalışmanızı adlandırılmış birden çok değişiklik halinde organize edebilmek güzeldir. Potansiyel olarak birden fazla dalı veya birden fazla projeyi tek bir çalışma alanında eşleme potansiyeli olan beklemedeki değiştiriciler ayrı değişiklikleri düzenli tutmayı kolaylaştırır.

Visual Studio veya Eclipse gibi geliştirme için bir IDE kullanıyorsanız, IDE'niz için bir Perforce eklentisi yüklemenizi kesinlikle tavsiye ederim. Çoğu IDE eklentisi, dosyaları düzenlemeye başladığınızda dosyaları otomatik olarak teslim alır ve ödeme işlemini kendiniz yapmaktan kurtarır.

Git Özellikleri İçin Performans Değiştirmeleri

  • git stash ==> p4 shelve
  • git yerel dallanma ==> Performans rafları veya görev dalları
  • git blame==> p4 annotateveya Perforce Timelapse Görünüm GUI

Çalışma Bağlantısı Kesildi

Perforce versiyonlama servisiyle bağlantısı kesilmiş çalışmak için iki seçenek vardır (bu, Perforce sunucusu için fantezi terimimizdir).

1) Tam yerel sürüm ve yerel dallamaya sahip olmak için P4Sandbox kullanın

2) Dosyaları istediğiniz gibi düzenleyin ve Perforce'a ne yaptığınızı söylemek için 'p4 durumu' kullanın

Yukarıdaki seçeneklerin her ikisiyle de, dosyaların kilidini açmak zorunda kalmamak için çalışma alanınızdaki "allwrite" ayarını kullanmayı seçebilirsiniz. Bu modda çalışırken, "p4 sync" yerine yeni dosyaları senkronize etmek için "p4 update" komutunu kullanmak istersiniz. "p4 güncellemesi" dosyaları senkronize etmeden önce değişiklik olup olmadığını kontrol eder.

Hızlı Başlangıç

Aşağıdaki tüm örnekler komut satırı üzerinden olacaktır.

1) Perforce bağlantınızı yapılandırın

export P4USER=matt
export P4CLIENT=demo-workspace
export P4PORT=perforce:1666

Bu ayarları kabuk yapılandırma dosyanıza yapıştırabilir p4 set, Windows ve OS X'e kaydetmek için kullanın veya bir Perforce yapılandırma dosyası kullanabilirsiniz.

1) Çalışma alanı oluşturma

p4 workspace

# set your root to where your files should live:
Root: /Users/matt/work

# in the resulting editor change your view to map the depot files you care about
//depot/main/... //demo-workspace/main/...
//depot/dev/...  //demo-workspace/dev/...

2) Dosyaları sunucudan alın

cd /Users/matt/work
p4 sync

3) Üzerinde çalışmak istediğiniz dosyayı kontrol edin ve değiştirin

p4 edit main/foo; 
echo cake >> main/foo

4) Sunucuya gönderin

p4 submit -d "A trivial edit"

5) p4 help simplePerforce ile çalışmanız gereken temel komutları görmek için çalıştırın .


5
Harika bir bakış. Yeni çalışanlarımızdan bazılarına vermek için bunu (veya web sitesindeki sonuç postasını) kaydedeceğim.
Caleb Huitt - cjhuitt

@Matt "Git'ten gelmek, tüm çalışma alanı konseptinin değerinden çok daha fazla sorun olduğunu hissetmek kolaydır." Muhtemelen - ama yıllardır RCS ve CVS'de böyle bir haritalama yapıyorum. CVS modülleri kullanılmaz, ancak bir veya daha fazla CVS deposuna işaret eden sembolik ağaçlar oluşturarak. Seyrek ağaçlar, tüm dizinleri içermez. Pek çok nedenden dolayı Perforce bunu yapıyor. CVS'de bunu korumak bir acı olabilir. (Ve git ve hg ve bzr ...
bzr

Teşekkürler Matt, son derece yararlı bir okuma. Ben hala sürüm sistemi bana uzak repo göre veya şubeler arasında karşılaştırıldığında yerel olarak ne değiştiğini söylemek gerektiğini düşünüyorum, başka bir şekilde değil :)
jupp0r

1
Aslında! Neyse ki Perforce ile bunu yapabilirsiniz; Ben yıllardır 'p4 edit' çalıştırmadım. perforce.com/blog/131112/say-goodbye-p4-edit
Matt

8
Teşekkürler, ama bir öneri. 'Güçlü' sözcüğü oldukça zayıftır ve beni propaganda olarak açıklamayı göz ardı etme eğilimindedir. Özelliği açıklayıp, güçlü olup olmadığına karar vermemi tercih ederim.
damian

24

Mevcut cevapların hiçbirinin ele almadığı git ve p4 arasındaki en büyük fark, farklı soyutlama birimleri kullanmalarıdır.

  • Git'te soyutlama yamadır (aka diff, aka changeetet). Git'teki bir taahhüt, esasen, diffişlenmekte olan dosyaların önceki ve şu anki durumu arasında çalışmanın çıktısıdır .
  • Performansta soyutlama dosyadır . P4'teki bir taahhüt, o andaki taahhütteki dosyaların tam içeriğidir. Bu bir değişiklik listesi olarak düzenlenmiştir, ancak revizyonların kendisi dosya başına bazda saklanır ve değişiklik listesi basitçe dosyaların farklı revizyonlarını bir araya getirir.

Diğer her şey bu farktan akar . Git'te dallanma ve birleştirme ağrısızdır, çünkü git'in soyutlama perspektifinden, her dosya sırayla bir dizi yama uygulanarak tamamen yeniden oluşturulabilir ve bu nedenle iki dalı birleştirmek için, kaynak daldaki tüm yamaları uygulamanız yeterlidir. hedef dalda hedef dalda doğru sırada bulunmayan (her iki dalda üst üste gelecek yamalar olmadığı varsayılarak).

Performans dalları farklıdır. Performanstaki bir şube işlemi, dosyaları bir alt klasörden diğerine kopyalar ve ardından sunucudaki meta veriler içeren dosyalar arasındaki bağlantıyı işaretler. (Bir daldan bir dosyayı birleştirmek için integrationperforce açısından) perforce bakacağız tam içerik kaynak dal üzerinde 'kafa' ve de dosyanın tam içeriğinin hedef şube başında dosyanın ve gerekirse ortak bir ata kullanarak birleşin. Yamaları git can gibi tek tek uygulayamaz, bu da manuel birleştirmelerin daha sık gerçekleştiği (ve daha acı verici olma eğiliminde olduğu) anlamına gelir.


10
Bu açıklamanın tamamen doğru olduğunu düşünmüyorum - git, tüm dosyaların tam anlık görüntülerini depolar ve bir dosya değiştirildiğinde yeni bir anlık görüntü oluşturur (bu, büyük ikili dosyalarda sık değişiklik yapılması durumunda pahalı hale getirir), bu yüzden bir taahhüt sadece içerir tüm dosyaların geçerli durumuna bağlantılar (karma yoluyla). Bu yüzden git'deki dalların değiştirilmesi genellikle çok hızlıdır - sadece karmaları çalışma alanına değişen tüm dosyaların referans alınan sürümlerini kopyalamak zorundadır. Farklar yalnızca karşılaştırma ve birleştirme / yeniden basma için gerektiğinde anında oluşturulur.
ChrAfonso

3
Kaputun altındaki kesin uygulamadan bağımsız olarak, git'teki bir birleştirme komutu (özellikle önemsiz birleştirme veya hızlı ileri alma) , son kullanıcının bakış açısıyla yamaları kullanarak çalışıyorum, ki bu yapmaya çalıştığım nokta.
damian

Performans, changelist (changeetet) birleştirme yapabilir. İşte bunun hakkında konuşan bir Stack Overflow sorusu. stackoverflow.com/questions/6158916/perforce-merge-changelist/…
Br.Bill

5
@ Br.Bill Tekrar söylemek gerekirse, P4'ün bir şeyleri yapıp yapamayacağı değil (tabii ki öyle!). Mesele soyutlama ile ilgilidir , yani kullanıcının nasıl çalıştığını anlamak için içselleştirmesi gereken model.
Damian

1
Bunun için teşekkür ederim. Hemen belirli bir dosyanın en son sürümünü nasıl alabileceğimizi, belirli bir değiştiriciyi nasıl alabileceğimizi açıklar. Git'den geldiğimde bu benim için en kafa karıştırıcı kısımdı.
Abdulsattar Mohammed

20

Muhtemelen böyle bir belge yoktur çünkü Perforce oldukça geleneksel bir revizyon kontrol sistemi (CVS, Subversion, vb .'ye daha yakın) ve normal olarak modern dağıtılmış revizyon kontrol sistemlerinden daha az karmaşık olduğu düşünülmektedir.

Komutları birinden diğerine eşlemeye çalışmak doğru yaklaşım değildir; merkezi ve dağıtılmış revizyon kontrol sistemlerinden kavramlar aynı değildir. Bunun yerine, Perforce'de tipik bir iş akışını açıklayacağım:

  1. p4 editDüzenlemek istediğiniz her dosyada çalıştırın . Perforce'a hangi dosyaları düzenlediğinizi söylemeniz gerekir. Yeni dosyalar ekliyorsanız, kullanın p4 add. Dosyaları siliyorsanız, tuşunu kullanın p4 delete.
  2. Kod değişikliklerinizi yapın.
  3. p4 changeBir değişiklik kümesi oluşturmak için çalıştırın . Burada değişikliğinizin bir tanımını oluşturabilir ve isteğe bağlı olarak değişiklik kümenize dosya ekleyebilir veya dosyadan dosya kaldırabilirsiniz. p4 change CHANGE_NUMBERGerekirse açıklamayı daha sonra düzenlemek için çalıştırabilirsiniz .
  4. Gerekirse ek kod değişiklikleri yapabilirsiniz. Başka dosyalar eklemeniz / düzenlemeniz / silmeniz gerekiyorsa kullanabilirsiniz p4 {add,edit,delete} -c CHANGE_NUMBER FILE.
  5. p4 syncSunucudan en son değişiklikleri almak için çalıştırın .
  6. p4 resolveSenkronizasyondaki çakışmaları gidermek için çalıştırın .
  7. Değişikliğinizi göndermeye hazır olduğunuzda çalıştırın p4 submit -c CHANGE_NUMBER.

p4 revertDosyalarda yaptığınız değişiklikleri geri almak için kullanabilirsiniz .

Dosyalarının hiçbiri çakışmadığı sürece aynı anda birden çok değişiklik kümesi üzerinde çalışabileceğinizi unutmayın. (Perforce istemcinizdeki bir dosya aynı anda yalnızca bir değişiklik kümesinde açılabilir.) Bu bazen küçük, bağımsız değişiklikleriniz varsa kullanışlı olabilir.

Kendinizi başka bir değişiklik kümesinde zaten açık olan dosyaları düzenlemeniz gerektiğine karar verirseniz, ayrı bir Perforce istemcisi oluşturabilir veya mevcut değişiklik kümenizi daha sonra kullanmak üzere saklayabilirsiniz p4 shelve. (Aksine git stash, raf yerel ağacınızdaki dosyaları geri almaz, bu yüzden onları ayrı olarak geri almalısınız.)


3
Üzgünüm, bunu anlamıyorum: Modern sistemler geleneksel sistemlerden daha karmaşık olmalı mı? Yazılım mühendisliğinde sadelik her zaman prensiptir. Bir anlamda, P4'ün hem konsept hem de kullanılabilirlik (ve sürdürülebilirlik) açısından Git'ten çok daha modern olduğunu düşünüyorum. Git'ten nefret etmiyorum, ama bakın, 30 yıllık yazılım mühendisliği ilerlemesinden sonra, insanlar VCS komutlarını vermek için metin tabanlı konsola geri dönmek zorunda kalıyorlar - insan evriminde bir bozulma!
Dejavu

5
@Dejavu Geleneksel ile modern arasındaki o kadar da değil; daha ziyade merkezileştirilmiş ve dağıtılmış (ve dağıtılmış olanlar daha modern olur). Dağıtılmış olanlar mutlaka daha karmaşık değildir, ama özellikle "Performansın ... daha az karmaşık olduğu düşünülüyor ..." dedim, bu bir gerçek değil, bir fikir ifadesi ve battaniye olması değil tüm sistemler hakkında açıklama. Ben şahsen git'i daha karmaşık olarak görüyorum çünkü daha fazla kavram ekliyor (örn. İtme, çekme, yeniden basma) ve bazı şeyler çok basit değil (örneğin, küresel değişiklik sayıları yerine karma).
jamesdlin

2
Açıklama için teşekkürler James! Ben sadece kısa süre önce tüm iş arkadaşlarının Perforce kullanırken çok sezgisel hissettim bazı sorunları çözmek için git hack becerileri bir sürü bilmelisiniz bir git hacker olarak eğitilmesi gerektiğini görmek için hakaret olsun.
Dejavu

4
@Dejavu, yorumunuz mantıklı değil, modern IDE'leri grafiksel olarak destekliyor gitve yıllardır bunu yapıyorlar.
Acumenus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.