git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Theodore Tso <tytso@mit.edu>
To: David Kastrup <dak@gnu.org>
Cc: git@vger.kernel.org
Subject: Re: What's in git.git (stable)
Date: Sun, 29 Jul 2007 12:40:01 -0400	[thread overview]
Message-ID: <20070729164001.GA9597@thunk.org> (raw)
In-Reply-To: <85ir83zijd.fsf@lola.goethe.zz>

On Sun, Jul 29, 2007 at 11:05:42AM +0200, David Kastrup wrote:
> Theodore Tso <tytso@mit.edu> writes:
> 
> > So I really am beginning to think the right answer is to give up on
> > using git-mergetool to support anything other than basic emacs users
> > (who just use emacs as an editor, what a concept),
> 
> In contrast, you are trying to support only people by using Emacs
> _not_ as an editor, but as a mergetool under the control of git.
> That's a mistake.

The whole *point* of git-mergetool is to automatically call merge
tools so you can do three-way merges under the control of git.  

If you just want an *editor* then you can just edit the files that are
listed as being in conflict after a failed merge or after running "git
status".  You can do that today without using git-mergetool at all!

> Sorry, but you are way off here.  The normal, standard use of Emacs is
> to start it once and do everything in it.  Its startup time is such
> that other uses are not feasible.

Huh?  The startup time of running emacs for me is well under a second
(and I have a 20k ~/.emacs.el file that loads a number of other
files).  I'm sure if you put enough *crap* into your .emacs.el file,
you can make it take a huge amount of time, but I suspect your idea of
what is "normal" for emacs is more than a little skewed.

> So git's mergetool philosophy is currently _straight_ set against the
> way Emacs is designed to work.

So don't use git-mergetool.  Like I said, I suspect the right answer
is contrib/git-mergetool.el, and do everything inside emacs.  If you
are as extreme as someone who pulls in gazillions of emacs packages,
and you are using emacs as a desktop, a shell, and a window manager,
then you can probably do much better using a pure emacs lisp merge
system.

Git mergetool is fundamentally designed to work with tools like meld,
kdiff3, xxdiff, tkdiff, etc.  These are all merge tools, and they work
a certain way.  They expect, and need, to be driven a certain way.  If
you insist on following a fundamentally different paradigm, then past
a certain point git-mergetool is not going to make you happy no matter
what I can do.  The point is, git-mergetool does *need* to do know
when you are done doing a merge, and it needs to know if you've
decided to abandon a merge.  Right now ediff doesn't fit well into
that paradigm.  And that's fundamentally ediff's fault; we can do some
kludgery on the git-mergetool side, but the end result will always be
unsatisfactory, and will require that the person using it to *know*
that it is done.

I, personally, don't feel like trying to twist git-mergetool into
doing the right thing depending on whether you have emacs21, emacs22,
emacs23-snapshot, whether or not the desktop package is in use,
whether or not the user is using emacsclient or not, yadda, yadda,
yaddda.  If you want to take a crack at doing *all* of that mess, and
provide a complete solution, send me patches and I'll look at them.

I think it will add a huge amount of *crap* into git-mergetool in
order to support all possible use cases (I'm not interesting in
putting in hackery just for your favorite use case, if it causes other
users to scratch their heads in befuddlement and confusion), but feel
free to prove me wrong.  

As someone who has used emacs for over two decades, and have written
very sophisticated emacs lisp code during nearly all of those 21 years
(1986--2007; my first use of emacs was on a Vax 750 running BSD 4.3
--- if you want to talk about emacs taking a long time to start up, I
remember what it was like 20 years ago), I'm pretty well aware of what
you can and can not do in emacs, and I think I can say with fairly
good authority that for the amount of effort it would take to try to
get git-mergetool to hack around all of these different cases, writing
git-mergetool.el will probably be easier, and result in a cleaner,
better integration with people who like to live their entire lives in
a single emacs session.

					- Ted

  reply	other threads:[~2007-07-29 16:40 UTC|newest]

