subversion

Checkout Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1696374 is being indexed.

On the 'move-tracking-2' branch: Remove 'svn_branch_branch' from the public

API, because 'svn_branch_branch_subtree' is a better, more general form of

the same operation.

* subversion/include/private/svn_branch.h,

subversion/libsvn_delta/branch.c

(svn_branch_branch): Move and rename...

* subversion/svnmover/svnmover.c

(do_branch): ... to here.

(execute): Track the rename.

* STATUS: Nominate r1696222 group.
Following up on r1696222, implement polling on pipes on Windows.

Note that PeekNamedPipe() also works on unnamed pipes, such as those created

by apr to hook stdin and stdout of subprocesses.

* subversion/libsvn_subr/stream.c

(data_available_handler_apr): Implement polling on pipes for Win32.

* subversion/tests/libsvn_ra/ra-test.c

(test_funcs): Remove Windows specific XFail marking.

Improve tunnel callback tests to include more scenarios and to stop allocating

a baton on the stack that is referenced from cleanup functions.

This test ensures that we try to poll the connection at least once; which

currently fails on Windows.

* subversion/tests/libsvn_ra/ra-test.c

(check_tunnel_callback_test): Allocate baton in pool. Ensure specific error.

(tunnel_callback_test): Don't ignore some errors for FAIL reporting.

(tunnel_run_checkout): New test.

(test_funcs): Add new test.

Follow-up to r1696171: Fix FSFS breakage.

* subversion/libsvn_fs_fs/id.c

(svn_fs_fs__id_serialize): This is a case where actual data size and

and interface type size don't match up.

It is possible to run the svn-mergeinfo-normalizer tool on a working copy

that refers to a path that does not exist in the repository (anymore).

Instead of erroring out, we should simply try its parent paths up to the

repository root until we find one that does exist. Then run the log

request on that one. We will still get error if repo does not exist. The

"extra" log info is a mere inefficiency that does not affect functionality.

* tools/client-side/svn-mergeinfo-normalizer/logic.c

(get_url): New utility function.

(svn_min__run_normalize): Also open a session if we just need log access.

Call to new function to read the log from a

URL we know actually exists.

* tools/client-side/svn-mergeinfo-normalizer/logic.c

(show_obsoletes_summary): Typo in comment. No functional change.

* tools/client-side/svn-mergeinfo-normalizer/log.c

(svn_min__log): Always show all the info we have. Even if copies of a

branch have survived, we can still show the revision

in which the branch got deleted.

In FSFS and FSX temp serialization code, avoid taking the size of types

when we have access to the actual objects. This reduces redundancy.

* subversion/libsvn_fs_fs/id.c

(svn_fs_fs__id_serialize): Take the item size from the variable rather

than the key.

* subversion/libsvn_fs_fs/temp_serializer.c

(serialize_svn_string,

serialize_representation,

serialize_dir_entry,

serialize_dir,

serialize_txdelta_ops,

serialize_txdeltawindow,

svn_fs_fs__serialize_rep_header): Same.

* subversion/libsvn_fs_x/temp_serializer.c

(serialize_dir_entry,

svn_fs_x__serialize_changes): Same.

Follow up on r1696166: More sizeof changes when using APR hashes.

* subversion/svndumpfilter/svndumpfilter.c

(new_node_record,

adjust_mergeinfo): Take the key size from the key variable.

* subversion/svnrdump/load_editor.c

(set_revision_mapping): Same.

* subversion/tests/libsvn_repos/repos-test.c

(check_locations_info,

test_get_file_revs): Same.

When accessing an APR hash with a non-string key, take the key size from

the key variable instead of its type. This makes the code more robust in

case we want to change the key type in the future.

* subversion/libsvn_client/ra.c

(repos_locations): Take the key size from the key variable.

* subversion/libsvn_repos/log.c

(do_logs): Same.

* subversion/mod_dav_svn/repos.c

(parse_querystring): Same.

* subversion/tests/libsvn_repos/repos-test.c

(file_rev_handler,

verify_locations,

set_expected): Same.

* tools/dev/fsfs-access-map.c

(open_file): Same.

