subversion

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

Changeset 1345748 is being indexed.

Make svn_wc__db_read_kind() handle processing 'hidden', just like

svn_wc_read_kind(). This allows making the lock processing to disallow

locking hidden directories, which in turn fixes the

update_with_parents_and_exclude() test.

* subversion/libsvn_wc/adm_crawler.c

(svn_wc__internal_transmit_prop_deltas): Update caller.

* subversion/libsvn_wc/adm_ops.c

(svn_wc__process_committed_internal): Update caller.

* subversion/libsvn_wc/deprecated.c

(svn_wc_add3): Update caller.

* subversion/libsvn_wc/diff_local.c

(svn_wc_diff6): Update caller.

* subversion/libsvn_wc/lock.c

(svn_wc_adm_retrieve,

svn_wc_adm_probe_retrieve): Update caller.

(svn_wc__acquire_write_lock): Update caller. This fixes the update test.

* subversion/libsvn_wc/util.c

(svn_wc__fetch_kind_func): Update caller.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_read_kind): Add argument and retrieve and process status if hidden

nodes shouldn't show up as files or directories.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_read_kind): Update prototype and argument documentation.

Avoid one database query per node on svn propset by just checking for 'hidden'

on the root node. The node walker already tests for hidden nodes for all

descendants.

* subversion/libsvn_wc/props.c

(do_propset): Remove check for invalid statee. Move this task to its caller.

(svn_wc_prop_set4): Check for invalid statee here, instead of just fetching

the node kind. Use the cheap case if the target is not a directory

Remove a cast that is both ugly, and apparently illegal in g++ 4.7.

* subversion/libsvn_auth_kwallet/kwallet.cpp

(q_argc, q_argv): New.

(kwallet_password_get, kwallet_password_set):

Use q_argc and q_argv instead of trying to open-code them.

Remove an unneeded wc_db call in the conflict resolver code. This was just used

to calculate a parent path, that was not really used.

* subversion/libsvn_wc/conflicts.c

(resolve_conflict_on_node): Don't calculate the conflict dir, as we no longer

need that. Joining an absolute temp path to this directory just leaves the

absolute temp path.

Avoid a wc_db query in the status -u processing, used to retrieve the local

node kind. We already have this value cached in the status struct, so we can

just use that instead.

* subversion/libsvn_wc/status.c

(tweak_statushash): Remove unneeded argument and just copy the local kind.

(delete_entry,

close_directory,

close_file): Update caller.

* subversion/tests/cmdline/update_tests.py

(update_with_parents_and_exclude): Add new XFail test on mixing --parents

and exclude.

(test_list): Add update_with_parents_and_exclude.

* STATUS: Move r1345482 to approved
* STATUS: Cast some votes.
* STATUS: Cast gstein's +1 from email.
* notes/ev2-callbacks-template.c

* notes/directory-index/dirindex.py

* notes/directory-index/logimport.py

* subversion/libsvn_delta/deprecated.c

* subversion/libsvn_ra/editor.c

* subversion/libsvn_fs/editor.c

* subversion/include/private/svn_delta_private.h

* tools/dev/histogram.py

* tools/dev/gdb-py/svndbg/printers.py

* tools/dev/gdb-py/svndbg/__init__.py

* tools/dev/sbox-ospath.py

* tools/client-side/mergeinfo-sanitizer.py

* tools/server-side/svnpubsub/commit-hook.py

* tools/server-side/svnpubsub/testserver.py

* tools/server-side/svnpubsub/svnwcsub.py

* tools/server-side/svnpubsub/daemonize.py

* tools/server-side/svnpubsub/watcher.py

* tools/server-side/svnpubsub/svntweet.py

* tools/server-side/svnpubsub/svnpubsub/client.py

* tools/server-side/svnpubsub/svnpubsub/__init__.py

* tools/server-side/svnpubsub/svnpubsub/server.py

* tools/server-side/svnpredumpfilter.py

(svn:eol-style): Set to native for *.c, *.h, *.py, *.java.

  1. … 7 more files in changeset.
* STATUS: Nominate r1345482
* subversion/libsvn_wc/tree_conflicts.c

(read_node_version_info): Avoid a canonicalization assertion, by properly

canonicalizing a url that was just canonical with the <= 1.6 rules.

Found by: steveking

* svntest-test.cmd

Use 127.0.0.1 instead of localhost to avoid a dns lookup and

to avoid future ipv6 weirdness.

When using svn_wc__db_scan_deletion without retrieving moved_to information

use a cheaper variant of the deletion query to avoid an additional table join.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_DELETION_INFO): Duplicated and simplified. Renumbered the last

two columns. Add LIMIT and subquery instead of join for single result

query.

(STMT_SELECT_DELETION_INFO_SCAN): New query based on the original

STMT_SELECT_DELETION_INFO.

* subversion/libsvn_wc/wc_db.c

(get_moved_to): Update column number.

(scan_deletion_txn): Fetch statement once and just reuse it after resetting.

Choose the most efficient statement and update column references.

* subversion/libsvn_wc/wc-queries.sql

(STMT_INSERT_WORKING_NODE_COPY_FROM,

STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH): Use the nodes table directly in

the inner query, as we already know the op-depth and the reason we query

is that we don't want to accidentally remove a moved_to marker.

* subversion/libsvn_wc/copy.c

(includes): Remove several unused include files.

(copy_versioned_file): The target of a copy (when versioned) is a local

addition, so should never be read only. It is way to expensive to check

if it was really svn:needs-lock. (7.5% of the tree copy time was spend on

these two transactions per file).

Make the result of calling status on an unversioned directory inside a working

copy easier to understand.

(This is a followup to r1340318)

