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

RFC: Cleanup some of the mergeinfo madness in our own repos

From: Paul Burba <ptburba_at_gmail.com>
Date: Fri, 14 Nov 2008 06:24:47 -0500

As of r34184 WC-to-WC copies and moves no longer create explicit
mergeinfo on the cp/mv destination unless the source already had
explicit mergeinfo.

The pre-34184 behavior led to the overwhelming majority of explicit
"subtree" mergeinfo in our repository. This is particularly true in
our feature branches, where AFAICT we all follow the
copy-trunk-to-branch/modify-branch/synch-from-trunk-to-root-of-branch/merge-branch-back-to-trunk
model. Following that model would not normally produce subtree
mergeinfo on our feature branches, but unfortunately once we have this
subtree mergeinfo it is there forever as each branch copied from trunk
starts with all of it in place. And WC-to-WC cp/mvs on our feature
branches add even more, which then come back to trunk, building up
ever more subtree mergeinfo. Now we do occasional, legitimate,
subtree merges to our release branches, but as those are never merged
back to trunk the subtree mergeinfo is limited to those branchs.

Anyhow, you probably all are familiar with what we have today, but if
not take a look at the mergeinfo on trunk:

C:\SVN\src-trunk>svn pg svn:mergeinfo -vR
Properties on '.':
  svn:mergeinfo
    /branches/1.5.x-r30215:30238
    /branches/bdb-reverse-deltas:31976-32455
    /branches/diff-callbacks3:29985-30687
    /branches/dont-save-plaintext-passwords-by-default:30654-31044
    /branches/double-delete:30437-32896
    /branches/file-externals:31705-33228
    /branches/fs-rep-sharing:28962-33729
    /branches/gnome-keyring:30484-31336
    /branches/in-memory-cache:29755-31378
    /branches/issue-2843-dev:31358-34105
    /branches/issue-3000:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees:33301-34010
    /branches/issue-3220-dev:32136-32152
    /branches/kwallet:30711-31240
    /branches/log-g-performance:30867-30958
    /branches/reintegrate-improvements:33779-34090
    /branches/svn-mergeinfo-enhancements:30045-30121,30123-30214
    /branches/svnpatch-diff:31831,31912
    /branches/svnserve-logging:29754-30819
    /branches/tc-merge-notify:33943-33988
    /branches/tc-resolve:34117-34165
    /branches/tree-conflicts:28217-33080
    /branches/tree-conflicts-notify:33852-33934
Properties on 'subversion\include':
  svn:mergeinfo
    /branches/1.5.x-r30215/subversion/include:30238
    /branches/bdb-reverse-deltas/subversion/include:31976-32455
    /branches/diff-callbacks3/subversion/include:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/subversion/include:30654-31044
    /branches/double-delete/subversion/include:30437-32896
    /branches/file-externals/subversion/include:31705-33228
    /branches/fs-rep-sharing/subversion/include:28962-33729
    /branches/gnome-keyring/subversion/include:30484-31336
    /branches/in-memory-cache/subversion/include:29755-31378
    /branches/issue-2843-dev/subversion/include:31358-34105
    /branches/issue-3000/subversion/include:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/subversion/include:33301-34010
    /branches/issue-3220-dev/subversion/include:32136-32152
    /branches/kwallet/subversion/include:30711-31240
    /branches/log-g-performance/subversion/include:30867-30958
    /branches/reintegrate-improvements/subversion/include:33779-34090
    /branches/svn-mergeinfo-enhancements/subversion/include:30045-30214
    /branches/svnpatch-diff/subversion/include:31831,31912
    /branches/svnserve-logging/subversion/include:29754-30819
    /branches/tc-merge-notify/subversion/include:33943-33988
    /branches/tc-resolve/subversion/include:34117-34165
    /branches/tree-conflicts/subversion/include:28217-33080
    /branches/tree-conflicts-notify/subversion/include:33852-33934
