Small feature for debugging pleasure:
authorTon Roosendaal <ton@blender.org>
Sun, 2 Jan 2011 13:33:32 +0000 (13:33 +0000)
committerTon Roosendaal <ton@blender.org>
Sun, 2 Jan 2011 13:33:32 +0000 (13:33 +0000)
The svn revision nr is saved in Blender file header now.
Can only be retrieved with running blender -d now.

source/blender/blenkernel/BKE_main.h
source/blender/blenloader/CMakeLists.txt
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/writefile.c
source/blender/makesdna/DNA_constraint_types.h
source/blender/makesdna/DNA_fileglobal_types.h

index 533679c..74d4cf8 100644 (file)
@@ -51,6 +51,7 @@ typedef struct Main {
        char name[240];
        short versionfile, subversionfile;
        short minversionfile, minsubversionfile;
+       int revision;   /* svn revision of binary that saved file */
        
        struct Library *curlib;
        ListBase scene;
index a9a8912..e51fb35 100644 (file)
@@ -50,4 +50,8 @@ set(SRC
        intern/readfile.h
 )
 
+if(WITH_BUILDINFO)
+       add_definitions(-DNAN_BUILDINFO)
+endif()
+
 blender_add_lib(bf_blenloader "${SRC}" "${INC}")
index 0dfdd46..b4dfcdf 100644 (file)
@@ -5654,12 +5654,14 @@ static BHead *read_global(BlendFileData *bfd, FileData *fd, BHead *bhead)
        bfd->main->subversionfile= fg->subversion;
        bfd->main->minversionfile= fg->minversion;
        bfd->main->minsubversionfile= fg->minsubversion;
+       bfd->main->revision= fg->revision;
        
        bfd->winpos= fg->winpos;
        bfd->fileflags= fg->fileflags;
        bfd->displaymode= fg->displaymode;
        bfd->globalf= fg->globalf;
        BLI_strncpy(bfd->filename, fg->filename, sizeof(bfd->filename));
+       
        if(G.fileflags & G_FILE_RECOVER)
                BLI_strncpy(fd->relabase, fg->filename, sizeof(fd->relabase));
        
@@ -6642,7 +6644,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
        /* WATCH IT!!!: pointers from libdata have not been converted */
 
        if(G.f & G_DEBUG)
-               printf("read file %s\n  Version %d sub %d\n", fd->relabase, main->versionfile, main->subversionfile);
+               printf("read file %s\n  Version %d sub %d svn r%d\n", fd->relabase, main->versionfile, main->subversionfile, main->revision);
        
        if(main->versionfile == 100) {
                /* tex->extend and tex->imageflag have changed: */
index 34825af..f1e1d13 100644 (file)
@@ -2375,7 +2375,15 @@ static void write_global(WriteData *wd, int fileflags, Main *mainvar)
        fg.subversion= BLENDER_SUBVERSION;
        fg.minversion= BLENDER_MINVERSION;
        fg.minsubversion= BLENDER_MINSUBVERSION;
-       fg.pads= 0; /* prevent mem checkers from complaining */
+#ifdef NAN_BUILDINFO
+       {
+               extern char build_rev[];
+               fg.revision= atoi(build_rev);
+       }
+#else
+       fg.revision= 0;
+#endif
+       fg.pads= fg.pad= 0; /* prevent mem checkers from complaining */
        writestruct(wd, GLOB, "FileGlobal", 1, &fg);
 }
 
index e039eed..f9d6a70 100644 (file)
@@ -541,7 +541,7 @@ typedef enum eUpAxis_Modes {
        UP_Z
 } eUpAxis_Modes;
 
-/* Tracking axis (TrackTo, Locked Track, Damped Track) */
+/* Tracking axis (TrackTo, Locked Track, Damped Track) and minmax (floor) constraint */
 typedef enum eTrackToAxis_Modes {
        TRACK_X         = 0,
        TRACK_Y,
index ae539a1..0c3a942 100644 (file)
@@ -47,7 +47,8 @@ typedef struct FileGlobal {
        struct Scene *curscene;
        int fileflags;
        int globalf;
-       
+       int revision;           /* svn revision from buildinfo */
+       int pad;
        /* file path where this was saved, for recover */
        char filename[240]; /* 240 = FILE_MAX */
 } FileGlobal;