develooper Front page | perl.perl5.porters | Postings from December 2008

Revised git related information in -v/-V output (and %Config)

Thread Next
From:
demerphq
Date:
December 30, 2008 17:11
Subject:
Revised git related information in -v/-V output (and %Config)
Message ID:
9b18b3110812301711l51e818fco6a969b3d230a6197@mail.gmail.com
Below is the commit message for the commit I just applied, I thought I
should forward it on so people know what to expect, and to get a
thread started to discuss the changes if necessary.

Cheers,
yves

<http://perl5.git.perl.org/perl.git/commitdiff/46807d8e809cc127621bf85d9e9cea2f838eb477?hp=675b0f774d374f6951c02c6463c64a746ad46acd>

- Log -----------------------------------------------------------------
commit 46807d8e809cc127621bf85d9e9cea2f838eb477
Author: Yves Orton <demerphq@gmail.com>
Date:   Wed Dec 31 01:16:23 2008 +0100

   much better git related version numbering in our (*nix for now) build process

   The net result of this patch is to make available via Config.pm and -v/-V the
   details about the git version info we have available for the build.
When built within
   a git repository git is queried directly. When built from a
snapshot or bundle
   it is assumed that the source is unchanged, and that the required details are
   avaialble in a file called .patch, whose format current is a four
field string
   in the following format: "$branchname $date.$time $sha1 $describe". The
   generator of these files currently resides on camel.booking.com.

   * git-describe is now used more directly with -v.
       When the prefix of git-describe matches the version number
       as determined by the defines in patchlevel.h then we use ONLY
       the git-describe output, otherwise we include
       the git describe in parenthesis after the version number. Either way
       the describe text is optionally followed by a star should there be
       uncommitted changes.
       eg: This is perl, v5.11.0 (GitLive-blead-136-g58ca560) built
for i686-linux
       or: This is perl, v5.11.0-1-g58ca560 built for i686-linux
       or: This is perl, v5.11.0 built for i686-linux

   * include the SHA1 in perl -V summary, and automatically include unpushed
       commits in the registered patches list

   * include various git/version/.patch details in %Config, as follows:

       git_commit_id             # sha1 of HEAD
       git_ancestor              # ancestor in $remote/$branch
(presumably canonical)
       git_describe              # git describe
       git_branch                # current branch
       git_uncommitted_changes   # "true" if there are any, empty otherwise
       git_unpushed_commits      # List of sha1's of unpushed commits
       git_commit_id_title       # Used to make the perl -V summary output

   Additionally one more value is added depending on build process used: when
   building from an rsynced snapshot (or any dist including a file called
   .patch) then the second field will be used to populate the
   "git_snapshot_date" field. Otherwise if built in a git directory
(as is hopefully
   recommended these day) then the field will be "git_commit_date"
which will be the
   commit date of HEAD.

   This patch introduces two new files (on top of .patchnum) that will
be generated by
   make_patchnum.sh: "lib/Config_git.pl" and "unpushed.h", the former
is used to make
   git data available to Config.pm/%Config without rebuilding
everything else, and the
   second is used to expose unpushed commits (if any) via the
registered patch facility
   of patchlevel.h
-----------------------------------------------------------------------

Summary of changes:
 .gitignore       |    1 +
 Makefile.SH      |    9 ++++-
 cflags.SH        |   10 +++---
 configpm         |   19 +++++++++-
 install_lib.pl   |    1 +
 installperl      |    2 +-
 lib/.gitignore   |    1 +
 make_patchnum.sh |  102 ++++++++++++++++++++++++++++++++++++++++--------------
 myconfig.SH      |    1 +
 patchlevel.h     |   14 +++++++-
 perl.c           |   38 ++++++++++++--------
 t/run/switches.t |    5 ++-
 12 files changed, 149 insertions(+), 54 deletions(-)


-- 
perl -Mre=debug -e "/just|another|perl|hacker/"

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About