Properties on 'build.conf':
  svn:mergeinfo
    /branches/1.5.x-r30215/build.conf:30238
    /branches/bdb-reverse-deltas/build.conf:31976-32455
    /branches/diff-callbacks3/build.conf:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/build.conf:30654-31044
    /branches/double-delete/build.conf:30437-32896
    /branches/file-externals/build.conf:31705-33228
    /branches/fs-rep-sharing/build.conf:28962-33729
    /branches/gnome-keyring/build.conf:30484-31336
    /branches/in-memory-cache/build.conf:29755-31378
    /branches/issue-2843-dev/build.conf:31358-34105
    /branches/issue-3000/build.conf:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/build.conf:33301-34010
    /branches/issue-3220-dev/build.conf:32136-32152
    /branches/kwallet/build.conf:30711-31240
    /branches/log-g-performance/build.conf:30867-30958
    /branches/reintegrate-improvements/build.conf:33779-34090
    /branches/svn-mergeinfo-enhancements/build.conf:30045-30214
    /branches/svnpatch-diff/build.conf:31831,31912
    /branches/svnserve-logging/build.conf:29754-30819
    /branches/tc-merge-notify/build.conf:33943-33988
    /branches/tc-resolve/build.conf:34117-34165
    /branches/tree-conflicts/build.conf:28217-33080
    /branches/tree-conflicts-notify/build.conf:33852-33934
Properties on 'subversion\libsvn_auth_kwallet\kwallet.cpp':
  svn:mergeinfo
    /branches/1.5.x-r30215/subversion/libsvn_subr/simple_providers_cpp.cpp:30238
    /branches/bdb-reverse-deltas/subversion/libsvn_auth_kwallet/kwallet.cpp:31976-32455
    /branches/diff-callbacks3/subversion/libsvn_subr/simple_providers_cpp.cpp:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/subversion/libsvn_subr/simple_providers_cpp.cpp:30654-31044
    /branches/file-externals/subversion/libsvn_auth_kwallet/kwallet.cpp:31705-33228
    /branches/issue-2843-dev/subversion/libsvn_auth_kwallet/kwallet.cpp:31358-34105
    /branches/issue-3000/subversion/libsvn_auth_kwallet/kwallet.cpp:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/subversion/libsvn_auth_kwallet/kwallet.cpp:33301-34010
    /branches/issue-3220-dev/subversion/libsvn_auth_kwallet/kwallet.cpp:32136-32152
    /branches/log-g-performance/subversion/libsvn_subr/simple_providers_cpp.cpp:30867-30958
    /branches/reintegrate-improvements/subversion/libsvn_auth_kwallet/kwallet.cpp:33779-34090
    /branches/svn-mergeinfo-enhancements/subversion/libsvn_subr/simple_providers_cpp.cpp:30045-30214
    /branches/svnpatch-diff/subversion/libsvn_auth_kwallet/kwallet.cpp:31831,31912
    /branches/svnserve-logging/subversion/libsvn_subr/simple_providers_cpp.cpp:29754-30819
    /branches/tc-merge-notify/subversion/libsvn_auth_kwallet/kwallet.cpp:33943-33988
    /branches/tc-resolve/subversion/libsvn_auth_kwallet/kwallet.cpp:34117-34165
    /branches/tree-conflicts/subversion/libsvn_auth_kwallet/kwallet.cpp:28217-33080
    /branches/tree-conflicts-notify/subversion/libsvn_auth_kwallet/kwallet.cpp:33852-33934
    /trunk/subversion/libsvn_auth_kwallet/kwallet.cpp:2-28216
    /trunk/subversion/libsvn_subr/simple_providers_cpp.cpp:30711-31067
Properties on 'tools\buildbot\slaves\win32-xp-VS2005':
  svn:mergeinfo
    /branches/1.5.x-r30215/tools/buildbot/slaves/win32-xp VS2005:30238
    /branches/bdb-reverse-deltas/tools/buildbot/slaves/win32-xp
VS2005:31976-32455
    /branches/diff-callbacks3/tools/buildbot/slaves/win32-xp VS2005:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/tools/buildbot/slaves/win32-xp
VS2005:30654-31044
    /branches/double-delete/tools/buildbot/slaves/win32-xp VS2005:30437-32896
    /branches/file-externals/tools/buildbot/slaves/win32-xp VS2005:31705-33228
    /branches/fs-rep-sharing/tools/buildbot/slaves/win32-xp
