info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: complicated merge question


From: Ted Stern
Subject: Re: complicated merge question
Date: Tue, 18 Sep 2007 12:31:30 -0700
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.1.50 (gnu/linux)

[answering my own question ...]

I'm sorry for the bother, I've found the 

    -jSYMBOLIC_TAG:DATE_SPECIFIER

and

    -rSYMBOLIC_TAG:DATE_SPECIFIER

options, which seems to do what I need.  I had been using quick
reference guides, which didn't show this subtlety.

Ted

On 18 Sep 2007 11:35:56 -0700, Ted Stern wrote:
>
> Hi all,
>
> Say I have created a branch:
>
>     cvs -d /cvs/root/dir checkout project
>     cd project
>     cvs tag BRANCH_ROOT
>     cvs tag -b branch
>     cvs update -r branch
>
> and over time the trunk has been updated with some important changes
> that might possibly conflict and need to be tested, so I need to merge
> in work from the trunk to the branch.
>
> Here's my problem ... because I'm moving my CM style to
> "branch-on-bug" (where bug could also be a feature), I'd like to avoid
> having to make a lot of non-branch tags to keep track of what was
> merged, and when.
>
> So when I merge, I want to be able to specify a date on a branch as an
> option to the update -j command.
>
>     # in branch sandbox ... run on 2007/08/30:
>
>     cvs update -j BRANCH_ROOT -jD 20070917
>     cvs commit -m "merge [BRANCH_ROOT -> 20070830] from trunk to \
>     branch"
>
> If another synchronization is required later (this bug could persist
> for a while), I would need to do this again:
>
>     # in branch sandbox ... run 2007/09/17:
>
>     cvs update -jD 20070830 -jD 20070917
>     cvs commit -m "merge [20070830 -> 20070917] from trunk to \
>     branch"
>
> I could even imagine situations in which I might want to specify a
> particular date on the branch:
>
>     cvs update .... -jDr 20070917 branch ...
>
> But I don't think this is possible, is it?
>
> What are the rules on combining -D, -r and -j update options?
>
>
> And yes, obviously this would be much easier in subversion, but the
> project I'm working with isn't yet ready to convert.
>
>
> If it isn't possible to combine options this way, I suppose I'd have
> to use rtag to create a tag at the appropriate point.  Then if the
> number of tags becomes too unwieldy, I can always delete them.  But it
> doesn't appear to be possible to use -r and -D at the same time.  If I
> were just merging from the trunk, I'd want to do something like this,
> I guess ...
>
>
>    # in branch sandbox, run 2007/09/17, after 2007/08/30 merge sync:
>
>    cvs rtag -D 20070830 2007_08_30 project
>    cvs rtag -D 20070917 2007_09_17 project
>    cvs update -j 2007_08_30 -j 2007_09_17
>    cvs commit -m "merge [2007_08_30 -> 2007_09_17] from trunk to \
>    branch"
>
> This works okay if I've branched from the trunk, but what if my branch
> is off of another branch?  This might happen if, for example, I'm
> fixing bugs on a release candidate.  Can you do this?
>
>    cvs rtag -r release -D 20070830 parentbranch-2007_08_30 project
>
> My understanding is that this is either not possible or would rename
> the release branch.  Is that correct?
>
> Ted

-- 
 dodecatheon at gmail dot com
 Frango ut patefaciam -- I break so that I may reveal




reply via email to

[Prev in Thread] Current Thread [Next in Thread]