On Thu, Aug 25, 2005 at 02:37:33PM -0600, Carl Baldwin wrote:
> On Thu, Aug 25, 2005 at 02:59:18PM -0500, Kirby C. Bohling wrote:
> > On Thu, Aug 25, 2005 at 10:32:01AM -0600, Carl Baldwin wrote:
> > <snip...>
> > > Another example is if I'm working on a commit and suddenly get a
> > > brilliant idea for some easy modification that I want to make and commit
> > > by itself before making this commit. I can do this easily with
> > >
> > > % git undo
> > > % carefully make easy change
> > > % git commit
> > > % git redo
> > >
> > > Having a light-weight alternative like this could make the difference
> > > between realizing the easy, brilliant idea and forgetting about it on
> > > the back burner because it was just too cumbersome to make the context
> > > switch.
> > >
> > > The bottom line is that I don't argue against using the existing
> > > work-flows. I hope to add the flexibility to use various work-flows to
> > > fit the job at hand.
> > >
> > <snip...>
> >
> > [Not much of a git user, but am evaluating it for possible future
> > usage]...
> >
> > Why not just save the changes to a file via a patch. Just like you
> > would if you were sending a patch to someone else. I have the work
> > flow you are talking about when I use CVS. I just create a patch,
> > apply the patch in reverse (or run the command to get you a clean
> > working tree in the SCM). Make my unrelated changes commit it.
> > Then apply the patch, possibly resolve merge conflicts, and proceed
> > with finishing my original work.
>
> I used to do this with CVS too. For you and me, people who are patch
> savy veterans, this is great! However, as easy as it is I knew very few
> other developers who even thought about doing it. In the real world,
> many people see a huge difference between:
>
> git diff-cache > $patchfile
> cat $patchfile | patch -R -p1
> do work
> cat $patchfile | patch -p1
>
> AND
>
> git undo
> do work
> git redo
>
> The first one simply never happens with most developers. Most don't
> really think of doing something outside the tool. The second option
> will likely get used. Plus, I know at least one person here who is very
> good with patches and working outside the tool and still would love to
> have the second approach available.
I guess I can see that. I just see it as much easier to manage
multiple undo-redo states manually. I mean, I wouldn't make anyone
use git directly if the difference between the two commands bothers
them. git seems too low a level. I would think one of the
procelains would be be a better level. However, having a unified
interface for all the porcelains seems a reasonable request.
>
> Is there something wrong with having flexibility? It seems most of the
> criticism of this feature is that there is already a way to accomplish
> what I want to do. Tools that can't be used flexibly are not tools that
> I like to use. Heck, I'm on UNIX aren't I?
>
> Oops, sorry for the rant. I'm really not in a bad mood... really. I
> hope it didn't sound like that :-). Oh, and I didn't mean to suggest
> that git is not flexible in other regards. I think its great! Moving
> along...
>
> > Assuming your patch creation and application tools capture all the
> > meta-data the SCM has (which I believe git does), it's pretty simple
> > to simulate what you want manaully. With only a handful of
> > commands.
>
> I can simulate git manually too with just a few more commands. Where's
> the cutoff?
Yes and no. I meant the order and style of commands was nearly
identical. I meant applying the command line in reverse was the
only additional step. As a workflow, I'd just document it in the
HOWTO's. I'm a minimalist in that sense. Sure, I use more then
echo, redirection and netcat even though in theory I could send you
this e-mail with it. IMHO, the above undo/redo doesn't seem to save
enough effort to me. I wouldn't bother learning undo/redo unless it
was superior to the patch way, it's just one more thing I'd have to
remember.
>
> > I see the appeal of not having manually deal with the files, but
> > assuming you don't feel it's branch worthy, and you don't want to
> > have it be something someone else can access externally, it doesn't
> > seem like a feature I can't get almost as simply with existing git
> > commands.
>
> Not having to manually manage a set of patches may seem small but it
> reduces a barrier that may otherwise be just high enough to hurt
> productivity in certain situations.
I don't mean to discourge it's implementation, I really questioned
it because I figured there had to be some more subtle implications I
didn't understand about undo/redo that patch couldn't capture. It
also seems like multiple levels of undo/redo or undo/redo on
multiple branches could get tricky for the user to track and for git
to be able to display the information to the user sanely.
Thanks,
Kirby
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html