VS2005:28976,29040,30035,30651,30784,30788-30789,30813,30822,30846,30866,31092,31106,31113
    /branches/fs-rep-sharing/tools/buildbot/slaves/win32-xp-VS2005:28962-33729
    /branches/gnome-keyring/tools/buildbot/slaves/win32-xp VS2005:30484-31336
    /branches/in-memory-cache/tools/buildbot/slaves/win32-xp VS2005:29755-31378
    /branches/issue-2843-dev/tools/buildbot/slaves/win32-xp-VS2005:31358-34105
    /branches/issue-3000/tools/buildbot/slaves/win32-xp
VS2005:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/tools/buildbot/slaves/win32-xp-VS2005:33301-34010
    /branches/issue-3220-dev/tools/buildbot/slaves/win32-xp VS2005:32136-32152
    /branches/kwallet/tools/buildbot/slaves/win32-xp VS2005:30711-31240
    /branches/log-g-performance/tools/buildbot/slaves/win32-xp
VS2005:30867-30958
    /branches/reintegrate-improvements/tools/buildbot/slaves/win32-xp-VS2005:33779-34090
    /branches/svn-mergeinfo-enhancements/tools/buildbot/slaves/win32-xp
VS2005:30045-30214
    /branches/svnpatch-diff/tools/buildbot/slaves/win32-xp VS2005:31831,31912
    /branches/svnserve-logging/tools/buildbot/slaves/win32-xp VS2005:29754-30819
    /branches/tc-merge-notify/tools/buildbot/slaves/win32-xp-VS2005:33943-33988
    /branches/tc-resolve/tools/buildbot/slaves/win32-xp-VS2005:34117-34165
    /branches/tree-conflicts/tools/buildbot/slaves/win32-xp VS2005:28217-33080
    /branches/tree-conflicts-notify/tools/buildbot/slaves/win32-xp-VS2005:33852-33934
Properties on 'subversion\libsvn_subr':
  svn:mergeinfo
    /branches/1.5.x-r30215/subversion/libsvn_subr:30238
    /branches/bdb-reverse-deltas/subversion/libsvn_subr:31976-32455
    /branches/diff-callbacks3/subversion/libsvn_subr:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/subversion/libsvn_subr:30654-31044
    /branches/double-delete/subversion/libsvn_subr:30437-32896
    /branches/file-externals/subversion/libsvn_subr:31705-33228
    /branches/fs-rep-sharing/subversion/libsvn_subr:28962-33729
    /branches/gnome-keyring/subversion/libsvn_subr:30484-31336
    /branches/in-memory-cache/subversion/libsvn_subr:29755-31378
    /branches/issue-2843-dev/subversion/libsvn_subr:31358-34105
    /branches/issue-3000/subversion/libsvn_subr:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/subversion/libsvn_subr:33301-34010
    /branches/issue-3220-dev/subversion/libsvn_subr:32136-32152
    /branches/kwallet/subversion/libsvn_subr:30711-31240
    /branches/log-g-performance/subversion/libsvn_subr:30867-30958
    /branches/reintegrate-improvements/subversion/libsvn_subr:33779-34090
    /branches/svn-mergeinfo-enhancements/subversion/libsvn_subr:30045-30214
    /branches/svnpatch-diff/subversion/libsvn_subr:31831,31912
    /branches/svnserve-logging/subversion/libsvn_subr:29754-30819
    /branches/tc-merge-notify/subversion/libsvn_subr:33943-33988
    /branches/tc-resolve/subversion/libsvn_subr:34117-34165
    /branches/tree-conflicts/subversion/libsvn_subr:28217-33080
    /branches/tree-conflicts-notify/subversion/libsvn_subr:33852-33934
