Hello,

in the last days Craig fixed issue CCNET-1230[1] to change the
LastChangeNumber property from int to an string to support git and hg's
sha1 hashes.

Its now impossible to create a numeric label with those source control
systems, e.g. with the LastChange- and AssemblyVersionLabeller
because they provide an SHA-1 hash. This is also the case for every
other SCM that do not have a numeric revision number as commit identifier.

So the current property "LastChangeNumber" is now much more missleading
then before.

A possible solution:

- change "LastChangeNumber" to "LastSCMChangeIdentifier"

It contains the unique identifier of the last used commit of an SCM.
E.g. the svn revision number or the git sha1 hash, etc.

- add "LastSCMChangeRevisionNumber"

It contains a numeric revision number of the changes/commits of an SCM.
E.g. the svn revision number or the count of commits of the current
branch in Mercurical and Git.


Now a Labeller implementation could choose one of the 2 provided
properties to create a nice label that depends on the SCM.

What do you think?


How we can get the number of changes for git?
$ git rev-list HEAD | wc -l

How we can get the number of changes for hg?
Daniel Hommel mentioned that hg has for the local repository a numeric
revision, so we can use that.

How we can get the number of changes for Subversion?
Using the svn revision number .. so in this case its the same for
"LastSCMChangeIdentifier" and "LastSCMChangeRevisionNumber".

Other SCM's?
I've never used one of them, so please if you find some time help me to
get the possibilities of each SCM we support to get a unique identifier
and a revision number.


Daniel


[1] http://jira.public.thoughtworks.org/browse/CCNET-1230

Reply via email to