Thread overview
Makefile build sayacı ve sürüm numarası
Apr 17, 2012
zafer
Apr 17, 2012
zafer
Apr 18, 2012
zafer
Apr 18, 2012
zafer
April 17, 2012

Kullandığım IDE'lerin çoğunda bir build sayacı bulunuyor. Kaç defa build yapıldığı bilgisini saklıyor. Böyle bir şeyi makefile dosyasının içine yerleştirmek mümkün mü?

Ayrıca sürüm numarası oluşturma konusunda fikirler nelerdir?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 17, 2012

Build numaraları doğrudan kullanılan sürüm denetimi programına bağlı oluyor. Örneğin kitabın pdf kopyasının baş sayfasına yerleştirdiğim "sürüm: r447, 2012-04-15" bilgisi, ddili.org'un Google code'daki son svn sürümü.

Oradaki sürüm numarasını make sırasında otomatik olarak şöyle elde ediyorum:

'echo rsvn info ders/d/pdf_indir.d ders/d/tesekkur.d | grep "Last Changed Rev" | awk '{print $4}' | sort -n | tail -n 1'

Yukarıda iki dosya gösterdim ama aslında bütün dosyalar kullanılıyor. Ayrıca o yalnızca sürüm numarası; ondan virgülle ayrılan tarih de benzer biçimde alınıyor ve aslında yukarıdaki satırın son tarafı:

', svn info ders/d/pdf_indir.d ders/d/tesekkur.d | grep 'Last Changed Date' | awk '{print $4}' | sort -n | tail -n 1'

Bütün satırın en sonunda da bütün çıktı şu dosyaya yönlendiriliyor:

'> ders/d/pdf_surum.txt'

Belki fazla ve gereksiz bilgi oldu ama sonuçta sen de git'in komut satırı araçlarını kullanarak build numarasını elde edebilir ve grep ve awk gibi başka programlarla süzerek istediğin bilgiyi çekebilirsin.

Tabii bir D programcısı olarak bütün işlemi yazdığın bir programa da yaptırabilirsin. ;)

Kendi programının sürüm numarası ise sana kalmış bir konu. Belirli bir anda 0.1 vs. diye adlandırabilirsin. git'i iyi bilmediğim için başka arkadaşların yanıtlamalarını bekliyorum.

Ali

Not: Böyle gösterince çok karmaşık ama yukarıdaki iki komut şurada 120 ile 124 satırları arasında:

http://code.google.com/p/ddili/source/browse/trunk/src/Makefile.ders.in#120

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 17, 2012

Alıntı (acehreli):

>

Build numaraları doğrudan kullanılan sürüm denetimi programına bağlı oluyor.

Bunu bilmiyordum. Doğrusu genelde kullandığım IDE üzerinden her build işlemi sonucu artan bir sayaç sistemi olduğu için ben build numarası olarak hep onu kullanıyordum.

Alıntı:

>

Belki fazla ve gereksiz bilgi oldu ama sonuçta sen de git'in komut satırı araçlarını kullanarak build numarasını elde edebilir ve grep ve awk gibi başka programlarla süzerek istediğin bilgiyi çekebilirsin.

Hayır, aksine çok faydalı bilgiler, konuyu kavramak adına gerçek bir projeden örnek sunman çok iyi oldu. Git konusunu araştıracağım, büyük ihtmal bu tür yapı ondada mevcuttur.

Alıntı:

>

Tabii bir D programcısı olarak bütün işlemi yazdığın bir programa da yaptırabilirsin. ;)

Olayı tam olarak anladıktan sonra neden olmasın! Madem D konusunda bir becerimiz var kullanmak gerek. ;-)

Alıntı:

>

Kendi programının sürüm numarası ise sana kalmış bir konu.

Ben şu sıralar uğraştığım ve farklı kaynaklardan sipariş bilgisi alıp bizim sisteme aktaran bir aktarım sistemi için şöyle bir sürüm numarası sistemi kullanıyorum.

Alıntı:

>

sürüm 1.5.86.20110418-1530

Burada 1 ve 5 benim kendi insiyatifimde olan sayılar, 86 değeri build sayısını gösterirken en son hanede zaman damgası olarak projenin build edildiği tarih ve saati gösteriyor.

Ancak 1 ve 5 sayılarını arttırırken çok tutarlı olamıyorum :-D , aslında onlarıda bir mekanizmaya bağlayabilsem çok daha güzel olacak, henüz bir şey bulamadım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 18, 2012

Alıntı (acehreli):

>

Ben de şimdi baktım ve git'te svn'deki gibi sürekli artan bir numara olmadığını öğrendim.

Anlıyorum, zaten bildiğim kadarıyla svn'deki o numara aslında build sayısı değil, gönderiler için oluşturulan bir revizyon numarası şeklinde diye hatırlıyorum.

Diğer taraftan bende "git describe" komutunu buldum. Ancak bu uzun va karışık bir değer veriyor, bunu ayıklamak için script yazanlar olmuş ancak senin yazdığın örneklerdeki gibi büyük kısmı linux için dolayısıyla işime yaramadı. :(

Başka bir çözüm bulacağız artık, önerisi olan?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 18, 2012

Alıntı (acehreli):

>

Böylece belirli bir ara sürümün bile svn'nin hangi revizyonuna karşılık geldiği biliniyor.

Pratik ve güzel bir fikir, böylece programdaki sürüm numarasından svn'deki ilgili revizyona direk ulaşabiliyorsunuz anladığım kadarıyla, oldukça kullanışlı, tabi svn numaraları git gibi karışık olmadığı için svn ortamı için güzel bir uygulama olmuş bence.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 17, 2012

Alıntı (zafer):

>

IDE üzerinden her build işlemi sonucu artan bir sayaç

Ben de onu bilmiyordum. :)

Alıntı:

>

Git konusunu araştıracağım, büyük ihtmal bu tür yapı ondada mevcuttur.

Ben de şimdi baktım ve git'te svn'deki gibi sürekli artan bir numara olmadığını öğrendim. O uzun karmaşık numaradan başka bir şey yokmuş.

Onun için de şöyle hızlıca bir çözüm:

'git log | head -n 1 | awk '{print $2}''

Onun çıktısı şu andaki çalışma ortamının en son uzun numarasını verir.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

April 18, 2012

Alıntı (zafer):

>

svn'deki o numara aslında build sayısı değil, gönderiler için oluşturulan bir revizyon numarası

Doğru. Biz yine de o numarayı da iç sürüm numaramız olarak kullanıyoruz. Böylece belirli bir ara sürümün bile svn'nin hangi revizyonuna karşılık geldiği biliniyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]