Properties on 'subversion\tests\libsvn_subr':
  svn:mergeinfo
    /branches/1.5.x-r30215/subversion/tests/libsvn_subr:30238
    /branches/bdb-reverse-deltas/subversion/tests/libsvn_subr:31976-32455
    /branches/diff-callbacks3/subversion/tests/libsvn_subr:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/subversion/tests/libsvn_subr:30654-31044
    /branches/double-delete/subversion/tests/libsvn_subr:30437-32896
    /branches/file-externals/subversion/tests/libsvn_subr:31705-33228
    /branches/fs-rep-sharing/subversion/tests/libsvn_subr:28962-33729
    /branches/gnome-keyring/subversion/tests/libsvn_subr:30484-31336
    /branches/in-memory-cache/subversion/tests/libsvn_subr:29755-31378
    /branches/issue-2843-dev/subversion/tests/libsvn_subr:31358-34105
    /branches/issue-3000/subversion/tests/libsvn_subr:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/subversion/tests/libsvn_subr:33301-34010
    /branches/issue-3220-dev/subversion/tests/libsvn_subr:32136-32152
    /branches/kwallet/subversion/tests/libsvn_subr:30711-31240
    /branches/log-g-performance/subversion/tests/libsvn_subr:30867-30958
    /branches/reintegrate-improvements/subversion/tests/libsvn_subr:33779-34090
    /branches/svn-mergeinfo-enhancements/subversion/tests/libsvn_subr:30045-30214
    /branches/svnpatch-diff/subversion/tests/libsvn_subr:31831,31912
    /branches/svnserve-logging/subversion/tests/libsvn_subr:29754-30819
    /branches/tc-merge-notify/subversion/tests/libsvn_subr:33943-33988
    /branches/tc-resolve/subversion/tests/libsvn_subr:34117-34165
    /branches/tree-conflicts/subversion/tests/libsvn_subr:28217-33080
    /branches/tree-conflicts-notify/subversion/tests/libsvn_subr:33852-33934
Properties on 'subversion\tests\cmdline\tree_conflict_tests.txt':
  svn:mergeinfo
    /branches/1.5.x-r30215/notes/tree-conflicts/testing.txt:30238
    /branches/diff-callbacks3/notes/tree-conflicts/testing.txt:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/notes/tree-conflicts/testing.txt:30654-31044
    /branches/file-externals/subversion/tests/cmdline/tree_conflict_tests.txt:31705-33228
    /branches/issue-2843-dev/subversion/tests/cmdline/tree_conflict_tests.txt:31358-34105
    /branches/issue-3067-deleted-subtrees/subversion/tests/cmdline/tree_conflict_tests.txt:33301-34010
    /branches/log-g-performance/notes/tree-conflicts/testing.txt:30867-30958
    /branches/reintegrate-improvements/subversion/tests/cmdline/tree_conflict_tests.txt:33779-34090
    /branches/svn-mergeinfo-enhancements/notes/tree-conflicts/testing.txt:30045-30214
    /branches/svnserve-logging/notes/tree-conflicts/testing.txt:29754-30819
    /branches/tc-merge-notify/subversion/tests/cmdline/tree_conflict_tests.txt:33943-33988
    /branches/tc-resolve/subversion/tests/cmdline/tree_conflict_tests.txt:34117-34165
    /branches/tree-conflicts/subversion/tests/cmdline/tree_conflict_tests.txt:28217-31224,32256-32450
    /branches/tree-conflicts-notify/subversion/tests/cmdline/tree_conflict_tests.txt:33852-33934
Properties on 'subversion\include\private\svn_auth_private.h':
  svn:mergeinfo
    /branches/1.5.x-r30215/subversion/libsvn_subr/simple_providers.h:30238
    /branches/bdb-reverse-deltas/subversion/include/private/svn_auth_private.h:31976-32455
    /branches/diff-callbacks3/subversion/libsvn_subr/simple_providers.h:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/subversion/libsvn_subr/simple_providers.h:30654-31044
    /branches/file-externals/subversion/include/private/svn_auth_private.h:31705-33228
    /branches/issue-2843-dev/subversion/include/private/svn_auth_private.h:31358-34105
    /branches/issue-3067-deleted-subtrees/subversion/include/private/svn_auth_private.h:33301-34010
    /branches/issue-3220-dev/subversion/include/private/svn_auth_private.h:32136-32152
    /branches/log-g-performance/subversion/libsvn_subr/simple_providers.h:30867-30958
    /branches/reintegrate-improvements/subversion/include/private/svn_auth_private.h:33779-34090
    /branches/svn-mergeinfo-enhancements/subversion/libsvn_subr/simple_providers.h:30045-30214
    /branches/svnpatch-diff/subversion/include/private/svn_auth_private.h:31831,31912
    /branches/svnserve-logging/subversion/libsvn_subr/simple_providers.h:29754-30819
    /branches/tc-merge-notify/subversion/include/private/svn_auth_private.h:33943-33988
    /branches/tc-resolve/subversion/include/private/svn_auth_private.h:34117-34165
    /branches/tree-conflicts/subversion/include/private/svn_auth_private.h:28217-33080
    /branches/tree-conflicts-notify/subversion/include/private/svn_auth_private.h:33852-33934
    /trunk/subversion/include/private/svn_auth_private.h:2-28216
    /trunk/subversion/libsvn_subr/simple_providers.h:30711-31067
