git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 0/1] Documentation/ToolsForGit.txt: Tools for developing Git

From
COGONI Guillaume <cogoni.guillaume@gmail.com>
Date
Apr 17, 2022, 09:35 UTC
Message-ID
<20220417093549.101436-1-cogoni.guillaume@gmail.com>
In-Reply-To
<xmqqlew554ye.fsf@gitster.g>
MOY Matthieu wrote:
> I don't think the last sentence is needed, and if it is, it would be
> better within contrib/vscode/README.md (so that someone reaching this
> README directly do see the information too).

I think so too. However, I already make a PATCH last week for contrib/vscode/README: (see <20220407204001.112287-2-cogoni.guillaume@gmail.com>). And, I see that in What's cooking in git.git (Apr 2022, #04; Thu, 14) it will be merge in Next. So, do I take this PATCH from the last week and I add it this part in contrib/vscode/README or I just add this part here in this new PATCH but where the subject is different?

> - For Emacs, it's useful to put the following in
>    GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode:
Show 7 quoted lines
>     ;; note the first part is useful for C editing, too
>     ((nil . ((indent-tabs-mode . t)
>                   (tab-width . 8)
>                   (fill-column . 80)))
>      (cperl-mode . ((cperl-indent-level . 8)
>                     (cperl-extra-newline-before-brace . nil)
>                     (cperl-merge-trailing-else . t))))
> Actually, the Linux kernel's CodingStyle contains more relevant stuff 
> (for C, not Perl):
> https://www.kernel.org/doc/html/v4.10/process/coding-style.html#you-ve-made-a-mess-of-it

I add this part directly in ToolsForGit.txt and not in the README in contrib/emacs. But, from this document in Documentation/RelNotes/2.18.0.txt, I read this: "The scripts in contrib/emacs/ have outlived their usefulness and have been replaced with a stub that errors out and tells the user there are replacements." So, for the next version of this PATCH, can I replace what is in the README by the configuration that I write in ToolsForGit.txt?

OAKLEY Philip  wrote:
> I'm of the view that a README is a positive indicator that there is some
> informational value regarding the tool's use for developing Git being
> made available. It doesn't always have to be code before it is of
> assistance in developing Git.

I agreed with OAKLEY, the README is good indicator to say that we have some information besides the scripts.

COGONI Guillaume (1):
  Documentation/ToolsForGit.txt: Tools for developing Git
 Documentation/CodingGuidelines | 11 -----
 Documentation/Makefile         |  1 +
 Documentation/ToolsForGit.txt  | 79 ++++++++++++++++++++++++++++++++++
 3 files changed, 80 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/ToolsForGit.txt
Difference between v1 and v2
diff --git a/Documentation/ToolsOnGit.txt b/Documentation/ToolsForGit.txt
index a33b369a06..d96cadd09c 100644
--- a/Documentation/ToolsOnGit.txt
+++ b/Documentation/ToolsForGit.txt
@@ -1,12 +1,12 @@
-Tools on GIT
-============
+Tools for developing Git
+========================
 :sectanchors:
 
 [[summary]]
 == Summary
 
 This document aims to gather tools that have a README and/or scripts in
-the GIT project.
+the Git project.
 
 [[author]]
 === Author
@@ -32,4 +32,48 @@ setting breakpoints, logpoints, conditional breakpoints and more in the editor.
 [[emacs]]
 === Emacs
 
-See contrib/emacs/README for more information.
+- To follow rules of the CodingGuideline, it's useful to put the following in
+GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode:
+----
+;; note the first part is useful for C editing, too
+((nil . ((indent-tabs-mode . t)
+	 (tab-width . 8)
+	 (fill-column . 80)))
+	 (cperl-mode . ((cperl-indent-level . 8)
+			(cperl-extra-newline-before-brace . nil)
+			(cperl-merge-trailing-else . t))))
+----
+
+- The version for C:
+----
+(defun c-lineup-arglist-tabs-only (ignored)
+	"Line up argument lists by tabs, not spaces"
+	(let* ((anchor (c-langelem-pos c-syntactic-element))
+	       (column (c-langelem-2nd-pos c-syntactic-element))
+	       (offset (- (1+ column) anchor))
+	       (steps (floor offset c-basic-offset)))
+	 (* (max steps 1)
+	    c-basic-offset)))
+
+(add-hook 'c-mode-common-hook
+	(lambda ()
+		;; Add kernel style
+		(c-add-style
+		 "linux-tabs-only"
+		 '("linux" (c-offsets-alist
+			    (arglist-cont-nonempty
+			     c-lineup-gcc-asm-reg
+			     c-lineup-arglist-tabs-only))))))
+
+(add-hook 'c-mode-hook
+	(lambda ()
+		(let ((filename (buffer-file-name)))
+		 ;; Enable kernel mode for the appropriate files
+		 (when (and filename
+			(string-match (expand-file-name "~/src/linux-trees")
+				       filename))
+		 (setq indent-tabs-mode t)
+		 (setq show-trailing-whitespace t)
+		 (c-set-style "linux-tabs-only")))))
+----
+

diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index b20b2f94f1..a7d21d6f6b 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -492,17 +492,6 @@ For Perl programs:
 
  - Learn and use Git.pm if you need that functionality.
 
- - For Emacs, it's useful to put the following in
-   GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode:
-
-    ;; note the first part is useful for C editing, too
-    ((nil . ((indent-tabs-mode . t)
-                  (tab-width . 8)
-                  (fill-column . 80)))
-     (cperl-mode . ((cperl-indent-level . 8)
-                    (cperl-extra-newline-before-brace . nil)
-                    (cperl-merge-trailing-else . t))))
-
 For Python scripts:
 
  - We follow PEP-8 (http://www.python.org/dev/peps/pep-0008/).
-- 
2.25.1
Previous: Junio C HamanoNext: COGONI Guillaume
Message 10 of 17 in “documentation: guide of best practices for GIT developer”
  1. 0/1 documentation: guide of best practices for GIT developerCOGONI Guillaume, Apr 12, 2022
  2. 1/1 documentation: guide of best practices for GIT developerCOGONI Guillaume, Apr 12, 2022
  3. Shaoxuan YuanApr 13, 2022
  4. Guillaume CogoniApr 13, 2022
  5. 0/1 Documentation/ToolsOnGit.txt: gather information about toolsCOGONI Guillaume, Apr 16, 2022
  6. 1/1 Documentation/ToolsOnGit.txt: gather information about toolsCOGONI Guillaume, Apr 16, 2022
  7. Matthieu MoyApr 16, 2022
  8. Philip OakleyApr 16, 2022
  9. Junio C HamanoApr 16, 2022
  10. 0/1 Documentation/ToolsForGit.txt: Tools for developing GitCOGONI Guillaume, Apr 17, 2022
  11. 1/1 Documentation/ToolsForGit.txt: Tools for developing GitCOGONI Guillaume, Apr 17, 2022
  12. Matthieu MoyApr 17, 2022
  13. 0/1 Documentation/ToolsForGit.txt: Tools for developing GitCOGONI Guillaume, Apr 20, 2022
  14. 1/1 Documentation/ToolsForGit.txt: Tools for developing GitCOGONI Guillaume, Apr 20, 2022
  15. Junio C HamanoApr 20, 2022
  16. 0/1 Documentation/ToolsForGit.txt: Tools for developing GitCOGONI Guillaume, Apr 21, 2022
  17. 1/1 Documentation/ToolsForGit.txt: Tools for developing GitCOGONI Guillaume, Apr 21, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.