gitoz vs gitolit? [kapalı]


139

Projemle ekibimi paylaşmak için bir git sunucusu kurmayı arıyorum. Git erişimi gerektiren her geliştirici için SSH erişimine sahip sunucuda bir kullanıcı hesabı oluşturmak istemiyorum. Bu konuyu kapsayan iki eşzamanlı çözüm var gibi görünüyor: gitoz ve gitolit.

Her iki çözüm arasında bir karşılaştırma bulamadım. Aralarındaki ana farklar nelerdir? Başka benzer bir çözüm var mı?

Yanıtlar:


191

Projemle ekibimi paylaşmak için bir git sunucusu kurmayı arıyorum.

Sen olabilir sadece budala kullanın.

Git sunucusuna sahip olmak için uzak sunucuda ihtiyacınız olan tek şey git. Ayrıntılı izinlere (yalnızca ekibinizle paylaşmak bunun bir olasılık olduğunu gösterir) veya ekstra özelliklere ihtiyacınız yoksa, gitolit veya benzeri bir şeye ihtiyacınız yoktur.

Yüklemesiz çözüm

Uzak sunucuda git varsa, şu anda sorduğunuz şeyi hiçbir şey yapmadan yapabilirsiniz

ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare

Yerel:

cd projects/are/here/project
git remote add origin [user@]server:repos/are/here/project.git
git push -u origin master

Git sunucusu kurmak kolaydır.

Özel bir git kullanıcısıyla bir şeyler yapmak istiyorsanız, bir git sunucusu kurmak için kullanılan dokümanlar kısadır - çünkü bunu yapmak oldukça kolaydır.

Özetle:

  • Git'i yükle
  • Git adlı bir kullanıcı oluşturun
  • Kendinizin ve ekibinizin ortak anahtarlarını git kullanıcısının .ssh/authorized_keysdosyasına ekleyin
  • Git kullanıcısının kabuğunu değiştir git-shell
  • Sunucuda depolar oluşturma
  • start git çekme / git@yourserver.com adresine gönderme

Sadece özel bir git kullanıcıyı kullanarak değil arasındaki fark, kurulum git kullanıcı kullanmak eğer ki git-shellkendisini başka bir şey yapmak izin vermez. Git sunucusu gibi davranmak açısından, kurulmasız çözümle aynı


13
GitLab + Gitolite olan canavarı kurduktan sonra, projeler vb. Üzerinde ince kontrole ihtiyacınız yoksa, bu yol.
Andrew T Finnell

Bu cevap için teşekkürler! Aslında her biri için kullanıcı hesabı oluşturmak istemediğimi söylediğimde, git kullanıcılarımın ssh üzerinden sunucu kabuğuna erişmesini istemediğimi de belirtmeliydim. Sizin çözümünüzle "git" kullanıcısı aracılığıyla kabuğa erişebileceklerini düşünüyorum, değil mi?
greydet

2
@ wsams: git push -u origin masterve git pushsonra kullanabilirsiniz . Gito'yu tercih ederim * çünkü bence bir repoya erişen hiç kimse, uzak sistemde sahip olduğu mutlak yolu önemsemelidir.
ThiefMaster

8
@ThiefMaster ne demek istediğini vahşi bir tahmin alarak, eğer /home/git/bir projeye erişmek için url depoları koyarsanız git@server:project.git.
AD7six

1
@wsams "Git kullanıcısının kabuğunu git-shell olarak değiştir" yanıtının bu bölümünü okudu.
fabspro

142

Ana fark, gitozun artık kullanılmaması ve artık aktif olarak sürdürülmemesidir.

Gitolit çok daha fazla özellik tamamlandı ve üçüncü sürümünü çıkardı .

