2009-03-02 32 views
3

SVN deposunda bir Java projesi oluşturmak için CruiseControl 2.7.3 (orijinal) kullanmaya çalışıyorum.CruiseControl ile SVN'yi Kullanma?

Yolculuk ayarım, değişiklik kümesi için svn plugin kullanıyor. Bir değişiklik tespit edildiğinde, bir yapı Ant kullanılarak programlanır. Bu Ant build dosyası, daha sonra projenin tam bir kontrolünü yapmak için eski Ant Görevini kullanır. Bir süreliğine, bunu sadece "HEAD" olarak ayarlamaya ayarladık, ama yapmamız gereken, check in check-in işlemi için çekilmeyeceği veya iki kez de check-in işleminin modifikasyon setinin kontrolünden sonra gerçekleşmesi, ancak karınca aramadan önce svn çıkış. Sonuç olarak, değişiklik denetiminin aldığı revizyon numarasını kullanmak için karınca oluşturma dosyasını değiştirmeye çalışıyoruz.

CruiseControl Yapılandırma Başvuru sayfası, svnrevision numaralı özelliğin, özellik etiketinin labelincrementers tarafından olduğu gibi oluşturuculara ayarlandığını ve iletildiğini iddia eder. force build düğmesine bastığımda ayarlanmamış gibi görünüyor.

Bunu yapmak için yapmam gereken bir şey var mı?

+0

Hangisi tam olarak oturum açmış? Cruisecontrol.log, proje günlüğü veya yapı günlüğü? – Steen

+0

Oh, ve belki de 'subversion' etiketini sorunuza eklediğinde, birkaç tane daha gözünüze işaret eder miydi? – Steen

+0

Soruya ekleyeceğim. –

cevap

1

SVN kaynak denetiminin koduna bakıldığında, svnrevision'un oluşturucuya ve dolayısıyla Ant işleminize gönderilmesi gerektiği anlaşılıyor. Mülkünüzü Ant betiğinizden kullanmayı denediniz mi? yorumunda sorusuna yanıt olarak

:

kuvvet inşa halinde hiçbir değişiklik yoktu, bu yüzden hiçbir değişiklik revizyon numarası var, çünkü var

. Bu durumda, svnlabelincrementer, yerel olarak sahip olduğunuz en son revizyon numarasını geçecek ve bu da en son olacak.

+0

svnrevision özelliğini yazdırmak için bir ekon var. Güç oluşturma düğmesi hakkında yeni bir bilgi eklendi. Bence bu gerçek sorun. –

+0

Bunun nedeni, güç oluşturma durumunda herhangi bir değişiklik olmaması nedeniyle, herhangi bir değişiklik düzeltme numarası yoktur. Bu durumda, svnlabelincrementer en sonda da olacak, yerel olarak sahip olduğunuz için en geç geçirecektir. –

+0

Ödeme yaparken komut dosyası için kod yazmam gerekecek. Bugüne kadar bir problem olduğunu anlamadım. –

0

Cruisecontrol karıncaya girme işleminin, bu şekilde (svn) etiketiyle hiçbir ilgisi yoktur. Svn etiketi, yapı isimlerine açıklama yapmak için kullanılırken, build.log ise, yalnızca cruisecontrol aracılığıyla geçirilen karıncadan elde edilen çıktıdır.

bir yolu bir şekilde svn ile karınca etkileşime sahip olmaktır: Eğer ant inşa çıkışına yazılı revizyon numarasına sahip isterseniz

, temelde iki yolu vardır. Karınca Svn tigris sadece contrib ant task aracılığıyla kullanılabilir, bu yüzden karınca dosyanızın içine koymak için önemsiz değil. Ancak bu yapınızda, bir svn info yapabilir ve revizyon numarasını emir sırasındaki karınca özellikleri olarak alabilirsiniz.

Başka bir yol, svnlabelincrementer etiketini kullanarak, revizyon numarasını etikete atamak ve cruise control'den inşa komut dosyalarına aktarılan buildproperties kodunu kullanarak ant komut dosyasına aktarmaktır. Jay, yorumlarda bahsettiği gibi, etiket sadece istediği gibi olmayan son başarılı derleme revizyonunu içeriyor. this blog'da bir düzeltme önerildi, ancak karınca oluşturma dosyasındaki çalışma daha uygun görünüyor.

+0

svnlabelincrementer otomatik olarak $ {label} özelliğini zaten gönderir. Ne yazık ki, çalışma yolundan sadece en son revizyon olması garanti edilemez. Böylece bir güncelleme komutuna geçemezsiniz. –

0

Sessiz çalışma ayarını kullanabilir misiniz? Bir işlemden sonra, CruiseControl bir yapıyı başlatmadan önce bir süre (30 saniye) bekleyebilir.

Her işlem için ayrı ayrı yapılardan çıkmaz. Daha ziyade, aynı zamanda etrafındaki taahhütler tek bir yapıyı başlatacak.

+0

Sessiz döngünün ayarlanması, yalnızca yapıyı tetikleyecek olan kontrolleri izleyebilecek ek check-inleri beklemek için yapıyı geciktirir. Bu CVS için gerçekten çok iyi, ancak SVN için daha az kullanışlı. Sorunum olsa da yardımcı olmuyor. –