Remove fsfs-improvements development branch after all its changes

got merged to /trunk a long while ago.

* branches/fsfs-improvements: Delete.

Time for some dog-fooding: Run 'svn-mergeinfo-normalizer normalize' on /trunk

and let it remove redundant sub-tree mergeinfo. This is the output of

'svn-mergeinfo-normalizer analyze' for those nodes (tweak to show the

FS paths instead of working copy paths in the "Trying..." lines) :

Removing obsolete branches and redundant mergeinfo, combining revision ranges ...

Trying to elide mergeinfo at path /subversion/trunk/subversion/tests/libsvn_fs_x

elide branch /subversion/branches/fsfs-format7/subversion/tests/libsvn_fs_x

revisions implied in sub-node: 1507730

revisions inoperative in sub-node: 1498103,1498155,1500054,1507729,1507731,1507735-1507736

elide branch /subversion/branches/fsfs-improvements/subversion/tests/libsvn_fs_x

revisions inoperative in sub-node: 1517477-1532582,1532584-1536948,1536950-1545954,1545956-1546836,1546838-1547039

elide branch /subversion/branches/fsx/subversion/tests/libsvn_fs_x

revisions implied in sub-node: 1508077,1509247,1509911

revisions inoperative in sub-node: 1508078-1509246,1509248-1509910,1509912-1509914

elide branch /subversion/branches/verify-keep-going/subversion/tests/libsvn_fs_x

revisions inoperative in sub-node: 1492640-1546001

elide branch /subversion/trunk/subversion/tests/libsvn_fs_x

revisions inoperative in sub-node: 1414756-1509914

All sub-tree mergeinfo has been elided.

Trying to elide mergeinfo at path /subversion/trunk/notes

elide branch /subversion/branches/fsfs-improvements/notes

revisions inoperative in sub-node: 1499981-1504850,1504852-1505659,1505661-1532582,1532584-1536948,1536950-1545954,1545956-1546836,1546838-1547039

All sub-tree mergeinfo has been elided.

* notes

* subversion/tests/libsvn_fs_x

remove sub-tree mergeinfo.

Our handling of mergeinfo produces some odd entries when mergeing back

and forth between branches while adding sub-tree m/i on new nodes.

For instance, m/i on ^/subversion/trunk/subversion/tests/libsvn_fs_x

contains an entry for ^/subversion/trunk/subversion/tests/libsvn_fs_x,

i.e. itself.

This patch makes svn-mergeinfo-normalizer able to elide these if they are

actually redundant.

* tools/client-side/svn-mergeinfo-normalizer/logic.c

(remove_lines): Even if there is no matching parent m/i, a branch entry

may be completely redundant or non-operative.

* tools/client-side/svn-mergeinfo-normalizer/logic.c

(remove_lines): Test for "unusual" ranges first. This allows us to run

more tricks on them later even if there is no parent m/i.

Follow-up to r1696068: Ensure proper evaluation order.

* tools/client-side/svn-mergeinfo-normalizer/logic.c

(show_branch_elision): Add parantheses where they are due.

Make standard svn-mergeinfo-normalizer analysis output (i.e. without -v)

a bit more verbose. If elision is non-trivial, always show what will be

changed to align parent and sub-tree mergeinfo.

While this somewhat blurs the "cannot elide" messages, this sort of output

is what you might want to add to a log message etc. to document why a

non-trivial mergeinfo elision has been possible.

* tools/client-side/svn-mergeinfo-normalizer/logic.c

(show_branch_elision): Add conditions under which to print output.

Complete sub-tree mergeinfo by merging revisions r1504851 and r1505660

from branches/fsfs-improvements. This turned out to be a no-op merge.

* notes

Update svn:mergeinfo.

Finish up message generation and signing for security notifications.

* tools/dist/security/parser.py: Import re.

(Notification.Metadata.__CULPRITS): Renamed from __culprits; all uses updated.

(Notification.Metadata.__init__): Sort patches using the new key member, see below.

(Notification.base_version_keys): New.

(__Part.__init__, __Part.__load_file): Support construction from a string.

(Patch.base_version_key): New property; returns a sortable key for the

base version of the patch.

