2012-02-13 18 views
17

Şartım basit. Her dosyanın başında olmalıdır Böyle bir blok comment:Kaynak koduna SVN düzeltme numarası ekle

/* 
* This file was last modified by {username} at {date} and has revision number {revisionnumber} 
*/ 

Ben {username}, {date} ve {revisionnumber}SVN uygun içerikle doldurmak istiyorum.

nasıl NetBeans ve Subversion ile bunu başarabilirsiniz? Çok fazla aradım ama tam ihtiyacım olanı bulamıyorum.

+0

olası yinelenen [Subversion: işlemek kod dosyasına revizyon verileri ekleme] (http://stackoverflow.com/questions/2008843/subversion-add-revision-data-to-code-file-on- taahhüt) – geoffspear

cevap

13

this sorusuna baktım ve bazı yararlı bilgiler aldım. Bu tam olarak kopya değil çünkü ben NetBeans ile çalışıyorum ama fikir aynı.

/* 
* $LastChangedDate$ 
* $LastChangedRevision$ 
*/ 

Sonra Takımı> Subversion> Svn özellikleri gidip mülkiyet değeri olarak mülkiyet adı olarak svn:keywords ve LastChangedDate LastChangedRevision ekleyin: Bu benim başlıktır. Ben NetBeans den taahhüt zaman

Ve şuna benzer:

/* 
* $LastChangedDate: 2012-02-13 17:38:57 +0200 (Пн, 13 II 2012) $ 
* $LastChangedRevision: 27 $ 
*/ 

Teşekkür tüm destek için! Cevabımı kabul edeceğim çünkü diğer cevaplar NetBeans bilgisini içermiyor. Yine de diğer cevaplara +1 veriyorum.

+1

Bu Eclipse de yapılabilir: Proje ağacına sağ tıklayın. ** Takım -> Mülk Ayarla ** 'yı seçin, ** svn: keywords' i seçin ** Mülk adı ** listeyi girin ve ** bir mülk girin ** metin kutusu: 'LastChangedDate LastChangedRevision' – ecle

+0

svn: keywords eklemeye çalıştığınızda NB 8'de hiçbir şey olmuyor. – Yster

4

Sen The SubWCRev Program ile yapabilirsiniz.

SubWCRev Subversion çalışma kopyasının durumunu okumak ve isteğe bağlı olarak bir şablon dosyasında anahtar kelime değişikliği yapmak üzere kullanılabilen Windows konsol programıdır. Bu genellikle yapı işleminin bir parçası olarak, oluşturduğunuz nesneye çalışma kopyası bilgilerini eklemenin bir parçası olarak kullanılır. Genellikle "Hakkında" kutusundaki revizyon numarasını için kullanılabilir.

Bu tipik olarak, oluşturma işlemi sırasında yapılır.

Linux kullanıyorsanız, here Linux ikili bulabilirsiniz. İsterseniz, svn log çıktısını kullanarak kendi yazabilirsiniz.

+0

Peki ya Linux kullanılıyorsa? –

+0

@PetarMinchev Güncellenmiş cevabımı görün. – RedFilter

10

Bu veri'dan sonra yalnızca olduğu için dosya, bir istemci programı değil SVN tarafından ayarlanması gerektiği konusunda kararlıdır. (Ve istemci tarafındaki işlem devre dışı olsun veya hiç yapılandırılmamış olma eğilimindedir.) Bu, istediğiniz gibi basit bir şablon/yedek olmadığı anlamına gelir, çünkü ilk değiştirmeden sonra şablon değişkenleri kaybolacaktır.

SVN anahtar kelime ikame here dayanacak bilgi bulabilirsiniz. Sonra $Rev$ gibi şeyler $Rev: 12 $ ile değiştirilebilir.

0

Biraz farklı bir yaklaşım öneririm.

Aşağıdaki üstbilgiyi kaynak dosyalarınızın en üstüne koyun.

/* 
* This file was last modified by {username} at {date} and has revision number {revisionnumber} 
*/ 

Sonra

USERNAME=# // use svnversion to get username 
DATE=# // use svnversion to get revisio nnumber 
sed -e "s#{username}#${USERNAME}#" -e "s#{date}#${DATE}#" ${SOURCE_CONTROL_FILE} > ${SOURCE_FILE} 

öncesi ben Petar Minchev önerilerini takip komut dosyası

cat standard_header.txt > ${SOURCE_CONTROL_FILE} 
tail --lines $((${LENGTH}-4)) ${SOURCE_FILE} >> ${SOURCE_CONTROL_FILE} 
4

taahhüt bu

sonrası güncelleme, ödeme senaryosu gibi bir kabuk komut dosyası eklemek, keşke koymak $ LastChangedRevision $ etiketi bir yorum bloğunda değil, bir dizeye yerleştirildi. Şimdi revizyon numarasını bir Yardım -> Hakkında diyalog penceresinde programlı olarak görüntülemek mümkündür.

String build = "$LastChangedRevision$"; 

Daha sonra tüy kapalı kesilmiş tüm sahip bir dize kullanarak yaklaşık iletişim revizyon değerini görüntüleyebilir.

String version = build.replace("$LastChangedRevision:", "").replace("$", "").trim(); 
ait
+0

Aynı şekilde kullanıyorum. – Semaphor

İlgili konular