[Top][All Lists]
[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