[Svnmerge] Initialization problem

Raman Gupta rocketraman at fastmail.fm
Fri Apr 4 18:53:33 PDT 2008


Wayne wrote:
> Our companies version control policies don't allow check-ins of anything
> until a feature is complete and the code has been tested and reviewed. I
> am working with another off-site developer and we are using subversion
> to share our code. We started with a repository that looks like this:
> 
>      project
>      /        \
> trunk        branches
>                        \
>                      feature_branch
> 
> It's not really relevant but we have working copy that is checked out
> under both version control systems. When someone updates the project in
> our company version control system we check-out the changes and then
> check them into subversion. That's were changes to the trunk come in.
> 
> Anyway, we decided that instead of 'feature_branch' we wanted to add
> 'developer_a' and 'developer_b'  directly under branches and then moved
> the 'feature_branch' directory to 'branches/developer_a/feature_branch'
> 
> Now we have 3 weeks of work and a little more time right now so we
> wanted to try and figure out how to use svnmerge because it looks like
> it will help us keep our 'feature_branch' up to date with changes in the
> trunk.
> 
> It is at this point that I ran 'svnmerge init' and 'svnmerge avail' The
> integrated property was created long after the move and after 3 weeks of
> working on the branch.
> 
> At this point I want to get svnmerge to work. I am wondering if I create
> a new branch from revision 4 (the point were the 'feature_branch' was
> created), then run 'svnmerge init', then copy over all the changes from
> 'feature_branch' if I can then get svnmerge to merge all the changes
> from the trunk, since version 4, into my new branch.

I don't think that is necessary.

Your previous messages seemed to indicate you were having a problem
merging from the moved feature branches into trunk, not the other way
around:

> svnmerge avail -vv
> svn --non-interactive propget --strict "svnmerge-integrated" "."
> svnmerge: calculate source path for the branch
> svn --non-interactive info "."
> svnmerge: source is "http://xxxx/branches/my_branch"
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Any merge information that supported merges from your moved feature
branches to your trunk is now invalid (as shown in the -vv output
above). You should be able to manually fix things up by hand-modifying
the svnmerge-integrated property *on trunk* so that it reflects the
new names, OR you can uninit the current branches and re-init them (if
you go the latter route, init will require an explicit -r argument
otherwise it won't scan past the rename).

I'm pretty sure svnmerge.py will successfully track the history of,
and pull revisions from, the renamed branches, including the revs
before they were renamed.

Any merges from trunk to your feature branches should be unaffected by
moving them from branches/feature_branch to
branches/dev_x/feature_branch. That means that merges from the trunk
to your feature branches should continue to work without any problem,
without you changing a thing.

Cheers,
Raman Gupta



More information about the Svnmerge mailing list