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

  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011
  • Valdorsha

    Valdorsha

    8 Mayıs 2006
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006