Properties on 'notes\tree-conflicts\design-overview.txt':
  svn:mergeinfo
    /branches/bdb-reverse-deltas/notes/tree-conflicts/design-overview.txt:31976-32455
    /branches/file-externals/notes/tree-conflicts/design-overview.txt:31705-33228
    /branches/issue-3067-deleted-subtrees/notes/tree-conflicts/design-overview.txt:33301-34010
    /branches/issue-3220-dev/notes/tree-conflicts/design-overview.txt:32136-32152
    /branches/reintegrate-improvements/notes/tree-conflicts/design-overview.txt:33779-34090
    /branches/svnpatch-diff/notes/tree-conflicts/design-overview.txt:31831,31912
    /branches/tc-merge-notify/notes/tree-conflicts/design-overview.txt:33943-33988
    /branches/tc-resolve/notes/tree-conflicts/design-overview.txt:34117-34165
    /branches/tree-conflicts/notes/tree-conflicts/design-overview.txt:28217-33080
    /branches/tree-conflicts-notify/notes/tree-conflicts/design-overview.txt:33852-33934
    /trunk/notes/tree-conflicts/design-overview.txt:2-28961
Properties on 'tools\server-side\test_svn_server_log_parse.py':
  svn:mergeinfo
    /branches/1.5.x-r30215/tools/server-side/test_svn_dav_log_parse.py:30238
    /branches/bdb-reverse-deltas/tools/server-side/test_svn_server_log_parse.py:31976-32455
    /branches/dont-save-plaintext-passwords-by-default/tools/server-side/test_svn_server_log_parse.py:30654-31044
    /branches/double-delete/tools/server-side/test_svn_server_log_parse.py:30437-32896
    /branches/file-externals/tools/server-side/test_svn_server_log_parse.py:31705-33228
    /branches/fs-rep-sharing/tools/server-side/test_svn_server_log_parse.py:28962-33729
    /branches/gnome-keyring/tools/server-side/test_svn_server_log_parse.py:30484-31336
    /branches/in-memory-cache/tools/server-side/test_svn_server_log_parse.py:29755-31378
    /branches/issue-2843-dev/tools/server-side/test_svn_server_log_parse.py:31358-34105
    /branches/issue-3000/tools/server-side/test_svn_server_log_parse.py:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/tools/server-side/test_svn_server_log_parse.py:33301-34010
    /branches/issue-3220-dev/tools/server-side/test_svn_server_log_parse.py:32136-32152
    /branches/kwallet/tools/server-side/test_svn_server_log_parse.py:30711-31240
    /branches/log-g-performance/tools/server-side/test_svn_server_log_parse.py:30867-30958
    /branches/reintegrate-improvements/tools/server-side/test_svn_server_log_parse.py:33779-34090
    /branches/svn-mergeinfo-enhancements/tools/server-side/test_svn_dav_log_parse.py:30045-30214
    /branches/svnpatch-diff/tools/server-side/test_svn_server_log_parse.py:31831,31912
    /branches/svnserve-logging/tools/server-side/test_svn_server_log_parse.py:29754-30615
    /branches/tc-merge-notify/tools/server-side/test_svn_server_log_parse.py:33943-33988
    /branches/tc-resolve/tools/server-side/test_svn_server_log_parse.py:34117-34165
    /branches/tree-conflicts/tools/server-side/test_svn_server_log_parse.py:28217-33080
    /branches/tree-conflicts-notify/tools/server-side/test_svn_server_log_parse.py:33852-33934
    /trunk/tools/server-side/test_svn_dav_log_parse.py:29754-30530
    /trunk/tools/server-side/test_svn_server_log_parse.py:2-28216
