Gerrit'in git taahhütlerini (belki de update
kancasını kullanarak) aldığını ve akran değerlendirmesi yapılıncaya kadar sahte bir yere yazdığını anlıyorum, ancak bu süreç teknik uygulama açısından tam olarak nasıl çalışıyor? Ve hangi Git komutları yer alıyor?Gerrit sunucusu nasıl çalışır? Teknik ayrıntıları mı arıyorsunuz?
13
A
cevap
2
Kullanıcı tarafından kullanılan refs/for/<branch ref>
başvuru numarasına başvuruda bulunabilirsiniz. when pushing new commits.
git push ssh://[email protected]:29418/projectname HEAD:refs/for/branch
Ör:
inceleme için yeni değişiklikleri oluşturmak için, herhangi Git istemci aracını kullanarak projenin büyülürefs/for/'branch'
ref itmekjohn.doe
git.example.com
Gerrit sunucuda barındırılan projeninkernel/common
aitexperimental
dalı için yeni değişiklikler, upload git itmek kullanabilirsiniz:git push ssh://[email protected]:29418/kernel/common HEAD:refs/for/experimental
Her yeni bir değişiklik çevrilecektir git push istemci tarafından yüklenen işlemek sunucuya kayıt.
İstemcinin durum iletileri aksini belirtse bile, uzaktan refrefs/for/experimental
aslında Gerrit tarafından oluşturulmaz.
Teknik olarak bu cmd-receive-pack tarafından yönetilmektedir. 'Git push' olarak çağrıldığında
ve ile 'git push' ucundan beslenen bilgi projenin deposunu günceller.O Git receive-pack protocol kullanarak SSH üzerinden yükleme değiştirmek aldığı,
gerrit/sshd/commands/Receive.java
tarafından uygulanmaktadır.
Gerrit sistem tasarım dökümanları ilginizi çekebilir - https://gerrit-review.googlesource.com/Documentation/dev-design.html - kaynak burada da mevcuttur https://gerrit.googlesource.com/ gerrit / – Robbie