2013-06-30 24 views
5

(getirme ve itme) Git/Gerrit komutu anlamak gerekiyor ve ben bu komut tam olarak ne yaptığını anlamak istiyorum:, bizim IT departmanı bir örnek takip ediyorum

git fetch origin +refs/changes/*:refs/remotes/origin/changes/* 

bazı çerçevesini vermek referans, bu sürekli bir entegrasyon (CI) aracının bir parçasıdır ve bu test edilecek kodu kontrol etme adımının bir parçasıdır. CI inşa ile Gerrit için iterek tetiklenir:

git push origin HEAD:refs/for/development 
+0

Hangi CI aracını kullanıyorsunuz? Jenkins? – uncletall

+0

Teamcity kullanıyorum – Plazgoth

cevap

0

Bilmiyorum:

git push origin HEAD:refs/for/master 

Ben ikincil soru, ben kullanabileceği bir gelişme dalı haline değişiklik itmek istediği takdirde Gerrit hakkında bir şey. Ama bahsettiğin ilk git komutuyla ilgili bir şey söyleyebilirim.

Söz ettiğiniz komutların son kısımlarına refspec denir. Refspec chapter of the Pro Git book'da neler yaptığını okuyabilirsiniz. Kısaca:

git fetch origin +refs/changes/*:refs/remotes/origin/changes/* 

Bu origin uzak için, standart bir depo ve refs/changes yani .git/refs/changes/, origin depoda, git dizinine (içinde refs/changes dizinde bulunan şube kaydedilmesini getir diyor normal çıplak bir depoda). Bu şubeleri .git/refs/remotes/origin/changes/ yerel dizinine kopyalar. Son olarak, normal getirme davranışına göre, bu şubelere ait taahhütleri .git/object dizinine kopyalar.

Standart refspec +refs/heads/*:refs/remotes/origin/* olup refs/changes bana biraz garip geliyor. Bu standart bir Git dizini değil, belki de bir Gerrit meselesi.yapısı, changes yapısının yerel deponuzdaki bir şubedir.

0

bir yama tipik çekme şu şekilde görünecektir: git pull ssh://www.example/com:29418/project refs/changes/24/24/2

Bu projenizi artı değişim 24. ikinci yama seti çekeceği Yani bir şey olabilir tüm değişiklikleri çektiğinde.

Jenkins (CI) artı Gerrit eklentisini kullanmanızı ve choosing strategy'u Gerrit Trigger olarak belirttiğinizden emin olmanızı öneririm. Bu, uygun değişiklik kümesini test edeceğinizden emin olacaktır.

Evet, bir geliştirme şubesine geçebilirsiniz. Elbette doğru haklara sahip olduğunuzdan emin olmanız gerekir. En iyisi, ilk olarak Gerrit'te şube oluşturmaktır, bu şekilde "referans oluştur" hakkına sahip olmak zorunda kalmazsınız ve örneğin yanlış yazarak dalların yanlışlıkla oluşturulmasını önlersiniz.

İlgili konular