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

[PATCH v2 1/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-2-cogoni.guillaume@gmail.com>
In-Reply-To
<20220417093549.101436-1-cogoni.guillaume@gmail.com>

This document aims to gather tools that have a README and/or scripts in the GIT project in order to simplify the search of information for a particular tool.

Move the part about Emacs configuration from CodingGuidelines to ToolsForGit.txt because it's the purpose of the new file centralize the information about tools.

Signed-off-by: COGONI Guillaume <cogoni.guillaume@gmail.com>
---
 Documentation/CodingGuidelines | 11 -----
 Documentation/Makefile         |  1 +
 Documentation/ToolsForGit.txt  | 79 ++++++++++++++++++++++++++++++++++
 3 files changed, 80 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/ToolsForGit.txt
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/).
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 44c080e3e5..7058dd2185 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -93,6 +93,7 @@ SP_ARTICLES += $(API_DOCS)
 TECH_DOCS += MyFirstContribution
 TECH_DOCS += MyFirstObjectWalk
 TECH_DOCS += SubmittingPatches
+TECH_DOCS += ToolsForGit
 TECH_DOCS += technical/bundle-format
 TECH_DOCS += technical/hash-function-transition
 TECH_DOCS += technical/http-protocol
diff --git a/Documentation/ToolsForGit.txt b/Documentation/ToolsForGit.txt
new file mode 100644
index 0000000000..d96cadd09c
--- /dev/null
+++ b/Documentation/ToolsForGit.txt
@@ -0,0 +1,79 @@
+Tools for developing Git
+========================
+:sectanchors:
+
+[[summary]]
+== Summary
+
+This document aims to gather tools that have a README and/or scripts in
+the Git project.
+
+[[author]]
+=== Author
+
+The Git community.
+
+[[table_of_contents]]
+== Table of contents
+
+- <<vscode>>
+- <<emacs>>
+
+[[vscode]]
+=== Visual Studio Code (VS Code)
+
+The contrib/vscode/init.sh script creates configuration files that enable
+several valuable VS Code features. See contrib/vscode/README.md for more
+information on using the script.
+
+In particular, this script enables using the VS Code visual debugger, including
+setting breakpoints, logpoints, conditional breakpoints and more in the editor.
+
+[[emacs]]
+=== Emacs
+
+- 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")))))
+----
+
-- 
2.25.1
Previous: COGONI GuillaumeNext: Matthieu Moy
Message 11 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.