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

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

From
COGONI Guillaume <cogoni.guillaume@gmail.com>
Date
Apr 21, 2022, 08:45 UTC
Message-ID
<20220421084515.21236-2-cogoni.guillaume@gmail.com>
In-Reply-To
<20220421084515.21236-1-cogoni.guillaume@gmail.com>

This document gathers tips, scripts and configuration file to help people working on Git’s codebase use their favorite tools while following Git’s coding style.

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.

But, add a mention to Documentation/ToolsForGit.txt in CodingGuidelines because there is also information about the coding style in it.

Helped-by: Matthieu Moy <Matthieu.Moy@univ-lyon1.fr>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: COGONI Guillaume <cogoni.guillaume@gmail.com>
---
 Documentation/CodingGuidelines | 16 +++--------
 Documentation/Makefile         |  1 +
 Documentation/ToolsForGit.txt  | 51 ++++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/ToolsForGit.txt
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index b20b2f94f1..4c756be517 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -43,7 +43,10 @@ the overall style of existing code. Modifications to existing
 code is expected to match the style the surrounding code already
 uses (even if it doesn't match the overall style of existing code).
 
-But if you must have a list of rules, here they are.
+But if you must have a list of rules, here are some language
+specific ones. Note that Documentation/ToolsForGit.txt document
+has a collection of tips to help you use some external tools
+to conform to these guidelines.
 
 For shell scripts specifically (not exhaustive):
 
@@ -492,17 +495,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..5060d0d231
--- /dev/null
+++ b/Documentation/ToolsForGit.txt
@@ -0,0 +1,51 @@
+Tools for developing Git
+========================
+:sectanchors:
+
+[[summary]]
+== Summary
+
+This document gathers tips, scripts and configuration file to help people
+working on Git's codebase use their favorite tools while following Git's
+coding style.
+
+[[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.
+
+[[emacs]]
+=== Emacs
+
+This is adapted from Linux's suggestion in its CodingStyle document:
+
+- 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))))
+----
+
+For a more complete setup, since Git's codebase uses a coding style
+similar to the Linux kernel's style, tips given in Linux's CodingStyle
+document can be applied here too.
+
+==== https://www.kernel.org/doc/html/v4.10/process/coding-style.html#you-ve-made-a-mess-of-it
-- 
2.25.1
Previous: COGONI Guillaume
Message 17 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.