Properties on 'tools\server-side\svn_server_log_parse.py':
  svn:mergeinfo
    /branches/1.5.x-r30215/tools/server-side/svn_dav_log_parse.py:30238
    /branches/bdb-reverse-deltas/tools/server-side/svn_server_log_parse.py:31976-32455
    /branches/dont-save-plaintext-passwords-by-default/tools/server-side/svn_server_log_parse.py:30654-31044
    /branches/double-delete/tools/server-side/svn_server_log_parse.py:30437-32896
    /branches/file-externals/tools/server-side/svn_server_log_parse.py:31705-33228
    /branches/fs-rep-sharing/tools/server-side/svn_server_log_parse.py:28962-33729
    /branches/gnome-keyring/tools/server-side/svn_server_log_parse.py:30484-31336
    /branches/in-memory-cache/tools/server-side/svn_server_log_parse.py:29755-31378
    /branches/issue-2843-dev/tools/server-side/svn_server_log_parse.py:31358-34105
    /branches/issue-3000/tools/server-side/svn_server_log_parse.py:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/tools/server-side/svn_server_log_parse.py:33301-34010
    /branches/issue-3220-dev/tools/server-side/svn_server_log_parse.py:32136-32152
    /branches/kwallet/tools/server-side/svn_server_log_parse.py:30711-31240
    /branches/log-g-performance/tools/server-side/svn_server_log_parse.py:30867-30958
    /branches/reintegrate-improvements/tools/server-side/svn_server_log_parse.py:33779-34090
    /branches/svn-mergeinfo-enhancements/tools/server-side/svn_dav_log_parse.py:30045-30214
    /branches/svnpatch-diff/tools/server-side/svn_server_log_parse.py:31831,31912
    /branches/svnserve-logging/tools/server-side/svn_server_log_parse.py:29754-30615
    /branches/tc-merge-notify/tools/server-side/svn_server_log_parse.py:33943-33988
    /branches/tc-resolve/tools/server-side/svn_server_log_parse.py:34117-34165
    /branches/tree-conflicts/tools/server-side/svn_server_log_parse.py:28217-33080
    /branches/tree-conflicts-notify/tools/server-side/svn_server_log_parse.py:33852-33934
    /trunk/tools/server-side/svn_dav_log_parse.py:29754-30530
    /trunk/tools/server-side/svn_server_log_parse.py:2-28216
Properties on 'www\issue-tracker.html':
  svn:mergeinfo
    /branches/bdb-reverse-deltas/www/issue-tracker.html:31976-32455
    /branches/double-delete/www/issue-tracker.html:30437-32896
    /branches/file-externals/www/issue-tracker.html:31705-33228
    /branches/fs-rep-sharing/www/issue-tracker.html:28962-33729
    /branches/issue-2843-dev/www/issue-tracker.html:31358-34105
    /branches/issue-3000/www/issue-tracker.html:31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/www/issue-tracker.html:33301-34010
    /branches/issue-3220-dev/www/issue-tracker.html:32136-32152
    /branches/reintegrate-improvements/www/issue-tracker.html:33779-34090
    /branches/svnpatch-diff/www/issue-tracker.html:31831,31912
    /branches/tc-merge-notify/www/issue-tracker.html:33943-33988
    /branches/tc-resolve/www/issue-tracker.html:34117-34165
    /branches/tree-conflicts/www/issue-tracker.html:28217-33080
    /branches/tree-conflicts-notify/www/issue-tracker.html:33852-33934
    /trunk/www/issue-tracker.html:2-28216
Properties on 'www\development.html':
  svn:mergeinfo
    /branches/bdb-reverse-deltas/www/development.html:31976-32455
    /branches/double-delete/www/development.html:30437-32896
    /branches/file-externals/www/development.html:31705-33228
    /branches/fs-rep-sharing/www/development.html:28962-33729
    /branches/issue-2843-dev/www/development.html:31358-34105
    /branches/issue-3000/www/development.html:31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/www/development.html:33301-34010
    /branches/issue-3220-dev/www/development.html:32136-32152
    /branches/reintegrate-improvements/www/development.html:33779-34090
    /branches/svnpatch-diff/www/development.html:31831,31912
    /branches/tc-merge-notify/www/development.html:33943-33988
    /branches/tc-resolve/www/development.html:34117-34165
    /branches/tree-conflicts/www/development.html:28217-33080
    /branches/tree-conflicts-notify/www/development.html:33852-33934
    /trunk/www/development.html:2-28216
