GNU bug report logs - #17515
* lisp/vc/vc-hg.el (vc-hg-root-log-format): New format supports graph, branches and bookmarks.

Previous Next

Package: emacs;

Reported by: Santiago Payà i Miralta <santiagopim <at> gmail.com>

Date: Fri, 16 May 2014 22:11:02 UTC

Severity: wishlist

Tags: patch

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#17515: closed (* lisp/vc/vc-hg.el (vc-hg-root-log-format):
 New format supports graph, branches and bookmarks.)
Date: Fri, 06 Jun 2014 16:13:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 06 Jun 2014 12:12:09 -0400
with message-id <jwvsinit4ux.fsf-monnier+emacsbugs <at> gnu.org>
and subject line Re: bug#17515: Correction: using log-switch causes normal non shortlog use fail format
has caused the debbugs.gnu.org bug report #17515,
regarding * lisp/vc/vc-hg.el (vc-hg-root-log-format): New format supports graph, branches and bookmarks.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
17515: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17515
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Santiago Payà i Miralta <santiagopim <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: * lisp/vc/vc-hg.el (vc-hg-root-log-format): New format supports
 graph, branches and bookmarks.
Date: Sat, 17 May 2014 00:09:52 +0200
[Message part 3 (text/plain, inline)]
Hi emacs,

I wish to improve the vc-change-log buffer in vc-hg with the graph view. My
proposal is a change in default configuration. The vc-hg-root-log-format is
compatible with or without the graph view. Also added branches and
bookmarks.

2014-05-17 Santiago Payà i Miralta <santiagopim <at> gmail.com>

        * lisp/vc/vc-hg.el (vc-hg-root-log-format): New format
 supports graph, branches and bookmarks.

From a917e85f083907030daea6d1cf70ba524f5bbab9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Santiago=20Pay=C3=A0=20i=20Miralta?= <santiagopim <at> gmail.com>
Date: Fri, 16 May 2014 23:58:57 +0200
Subject: [PATCH] * lisp/vc/vc-hg.el (vc-hg-root-log-format): New format
 supports graph, branches and bookmarks.

Modern Mercurial log command supports --graph, also the graphlog extension
is widely used in ancient Mercurial. So with adding this default
configuration vc-hg users may see the graph DAG in the vc-change-log
buffer. Users have the choice to define vc-hg-log-switches as nil again,
the vc-hg-root-log-format is compatible with no graph switch.

Also added branches and bookmarks to the log format, with some different
but existing faces from add-log.
---
 lisp/vc/vc-hg.el | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 05b53a3..649c736 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -146,12 +146,14 @@ If nil, use the value of `vc-diff-switches'.  If t,
use no switches."
   :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\\}\\)"
-    ((1 'log-view-message-face)
-     (2 'change-log-list)
-     (3 'change-log-name)
-     (4 'change-log-date)))
+  '("{rev}:{ifeq(branch, 'default','', '{branch}')}:{bookmarks}:{tags}:
{author|person} {date|shortdate} {desc|firstline}\\n"
+    "^\\(?:[+@o x|-]*\\)\\([0-9]+\\):\\([^:]*\\):\\([^:]*\\):\\([^:]*\\):
\\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)"
+((1 'log-view-message-face)
+     (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,
@@ -238,8 +240,9 @@ highlighting the Log View buffer."

 ;;; History functions

-(defcustom vc-hg-log-switches nil
-  "String or list of strings specifying switches for hg log under VC."
+(defcustom vc-hg-log-switches (list "--graph")
+  "String or list of strings specifying switches for hg log under VC.
+Using --graph needs Mercurial 3.0+ or the graphlog extension."
   :type '(choice (const :tag "None" nil)
                  (string :tag "Argument String")
                  (repeat :tag "Argument List" :value ("") string))
-- 
2.0.0.rc0
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Santiago Payà i Miralta <santiagopim <at> gmail.com>
Cc: 17515-done <at> debbugs.gnu.org
Subject: Re: bug#17515: Correction: using log-switch causes normal non
 shortlog use fail format
Date: Fri, 06 Jun 2014 12:12:09 -0400
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  <santiagopim <at> gmail.com>
+
+	* 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  <monnier <at> iro.umontreal.ca>
 
 	* 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  <santiagopim <at> gmail.com>  (tiny change)
+2014-05-12  Santiago Payà i Miralta  <santiagopim <at> gmail.com>
 
 	* 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)



This bug report was last modified 9 years and 159 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.