git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Elijah Newren <newren@gmail.com>
To: Scott Chacon <schacon@gmail.com>
Cc: git list <git@vger.kernel.org>
Subject: Re: EasyGit Integration
Date: Tue, 9 Jun 2009 16:00:14 -0600	[thread overview]
Message-ID: <51419b2c0906091500q6aaff225q42bd79e6349a1143@mail.gmail.com> (raw)
In-Reply-To: <d411cc4a0906091159r51e7d16t4d66c6225322fb60@mail.gmail.com>

Hi,

On Tue, Jun 9, 2009 at 12:59 PM, Scott Chacon<schacon@gmail.com> wrote:
> Hey all,
>
> I have been playing with the EasyGit project lately and I have been
> really impressed.

Thanks for bringing this up.  I should have done better at proposing
some of these changes upstream...

> * breaks the various things that 'checkout' does into separate
> commands - moves 'revert' to doing what 'checkout -- path' does, moves
> current 'revert' to 'cherry-pick --revert' (which someone mentioned
> was a good idea at the last GitTogether), and adds 'unstage' for

As a side note, the mapping from eg revert to git commands is not so
simple; you'll miss a lot of cases if you were to make a simple alias.
 :-)

<snip a highlight of some changes in eg>

I'll note that you can run 'eg changes --details' to get a (hopefully
up-to-date and) complete list...

> Some other things that might be nice:
>
> * 'git backout' for 'git reset HEAD^'

May cause confusion for mercurial users (hg backout == current git
revert).  I don't have a better proposal, though.  'uncommit'?


Also, a consistency proposal that I have not yet gotten to
implementing in eg; It'd be nice to add more consistency with these
commands:
 - continue incomplete am: git am --resolved
 - continue incomplete rebase: git rebase --continue
 - continue incomplete merge: git commit
so that it looks like this (while still allowing the old ways for
backward compatibility):
 => continue incomplete am: git am --continue
 => continue incomplete rebase: git rebase --continue
 => continue incomplete merge: git merge --continue   (or is this
going overboard?)

And to change this:
 - abort incomplete am: git am --abort
 - abort incomplete bisect: git bisect reset
 - abort incomplete merge: git reset --hard HEAD
 - abort incomplete rebase: git rebase --abort
so that it looks like this (again still allowing old ways):
 => abort incomplete am: git am --abort
 => abort incomplete bisect: git bisect --abort
 => abort incomplete merge: git merge --abort
 => abort incomplete rebase: git rebase --abort

> These things may seem pretty simple and even sort of stupid if you're
> used to Git as we are - most of them you can just setup an alias
> pretty easily, but you would be amazed at how many people go nuts
> because of this stuff.  If these simple things were in as defaults,
> sooo many of the remaining 'git is hard and obtuse' arguments would
> become obsolete.  'checkout', 'add' and 'reset' seem to be where
> people have the most difficulty, due to their overloading.
>
> Does this resonate with anyone else?  Does 1.7 seem like a good goal
> for amending some of these things?  Completely redefining 'revert'
> seems like the only backward incompatible change - everything else is
> just wrappers and whatnot, I think.

Mostly just wrappers, yes.  There are two other big incompatible
changes, both to push: (1) 'eg push' is basically hardcoded to do what
push.default=tracking now does (although now that push.default exists,
I'm considering dropping this change in eg), and (2) eg push will try
to check whether the remote repository is bare and deny the push
unless one of the arguments is a refspec that has a ':' character in
it (i.e. a push-side check, rather than git's recent receive-side
check; having both probably doesn't make sense, so it's another thing
I'm reconsidering).

Also, I wondered whether others would consider the different defaults
for commit & diff to be a big backward incompatible change, though the
fact that you didn't seem to notice it and lots of others don't either
suggest it's not that big (for experienced users).  There are also
more minor changes to the defaults of bundle, log, and status, but
those are innocuous enough that they hardly qualify as backward
incompatible.


Thanks,
Elijah

  parent reply	other threads:[~2009-06-09 22:00 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-09 18:59 EasyGit Integration Scott Chacon
2009-06-09 19:43 ` Nicolas Pitre
2009-06-09 19:52 ` Avery Pennarun
2009-06-09 20:37   ` Björn Steinbrink
2009-06-09 20:42     ` Avery Pennarun
2009-06-10 12:13       ` Björn Steinbrink
2009-06-09 20:49     ` Elijah Newren
2009-06-10  1:09   ` Miles Bader
2009-06-09 20:12 ` Björn Steinbrink
2009-06-09 20:40   ` Elijah Newren
2009-06-09 21:18     ` Björn Steinbrink
2009-06-09 21:27 ` Björn Steinbrink
2009-06-09 21:36   ` Junio C Hamano
2009-06-09 21:48   ` Elijah Newren
2009-06-09 22:00 ` Elijah Newren [this message]
2009-06-10 12:52   ` Matthieu Moy
2009-06-09 22:14 ` Linus Torvalds
2009-06-09 22:30   ` Elijah Newren
2009-06-09 22:40     ` Linus Torvalds
2009-06-10  0:40       ` Mark Lodato
2009-06-10  3:11       ` Miles Bader
2009-06-10  3:32       ` Theodore Tso
2009-06-10  4:03         ` Linus Torvalds
2009-06-10 22:31           ` Felipe Contreras
2009-06-10 23:04             ` Linus Torvalds
2009-06-10 23:57               ` Scott Chacon
2009-06-11  0:15                 ` Jakub Narebski
2009-06-11  0:30                   ` Felipe Contreras
2009-06-11  0:42                     ` Jakub Narebski
2009-06-12 20:57                       ` Felipe Contreras
2009-06-12 21:21                         ` Jakub Narebski
2009-06-12 21:48                           ` Felipe Contreras
2009-06-12 22:05                             ` Jakub Narebski
2009-06-12 22:30                               ` Felipe Contreras
2009-06-13  1:24                                 ` Björn Steinbrink
2009-06-11  0:18               ` Felipe Contreras
2009-06-10  4:20         ` Elijah Newren
2009-06-10 14:40       ` Matthieu Moy
2009-06-10  1:25   ` Sam Vilain
2009-06-10  1:59     ` Linus Torvalds
2009-06-10  2:18     ` Junio C Hamano
2009-06-10  2:52       ` Sam Vilain
2009-06-10  6:43         ` Jakub Narebski
2009-06-10  3:27       ` Nicolas Pitre
2009-06-10 20:47         ` Junio C Hamano
2009-06-10 22:28           ` Elijah Newren
2009-06-10 16:48       ` Scott Chacon
2009-06-10 22:15       ` Felipe Contreras
2009-06-10 22:04 ` Felipe Contreras

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

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

  git send-email \
    --in-reply-to=51419b2c0906091500q6aaff225q42bd79e6349a1143@mail.gmail.com \
    --to=newren@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=schacon@gmail.com \
    /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.
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 NNTP newsgroup(s).