{"thread":{"id":"27710","subject":"[ANNOUNCE] Git 1.7.6","startedAt":"2011-06-27T15:59:19Z","lastAt":"2011-06-27T15:59:19Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"170573","messageId":"7v8vsnz2nc.fsf@alter.siamese.dyndns.org","threadId":"27710","inReplyTo":null,"subject":"[ANNOUNCE] Git 1.7.6","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-27T15:59:19Z","receivedAt":"2011-06-27T15:59:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The latest feature release Git 1.7.6 is available at the usual\nplaces:\n\n  http://www.kernel.org/pub/software/scm/git/\n\n  git-1.7.6.tar.{gz,bz2}\t\t\t(source tarball)\n  git-htmldocs-1.7.6.tar.{gz,bz2}\t\t(preformatted docs)\n  git-manpages-1.7.6.tar.{gz,bz2}\t\t(preformatted docs)\n\nThe RPM binary packages for a few architectures are found in:\n\n  RPMS/$arch/git-*-1.7.6-1.fc13.$arch.rpm\t(RPM)\n\nGit v1.7.6 Release Notes\n========================\n\nUpdates since v1.7.5\n--------------------\n\n * Various git-svn updates.\n\n * Updates the way content tags are handled in gitweb.  Also adds\n   a UI to choose common timezone for displaying the dates.\n\n * Similar to branch names, tagnames that begin with \"-\" are now\n   disallowed.\n\n * Clean-up of the C part of i18n (but not l10n---please wait)\n   continues.\n\n * The scripting part of the codebase is getting prepared for i18n/l10n.\n\n * Pushing and pulling from a repository with large number of refs that\n   point to identical commits are optimized by not listing the same commit\n   during the common ancestor negotiation exchange with the other side.\n\n * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig)\n   using \"git add\" will send the contents straight to a packfile without\n   having to hold it and its compressed representation both at the same\n   time in memory.\n\n * Processes spawned by \"[alias] <name> = !process\" in the configuration\n   can inspect GIT_PREFIX environment variable to learn where in the\n   working tree the original command was invoked.\n\n * A magic pathspec \":/\" tells a command that limits its operation to\n   the current directory when ran from a subdirectory to work on the\n   entire working tree. In general, \":/path/to/file\" would be relative\n   to the root of the working tree hierarchy.\n\n   After \"git reset --hard; edit Makefile; cd t/\", \"git add -u\" would\n   be a no-op, but \"git add -u :/\" would add the updated contents of\n   the Makefile at the top level. If you want to name a path in the\n   current subdirectory whose unusual name begins with \":/\", you can\n   name it by \"./:/that/path\" or by \"\\:/that/path\".\n\n * \"git blame\" learned \"--abbrev[=<n>]\" option to control the minimum\n   number of hexdigits shown for commit object names.\n\n * \"git blame\" learned \"--line-porcelain\" that is less efficient but is\n   easier to parse.\n\n * Aborting \"git commit --interactive\" discards updates to the index\n   made during the interactive session.\n\n * \"git commit\" learned a \"--patch\" option to directly jump to the\n   per-hunk selection UI of the interactive mode.\n\n * \"git diff\" and its family of commands learned --dirstat=0 to show\n   directories that contribute less than 0.1% of changes.\n\n * \"git diff\" and its family of commands learned --dirstat=lines mode to\n   assess damage to the directory based on number of lines in the patch\n   output, not based on the similarity numbers.\n\n * \"git format-patch\" learned \"--quiet\" option to suppress the output of\n   the names of generated files.\n\n * \"git format-patch\" quotes people's names when it has RFC822 special\n   characters in it, e.g. \"Junio C. Hamano\" <jch@example.com>.  Earlier\n   it was up to the user to do this when using its output.\n\n * \"git format-patch\" can take an empty --subject-prefix now.\n\n * \"git grep\" learned the \"-P\" option to take pcre regular expressions.\n\n * \"git log\" and friends learned a new \"--notes\" option to replace the\n   \"--show-notes\" option.  Unlike \"--show-notes\", \"--notes=<ref>\" does\n   not imply showing the default notes.\n\n * They also learned a log.abbrevCommit configuration variable to augment\n   the --abbrev-commit command line option.\n\n * \"git ls-remote\" learned \"--exit-code\" option to consider it a\n   different kind of error when no remote ref to be shown.\n\n * \"git merge\" learned \"-\" as a short-hand for \"the previous branch\", just\n   like the way \"git checkout -\" works.\n\n * \"git merge\" uses \"merge.ff\" configuration variable to decide to always\n   create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create\n   a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes\n   (or not setting it at all) restores the default behaviour of allowing\n   fast-forward to happen when possible.\n\n * p4-import (from contrib) learned a new option --preserve-user.\n\n * \"git read-tree -m\" learned \"--dry-run\" option that reports if a merge\n   would fail without touching the index nor the working tree.\n\n * \"git rebase\" that does not specify on top of which branch to rebase\n   the current branch now uses @{upstream} of the current branch.\n\n * \"git rebase\" finished either normally or with --abort did not\n   update the reflog for HEAD to record the event to come back to\n   where it started from.\n\n * \"git remote add -t only-this-branch --mirror=fetch\" is now allowed. Earlier\n   a fetch-mode mirror meant mirror everything, but now it only means refs are\n   not renamed.\n\n * \"git rev-list --count\" used with \"--cherry-mark\" counts the cherry-picked\n   commits separately, producing more a useful output.\n\n * \"git submodule update\" learned \"--force\" option to get rid of local\n   changes in submodules and replace them with the up-to-date version.\n\n * \"git status\" and friends ignore .gitmodules file while the file is\n   still in a conflicted state during a merge, to avoid using information\n   that is not final and possibly corrupt with conflict markers.\n\nAlso contains various documentation updates and minor miscellaneous\nchanges.\n\n\nFixes since v1.7.5\n------------------\n\nUnless otherwise noted, all the fixes in 1.7.5.X maintenance track are\nincluded in this release.\n\n * \"git config\" used to choke with an insanely long line.\n   (merge ef/maint-strbuf-init later)\n\n * \"git diff --quiet\" did not work well with --diff-filter.\n   (merge jk/diff-not-so-quick later)\n\n * \"git status -z\" did not default to --porcelain output format.\n   (merge bc/maint-status-z-to-use-porcelain later)\n\n\n----------------------------------------------------------------\n\nChanges since v1.7.5 are as follows:\n\nAlex Riesen (2):\n      clean: unreadable directory may still be rmdir-able if it is empty\n      t3703: skip more tests using colons in file names on Windows\n\nAndreas Schwab (1):\n      builtin/gc.c: add missing newline in message\n\nAndrew Wong (1):\n      git-rebase--interactive.sh: preserve-merges fails on merges created with no-ff\n\nBoris Faure (1):\n      Do not strip empty lines / trailing spaces from a commit message template\n\nBrandon Casey (5):\n      Documentation/technical/api-diff.txt: correct name of diff_unmerge()\n      git-submodule.sh: separate parens by a space to avoid confusing some shells\n      t7508: demonstrate status's failure to use --porcelain format with -z\n      builtin/commit.c: set status_format _after_ option parsing\n      sh-i18n--envsubst.c: do not #include getopt.h\n\nBrian Gernhardt (1):\n      t/annotate-tests: Use echo & cat instead of sed\n\nCarlos Martín Nieto (3):\n      format-patch: don't pass on the --quiet flag\n      format-patch: document --quiet option\n      log: convert to parse-options\n\nChristof Krüger (1):\n      Documentation: git diff --check respects core.whitespace\n\nCiaran Jessup (1):\n      Pass empty file to p4merge where no base is suitable.\n\nConrad Irwin (5):\n      Use a temporary index for git commit --interactive\n      Allow git commit --interactive with paths\n      Add support for -p/--patch to git-commit\n      Add commit to list of config.singlekey commands\n      Test atomic git-commit --interactive\n\nCsaba Henk (1):\n      rebase: create HEAD reflog entry when aborting\n\nDan McGee (6):\n      Share color list between graph and show-branch\n      stash: add two more tests for --no-keep-index\n      stash: ensure --no-keep-index and --patch can be used in any order\n      http: make curl callbacks match contracts from curl header\n      http-push: use const for strings in signatures\n      http-push: refactor curl_easy_setup madness\n\nDima Sharov (1):\n      shell: add missing initialization of argv0_path\n\nDmitry Ivankov (1):\n      Fix typo: existant->existent\n\nElijah Newren (3):\n      t6022: New test checking for unnecessary updates of renamed+modified files\n      t6022: New test checking for unnecessary updates of files in D/F conflicts\n      merge-recursive: When we detect we can skip an update, actually skip it\n\nErik Faye-Lund (2):\n      strbuf: make sure buffer is zero-terminated\n      config: support values longer than 1023 bytes\n\nFelipe Contreras (1):\n      git-completion: fix regression in zsh support\n\nFraser Tweedale (1):\n      gitweb: supply '-n' to gzip for identical output\n\nGuy Rouillier (1):\n      Look for password in both CVS and CVSNT password files.\n\nHeiko Voigt (1):\n      test that git status works with merge conflict in, .gitmodules\n\nIngo Molnar (1):\n      hashcmp(): inline memcmp() by hand to optimize\n\nJakub Narebski (20):\n      gitweb: Restructure projects list generation\n      gitweb: Change the way \"content tags\" ('ctags') are handled\n      gitweb: Mark matched 'ctag' / contents tag (?by_tag=foo)\n      git-instaweb: Simplify build dependency on gitweb\n      Remove gitweb/gitweb.cgi and other legacy targets from main Makefile\n      gitweb: Split JavaScript for maintability, combining on build\n      gitweb.js: Update and improve comments in JavaScript files\n      gitweb.js: Provide default values for padding in padLeftStr and padLeft\n      gitweb.js: Extract and improve datetime handling\n      gitweb.js: Introduce code to handle cookies from JavaScript\n      gitweb.js: Provide getElementsByClassName method (if it not exists)\n      gitweb: Refactor generating of long dates into format_timestamp_html\n      gitweb: Unify the way long timestamp is displayed\n      gitweb: Make JavaScript ability to adjust timezones configurable\n      gitweb: Refactor reading and parsing config file into read_config_file\n      gitweb: Move information about installation from README to INSTALL\n      gitweb: Describe CSSMIN and JSMIN in gitweb/INSTALL\n      gitweb: Move \"Requirements\" up in gitweb/INSTALL\n      gitweb: Fix usability of $prevent_xss\n      gitweb: 'pickaxe' and 'grep' features requires 'search' to be enabled\n\nJay Soffian (2):\n      \"git log -h\": typofix misspelled 'suppress'\n      Add log.abbrevCommit config variable\n\nJeff King (51):\n      notes: make expand_notes_ref globally accessible\n      revision.c: refactor notes ref expansion\n      notes: refactor display notes extra refs field\n      notes: refactor display notes default handling\n      revision.c: support --notes command-line option\n      revision.c: make --no-notes reset --notes list\n      stash: fix accidental apply of non-existent stashes\n      stash: drop dirty worktree check on apply\n      upload-pack: start pack-objects before async rev-list\n      format-patch: wrap email addresses after long names\n      pretty: quote rfc822 specials in email addresses\n      add tests for merge-index / merge-one-file\n      merge-one-file: fix broken merges with alternate work trees\n      send-pack: unbreak push over stateless rpc\n      add tests for various blame formats\n      blame: refactor porcelain output\n      blame: add --line-porcelain output format\n      t7501.8: feed a meaningful command\n      cherry-pick: handle root commits with external strategies\n      revert: allow reverting a root commit\n      t3503: test cherry picking and reverting root commits\n      connect: treat generic proxy processes like ssh processes\n      connect: let callers know if connection is a socket\n      send-pack: avoid deadlock on git:// push with failed pack-objects\n      test core.gitproxy configuration\n      fetch: avoid repeated commits in mark_complete\n      Makefile: sort TEST_PROGRAMS list\n      refactor refs_from_alternate_cb to allow passing extra data\n      bisect: refactor sha1_array into a generic sha1 list\n      receive-pack: eliminate duplicate .have refs\n      doc: discuss textconv versus external diff drivers\n      config: make environment parsing routines static\n      git_config: don't peek at global config_parameters\n      config: always parse GIT_CONFIG_PARAMETERS during git_config\n      read_gitfile_gently: use ssize_t to hold read result\n      remote: allow \"-t\" with fetch mirrors\n      read_in_full: always report errors\n      t: test subject handling in format-patch / am pipeline\n      mailinfo: always clean up rfc822 header folding\n      pretty: add pp_commit_easy function for simple callers\n      clean up calling conventions for pretty.c functions\n      format-patch: preserve subject newlines with -k\n      docs: minor grammar fixes to git-status\n      docs: update status --porcelain format\n      docs: make sure literal \"->\" isn't converted to arrow\n      docs: fix some antique example output\n      rebase: write a reflog entry when finishing\n      format-patch: make zero-length subject prefixes prettier\n      diff_tree: disable QUICK optimization with diff filter\n      t/Makefile: pass test opts to valgrind target properly\n      tests: link shell libraries into valgrind directory\n\nJens Lehmann (3):\n      Submodules: Don't parse .gitmodules when it contains, merge conflicts\n      unpack-trees: add the dry_run flag to unpack_trees_options\n      Teach read-tree the -n|--dry-run option\n\nJim Meyering (9):\n      diffcore-rename.c: avoid set-but-not-used warning\n      Documentation/git-fsck.txt: fix typo: unreadable -> unreachable\n      do not read beyond end of malloc'd buffer\n      rerere.c: diagnose a corrupt MERGE_RR when hitting EOF between TAB and '\\0'\n      plug a DIR buffer leak in rerere.c\n      remove tests of always-false condition\n      diffcore-rename.c: avoid set-but-not-used warning\n      fetch: do not leak a refspec\n      plug a few coverity-spotted leaks\n\nJohan Herland (15):\n      log/pretty-options: Document --[no-]notes and deprecate old notes options\n      Make \"git notes add\" more user-friendly when there are existing notes\n      --dirstat: Describe non-obvious differences relative to --stat or regular diff\n      --dirstat-by-file: Make it faster and more correct\n      Teach --dirstat not to completely ignore rearranged lines within a file\n      --dirstat: In case of renames, use target filename instead of source filename\n      Add several testcases for --dirstat and friends\n      Make --dirstat=0 output directories that contribute < 0.1% of changes\n      Refactor --dirstat parsing; deprecate --cumulative and --dirstat-by-file\n      Add config variable for specifying default --dirstat behavior\n      Allow specifying --dirstat cut-off percentage as a floating point number\n      New --dirstat=lines mode, doing dirstat analysis based on diffstat\n      Improve error handling when parsing dirstat parameters\n      Mark dirstat error messages for translation\n      t5400: Fix a couple of typos\n\nJohannes Sixt (6):\n      Documentation/format-patch: suggest Toggle Word Wrap add-on for Thunderbird\n      send-pack: avoid deadlock when pack-object dies early\n      Honor $(prefix) set in config.mak* when defining ETC_GIT*\n      t3703: Skip tests using directory name \":\" on Windows\n      Tweak t3102-ls-tree-wildcards to run on Windows\n      Windows: add a wrapper for the shutdown() system call\n\nJohn 'Warthog9' Hawley (2):\n      gitweb: JavaScript ability to adjust time based on timezone\n      gitweb.js: Add UI for selecting common timezone to display dates\n\nJon Seymour (2):\n      stash: fix false positive in the invalid ref test.\n      git: add --info-path and --man-path options\n\nJonathan Nieder (28):\n      Revert \"t0081 (line-buffer): add buffering tests\"\n      Restructure documentation for git-merge-base.\n      Documentation: describe the format of messages with inline patches\n      Documentation: explain how to check for patch corruption\n      Documentation: hints for sending patches inline with Thunderbird\n      Documentation: publicize KMail hints for sending patches inline\n      Documentation: publicize hints for sending patches with GMail\n      tests: check error message from run_command\n      run-command: handle short writes and EINTR in die_child\n      revisions: split out handle_revision_pseudo_opt function\n      revisions: allow --glob and friends in parse_options-enabled commands\n      Documentation: clarify meaning of --html-path, --man-path, and --info-path\n      tests: eliminate unnecessary setup test assertions\n      tests: teach verify_parents to check for extra parents\n      tests: check git does not barf on merge.ff values for future versions of git\n      completion: move private shopt shim for zsh to __git_ namespace\n      add, merge, diff: do not use strcasecmp to compare config variable names\n      provide a copy of the LGPLv2.1\n      t4018 (funcname patterns): make .gitattributes state easier to track\n      t4018 (funcname patterns): make configuration easier to track\n      t4018 (funcname patterns): minor cleanups\n      userdiff/perl: anchor \"sub\" and \"package\" patterns on the left\n      userdiff/perl: match full line of POD headers\n      userdiff/perl: catch sub with brace on second line\n      tests: make test_expect_code quieter on success\n      userdiff/perl: tighten BEGIN/END block pattern to reject here-doc delimiters\n      Documentation: do not misinterpret refspecs as bold text\n      gitweb: do not misparse nonnumeric content tag files that contain a digit\n\nJonathon Mah (1):\n      mergetool: Teach about submodules\n\nJosh Stone (1):\n      blame: tolerate bogus e-mail addresses a bit better\n\nJoão Britto (1):\n      Remove duplicated \"is a\"\n\nJunio C Hamano (112):\n      merge-recursive: tweak magic band-aid\n      builtin/diff.c: remove duplicated call to diff_result_code()\n      diffcore-rename: refactor \"too many candidates\" logic\n      diffcore-rename: record filepair for rename src\n      diffcore-rename: fall back to -C when -C -C busts the rename limit\n      git diff -D: omit the preimage of deletes\n      pathspec: rename per-item field has_wildcard to use_wildcard\n      Teach core.bigfilethreashold to pack-objects\n      magic pathspec: add tentative \":/path/from/top/level\" pathspec support\n      merge: allow \"-\" as a short-hand for \"previous branch\"\n      magic pathspec: futureproof shorthand form\n      magic pathspec: add \":(icase)path\" to match case insensitively\n      i18n: do not overuse C_LOCALE_OUTPUT\n      i18n: .git file is not a human readable message (t5601)\n      i18n: use test_i18ncmp in t1200 and t2200\n      i18n: do not overuse C_LOCALE_OUTPUT (grep)\n      i18n: use test_i18ngrep in lib-httpd and t2019\n      i18n: use test_i18ngrep in t2020, t2204, t3030, and t3200\n      i18n: use test_i18ncmp and test_i18ngrep in t3203, t3501 and t3507\n      i18n: use test_i18ncmp and test_i18ngrep in t3700, t4001 and t4014\n      i18n: use test_i18ncmp and test_i18ngrep in t5541, t6040, t6120, t7004, t7012 and t7060\n      i18n: use test_i18ncmp and test_i18ngrep in t7102 and t7110\n      i18n: use test_i18ngrep in t7201\n      i18n: use test_i18ncmp in t7500\n      i18n: use test_i18ngrep in t7501\n      i18n: use test_i18ngrep and test_i18ncmp in t7502\n      i18n: use test_i18ngrep in t7506\n      i18n: use test_i18n{grep,cmp} in t7508\n      i18n: use test_i18n{cmp,grep} in t7600, t7607, t7611 and t7811\n      test: use $_z40 from test-lib\n      diff.c: return filepair from diff_unmerge()\n      diff: remove often unused parameters from diff_unmerge()\n      diff-files: show unmerged entries correctly\n      Fix \"add -u\" that sometimes fails to resolve unmerged paths\n      http: clear POSTFIELDS when initializing a slot\n      Start 1.7.6 cycle\n      Start 1.7.5.1 maintenance track\n      add -p: 'q' should really quit\n      t3701: Editing a split hunk in an \"add -p\" session\n      add--interactive.perl: factor out repeated --recount option\n      \"add -p\": work-around an old laziness that does not coalesce hunks\n      Update draft release notes to 1.7.6\n      Update draft release notes to 1.7.6\n      Git 1.7.5.1\n      Update draft release notes to 1.7.6\n      t3701: fix here document\n      Update draft release notes to 1.7.6\n      merge: make branch.<name>.mergeoptions correctly override merge.<option>\n      merge: introduce merge.ff configuration variable\n      rerere: libify rerere_clear() and rerere_gc()\n      t3701: add-p-fix makes the last test to pass\n      t1507: avoid \"${parameter<op>'word'}\" inside double-quotes\n      index_fd(): turn write_object and format_check arguments into one flag\n      index_fd(): split into two helper functions\n      convert: rename the \"eol\" global variable to \"core_eol\"\n      convert: give saner names to crlf/eol variables, types and functions\n      convert: make it safer to add conversion attributes\n      convert: make it harder to screw up adding a conversion attribute\n      Revert \"Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir\"\n      git-grep: do not die upon -F/-P when grep.extendedRegexp is set.\n      Revert \"magic pathspec: add \":(icase)path\" to match case insensitively\"\n      pathspec: drop \"lone : means no pathspec\" from get_pathspec()\n      grep: use get_pathspec() correctly\n      fix overstrict :<path> diagnosis\n      fix overslow :/no-such-string-ever-existed diagnostics\n      rev/path disambiguation: further restrict \"misspelled index entry\" diag\n      Revert \"completion: don't declare 'local words' to make zsh happy\"\n      Update draft release notes to 1.7.6\n      setup_revisions(): take pathspec from command line and --stdin correctly\n      revision.c: leave a note for \"a lone :\" enhancement\n      Prepare for 1.7.5.2\n      Update draft release notes to 1.7.6\n      Bigfile: teach \"git add\" to send a large file straight to a pack\n      Declare lookup_replace_object() in cache.h, not in commit.h\n      t6050: make sure we test not just commit replacement\n      read_sha1_file(): get rid of read_sha1_file_repl() madness\n      inline lookup_replace_object() calls\n      read_sha1_file(): allow selective bypassing of replacement mechanism\n      sha1_file: typofix\n      git_open_noatime(): drop unused parameter\n      Update draft release notes to 1.7.5.2\n      Sync release notes for 1.7.6 to exclude what are in maintenance track\n      git-grep: update tests now regexp type is \"last one wins\"\n      Makefile: Pass USE_LIBPCRE down in GIT-BUILD-OPTIONS\n      sideband_demux(): fix decl-after-stmt\n      Update draft release notes to 1.7.5.2\n      Update release notes to 1.7.6\n      notes remove: allow removing more than one\n      notes remove: --ignore-missing\n      notes remove: --stdin reads from the standard input\n      show: --ignore-missing\n      Git 1.7.5.2\n      Revert \"Merge branch 'en/merge-recursive'\"\n      Update draft release notes to 1.7.6\n      Update 1.7.6 draft release notes\n      require-work-tree wants more than what its name says\n      handle_options(): do not miscount how many arguments were used\n      userformat_find_requirements(): find requirement for the correct format\n      compat/fnmatch/fnmatch.c: give a fall-back definition for NULL\n      Git 1.7.5.3\n      Update 1.7.6 draft release notes\n      config.mak.in: allow \"configure --sysconfdir=/else/where\"\n      log: --quiet should serve as synonym to -s\n      diff: futureproof \"stop feeding the backend early\" logic\n      Start 1.7.5.4 draft release notes\n      Update draft release notes to 1.7.6\n      Git 1.7.5.4\n      Git 1.7.6-rc1\n      Git 1.7.6-rc2\n      t7810: avoid unportable use of \"echo\"\n      Git 1.7.6-rc3\n      Git 1.7.6\n\nKacper Kornet (1):\n      Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir\n\nLuke Diamand (3):\n      git-p4: add option to preserve user names\n      git-p4: small improvements to user-preservation\n      git-p4: warn if git authorship won't be retained\n\nMarius Storm-Olsen (1):\n      Automatically autoload bashcompinit for ZSH, when needed\n\nMartin von Zweigbergk (35):\n      rebase: clearer names for directory variables\n      rebase: refactor reading of state\n      rebase: read state outside loop\n      rebase: remove unused rebase state 'prev_head'\n      rebase: improve detection of rebase in progress\n      rebase: act on command line outside parsing loop\n      rebase: stricter check of standalone sub command\n      rebase: align variable names\n      rebase: align variable content\n      rebase: factor out command line option processing\n      rebase -i: remove now unnecessary directory checks\n      rebase: reorder validation steps\n      rebase: factor out reference parsing\n      rebase: factor out clean work tree check\n      rebase: factor out call to pre-rebase hook\n      rebase -i: support --stat\n      rebase: remove $branch as synonym for $orig_head\n      rebase: extract merge code to new source file\n      rebase: extract am code to new source file\n      rebase: show consistent conflict resolution hint\n      rebase -i: align variable names\n      rebase: make -v a tiny bit more verbose\n      rebase: factor out sub command handling\n      rebase: extract code for writing basic state\n      rebase: remember verbose option\n      rebase: remember strategy and strategy options\n      rebase -m: remember allow_rerere_autoupdate option\n      rebase -m: don't print exit code 2 when merge fails\n      git-rebase--am: remove unnecessary --3way option\n      rebase -i: don't read unused variable preserve_merges\n      rebase -i: remove unnecessary state rebase-root\n      rebase: use @{upstream} if no upstream specified\n      Makefile: do not install sourced rebase scripts\n      rebase: define options in OPTIONS_SPEC\n      diffcore-rename: don't consider unmerged path as source\n\nMathias Lafeldt (2):\n      t/README: unify documentation of test function args\n      t/test-lib.sh: minor readability improvements\n\nMichael Haggerty (1):\n      git-svn: add an option to skip the creation of empty directories\n\nMichael J Gruber (16):\n      builtin/log.c: separate default and setup of cmd_log_init()\n      t/t1411: test reflog with formats\n      reflog: fix overriding of command line options\n      t1506: factor out test for \"Did you mean...\"\n      sha1_name: Suggest commit:./file for path in subdir\n      contrib/completion: --notes, --no-notes\n      date: avoid \"X years, 12 months\" in relative dates\n      rev-list --count: separate count for --cherry-mark\n      t1020: test !alias in subdirectory\n      handle_alias: provide GIT_PREFIX to !alias\n      config.txt,diff-options.txt: porcelain vs. plumbing for color.diff\n      git-fast-import.txt: --relative-marks takes no parameter\n      config: define and document exit codes\n      config: Give error message when not changing a multivar\n      git-svn: Fix git svn log --show-commit\n      sh-18n: quell \"unused variable\" warning\n\nMichael Schubert (2):\n      tag: disallow '-' as tag name\n      ls-remote: the --exit-code option reports \"no matching refs\"\n\nMichał Kiedrowicz (11):\n      Documentation: Add --line-number to git-grep synopsis\n      contrib/completion: --line-number to git grep\n      grep: Put calls to fixmatch() and regmatch() into patmatch()\n      grep: Fix a typo in a comment\n      grep: Extract compile_regexp_failed() from compile_regexp()\n      git-grep: Learn PCRE\n      configure: Check for libpcre\n      grep: Add basic tests\n      git-grep: Bail out when -P is used with -F or -E\n      git-grep: Update tests (mainly for -P)\n      git-grep: Fix problems with recently added tests\n\nNamhyung Kim (2):\n      blame: add --abbrev command line option and make it honor core.abbrev\n      completion: replace core.abbrevguard to core.abbrev\n\nNguyễn Thái Ngọc Duy (9):\n      Reimplement read_tree_recursive() using tree_entry_interesting()\n      Convert read_tree{,_recursive} to support struct pathspec\n      Improve tree_entry_interesting() handling code\n      setup: return correct prefix if worktree is '/'\n      Kill off get_relative_cwd()\n      t1011: fix sparse-checkout initialization and add new file\n      sparse checkout: do not eagerly decide the fate for whole directory\n      t3703, t4208: add test cases for magic pathspec\n      init/clone: remove short option -L and document --separate-git-dir\n\nNicolas Morey-Chaisemartin (1):\n      submodule: Add --force option for git submodule update\n\nRafael Gieschke (2):\n      copy_gecos: fix not adding nlen to len when processing \"&\"\n      ident: add NO_GECOS_IN_PWENT for systems without pw_gecos in struct passwd\n\nRamkumar Ramachandra (4):\n      Documentation: Add filter.<driver>.* to config\n      Documentation: Move diff.<driver>.* from config.txt to diff-config.txt\n      Documentation: Add diff.<driver>.* to config\n      Documentation: Allow custom diff tools to be specified in 'diff.tool'\n\nRamsay Allan Jones (9):\n      Makefile: Use cgcc rather than sparse in the check target\n      sparse: Fix an \"symbol 'cmd_index_pack' not declared\" warning\n      sparse: Fix some \"Using plain integer as NULL pointer\" warnings\n      sparse: Fix an \"symbol 'format_subject' not declared\" warning\n      sparse: Fix an \"symbol 'merge_file' not decared\" warning\n      sparse: Fix errors due to missing target-specific variables\n      sparse: Fix some \"symbol not declared\" warnings\n      setup.c: Fix some \"symbol not declared\" sparse warnings\n      config.c: Remove unused git_config_global() function\n\nRené Scharfe (1):\n      strbuf: clarify assertion in strbuf_setlen()\n\nSZEDER Gábor (3):\n      completion: don't modify the $cur variable in completion functions\n      completion: remove unnecessary _get_comp_words_by_ref() invocations\n      completion: don't declare 'local words' to make zsh happy\n\nSebastian Schuberth (1):\n      doc: Clarify that \"cherry-pick -x\" does not use \"git notes\"\n\nSebastien Cevey (3):\n      gitweb: Split git_project_list_body in two functions\n      gitweb: Modularized git_get_project_description to be more generic\n      gitweb: Optional grouping of projects by category\n\nStefan Sperling (1):\n      remove noise and inaccuracies from git-svn docs\n\nSverre Rabbelier (1):\n      fast-import: fix option parser for no-arg options\n\nSylvain Rabot (1):\n      git-send-email: fix missing space in error message\n\nTay Ray Chuan (1):\n      t5541-http-push: add test for chunked\n\nThomas Rast (1):\n      add -i: ignore terminal escape sequences\n\nValentin Haenel (9):\n      git-svn.txt: fix usage of --add-author-from\n      git-svn.txt: move option descriptions\n      git-svn.txt: small typeface improvements\n      git-add.txt: document 'add.ignoreErrors'\n      config.txt: 'interactive.singlekey; is used by...\n      git-add.txt: document 'interactive.singlekey'\n      git-stash.txt: better docs for '--patch'\n      git-checkout.txt: better docs for '--patch'\n      git-reset.txt: better docs for '--patch'\n\nVincent van Ravesteijn (1):\n      Documentation: update to git-merge-base --octopus\n\nÆvar Arnfjörð Bjarmason (12):\n      i18n: mark merge \"Could not read from\" message for translation\n      i18n: mark merge \"upstream\" messages for translation\n      i18n: mark merge CHERRY_PICK_HEAD messages for translation\n      i18n: mark clone nonexistent repository message for translation\n      i18n: mark checkout --detach messages for translation\n      i18n: mark checkout plural warning for translation\n      i18n: mark init-db messages for translation\n      git-sh-i18n--envsubst: our own envsubst(1) for eval_gettext()\n      git-sh-i18n.sh: add no-op gettext() and eval_gettext() wrappers\n      git-sh-i18n.sh: add GIT_GETTEXT_POISON support\n      Makefile: add xgettext target for *.sh files\n      git-sh-i18n--envsubst: add SYNOPSIS section to the documentation\n"}]}