2013-09-04 27 views
6

Biz sadece ben çubuğunu1 inşa etmek ayrı Jenkins işleri var buBir Git repo'nun yalnızca bir alt dizinini oluştururken, Jenkins tüm repo değişikliklerini gösterir - neden?

ssh://[email protected]:7999/foo/foo.git 
    bar1 
    bar2 

gibi, aptal soru sormak eğer öyleyse,

Bizim Git repo :-) lütfen beni affet, Git birkaç Maven projeleri içeren göç ve bar2. Bar1 bir itme de çubuğunu2 tetikler önlemek için, sadece bar2/.* içerecek şekilde Advanced... Included Regions altında bar2 içinde Git eklentisi yapılandırılmış - ve bar1 işinde tam tersi: Bu iyi çalışıyor, ama bana söylense de bir şey var bar1/.*

: Her iki işteki değişiklikler, yalnızca belirli projenin değişiklikleri yerine, repo (bar1 ve bar2) değişikliklerini gösterir.

Bunu nasıl yapılandırabilirim?

Ekran Görüntüsü: enter image description here

+0

Her biri için bir repo kullanıyorsunuz (yani kendi repo ve bar2'de kendi repo'sunda bar1) ya da her ikisi de aynı repoda mı (daha sonra varsayalım, ama çoğul olan repos dediniz, bu yüzden kafam karıştı). – Lee

+0

Evet, hem bar1 hem de bar2 aynı repodadır. Üzgünüz, bu açık değilse, sorumu değiştirdim. – eerriicc

+0

Düşündüğünüz gibi olabileceğini düşündünüz, farketmeden önce cevabımı yazmanın yarısını buldum ve bir cevap göndermeden önce kontrol edeceğimi düşündüm. – Lee

cevap

-1

Sana demek farz ediyorum size özel git istemcisi olmadan ne gerektirir yapmak ya da en azından özel bir git görüntüleyici komut taahhüt edemez ve bu durumda, değişikliklere atıfta zaman log işlemek . Tek bir havuz teoride sadece bir proje içermelidir. Aksi takdirde git "yanlış" ("yanlış" kelimesini çok gevşek bir şekilde kullanarak git sadece bir araç, yanlış kullanmak imkansız kullanarak, sadece kendi gereksinimleriniz için kötü kullanıyor) kullanıyorsunuz.

İstediğiniz şeyi yapmanın tek yolu, bar1 ve bar2 klasörlerini ayrı git repo'lara bölmektir. Her ikisi de aynı sitede gerekli olan modüllere benziyorlarsa, her bir proje için sırasıyla bar1 ve bar2 klasörlerine init/clone atabilirsiniz, böylece bunları ayrı ayrı kontrol edebilirsiniz. Başka bir alternatif onları ayrı ayrı git repo'lara ayırmak, ardından diğer iki repo'yu ilgili klasörler içinde alt modüller olarak içeren üçüncü bir "master" repo oluşturmaktır. Daha sonra, ana çekmeyi yapmak ve doğru klasörü/proje/çubuğu (x) oluşturmak için muhtemelen zaten yaptığınız gibi bir özel git kanca kullanın. Ancak bu, ilk önce birkaç klasör kurmaya gerek kalmadan işlerini yapmanın harikulade bir yoludur.

Temel olarak, kendi özel taahhüt görüntüleyicinizi yazmadan, klasöre dayalı taahhüt günlüğünü ayıramazsınız. Projeyi çoklu repolara ayırmanız gerekiyor. Onları daha sonra nasıl bir araya getirip tüm yapı görevlerini otomatik hale getiriyorsunuz, size kalmış. Yukarıda bahsettiklerimin daha fazla yolu olduğundan şüphem yok. Sadece ihtiyaçlarınız için en iyi çözümü bulma vakası.

+0

Maalesef, karar birkaç projeyi tek bir repoya entegre etmek için yapıldı. Ama cevabın için teşekkürler! – eerriicc

+10

Google, tek bir (Perforce) repoda tam anlamıyla on binlerce projeye sahiptir. Facebook git ile aynı şeyi yapar. Onlara "yanlış" olduklarını söylemeye karar verirseniz, ** Torvalds'ın da bilmesine izin verebilirsiniz, ** [gitenin kendisi] (https://github.com/git/git) birden fazla projeye sahiptir. * yerleşik *, * paketlenmiş * ve * dağıtılmış * oldukları duygusu): git, gitk, git-gui, gitweb. –

+0

@PaulDraper Cevabınız, cevaplarımın birçoğunu yanlış anlatan şeyler içeriyor, yanıt vermek için onu kırmaya bile değmez. Ayrıca aslında ifadelerinizi de kontrol etmek isteyebilirsiniz. – Lee

İlgili konular