[147357] branches/vcs-fetch/base/src/port1.0/portfetch.tcl

raimue at macports.org raimue at macports.org
Sat Apr 2 04:22:11 PDT 2016


Revision: 147357
          https://trac.macports.org/changeset/147357
Author:   raimue at macports.org
Date:     2016-04-02 04:22:11 -0700 (Sat, 02 Apr 2016)
Log Message:
-----------
Include git submodules recursively in tarball

Modified Paths:
--------------
    branches/vcs-fetch/base/src/port1.0/portfetch.tcl

Modified: branches/vcs-fetch/base/src/port1.0/portfetch.tcl
===================================================================
--- branches/vcs-fetch/base/src/port1.0/portfetch.tcl	2016-04-02 11:00:07 UTC (rev 147356)
+++ branches/vcs-fetch/base/src/port1.0/portfetch.tcl	2016-04-02 11:22:11 UTC (rev 147357)
@@ -497,10 +497,10 @@
         }
     }
 
-    # XXX: this does not support multiple recursive levels of submodules
+    # fetch all submodules
     if {[file isfile "$tmppath/.gitmodules"] && [tbool git.fetch_submodules]} {
         ui_info "$UI_PREFIX Cloning git submodules"
-        set cmdstring "${git.cmd} submodule -q update --init 2>&1"
+        set cmdstring "${git.cmd} submodule -q update --init --recursive 2>&1"
         if {[catch {system -W $tmppath $cmdstring} result]} {
             delete ${tmppath}
             return -code error [msgcat::mc "Git submodule init failed"]
@@ -528,9 +528,13 @@
         # TODO: add dependency on libarchive, if /usr/bin/tar is not bsdtar
         set tar [findBinary bsdtar tar]
         set tartmp [join [list [mktemp "/tmp/macports.portfetch.${name}.XXXXXXXX"] ".tar"] ""]
+        # determine tmppath again in shell, as the real path might be different
+        # due to symlinks (/tmp vs. /private/tmp), pass it as MPTOPDIR in
+        # environment
         set cmdstring [join [list \
-            "${git.cmd} submodule -q foreach '" \
-            "${git.cmd} archive --format=tar --prefix=\"${git.file_prefix}/\$path/\" \$sha1 " \
+            "MPTOPDIR=\$PWD " \
+            "${git.cmd} submodule -q foreach --recursive '" \
+            "${git.cmd} archive --format=tar --prefix=\"${git.file_prefix}/\${PWD#\$MPTOPDIR/}/\" \$sha1 " \
             "| tar -cf ${tartmp} @- @${tardst} " \
             "&& mv ${tartmp} ${tardst}" \
             "' 2>&1"] ""]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160402/d6c460fa/attachment-0001.html>


More information about the macports-changes mailing list