svn commit: r1864300 - /subversion/site/publish/upcoming.part.html
Author: svn-role Date: Sat Aug 3 04:15:02 2019 New Revision: 1864300 URL: http://svn.apache.org/viewvc?rev=1864300=rev Log: * upcoming.part.html: Automatically regenerated Modified: subversion/site/publish/upcoming.part.html Modified: subversion/site/publish/upcoming.part.html URL: http://svn.apache.org/viewvc/subversion/site/publish/upcoming.part.html?rev=1864300=1864299=1864300=diff == --- subversion/site/publish/upcoming.part.html (original) +++ subversion/site/publish/upcoming.part.html Sat Aug 3 04:15:02 2019 @@ -2,113 +2,6 @@ Changes in ^/subversion/branches/1.12.x: -https://svn.apache.org/r1860377;>r1860377 | svn-role | 2019-05-30 04:00:08 + (Thu, 30 May 2019) | 11 lines - -Merge https://svn.apache.org/r1857391;>r1857391 from trunk: - - * https://svn.apache.org/r1857391;>r1857391 - Fix build with APR 1.7.0. - Justification: - Bogus configure script check relies on APR internals. - See https://svn.haxx.se/users/archive-2019-04/0041.shtml - and https://svn.haxx.se/dev/archive-2019-04/0020.shtml - Votes: - +1: stsp, rhuijben (bindings change so 2+1s is enough) - - -https://svn.apache.org/r1863267;>r1863267 | julianfoad | 2019-07-18 10:11:00 + (Thu, 18 Jul 2019) | 4 lines - -On 1.12.x branch: Backport https://svn.apache.org/r1863262;>r1863262 (Do not print password to screen in -svn_load_dirs.pl). A contrib script, so backported without voting. -This commit adds the missing mergeinfo. - -https://svn.apache.org/r1863285;>r1863285 | julianfoad | 2019-07-18 13:36:09 + (Thu, 18 Jul 2019) | 11 lines - -Merge https://svn.apache.org/r1855419;>r1855419 from trunk: - - * https://svn.apache.org/r1855419;>r1855419 - Fix conflict resolver bug where local and incoming edits got swapped. - Justification: - Bug breaks text conflict resolution. - User complained: https://svn.haxx.se/dev/archive-2019-03/0012.shtml - Votes: - +1: stsp - +0: rhuijben - - -https://svn.apache.org/r1863286;>r1863286 | julianfoad | 2019-07-18 13:36:17 + (Thu, 18 Jul 2019) | 9 lines - -Merge https://svn.apache.org/r1856397;>r1856397 from trunk: - - * https://svn.apache.org/r1856397;>r1856397 - Allow generating Visual Studio 2019 projects - Justification: - Makes it easier to build Subversion on Windows. Simple local fix. - Votes: - +1: rhuijben - - -https://svn.apache.org/r1863287;>r1863287 | julianfoad | 2019-07-18 13:36:24 + (Thu, 18 Jul 2019) | 9 lines - -Merge https://svn.apache.org/r1857367;>r1857367 from trunk: - - * https://svn.apache.org/r1857367;>r1857367 -Fix memory lifetime problem in a libsvn_wc error code path. -Justification: - Edge-case crash. Subversion should not crash. -Votes: - +1: stsp, rhuijben - - -https://svn.apache.org/r1863288;>r1863288 | julianfoad | 2019-07-18 13:36:36 + (Thu, 18 Jul 2019) | 16 lines - -Merge the https://svn.apache.org/r1860175;>r1860175 group from trunk: - - * https://svn.apache.org/r1860175;>r1860175,https://svn.apache.org/r1860186;>r1860186,https://svn.apache.org/r1860187;>r1860187,https://svn.apache.org/r1860188;>r1860188 - Fix building Subversion with Visual Studio 2005 and 2008. - Justification: - A change in 1.12 accidentally introduced a macro escaping issue - which broke compilation with these older versions of VC++. - Notes: - Should have been a simple patch. But lack of this version on my - development machine made things harder. - (I dont see a problem with dropping VS200 2008 support with - a future Subversion version, but then we should provide better - documentation on that change.) - Votes: - +1: rhuijben - - -https://svn.apache.org/r1863289;>r1863289 | julianfoad | 2019-07-18 13:36:46 + (Thu, 18 Jul 2019) | 15 lines - -Merge the https://svn.apache.org/r1859732;>r1859732 group from trunk: - - * https://svn.apache.org/r1859732;>r1859732, https://svn.apache.org/r1859734;>r1859734 - io: Implement the functions that check for node existence using the native - Win32 APIs on Windows. - Justification: - - This allows us to remove the hack from https://svn.apache.org/r1833621;>r1833621 and properly handle - reparse points on Windows irrespectively of the used APR version. - - This improves the I/O performance by using only a single call to - GetFileAttributes(), which is much faster than the generic stat -
svn commit: r1864281 - in /subversion/site: publish/docs/release-notes/index.html publish/upcoming.part.html tools/generate-upcoming-changes-log.sh tools/upcoming.py
Author: danielsh Date: Fri Aug 2 19:29:51 2019 New Revision: 1864281 URL: http://svn.apache.org/viewvc?rev=1864281=rev Log: site: Auto-update the link the the current release's STATUS file to always point to the current stable branch. * publish/docs/release-notes/index.html (#upcoming-patch-release): Move a sentence from here.. * publish/upcoming.part.html: .. to here, which is automatically generated .. * tools/generate-upcoming-changes-log.sh: .. here. * tools/upcoming.py (Version.__str__): New. (get_reference_version): Add comment. Modified: subversion/site/publish/docs/release-notes/index.html subversion/site/publish/upcoming.part.html subversion/site/tools/generate-upcoming-changes-log.sh subversion/site/tools/upcoming.py Modified: subversion/site/publish/docs/release-notes/index.html URL: http://svn.apache.org/viewvc/subversion/site/publish/docs/release-notes/index.html?rev=1864281=1864280=1864281=diff == --- subversion/site/publish/docs/release-notes/index.html (original) +++ subversion/site/publish/docs/release-notes/index.html Fri Aug 2 19:29:51 2019 @@ -82,8 +82,6 @@ official support status for the various -Further changes currently under consideration are listed in each release line's http://svn.apache.org/repos/asf/subversion/branches/1.12.x/STATUS;>STATUS file. - See also http://svn.apache.org/repos/asf/subversion/trunk/CHANGES;>trunk/CHANGES, where all significant-enough changes will summarized for each version by the time it is released. The list above is generated daily by http://svn.apache.org/repos/asf/subversion/site/tools/upcoming.py;>^/subversion/site/tools/upcoming.py. You could find the changes queued for another release line by running that script in a working copy of, for example, the 1.10.x branch. Modified: subversion/site/publish/upcoming.part.html URL: http://svn.apache.org/viewvc/subversion/site/publish/upcoming.part.html?rev=1864281=1864280=1864281=diff == --- subversion/site/publish/upcoming.part.html (original) +++ subversion/site/publish/upcoming.part.html Fri Aug 2 19:29:51 2019 @@ -110,3 +110,6 @@ Merge the https://svn.apache.or + +Further changes currently under consideration are listed in each release line's +https://svn.apache.org/repos/asf/subversion/branches/1.12.x/STATUS;>STATUS file. Modified: subversion/site/tools/generate-upcoming-changes-log.sh URL: http://svn.apache.org/viewvc/subversion/site/tools/generate-upcoming-changes-log.sh?rev=1864281=1864280=1864281=diff == --- subversion/site/tools/generate-upcoming-changes-log.sh (original) +++ subversion/site/tools/generate-upcoming-changes-log.sh Fri Aug 2 19:29:51 2019 @@ -6,12 +6,18 @@ set -e : ${SVN:=svn} +# TODO: This is a bit wasteful: get_reference_version() will be called once by +# this script and once by upcoming.py. +reference_version=`cd ~/src/svn/site/tools && python3 -c 'import upcoming; print(upcoming.get_reference_version())'` ~/src/svn/site/tools/upcoming.py | { echo "" echo '' ~/src/svn/site/tools/escape.py echo "" +echo "" +echo "Further changes currently under consideration are listed in each release line's " +echo "https://svn.apache.org/repos/asf/subversion/branches/${reference_version%.*}.x/STATUS\;>STATUS file." } > ~/src/svn/site/publish/upcoming.part.html ${SVN} commit ~/src/svn/site/publish/upcoming.part.html -m "* upcoming.part.html: Automatically regenerated" Modified: subversion/site/tools/upcoming.py URL: http://svn.apache.org/viewvc/subversion/site/tools/upcoming.py?rev=1864281=1864280=1864281=diff == --- subversion/site/tools/upcoming.py (original) +++ subversion/site/tools/upcoming.py Fri Aug 2 19:29:51 2019 @@ -25,6 +25,7 @@ DIST_RELEASE_URL = 'https://dist.apache. REPOS_ROOT_URL = 'https://svn.apache.org/repos/asf' Version = collections.namedtuple('Version', 'major minor patch') +Version.__str__ = lambda self: '{major}.{minor}.{patch}'.format(**self._asdict()) def versions_on_dist_release(): """Return a set of Version objects representing the versions that are @@ -65,6 +66,7 @@ def get_reference_version__latest_stable oldest_patch_version_within_newest_minor_line = min(v for v in versions if v[:2] == max(versions)[:2]) return oldest_patch_version_within_newest_minor_line +# Note: This function is also called by ./generate-upcoming-changes-log.sh. def get_reference_version(): "Return the version to use as the oldest end of the 'svn log' output to generate." def _is_working_copy():
Re: svn commit: r1864265 - /subversion/site/publish/upcoming.part.html
svn-r...@apache.org wrote on Fri, 02 Aug 2019 18:11 +00:00: > * upcoming.part.html: Automatically regenerated > > +++ subversion/site/publish/upcoming.part.html Fri Aug 2 18:11:34 2019 > @@ -1,3 +1,112 @@ It added lines because it lists the changes since 1.12.0. (See r1864256 for the rationale for that.)
svn commit: r1864260 - /subversion/site/publish/upcoming.part.html
Author: svn-role Date: Fri Aug 2 18:00:59 2019 New Revision: 1864260 URL: http://svn.apache.org/viewvc?rev=1864260=rev Log: * upcoming.part.html: Automatically regenerated Modified: subversion/site/publish/upcoming.part.html Modified: subversion/site/publish/upcoming.part.html URL: http://svn.apache.org/viewvc/subversion/site/publish/upcoming.part.html?rev=1864260=1864259=1864260=diff == --- subversion/site/publish/upcoming.part.html (original) +++ subversion/site/publish/upcoming.part.html Fri Aug 2 18:00:59 2019 @@ -1,5 +1,3 @@ -Changes in ^/subversion/branches/1.12.x: -
svn commit: r1864256 - /subversion/site/tools/upcoming.py
Author: danielsh Date: Fri Aug 2 17:53:38 2019 New Revision: 1864256 URL: http://svn.apache.org/viewvc?rev=1864256=rev Log: site: upcoming.py: When cwd is not a stable branch working copy root, show changes of the newest branch. Fixes SVN-4823. * site/tools/upcoming.py (__doc__): Expand. (get_reference_version__from_working_copy): Add TODO. (get_reference_version__latest_stable_release): New. (get_reference_version): New. (main): Update caller. Modified: subversion/site/tools/upcoming.py Modified: subversion/site/tools/upcoming.py URL: http://svn.apache.org/viewvc/subversion/site/tools/upcoming.py?rev=1864256=1864255=1864256=diff == --- subversion/site/tools/upcoming.py (original) +++ subversion/site/tools/upcoming.py Fri Aug 2 17:53:38 2019 @@ -1,10 +1,12 @@ #! /usr/bin/env python3 """ -WIP - INCOMPLETE +Generate 'svn log' output since the last tag to HEAD of a stable branch, +filtering all but merge commits. -Generate 'svn log' output since the last tag to HEAD of the release branch -checked out in the current working directory, filtering all but merge commits. +If the current working directory is the root of a stable branch (e.g., +`svn info --show-item=relative=url` == '^/subversion/branches/1.12.x'), +show changes to that branch; else, show changes to the newest branch. """ import collections @@ -44,10 +46,33 @@ def get_reference_version__from_working_ # - on dist; # - within the specified minor line; # - older than the working copy. +# +# TODO: This will throw ValueError (max() of an empty sequence) if working copy +# is older than the oldest patch version still on dist/. reference_version = max(v for v in versions_on_dist_release() if v[:2] == version_broken_down[:2] and v < version_broken_down) return reference_version +def get_reference_version__latest_stable_release(): +"Return the version number of the latest stable release." +# Get the available GA releases. +versions = set(versions_on_dist_release()) +# Normally dist/ would have only one version for each minor line. If there +# are two patch versions, we err on the side of showing too much rather +# than too little. (The newer patch version might not have been announced +# yet.) +oldest_patch_version_within_newest_minor_line = min(v for v in versions if v[:2] == max(versions)[:2]) +return oldest_patch_version_within_newest_minor_line + +def get_reference_version(): +"Return the version to use as the oldest end of the 'svn log' output to generate." +def _is_working_copy(): +return os.path.exists('subversion/include/svn_version.h') +if _is_working_copy(): +return get_reference_version__from_working_copy() +else: +return get_reference_version__latest_stable_release() + def copyfrom_revision_of_previous_tag_of_this_stable_branch(reference_version): """Returns the copyfrom revision of the REFERENCE_VERSION tag.""" assert isinstance(reference_version, Version) @@ -77,7 +102,7 @@ def get_merges_for_range(start, end, tar yield logentry def main(): -reference_version = get_reference_version__from_working_copy() +reference_version = get_reference_version() start_revision = copyfrom_revision_of_previous_tag_of_this_stable_branch(reference_version) + 1 target = '^/subversion/branches/{major}.{minor}.x'.format(**reference_version._asdict()) print("Changes in " + target + ":")
svn commit: r1864253 - /subversion/site/tools/upcoming.py
Author: danielsh Date: Fri Aug 2 17:38:31 2019 New Revision: 1864253 URL: http://svn.apache.org/viewvc?rev=1864253=rev Log: site: upcoming.py: Continue removing uses of the cwd. No functional change. * site/tools/upcoming.py (relative_url): Remove. (get_merges_for_range): Change signature. Stop calling relative_url(), which, incidentally, removes a fork() from each iteration of the loop. (main): Instead of calling relative_url(), just compute the URL directly. Modified: subversion/site/tools/upcoming.py Modified: subversion/site/tools/upcoming.py URL: http://svn.apache.org/viewvc/subversion/site/tools/upcoming.py?rev=1864253=1864252=1864253=diff == --- subversion/site/tools/upcoming.py (original) +++ subversion/site/tools/upcoming.py Fri Aug 2 17:38:31 2019 @@ -59,16 +59,9 @@ def copyfrom_revision_of_previous_tag_of ).decode() return int(re.compile(r'[(]from \S*:(\d+)[)]').search(log_output).group(1)) -def relative_url(target="."): -"""Return the repository-relative URL (with '^/' prefix) of TARGET, - which is expected to be the root of a branch. -""" -return subprocess.check_output([SVN, 'info', '--show-item', 'relative-url', -'--', target + '@']).decode().rstrip('\n') - -def get_merges_for_range(start, end, target="."): +def get_merges_for_range(start, end, target): """Return an array of revision numbers in the range -r START:END that are -merges.""" +merges. TARGET is passed to 'svn log'.""" cache = [] revisions = \ @@ -79,16 +72,16 @@ def get_merges_for_range(start, end, tar log_xml = ET.fromstring(revisions) for logentry in log_xml.findall('./logentry'): -is_merge = relative_url()[1:] in (path.text for path in logentry.findall('.//path')) +is_merge = target[1:] in (path.text for path in logentry.findall('.//path')) if is_merge: yield logentry def main(): -print("Changes in " + relative_url() + ":") - reference_version = get_reference_version__from_working_copy() start_revision = copyfrom_revision_of_previous_tag_of_this_stable_branch(reference_version) + 1 -for logentry in get_merges_for_range(start_revision, "HEAD"): +target = '^/subversion/branches/{major}.{minor}.x'.format(**reference_version._asdict()) +print("Changes in " + target + ":") +for logentry in get_merges_for_range(start_revision, "HEAD", target): f = lambda s: logentry.findall('./' + s)[0].text f.__doc__ = """Get the contents of the first child tag whose name is given as an argument.""" print(LOG_SEPARATOR_LINE, end='')