unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Andrii Kolomoiets <andreyk.mad@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 22860@debbugs.gnu.org
Subject: bug#22860: [PATCH] vc-hg: prompt for branch to merge
Date: Sat, 23 Nov 2019 20:51:28 +0200	[thread overview]
Message-ID: <1C27CCD0-2335-4EE2-B815-3D85F4B84D85@gmail.com> (raw)
In-Reply-To: <83lfs6tpb1.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 901 bytes --]

On 23 Nov 2019, at 20:34, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> +*** The Hg (Mercurial) back-end now use tag and branch names instead of
>> +revision numbers as completion candidates on reading revision.
> 
> Why "instead of revision numbers"? it sounds like a backward
> incompatible change.  Can't we use both revision numbers and
> branch/tag names?

You are right, it's backward incompatible. And yes, revision numbers can
be used with branch/tag names. But they should not. It was big surprise
for me to see numbers from 0 to 116K as completion candidates on
vc-retrieve-tag. IMO revision numbers are useles in completions.

>> (defun vc-hg-merge-branch ()
>> -  "Merge incoming changes into the current working directory.
>> +  "Prompts for branch and merge it into the current branch.
> 
> "Prompt", not "prompts", for consistency with how we word our doc
> strings for functions.

Fixed.


[-- Attachment #2: 0001-vc-hg-prompt-for-branch-to-merge.patch --]
[-- Type: application/octet-stream, Size: 2613 bytes --]

From 52af9a5a85aadb305035139fab2a962abb4eead0 Mon Sep 17 00:00:00 2001
From: Andrii Kolomoiets <andreyk.mad@gmail.com>
Date: Sat, 23 Nov 2019 18:43:47 +0200
Subject: [PATCH] vc-hg: prompt for branch to merge

* lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for branch to merge.
(vc-hg-revision-table): Use branches and tags as competion candidates.

* etc/NEWS Mention changes of vc-hg.el

This fixes bug#22860

diff --git a/etc/NEWS b/etc/NEWS
index ad349b1613..abd2c616bd 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -933,6 +933,11 @@ values.
 The 'C-x v h' command now works in buffers that visit files controlled
 by Hg.

+*** The Hg (Mercurial) back-end now prompt for branch to merge.
+
+*** The Hg (Mercurial) back-end now use tag and branch names instead of
+revision numbers as completion candidates on reading revision.
+
 +++
 *** 'C-u C-x v D' ('vc-root-version-diff') prompts for two revisions
 and compares their entire trees.
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 17d38fa400..b6cb315c1b 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -564,7 +564,8 @@ vc-hg-expanded-log-entry
 (defun vc-hg-revision-table (files)
   (let ((default-directory (file-name-directory (car files))))
     (with-temp-buffer
-      (vc-hg-command t nil files "log" "--template" "{rev} ")
+      (vc-hg-command t nil nil "branches" "-q")
+      (vc-hg-command t nil nil "tags" "-q")
       (split-string
        (buffer-substring-no-properties (point-min) (point-max))))))

@@ -1483,12 +1484,15 @@ vc-hg-push
   (vc-hg--pushpull "push" prompt nil (called-interactively-p 'interactive)))

 (defun vc-hg-merge-branch ()
-  "Merge incoming changes into the current working directory.
+  "Prompt for branch and merge it into the current branch.
 This runs the command \"hg merge\"."
   (let* ((root (vc-hg-root default-directory))
 	 (buffer (format "*vc-hg : %s*" (expand-file-name root)))
          ;; Disable pager.
-         (process-environment (cons "HGPLAIN=1" process-environment)))
-    (apply 'vc-do-async-command buffer root vc-hg-program '("--config" "ui.report_untrusted=0" "merge"))
+         (process-environment (cons "HGPLAIN=1" process-environment))
+         (branch (vc-read-revision "Merge from branch: ")))
+    (apply 'vc-do-async-command buffer root vc-hg-program
+           (append '("--config" "ui.report_untrusted=0" "merge")
+                   (unless (string= branch "") (list branch))))
     (with-current-buffer buffer (vc-run-delayed (vc-compilation-mode 'hg)))
     (vc-set-async-update buffer)))

--
2.15.1

  parent reply	other threads:[~2019-11-23 18:51 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29 20:56 bug#22860: 24.3; hg merge not too functional Ross Boylan
2019-11-23 18:12 ` bug#22860: [PATCH] vc-hg: prompt for branch to merge Andrii Kolomoiets
2019-11-23 18:34   ` Eli Zaretskii
2019-11-23 18:46     ` Dmitry Gutov
2019-11-23 18:51       ` Eli Zaretskii
2019-11-23 18:53         ` Dmitry Gutov
2019-11-23 18:51     ` Andrii Kolomoiets [this message]
2019-11-23 19:01       ` Eli Zaretskii
2019-11-23 20:15         ` Andrii Kolomoiets
2019-11-25 14:41           ` Dmitry Gutov
2019-11-25 21:55             ` Andrii Kolomoiets
2019-11-25 22:57               ` Dmitry Gutov
2019-11-26 18:19                 ` Eli Zaretskii
2019-11-26 18:16               ` Eli Zaretskii
2019-11-26 19:28                 ` Andrii Kolomoiets
2019-11-30 12:02                   ` Eli Zaretskii

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: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=1C27CCD0-2335-4EE2-B815-3D85F4B84D85@gmail.com \
    --to=andreyk.mad@gmail.com \
    --cc=22860@debbugs.gnu.org \
    --cc=eliz@gnu.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://git.savannah.gnu.org/cgit/emacs.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).