* subversion/libsvn_wc/status.c

(svn_wc__internal_walk_status): Avoid an unneeded db call when there is no

node. Provide a better error message when a node and its parent are not

versioned, but are both below a working copy.

* subversion/tests/cmdline/stat_tests.py

(status_unversioned_dir): Update expected result to handle testing in and

out of tree.

Following up on r1345317, move the pristine transfer between working copies

in the wc_db pristine api, to allow using just two sqlite locks instead of

the four that it used to take.

* subversion/libsvn_wc/copy.c

(copy_pristine_text_if_necessary): Remove function.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_pristine_transfer): New function.

* subversion/libsvn_wc/wc_db_pristine.c

(pristine_transfer_baton): New struct.

(pristine_transfer): New function.

(svn_wc__db_pristine_transfer): New function.

Move towards getting rid of svn_ra_serf__handle_discard_body(). We

don't need a special response handler since the core handler supports

dicarding bodies (with the HANDLER->DISCARD_BODY flag).

Two callers are in util.c: only one caller used the server_error

stuff, so move the logic there. The other caller used just the simple

drain_bucket() call, so it now calls it directly.

The remaining caller in update.c can likely switch over easily, but is

not considered in this revision.

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__server_error_t): remove INIT and HAS_XML_RESPONSE

fields, as they are no longer needed.

* subversion/libsvn_ra_serf/util.c:

(begin_error_parsing): don't worry about initializing INIT and

HAS_XML_RESPONSE. they are a given now, and have been removed.

(svn_ra_serf__handle_discard_body): remove the entire section

dealing with a SERVER_ERR in the baton. only one caller ever did

that, and it now handles the server error on its own.

(handle_server_error): lift in all the SERVER_ERR processing from

the above handle_discard_body() function. rejigger for a local

variable and to adjust some of the conditional blocks for clarity.

this function is still conceptually wrong, but this helps to

isolate the wrongness.

(svn_ra_serf__handle_xml_parser): just call drain_bucket() rather

than the response handler which wraps that call.

Retrieving information on what to copy during 'svn cp PATH1 PATH2' per

directory instead of per node to greatly reduce the number of sqlite

transactions.

For copies within a single working copy this reduces the number of

transactions with about three per file, two per file if we are copying

between working copies.

For a 'svn cp 1.7.x 1.7.x-copied' from a sparse ^/subversion/branches checkout

this about halves the time needed to copy (70 sec -> 33 sec) while profiling

for me.

* subversion/libsvn_wc/copy.c

(copy_versioned_file): Replace the checksum argument with a

copy_pristine_file boolean that just tells if copying is necessary.

Retrieve checksum if necessary.

(copy_versioned_dir): Add within_one_wc argument. Don't run the wc if we

didn't install items. Read the info for the children instead of just the

names to avoid a read_info for every node and read_base for most files.

Use within_one_dir to tell copy_versioned_file if a pristine file must be

copied. Update recursive call.

(copy_or_move): Determine if we are copying within a single working copy and

pass that information.

Some of the symmetric merge tests fail in a release build so mark them WIMP.

* subversion/tests/cmdline/merge_symmetric_tests.py

(merge_to_and_fro_1_1, merge_to_and_fro_1_2,

merge_to_and_fro_2_1, merge_to_and_fro_2_2,

merge_to_and_fro_3_1, merge_to_and_fro_3_2,

merge_to_and_fro_4_1, merge_to_and_fro_4_2): Mark WIMP.

Avoid creating another ra session in most code paths in the merge code. At the

same time fix accidentally opening the ra session with a non read-only working

copy.

This patch relies on the ra.c fix in r1345143, as before this patch we

sometimes opened a working copy that would try to update the dav cache.

* subversion/libsvn_client/merge.c

(ensure_ra_session_url): Use svn_client_open_ra_session() as we only use the

standard options.

(do_merge): Accept a ra_session to help avoiding creating another session.

(merge_cousins_and_supplement_mergeinfo,

merge_locked): Pass session.

(merge_peg_locked): Pass session. Use session pool as scratch pool for local

work.

(do_symmetric_merge_locked): Pass NULL for session.

* subversion/libsvn_client/ra.c

(svn_client__ra_session_from_path2): If we don't have a base abspath, don't

ever try to set wcprops as that will just cause segfaults.

* subversion/libsvn_subr/string.c (COPY_TWO_BYTES): Remove semi-colon
Update references to Visual Studio 11 to Visual Studio 2012.

* gen-make.py

Update documentation

* build/generator/gen_win.py

Accept 2012 argument and provide the right text for the .sln file

JavaHL: Make handling of expr and whitespace after ret_val parameters

consistent accross macros

[ in subversion/bindings/javahl/native ]

* JNIUtil.h

(SVN_JNI_NULL_PTR_EX): parenthesize expr for safety

(SVN_JNI_NULL_PTR_EX, SVN_JNI_ERR, POP_AND_RETURN): eliminate unnecessary

whitespace after ret_val

Approved by: gstein

Merge r1344977 from the javahl-ra branch.

Approved by: gstein

JavaHL: Added CPPADDR_NULL_PTR macro to reduce amount of duplicate code

checking C++ pointer extracted from the java object

[ in subversion/bindings/javahl/native ]

* JNIUtil.h

(CPPADDR_NULL_PTR): New macro to test for NULL pointer and raise java

exception if necessary

Approved by: gstein

On the ev2-export branch:

Bring up-to-date with trunk.

  1. … 61 more files in changeset.
* tools/dev/mergegraph/mergegraph.py,

tools/dev/mergegraph/save_as_sh.py

Put doc string close-quotes on a line by themselves, as per PEP-8.

Suggested by: gstein