(Patch.split_version, Patch.join_version): New.

* tools/dist/security/mailer.py: Import re, uuid, hashlib, smtplib, textwrap

and security.parser.

(Mailer.__init__): Accept additional parameters for constructing the

notification message from a message template.

(Mailer.__message_content): New.

(Mailer.__versions, Mailer.__culprits): New; helpers for __message_content.

(Mailer.generate_message): New.

(Mailer.send_mail): New.

(SignedMessage.__init__): Extend comment.

(SignedMessage.__signature): Make sure that the signed content conforms

to requiremens set down in RFC3156 section 5. Whith this change, mail clients

that understand PGP/MIME can actually verify the signed mail.

Complete some sub-tree mergeinfo by --record-only merging revisions

r1532583, r1536949, r1545955 and r1546837 from branches/fsfs-improvements.

Those changes were syncs with /trunk and for some reason did not update

all sub-tree mergeinfo.

* notes

* subversion/libsvn_fs_x

* subversion/tests/libsvn_fs_x

Update svn:mergeinfo.

* tools/client-side/svn-mergeinfo-normalizer/log.c

(svn_min__log_t): Update the docstring. No functional change.

Revert a snafu introduced in r1695879 that causes a segfault.

* tools/client-side/svn-mergeinfo-normalizer/log.c

(internalize): Re-introduce the pool argument for all path strings.

(log_entry_receiver): Update caller.

Delete the svn-mergeinfo-normalizer branch after merging

all its changes to /trunk.

Merge the svn-mergeinfo-normalizer development branch to trunk and remove

the BRANCH-README file. There were no conflicts.

This brings the client-side tool svn-mergeinfo-normalizer to /trunk.

On the svn-mergeinfo-normalizer branch:

Complete documentation. No functional change.

The tool is now ready to be merged to /trunk.

* tools/client-side/svn-mergeinfo-normalizer/logic.c

(): Add missing docstrings and commentary.

On the 'move-tracking-2' branch: More support for top-level (that is,

non-nested) branches.

In the underlying (old) repository, store the versioned content of each

branch hierarchy under a top-level directory named 'top0' for the hierarchy

rooted at top-level branch 0, and so on.

* subversion/include/private/svn_editor3e.h

(svn_editor3__ev3_from_delta_for_commit): Remove the 'base_relpath'

parameter.

* subversion/libsvn_delta/compat3e.c

(ev3_from_delta_baton_t): Remove the 'base_relpath' field.

(get_unsorted_paths): Remove the 'base_relpath' parameter.

(apply_change): Adjust to having no base_relpath.

(branch_get_top_num): New function.

(branch_get_storage_root_rrpath): Prefix the path with 'top<N>/'.

(drive_changes_branch): Adjust to having no base_relpath. Make it appear

that B0 was created (as an empty dir) in r0.

(wrap_fetch_baton_t,

wrap_fetch_func): New wrapper to make it appear that B0 was created (as

an empty dir) in r0.

(svn_editor3_in_memory): Use that wrapper.

(svn_editor3__ev3_from_delta_for_commit): Use that wrapper. Adjust to

having no base_relpath.

(svn_editor3__insert_shims,

svn_editor3__ev3_from_delta_for_update): Track the change to

svn_editor3__ev3_from_delta_for_commit().

* subversion/libsvn_ra/ra_loader.c

(svn_ra_get_commit_editor_ev3): Adjust to having no base_relpath.

* subversion/svnmover/svnmover.c

(wc_create): Ensure the RA session is parented at the repository root, not

at the specified svnmover URL path.

* subversion/tests/cmdline/svnmover_tests.py

(test_svnmover): Don't run 'svn log' if not needed, because the given URL

is now an svnmover-only URL, not a valid URL in the underlying repo.

(basic_svnmover,

nested_replaces): Adjust the expected log paths to begin with '/top0'.

* publish/index.html,

publish/news.html: 1.7.22 is best 1.7 release, not best overall.

* publish/docs/release-notes/release-history.html: Update with recent releases.

8 publish/doap.rdf: Update to current releaess.

* publish/index.html,

publish/news.html: News item for 1.7.22.