Hello,
out of personal interest I created a mirror of the complete OOO repo on my
local system using 'svnsync synchronize'.
I noticed that within the newer SVN commits there are quite a number of
very huge changes which turned out to be 'CWS rebase' commits in most
cases.
Being familiar with DVCS like 'git' I am wondering if 'CWS rebase' is
implemented efficiently.
The current implementation looks like if when a 'rebase' is attempted, all
changes which have happened in the mainline (a.k.a. trunk) since the
branch creation/rebase are copied file by file into the CWS directory.
This seems to be a very expensive operation compared to the
cheap/lightweight creation of a branch.
The way a DVCS like 'git' handles this is different. At first the changes
in the branch since branch creation are determined. Then the branch is
more or less recreated on top at the new branch point and the former
branch changes are reapplied.
In SVN terms I think this should look like
# initial CWS creation
svn cp trunk cws/c1 # at e.g. r200000
<hack inside c1>
svn commit # do the branch changes in multiple commits
... # meanwhile trunk is also changed a lot
# rebase
<determine diffs between tr...@r200000 and current cws/c1>
svn rm cws/c1 # delete branch
svn cp trunk cws/c1 # recreate branch at e.g. r210000
<re-apply diffs>
svn commit
What are the reasons for doing the rebase this expensive way?
Best regards
Guido
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]