Hi!
I have a demo patch that tries to solve problem initially discussed at
http://svn.haxx.se/dev/archive-2008-08/0793.shtml
[[
1) Merge touches all files with explicit mergeinfo even if content of
these files isn't touched by merged revisions. This can result in
inability to commit changes after merge.
...
]]
This patch (or its improved version) can:
- avoid most of the pain with unrelated mergeinfo changes. This problem
was discussed at http://svn.haxx.se/dev/archive-2008-09/0008.shtml
and other threads.
- solve the 'commit-is-prohibited-after-merge' bug described at
http://svn.haxx.se/dev/archive-2008-08/0793.shtml
- significantly improve merge performance
The logic and implementation of the patch is as simple as possible:
- we record (modify/elide) mergeinfo only for paths, that are
ancestors of paths that are somehow touched by merge. Looks like it's
absolutely unnecessary to modify mergeinfo for any other paths since
these paths aren't anyhow touched by performed merge operation;
- current implementation is quite naive. We get the list of touched
paths from the notification_receiver_baton_t.
It's most likely incorrect but we can find the better source of
information about touched paths;
- a lot of merge_tests.py tests are falling with the proposed demo
patch. It's because these tests relies on the
fact that unrelated mergeinfo will be modified/elided after merge.
It can be easily fixed when the whole concept wioll be approved.
I want to get the following feedback:
- is the whole idea correct?
- what is the right source to get the list of paths that are somehow
touched by merge operation?
Thanks!
--
With best regards,
Danil Shopyrin
VisualSVN Team
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-12 19:34:03 CEST