[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
complicated merge question
complicated merge question
Tue, 18 Sep 2007 11:35:56 -0700
Gnus/5.110007 (No Gnus v0.7) Emacs/22.1.50 (gnu/linux)
Say I have created a branch:
cvs -d /cvs/root/dir checkout 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 \
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 \
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 \
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?
dodecatheon at gmail dot com
Frango ut patefaciam -- I break so that I may reveal
- complicated merge question,
Ted Stern <=