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
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.
Nasıl belirli bir abone olarak giriş b...
Nasıl bir Makefile otomatik olarak değ...
Nasıl ücretsiz sürümü için bir "anahta...
Nasıl göreli bir yol verildiğinde değe...
Nasıl benim kaynak dosyaları için vars...