Properties on 'notes\tree-conflicts\requirements.txt':
  svn:mergeinfo
    /branches/1.5.x-r30215/notes/tree-conflicts/policy.txt:30238
    /branches/bdb-reverse-deltas/notes/tree-conflicts/requirements.txt:31976-32455
    /branches/diff-callbacks3/notes/tree-conflicts/policy.txt:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/notes/tree-conflicts/policy.txt:30654-31044
    /branches/double-delete/notes/tree-conflicts/requirements.txt:30437-32896
    /branches/file-externals/notes/tree-conflicts/requirements.txt:31705-33228
    /branches/issue-3067-deleted-subtrees/notes/tree-conflicts/requirements.txt:33301-34010
    /branches/issue-3220-dev/notes/tree-conflicts/requirements.txt:32136-32152
    /branches/kwallet/notes/tree-conflicts/policy.txt:30711-31240
    /branches/log-g-performance/notes/tree-conflicts/policy.txt:30867-30958
    /branches/reintegrate-improvements/notes/tree-conflicts/requirements.txt:33779-34090
    /branches/svn-mergeinfo-enhancements/notes/tree-conflicts/policy.txt:30045-30214
    /branches/svnpatch-diff/notes/tree-conflicts/requirements.txt:31831,31912
    /branches/svnserve-logging/notes/tree-conflicts/policy.txt:29754-30819
    /branches/tc-merge-notify/notes/tree-conflicts/requirements.txt:33943-33988
    /branches/tc-resolve/notes/tree-conflicts/requirements.txt:34117-34165
    /branches/tree-conflicts/notes/tree-conflicts/requirements.txt:28217-33080
    /branches/tree-conflicts-notify/notes/tree-conflicts/requirements.txt:33852-33934
    /trunk/notes/tree-conflicts/requirements.txt:2-28216
Properties on 'subversion\include\private\svn_cache.h':
  svn:mergeinfo
    /branches/1.5.x-r30215/subversion/include/svn_cache.h:30238
    /branches/bdb-reverse-deltas/subversion/include/svn_cache.h:31976-32455
    /branches/diff-callbacks3/subversion/include/svn_cache.h:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/subversion/include/svn_cache.h:30654-31044
    /branches/double-delete/subversion/include/svn_cache.h:30437-32896
    /branches/file-externals/subversion/include/svn_cache.h:31705-33228
    /branches/fs-rep-sharing/subversion/include/svn_cache.h:28962-33729
    /branches/gnome-keyring/subversion/include/svn_cache.h:30484-31336
    /branches/in-memory-cache/subversion/include/svn_cache.h:29755-29774
    /branches/issue-2843-dev/subversion/include/private/svn_cache.h:31358-34105
    /branches/issue-3000/subversion/include/svn_cache.h:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/subversion/include/private/svn_cache.h:33301-34010
    /branches/issue-3220-dev/subversion/include/svn_cache.h:32136-32152
    /branches/kwallet/subversion/include/svn_cache.h:30711-31240
    /branches/log-g-performance/subversion/include/svn_cache.h:30867-30958
    /branches/reintegrate-improvements/subversion/include/private/svn_cache.h:33779-34090
    /branches/svn-mergeinfo-enhancements/subversion/include/svn_cache.h:30045-30214
    /branches/svnpatch-diff/subversion/include/svn_cache.h:31831,31912
    /branches/svnserve-logging/subversion/include/svn_cache.h:29754-30819
    /branches/tc-merge-notify/subversion/include/private/svn_cache.h:33943-33988
    /branches/tc-resolve/subversion/include/private/svn_cache.h:34117-34165
    /branches/tree-conflicts/subversion/include/svn_cache.h:28217-33080
    /branches/tree-conflicts-notify/subversion/include/private/svn_cache.h:33852-33934
