{"thread":{"id":"20677","subject":"What's cooking in git.git (Aug 2009, #03; Thu, 20)","startedAt":"2009-08-21T02:48:20Z","lastAt":"2009-08-23T15:29:15Z","messageCount":10,"participants":["Junio C Hamano","Paolo Bonzini","Mark A Rada","Jakub Narebski"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"121373","messageId":"7veir5naq3.fsf@alter.siamese.dyndns.org","threadId":"20677","inReplyTo":null,"subject":"What's cooking in git.git (Aug 2009, #03; Thu, 20)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-08-21T02:48:20Z","receivedAt":"2009-08-21T02:48:20Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' while commits prefixed with '+' are in 'next'.  The ones\nmarked with '.' do not appear in any of the integration branches, but I am\nstill holding onto them.\n\nAfter the 1.6.5 cycle, the next release will be 1.7.0, and we will push\nout the planned \"push safety\" change.  1.7.0 would be a good time to\nintroduce \"justifiable\" changes that are not strictly backward compatible.\n\nDuring 1.6.5 cycle, 'next' will hold topics meant for 1.6.5 and 1.7.0.\n\n--------------------------------------------------\n[New Topics]\n\n* aj/fix-read-tree-from-scratch (2009-08-17) 1 commit\n  (merged to 'next' on 2009-08-20 at 7a04133)\n + read-tree: Fix regression with creation of a new index file.\n\n* as/maint-graph-interesting-fix (2009-08-18) 1 commit.\n - graph API: fix bug in graph_is_interesting()\n\n* jc/1.7.0-status (2009-08-15) 7 commits\n - git-status: adjust tests\n - git status: not \"commit --dry-run\" anymore\n - git stat -s: short status output\n - git stat: pathspec limits, unlike traditional \"git status\"\n - git stat: show traditional status headers and trailers as well\n - git stat: honor relative paths setting\n - git stat: the beginning\n (this branch uses jc/shortstatus.)\n\n* jc/maint-checkout-index-to-prefix (2009-08-16) 1 commit\n  (merged to 'next' on 2009-08-20 at 2f6aea2)\n + check_path(): allow symlinked directories to checkout-index --prefix\n\n* jc/maint-unpack-objects-strict (2009-08-13) 1 commit.\n - Fix \"unpack-objects --strict\"\n\n* jh/submodule-foreach (2009-08-20) 9 commits\n  (merged to 'next' on 2009-08-20 at 671bea4)\n + git clone: Add --recursive to automatically checkout (nested) submodules\n + t7407: Use 'rev-parse --short' rather than bash's substring expansion notation\n  (merged to 'next' on 2009-08-18 at f4a881d)\n + git submodule status: Add --recursive to recurse into nested submodules\n + git submodule update: Introduce --recursive to update nested submodules\n + git submodule foreach: Add --recursive to recurse into nested submodules\n + git submodule foreach: test access to submodule name as '$name'\n + Add selftest for 'git submodule foreach'\n + git submodule: Cleanup usage string and add option parsing to cmd_foreach()\n + git submodule foreach: Provide access to submodule name, as '$name'\n\n* jl/submodule-summary-diff-files (2009-08-15) 2 commits\n  (merged to 'next' on 2009-08-15 at 165bd8e)\n + Documentaqtion/git-submodule.txt: Typofix\n  (merged to 'next' on 2009-08-14 at a702e78)\n + git submodule summary: add --files option\n\n* lh/short-decorate (2009-08-15) 1 commit\n  (merged to 'next' on 2009-08-18 at b8c1d96)\n + git-log: allow --decorate[=short|full]\n\n* oa/stash-na (2009-08-11) 1 commit\n  (merged to 'next' on 2009-08-14 at 12c2e2b)\n + git stash: Give friendlier errors when there is nothing to apply\n\n* sr/gfi-options (2009-08-13) 3 commits\n - fast-import: test the new option command\n - fast-import: add option command\n - fast-import: put option parsing code in seperate functions\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* bc/maint-am-email (Thu Aug 6 20:08:13 2009 -0500) 2 commits\n + git-am: print fair error message when format detection fails\n + am: allow individual e-mail files as input\n\nIt seems that the \"not mbox but a single piece of e-mail\" format was\nsomething many people relied on.  Hopefully this can also be sent\nto 'maint'.\n\n* js/maint-cover-letter-non-ascii (Mon Aug 10 18:22:22 2009 +0200) 2 commits\n + Correctly mark cover letters' encodings if they are not pure ASCII\n + Expose the has_non_ascii() function\n\n* jk/maint-merge-msg-fix (Sun Aug 9 06:02:51 2009 -0400) 3 commits\n + merge: indicate remote tracking branches in merge message\n + merge: fix incorrect merge message for ambiguous tag/branch\n + add tests for merge message headings\n\n* jc/maint-clean-nested-dir-safety (Tue Jun 30 15:33:45 2009 -0700) 1 commit\n + clean: require double -f options to nuke nested git repository and\n   work tree\n\n--------------------------------------------------\n[Stalled]\n\n* cc/sequencer-rebase-i (2009-08-05) 8 commits.\n - rebase -i: use \"git sequencer--helper --reset-hard\"\n - sequencer: add \"--reset-hard\" option to \"git sequencer--helper\"\n - sequencer: add comments about reset_almost_hard()\n - sequencer: add \"reset_almost_hard()\" and related functions\n - rebase -i: use \"git sequencer--helper --make-patch\"\n - sequencer: free memory used in \"make_patch\" function\n - sequencer: add \"make_patch\" function to save a patch\n - sequencer: add \"builtin-sequencer--helper.c\"\n\nMore sequencer updates.  I didn't look at the latest round that had a\nhandful \"oops, fix that earlier botch\" patches, expecting a cleaner\nreroll (which hasn't happened yet).\n\n* pb/tracking (2009-07-16) 7 commits.\n . branch.c: if remote is not config'd for branch, don't try delete push config\n . branch, checkout: introduce autosetuppush\n . move deletion of merge configuration to branch.c\n . remote: add per-remote autosetupmerge and autosetuprebase configuration\n . introduce a struct tracking_config\n . branch: install_branch_config and struct tracking refactoring\n . config: allow false and true values for branch.autosetuprebase\n\nHas been ejected from 'pu' for some time, expecting a reroll.\n\n* db/vcs-helper (2009-08-09) 17 commits\n - Allow helpers to request marks for fast-import\n - Allow helpers to report in \"list\" command that the ref is unchanged\n - Add support for \"import\" helper command\n - transport-helper_init(): fix a memory leak in error path\n - Add a config option for remotes to specify a foreign vcs\n - Allow programs to not depend on remotes having urls\n - Allow fetch to modify refs\n - Use a function to determine whether a remote is valid\n - Use a clearer style to issue commands to remote helpers\n  (merged to 'next' on 2009-08-07 at f3533ba)\n + Makefile: install hardlinks for git-remote-<scheme> supported by libcurl if possible\n + Makefile: do not link three copies of git-remote-* programs\n + Makefile: git-http-fetch does not need expat\n  (merged to 'next' on 2009-08-06 at 15da79d)\n + http-fetch: Fix Makefile dependancies\n + Add transport native helper executables to .gitignore\n  (merged to 'next' on 2009-08-05 at 33d491e)\n + git-http-fetch: not a builtin\n + Use an external program to implement fetching with curl\n + Add support for external programs for handling native fetches\n (this branch is used by jh/cvs-helper.)\n\nThere was a discussion that suggests that the use of colon ':' before vcs\nhelper name needs to be corrected.  Nothing happened since.\n\n* je/send-email-no-subject (2009-08-05) 1 commit\n - send-email: confirm on empty mail subjects\n\nThis seems to break t9001.  Near the tip of 'pu' I have a iffy\nworkaround.\n\n--------------------------------------------------\n[Cooking]\n\n* ld/p4 (2009-07-30) 1 commit\n  (merged to 'next' on 2009-08-14 at 36d310d)\n + git-p4: stream from perforce to speed up clones\n\nShould graduate to 'master' soon.\n\n* mr/gitweb-xz (2009-08-06) 3 commits\n  (merged to 'next' on 2009-08-14 at b63b8e6)\n + gitweb: add support for XZ compressed snapshots\n + gitweb: update INSTALL regarding specific snapshot settings\n + gitweb: support to globally disable a snapshot format\n\nShould graduate to 'master' soon.\n\n* jh/cvs-helper (2009-08-18) 7 commits\n - More fixes to the git-remote-cvs installation procedure\n - Fix the Makefile-generated path to the git_remote_cvs package\n   in git-remote-cvs\n - Add simple selftests of git-remote-cvs functionality\n - git-remote-cvs: Remote helper program for CVS repositories\n - 2/2: Add Python support library for CVS remote helper\n - 1/2: Add Python support library for CVS remote helper\n - Basic build infrastructure for Python scripts\n (this branch uses db/vcs-helper.)\n\nBuilds on db/vcs-helper.  The testing of Python part seemed to be\nstill fragile even with the latest fix on one of my boches with an\nearlier round already installed, but I didn't look very deeply before\nremoving the older installation.\n\n* jc/verify-pack-stat (2009-08-07) 1 commit\n  (merged to 'next' on 2009-08-10 at f80d0e9)\n + verify-pack --stat-only: show histogram without verifying\n\n* lt/block-sha1 (2009-08-17) 4 commits\n  (merged to 'next' on 2009-08-18 at 67a1ce8)\n + remove ARM and Mozilla SHA1 implementations\n + block-sha1: guard gcc extensions with __GNUC__\n + make sure byte swapping is optimal for git\n + block-sha1: make the size member first in the context struct\n\nFinishing touches ;-)  There were a few Solaris portability patches\nfloated around that I didn't pick up, waiting for them to finalize.\n\n* nd/sparse (2009-08-11) 8 commits\n . --sparse for porcelains\n . Support sparse checkout in unpack_trees() and read-tree\n . unpack-trees.c: generalize verify_* functions\n . dir.c: export excluded_1() and add_excludes_from_file_1()\n . excluded_1(): support exclude \"directories\" in index\n . Read .gitignore from index if it is assume-unchanged\n . Avoid writing to buffer in add_excludes_from_file_1()\n  (merged to 'next' on 2009-08-20 at ea167d7)\n + Prevent diff machinery from examining assume-unchanged entries on worktree\n\nThe first one was an independent fix; the rest will be discarded and\nreplaced with the \"return of no-checkout\" series.\n\n* bc/mailsplit-cr-at-eol (2009-08-04) 4 commits\n  (merged to 'next' on 2009-08-06 at 6bc7c5c)\n + Allow mailsplit (and hence git-am) to handle mails with CRLF line-endings\n + builtin-mailsplit.c: remove read_line_with_nul() since it is no longer used\n + builtin-mailinfo,builtin-mailsplit: use strbufs\n + strbuf: add new function strbuf_getwholeline()\n\nWill merge.\n\n* gb/apply-ignore-whitespace (2009-08-04) 1 commit\n  (merged to 'next' on 2009-08-06 at 59e2c86)\n + git apply: option to ignore whitespace differences\n\nWill merge.\n\n* cc/replace (2009-05-27) 14 commits.\n  (merged to 'next' on 2009-08-02 at b9c4bc0)\n + t6050: check pushing something based on a replaced commit\n + Documentation: add documentation for \"git replace\"\n + Add git-replace to .gitignore\n + builtin-replace: use \"usage_msg_opt\" to give better error messages\n + parse-options: add new function \"usage_msg_opt\"\n + builtin-replace: teach \"git replace\" to actually replace\n + Add new \"git replace\" command\n + environment: add global variable to disable replacement\n + mktag: call \"check_sha1_signature\" with the replacement sha1\n + replace_object: add a test case\n + object: call \"check_sha1_signature\" with the replacement sha1\n + sha1_file: add a \"read_sha1_file_repl\" function\n + replace_object: add mechanism to replace objects found in \"refs/replace/\"\n + refs: add a \"for_each_replace_ref\" function\n\nWill merge.\n\n* jc/1.7.0-diff-whitespace-only-status (2009-05-23) 2 commits.\n  (merged to 'next' on 2009-08-02 at 9c08420)\n + diff: Rename QUIET internal option to QUICK\n + diff: change semantics of \"ignore whitespace\" options\n\nFor 1.7.0.  This changes exit code from \"git diff --ignore-whitespace\" and\nfriends when there is no actual output.  It is a backward incompatible\nchange, but we could argue that it is a bugfix.\n\n* jc/1.7.0-push-safety (2009-02-09) 2 commits\n  (merged to 'next' on 2009-08-02 at 38b82fe)\n + Refuse deleting the current branch via push\n + Refuse updating the current branch in a non-bare repository via push\n\nFor 1.7.0.\n\n* jn/gitweb-blame (2009-08-06) 3 commits\n - gitweb: Create links leading to 'blame_incremental' using JavaScript\n - gitweb: Incremental blame (WIP)\n - gitweb: Add optional \"time to generate page\" info in footer\n\n* jc/shortstatus (2009-08-15) 11 commits\n  (merged to 'next' on 2009-08-15 at 7e40766)\n + git commit --dry-run -v: show diff in color when asked\n + Documentation/git-commit.txt: describe --dry-run\n  (merged to 'next' on 2009-08-12 at 53bda17)\n + wt-status: collect untracked files in a separate \"collect\" phase\n + Make git_status_config() file scope static to builtin-commit.c\n + wt-status: move wt_status_colors[] into wt_status structure\n + wt-status: move many global settings to wt_status structure\n + commit: --dry-run\n  (merged to 'next' on 2009-08-06 at fe8cb94)\n + status: show worktree status of conflicted paths separately\n + wt-status.c: rework the way changes to the index and work tree are summarized\n + diff-index: keep the original index intact\n + diff-index: report unmerged new entries\n (this branch is used by jc/1.7.0-status.)\n\nWill cook for a bit more and then merge.\n\n* jh/notes (2009-07-29) 8 commits.\n - t3302-notes-index-expensive: Speed up create_repo()\n - fast-import: Add support for importing commit notes\n - First draft of notes tree parser with support for fanout subtrees\n - Teach \"-m <msg>\" and \"-F <file>\" to \"git notes edit\"\n - Add an expensive test for git-notes\n - Speed up git notes lookup\n - Add a script to edit/inspect notes\n - Introduce commit notes\n\nThe cvs-helper series depends on this one.\n\n* tr/reset-checkout-patch (2009-08-18) 8 commits.\n  (merged to 'next' on 2009-08-18 at e465bb3)\n + tests: disable interactive hunk selection tests if perl is not available\n  (merged to 'next' on 2009-08-16 at 67896c4)\n + DWIM 'git stash save -p' for 'git stash -p'\n + Implement 'git stash save --patch'\n + Implement 'git checkout --patch'\n + Implement 'git reset --patch'\n + builtin-add: refactor the meat of interactive_add()\n + Add a small patch-mode testing library\n + git-apply--interactive: Refactor patch mode code\n (this branch uses js/stash-dwim.)\n\nThere was a discussion on better DWIMmery to (1) forbid \"git stash save\n--anything-with-dash\" and (2) redirect with any option \"git stash --opt\"\nto \"git stash save --opt\", to keep it flexible and safe at the same time.\nI think it is a sane thing to do.\n\n* js/stash-dwim (2009-07-27) 1 commit.\n  (merged to 'next' on 2009-08-16 at 67896c4)\n + Make 'git stash -k' a short form for 'git stash save --keep-index'\n (this branch is used by tr/reset-checkout-patch.)\n\n* jc/log-tz (2009-03-03) 1 commit.\n - Allow --date=local --date=other-format to work as expected\n\n* jc/mailinfo-remove-brackets (2009-07-15) 1 commit.\n - mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker\n\n--------------------------------------------------\n[I have been too busy to purge these]\n\n* ar/maint-1.6.2-merge-recursive-d-f (2009-05-11) 2 commits.\n . Fix for a merge where a branch has an F->D transition\n . Add a reminder test case for a merge with F/D transition\n\n* jc/merge-convert (2009-01-26) 1 commit.\n . git-merge-file: allow converting the results for the work tree\n\n* lt/read-directory (2009-05-15) 3 commits.\n . Add initial support for pathname conversion to UTF-8\n . read_directory(): infrastructure for pathname character set conversion\n . Add 'fill_directory()' helper function for directory traversal\n\n* ne/rev-cache (2009-08-17) 6 commits\n . support for path name caching of blobs/trees in rev-cache\n . full integration of rev-cache into git's revision walker, completed test suite\n . administrative functions for rev-cache, and start of integration into git\n . non-commit object support for rev-cache\n . bare minimum revision cache system, no integration with git\n . revision caching documentation: man page and technical discussion\n\n* ps/blame (2009-03-12) 1 commit.\n . blame.c: start libifying the blame infrastructure\n"},{"id":"121404","messageId":"4A8E6485.7040006@gnu.org","threadId":"20677","inReplyTo":"7veir5naq3.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Aug 2009, #03; Thu, 20)","fromName":"Paolo Bonzini","fromEmail":"bonzini@gnu.org","sentAt":"2009-08-21T09:10:29Z","receivedAt":"2009-08-21T09:10:29Z","isPatch":false,"sender":{"key":"bonzini@gnu.org","avatar":"https://avatars.githubusercontent.com/u/42082?v=4"},"body":"On 08/21/2009 04:48 AM, Junio C Hamano wrote:\n> Has been ejected from 'pu' for some time, expecting a reroll.\n\nI've been trying for a while to have push refspecs and tracking working \ntogether, but haven't come with anything that I like.\n\nI'll let it sleep for a while so that I can look at the problem again \nwith a fresh mind when I come back to it.\n\nPaolo\n"},{"id":"121412","messageId":"F4C7A2F3-B030-449A-87AC-B54CA2B647B4@mailservices.uwaterloo.ca","threadId":"20677","inReplyTo":"7veir5naq3.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Aug 2009, #03; Thu, 20)","fromName":"Mark A Rada","fromEmail":"marada@uwaterloo.ca","sentAt":"2009-08-21T12:40:34Z","receivedAt":"2009-08-21T12:40:34Z","isPatch":false,"sender":{"key":"marada@uwaterloo.ca","avatar":"https://avatars.githubusercontent.com/u/38430?v=4"},"body":"\nOn 20-Aug-09, at 10:48 PM, Junio C Hamano wrote:\n\n> Should graduate to 'master' soon.\n>\n> * mr/gitweb-xz (2009-08-06) 3 commits\n>  (merged to 'next' on 2009-08-14 at b63b8e6)\n> + gitweb: add support for XZ compressed snapshots\n> + gitweb: update INSTALL regarding specific snapshot settings\n> + gitweb: support to globally disable a snapshot format\n>\n\n\nI never submitted any tests for the patch that adds global snapshot  \ndisabling\nfunctionality to gitweb.\n\nJakub, I changed the gitweb_run routine to capture STDOUT as well, is  \nthat ok?\n\nUnless I missed a case, the tests show that the extra condition check  \nthat was\nadded in the &git_snapshot routine is never actually executed, because a\ndisabled snapshot format is not added to @snapshot_fmts, which is  \nchecked\nfirst.\n\nsnippet:\n5178     } elsif (!grep($_ eq $format, @snapshot_fmts)) {\n5179         die_error(403, \"Unsupported snapshot format\");\n5180     } elsif ($known_snapshot_formats{$format}{'disabled'}) {\n5181         die_error(403, \"Snapshot format not allowed\");\n5182     }\n5183\n\n\n--\nMark A Rada (ferrous26)\nmarada@uwaterloo.ca\n\n\n---\n  t/t9500-gitweb-standalone-no-errors.sh |   67 +++++++++++++++++++++++ \n++++++++-\n  1 files changed, 66 insertions(+), 1 deletions(-)\n\ndiff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb- \nstandalone-no-errors.sh\nindex 6275181..9ce9667 100755\n--- a/t/t9500-gitweb-standalone-no-errors.sh\n+++ b/t/t9500-gitweb-standalone-no-errors.sh\n@@ -57,10 +57,11 @@ gitweb_run () {\n  \t# we are interested only in properly formatted errors/warnings\n  \trm -f gitweb.log &&\n  \tperl -- \"$SCRIPT_NAME\" \\\n-\t\t>/dev/null 2>gitweb.log &&\n+\t\t>gitweb.output 2>gitweb.log &&\n  \tif grep \"^[[]\" gitweb.log >/dev/null 2>&1; then false; else true; fi\n\n  \t# gitweb.log is left for debugging\n+\t# gitweb.output is used to parse output\n  }\n\n  . ./test-lib.sh\n@@ -704,4 +705,68 @@ test_expect_success \\\n  \t gitweb_run \"p=.git;a=summary\"'\n  test_debug 'cat gitweb.log'\n\n+\n+#  \n----------------------------------------------------------------------\n+# snapshot settings\n+\n+cat >>gitweb_config.perl <<EOF\n+\n+\\$feature{'snapshot'}{'override'} = 0;\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: tgz only default format enabled' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tgz\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tbz2\" &&\n+\tgrep \"403 - Unsupported snapshot format\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=txz\" &&\n+\tgrep \"403 - Unsupported snapshot format\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=zip\" &&\n+\tgrep \"403 - Unsupported snapshot format\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n+cat >>gitweb_config.perl <<EOF\n+\n+\\$feature{'snapshot'}{'default'} = ['tgz','tbz2','txz','zip'];\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: all enabled in default, use default disabled value' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tgz\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tbz2\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=txz\" &&\n+\tgrep \"403 - Unsupported snapshot format\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=zip\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n+cat >>gitweb_config.perl <<EOF\n+\n+\\$known_snapshot_formats{'zip'}{'disabled'} = 1;\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: zip explicitly disabled' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=zip\" &&\n+\tgrep \"403 - Unsupported snapshot format\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n+cat >>gitweb_config.perl <<EOF\n+\n+\\$known_snapshot_formats{'tgz'}{'disabled'} = 0;\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: tgz explicitly enabled' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tgz\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n  test_done\n-- \n1.6.4\n"},{"id":"121445","messageId":"200908212006.16333.jnareb@gmail.com","threadId":"20677","inReplyTo":"F4C7A2F3-B030-449A-87AC-B54CA2B647B4@mailservices.uwaterloo.ca","subject":"Re: What's cooking in git.git (Aug 2009, #03; Thu, 20)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2009-08-21T18:06:12Z","receivedAt":"2009-08-21T18:06:12Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Fri, 21 Aug 2009, Mark A Rada wrote:\n> On 20-Aug-09, at 10:48 PM, Junio C Hamano wrote:\n> \n> > Should graduate to 'master' soon.\n> >\n> > * mr/gitweb-xz (2009-08-06) 3 commits\n> >  (merged to 'next' on 2009-08-14 at b63b8e6)\n> > + gitweb: add support for XZ compressed snapshots\n> > + gitweb: update INSTALL regarding specific snapshot settings\n> > + gitweb: support to globally disable a snapshot format\n> >\n> \n> \n> I never submitted any tests for the patch that adds global snapshot  \n> disabling functionality to gitweb.\n> \n> Jakub, I changed the gitweb_run routine to capture STDOUT as well, \n> is that ok?\n\nI think it is a good addition to the gitweb tests in git testsuite,\nas it might make finding cause of an error easier.\n\n> Unless I missed a case, the tests show that the extra condition check  \n> that was added in the git_snapshot() routine is never actually\n> executed, because a disabled snapshot format is not added to\n> @snapshot_fmts, which is checked first.\n> \n> snippet:\n> 5178     } elsif (!grep($_ eq $format, @snapshot_fmts)) {\n> 5179         die_error(403, \"Unsupported snapshot format\");\n> 5180     } elsif ($known_snapshot_formats{$format}{'disabled'}) {\n> 5181         die_error(403, \"Snapshot format not allowed\");\n> 5182     }\n> 5183\n\nSo we did check if format is disable twice, once when creating\n(generating @snapshot_fmts list, and once (I guess unnecessary;\n@snapshot_fmts is generated after reading GITWEB_CONFIG file(s)) \nwhen checking if snapshot $format is on the list of possible \n(allowed) formats in the snipped above.\n\nAm I right?  If it is so, the last part of above snipped wouldn't\nbe ever exercised, and is not necessary.\n\n> ---\n>   t/t9500-gitweb-standalone-no-errors.sh |   67 +++++++++++++++++++++++ \n> ++++++++-\n\nWord-wrapped.\n\n>   1 files changed, 66 insertions(+), 1 deletions(-)\n> \n> diff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb- \n> standalone-no-errors.sh\n> index 6275181..9ce9667 100755\n> --- a/t/t9500-gitweb-standalone-no-errors.sh\n> +++ b/t/t9500-gitweb-standalone-no-errors.sh\n> @@ -57,10 +57,11 @@ gitweb_run () {\n>   \t# we are interested only in properly formatted errors/warnings\n>   \trm -f gitweb.log &&\n>   \tperl -- \"$SCRIPT_NAME\" \\\n> -\t\t>/dev/null 2>gitweb.log &&\n> +\t\t>gitweb.output 2>gitweb.log &&\n>   \tif grep \"^[[]\" gitweb.log >/dev/null 2>&1; then false; else true; fi\n> \n>   \t# gitweb.log is left for debugging\n> +\t# gitweb.output is used to parse output\n>   }\n\nThis is a good change.\n\n> \n>   . ./test-lib.sh\n> @@ -704,4 +705,68 @@ test_expect_success \\\n>   \t gitweb_run \"p=.git;a=summary\"'\n>   test_debug 'cat gitweb.log'\n> \n> +\n> +#  \n> ----------------------------------------------------------------------\n> +# snapshot settings\n> +\n> +cat >>gitweb_config.perl <<EOF\n> +\n> +\\$feature{'snapshot'}{'override'} = 0;\n> +EOF\n\nA trick: use '\\EOF' and you don't need to escape $ against variable\nexpansion by shell.\n\n  +cat >>gitweb_config.perl <<\\EOF\n  +\n  +$feature{'snapshot'}{'override'} = 0;\n  +EOF\n\n> +\n> +test_expect_success \\\n> +\t'snapshots: tgz only default format enabled' \\\n> +\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tgz\" &&\n> +\tgrep \"Status: 200 OK\" gitweb.output &&\n> +\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tbz2\" &&\n> +\tgrep \"403 - Unsupported snapshot format\" gitweb.output &&\n> +\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=txz\" &&\n> +\tgrep \"403 - Unsupported snapshot format\" gitweb.output &&\n> +\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=zip\" &&\n> +\tgrep \"403 - Unsupported snapshot format\" gitweb.output'\n> +test_debug 'cat gitweb.output'\n\nI would prefer (but I do not require) that such test were placed in\nseparate file, named e.g. t9501-gitweb-check-http-status.sh, and leave\nt9500-gitweb-standalone-no-errors.sh to be about checking for Perl \nerrors and warnings only.  This would require to extract common \ninfrastructure (gitweb_init, gitweb_run, checking prerequisites)\ninto t/lib-gitweb.sh (or t/gitweb-lib.sh ;-)).\n\n-- \nJakub Narebski\nPoland\n"},{"id":"121447","messageId":"7vzl9tdkml.fsf@alter.siamese.dyndns.org","threadId":"20677","inReplyTo":"4A8E6485.7040006@gnu.org","subject":"Re: What's cooking in git.git (Aug 2009, #03; Thu, 20)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-08-21T19:36:50Z","receivedAt":"2009-08-21T19:36:50Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Paolo Bonzini <bonzini@gnu.org> writes:\n\n> On 08/21/2009 04:48 AM, Junio C Hamano wrote:\n>> Has been ejected from 'pu' for some time, expecting a reroll.\n>\n> I've been trying for a while to have push refspecs and tracking\n> working together, but haven't come with anything that I like.\n>\n> I'll let it sleep for a while so that I can look at the problem again\n> with a fresh mind when I come back to it.\n\nThanks.\n"},{"id":"121452","messageId":"7vfxbldj31.fsf@alter.siamese.dyndns.org","threadId":"20677","inReplyTo":"200908212006.16333.jnareb@gmail.com","subject":"Re: What's cooking in git.git (Aug 2009, #03; Thu, 20)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-08-21T20:10:10Z","receivedAt":"2009-08-21T20:10:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n>> +cat >>gitweb_config.perl <<EOF\n>> +\n>> +\\$feature{'snapshot'}{'override'} = 0;\n>> +EOF\n>\n> A trick: use '\\EOF' and you don't need to escape $ against variable\n> expansion by shell.\n>\n>   +cat >>gitweb_config.perl <<\\EOF\n>   +\n>   +$feature{'snapshot'}{'override'} = 0;\n>   +EOF\n\nIt is not a \"trick\" but is a basic courtesy for reviewers.  Even if you do\nnot have any $ to worry about, _unless_ you actively know you would want\nvariable substitution to happen, it is easier for readers if you signal\nthe fact that the here-doc is verbatim by quoting the \\EOF marker upfront.\n\nSame thing for use of single quotes vs double quotes when writing strings,\neven though they tend to be small and much less of an issue.\n"},{"id":"121468","messageId":"7vskfkc07s.fsf@alter.siamese.dyndns.org","threadId":"20677","inReplyTo":"F4C7A2F3-B030-449A-87AC-B54CA2B647B4@mailservices.uwaterloo.ca","subject":"Re: What's cooking in git.git (Aug 2009, #03; Thu, 20)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-08-21T21:43:03Z","receivedAt":"2009-08-21T21:43:03Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Mark A Rada <marada@uwaterloo.ca> writes:\n\n> Unless I missed a case, the tests show that the extra condition check\n> that was added in the &git_snapshot routine is never actually executed,\n> because a disabled snapshot format is not added to @snapshot_fmts, which\n> is checked first.\n>\n> snippet:\n> 5178     } elsif (!grep($_ eq $format, @snapshot_fmts)) {\n> 5179         die_error(403, \"Unsupported snapshot format\");\n> 5180     } elsif ($known_snapshot_formats{$format}{'disabled'}) {\n> 5181         die_error(403, \"Snapshot format not allowed\");\n> 5182     }\n> 5183\n\nTrue; filter_snapshot_fmts looks at 'disabled' first.\n\nI do not mind keeping these two lines as belt-and-suspender, though.\n"},{"id":"121531","messageId":"4C812C4E-815B-478D-AEB1-3F1DEC5D3641@mailservices.uwaterloo.ca","threadId":"20677","inReplyTo":"7vfxbldj31.fsf@alter.siamese.dyndns.org","subject":"[RFC] gitweb.perl t9500 t9501","fromName":"Mark A Rada","fromEmail":"marada@uwaterloo.ca","sentAt":"2009-08-22T22:42:56Z","receivedAt":"2009-08-22T22:42:56Z","isPatch":false,"sender":{"key":"marada@uwaterloo.ca","avatar":"https://avatars.githubusercontent.com/u/38430?v=4"},"body":"Ok, I have a few questions, please:\n\n\n> Word-wrapped.\n\nI have not been telling git-format-patch to use a specific width for  \nthe diffstat, is the\nstandard width supposed to be 70? Also, you will note a line in the  \npatch below\nthat will definitely be broken, it looks like\n\ndiff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb- \nstandalone-no-errors.sh\n\nI don't see an option for git-format-patch to get around that in the  \nman page,\nhow would I fix that?\n\n\n> I do not mind keeping these two lines as belt-and-suspender, though.\n\nThat is a vivid analogy...I will have to remember that one for later.\n\nI tried switching the order of the last two checks, and I think it  \nmakes that unused\ncheck more useful, it can inform clients they are trying something  \nthat has been\nexplicitly disabled as opposed to just notifying them the format is  \nunsupported.\n\nDo you think making the change is worthwhile? (new commit? rewinding?)\n(The patch at the bottom currently assumes you have switched them  \nalready.)\n\nanother snippet:\n@@ -5175,10 +5175,10 @@ sub git_snapshot {\n                 die_error(400, \"Invalid snapshot format parameter\");\n         } elsif (!exists($known_snapshot_formats{$format})) {\n                 die_error(400, \"Unknown snapshot format\");\n-       } elsif (!grep($_ eq $format, @snapshot_fmts)) {\n-               die_error(403, \"Unsupported snapshot format\");\n         } elsif ($known_snapshot_formats{$format}{'disabled'}) {\n                 die_error(403, \"Snapshot format not allowed\");\n+       } elsif (!grep($_ eq $format, @snapshot_fmts)) {\n+               die_error(403, \"Unsupported snapshot format\");\n         }\n\n         if (!defined $hash) {\n\n\n>> A trick: use '\\EOF' and you don't need to escape $ against variable\n>> expansion by shell.\n> It is not a \"trick\" but is a basic courtesy for reviewers.  Even if  \n> you do\n> not have any $ to worry about, _unless_ you actively know you would  \n> want\n> variable substitution to happen, it is easier for readers if you  \n> signal\n> the fact that the here-doc is verbatim by quoting the \\EOF marker  \n> upfront.\n\nThanks for the protip, I've taken the liberty of making use of it for  \ngitweb-lib.sh,\nI hope you don't mind, Jakub.\n\n\n--\nMark A Rada (ferrous26)\nmarada@uwaterloo.ca\n\n\n---\n  t/gitweb-lib.sh                          |   74 +++++++++++++++++++\n  t/t9500-gitweb-standalone-no-errors.sh   |   68 +-----------------\n  t/t9501-gitweb-standalone-http-status.sh |   78 ++++++++++++++++++++\n  3 files changed, 153 insertions(+), 67 deletions(-)\n\ndiff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh\nnew file mode 100644\nindex 0000000..4f4115f\n--- /dev/null\n+++ b/t/gitweb-lib.sh\n@@ -0,0 +1,74 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2007 Jakub Narebski\n+#\n+\n+\n+gitweb_init () {\n+\tsafe_pwd=\"$(perl -MPOSIX=getcwd -e 'print quotemeta(getcwd)')\"\n+\tcat >gitweb_config.perl <<EOF\n+#!/usr/bin/perl\n+\n+# gitweb configuration for tests\n+\n+our \\$version = 'current';\n+our \\$GIT = 'git';\n+our \\$projectroot = \"$safe_pwd\";\n+our \\$project_maxdepth = 8;\n+our \\$home_link_str = 'projects';\n+our \\$site_name = '[localhost]';\n+our \\$site_header = '';\n+our \\$site_footer = '';\n+our \\$home_text = 'indextext.html';\n+our @stylesheets = ('file:///$TEST_DIRECTORY/../gitweb/gitweb.css');\n+our \\$logo = 'file:///$TEST_DIRECTORY/../gitweb/git-logo.png';\n+our \\$favicon = 'file:///$TEST_DIRECTORY/../gitweb/git-favicon.png';\n+our \\$projects_list = '';\n+our \\$export_ok = '';\n+our \\$strict_export = '';\n+\n+EOF\n+\n+\tcat >.git/description <<EOF\n+$0 test repository\n+EOF\n+}\n+\n+gitweb_run () {\n+\tGATEWAY_INTERFACE='CGI/1.1'\n+\tHTTP_ACCEPT='*/*'\n+\tREQUEST_METHOD='GET'\n+\tSCRIPT_NAME=\"$TEST_DIRECTORY/../gitweb/gitweb.perl\"\n+\tQUERY_STRING=\"\"$1\"\"\n+\tPATH_INFO=\"\"$2\"\"\n+\texport GATEWAY_INTERFACE HTTP_ACCEPT REQUEST_METHOD \\\n+\t\tSCRIPT_NAME QUERY_STRING PATH_INFO\n+\n+\tGITWEB_CONFIG=$(pwd)/gitweb_config.perl\n+\texport GITWEB_CONFIG\n+\n+\t# some of git commands write to STDERR on error, but this is not\n+\t# written to web server logs, so we are not interested in that:\n+\t# we are interested only in properly formatted errors/warnings\n+\trm -f gitweb.log &&\n+\tperl -- \"$SCRIPT_NAME\" \\\n+\t\t>gitweb.output 2>gitweb.log &&\n+\tif grep '^[[]' gitweb.log >/dev/null 2>&1; then false; else true; fi\n+\n+\t# gitweb.log is left for debugging\n+\t# gitweb.output is used to parse http output\n+}\n+\n+. ./test-lib.sh\n+\n+if ! test_have_prereq PERL; then\n+\tsay 'skipping gitweb tests, perl not available'\n+\ttest_done\n+fi\n+\n+perl -MEncode -e 'decode_utf8(\"\", Encode::FB_CROAK)' >/dev/null 2>&1  \n|| {\n+    say 'skipping gitweb tests, perl version is too old'\n+    test_done\n+}\n+\n+gitweb_init\ndiff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb- \nstandalone-no-errors.sh\nindex 6275181..32e47d3 100755\n--- a/t/t9500-gitweb-standalone-no-errors.sh\n+++ b/t/t9500-gitweb-standalone-no-errors.sh\n@@ -9,73 +9,7 @@ This test runs gitweb (git web interface) as CGI  \nscript from\n  commandline, and checks that it would not write any errors\n  or warnings to log.'\n\n-gitweb_init () {\n-\tsafe_pwd=\"$(perl -MPOSIX=getcwd -e 'print quotemeta(getcwd)')\"\n-\tcat >gitweb_config.perl <<EOF\n-#!/usr/bin/perl\n-\n-# gitweb configuration for tests\n-\n-our \\$version = \"current\";\n-our \\$GIT = \"git\";\n-our \\$projectroot = \"$safe_pwd\";\n-our \\$project_maxdepth = 8;\n-our \\$home_link_str = \"projects\";\n-our \\$site_name = \"[localhost]\";\n-our \\$site_header = \"\";\n-our \\$site_footer = \"\";\n-our \\$home_text = \"indextext.html\";\n-our @stylesheets = (\"file:///$TEST_DIRECTORY/../gitweb/gitweb.css\");\n-our \\$logo = \"file:///$TEST_DIRECTORY/../gitweb/git-logo.png\";\n-our \\$favicon = \"file:///$TEST_DIRECTORY/../gitweb/git-favicon.png\";\n-our \\$projects_list = \"\";\n-our \\$export_ok = \"\";\n-our \\$strict_export = \"\";\n-\n-EOF\n-\n-\tcat >.git/description <<EOF\n-$0 test repository\n-EOF\n-}\n-\n-gitweb_run () {\n-\tGATEWAY_INTERFACE=\"CGI/1.1\"\n-\tHTTP_ACCEPT=\"*/*\"\n-\tREQUEST_METHOD=\"GET\"\n-\tSCRIPT_NAME=\"$TEST_DIRECTORY/../gitweb/gitweb.perl\"\n-\tQUERY_STRING=\"\"$1\"\"\n-\tPATH_INFO=\"\"$2\"\"\n-\texport GATEWAY_INTERFACE HTTP_ACCEPT REQUEST_METHOD \\\n-\t\tSCRIPT_NAME QUERY_STRING PATH_INFO\n-\n-\tGITWEB_CONFIG=$(pwd)/gitweb_config.perl\n-\texport GITWEB_CONFIG\n-\n-\t# some of git commands write to STDERR on error, but this is not\n-\t# written to web server logs, so we are not interested in that:\n-\t# we are interested only in properly formatted errors/warnings\n-\trm -f gitweb.log &&\n-\tperl -- \"$SCRIPT_NAME\" \\\n-\t\t>/dev/null 2>gitweb.log &&\n-\tif grep \"^[[]\" gitweb.log >/dev/null 2>&1; then false; else true; fi\n-\n-\t# gitweb.log is left for debugging\n-}\n-\n-. ./test-lib.sh\n-\n-if ! test_have_prereq PERL; then\n-\tsay 'skipping gitweb tests, perl not available'\n-\ttest_done\n-fi\n-\n-perl -MEncode -e 'decode_utf8(\"\", Encode::FB_CROAK)' >/dev/null 2>&1  \n|| {\n-    say 'skipping gitweb tests, perl version is too old'\n-    test_done\n-}\n-\n-gitweb_init\n+. ./gitweb-lib.sh\n\n  #  \n----------------------------------------------------------------------\n  # no commits (empty, just initialized repository)\ndiff --git a/t/t9501-gitweb-standalone-http-status.sh b/t/t9501-gitweb- \nstandalone-http-status.sh\nnew file mode 100644\nindex 0000000..be042f0\n--- /dev/null\n+++ b/t/t9501-gitweb-standalone-http-status.sh\n@@ -0,0 +1,78 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2009 Mark Rada\n+#\n+\n+\n+test_description='gitweb as standalone script (http status tests).\n+\n+This test runs gitweb (git web interface) as CGI script from the\n+commandline, and checks that it returns the appropriate http status\n+code and message.'\n+\n+. ./gitweb-lib.sh\n+\n+#  \n----------------------------------------------------------------------\n+# snapshot settings\n+\n+test_commit \\\n+\t'GITWEB' \\\n+\t'I CAN HAS SNAPSHOT?'\n+\n+cat >>gitweb_config.perl <<\\EOF\n+$feature{'snapshot'}{'override'} = 0;\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: tgz only default format enabled' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tgz\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tbz2\" &&\n+\tgrep \"403 - Unsupported snapshot format\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=txz\" &&\n+\tgrep \"403 - Snapshot format not allowed\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=zip\" &&\n+\tgrep \"403 - Unsupported snapshot format\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n+cat >>gitweb_config.perl <<\\EOF\n+$feature{'snapshot'}{'default'} = ['tgz','tbz2','txz','zip'];\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: all enabled in default, use default disabled value' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tgz\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tbz2\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=txz\" &&\n+\tgrep \"403 - Snapshot format not allowed\" gitweb.output &&\n+\tgitweb_run \"p=.git;a=snapshot;h=HEAD;sf=zip\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n+cat >>gitweb_config.perl <<\\EOF\n+$known_snapshot_formats{'zip'}{'disabled'} = 1;\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: zip explicitly disabled' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=zip\" &&\n+\tgrep \"403 - Snapshot format not allowed\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n+cat >>gitweb_config.perl <<\\EOF\n+$known_snapshot_formats{'tgz'}{'disabled'} = 0;\n+EOF\n+\n+test_expect_success \\\n+\t'snapshots: tgz explicitly enabled' \\\n+\t'gitweb_run \"p=.git;a=snapshot;h=HEAD;sf=tgz\" &&\n+\tgrep \"Status: 200 OK\" gitweb.output'\n+test_debug 'cat gitweb.output'\n+\n+\n+test_done\n-- \n1.6.4\n"},{"id":"121536","messageId":"7v3a7j2scq.fsf@alter.siamese.dyndns.org","threadId":"20677","inReplyTo":"4C812C4E-815B-478D-AEB1-3F1DEC5D3641@mailservices.uwaterloo.ca","subject":"Re: [RFC] gitweb.perl t9500 t9501","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-08-23T02:09:57Z","receivedAt":"2009-08-23T02:09:57Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Mark A Rada <marada@uwaterloo.ca> writes:\n\n> I have not been telling git-format-patch to use a specific width for\n> the diffstat, is the standard width supposed to be 70?\n\nPerhaps there is some misconception here.\n\nWe try to keep our _code_ to fit in standard 80-column terminal.  We also\nkeep lines in the _log message_ shorter than 70-something so that after\nindentation by various programs (e.g. shortlog) and a few levels of\nquoting in the e-mail are added, the lines will still stay below\n80-columns.  These are standard practices.\n\nAnd you may need to find a good place to break lines in your _code_, and\nyour _log message_, to stay below that limit.\n\nBut that all happens inside your editor, before you touch format-patch nor\nyour MUA.\n\nThe patch contents may contain long lines, such as\n\n    diff --git a/filename-that-is-long b/filename-that-is-long\n\nor\n\n    @@ -old,lines +new,lines @@ original contents that is long\n\nthat is neither _code_ nor _log message_.  They could easily go beyond\n80-column, but that is normal, and they do not have any 70-column limit\nfor you to worry about.  They follow a different rule, namely, if\nformat-patch (or \"diff\" in general) outputs something on a single line,\nthat has to stay on a single line.  \"patch\" expects each of these on a\nsingle line.  Do not break them.\n\nSo make sure that you do not let your MUA perform any line-wrapping at\nrandom place in the message after you formatted your commits via\nformat-patch, and you will be Ok.\n"},{"id":"121564","messageId":"1890FEA1-311B-4B98-8226-4F3DF6232438@mailservices.uwaterloo.ca","threadId":"20677","inReplyTo":"7v3a7j2scq.fsf@alter.siamese.dyndns.org","subject":"Re: [RFC] gitweb.perl t9500 t9501","fromName":"Mark A Rada","fromEmail":"marada@uwaterloo.ca","sentAt":"2009-08-23T15:29:15Z","receivedAt":"2009-08-23T15:29:15Z","isPatch":false,"sender":{"key":"marada@uwaterloo.ca","avatar":"https://avatars.githubusercontent.com/u/38430?v=4"},"body":"\nOn 22-Aug-09, at 10:09 PM, Junio C Hamano wrote:\n\n> Mark A Rada <marada@uwaterloo.ca> writes:\n>\n>> I have not been telling git-format-patch to use a specific width for\n>> the diffstat, is the standard width supposed to be 70?\n>\n> Perhaps there is some misconception here.\n>\n\nYup, my bad, told my MUA to send as text/plain, but it didn't,\nso I was seeing perfectly fine e-mails when I received them,\nbut gmane showed me how mangled everything was. I'll find a\nbetter MUA and resend later, thanks for your patience with me.\n\n\n--\nMark A Rada (ferrous26)\nmarada@uwaterloo.ca\n"}]}