Tobias Weingartner wrote:
>
> On Monday, March 6, Michael Gersten wrote:
> > "Greg A. Woods" wrote:
> > > I can't see any reason for doing this though -- beyond wanting to
> > > confuse yourself and anyone else who might look at the result.
> >
> > How about this: After working on something, I realize that it
> > needs to be checked in, but isn't really ready yet. I want to
> > check it in as-is, but I didn't set up a branch before I started
> > editing.
>
> Cripes, use "cvs diff" to give you a diff of your changes, checkout
> a new sandbox (or revert your old one), add the branch, apply the
> diffs (using patch), commit.
>
> > Or, how about "Ok, this is now working, lets stop using the
> > current branch and go back to it's parent".
>
> Update with the appropriate -r or -A flags? Or do you mean
> "merge" your changes on the branch into another?
>
> --Toby.
Toby, do you program in assembly? I don't anymore.
I'm not trying to be mean or anything. I'm trying to point out
something here.
I drive automatics, not sticks.
I write in high level languages, not assembly.
I like the windows find tool that combines find, xargs, and grep in
one box. Yes, it's limited, but it often works faster than trying to
get the correct command typed in. And, it's more of what I think of.
I don't want to be told "Here's a list of commands you can use to get
this done". I want one command that does it.
I don't want to have to remember a list of steps, and worry about "did
I make a mistake anywhere?".
Yes, there is the ability to do this in CVS. As you said,
> Cripes, use "cvs diff" to give you a diff of your changes, checkout
> a new sandbox (or revert your old one), add the branch, apply the
> diffs (using patch), commit.
So I need to use diff, a temp file, a new checkout, and patch. Why not
have it all in one command?
*** You don't make something easy to use by putting a GUI on it.
*** You make something easy to use by making the exported operations
match the user thoughts/plans/wants.
WinCVS does a GUI on the CVS operations. No other abstractions other
than the CVS stuff. It is a gui, so the organization of the data
presented is a little better -- that's a plus (better
layout/organizaation of the data returned means better understanding
of more data).
But it's the CVS operations that matter.
Right now, I can (usually, not always, and no I don't remember why it
failed when it did) do:
To decide that I want to create a branch at checkin, with modified
files:
cvs tag base-branch
cvs tag -b branch
cvs update -r branch
cvs commit
Why do I need 4 commands to do one operation?
Just now I made some changes to files, and realized that what I had
should have been merged onto the trunk before I made these changes.
Nothing else had been modified on the trunk since my branching. So, in
theory, I could say
cvs move-branch removeLocks onto-parent as-branch base-newrevision //
THIS DOESN'T EXIST -- modify repository only
cvs rtag -r base-newrevision -b newrevision // modify repository --
make new branch
cvs update -r newrevision // switch my newly modified files onto
newrevsion
cvs commit
That's another 4 commands, one of which doesn't exist, unless I do a
lot of diff, revert, patch, etc.
Why?
Why not put all that into CVS? The "flying fish" approach to the
repository is really the (my opinion) proper way to use it. Otherwise,
you can only commit a change when it is ready for prime time, or else
you will hose every other developer.
Michael