Properties on 'www\tasks.html':
  svn:mergeinfo
    /branches/1.5.x-r30215/www/project_tasks.html:30238
    /branches/bdb-reverse-deltas/www/tasks.html:31976-32455
    /branches/diff-callbacks3/www/project_tasks.html:29985-30687
    /branches/dont-save-plaintext-passwords-by-default/www/project_tasks.html:30654-31044
    /branches/double-delete/www/tasks.html:30437-32896
    /branches/file-externals/www/tasks.html:31705-33228
    /branches/fs-rep-sharing/www/tasks.html:28962-33729
    /branches/gnome-keyring/www/project_tasks.html:30484-31336
    /branches/in-memory-cache/www/project_tasks.html:29755-31378
    /branches/issue-2843-dev/www/tasks.html:31358-34105
    /branches/issue-3000/www/project_tasks.html:31639,31642-31645,31647-31652,31654,31660
    /branches/issue-3067-deleted-subtrees/www/tasks.html:33301-34010
    /branches/issue-3220-dev/www/tasks.html:32136-32152
    /branches/kwallet/www/project_tasks.html:30711-31240
    /branches/log-g-performance/www/project_tasks.html:30867-30958
    /branches/reintegrate-improvements/www/tasks.html:33779-34090
    /branches/svn-mergeinfo-enhancements/www/project_tasks.html:30045-30214
    /branches/svnpatch-diff/www/tasks.html:31831,31912
    /branches/svnserve-logging/www/project_tasks.html:29754-30819
    /branches/tc-merge-notify/www/tasks.html:33943-33988
    /branches/tc-resolve/www/tasks.html:34117-34165
    /branches/tree-conflicts/www/tasks.html:28217-33080
    /branches/tree-conflicts-notify/www/tasks.html:33852-33934
    /trunk/www/tasks.html:2-28216

Ugly no?

Notice also that we have examples of explicit mergeinfo that describes
a path's own history, so-called "self-referential" mergeinfo. Much of
this came about due to our own use of early 1.5 code that produced
this type of mergeinfo. This self-referential mereginfo isn't
inherently harmful* but certainly adds to the clutter.

Now I'm all for eating our own dogfood and living with this tangle of
subtree mergeinfo has prompted the discovery of many merge bugs,
particularly around issue #3067. But at this point I think it serves
no purpose but to cause annoyance and confusion and I'd like to clean
it up so that we have explicit mergeinfo only on the root of trunk and
the root of each *feature* branch. Beyond simple aesthetics, I hope
this will:

1) Show if subtree mergeinfo is commonly coming into existence on
release branches and trunk other than by WC-to-WC copy/moves.

2) Make reintegrating feature branches to trunk with --reintegrate the
easy task it should be**

3) Gain some practical experience we can pass onto users who face the
same situation.

I make no claims that this will mean cleaner subtree mergeinfo
forever. In six months we might be back in the same situation. Heck
in six days we might be back in the same situation if people aren't
using a post-r34184 build. But I hope the results will be, at least a
little enlightening.

Now for the specifics. I'd like to do one commit that simply removes
all subtree mereginfo on trunk and our release branches. Of course we
could instead do this only for trunk and then let the change propagate
to the branches via synch merges, but there are a few problems with
this. First, if someone merges a feature branch back to trunk without
doing a final synch to catch the cleanup, then all the subtree
mergeinfo comes back to trunk and the process starts over. Second,
any synch merge which includes the rev of the cleanup on trunk will
cause property conflicts on all the svn:mergeinfo props to be deleted.
 Third, the bug described in issue #3323 means that there will still
be subtree mergeinfo on the branch after the merge. And lastly, I
don't want to make all the feature branch maintainers deal with the
potential confusion of all this. It seems better that they see
someone made a change to their branch, look at the log, which
references this thread, and say, "oh, just some mergeinfo cleanup" and
go about their business.

So, do folks agree, disagree, or have any other thoughts?

Paul

* Actually it might be in terms of making --reintegrate work better,
but that is a different topic.

** I've made some recent changes to --reintegrate to allow it to
better tolerate subtree mergeinfo, but there are still problems with
some of our branches.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-11-14 12:25:05 CET

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