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

Re: creating an old branch

From: Ryan Schmidt <subversion-2007b_at_ryandesign.com>
Date: 2007-09-25 01:51:09 CEST

On Sep 23, 2007, at 19:37, Bill Mann wrote:

> This isn't a very good subject, but here's the situation.
>
> I've recently converted a fairly large project from cvs to svn. I
> told everyone to check in their pending work on cvs branches, then
> used cvs2svn to do the work. That worked out well. But somebody
> forgot a project which had been put aside.
>
> That cvs workspace is based on what's now revision 4148 in svn, and
> has lots of changes in a cvs workspace. We are at about revision
> 8600 in svn now.
>
> What I'd like to do is create an svn branch based on 4148, check it
> in if necessary, copy in the changes from the cvs workspace using
> patch, and check those in, then update the branch to the trunk head
> and (ugh) debug the conflicts and other problems. Maybe I am
> thinking about this wrong.
>
> I tried this; the workspace corresponds to svn info -r 4148
> $SVNROOT/build/trunk/vertica.
> svn info -r 4148 $SVNROOT/build/trunk/vertica
> Path: vertica
> URL: svn+ssh://svn/repos/trunk/vertica
> Repository Root: svn+ssh://svn/repos
> Repository UUID: c4c4507d-fb47-4471-b792-52309e25f909
> Revision: 4148
> Node Kind: directory
> Last Changed Author: xyz
> Last Changed Rev: 4148
> Last Changed Date: 2006-12-22 19:00:05 -0500 (Fri, 22 Dec 2006)
>
> Note the URL: says trunk/vertica, but I had previously svn move'd
> that to build/trunk/vertica
>
> I tried making a normal branch, then checking out that version:
> svn copy $SVNROOT/build/trunk $SVNROOT/build/branches/bill_blockhdr
> svn ls $SVNROOT/build/branches/bill_blockhdr
> PG-contrib/
> third-party/
> vertica/
> svn co -r 4148 $SVNROOT/build/branches/bill_blockhdr/vertica
> That worked, giving me the right files. I tried
> svn ci -m 'based on 4148'
> No messages. Then I used patch to apply the changes; no problems.
> Then
> svn diff
> ...
> Changes are all there. Then
> svn ci -m 'blockhdr changes from dec 2006'
> Sending Basics/Basics.mk
> ...
> Transmitting file data ..................svn: Commit failed
> (details follow):
> svn: Path 'Basics' not present
>
> WHAT does that mean?? Basics/Basics.mk has always been there.
> svn stat shows the changes; svn info shows revision 4148.
>
> Now I'm confused -- I've got the files I want, and this worked:
> svn copy . $SVNROOT/build/branches/bill_old
> Committed revision 8752.
>
> What to do next?

What you probably wanted to do instead is make a branch of the
project at revision 4148, rather than branch it at HEAD like you did.

$ svn rm $SVNROOT/build/branches/bill_blockhdr
$ svn copy -r 4148 $SVNROOT/build/trunk $SVNROOT/build/branches/
bill_blockhdr

Now you can check out a working copy of that branch:

$ svn checkout $SVNROOT/build/branches/bill_blockhdr
$ cd bill_blockhdr

Then you can copy in your changes from your CVS workspace and commit
them.

Then you can merge in the changes from 4148 to 8600 (or whatever your
HEAD is now) using svn merge.

$ svn merge -r 4148:8600 $SVNROOT/build/trunk .

If you experience conflicts, resolve them, test, then commit. Let's
say this gives you revision 8700.

Now if you want to bring that change into the trunk, you can check
out the trunk and merge the change there:

$ svn checkout -r 8700 $SVNROOT/build/trunk
$ cd trunk
$ svn merge $SVNROOT/build/trunk@8700 $SVNROOT/build/branches/
bill_blockhdr@8700 .

This should apply cleanly and you can just test and commit.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Sep 25 01:53:29 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.