Message ID | 58187bb9c61bc7599cde31b52a5dd58e90c1f78f.1632076068.git.iskarian@mgsn.dev |
---|---|
State | Accepted |
Headers | show |
Series | [bug#50363,v3] Improve default diff hunk header detection. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Sarah Morgensen writes: > diff --git a/.gitattributes b/.gitattributes > new file mode 100644 > index 0000000000..51f29b8a48 > --- /dev/null > +++ b/.gitattributes > @@ -0,0 +1,3 @@ > +*.scm diff=scheme > +*.scm.in diff=scheme > +*.texi diff=tex "tex" is a built-in pattern for LaTeX. To avoid confusion, I suggest "texinfo", which is what the Emacs repo uses. > diff --git a/doc/contributing.texi b/doc/contributing.texi [...] > +@example > +git config --local include.path=../etc/git/gitconfig > +@end example The '=' above should be a space: $ git config --local include.path=../etc/git/gitconfig error: invalid key: include.path=../etc/git/gitconfig (This is true in the other examples as well.) Just thinking aloud: the include.path approach above assumes a clone with the standard $GIT_DIR and working tree layout, but that seems fine because users with more unusual setups would know how to adjust it for their case. Also, for git-worktree users, the etc/git/gitconfig file in the main worktree would be used within other worktrees, but for this use case I doubt that will cause confusion. > @unnumberedsubsec Sending a Patch Series > @anchor{Sending a Patch Series} > @cindex patch series > @cindex @code{git send-email} > -@cindex @code{git-send-email} I suspect the second variant was included to help those that are using the git- variant to search (perhaps because that's how they'd refer to the manpage or because they know about Git's exec path). Not a big deal either way, but keeping it around seems okay to me. > diff --git a/etc/git/gitconfig b/etc/git/gitconfig > new file mode 100644 > index 0000000000..290006816f > --- /dev/null > +++ b/etc/git/gitconfig > @@ -0,0 +1,5 @@ > +[diff "scheme"] > + xfuncname = "^(\\(define.*)$" > + > +[diff "tex"] > + xfuncname = "^(@((|sub|subsub)section|(unnumbered|appendix)((|sub|subsub)sec)|(|major|chap|sub|subsub)heading|chapter|part|titlepage|top)[ \t]+.*)$" Fwiw the Emacs repo sets a simpler value (via autogen.sh): ^@node[[:space:]]+([^,[:space:]][^,]+)
Hello Kyle, Thanks for taking a look and trying this out! Kyle Meyer <kyle@kyleam.com> writes: > Sarah Morgensen writes: > >> diff --git a/.gitattributes b/.gitattributes >> new file mode 100644 >> index 0000000000..51f29b8a48 >> --- /dev/null >> +++ b/.gitattributes >> @@ -0,0 +1,3 @@ >> +*.scm diff=scheme >> +*.scm.in diff=scheme >> +*.texi diff=tex > > "tex" is a built-in pattern for LaTeX. To avoid confusion, I suggest > "texinfo", which is what the Emacs repo uses. Good point. I was trying to use the built-in because it has a whitespace regex defined in userdiff.c, but I just found that I can set that with wordRegex, so I'll do that. I'll take a look at the Emacs repo as well. > >> diff --git a/doc/contributing.texi b/doc/contributing.texi > [...] >> +@example >> +git config --local include.path=../etc/git/gitconfig >> +@end example > > The '=' above should be a space: > > $ git config --local include.path=../etc/git/gitconfig > error: invalid key: include.path=../etc/git/gitconfig > > (This is true in the other examples as well.) Thanks for catching this. > > Just thinking aloud: the include.path approach above assumes a clone > with the standard $GIT_DIR and working tree layout, but that seems fine > because users with more unusual setups would know how to adjust it for > their case. Also, for git-worktree users, the etc/git/gitconfig file in > the main worktree would be used within other worktrees, but for this use > case I doubt that will cause confusion. I actually wrote about the worktree limitation at first, but I thought including it would be more confusing to people who don't use them than it would be helpful to people who do. >> @unnumberedsubsec Sending a Patch Series >> @anchor{Sending a Patch Series} >> @cindex patch series >> @cindex @code{git send-email} >> -@cindex @code{git-send-email} > > I suspect the second variant was included to help those that are using > the git- variant to search (perhaps because that's how they'd refer to > the manpage or because they know about Git's exec path). Not a big deal > either way, but keeping it around seems okay to me. Hmmm. I originally removed it because it results in two entries in the index. Perhaps I can index them as @cindex @code{git send-email} (or @code{git-send-email}) or similar. What do you think? >> diff --git a/etc/git/gitconfig b/etc/git/gitconfig >> new file mode 100644 >> index 0000000000..290006816f >> --- /dev/null >> +++ b/etc/git/gitconfig >> @@ -0,0 +1,5 @@ >> +[diff "scheme"] >> + xfuncname = "^(\\(define.*)$" >> + >> +[diff "tex"] >> + xfuncname = "^(@((|sub|subsub)section|(unnumbered|appendix)((|sub|subsub)sec)|(|major|chap|sub|subsub)heading|chapter|part|titlepage|top)[ \t]+.*)$" > > Fwiw the Emacs repo sets a simpler value (via autogen.sh): > > ^@node[[:space:]]+([^,[:space:]][^,]+) I made this choice because we have several unnumbered subsections without nodes that are fairly long. Otherwise, nodes make a good choice. Also, their xfuncname will only show the node name as the diff hunk header--not the whole line. I also considered this (I think it's cleaner) but I thought it might be confusing. If others like it, let's do it. -- Sarah
Sarah Morgensen writes: > Kyle Meyer <kyle@kyleam.com> writes: > >> Sarah Morgensen writes: [...] >>> @cindex @code{git send-email} >>> -@cindex @code{git-send-email} >> >> I suspect the second variant was included to help those that are using >> the git- variant to search (perhaps because that's how they'd refer to >> the manpage or because they know about Git's exec path). Not a big deal >> either way, but keeping it around seems okay to me. > > Hmmm. I originally removed it because it results in two entries in the > index. Perhaps I can index them as > > @cindex @code{git send-email} (or @code{git-send-email}) > > or similar. What do you think? I don't see having entries in the index for different variants as an issue (although I can see the point of view that it's just noise in this case). As for packing them into one line, dunno, think I'd just leave it either as it is (separate lines) or how your patch has it. But, again, I don't think it matters much either way (and perhaps wasn't worth me commenting on it :]).
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..51f29b8a48 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.scm diff=scheme +*.scm.in diff=scheme +*.texi diff=tex diff --git a/doc/contributing.texi b/doc/contributing.texi index d1b77d7d05..0e8747ab25 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -992,9 +992,12 @@ @section Submitting Patches Development is done using the Git distributed version control system. Thus, access to the repository is not strictly necessary. We welcome contributions in the form of patches as produced by @code{git -format-patch} sent to the @email{guix-patches@@gnu.org} mailing list. -Seasoned Guix developers may also want to look at the section on commit -access (@pxref{Commit Access}). +format-patch} sent to the @email{guix-patches@@gnu.org} mailing list +(@pxref{submitting patches,, Submitting patches to a project, git, Git +User Manual}). Contributors are encouraged to take a moment to set some +Git repository options (@pxref{Configuring Git}) first, which can +improve the readability of patches. Seasoned Guix developers may also +want to look at the section on commit access (@pxref{Commit Access}). This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Patches}). Each @@ -1205,11 +1208,46 @@ @section Submitting Patches When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}. +@node Configuring Git +@subsection Configuring Git +@cindex git configuration +@cindex @code{git format-patch} +@cindex @code{git send-email} + +If you have not done so already, you may wish to set a name and email +that will be associated with your commits (@pxref{telling git your name, +, Telling Git your name, git, Git User Manual}). If you wish to use a +different name or email just for commits in this respository, you can +use @command{git config --local}, or edit @file{.git/config} in the +repository instead of @file{~/.gitconfig}. + +We provide some default settings in @file{etc/git/gitconfig} which +modify how patches are generated, making them easier to read and apply. +These settings can be applied by manually copying them to +@file{.git/config} in your checkout, or by telling Git to include the +whole file: + +@example +git config --local include.path=../etc/git/gitconfig +@end example + +From then on, any changes to @file{etc/git/gitconfig} would +automatically take effect. + +Since the first patch in a series must be sent separately +(@pxref{Sending a Patch Series}), it can also be helpful to tell +@command{git format-patch} to handle the e-mail threading instead of +@command{git send-email}: + +@example +git config --local format.thread=shallow +git config --local sendemail.thread=no +@end example + @unnumberedsubsec Sending a Patch Series @anchor{Sending a Patch Series} @cindex patch series @cindex @code{git send-email} -@cindex @code{git-send-email} When sending a patch series (e.g., using @code{git send-email}), please first send one message to @email{guix-patches@@gnu.org}, and then send diff --git a/doc/guix.texi b/doc/guix.texi index 6436e83a7c..4dac36310f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 Sarah Morgensen@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/etc/git/gitconfig b/etc/git/gitconfig new file mode 100644 index 0000000000..290006816f --- /dev/null +++ b/etc/git/gitconfig @@ -0,0 +1,5 @@ +[diff "scheme"] + xfuncname = "^(\\(define.*)$" + +[diff "tex"] + xfuncname = "^(@((|sub|subsub)section|(unnumbered|appendix)((|sub|subsub)sec)|(|major|chap|sub|subsub)heading|chapter|part|titlepage|top)[ \t]+.*)$"