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

[PATCH] Mergeinfo Elision

From: Paul Burba <pburba_at_collab.net>
Date: 2007-04-14 18:16:21 CEST

Attached is a patch implmenting mergeinfo elision during svn merge,
update, and switch operations. It passes the 6-way and JavaHL tests on
Win32 and I think it's ready for prime time, but if anyone has some time
to take a look I'd appreciate it.

Thanks,

Paul B.

[[[
Implement svn:mergeinfo elision for svn merge, update, and switch.

* subversion/libsvn_client/client.h
  (svn_client__elide_mergeinfo): New. Elides mergeinfo on a target WC
path
  to it's nearest ancestor with equivalent mergeinfo.

* subversion/libsvn_client/merge.c
  (get_wc_merge_info): Add arguments to restrict how far up the WC to
look
  for inherited mergeinfo and whether to look *only* for inherited
mergeinfo.
  Add reference argument to record the path walked to find inherited
info.
  (get_wc_or_repos_merge_info): Update call to get_wc_merge_info().
  (mergeinfo_elides): New. A wrapper around svn_mergeinfo_diff() that
  understands mergeinfo equivalence rather than absolute equality.
  (elide_children): New. Iterate through array of target path's children
  with mergeinfo and elide only the path's immediate children.
  (svn_client__elide_mergeinfo): New.
  (do_merge, do_single_file_merge):
  (svn_client_merge3, svn_client_merge_peg3):

* subversion/libsvn_client/switch.c (svn_client__switch_internal):
* subversion/libsvn_client/update.c (svn_client__update_internal):
  Upon completion of switch/update perform post-order traversal of
target's
  children with mergeinfo, checking each for elidability and finally
eliding
  the target itself if applicable.

* subversion/tests/cmdline/merge_tests.py
  (avoid_repeated_merge_on_subtree_with_merge_info,
  obey_reporter_api_semantics_while_doing_subtree_merges): Tweak
expected
  status and properties to account for svn:mergeinfo elision.
  (test_list): Remove XFail from mergeinfo_elision test.

* subversion/tests/cmdline/switch_tests.py
  (test_list): Remove XFail from mergeinfo_switch_elision test.

* subversion/tests/cmdline/update_tests.py
  (test_list): Remove XFail from mergeinfo_update_elision test.
]]]

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Sat Apr 14 18:17:08 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.