SORU
10 Kasım 2009, Salı


Nasıl otomatik olarak dışarı Gıt sürüm karma yazdırmak için C kodunu alabilir miyim?

Kolay bir yol Gıt sürüm karma erişebilir C kodu yazmak var mı?

C yazılım laboratuvar ortamında bilimsel veri toplamak için yazdım. Benim kod içinde topladığı verileri kaydeder .daha sonra analiz için dosya yaml. Deneylerim günlük değiştirmek ve sık sık kodunu değiştirmeniz gerekir. Revizyonları takip etmek için, git deposu kullanıyorum.

Benim içinde bir yorum olarak Gıt revizyon karma eklemek mümkün olmak istiyorum .yaml veri dosyaları. Bu şekilde bakardım .yaml dosya ve kod veri dosyasında gösterildiği oluşturmak için kullanılan tam olarak ne olduğunu. Kolay bir şekilde bunu otomatik olarak yapmak için var mı?

CEVAP
11 EYLÜL 2012, Salı


Bir ara tabanlı bir yapı kullanıyorsanız, Makefile bu koyabilirsiniz:

GIT_VERSION := $(shell git describe --abbrev=4 --dirty --always --tags)

(Anahtarları ne için man git describe)

Ekle CFLAGS bu o zaman:

-DVERSION=\"$(GIT_VERSION)\"

O zaman sadece, sanki sürüm programına doğrudan başvuru yapabilirsiniz #define:

printf("Version: %s\n", VERSION);

Varsayılan olarak, bu sadece ıd taahhüt kısaltılmış gıt yazdırır, ama isteğe bağlı olarak böyle bir şey ile özellikle bültenleri etiket:

git tag -a v1.1 -m "Release v1.1"

sonra yazacaktır:

Version: v1.1-2-g766d

, son 2 v1 taahhüt anlamına gelir.Git 1, id ile başlayan işlemek "766d".

Eğer ağaç kaydedilmemiş değişiklikler varsa, ekleyin. "kirli".

Bağımlılık make clean açık bir sürüm güncellemesi zorlamak için yapmanız gereken tarama yok. Bu 12* *ancak.

Avantajları basit olduğunu ve perl veya awk gibi herhangi bir ekstra inşa bağımlılıkları gerektirmez. Android üniversite eğitim yapıları ile GNU automake ve bu yaklaşım kullandım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006