X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=patchformatting.mdwn;h=73f7b10be4e12fe16c245ee020aacfd1ba7f1999;hb=7b82a05d8152381bdc5ea21a34a2c5487f1298f3;hp=3a122fc323e690be644a0c54a0074b007546be09;hpb=ae2ce97043ceccecdfb2bb705818f226cabef99e;p=notmuch-wiki diff --git a/patchformatting.mdwn b/patchformatting.mdwn index 3a122fc..73f7b10 100644 --- a/patchformatting.mdwn +++ b/patchformatting.mdwn @@ -25,13 +25,20 @@ working tree will follow. Enter your commit message in following format: - first commit line; one line description, up to 65 chars + first commit line; short one line description After one empty line, a detailed description of your changes the description most usually spans over multiple lines. -The 65-character (limit) seems to be common among many projects so -that is good guideline to follow here too. +Wrap the lines to about __72__ characters or so. On an 80 column terminal, +if we subtract 4 columns for the indent on the left and 4 more for +symmetry on the right, we’re left with __72__ columns. + +Regarding the commit message body contents, +Carl [has stated](http://article.gmane.org/gmane.mail.notmuch.general/504): + +> The single line summary is good about saying *what* the commit does, +> but I always want to see at least one sentence about the *why* as well. ### Activating default pre-commit hook @@ -107,6 +114,38 @@ you can check with `git log` a 40-char commit-sha1 of the last commit every commit *after* that commit-sha1 will be used to generate patch files... +### Test-applying your patches + +Sometimes you may face a situation with your patches that you are unsure +whether those patches apply to the origin. Such a cases might be: + +* You've taken your patches from a branch that has some other commits on top of origin. + +* You have edited the commit message, comments below commit message or the patch content itself in the patch files generated. + +To verify that your patches will apply on top of pristine origin you can +test-apply your patch files on origin/master: + +* Simple case -- no other changes on top of origin/master + + git reset --hard origin/master + git pull + git am 00* + +* A case where working tree is dirty + + git log -1 --format=%H > head_commit + git stash save + git reset --hard origin/master + git pull + git am 00* + + git reset --hard `cat head_commit` + git stash apply + rm head_commit + git stash drop + + ## Sending patches ### Using git send-email