[SVN] Spurious changes to lots of files....

I'm not picking on anyone in particular here, just noticing that some stuff that really shouldn't have changed is quite often getting "touched" due to changes to svn:mergeinfo. For example, if I look at the revision log for boost/config.hpp in the release branch I see: Revision: 77591 Author: eric_niebler Date: 27 March 2012 20:28:30 Message: merge [77416] from trunk, fixes #6131, fixes #6455 Revision: 77589 Author: eric_niebler Date: 27 March 2012 19:53:50 Message: merge [77417],[77437],[77422],[77587] from trunk ---- Revision: 77447 Author: eric_niebler Date: 21 March 2012 04:22:38 Message: merge [77446] from trunk ---- Revision: 77420 Author: eric_niebler Date: 19 March 2012 21:33:14 Message: merge [77419] from trunk ---- Revision: 77413 Author: eric_niebler Date: 19 March 2012 20:26:44 Message: merge [77412] from trunk, fixes #6702 ---- Revision: 77411 Author: eric_niebler Date: 19 March 2012 20:07:11 Message: merge [77320] from trunk ---- Revision: 76784 Author: eric_niebler Date: 29 January 2012 21:58:13 Message: merge [76637] from trunk ---- Revision: 76536 Author: jewillco Date: 15 January 2012 23:52:45 Message: Merged r75066, r75067, r75124, r75140, r75165, r75861, r75862, r75863, r75878, r75906, r75970, r75973, r75974, and r76394 from trunk ---- Revision: 76535 Author: jewillco Date: 15 January 2012 23:32:09 Message: Merged r76050, r75547, r75891, r76049, r76083, and r76439 from trunk (reverse_graph bug fixes and fix for #6293); refs #6293 ---- Revision: 76480 Author: eric_niebler Date: 14 January 2012 05:21:11 Message: merge [76479] from trunk ---- Before finally we get to a "real" change: Revision: 76339 Author: johnmaddock Date: 07 January 2012 17:29:04 Message: Merge config changes from Trunk. ---- If we pick out the latest of the changes above we see that a huge number of files have been "touched" in this way: Revision: 77591 Author: eric_niebler Date: 27 March 2012 20:28:30 Message: merge [77416] from trunk, fixes #6131, fixes #6455 ---- Modified : /branches/release Modified : /branches/release/INSTALL Modified : /branches/release/Jamroot Modified : /branches/release/LICENSE_1_0.txt Modified : /branches/release/boost Modified : /branches/release/boost/algorithm/string Modified : /branches/release/boost/algorithm/string/detail/case_conv.hpp Modified : /branches/release/boost/algorithm/string/detail/classification.hpp Modified : /branches/release/boost/array.hpp Modified : /branches/release/boost/bimap Modified : /branches/release/boost/concept_check.hpp Modified : /branches/release/boost/config Modified : /branches/release/boost/config.hpp Modified : /branches/release/boost/cregex.hpp Modified : /branches/release/boost/cstdint.hpp Modified : /branches/release/boost/current_function.hpp Modified : /branches/release/boost/date_time/c_time.hpp Modified : /branches/release/boost/date_time/date_formatting.hpp Modified : /branches/release/boost/date_time/filetime_functions.hpp Modified : /branches/release/boost/date_time/gregorian_calendar.ipp Modified : /branches/release/boost/date_time/posix_time/time_serialize.hpp Modified : /branches/release/boost/date_time/strings_from_facet.hpp Modified : /branches/release/boost/date_time/time_facet.hpp Modified : /branches/release/boost/date_time/tz_db_base.hpp Modified : /branches/release/boost/detail Modified : /branches/release/boost/detail/fenv.hpp Modified : /branches/release/boost/detail/interlocked.hpp Modified : /branches/release/boost/dynamic_bitset/dynamic_bitset.hpp Modified : /branches/release/boost/filesystem Modified : /branches/release/boost/filesystem.hpp Modified : /branches/release/boost/foreach.hpp Modified : /branches/release/boost/foreach_fwd.hpp Modified : /branches/release/boost/function Modified : /branches/release/boost/function/function_template.hpp Modified : /branches/release/boost/functional Modified : /branches/release/boost/fusion Modified : /branches/release/boost/geometry Modified : /branches/release/boost/geometry/algorithms Modified : /branches/release/boost/geometry/arithmetic Modified : /branches/release/boost/geometry/core Modified : /branches/release/boost/geometry/domains Modified : /branches/release/boost/geometry/geometries Modified : /branches/release/boost/geometry/geometry.hpp Modified : /branches/release/boost/geometry/io Modified : /branches/release/boost/geometry/io/dsv Modified : /branches/release/boost/geometry/iterators Modified : /branches/release/boost/geometry/multi Modified : /branches/release/boost/geometry/policies Modified : /branches/release/boost/geometry/strategies Modified : /branches/release/boost/geometry/util Modified : /branches/release/boost/geometry/views Modified : /branches/release/boost/gil Modified : /branches/release/boost/graph Modified : /branches/release/boost/heap Modified : /branches/release/boost/icl Modified : /branches/release/boost/integer Modified : /branches/release/boost/integer.hpp Modified : /branches/release/boost/integer_fwd.hpp Modified : /branches/release/boost/integer_traits.hpp Modified : /branches/release/boost/interprocess Modified : /branches/release/boost/intrusive Modified : /branches/release/boost/io Modified : /branches/release/boost/iostreams Modified : /branches/release/boost/iterator Modified : /branches/release/boost/iterator/iterator_facade.hpp Modified : /branches/release/boost/locale Modified : /branches/release/boost/locale.hpp Modified : /branches/release/boost/math Modified : /branches/release/boost/math_fwd.hpp Modified : /branches/release/boost/msm Modified : /branches/release/boost/msm/active_state_switching_policies.hpp Modified : /branches/release/boost/msm/back Modified : /branches/release/boost/msm/back/args.hpp Modified : /branches/release/boost/msm/back/bind_helpers.hpp Modified : /branches/release/boost/msm/back/common_types.hpp Modified : /branches/release/boost/msm/back/copy_policies.hpp Modified : /branches/release/boost/msm/back/default_compile_policy.hpp Modified : /branches/release/boost/msm/back/dispatch_table.hpp Modified : /branches/release/boost/msm/back/favor_compile_time.hpp Modified : /branches/release/boost/msm/back/fold_to_list.hpp Modified : /branches/release/boost/msm/back/history_policies.hpp Modified : /branches/release/boost/msm/back/metafunctions.hpp Modified : /branches/release/boost/msm/back/mpl_graph_fsm_check.hpp Modified : /branches/release/boost/msm/back/no_fsm_check.hpp Modified : /branches/release/boost/msm/back/queue_container_circular.hpp Modified : /branches/release/boost/msm/back/queue_container_deque.hpp Modified : /branches/release/boost/msm/back/state_machine.hpp Modified : /branches/release/boost/msm/back/tools.hpp Modified : /branches/release/boost/msm/common.hpp Modified : /branches/release/boost/msm/front Modified : /branches/release/boost/msm/front/common_states.hpp Modified : /branches/release/boost/msm/front/completion_event.hpp Modified : /branches/release/boost/msm/front/detail Modified : /branches/release/boost/msm/front/detail/common_states.hpp Modified : /branches/release/boost/msm/front/detail/row2_helper.hpp Modified : /branches/release/boost/msm/front/euml Modified : /branches/release/boost/msm/front/euml/algorithm.hpp Modified : /branches/release/boost/msm/front/euml/common.hpp Modified : /branches/release/boost/msm/front/euml/container.hpp Modified : /branches/release/boost/msm/front/euml/euml.hpp Modified : /branches/release/boost/msm/front/euml/euml_typeof.hpp Modified : /branches/release/boost/msm/front/euml/guard_grammar.hpp Modified : /branches/release/boost/msm/front/euml/iteration.hpp Modified : /branches/release/boost/msm/front/euml/operator.hpp Modified : /branches/release/boost/msm/front/euml/phoenix_placeholders.hpp Modified : /branches/release/boost/msm/front/euml/querying.hpp Modified : /branches/release/boost/msm/front/euml/state_grammar.hpp Modified : /branches/release/boost/msm/front/euml/stl.hpp Modified : /branches/release/boost/msm/front/euml/stt_grammar.hpp Modified : /branches/release/boost/msm/front/euml/transformation.hpp Modified : /branches/release/boost/msm/front/functor_row.hpp Modified : /branches/release/boost/msm/front/internal_row.hpp Modified : /branches/release/boost/msm/front/row2.hpp Modified : /branches/release/boost/msm/front/state_machine_def.hpp Modified : /branches/release/boost/msm/front/states.hpp Modified : /branches/release/boost/msm/mpl_graph Modified : /branches/release/boost/msm/msm_grammar.hpp Modified : /branches/release/boost/msm/proto_config.hpp Modified : /branches/release/boost/msm/row_tags.hpp Modified : /branches/release/boost/numeric/ublas Modified : /branches/release/boost/numeric/ublas/functional.hpp Modified : /branches/release/boost/pool Modified : /branches/release/boost/preprocessor Modified : /branches/release/boost/program_options Modified : /branches/release/boost/program_options/detail/parsers.hpp Modified : /branches/release/boost/program_options/parsers.hpp Modified : /branches/release/boost/property_tree Modified : /branches/release/boost/python Modified : /branches/release/boost/range Modified : /branches/release/boost/regex Modified : /branches/release/boost/regex.h Modified : /branches/release/boost/regex.hpp Modified : /branches/release/boost/regex_fwd.hpp Modified : /branches/release/boost/signals Modified : /branches/release/boost/signals2 Modified : /branches/release/boost/signals2.hpp Modified : /branches/release/boost/spirit Modified : /branches/release/boost/spirit/home Modified : /branches/release/boost/spirit/home/karma Modified : /branches/release/boost/spirit/home/support/attributes.hpp Modified : /branches/release/boost/statechart Modified : /branches/release/boost/static_assert.hpp Modified : /branches/release/boost/system Modified : /branches/release/boost/thread Modified : /branches/release/boost/thread.hpp Modified : /branches/release/boost/timer.hpp Modified : /branches/release/boost/token_functions.hpp Modified : /branches/release/boost/tr1 Modified : /branches/release/boost/type_traits Modified : /branches/release/boost/type_traits.hpp Modified : /branches/release/boost/typeof/message.hpp Modified : /branches/release/boost/typeof/register_functions.hpp Modified : /branches/release/boost/typeof/register_functions_iterate.hpp Modified : /branches/release/boost/typeof/typeof.hpp Modified : /branches/release/boost/typeof/unsupported.hpp Modified : /branches/release/boost/unordered Modified : /branches/release/boost/utility Modified : /branches/release/boost/utility/value_init.hpp Modified : /branches/release/boost/uuid Modified : /branches/release/boost/variant Modified : /branches/release/boost/version.hpp Modified : /branches/release/boost/wave Modified : /branches/release/boost/xpressive Modified : /branches/release/boost-build.jam Modified : /branches/release/boost.css Modified : /branches/release/boost.png Modified : /branches/release/boostcpp.jam Modified : /branches/release/bootstrap.bat Modified : /branches/release/bootstrap.sh Modified : /branches/release/doc Modified : /branches/release/index.htm Modified : /branches/release/index.html Modified : /branches/release/libs Modified : /branches/release/libs/algorithm/minmax/index.html Modified : /branches/release/libs/algorithm/string Modified : /branches/release/libs/algorithm/string/doc/Jamfile.v2 Modified : /branches/release/libs/array Modified : /branches/release/libs/array/test/array0.cpp Modified : /branches/release/libs/array/test/array2.cpp Modified : /branches/release/libs/array/test/array6.cpp Modified : /branches/release/libs/bimap Modified : /branches/release/libs/config Modified : /branches/release/libs/date_time Modified : /branches/release/libs/date_time/data/date_time_zonespec.csv Modified : /branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp Modified : /branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp Modified : /branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp Modified : /branches/release/libs/date_time/example/gregorian/month_add.cpp Modified : /branches/release/libs/date_time/example/local_time/flight.cpp Modified : /branches/release/libs/date_time/example/local_time/local_date_time.cpp Modified : /branches/release/libs/date_time/example/posix_time/print_hours.cpp Modified : /branches/release/libs/date_time/example/posix_time/time_math.cpp Modified : /branches/release/libs/date_time/example/tutorial/io_tutorial.cpp Modified : /branches/release/libs/date_time/test/posix_time/testtime_facet.cpp Modified : /branches/release/libs/date_time/test/posix_time/testtime_input_facet.cpp Modified : /branches/release/libs/date_time/xmldoc/date_class.xml Modified : /branches/release/libs/date_time/xmldoc/usage_examples.xml Modified : /branches/release/libs/detail Modified : /branches/release/libs/filesystem Modified : /branches/release/libs/function Modified : /branches/release/libs/functional Modified : /branches/release/libs/fusion Modified : /branches/release/libs/geometry Modified : /branches/release/libs/geometry/doc Modified : /branches/release/libs/geometry/doc/Jamfile.v2 Modified : /branches/release/libs/geometry/doc/about_documentation.qbk Modified : /branches/release/libs/geometry/doc/acknowledgments.qbk Modified : /branches/release/libs/geometry/doc/compiling.qbk Modified : /branches/release/libs/geometry/doc/concept Modified : /branches/release/libs/geometry/doc/copyright_note_policy.txt Modified : /branches/release/libs/geometry/doc/design_rationale.qbk Modified : /branches/release/libs/geometry/doc/doxy Modified : /branches/release/libs/geometry/doc/generated Modified : /branches/release/libs/geometry/doc/geometry.qbk Modified : /branches/release/libs/geometry/doc/html Modified : /branches/release/libs/geometry/doc/imports.qbk Modified : /branches/release/libs/geometry/doc/introduction.qbk Modified : /branches/release/libs/geometry/doc/make_qbk.py Modified : /branches/release/libs/geometry/doc/matrix.qbk Modified : /branches/release/libs/geometry/doc/quickref.xml Modified : /branches/release/libs/geometry/doc/quickstart.qbk Modified : /branches/release/libs/geometry/doc/readme.txt Modified : /branches/release/libs/geometry/doc/reference Modified : /branches/release/libs/geometry/doc/reference.qbk Modified : /branches/release/libs/geometry/doc/release_notes.qbk Modified : /branches/release/libs/geometry/doc/src Modified : /branches/release/libs/geometry/example Modified : /branches/release/libs/geometry/index.html Modified : /branches/release/libs/geometry/test Modified : /branches/release/libs/graph/doc Modified : /branches/release/libs/graph_parallel Modified : /branches/release/libs/heap Modified : /branches/release/libs/icl Modified : /branches/release/libs/icl/doc Modified : /branches/release/libs/icl/doc/html Modified : /branches/release/libs/icl/doc/html/header/boost/icl Modified : /branches/release/libs/icl/test Modified : /branches/release/libs/icl/test/test_doc_code_ Modified : /branches/release/libs/integer Modified : /branches/release/libs/interprocess Modified : /branches/release/libs/intrusive Modified : /branches/release/libs/io Modified : /branches/release/libs/io/doc Modified : /branches/release/libs/iostreams Modified : /branches/release/libs/iterator Modified : /branches/release/libs/libraries.htm Modified : /branches/release/libs/locale Modified : /branches/release/libs/locale/src Modified : /branches/release/libs/maintainers.txt Modified : /branches/release/libs/math Modified : /branches/release/libs/math/doc/sf_and_dist/faq.qbk Modified : /branches/release/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html Modified : /branches/release/libs/math/test/s_.ipp Modified : /branches/release/libs/mpi/build Modified : /branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html Modified : /branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html Modified : /branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html Modified : /branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html Modified : /branches/release/libs/mpl/doc/refmanual/data-types-concepts.html Modified : /branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html Modified : /branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html Modified : /branches/release/libs/mpl/doc/refmanual/inserter-class.html Modified : /branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html Modified : /branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html Modified : /branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst Modified : /branches/release/libs/msm Modified : /branches/release/libs/numeric/ublas Modified : /branches/release/libs/numeric/ublas/doc Modified : /branches/release/libs/parameter/doc/html/index.html Modified : /branches/release/libs/phoenix/doc/basics.qbk Modified : /branches/release/libs/phoenix/doc/examples/extending_actors.qbk Modified : /branches/release/libs/phoenix/doc/organisation.qbk Modified : /branches/release/libs/pool Modified : /branches/release/libs/preprocessor Modified : /branches/release/libs/program_options Modified : /branches/release/libs/program_options/test/parsers_test.cpp Modified : /branches/release/libs/property_tree Modified : /branches/release/libs/python Modified : /branches/release/libs/range Modified : /branches/release/libs/regex Modified : /branches/release/libs/signals Modified : /branches/release/libs/signals2 Modified : /branches/release/libs/signals2/doc Modified : /branches/release/libs/spirit Modified : /branches/release/libs/spirit/classic/example Modified : /branches/release/libs/spirit/doc Modified : /branches/release/libs/spirit/example Modified : /branches/release/libs/spirit/phoenix Modified : /branches/release/libs/spirit/test Modified : /branches/release/libs/spirit/test/qi/optional.cpp Modified : /branches/release/libs/statechart Modified : /branches/release/libs/static_assert Modified : /branches/release/libs/system Modified : /branches/release/libs/thread Modified : /branches/release/libs/thread/test Modified : /branches/release/libs/timer Modified : /branches/release/libs/tr1 Modified : /branches/release/libs/type_traits Modified : /branches/release/libs/typeof/doc/typeof.qbk Modified : /branches/release/libs/unordered Modified : /branches/release/libs/utility Modified : /branches/release/libs/utility/assert.html Modified : /branches/release/libs/utility/assert_test.cpp Modified : /branches/release/libs/utility/swap/test/std_bitset.cpp Modified : /branches/release/libs/utility/swap.html Modified : /branches/release/libs/utility/value_init.htm Modified : /branches/release/libs/utility/value_init_test.cpp Modified : /branches/release/libs/uuid Modified : /branches/release/libs/wave Modified : /branches/release/more Modified : /branches/release/rst.css Modified : /branches/release/status Modified : /branches/release/status/Jamfile.v2 Modified : /branches/release/status/expected_results.xml Modified : /branches/release/status/explicit-failures-markup.xml Modified : /branches/release/status/explicit-failures.xsd Modified : /branches/release/tools Modified : /branches/release/tools/bcp Modified : /branches/release/tools/boostbook Modified : /branches/release/tools/build/v2 Modified : /branches/release/tools/build/v2/tools/mpi.jam Modified : /branches/release/tools/inspect Modified : /branches/release/tools/quickbook Modified : /branches/release/tools/regression Modified : /branches/release/tools/regression/src/library_status.cpp Modified : /branches/release/tools/release Modified : /branches/release/tools/wave As well as cluttering up the revision logs, this often leads to property and/or tree conflicts when merging your own stuff, and I can't tell you how annoying that is to figure out! :-( BTW, my sincere apologies to Eric here - he just happened to be the latest culprit - can some SVN guru suggest how to prevent this sort of spurious changing going on? BTW2, lest this turn into "my extra advanced version control system doesn't do messy stuff like this" conversation - I'm sure you're correct - some other version control system probably doesn't have this trap - but I sure bet it has other traps just as annoying for the unwary. Just saying.... Thanks, John.

