Checkout Tools
  • last updated 56 mins ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1696969 is being indexed.

On the 'move-tracking-2' branch: Add an 'svnmover info-wc' subcommand that

prints the WC URL, revision, and base and working branch ids.

* subversion/svnmover/svnmover.c


action_defn): Add an 'info-wc' subcommand.

(execute): Implement it.

On the 'move-tracking-2' branch: Fix a bug in committing a change with

multiple top-level branches.

* subversion/libsvn_delta/compat3e.c

(drive_changes): Rename from drive_changes_branch, and convert all the

branch hierarchies to delta editor actions, but only pass the resulting list

of per-path changes once to the delta editor drive.

(editor3_complete): Call drive_changes() just once, not for each branch


On the 'move-tracking-2' branch: Update BRANCH-README and 'svnmover



Mention some more things to do. Remove non-nested (top-level) branching

from the to-do list, as it is now mainly done.

* subversion/svnmover/svnmover.c

(usage): Update the help text, both to mention the new ^B<branch-id>

syntax and generally.

On the 'move-tracking-2' branch: Implement '^B<branch-id>/path' syntax for

svnmover path inputs.

The full syntax is


When BRANCH-ID is given, this means the relative path RELPATH within the

branch. When branches are nested, this may identify an element in a branch

that is nested inside branch <branch-id>; in case of multiple nesting, the

most deeply nested branch is found.

When the '^B<branch-id>/' prefix is not given, look inside the same branch

id as the WC base branch when a revision number is given, and look inside

the WC working branch when a revision number is not given.

* subversion/include/private/svn_branch.h,


(svn_branch_repos_find_el_rev_by_path_rev): Take an arbitrary branch id

and a branch-relative path instead of a top-level branch number and a

repository-relative path.

(svn_branch_find_nested_branch_element_by_relpath): Rename from

svn_branch_find_nested_branch_element_by_rrpath. Take a branch-relative

path instead of a repository-relative path.

(svn_branch_repos_get_branch_by_id): New.

(svn_branch_repos_find_el_rev_by_id): Simplify by using

svn_branch_repos_get_branch_by_id; this also means it will throw an

error instead of crashing if the branch is not found.

* subversion/libsvn_delta/compat3e.c


drive_changes_branch): Track the change to

svn_branch_repos_find_el_rev_by_path_rev(), by identifying the top-level

branch by its branch-id rather than its top-level branch number.

* subversion/svnmover/svnmover.h

(svnmover_wc_t): Remove the 'top_branch_num' field.

* subversion/svnmover/svnmover.c

(wc_create): Remove initialization of the obsolete 'top_branch_num' field.

(action_t): Add a 'branch_id' field.

(find_el_rev_by_rrpath_rev): Look up the path in a given branch, defaulting

to the base branch when looking in a given revision or the working branch


(execute): Pass on the branch id when looking up a path. Remove a

re-initialization of the obsolete 'top_branch_num' field.

(parse_actions): Parse "^B<branch-id>/path" syntax.

(sub_main): No longer pass the obsolete 'top_branch_num' parameter to


* notes/svnsync.txt: Update auth parameters.
On the 'move-tracking-2' branch: Hide a tiny implementation detail.

* subversion/include/private/svn_branch.h


svn_branch_branch_subtree): Document that when creating a top-level

branch a new id is assigned and the OUTER_EID parameter ignored.

* subversion/libsvn_delta/branch.c

(svn_branch_add_new_branch): When creating a top-level branch, assign it

the next available top-branch number.

* subversion/svnmover/svnmover.c


do_topbranch): Pass 0 for the new top-level branch number instead of

peeking into the implementation.

In the Windows build mark the DLLs of libsvn_ra, libsvn_fs_base, libsvn_fs_fs,

libsvn_fx as to be delayloaded.

Without this patch these DLLs and their dependencies are always loaded from

code that references them. After this patch the code is dynamically loaded

when first necessary. (In all supported compilers this is implemented as

a per DLL load via the import table, so there is no per function call

performance penalty)

The non-shared-library build is unaffected.

* build.conf




libsvn_ra): Mark as delayload.

* build/generator/

(TargetLib): Load property.

* build/generator/

(write): Calculate dependency dlls to be delayloaded.

* build/generator/

(create_dll_target): Copy property to right target.

* build/generator/templates/vcnet_vcxproj.ezt

