]> git.saurik.com Git - redis.git/commitdiff
create release.h in make process and add this information to INFO listing
authorPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 17 May 2010 20:21:01 +0000 (22:21 +0200)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 17 May 2010 20:28:12 +0000 (22:28 +0200)
.gitignore
Makefile
redis.c

index 5463a140850da9ef907fb2b550083e48200ed43a..ed57c1bf91ff1091457aacff0b68838dd28d2f64 100644 (file)
@@ -12,3 +12,4 @@ mkrelease.sh
 release
 myredis.conf
 misc/*
+release.h
index c6cbf320e8ba9928254f998396529462508fc9bf..635cb18930040ed74ea90bf566f8a98f78c138a0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -14,6 +14,8 @@ endif
 CCOPT= $(CFLAGS) $(CCLINK) $(ARCH) $(PROF)
 DEBUG?= -g -rdynamic -ggdb 
 
+GIT_SHA1:=$(shell sh -c '(git show-ref --head --hash=8 2> /dev/null || echo 00000000) | head -n1')
+GIT_DIRTY:=$(shell sh -c 'git status -s 2> /dev/null | wc -l')
 OBJ = adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o
 BENCHOBJ = ae.o anet.o redis-benchmark.o sds.o adlist.o zmalloc.o
 CLIOBJ = anet.o sds.o adlist.o redis-cli.o zmalloc.o linenoise.o
@@ -54,7 +56,7 @@ sds.o: sds.c sds.h zmalloc.h
 zipmap.o: zipmap.c zmalloc.h
 zmalloc.o: zmalloc.c config.h
 
-redis-server: $(OBJ)
+redis-server: releaseheader $(OBJ)
        $(CC) -o $(PRGNAME) $(CCOPT) $(DEBUG) $(OBJ)
        @echo ""
        @echo "Hint: To run the test-redis.tcl script is a good idea."
@@ -74,6 +76,11 @@ redis-check-dump: $(CHECKDUMPOBJ)
 redis-check-aof: $(CHECKAOFOBJ)
        $(CC) -o $(CHECKAOFPRGNAME) $(CCOPT) $(DEBUG) $(CHECKAOFOBJ)
 
+releaseheader:
+       @echo "#define REDIS_GIT_SHA1 \"$(GIT_SHA1)\"" > release.h
+       @echo "#define REDIS_GIT_DIRTY $(GIT_DIRTY)" >> release.h
+       @touch redis.c # force recompile of redis.c
+
 .c.o:
        $(CC) -c $(CFLAGS) $(DEBUG) $(COMPILE_TIME) $<
 
diff --git a/redis.c b/redis.c
index eddbc26bc29527ca1767f71a5572b16bd68e9ff8..8ace1898ac8051584ae28e55a5dd91695a8dd0f0 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -76,6 +76,7 @@
 #include "pqsort.h" /* Partial qsort for SORT+LIMIT */
 #include "zipmap.h" /* Compact dictionary-alike data structure */
 #include "sha1.h"   /* SHA1 is used for DEBUG DIGEST */
+#include "release.h" /* Release and/or git repository information */
 
 /* Error codes */
 #define REDIS_OK                0
@@ -7175,6 +7176,8 @@ static sds genRedisInfoString(void) {
     bytesToHuman(hmem,zmalloc_used_memory());
     info = sdscatprintf(sdsempty(),
         "redis_version:%s\r\n"
+        "redis_git_sha1:%s\r\n"
+        "redis_git_dirty:%d\r\n"
         "arch_bits:%s\r\n"
         "multiplexing_api:%s\r\n"
         "process_id:%ld\r\n"
@@ -7199,6 +7202,8 @@ static sds genRedisInfoString(void) {
         "vm_enabled:%d\r\n"
         "role:%s\r\n"
         ,REDIS_VERSION,
+        REDIS_GIT_SHA1,
+        REDIS_GIT_DIRTY > 0,
         (sizeof(long) == 8) ? "64" : "32",
         aeGetApiName(),
         (long) getpid(),