On 6 April 2012 18:59, John Maddock <boost.regex@virgin.net> wrote:
As well as cluttering up the revision logs, this often leads to property and/or tree conflicts when merging your own stuff, and I can't tell you how annoying that is to figure out! :-(
BTW, my sincere apologies to Eric here - he just happened to be the latest culprit - can some SVN guru suggest how to prevent this sort of spurious changing going on?
It's updating merge metadata, because at some point someone has explicitly merged to that file which causes it to track its own merges. For that reason it's generally a bad idea to merge to individual files. Ironically, Eric is actually doing the right thing by doing a full tree merge. The good news is that when subversion 1.7.x only updates merge metadata for files and directories that have actually changed so this will be less of a problem as people upgrade (although it's still a bad idea to merge to individual files, because it complicates merges and makes them slower).

On 4/6/2012 11:37 AM, Daniel James wrote:
On 6 April 2012 18:59, John Maddock <boost.regex@virgin.net> wrote:
As well as cluttering up the revision logs, this often leads to property and/or tree conflicts when merging your own stuff, and I can't tell you how annoying that is to figure out! :-(
BTW, my sincere apologies to Eric here - he just happened to be the latest culprit - can some SVN guru suggest how to prevent this sort of spurious changing going on?
It's updating merge metadata, because at some point someone has explicitly merged to that file which causes it to track its own merges. For that reason it's generally a bad idea to merge to individual files. Ironically, Eric is actually doing the right thing by doing a full tree merge. The good news is that when subversion 1.7.x only updates merge metadata for files and directories that have actually changed so this will be less of a problem as people upgrade (although it's still a bad idea to merge to individual files, because it complicates merges and makes them slower).
Right. My understanding has always been that merges should be done at the root. I didn't know why (now I do, thanks Daniel), but I've followed the recommended procedure religiously. Now I will upgrade to 1.7.3. Daniel, is there any way to clean up the merge info Boost-wide and bring these stray files back into the fold? -- Eric Niebler BoostPro Computing http://www.boostpro.com

On Sat, 7 Apr 2012, Eric Niebler wrote:
On 4/6/2012 11:37 AM, Daniel James wrote:
On 6 April 2012 18:59, John Maddock <boost.regex@virgin.net> wrote:
As well as cluttering up the revision logs, this often leads to property and/or tree conflicts when merging your own stuff, and I can't tell you how annoying that is to figure out! :-(
BTW, my sincere apologies to Eric here - he just happened to be the latest culprit - can some SVN guru suggest how to prevent this sort of spurious changing going on?
It's updating merge metadata, because at some point someone has explicitly merged to that file which causes it to track its own merges. For that reason it's generally a bad idea to merge to individual files. Ironically, Eric is actually doing the right thing by doing a full tree merge. The good news is that when subversion 1.7.x only updates merge metadata for files and directories that have actually changed so this will be less of a problem as people upgrade (although it's still a bad idea to merge to individual files, because it complicates merges and makes them slower).
Right. My understanding has always been that merges should be done at the root. I didn't know why (now I do, thanks Daniel), but I've followed the recommended procedure religiously. Now I will upgrade to 1.7.3.
That was my understanding as well (I was one of the other users on the list of large merge changes). Should there be a policy requiring people merging changes into the release branch to use a certain minimum Subversion version? -- Jeremiah Willcock

On 7 April 2012 17:25, Eric Niebler <eric@boostpro.com> wrote:
Right. My understanding has always been that merges should be done at the root. I didn't know why (now I do, thanks Daniel), but I've followed the recommended procedure religiously. Now I will upgrade to 1.7.3.
Unfortunately it doesn't work that well, since a lot of people don't do it. So the metadata at the top levels is pretty useless. And we can't just use 'svn mergeinfo' to find out what hasn't been merged. What some people do is merge at the root of their subdirectories (e.g. boost/xpressive and libs/xpressive). That way they get the benefit of merge tracking without creating too much metadata.
Daniel, is there any way to clean up the merge info Boost-wide and bring these stray files back into the fold?
The merge data in a directory can be removed with: svn propdel -q -R svn:mergeinfo directory But that can knock out tracking data that someone is actually using, so that when they next try to merge it will reapply revisions that have already been merged.

On 4/7/2012 12:07 PM, Daniel James wrote:
On 7 April 2012 17:25, Eric Niebler <eric@boostpro.com> wrote:
Daniel, is there any way to clean up the merge info Boost-wide and bring these stray files back into the fold?
The merge data in a directory can be removed with:
svn propdel -q -R svn:mergeinfo directory
But that can knock out tracking data that someone is actually using, so that when they next try to merge it will reapply revisions that have already been merged.
I was thinking of something a little more finessed. :-) For instance, if changelist N only touches one file, and I merge that change to that one file (instead of doing it at the root), the results *should* be the same, right? But it sounds like they're not. The mergeinfo forks, in a sense. There should be a way to automatically detect and fix up these sorts of pointless mergeinfo forks. But whatever. Can we just move to git, please? ;-) -- Eric Niebler BoostPro Computing http://www.boostpro.com

On 7 April 2012 22:06, Eric Niebler <eric@boostpro.com> wrote:
I was thinking of something a little more finessed. :-) For instance, if changelist N only touches one file, and I merge that change to that one file (instead of doing it at the root), the results *should* be the same, right? But it sounds like they're not. The mergeinfo forks, in a sense. There should be a way to automatically detect and fix up these sorts of pointless mergeinfo forks.
I don't know why it doesn't do that. It does try to remove child data when you merge a parent directory (or record a merge), but it can only do that if the child merge data is exactly the same as the merge data it inherits from the parent, and I think that our messy history makes that unlikely.
participants (4)
-
Daniel James
-
Eric Niebler
-
Jeremiah Willcock
-
John Maddock