All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Martin Nordholts <enselic@gmail.com>
Cc: git@vger.kernel.org, Alexandre Julliard <julliard@winehq.org>
Subject: Re: [PATCH] git.el: Use git-add-file for unmerged files, remove git-resolve-file
Date: Tue, 08 Sep 2009 16:10:34 -0700	[thread overview]
Message-ID: <7vtyzdrq1h.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <4AA026AC.10907@gmail.com> (Martin Nordholts's message of "Thu\, 03 Sep 2009 22\:27\:24 +0200")

Martin Nordholts <enselic@gmail.com> writes:

> Use `git-add-file' to mark unmerged files as resolved in the
> *git-status* buffer to be consistent with git's CLI instructions. Also
> remove `git-resolve-file' to make it clear that that "R" is a now a
> free keybinding.

I do not know all the details of how Emacs keybinding works, but I had an
impression that something-x sequence is triggered if you type something-X
and you do not have an explicit binding for something-X but you do have a
binding for something-x.

IOW, if I only have

	(define-key global-map "\C-xc" 'compile)

then both "\C-xc" and "\C-xC" runs "compile", but in addition to the
above if I also have

	(define-key global-map "\C-xC" 'grep-find)

then I can invoke these two commands with lower- and upper- case 'c/C'
after control-x.

If people have been relying on the historical behaviour that typing "R"
marked the path resolved (which may internally have been implemented with
whatever way), and if you are removing that binding, wouldn't that now
expose them to whatever happens to be bound to "r"?

And worse, it is bound to git-remove-file.  Shouldn't you at least rebind
the "R" to something safer, like beep?

Am I grossly misunderstanding how Emacs keybindings work?  Is the
experiment I did in the initial part of the message with the global-map
relying on some "magic" that only appears in global-map, and there is no
problem doing this in the map this patch is about?

> Signed-off-by: Martin Nordholts <martinn@src.gnome.org>
> Acked-by: Alexandre Julliard <julliard@winehq.org>
> ---
>  contrib/emacs/git.el |   13 +------------
>  1 files changed, 1 insertions(+), 12 deletions(-)
>
> diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el
> index 8c70ad8..214930a 100644
> --- a/contrib/emacs/git.el
> +++ b/contrib/emacs/git.el
> @@ -1046,7 +1046,7 @@ The FILES list must be sorted."
>  (defun git-add-file ()
>    "Add marked file(s) to the index cache."
>    (interactive)
> -  (let ((files (git-get-filenames (git-marked-files-state 'unknown 'ignored))))
> +  (let ((files (git-get-filenames (git-marked-files-state 'unknown 'ignored 'unmerged))))
>      ;; FIXME: add support for directories
>      (unless files
>        (push (file-relative-name (read-file-name "File to add: " nil nil t)) files))
> @@ -1119,15 +1119,6 @@ The FILES list must be sorted."
>                (when buffer (with-current-buffer buffer (revert-buffer t t t)))))
>            (git-success-message "Reverted" names))))))
>  
> -(defun git-resolve-file ()
> -  "Resolve conflicts in marked file(s)."
> -  (interactive)
> -  (let ((files (git-get-filenames (git-marked-files-state 'unmerged))))
> -    (when files
> -      (when (apply 'git-call-process-display-error "update-index" "--" files)
> -        (git-update-status-files files)
> -        (git-success-message "Resolved" files)))))
> -
>  (defun git-remove-handled ()
>    "Remove handled files from the status list."
>    (interactive)
> @@ -1556,7 +1547,6 @@ amended version of it."
>      (define-key map "P"   'git-prev-unmerged-file)
>      (define-key map "q"   'git-status-quit)
>      (define-key map "r"   'git-remove-file)
> -    (define-key map "R"   'git-resolve-file)
>      (define-key map "t"    toggle-map)
>      (define-key map "T"   'git-toggle-all-marks)
>      (define-key map "u"   'git-unmark-file)
> @@ -1598,7 +1588,6 @@ amended version of it."
>        ("Merge"
>  	["Next Unmerged File" git-next-unmerged-file t]
>  	["Prev Unmerged File" git-prev-unmerged-file t]
> -	["Mark as Resolved" git-resolve-file t]
>  	["Interactive Merge File" git-find-file-imerge t]
>  	["Diff Against Common Base File" git-diff-file-base t]
>  	["Diff Combined" git-diff-file-combined t]
> -- 
> 1.6.2.5

  parent reply	other threads:[~2009-09-08 23:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-03 20:27 [PATCH] git.el: Use git-add-file for unmerged files, remove git-resolve-file Martin Nordholts
2009-09-08 18:43 ` Alexandre Julliard
2009-09-08 20:43   ` Junio C Hamano
2009-09-08 23:10 ` Junio C Hamano [this message]
2009-09-09 16:09   ` Alexandre Julliard
2009-09-09 19: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

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

  git send-email \
    --in-reply-to=7vtyzdrq1h.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=enselic@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=julliard@winehq.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.