[fossil-users] Fossil and displaying version information

2011-12-12 Thread Christopher Berardi
Let's say I have a test console program for *nix systems, named 'testprog' that
I have in source control via Fossil. Now, each time I make a commit, it
generates a new version number. What I am looking for is how to output that
version number to the console like so:

$ testprog --version
testprog Version [8b73c285a1] 2011-12-12 08:32:12

Also, I noticed that as of about 2 Fossil versions ago, there is support for
sequential versioning, which I think is great for trying to figure out if you
have the latest version or are out of date. But, I'm fuzzy on how do I assign
that number? How do I tell Fossil that this checkin is Version 1.1? And what
formats are available (e.g., Major.Minor [1.2], Major.Minor.Bugfix [2.3.43],
etc.)? And will it automatically be put into the console output like so?

$ testprog --version
testprog Version 3.1.4 [8b73c285a1] 2011-12-12 08:32:12


Thank you.

-- 
Christopher Berardi
http://www.natoufa.com/

Be still, and know that I am God (Psalms 46:10)
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


Re: [fossil-users] Fossil and displaying version information

2011-12-12 Thread Richard Hipp
On Mon, Dec 12, 2011 at 6:29 PM, Christopher Berardi
cbera...@natoufa.comwrote:

 Let's say I have a test console program for *nix systems, named 'testprog'
 that
 I have in source control via Fossil. Now, each time I make a commit, it
 generates a new version number. What I am looking for is how to output that
 version number to the console like so:

$ testprog --version
testprog Version [8b73c285a1] 2011-12-12 08:32:12


Fossil does this itself.  The trick is to do fossil set manifest on and
then look at the manifest and manifest.uuid files that Fossil generates
automatically.  For Fossil, the relevant part of the Makefile is here:

http://www.fossil-scm.org/fossil/artifact/ba0f0532a06?ln=295-296

The rules above run a program mkversion over the manifest and
manifest.uuid files.  This program outputs a header file named
VERSION.h that looks like this:

  #define MANIFEST_UUID 9c90b0f0522c2fc3b8842f459bea910d7f8417c6
  #define MANIFEST_VERSION [9c90b0f052]
  #define MANIFEST_DATE 2011-12-06 00:09:09
  #define MANIFEST_YEAR 2011
  #define RELEASE_VERSION 1.21
  #define RELEASE_VERSION_NUMBER 121

Source code to the mkversion program is here:

 http://www.fossil-scm.org/fossil/artifact/f2a3e37f7fd400f?ln

The mkversion program used to be a script, but that was difficult to port
to windows, so we turned it into a (more complex) C program.

SQLite also does this.  It too reads the manifest and manifest.uuid
files to get the information it needs.  But SQLite runs a TCL script that
inserts the information into the generated sqlite3.h header file.  That
script is here:

 http://www.sqlite.org/src/artifact/78013ad79a5e?ln




 Also, I noticed that as of about 2 Fossil versions ago, there is support
 for
 sequential versioning, which I think is great for trying to figure out if
 you
 have the latest version or are out of date. But, I'm fuzzy on how do I
 assign
 that number? How do I tell Fossil that this checkin is Version 1.1? And
 what
 formats are available (e.g., Major.Minor [1.2], Major.Minor.Bugfix
 [2.3.43],
 etc.)? And will it automatically be put into the console output like so?

$ testprog --version
testprog Version 3.1.4 [8b73c285a1] 2011-12-12 08:32:12


 Thank you.

 --
 Christopher Berardi
 http://www.natoufa.com/

 Be still, and know that I am God (Psalms 46:10)
 ___
 fossil-users mailing list
 fossil-users@lists.fossil-scm.org
 http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users




-- 
D. Richard Hipp
d...@sqlite.org
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users