En ilginç özelliği, istediğiniz kadar güncelleme kancasını bildirmenize olanak tanıyan Sanal Referans (kısaca VREF).

  • dir / file name :
    Küçük geliştiricilerin Makefile'de değişiklik yapmasını istemediğinizi söyleyin, çünkü oldukça karmaşık:
    - VREF/NAME/Makefile = @junior-devs

  • yeni dosya sayısı :
    Diyelim ki küçük geliştiricilerin taahhüt başına 9'dan fazla dosya göndermesini istemiyorsunuz, çünkü küçük taahhütlerde bulunmalarını istiyorsunuz :
    - VREF/COUNT/9/NEWFILES = @junior-devs

  • gelişmiş dosya tipi algılama :
    Bazen bir dosyanın standart uzantısı vardır ('gitignore'd' olamaz), ancak aslında otomatik olarak oluşturulur. İşte yakalamak için bir yolu:
    - VREF/FILETYPE/AUTOGENERATED = @all
    Bkz src/VREF/FILETETYPEalgılama mekanizmasını görmek için.

  • yazar e-postasını kontrol etme :
    Bazı kişiler "yalnızca kendi taahhütlerinizi iletebilirsiniz".
    - VREF/EMAIL-CHECK = @all
    Bkz src/VREF/EMAIL-CHECK.

  • kaydedilmesini oylama :
    Bir taahhüt oylama temel uygulaması şaşırtıcı:
    - VREF/EMAIL-CHECK = @all. Uygulama için
    # 2 votes required to push master, but trusted devs don't have this restriction
    # RW+ VREF/VOTES/2/master = @trusted-devs
    # - VREF/VOTES/2/master = @devs
    bakınız src/VREF/VOTES.

  • ve bunun gibi...


3
3 yıldan beri Gitolit kullanıyorum. onunla herhangi bir sorun yoktu. I Üretim ve hazırlama sunucularımız ihtiyaç duyulan depolara salt okunur erişime sahiptir. Ve bir projeyi diğer Geliştirme ekipleriyle paylaşmak kolay bir iş. Ayrıca unix ve
git'i

Gitolit belgeleri alternatiflerle karşılaştırmalar içerir: gitolite.com/gitolite/gitolite.html#alt
Quinn Comendant

15

Sadece bir sidenote. Gerrit'i ihtiyaçlarınız için de kullanabilirsiniz :

Gerrit Kod İncelemesi

Birincisi Gerrit'in Kod incelemesi için kullanıldığı görülüyor, ancak aslında kullanıcıları yönetmek ve onlara iyi tanımlanmış izinler vermek için de kullanabilirsiniz. Şunları yapabilirsiniz baypas kod inceleme (çukur erişim kontrolleri ) ve sadece proje ve ssh-anahtarları yönetmek için kullanabilirsiniz. Gerrit'in gerçekten güçlü bir erişim kontrol mekanizması var:

Gerrit Erişim Kontrolleri

Erişim denetimleri belgesinde tanımlanan dallar, etiketler veya hayal edebileceğiniz herhangi bir şey için zorlamayı kısıtlayabilirsiniz.


8

Daha hızlı ve daha kirli bir çözüm için git daemon'u kullanın ve eşler arası gidin. İşte bunu yapmakla ilgili bir makale .

Düzenleme: Bu kesinlikle OP sorusuna cevap vermediğini biliyorum. Bunu, özellikle bir kurumsal github hesabı kurulana kadar kod paylaşmanın aşağı ve kirli bir yolunu ararken, benim gibi, bununla karşılaşanlar için buraya koydum.


2

Bir süredir LDAP erişimi, ince taneli erişim kontrolü vb. İle çalışan bir sunucu almak için uğraşıyorum ... Bir vahiy bulundu: Gitlab kullanın :

  • git depoları
  • ince taneli erişim (afaik gitlab kaputun altında gitolit kullanır)

hızlı ve hızlı kurulum yöntemini istiyorsanız: bitnami yükleyicisini kullanın


Evet, ancak GitLab (gitlab-shell ile), Gitolite ile kolayca kurabileceğiniz tüm VREF kancalarını kaybetti. Ve bir çok insan onları geri istiyor: github.com/gitlabhq/gitlab-shell/issues/14 ve github.com/gitlabhq/gitlab-shell/pull/85
VonC
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.