Extend linker arguments.

On the 'move-tracking-2' branch: A tiny refactoring.

[svnmover.c committed in r1696771, svnmover.h committed in r1696772]

* subversion/svnmover/svnmover.h

(svnmover_wc_version_t): New.

(svnmover_wc_t): Move base and working fields into sub-structures.

* subversion/svnmover/svnmover.c

(wc_checkout): Initialize the new sub-structures.





execute): Adjust references accordingly.

On the 'move-tracking-2' branch: A tiny refactoring.

[svnmover.c committed in r1696771, svnmover.h committed in r1696772]

* subversion/svnmover/svnmover.h

(svnmover_wc_version_t): New.

(svnmover_wc_t): Move base and working fields into sub-structures.

* subversion/svnmover/svnmover.c

(wc_checkout): Initialize the new sub-structures.





execute): Adjust references accordingly.

Make libsvn_fs_util, libsvn_fs_base, libsvn_fs_fs and libsvn_fs_x proper

shared libraries on Windows when shared libraries are enabled in the build,

just like on other platforms. Before this all of them were statically

linked into libsvn_fs and any project that directly used their functions.

This patch automatically detects circular reference problems in this code,

such as the one fixed in r1696695 and will allow delay loading quite a bit

of code from svn and svnadmin in a followup patch.

The 'msvc-force-static' markers on many test projects formalizes that these

projects already depended on internal apis, which were only available because

they were statically linked.

* build.conf




libsvn_fs_util): Properly declare exports of these libraries.

* subversion/libsvn_fs/fs-loader.h

(LIBSVN_FS_FS_H): Use proper unique define.



svn_fs_x__init): Move to separate header files to allow using the export


* subversion/libsvn_fs_base/fs_init.h

* subversion/libsvn_fs_fs/fs_init.h

* subversion/libsvn_fs_x/fs_init.h

New files containing the single entry point of these libraries.

    • ?
    • ?
    • ?
* tools/client-side/

Delete, as it hasn't been updated for 1.8+ and isn't trivial to update.

See the dev@ email thread " script isn't updated for 1.8/1.9"

started on 2015-08-12 at e.g.

<> or


Suggested by: stsp

* STATUS: Nominate r1696695.
* tools/client-side/

Add a note about how this doesn't work with 1.8+, and link to the email thread.

Suggested by: Stefan <luke1410{_AT_}>

Resolve a circular library reference issue in libsvn_fs_x, by using the passed

pointer to a function instead of the function by its name.

Found by: danielsh

James McCoy <>

* subversion/libsvn_fs_x/fs_id.c

(svn_fs_x__id_context_t): Add function pointer.

(fs_cleanup): Store open pointer to allow reopening.

(get_fs): Use function pointer.

* branches/1.9.x/STATUS: Vote for the r1696222 group (tested in a Windows VM).

Update some 'serf' references, to reflect that it is now an Apache

project. Apply some minor tweaks related to removing neon.

Fix a double L2P translation in the FSFS access logging debug feature for

format 7. Instead of the item index, we passed the already translated offset

to the logging function in one case. That results in "Item index FOO too

large in revision BAR" errors when running 'svn log -v'.

Note that this is an opt-in debugging feature for FSFS development only.

This does NOT solve

because the dbg_log_access function is a no-op unless explicitly activated

at compile time.

* subversion/libsvn_fs_fs/cached_data.c

(svn_fs_fs__get_changes): Only in phys. addressing mode, pass the resolved

file offset to the logging function.

* subversion/libsvn_fs_fs/cached_data.c

(dbg_log_access): Even when we are debugging, keep resource usage low

and close file handles asap.

In FSFS, make the access logging code compile and link again.

Note that this is an opt-in debugging feature for FSFS development only.

* subversion/libsvn_fs_fs/cached_data.c

(SVN_FS_FS__LOG_ACCESS): Fix typos in docstring.

(dbg_log_access): Adapt to recent internal API changes.

* subversion/libsvn_ra_serf/util.c

(ssl_convert_serf_failures): When doing array size calculations, refer to

the array object only.

* subversion/libsvn_fs/fs-loader.c

(svn_fs_lock_target_create): Take the size to allocate from the variable

rather than its type. That type is specified

in the same line anyway.

* subversion/libsvn_repos/log.c

(store_search): Same.

* subversion/libsvn_subr/x509parse.c

