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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/17/22 11:35, COGONI Guillaume wrote:
MOY Matthieu wrote:

+In particular, this script enables using the VS Code visual debugger, including
+setting breakpoints, logpoints, conditional breakpoints and more in the editor.

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@xxxxxxxxx>).
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?

I think you can just drop that sentence. For someone a bit familiar with either VS code or any other IDE, it's no big surprise that the debugger integration allows such feature. For someone not familiar with VS code, the patch about to land in next already contains a link to a page explaining that.

If you want to add more explanation, then I think it should be added to contrib/vscode/README. You will probably want to add in next to the lines touched by the previous patch, hence either Junio will have to solve a conflict, or you need to write your patch on top of the previous one.

- 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))))

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?

contrib/emacs was really not meant for developers hacking on Git. Since it contains only pointers to obsolete stuff, we may want to just discard its current content and make it the place to put documentation for people hacking on Git with Emacs, just like contrib/vscode/ is for VS code and Git. But we probably have only a few (tens of) lines of documentation, so adding the doc directly in ToolsForGit.txt is probably better.

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.

A good indicator, yes. But reading only the summary ...
 == Summary
This document aims to gather tools that have a README and/or scripts in
 the Git project.

I have no idea whether this document's audience is "people hacking ON Git's codebase" or "people using Git (somewhere else)". I believe the first sentences of the document should answer "is this document for me?" (i.e. "shall I continue reading?"), and currently it doesn't.

Saying instead something like

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

would make the target audience much clearer IMHO.

+- 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:

The version for Perl already contains some configuration applicable to C (indent-tabs-mode, tab-width and fill-column).

+(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")

This works only if the user checked out Git's source code in ~/src/linux-trees, which is unlikely ;-). I guess this path is not to be taken literally (i.e. it's more clearly "adapt the configuration to your actual directory layout"), but using linux-trees here won't make it clear that it should be the place to Git's source code.

+				       filename))
+		 (setq indent-tabs-mode t)

This one is redundant with the above for example.

Actually, while the tips given in Linux's kernel CodingStyle are relevant for us, I'm not sure copy-pasting them in Git's tree actually has added value. We may as well just link to them, like

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.

(Plus a link to the file on kernel.org)

If you copy paste here, you should cite the source and say stg like "This is adapted from Linux's suggestion in its CodingStyle document".

--- 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:
-

I agree that removing Emacs-specific code from a general document is nice, but then you should replace it with a link to ToolsForGit.txt like "Tips to make your editor follow this style can be found in ToolsForGit.txt" (without being specific to Emacs, that's the point of the document, it also applies to VS code and may be extended in the future to other editors).

Cheers,

--
Matthieu Moy
https://matthieu-moy.fr/



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux