* bug#17515: * lisp/vc/vc-hg.el (vc-hg-root-log-format): New format supports graph, branches and bookmarks.
@ 2014-05-16 22:09 Santiago Payà i Miralta
2014-05-18 23:23 ` bug#17515: Correction: using log-switch causes normal non shortlog use fail format Santiago Payà i Miralta
0 siblings, 1 reply; 5+ messages in thread
From: Santiago Payà i Miralta @ 2014-05-16 22:09 UTC (permalink / raw)
To: 17515
[-- Attachment #1: Type: text/plain, Size: 3055 bytes --]
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@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@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
[-- Attachment #2: Type: text/html, Size: 9680 bytes --]
^ permalink raw reply related [flat|nested] 5+ messages in thread
* bug#17515: Correction: using log-switch causes normal non shortlog use fail format
2014-05-16 22:09 bug#17515: * lisp/vc/vc-hg.el (vc-hg-root-log-format): New format supports graph, branches and bookmarks Santiago Payà i Miralta
@ 2014-05-18 23:23 ` Santiago Payà i Miralta
2014-06-06 16:12 ` Stefan Monnier
0 siblings, 1 reply; 5+ messages in thread
From: Santiago Payà i Miralta @ 2014-05-18 23:23 UTC (permalink / raw)
To: 17515
[-- Attachment #1: Type: text/plain, Size: 2777 bytes --]
Hi emacs,
There is a fail in my previous patch. Using '--graph' in the
vc-hg-log-switches causes the normal non SHORTLOG log print to use it, and
the resulting long log is as broken. Please use this patch corrected where
the '--graph' option is into the shortlog condition in vc-hg-print-log.
Apologies.
From 72963f6dc7d754e525d5df7e4d2a4d0b8896d814 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Santiago=20Pay=C3=A0=20i=20Miralta?= <santiagopim@gmail.com>
Date: Mon, 19 May 2014 01:20:14 +0200
Subject: [PATCH 2/2] [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
when using SHORTLOG in vc-hg-print-log function. The vc-hg-root-log-format
is compatible with or without the graph view.
Also added branches and bookmarks to the log format, with some different
but existing faces from add-log.
---
lisp/vc/vc-hg.el | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 05b53a3..3323628 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,
@@ -264,7 +266,7 @@ If LIMIT is non-nil, show no more than this many
entries."
(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 (list "--graph" "--template" (car
vc-hg-root-log-format)))
vc-hg-log-switches)))))
(defvar log-view-message-re)
--
1.7.9.5
[-- Attachment #2: Type: text/html, Size: 9112 bytes --]
^ permalink raw reply related [flat|nested] 5+ messages in thread
* bug#17515: Correction: using log-switch causes normal non shortlog use fail format
2014-05-18 23:23 ` bug#17515: Correction: using log-switch causes normal non shortlog use fail format Santiago Payà i Miralta
@ 2014-06-06 16:12 ` Stefan Monnier
2014-06-07 20:24 ` Santiago
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2014-06-06 16:12 UTC (permalink / raw)
To: Santiago Payà i Miralta; +Cc: 17515-done
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@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@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@gmail.com> (tiny change)
+2014-05-12 Santiago Payà i Miralta <santiagopim@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")
\f
;;; 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)
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#17515: Correction: using log-switch causes normal non shortlog use fail format
2014-06-06 16:12 ` Stefan Monnier
@ 2014-06-07 20:24 ` Santiago
2015-12-18 5:08 ` Dmitry Gutov
0 siblings, 1 reply; 5+ messages in thread
From: Santiago @ 2014-06-07 20:24 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 17515-done
[-- Attachment #1: Type: text/plain, Size: 4207 bytes --]
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 <santiagopim@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@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@gmail.com> (tiny change)
>+2014-05-12 Santiago Payà i Miralta <santiagopim@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")
>
> \f>
> ;;; 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)
>
[-- Attachment #2: Type: text/html, Size: 6761 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#17515: Correction: using log-switch causes normal non shortlog use fail format
2014-06-07 20:24 ` Santiago
@ 2015-12-18 5:08 ` Dmitry Gutov
0 siblings, 0 replies; 5+ messages in thread
From: Dmitry Gutov @ 2015-12-18 5:08 UTC (permalink / raw)
To: Santiago; +Cc: 17515, Stefan Monnier
> ---- 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"?
Could someone double-check whether --graph actually needs Mercurial 3.0?
https://www.mercurial-scm.org/wiki/GraphlogExtension says that the
minimum version is only 2.3.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-12-18 5:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-16 22:09 bug#17515: * lisp/vc/vc-hg.el (vc-hg-root-log-format): New format supports graph, branches and bookmarks Santiago Payà i Miralta
2014-05-18 23:23 ` bug#17515: Correction: using log-switch causes normal non shortlog use fail format Santiago Payà i Miralta
2014-06-06 16:12 ` Stefan Monnier
2014-06-07 20:24 ` Santiago
2015-12-18 5:08 ` Dmitry Gutov
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
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.