You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Bill Mann <bm...@vertica.com> on 2007/09/24 00:37:12 UTC
creating an old branch
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?
-Bill Mann
Re: creating an old branch
Posted by Bill Mann <bm...@vertica.com>.
Thanks, that makes sense to me.
-Bill
Ryan Schmidt wrote:
>
> 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.
>
Re: creating an old branch
Posted by Ryan Schmidt <su...@ryandesign.com>.
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