Thread overview: 273+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-13 22:30 What's in git.git (stable) Junio C Hamano
2007-05-17  0:21 ` Junio C Hamano
2007-05-19  5:24   ` Junio C Hamano
2007-05-23 21:46     ` Junio C Hamano
2007-05-29 10:12       ` Junio C Hamano
2007-06-02 21:09         ` Junio C Hamano
2007-06-07  2:08           ` Junio C Hamano
2007-06-13 20:11             ` Junio C Hamano
2007-06-13 22:31               ` Johannes Schindelin
2007-06-14  7:12                 ` Johannes Sixt
2007-06-21  7:21               ` Junio C Hamano
2007-06-25  9:43                 ` Junio C Hamano
2007-07-02  0:16                   ` Junio C Hamano
2007-07-13  6:06                     ` What's in git.git Junio C Hamano
2007-07-13  6:40                       ` Draft release notes for v1.5.3, as of -rc1 Junio C Hamano
2007-07-13  9:29                         ` Sven Verdoolaege
2007-07-14 14:22                           ` Johannes Schindelin
2007-07-14 18:13                             ` Junio C Hamano
2007-07-15 23:53                               ` Johannes Schindelin
2007-07-13 13:50                         ` Brian Downing
2007-07-13 15:31                           ` Junio C Hamano
2007-07-28  8:47                       ` What's in git.git (stable) Junio C Hamano
2007-07-28  8:56                         ` David Kastrup
2007-07-28  9:02                           ` Junio C Hamano
2007-07-28  9:35                           ` David Kastrup
2007-07-29  3:16                             ` Theodore Tso
2007-07-29  9:05                               ` David Kastrup
2007-07-29 16:40                                 ` Theodore Tso [this message]
2007-07-29 11:27                               ` Johannes Schindelin
2007-07-29 13:51                                 ` [Untested! proposal] git-mergetool.sh: introduce ediff option David Kastrup
2007-07-29 20:52                                   ` Theodore Tso
2007-07-29 23:30                                     ` David Kastrup
2007-07-28 12:28                         ` What's in git.git (stable) Thomas Glanzmann
2007-08-07  6:22                         ` Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2008-07-21  7:09 Junio C Hamano
2008-04-09  6:51 [ANNOUNCE] GIT 1.5.5 Junio C Hamano
2008-04-09  9:44 ` What's in git.git (stable) Junio C Hamano
2008-04-14  7:00   ` Junio C Hamano
2008-04-19  8:18     ` Junio C Hamano
2008-04-27  6:04       ` Junio C Hamano
2008-05-06  6:38         ` Junio C Hamano
2008-05-14 22:35           ` Junio C Hamano
2008-05-24  1:32             ` Junio C Hamano
2008-05-30 20:43               ` Junio C Hamano
2008-06-02  8:01                 ` Junio C Hamano
2008-06-13 10:10                   ` Junio C Hamano
2008-06-18  7:32                     ` Junio C Hamano
2008-06-18 10:59                       ` Jeff King
2008-06-21 10:06                       ` Junio C Hamano
2008-06-23  7:25                         ` Junio C Hamano
2008-06-25  9:34                           ` Junio C Hamano
2008-07-02  6:28                             ` Junio C Hamano
2008-07-06 10:04                               ` Junio C Hamano
2008-07-08  2:46                                 ` Junio C Hamano
2008-07-14  5:33                                   ` Junio C Hamano
2008-07-16  3:33                                     ` Junio C Hamano
2008-07-20  1:59                                       ` Junio C Hamano
2008-07-20 11:20                                         ` Lars Noschinski
2008-07-20 18:27                                           ` Junio C Hamano
2008-01-30  8:32 What's in git.git (stable frozen) Junio C Hamano
2008-02-12  7:25 ` What's in git.git Junio C Hamano
2008-02-17  3:56   ` What's in git.git (stable) Junio C Hamano
2008-02-17 13:39     ` Jakub Narebski
2008-02-17 20:45       ` Junio C Hamano
2008-02-17 20:51         ` Johannes Schindelin
2008-02-18  1:31           ` Junio C Hamano
2008-02-18  1:34             ` Johannes Schindelin
2008-02-18  1:43               ` Jeff King
2008-02-18  2:05                 ` Johannes Schindelin
2008-02-18  3:12                 ` Junio C Hamano
2008-02-18 11:15                   ` Jeff King
2008-02-21  4:16     ` Junio C Hamano
2008-02-25  8:42       ` Junio C Hamano
2008-02-28  0:43         ` Junio C Hamano
2008-03-03  2:06           ` Junio C Hamano
2008-03-06  6:02             ` Junio C Hamano
2008-03-08 10:08               ` Junio C Hamano
2008-03-09 10:46                 ` Junio C Hamano
2008-03-14  9:11                   ` Junio C Hamano
2008-03-23 10:08                     ` Junio C Hamano
2008-03-28  1:45                       ` Junio C Hamano
2008-03-31  8:39                         ` Junio C Hamano
2008-04-04 18:24                           ` Junio C Hamano
2008-04-05  3:13                             ` Shawn O. Pearce
2008-01-14  1:53 Junio C Hamano
2007-10-22  6:11 What's in git/spearce.git (stable) Shawn O. Pearce
2007-11-01  5:39 ` What's in git.git (stable) Junio C Hamano
2007-11-04  3:52   ` Junio C Hamano
2007-11-08  8:06     ` Junio C Hamano
2007-11-08 11:38       ` Pierre Habouzit
2007-11-12  7:06       ` Junio C Hamano
2007-11-15  0:20         ` Junio C Hamano
2007-11-17 21:00           ` Junio C Hamano
2007-11-25 20:45             ` Junio C Hamano
2007-12-01  2:05               ` Junio C Hamano
2007-12-04  8:43                 ` Junio C Hamano
2007-12-05 10:57                   ` Junio C Hamano
2007-12-07  9:50                     ` Junio C Hamano
2007-12-09 10:32                       ` Junio C Hamano
2007-09-06  8:52 Junio C Hamano
     [not found] ` <7v3axhd0lr.fsf@gitster.siamese.dyndns.org>
