diff --git a/ChangeLog b/ChangeLog index ef603de95..6de85588a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,10 @@ Release 1.9.0 (unreleased): + - svn checkouts now use peg revisions instead of operative revisions, + so they'll continue to work if a repository gets reorganized + (#20777, ryandesign) + - Use CommonCrypto/CommonDigest instead of OpenSSL libcrypto. (toby) - Add SHA256 checksums in addition to MD5, SHA1 and RIPEMD160. (afb) diff --git a/src/port1.0/portfetch.tcl b/src/port1.0/portfetch.tcl index 566a3500c..3f2052661 100644 --- a/src/port1.0/portfetch.tcl +++ b/src/port1.0/portfetch.tcl @@ -533,11 +533,15 @@ proc portfetch::cvsfetch {args} { # Perform an svn fetch proc portfetch::svnfetch {args} { - global svn.args svn.revision svn.method + global svn.args svn.method svn.revision svn.url + + if {[regexp {\s} ${svn.url}]} { + return -code error [msgcat::mc "Subversion URL cannot contain whitespace"] + } set svn.args "${svn.method} ${svn.args}" if {[string length ${svn.revision}]} { - set svn.args "${svn.args} -r ${svn.revision}" + append svn.url "@${svn.revision}" } if {[catch {command_exec svn "" "2>&1"} result]} {