Subject: bug#17515: Correction: using log-switch causes normal non shortlog use fail format

From: Santiago <[email-masked]>
Date: Sat, 07 Jun 2014 22:24:36 +0200

Hello,

Many many thanks for all the corrections. I am sorry for alignment problems, I fear that the gmail web client is not preferred email client to send patches. I will review the next 'shipment'.

Best regards,

Santiago

--
Smartphoning

---- Stefan Monnier wrote ----

>OK, I see your papers are in.  Now that I'm looking at your patch,
>I have one more comment.  The previous version of your patch said:
>
>   Using --graph needs Mercurial 3.0+ or the graphlog extension.
>
>Yet my Debian install is still at 2.9.2, so using --graph by default
>seems risky.  Is there a way to test whether "hg" supports "--graph"?
>
>Oh, and your patch was mangled.  Try to use a MUA that doesn't wrap
>lines for you.
>
>I installed the tweaked patch below, which avoids going over
>80-columns, updates the :version info, and introduces a config var to
>enable the --graph (this var should be set automatically depending on
>whether --graph is supported, but for now it just defaults to nil).
>
>
>        Stefan
>
>
>=== modified file 'lisp/ChangeLog'
>--- lisp/ChangeLog	2014-06-06 14:37:05 +0000
>+++ lisp/ChangeLog	2014-06-06 16:11:32 +0000
>@@ -1,3 +1,10 @@
>+2014-06-06  Santiago Payà i Miralta  <[email-masked]>
>+
>+	* vc/vc-hg.el (vc-hg-log-graph): New var.
>+	(vc-hg-print-log): Use it.
>+	(vc-hg-root-log-format): Include branch name and bookmarks; ignore
>+	graph output (bug#17515).
>+
> 2014-06-06  Stefan Monnier  <[email-masked]>
> 
> 	* mouse.el (mouse-posn-property): Ignore buffer position info when the
>@@ -631,7 +638,7 @@
> 	* emacs-lisp/nadvice.el (advice--interactive-form): Don't get fooled
> 	into autoloading just because of a silly indirection.
> 
>-2014-05-12  Santiago Payà i Miralta  <[email-masked]>  (tiny change)
>+2014-05-12  Santiago Payà i Miralta  <[email-masked]>
> 
> 	* vc/vc-hg.el (vc-hg-unregister): New function.  (Bug#17454)
> 
>
>=== modified file 'lisp/vc/vc-hg.el'
>--- lisp/vc/vc-hg.el	2014-05-11 02:01:08 +0000
>+++ lisp/vc/vc-hg.el	2014-06-06 16:07:59 +0000
>@@ -146,12 +146,19 @@
>   :group 'vc-hg)
> 
> (defcustom vc-hg-root-log-format
>-  '("{rev}:{tags}: {author|person} {date|shortdate} {desc|firstline}\\n"
>-    "^\\([0-9]+\\):\\([^:]*\\): \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)"
>+  `(,(concat "{rev}:{ifeq(branch, 'default','', '{branch}')}"
>+             ":{bookmarks}:{tags}:{author|person}"
>+             " {date|shortdate} {desc|firstline}\\n")
>+    ,(concat "^\\(?:[+@o x|-]*\\)"      ;Graph data.
>+             "\\([0-9]+\\):\\([^:]*\\)"
>+             ":\\([^:]*\\):\\([^:]*\\):\\(.*?\\)"
>+             "[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)")
>     ((1 'log-view-message-face)
>-     (2 'change-log-list)
>-     (3 'change-log-name)
>-     (4 'change-log-date)))
>+     (2 'change-log-file)
>+     (3 'change-log-list)
>+     (4 'change-log-conditionals)
>+     (5 'change-log-name)
>+     (6 'change-log-date)))
>   "Mercurial log template for `vc-hg-print-log' short format.
> This should be a list (TEMPLATE REGEXP KEYWORDS), where TEMPLATE
> is the \"--template\" argument string to pass to Mercurial,
>@@ -160,7 +167,7 @@
> highlighting the Log View buffer."
>   :type '(list string string (repeat sexp))
>   :group 'vc-hg
>-  :version "24.1")
>+  :version "24.5")
> 
> >
> ;;; Properties of the backend
>@@ -247,6 +254,9 @@
> 
> (autoload 'vc-setup-buffer "vc-dispatcher")
> 
>+(defvar vc-hg-log-graph nil
>+  "If non-nil, use `--graph' in the short log output.")
>+
> (defun vc-hg-print-log (files buffer &optional shortlog start-revision limit)
>   "Print commit log associated with FILES into specified BUFFER.
> If SHORTLOG is non-nil, use a short format based on `vc-hg-root-log-format'.
>@@ -264,7 +274,9 @@
> 	     (nconc
> 	      (when start-revision (list (format "-r%s:0" start-revision)))
> 	      (when limit (list "-l" (format "%s" limit)))
>-	      (when shortlog (list "--template" (car vc-hg-root-log-format)))
>+	      (when shortlog `(,@(if vc-hg-log-graph '("--graph"))
>+                               "--template"
>+                               ,(car vc-hg-root-log-format)))
> 	      vc-hg-log-switches)))))
> 
> (defvar log-view-message-re)
>