{"thread":{"id":"9052","subject":"[PATCH] contrib/emacs/Makefile: Also install .el files.","startedAt":"2007-07-15T09:46:11Z","lastAt":"2007-07-16T06:14:16Z","messageCount":12,"participants":["David Kastrup","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"47490","messageId":"09ccbeffdf2ca787844d20fdc3e93d323da206f7.1184548803.git.dak@gnu.org","threadId":"9052","inReplyTo":"403842ba71506c7b194812cd9a4f669c847eb7bc.1184548803.git.dak@gnu.org","subject":"[PATCH] contrib/emacs/Makefile: Also install .el files.","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-15T09:46:11Z","receivedAt":"2007-07-15T09:46:11Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"\nSigned-off-by: David Kastrup <dak@gnu.org>\n---\n contrib/emacs/Makefile |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/contrib/emacs/Makefile b/contrib/emacs/Makefile\nindex 98aa0aa..92033f0 100644\n--- a/contrib/emacs/Makefile\n+++ b/contrib/emacs/Makefile\n@@ -12,7 +12,7 @@ all: $(ELC)\n \n install: all\n \t$(INSTALL) -d $(DESTDIR)$(emacsdir)\n-\t$(INSTALL_ELC) $(ELC) $(DESTDIR)$(emacsdir)\n+\t$(INSTALL_ELC) $(ELC:.elc=.el) $(ELC) $(DESTDIR)$(emacsdir)\n \n %.elc: %.el\n \t$(EMACS) -batch -f batch-byte-compile $<\n-- \n1.4.4.2\n"},{"id":"47491","messageId":"4613d30307e12be13b88b76f755ea8756a56f554.1184548803.git.dak@gnu.org","threadId":"9052","inReplyTo":"403842ba71506c7b194812cd9a4f669c847eb7bc.1184548803.git.dak@gnu.org","subject":"[PATCH] Make several improvements and get annotations to work (Emacs support pending).","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-15T23:42:30Z","receivedAt":"2007-07-15T23:42:30Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"(vc-git-symbolic-commit): Allow nil to pass through.\n(vc-git-previous-version): Use explicit parent argument.\n(vc-git-next-version): Simplify.\n(vc-git-annotate-command): Use `vc-do-command'.\n(vc-git-annotate-extract-revision-at-line): Rename from\n`vc-annotate-extract-revision-at-line'.\n\nSigned-off-by: David Kastrup <dak@gnu.org>\n---\n contrib/emacs/vc-git.el |   76 +++++++++++++++++++++++++++--------------------\n 1 files changed, 44 insertions(+), 32 deletions(-)\n\ndiff --git a/contrib/emacs/vc-git.el b/contrib/emacs/vc-git.el\nindex 3637c8a..2a0a0fe 100644\n--- a/contrib/emacs/vc-git.el\n+++ b/contrib/emacs/vc-git.el\n@@ -84,19 +84,20 @@\n (defun vc-git-symbolic-commit (commit)\n   \"Translate COMMIT string into symbolic form.\n Returns nil if not possible.\"\n-  (with-temp-buffer\n-    (and\n-     (zerop\n-      (call-process \"git\" nil '(t nil) nil \"name-rev\"\n-\t\t    commit))\n-     (goto-char (point-max))\n-     (bolp)\n-     (zerop (forward-line -1))\n-     (bobp)\n-     (progn\n-       (search-forward \" \" nil t)\n-       (not (eolp)))\n-     (buffer-substring-no-properties (point) (1- (point-max))))))\n+  (and commit\n+       (with-temp-buffer\n+\t (and\n+\t  (zerop\n+\t   (call-process \"git\" nil '(t nil) nil \"name-rev\"\n+\t\t\t commit))\n+\t  (goto-char (point-max))\n+\t  (bolp)\n+\t  (zerop (forward-line -1))\n+\t  (bobp)\n+\t  (progn\n+\t    (search-forward \" \" nil t)\n+\t    (not (eolp)))\n+\t  (buffer-substring-no-properties (point) (1- (point-max)))))))\n \n (defun vc-git-previous-version (file rev)\n   \"git-specific version of `vc-previous-version'.\"\n@@ -104,15 +105,13 @@ Returns nil if not possible.\"\n    (with-temp-buffer\n      (and\n       (zerop\n-       (call-process \"git\" nil '(t nil) nil \"rev-list\" \"--abbrev\"\n-\t\t     \"--abbrev-commit\" \"-2\" rev \"--\" (file-relative-name file)))\n-      (goto-char (point-max))\n-      (bolp)\n-      (zerop (forward-line -1))\n-      (not (bobp))\n-      (buffer-substring-no-properties\n-       (point)\n-       (1- (point-max)))))))\n+       (call-process \"git\" nil '(t nil) nil \"rev-list\"\n+\t\t     \"--abbrev\"\n+\t\t     \"--abbrev-commit\" \"-1\" \"--parents\" rev \"--\"\n+\t\t     (file-relative-name file)))\n+      (goto-char (point-min))\n+      (search-forward-regexp \" \\\\([^ \\n]*\\\\)\" nil t)\n+      (match-string 1)))))\n \n (defun vc-git-next-version (file rev)\n   \"git-specific version of `vc-next-version'.\"\n@@ -121,8 +120,9 @@ Returns nil if not possible.\"\n      (and\n       (zerop\n        (call-process \"git\" nil '(t nil) nil \"rev-list\" \"--abbrev\"\n-\t\t     \"--abbrev-commit\"\n+\t\t     \"--abbrev-commit\"  \"--remove-empty\"\n \t\t     \"HEAD\" \"--not\" rev \"--\" (file-relative-name file)))\n+      (goto-char (point-min))\n       (goto-char (point-max))\n       (bolp)\n       (zerop (forward-line -1))\n@@ -174,24 +174,36 @@ Returns nil if not possible.\"\n                        (vc-git--run-command-string file \"ls-files\" \"-z\" \"--full-name\" \"--\")\n                        0 -1))\n             (coding-system-for-read 'no-conversion)\n-            (coding-system-for-write 'no-conversion))\n+            coding-system-for-write)\n         (with-temp-file destfile\n-          (eq 0 (call-process \"git\" nil t nil \"cat-file\" \"blob\"\n-                              (concat (or rev \"HEAD\") \":\" fullname)))))\n+\t  (prog1\n+\t      (eq 0 (call-process \"git\" nil t nil \"cat-file\" \"blob\"\n+\t\t\t\t  (concat (or rev \"HEAD\") \":\" fullname)))\n+\t    (setq coding-system-for-write 'no-conversion))))\n     (vc-git--run-command file \"checkout\" (or rev \"HEAD\"))))\n \n-(defun vc-git-annotate-command (file buf &optional rev)\n-  (let ((name (file-relative-name file)))\n-    (if rev\n-\t(call-process \"git\" nil buf nil \"blame\" rev \"--\" name)\n-      (call-process \"git\" nil buf nil \"blame\" \"--\" name))))\n+(defun vc-git-annotate-command (file buffer &optional version)\n+  \"Execute \\\"git blame\\\" on FILE, inserting the contents in BUFFER.\n+Optional arg VERSION is a version to annotate from.\"\n+  (vc-do-command buffer\n+\t\t 'async\n+\t\t \"git\" file \"blame\"\n+\t\t (or version \"HEAD\")\n+\t\t \"--\"))\n+\n+;;(defun vc-git-annotate-command (file buf &optional rev)\n+;;  (let ((name (file-relative-name file)))\n+;;    (vc-setup-buffer buf)\n+;;    (if rev\n+;;\t(call-process \"git\" nil buf nil \"blame\" rev \"--\" name)\n+;;      (call-process \"git\" nil buf nil \"blame\" \"--\" name))))\n \n (defun vc-git-annotate-time ()\n   (and (re-search-forward \"[0-9a-f]+ (.* \\\\([0-9]+\\\\)-\\\\([0-9]+\\\\)-\\\\([0-9]+\\\\) \\\\([0-9]+\\\\):\\\\([0-9]+\\\\):\\\\([0-9]+\\\\) \\\\([-+0-9]+\\\\) +[0-9]+)\" nil t)\n        (vc-annotate-convert-time\n         (apply #'encode-time (mapcar (lambda (match) (string-to-number (match-string match))) '(6 5 4 3 2 1 7))))))\n \n-(defun vc-annotate-extract-revision-at-line ()\n+(defun vc-git-annotate-extract-revision-at-line ()\n   (save-excursion\n     (move-beginning-of-line 1)\n     (and (looking-at \"[0-9a-f]+\")\n-- \n1.4.4.2\n"},{"id":"47495","messageId":"cfa5ed80635135dd7544f2b4c6df521a4353e90d.1184548803.git.dak@gnu.org","threadId":"9052","inReplyTo":"403842ba71506c7b194812cd9a4f669c847eb7bc.1184548803.git.dak@gnu.org","subject":"[PATCH] vc-git: support asynchronous annotations, and improve versioning.","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-15T23:53:57Z","receivedAt":"2007-07-15T23:53:57Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"(vc-git-symbolic-commit): Allow nil to pass through.\n(vc-git-previous-version): Use explicit parent argument.\n(vc-git-next-version): Simplify.\n(vc-git-annotate-command): Use `vc-do-command'.\n(vc-git-annotate-extract-revision-at-line): Rename from\n`vc-annotate-extract-revision-at-line'.\n(vc-git-checkout): Make nicer way of ensuring encoding.\n\nSigned-off-by: David Kastrup <dak@gnu.org>\n---\n contrib/emacs/vc-git.el |   21 ++++++++++-----------\n 1 files changed, 10 insertions(+), 11 deletions(-)\n\ndiff --git a/contrib/emacs/vc-git.el b/contrib/emacs/vc-git.el\nindex 2a0a0fe..d7ad314 100644\n--- a/contrib/emacs/vc-git.el\n+++ b/contrib/emacs/vc-git.el\n@@ -173,23 +173,22 @@ Returns nil if not possible.\"\n       (let ((fullname (substring\n                        (vc-git--run-command-string file \"ls-files\" \"-z\" \"--full-name\" \"--\")\n                        0 -1))\n-            (coding-system-for-read 'no-conversion)\n-            coding-system-for-write)\n+            (coding-system-for-read 'no-conversion))\n         (with-temp-file destfile\n-\t  (prog1\n-\t      (eq 0 (call-process \"git\" nil t nil \"cat-file\" \"blob\"\n-\t\t\t\t  (concat (or rev \"HEAD\") \":\" fullname)))\n-\t    (setq coding-system-for-write 'no-conversion))))\n+\t  (setq buffer-file-coding-system 'no-conversion)\n+\t  (eq 0 (call-process \"git\" nil t nil \"cat-file\" \"blob\"\n+\t\t\t      (concat (or rev \"HEAD\") \":\" fullname)))))\n     (vc-git--run-command file \"checkout\" (or rev \"HEAD\"))))\n \n (defun vc-git-annotate-command (file buffer &optional version)\n   \"Execute \\\"git blame\\\" on FILE, inserting the contents in BUFFER.\n Optional arg VERSION is a version to annotate from.\"\n-  (vc-do-command buffer\n-\t\t 'async\n-\t\t \"git\" file \"blame\"\n-\t\t (or version \"HEAD\")\n-\t\t \"--\"))\n+  (let ((coding-system-for-read git-commits-coding-system))\n+    (vc-do-command buffer\n+\t\t   'async\n+\t\t   \"git\" file \"blame\"\n+\t\t   (or version \"HEAD\")\n+\t\t   \"--\")))\n \n ;;(defun vc-git-annotate-command (file buf &optional rev)\n ;;  (let ((name (file-relative-name file)))\n-- \n1.4.4.2\n"},{"id":"47494","messageId":"46a0cbb79076aa55cbbef313e9561a4be1174a16.1184548803.git.dak@gnu.org","threadId":"9052","inReplyTo":"403842ba71506c7b194812cd9a4f669c847eb7bc.1184548803.git.dak@gnu.org","subject":"[PATCH] (vc-git-annotate-command): Make synchronous for now.","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-16T00:05:48Z","receivedAt":"2007-07-16T00:05:48Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"We need a test to figure out whether Emacs supports asynchronous\nannotations (not yet available in CVS).\n\nSigned-off-by: David Kastrup <dak@gnu.org>\n---\n contrib/emacs/vc-git.el |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/contrib/emacs/vc-git.el b/contrib/emacs/vc-git.el\nindex d7ad314..c3f30ad 100644\n--- a/contrib/emacs/vc-git.el\n+++ b/contrib/emacs/vc-git.el\n@@ -185,7 +185,7 @@ Returns nil if not possible.\"\n Optional arg VERSION is a version to annotate from.\"\n   (let ((coding-system-for-read git-commits-coding-system))\n     (vc-do-command buffer\n-\t\t   'async\n+\t\t   0\n \t\t   \"git\" file \"blame\"\n \t\t   (or version \"HEAD\")\n \t\t   \"--\")))\n-- \n1.4.4.2\n"},{"id":"47496","messageId":"403842ba71506c7b194812cd9a4f669c847eb7bc.1184548803.git.dak@gnu.org","threadId":"9052","inReplyTo":null,"subject":"[PATCH] contrib/emacs/vc-git.el: various improvements.","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-16T01:24:20Z","receivedAt":"2007-07-16T01:24:20Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"(vc-git-symbolic-commit): Simplify and make it return\nsomething useful in almost all cases.\n(vc-git-previous-version): Simplify.\n(vc-git-next-version): Simplify and make more efficient.\n(vc-git-annotate-command): heed REV argument.\n(vc-annotate-extract-revision-at-line): Activate.\n\nSigned-off-by: David Kastrup <dak@gnu.org>\n---\n contrib/emacs/vc-git.el |  110 ++++++++++++++++++++---------------------------\n 1 files changed, 47 insertions(+), 63 deletions(-)\n\ndiff --git a/contrib/emacs/vc-git.el b/contrib/emacs/vc-git.el\nindex b8f6be5..3637c8a 100644\n--- a/contrib/emacs/vc-git.el\n+++ b/contrib/emacs/vc-git.el\n@@ -84,67 +84,51 @@\n (defun vc-git-symbolic-commit (commit)\n   \"Translate COMMIT string into symbolic form.\n Returns nil if not possible.\"\n-  (and commit\n-       (with-temp-buffer\n-\t (and\n-\t  (zerop\n-\t   (call-process \"git\" nil '(t nil) nil \"name-rev\"\n-\t\t\t \"--name-only\" \"--tags\"\n-\t\t\t commit))\n-\t  (goto-char (point-min))\n-\t  (= (forward-line 2) 1)\n-\t  (bolp)\n-\t  (buffer-substring-no-properties (point-min) (1- (point-max)))))))\n+  (with-temp-buffer\n+    (and\n+     (zerop\n+      (call-process \"git\" nil '(t nil) nil \"name-rev\"\n+\t\t    commit))\n+     (goto-char (point-max))\n+     (bolp)\n+     (zerop (forward-line -1))\n+     (bobp)\n+     (progn\n+       (search-forward \" \" nil t)\n+       (not (eolp)))\n+     (buffer-substring-no-properties (point) (1- (point-max))))))\n \n (defun vc-git-previous-version (file rev)\n   \"git-specific version of `vc-previous-version'.\"\n-  (let ((default-directory (file-name-directory (expand-file-name file)))\n-\t(file (file-name-nondirectory file)))\n-    (vc-git-symbolic-commit\n-     (with-temp-buffer\n-       (and\n-\t(zerop\n-\t (call-process \"git\" nil '(t nil) nil \"rev-list\"\n-\t\t       \"-2\" rev \"--\" file))\n-\t(goto-char (point-max))\n-\t(bolp)\n-\t(zerop (forward-line -1))\n-\t(not (bobp))\n-\t(buffer-substring-no-properties\n-\t   (point)\n-\t   (1- (point-max))))))))\n+  (vc-git-symbolic-commit\n+   (with-temp-buffer\n+     (and\n+      (zerop\n+       (call-process \"git\" nil '(t nil) nil \"rev-list\" \"--abbrev\"\n+\t\t     \"--abbrev-commit\" \"-2\" rev \"--\" (file-relative-name file)))\n+      (goto-char (point-max))\n+      (bolp)\n+      (zerop (forward-line -1))\n+      (not (bobp))\n+      (buffer-substring-no-properties\n+       (point)\n+       (1- (point-max)))))))\n \n (defun vc-git-next-version (file rev)\n   \"git-specific version of `vc-next-version'.\"\n-  (let* ((default-directory (file-name-directory\n-\t\t\t     (expand-file-name file)))\n-\t(file (file-name-nondirectory file))\n-\t(current-rev\n-\t (with-temp-buffer\n-\t   (and\n-\t    (zerop\n-\t     (call-process \"git\" nil '(t nil) nil \"rev-list\"\n-\t\t\t   \"-1\" rev \"--\" file))\n-\t    (goto-char (point-max))\n-\t    (bolp)\n-\t    (zerop (forward-line -1))\n-\t    (bobp)\n-\t    (buffer-substring-no-properties\n-\t     (point)\n-\t     (1- (point-max)))))))\n-    (and current-rev\n-\t (vc-git-symbolic-commit\n-\t  (with-temp-buffer\n-\t    (and\n-\t     (zerop\n-\t      (call-process \"git\" nil '(t nil) nil \"rev-list\"\n-\t\t\t    \"HEAD\" \"--\" file))\n-\t     (goto-char (point-min))\n-\t     (search-forward current-rev nil t)\n-\t     (zerop (forward-line -1))\n-\t     (buffer-substring-no-properties\n-\t      (point)\n-\t      (progn (forward-line 1) (1- (point))))))))))\n+  (vc-git-symbolic-commit\n+   (with-temp-buffer\n+     (and\n+      (zerop\n+       (call-process \"git\" nil '(t nil) nil \"rev-list\" \"--abbrev\"\n+\t\t     \"--abbrev-commit\"\n+\t\t     \"HEAD\" \"--not\" rev \"--\" (file-relative-name file)))\n+      (goto-char (point-max))\n+      (bolp)\n+      (zerop (forward-line -1))\n+      (buffer-substring-no-properties\n+       (point)\n+       (1- (point-max)))))))\n \n (defun vc-git-revert (file &optional contents-done)\n   \"Revert FILE to the version stored in the git repository.\"\n@@ -197,20 +181,20 @@ Returns nil if not possible.\"\n     (vc-git--run-command file \"checkout\" (or rev \"HEAD\"))))\n \n (defun vc-git-annotate-command (file buf &optional rev)\n-  ; FIXME: rev is ignored\n   (let ((name (file-relative-name file)))\n-    (call-process \"git\" nil buf nil \"blame\" name)))\n+    (if rev\n+\t(call-process \"git\" nil buf nil \"blame\" rev \"--\" name)\n+      (call-process \"git\" nil buf nil \"blame\" \"--\" name))))\n \n (defun vc-git-annotate-time ()\n   (and (re-search-forward \"[0-9a-f]+ (.* \\\\([0-9]+\\\\)-\\\\([0-9]+\\\\)-\\\\([0-9]+\\\\) \\\\([0-9]+\\\\):\\\\([0-9]+\\\\):\\\\([0-9]+\\\\) \\\\([-+0-9]+\\\\) +[0-9]+)\" nil t)\n        (vc-annotate-convert-time\n         (apply #'encode-time (mapcar (lambda (match) (string-to-number (match-string match))) '(6 5 4 3 2 1 7))))))\n \n-;; Not really useful since we can't do anything with the revision yet\n-;;(defun vc-annotate-extract-revision-at-line ()\n-;;  (save-excursion\n-;;    (move-beginning-of-line 1)\n-;;    (and (looking-at \"[0-9a-f]+\")\n-;;         (buffer-substring (match-beginning 0) (match-end 0)))))\n+(defun vc-annotate-extract-revision-at-line ()\n+  (save-excursion\n+    (move-beginning-of-line 1)\n+    (and (looking-at \"[0-9a-f]+\")\n+         (buffer-substring (match-beginning 0) (match-end 0)))))\n \n (provide 'vc-git)\n-- \n1.4.4.2\n"},{"id":"47493","messageId":"85myxxxhnf.fsf_-_@lola.goethe.zz","threadId":"9052","inReplyTo":"09ccbeffdf2ca787844d20fdc3e93d323da206f7.1184548803.git.dak@gnu.org","subject":"Re: [PATCH] contrib/emacs...","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-16T01:27:00Z","receivedAt":"2007-07-16T01:27:00Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"\nI apologize for the somewhat messy state of the patches and commit\nmessages: I am trying to get a hang of the tools right now.\n\nIf people have suggestions how to read up on cleaning up and\nreordering commits before submission, I'd be greatful.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"47499","messageId":"7vejj9avaf.fsf@assigned-by-dhcp.cox.net","threadId":"9052","inReplyTo":"403842ba71506c7b194812cd9a4f669c847eb7bc.1184548803.git.dak@gnu.org","subject":"Re: [PATCH] contrib/emacs/vc-git.el: various improvements.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-16T03:20:56Z","receivedAt":"2007-07-16T03:20:56Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n> (vc-git-symbolic-commit): Simplify and make it return\n> something useful in almost all cases.\n\nIt would be easier to review and understand if \"something\nuseful\" were more specific.\n\nIt appears that the previous version of this function tried not\nto barf if it got nil or false as input but now it does not seem\nto worry about that case.  Also the option given to name-rev is\ndifferent which would lead to different behaviour -- arguably a\nbetter one, but that needs to be documented in the log message.\n\n> (vc-git-previous-version): Simplify.\n> (vc-git-next-version): Simplify and make more efficient.\n\nIf you make the result symbolic using vc-git-symbolic-commit, do\nyou need to add --abbrev/--abbrev-commit to these functions?\nThese options have very small but still non zero cost.\n\n> (vc-git-annotate-command): heed REV argument.\n> (vc-annotate-extract-revision-at-line): Activate.\n\nOk.\n"},{"id":"47500","messageId":"7v8x9havae.fsf@assigned-by-dhcp.cox.net","threadId":"9052","inReplyTo":"09ccbeffdf2ca787844d20fdc3e93d323da206f7.1184548803.git.dak@gnu.org","subject":"Re: [PATCH] contrib/emacs/Makefile: Also install .el files.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-16T03:20:57Z","receivedAt":"2007-07-16T03:20:57Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n> Signed-off-by: David Kastrup <dak@gnu.org>\n>  install: all\n>  \t$(INSTALL) -d $(DESTDIR)$(emacsdir)\n> -\t$(INSTALL_ELC) $(ELC) $(DESTDIR)$(emacsdir)\n> +\t$(INSTALL_ELC) $(ELC:.elc=.el) $(ELC) $(DESTDIR)$(emacsdir)\n\nOk, thanks.\n"},{"id":"47501","messageId":"7v3azpavae.fsf@assigned-by-dhcp.cox.net","threadId":"9052","inReplyTo":"cfa5ed80635135dd7544f2b4c6df521a4353e90d.1184548803.git.dak@gnu.org","subject":"Re: [PATCH] vc-git: support asynchronous annotations, and improve versioning.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-16T03:20:57Z","receivedAt":"2007-07-16T03:20:57Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n> (vc-git-symbolic-commit): Allow nil to pass through.\n> (vc-git-previous-version): Use explicit parent argument.\n> (vc-git-next-version): Simplify.\n> (vc-git-annotate-command): Use `vc-do-command'.\n> (vc-git-annotate-extract-revision-at-line): Rename from\n> `vc-annotate-extract-revision-at-line'.\n> (vc-git-checkout): Make nicer way of ensuring encoding.\n>\n\nThese do not seem to match what the patch does at all.\nI give up.\n\nWill apply only the \"install .el, too\" change from the confusing\nseries for now.\n\n> diff --git a/contrib/emacs/vc-git.el b/contrib/emacs/vc-git.el\n> index 2a0a0fe..d7ad314 100644\n> --- a/contrib/emacs/vc-git.el\n> +++ b/contrib/emacs/vc-git.el\n> @@ -173,23 +173,22 @@ Returns nil if not possible.\"\n> ...\n>  (defun vc-git-annotate-command (file buffer &optional version)\n>    \"Execute \\\"git blame\\\" on FILE, inserting the contents in BUFFER.\n>  Optional arg VERSION is a version to annotate from.\"\n> -  (vc-do-command buffer\n> -\t\t 'async\n> -\t\t \"git\" file \"blame\"\n> -\t\t (or version \"HEAD\")\n> -\t\t \"--\"))\n> +  (let ((coding-system-for-read git-commits-coding-system))\n> +    (vc-do-command buffer\n> +\t\t   'async\n> +\t\t   \"git\" file \"blame\"\n> +\t\t   (or version \"HEAD\")\n> +\t\t   \"--\")))\n>  \n>  ;;(defun vc-git-annotate-command (file buf &optional rev)\n>  ;;  (let ((name (file-relative-name file)))\n> -- \n> 1.4.4.2\n"},{"id":"47511","messageId":"85odicor5p.fsf@lola.goethe.zz","threadId":"9052","inReplyTo":"7vejj9avaf.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] contrib/emacs/vc-git.el: various improvements.","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-16T05:26:26Z","receivedAt":"2007-07-16T05:26:26Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> David Kastrup <dak@gnu.org> writes:\n>\n>> (vc-git-previous-version): Simplify.\n>> (vc-git-next-version): Simplify and make more efficient.\n>\n> If you make the result symbolic using vc-git-symbolic-commit, do you\n> need to add --abbrev/--abbrev-commit to these functions?  These\n> options have very small but still non zero cost.\n\nvc-git-symbolic-commit may not always find a name (at least it did not\nwhile I still used --tags).  The abbrev provides a fallback in that\ncase.\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"47512","messageId":"85k5t0or0d.fsf@lola.goethe.zz","threadId":"9052","inReplyTo":"7v3azpavae.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] vc-git: support asynchronous annotations, and improve versioning.","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-07-16T05:29:38Z","receivedAt":"2007-07-16T05:29:38Z","isPatch":true,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> David Kastrup <dak@gnu.org> writes:\n>\n>> (vc-git-symbolic-commit): Allow nil to pass through.\n>> (vc-git-previous-version): Use explicit parent argument.\n>> (vc-git-next-version): Simplify.\n>> (vc-git-annotate-command): Use `vc-do-command'.\n>> (vc-git-annotate-extract-revision-at-line): Rename from\n>> `vc-annotate-extract-revision-at-line'.\n>> (vc-git-checkout): Make nicer way of ensuring encoding.\n>>\n>\n> These do not seem to match what the patch does at all.\n> I give up.\n\nThe previous changelog entry crept in as well.\n\n> Will apply only the \"install .el, too\" change from the confusing\n> series for now.\n\nFair enough.\n\nHow do I go about resubmitting with better comments?  Make an extra\nbranch and redo the part in artificial new commits?\n\nI have no experience.  Any good pointers how one does this sort of\npropose, rewind, propose stuff most conveniently?\n\n-- \nDavid Kastrup, Kriemhildstr. 15, 44793 Bochum\n"},{"id":"47516","messageId":"7v4pk46fk7.fsf@assigned-by-dhcp.cox.net","threadId":"9052","inReplyTo":"85k5t0or0d.fsf@lola.goethe.zz","subject":"Re: [PATCH] vc-git: support asynchronous annotations, and improve versioning.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-07-16T06:14:16Z","receivedAt":"2007-07-16T06:14:16Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n> How do I go about resubmitting with better comments?  Make an extra\n> branch and redo the part in artificial new commits?\n\nThe original was not even numbered so I cannot judge how the\ndevelopment proceeded, but I think the series is somewhat ill\norganized and the problem is not just commit log messages.\n\nFor example, \"vc-git.el: various improvements.\" removes NIL\ncheck for 'commit' and then later \"Make several improvements\"\nreinstates that check, perhaps because you realized the earlier\nchange to remove it was a mistake (without the explanation in\nthe log I can only guess the reason).  Same for 'async to 0\nchange which is made by \"Make synchronous for now\".\n\nPreserving a honest, true-to-reality, history is one thing\nduring the development, but when the overall improvements and\nenhancements reached a usable state, it is much more pleasant to\nreview if the series is presented as if you knew what necessary\nchanges are and what pitfalls to avoid from the beginning, and\ndid your development in logical sequence, building one commit on\ntop of the previous enhancements without \"oops, that was a\nmistake so fix it while we are improving something else\".\n\nMy cursory review suggests that:\n\n* contrib/emacs/Makefile: Also install .el files.\n\nThis is a good patch, independent from anything else.\n\n* contrib/emacs/vc-git.el: various improvements.\n* Make several improvements and get annotations to work (Emacs support pending).\n\nThese two try to improve the same area, but the latter contains\nbugfixes for the former, not necessarily a logical succession\n(if it were a logical sequence to build and enhance, the first\nshould be usable by itself, without a later bugfix).\n\nIf these were to be made more than one logically independent\npatches, then probably the first would be to simplify\nvc-git-symbolic-commit implementation and update its callers\n(without having to say \"oops, I needed the check for NIL commit\nafter all\" later), and without changing what the callers do.\nThe second one would be \"prev and next can be made much\nsimpler\".  The third one would be \"annotate can take 'rev' and\nextract-revision-at-line is now usable\".  But judging from how\nclosely these changes are tied together (all of them depend on\nthe external interface to vc-git-symbolic-commit) and how small\neach change is, I would probably make them a single commit that\nyou do not have to say \"oops\" anywhere.\n\n* vc-git: support asynchronous annotations, and improve versioning.\n* (vc-git-annotate-command):  Make synchronous for now.\n\nThe same discussion here.  The first one goes in the right\ndirection, but then the moment of \"oops\" comes --- async does\nnot necessarily work.  Probably the right separation, if these\ntwo were to become two separate commits, would be to add async\n(but leave it synchronous, with a big code comment at the\ncalling site of vc-do-command why you pass 0 instead of async),\nand then make \"and improve versioning\" part (whatever that is --\nI cannot figure out which part of the patch \"improve\"-ment\nrefers to) a separate commit.\n\nI would end this message with a very useful URL:\n\n    http://article.gmane.org/gmane.comp.version-control.git/10894\n\nI am with Linus 100%, regarding \"honest\" vs \"disgusting\"\nhistory.\n"}]}