(x509_get_ext): Same.

* STATUS: Update header since 1.9.x is open for bug fixes.
On the 'move-tracking-2' branch: More support for top-level (that is,

non-nested) branches.

This makes it possible to create a new top-level branch by branching any

existing branch, by means of:

svnmover -B <existing-branch-id> tbranch <path-to-existing-branch>

(The syntax is redundant, as <existing-branch-id> implies



* change svnmover syntax so that paths given are relative to the branch

designated by the "-B" option;

* mkbranch <top-level-branch>

* rmbranch <top-level-branch>

* command-line syntax for addressing things in other top-level branches,

e.g. <path>@[<rev>].[B<branch-id>]

or ^B<branch-id>/path[@rev]

* subversion/include/private/svn_branch.h


svn_branch_branch_subtree): Take the revision root as a separate parameter.

* subversion/libsvn_delta/branch.c

(svn_branch_instantiate_subtree): Adjust calls to track the API changes.


svn_branch_branch_subtree): Take the revision root as a separate parameter.

(svn_branch_revision_root_delete_branch): Also update the list of

top-level branches, in preparation for when we can delete a top-level


(svn_branch_delete_branch_r): Remove a dereference that was redundant for

nested branches but would have broken when deleting a top-level branch.

(svn_branch_repos_find_el_rev_by_path_rev): Error out nicely if asked to

look in a nonexistent top-level branch.

* subversion/libsvn_delta/compat3e.c

(drive_changes_branch): Create the top-level storage node for any newly

created top-level branch.

* subversion/svnmover/svnmover.c


display_diff_of_commit): Rename a baton field, for clarity.

(wc_commit): Support creating a new top-level branch as part of the commit.


action_defn): Add a 'tbranch' subcommand.

(do_topbranch): New.

(execute): Implement the 'tbranch' subcommand.

(find_el_rev_by_rrpath_rev): Adjust doc string now that it can return an

error if the given top-level branch does not exist at the requested rev.




do_branch): Adjust calls to track the API changes.

[Removal of 1.6 docs reverted in r1818079]

Update API and JavaHL docs after 1.9.0

    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
  1. … 1722 more files in changeset.
On the patch-exec branch, sync with trunk@r1696512.
    • ?
    • ?
  1. … 97 more files in changeset.
On the 'move-tracking-2' branch: In svnmover, allow the WC working branch

to be a different branch from its base branch. This will be useful if we want to

enable a WC to commit a top-level branching operation.

Also allow the WC to be rooted at any branch, not necessarily at the top level,

as this makes the code more regular and flexible.

TODO: When looking up PATH@REV inputs, this still uses the top branch number

within revision REV to look up PATH.

* subversion/svnmover/svnmover.h

(svnmover_wc_t): Replace top_branch_num with base and working branch ids.

* subversion/svnmover/svnmover.c

(wc_checkout): Take the base branch id as a parameter. Use base and working

branch ids instead of top branch number.



do_commit): Pass branch ids around.



display_diff_of_commit): When showing a diff of the commit, use branch ids

of the base and working branches instead of assuming a single top-level

branch number suffices for both.

(execute): Adjust accordingly.

(sub_main): Pass a branch id instead of a top branch number to create_wc().

* STATUS: Nominate r1696387.
Expose a few more versions of directly linked dependencies in

'svn --version --verbose', by adding ZLib and Expat versions.

* subversion/include/private/svn_subr_private.h




svn_zlib__runtime_version): New function.

* subversion/libsvn_subr/compress.c


svn_zlib__runtime_version): New function.

* subversion/libsvn_subr/sysinfo.c

(includes): Add svn_subr_private.h.

(svn_sysinfo__linked_libs): Add 2 libraries.

* subversion/libsvn_subr/xml.c


svn_xml__runtime_version): New functions.

On the 'move-tracking-2' branch: Remove 'svn_branch_copy_subtree' from the

public API, because 'svn_branch_add_subtree' is a better, more general form

of the same operation.

* subversion/include/private/svn_branch.h

(svn_branch_copy_subtree): Move and rename...

* subversion/libsvn_delta/compat3e.c

(copy_subtree): ... to here.

(editor3_copy_tree): Track the rename.

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,


(svn_branch_branch): Move and rename...

* subversion/svnmover/svnmover.c

(do_branch): ... to here.

(execute): Track the rename.