<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch vcs-fetch
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/a10c4dc37f73423195ebb50a921714a6cdd62728">https://github.com/macports/macports-base/commit/a10c4dc37f73423195ebb50a921714a6cdd62728</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/vcs-fetch by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new a10c4dc  fetch: Support sparse checkouts with svn.subdirs
</span>a10c4dc is described below

<span style='display:block; white-space:pre;color:#808000;'>commit a10c4dc37f73423195ebb50a921714a6cdd62728
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Wed Mar 21 14:17:55 2018 +0100

<span style='display:block; white-space:pre;color:#404040;'>    fetch: Support sparse checkouts with svn.subdirs
</span>---
 src/port1.0/portfetch.tcl | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portfetch.tcl b/src/port1.0/portfetch.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 6441ee5..d8764c7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portfetch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portfetch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,7 +51,7 @@ options master_sites patch_sites extract.suffix distfiles patchfiles use_bzip2 u
</span>     master_sites.mirror_subdir patch_sites.mirror_subdir \
     bzr.cmd bzr.url bzr.revision bzr.file bzr.file_prefix \
     cvs.cmd cvs.root cvs.password cvs.module cvs.tag cvs.date cvs.file cvs.file_prefix \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    svn.cmd svn.url svn.revision svn.file svn.file_prefix \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    svn.cmd svn.url svn.revision svn.subdirs svn.file svn.file_prefix \
</span>     git.cmd git.url git.branch git.file git.file_prefix git.fetch_submodules \
     hg.cmd hg.url hg.tag hg.file hg.file_prefix
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,6 +76,7 @@ default cvs.file_prefix {${distname}}
</span> default svn.cmd {[portfetch::find_svn_path]}
 default svn.url ""
 default svn.revision ""
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default svn.subdirs ""
</span> default svn.file {${distname}.${fetch.type}.tar.bz2}
 default svn.file_prefix {${distname}}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -580,7 +581,7 @@ proc portfetch::svn_proxy_args {url} {
</span> proc portfetch::svnfetch {args} {
     global UI_PREFIX \
            distpath workpath worksrcpath \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-           svn.cmd svn.args svn.revision svn.url svn.file svn.file_prefix \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           svn.cmd svn.args svn.revision svn.url svn.subdirs svn.file svn.file_prefix \
</span>            name distname fetch.type
 
     set generatedfile "${distpath}/${svn.file}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -602,10 +603,26 @@ proc portfetch::svnfetch {args} {
</span>     ui_info "$UI_PREFIX Checking out ${fetch.type} repository"
     set tmppath [mkdtemp "/tmp/macports.portfetch.${name}.XXXXXXXX"]
     set tmpxprt [file join ${tmppath} export]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set cmdstring "${svn.cmd} --non-interactive ${proxy_args} export ${svn.url} ${tmpxprt}/${svn.file_prefix} 2>&1"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[catch {system $cmdstring} result]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        delete ${tmppath}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return -code error [msgcat::mc "Subversion checkout failed"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![info exists svn.subdirs]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cmdstring "${svn.cmd} --non-interactive ${proxy_args} export ${svn.url} ${tmpxprt}/${svn.file_prefix} 2>&1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[catch {system $cmdstring} result]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            delete ${tmppath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return -code error [msgcat::mc "Subversion checkout failed"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cmdstring "${svn.cmd} --non-interactive ${proxy_args} checkout --depth empty ${svn.url} ${tmpxprt}/${svn.file_prefix} 2>&1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[catch {system $cmdstring} result]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            delete ${tmppath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return -code error [msgcat::mc "Subversion checkout failed"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach dir ${svn.subdirs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set cmdstring "${svn.cmd} --non-interactive ${proxy_args} update --depth infinity ${tmpxprt}/${svn.file_prefix}/${dir} 2>&1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[catch {system $cmdstring} result]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                delete ${tmppath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error [msgcat::mc "Subversion update for subdir $dir failed"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file delete -force ${tmpxprt}/${svn.file_prefix}/.svn
</span>     }
 
     if {![svn_tarballable]} {
</pre><pre style='margin:0'>

</pre>