svndump - How to update svn properties (mergeinfo) and comments when repositories need to be combined and restructured (incl. remove files, rename folders)? -


initial situation

hi, have 2 original repositories, both have merged and updated:

repository 1

"old code" (orginal cvs, converted via cvs2svn)
layout of repo 1 (viewed svn angle):

/trunk
/branches
/tags

with having development in trunk, using feature branches , merge back, tagged versions -> fine
last source version between 1.0 , 1.1 , in /trunk.

repository 2

"new code", branches aren't correct (see explanation below) , many auto generated files (for example makefiles , intermediate c sources generated flex)

rev 1: add complete source version 1.1, it's on /, not on /trunk.
rev 2: add /trunk /branches /tags , moves source /trunk belongs to.
rev 3: add svn-ignore properties in folders
rev 4: created tag
rev 5: moved /trunk /trunk/sources, adding folder /trunk/stuff deleted later , should not part of new repo
next revs change version 1.x in /trunk/sources
rev 67: add /branches/version2
other revs done in /branches/version2.

goal

i try combine these repositories, remove unused stuff /trunk/stuff, rename /trunk/sources /branches/version_1.x , /branch/version2 /trunk. all while updating mergeinfo , if possible log messages.

this i've tried far

  1. using cvs2svn convert repo1
  2. using svnadmin dump repo1
  3. using svnadmin dump repo2
  4. optional changes
  5. using svnadmin create create new repo
  6. using svnadmin load import both
  7. using svnadmin dump new repo
  8. using svndumpfilter on repo2.dmp remove unused stuff, preferably --renumber-revs
  9. reload repo

it's not possible combine repos without step 4 repo2 starts adding "everything again" , in wrong place.

to working i've changed repo2.dmp manually notepad++ before importing it:

  • manually removed rev2
  • changing rev1 have changes @ /trunk not on /

this lead new , "working" repository after step 6 svn mergeinfo in repo2 not correct longer still uses old revision numbers (getting worse when excluding empty revisions in step 8).

i've tried change new_repo.dmp partly manual, parts search-and-replace regexp (in case via notepad++) , can fix parts renaming (/trunk/sources /branches/version_1.x , /branch/version2 /trunk) - fixing rev numbers in log messages , svn mergeinfo isn't possible way.

summarized question

is there option update / recreate repository correct (higher) revision numbers in svn mergeinfo, maybe in svn commit messages (they refer other revision numbers "fixed bug x introduced rev123")? there tools / tricks / tipps use renaming folders without manual regexp changes dump?

thank thoughts , answers!

check question , answer. in comments can find simple examples rewrite history.


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -