This is an automated email from the ASF dual-hosted git repository.

jim pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/AOO42X by this push:
     new a7eb43e  Allow for source repo builds to include repo revision number, 
as stored when the tarball/zipfile was created.
a7eb43e is described below

commit a7eb43eed7f3f420620f44556505ba42be2d378c
Author: Jim Jagielski <[email protected]>
AuthorDate: Thu Oct 3 12:57:05 2019 -0400

    Allow for source repo builds to include repo revision number, as stored 
when the tarball/zipfile was created.
    
    (cherry picked from commit 27a447d8e738b70f74ab05606693d7139127efc4)
---
 main/instsetoo_native/util/makefile.mk  |  1 +
 main/solenv/bin/modules/RepoRevision.pm | 44 ++++++++++++++++++++++++---------
 2 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/main/instsetoo_native/util/makefile.mk 
b/main/instsetoo_native/util/makefile.mk
index c228a85..e03c437 100644
--- a/main/instsetoo_native/util/makefile.mk
+++ b/main/instsetoo_native/util/makefile.mk
@@ -163,6 +163,7 @@ VERBOSESWITCH+=-log
 SRC_RELEASE_OUT_DIR=$(shell cd $(OUT) && pwd)$/AOO_SRC_Release
 
 aoo_srcrelease: $(SOLARENV)$/bin$/srcrelease.xml
+       $(PERL) -I$(SOLARENV)/bin/modules -e "use RepoRevision; print 
RepoRevision::DetectRevisionId(\"$(SRC_ROOT)\")" > 
$(SOLARENV)$/inc$/reporevision.lst
        @-$(MKDIR) $(OUT)$/AOO_SRC_Release
        $(ANT) -f $(SOLARENV)$/bin$/srcrelease.xml -q 
-Dbasedir=$(SOURCE_ROOT_DIR) -Dout.dir=$(SRC_RELEASE_OUT_DIR)
 
diff --git a/main/solenv/bin/modules/RepoRevision.pm 
b/main/solenv/bin/modules/RepoRevision.pm
index db04180..580e0cf 100644
--- a/main/solenv/bin/modules/RepoRevision.pm
+++ b/main/solenv/bin/modules/RepoRevision.pm
@@ -23,11 +23,29 @@
 
 package RepoRevision;
 
-#old SVN code unchanged
-sub DetectRevisionIdFromSVN ($)
+sub DetectRevisionIdFromFile ($)
 {
        my $path = shift;
+       my $id = undef;
+
+       open( my $fh, '<', $path ) || return undef;
+       $id = <$fh>;
+       close $fh;
+       return $id;
+}
+
+sub DetectRevisionIdFromGit ($)
+{
+       my $path = shift;
+       my $id = undef;
+
+       $id = `git log -1 --pretty=format:%h --abbrev=10`;
+       return $id;
+}
 
+sub DetectRevisionIdFromSVN ($)
+{
+       my $path = shift;
        my $id = undef;
 
        open my $proc, "cd $path && svn info 2>\&1 |";
@@ -36,8 +54,7 @@ sub DetectRevisionIdFromSVN ($)
                if (/svn: E155007:/ || /svn: '.' is not a working copy/)
                {
                        # Not in an SVN repository.
-                       $id = DetectRevisionIdFromGit($path);
-                       last;
+                       return undef;
                }
                else
                {
@@ -49,7 +66,6 @@ sub DetectRevisionIdFromSVN ($)
                }
        }
        close $proc;
-
        return $id;
 }
 
@@ -57,20 +73,24 @@ sub DetectRevisionIdFromSVN ($)
 sub DetectRevisionId ($)
 {
        my $path = shift;
-
        my $id = undef;
-       #test if path points to a git repository. if true return is 0 else 
positive number.
-       my $isNotGit= `[ -d .git ] || git rev-parse --git-dir > /dev/null 2>&1`;
-       if ($isNotGit)
+
+       my $NotGit = `cd $path && git rev-parse --git-dir > /dev/null 2>&1`;
+       if (!$NotGit || -d ".git" || -d "$path/.git")
        {
-               $id = DetectRevisionIdFromSVN ($path);
+               $id = DetectRevisionIdFromGit ($path);
        }
        else
        {
-               #returns directly the hash of the current checkout.
-               $id = `git log -1 --pretty=format:%h --abbrev=10`;
+               $id = DetectRevisionIdFromSVN ($path);
        }
 
+       if (!$id)
+       {
+               #NOTE: Magic cookie file 'reporevision.lst' created by 
aoo_srcrelease
+               $id = DetectRevisionIdFromFile 
("$ENV{'SOLARENV'}/inc/reporevision.lst");
+               if (!$id) { $id = "unknown-rev" };
+       }
        return $id;
 }
 

Reply via email to