2007-09-26 20:05   ` Junio C Hamano
2007-10-02  5:52     ` Junio C Hamano
2007-08-23  0:37 Junio C Hamano
2007-08-24  0:28 ` Jakub Narebski
2007-08-11  8:41 Junio C Hamano
2007-08-11  9:32 ` David Kastrup
2007-08-16  5:02 ` Junio C Hamano
2007-05-09  8:46 Junio C Hamano
2007-04-16  1:27 Junio C Hamano
2007-04-18 23:58 ` Junio C Hamano
2007-04-22  6:22   ` Junio C Hamano
2007-04-23  7:04     ` Junio C Hamano
2007-04-27  8:34       ` Junio C Hamano
2007-04-27  9:19         ` Andy Parkins
2007-04-27 14:01           ` Nicolas Pitre
2007-04-27 15:21             ` Andy Parkins
2007-04-27 17:11           ` Linus Torvalds
2007-04-27 18:03             ` Andy Parkins
2007-04-27 18:12               ` Linus Torvalds
2007-04-29 18:33         ` Junio C Hamano
2007-04-30  4:15           ` J. Bruce Fields
2007-04-30  5:12             ` Junio C Hamano
2007-05-01  3:36               ` J. Bruce Fields
2007-05-06  8:53           ` Junio C Hamano
2007-05-07  0:59             ` Jakub Narebski
2007-05-07 13:33             ` Frank Lichtenheld
2007-04-09  8:17 Junio C Hamano
2007-03-31  9:34 Junio C Hamano
2007-03-31 11:54 ` Alex Riesen
2007-04-05  6:44 ` Junio C Hamano
2007-02-20  7:32 Junio C Hamano
2007-02-23  8:33 ` Junio C Hamano
2007-03-04 10:32   ` Junio C Hamano
2007-03-13  8:49     ` Junio C Hamano
2007-03-13  9:26       ` Junio C Hamano
2007-03-22 17:08       ` Steven Grimm
2007-03-22 21:30         ` Junio C Hamano
2007-03-25  8:32       ` Junio C Hamano
2007-02-14 23:54 Junio C Hamano
2007-02-07 23:21 [ANNOUNCE] GIT 1.5.0-rc4 Junio C Hamano
2007-02-13  5:15 ` What's in git.git (stable) Junio C Hamano
2007-02-13 10:15   ` Johannes Schindelin
2007-02-13 17:33     ` Junio C Hamano
2007-02-13 18:21       ` Randal L. Schwartz
2007-02-13 18:37         ` Johannes Schindelin
2007-02-13 22:02           ` Jimmy Tang
2007-02-13 23:31             ` Linus Torvalds
2007-02-13 13:56   ` Matthias Lederhofer
2007-02-13 16:58     ` Junio C Hamano
2007-02-13 14:33   ` Bill Lear
2007-02-13 14:37     ` Bill Lear
2007-02-13 17:18       ` Randal L. Schwartz
2007-02-01  0:26 [ANNOUNCE] GIT 1.5.0-rc3 Junio C Hamano
2007-02-04  9:36 ` What's in git.git (stable) Junio C Hamano
2007-02-04 18:51   ` Jeff King
2007-02-04 19:12     ` Linus Torvalds
2007-02-04 20:58       ` Theodore Tso
2007-02-04 21:34         ` Jakub Narebski
2007-02-04 22:25           ` David Kågedal
2007-01-27  8:05 Junio C Hamano
2007-01-27  8:59 ` Aneesh Kumar K.V
2007-01-27 18:06   ` J. Bruce Fields
2007-01-27 22:00   ` Junio C Hamano
2007-01-27 17:56 ` J. Bruce Fields
2007-01-28 19:34 ` Bill Lear
2007-01-28 20:06   ` Junio C Hamano
2007-01-10  8:24 Junio C Hamano
2007-01-10  8:23 Junio C Hamano
2007-01-02  0:07 Junio C Hamano
2007-01-07  7:43 ` Junio C Hamano
2006-12-31  8:07 Junio C Hamano
2006-12-26  3:22 What's in git.git (stable) and announcing GIT 1.5.0 preview Junio C Hamano
2006-12-29  5:44 ` What's in git.git (stable) Junio C Hamano
2006-12-22  9:25 Junio C Hamano
2006-12-22 17:15 ` Randal L. Schwartz
2006-12-22 17:19   ` Randal L. Schwartz
2006-12-22 18:09     ` Johannes Schindelin
2006-12-22 18:12       ` Randal L. Schwartz
2006-12-22 18:21         ` Randal L. Schwartz
2006-12-22 19:21         ` Johannes Schindelin
2006-12-22 20:13           ` Junio C Hamano
2006-12-22 20:44             ` Johannes Schindelin
2006-12-22 21:44               ` Junio C Hamano
2006-12-26 20:25                 ` Luben Tuikov
2006-12-26 23:54                   ` Junio C Hamano
2006-12-27  1:19                     ` Luben Tuikov
2006-12-27  2:14                       ` Junio C Hamano
2006-12-22 18:58     ` Junio C Hamano
2006-12-22 20:04       ` Jakub Narebski
2006-12-22 20:16         ` Junio C Hamano
2006-12-22 20:56           ` Jakub Narebski
2006-12-22 21:49             ` Junio C Hamano
2006-12-22 20:21 ` Quy Tonthat
2006-12-18  7:26 Junio C Hamano
     [not found] ` <Pine.LNX.4.64.0612181012280.3479@woody.osdl.org>
2006-12-18 22:04   ` Junio C Hamano
2006-12-16 23:10 Junio C Hamano
2006-12-13 21:35 Junio C Hamano
2006-12-13 22:37 ` Andy Parkins
2006-12-13 22:48   ` Jakub Narebski
2006-12-14  9:27     ` Andy Parkins
2006-12-14  9:36       ` Shawn Pearce
2006-12-14 10:03         ` Andy Parkins
2006-12-14 17:06         ` Nicolas Pitre
2006-12-15 14:28           ` Jakub Narebski
2006-12-13 23:31   ` Junio C Hamano
2006-12-13 23:52     ` Peter Baumann
2006-12-14  0:16     ` Johannes Schindelin
2006-12-14  3:32       ` Nicolas Pitre
2006-12-14  6:29         ` Junio C Hamano
2006-12-14  8:28     ` Andreas Ericsson
2006-12-15 14:39       ` Jakub Narebski
2006-12-14  9:59     ` Andy Parkins
2006-12-14 10:21       ` Junio C Hamano
2006-12-14 11:36         ` Andy Parkins
2006-12-14 11:45           ` Shawn Pearce
2006-12-14 11:58             ` Carl Worth
2006-12-14 12:05               ` Shawn Pearce
2006-12-14 18:06                 ` Nicolas Pitre
2006-12-14 19:52                   ` Junio C Hamano
2006-12-14 20:02                     ` Shawn Pearce
2006-12-14 20:22                       ` Nicolas Pitre
2006-12-14 20:35                       ` Junio C Hamano
2006-12-14 22:44                         ` Shawn Pearce
2006-12-14 21:55                       ` Andreas Ericsson
2006-12-15 21:55                         ` Junio C Hamano
2006-12-16  2:54                           ` Shawn Pearce
2006-12-14 20:17                     ` Nicolas Pitre
2006-12-14 20:50                       ` Junio C Hamano
2006-12-14 17:47             ` Nicolas Pitre
2006-12-14 21:58             ` Junio C Hamano
2006-12-14 22:50               ` Andy Parkins
2006-12-15 15:38                 ` Jakub Narebski
2006-12-15 15:26           ` Jakub Narebski
2006-12-15 15:30             ` Nicolas Pitre
2006-12-15 15:48               ` Andreas Ericsson
2006-12-15 16:08                 ` Nicolas Pitre
2006-12-15 16:12                   ` Shawn Pearce
2006-12-15 16:13                   ` Andreas Ericsson
2006-12-15 23:22               ` Johannes Schindelin
2006-12-15  4:07         ` Nicolas Pitre
2006-12-14 21:22       ` Junio C Hamano
2006-12-14 22:55         ` Andy Parkins
2006-12-14 23:46           ` Junio C Hamano
2006-12-15  8:58             ` Andy Parkins
2006-12-15  9:55               ` Raimund Bauer
2006-12-15 21:55               ` Junio C Hamano
2006-12-15 22:54                 ` Carl Worth
2006-12-14 23:53           ` Johannes Schindelin
2006-12-14 23:52     ` Horst H. von Brand
2006-12-15 10:53       ` Jakub Narebski
2006-12-14  0:22   ` Johannes Schindelin
2006-12-14 10:21     ` Andy Parkins
2006-12-14 10:51       ` Johannes Schindelin
2006-12-14 11:23         ` Andy Parkins
2006-12-14 11:27           ` Johannes Schindelin
2006-12-14 12:00             ` Andy Parkins
2006-12-14 12:10               ` Shawn Pearce
2006-12-14 13:20                 ` Andy Parkins
2006-12-15  0:15         ` Horst H. von Brand
2006-12-15  0:23           ` Johannes Schindelin
2006-12-14 17:23       ` Nicolas Pitre
2006-12-14 21:02         ` Andy Parkins
2006-12-14 23:03   ` Shawn Pearce
2006-12-15 16:16     ` Jakub Narebski
2006-12-15 21:55       ` Junio C Hamano
2006-12-15 22:48         ` Jakub Narebski
2006-12-15 23:25           ` Johannes Schindelin
2006-12-15 23:45             ` Junio C Hamano
2006-12-16  0:14               ` Johannes Schindelin
2006-12-16  0:30                 ` Junio C Hamano
2006-12-16 17:12                   ` Steven Grimm
2006-12-16 19:57                     ` Junio C Hamano
2006-12-15 23:42           ` Junio C Hamano
2006-12-16  9:58 ` Junio C Hamano
2006-12-16 13:59 ` Jakub Narebski
2006-12-16 22:04   ` Junio C Hamano
2006-12-06 21:18 Junio C Hamano
2006-12-08 15:36 ` Jakub Narebski
2006-12-09 20:44 ` Tilman Sauerbeck
2006-12-09 21:10   ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070729164001.GA9597@thunk.org \
    --to=tytso@mit.edu \
    --cc=dak@gnu.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).