[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1424469 - in /subversion/trunk/subversion: libsvn_client/repos_diff.c tests/cmdline/merge_reintegrate_tests.py tests/cmdline/merge_tests.py tests/cmdline/merge_tree_conflict_tests.py

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Thu, 20 Dec 2012 14:39:10 +0000 (GMT)

+1 on this patch.  All looks good, just one minor point below.

Bert Huijben wrote:

> URL: http://svn.apache.org/viewvc?rev=1424469&view=rev
> Log:
> In the repository-repository diff handler: Don't retrieve pristine
> properties
> when we already know that there are no differences to report on them.
>
> By checking whether we really need the properties we avoid about 1000 ra calls
> over running our test suite (ra local). This also resolves many spurious merge
> changes that just change entry props.
>
> On top of that stop reporting entry prop only changes as a file/directory
> change to avoid doing unneeded work in the merge and diff handling.
>
> This fixes some issues identified when the merge code was updated to do a
> better obstruction detection, as originally we just skipped these non-changes
> there in the merge code.
>
> It is possible that this obscures some tree conflicts which were identified by
> entry prop changes that should have been detected by the real change down the
> tree (which might have been skipped).
>
> * subversion/libsvn_client/repos_diff.c
>   (dir_baton,
>   file_baton): Add has_propchange boolean.
>   (close_file,
>   close_directory): Only retrieve the pristine properties if we may be going
>     to use them in a callback.
>
>   (change_file_prop,
>   change_dir_prop): Detect if we have a real property change and if we have
>     store that information.
>
> * subversion/tests/cmdline/merge_reintegrate_tests.py
>   (reintegrate_on_shallow_wc): Don't assume to get spurious change event.
>
> * subversion/tests/cmdline/merge_tests.py
>   (merge_to_sparse_directories): Don't expect entry prop change only skips.
>
> * subversion/tests/cmdline/merge_tree_conflict_tests.py
>   (tree_conflicts_merge_edit_onto_missing,
>   tree_conflicts_merge_del_onto_missing):
>     Remove some unexpected change notifications.

> Modified: subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py
> ==============================================================================
> @@ -825,15 +825,6 @@ def reintegrate_on_shallow_wc(sbox):
>                         'Some more work on the A_COPY branch', wc_dir)
>   # Reuse the same expectations as the prior merge, except that
>   # non-inheritable mergeinfo is set on the root of the missing subtree...

You deleted the code that "except that..." refers to.  (It was expecting non-inheritable mergeinfo '/A_COPY/D:2-4*'.)

> -  expected_mergeinfo_output.add({
> -      'D' : Item(status=' U')
> -      })
> -  expected_A_status.tweak('D', status=' M')
> -  expected_A_disk.tweak('D', props={SVN_PROP_MERGEINFO :
> '/A_COPY/D:2-4*'})
> -  # ... a depth-restricted item is skipped ...
> -  expected_A_skip.add({
> -      'D/H' : Item()
> -  })
>   # ... and the mergeinfo on the target root includes the latest rev on the
> branch.
>   expected_A_disk.tweak('', props={SVN_PROP_MERGEINFO :
> '/A_COPY:2-4'})
>   svntest.actions.run_and_verify_merge(A_path, None, None,

- Julian
Received on 2012-12-20 15:39:46 CET

This is an archived mail posted to the Subversion Dev mailing list.