Version next; changes since v2.43.0:
------------------------------------

Andy Koppe (3):
      rebase: fully ignore rebase.autoSquash without -i
      rebase: support --autosquash without -i
      rebase: rewrite --(no-)autosquash documentation

Antonin Delpeuch (1):
      merge-file: add --diff-algorithm option

Arthur Chan (1):
      fuzz: add new oss-fuzz fuzzer for date.c / date.h

Elijah Newren (18):
      t6429: remove switching aspects of fast-rebase
      replay: introduce new builtin
      replay: start using parse_options API
      replay: die() instead of failing assert()
      replay: introduce pick_regular_commit()
      replay: change rev walking options
      replay: add an important FIXME comment about gpg signing
      replay: remove progress and info output
      replay: remove HEAD related sanity check
      replay: make it a minimal server side command
      replay: use standard revision ranges
      replay: add --advance or 'cherry-pick' mode
      replay: add --contained to rebase contained branches
      replay: stop assuming replayed branches do not diverge
      completion: squelch stray errors in sparse-checkout completion
      completion: fix logic for determining whether cone mode is active
      completion: avoid misleading completions in cone mode
      completion: avoid user confusion in non-cone mode

Eric Sunshine (1):
      git-add.txt: add missing short option -A to synopsis

Jeff Hostetler (3):
      trace2: fix signature of trace2_def_param() macro
      t0211: test URL redacting in PERF format
      t0212: test URL redacting in EVENT format

Jeff King (30):
      commit-graph: handle overflow in chunk_size checks
      midx: check consistency of fanout table
      commit-graph: drop redundant call to "lite" verification
      commit-graph: clarify missing-chunk error messages
      commit-graph: abort as soon as we see a bogus chunk
      commit-graph: use fanout value for graph size
      commit-graph: check order while reading fanout chunk
      commit-graph: drop verify_commit_graph_lite()
      commit-graph: mark chunk error messages for translation
      parse-options: decouple "--end-of-options" and "--"
      bisect: always clean on reset
      config: handle NULL value when parsing non-bools
      setup: handle NULL value when parsing extensions
      trace2: handle NULL values in tr2_sysenv config callback
      help: handle NULL value for alias.* config
      submodule: handle NULL value when parsing submodule.*.branch
      trailer: handle NULL value when parsing trailer-specific config
      fsck: handle NULL value when parsing message config
      config: reject bogus values for core.checkstat
      git_xmerge_config(): prefer error() to die()
      imap-send: don't use git_die_config() inside callback
      config: use config_error_nonbool() instead of custom messages
      diff: give more detailed messages for bogus diff.* config
      config: use git_config_string() for core.checkRoundTripEncoding
      push: drop confusing configset/callback redundancy
      gpg-interface: drop pointless config_error_nonbool() checks
      sequencer: simplify away extra git_config_string() call
      mailinfo: fix out-of-bounds memory reads in unquote_quoted_pair()
      t5100: make rfc822 comment test more careful
      mailinfo: avoid recursion when unquoting From headers

Jiang Xin (2):
      t5574: test porcelain output of atomic fetch
      fetch: no redundant error message for atomic fetch

Joanna Wang (1):
      attr: enable attr pathspec magic for git-add and git-stash

Johannes Schindelin (10):
      cmake: also build unit tests
      unit-tests: do not mistake `.pdb` files for being executable
      unit-tests: do show relative file paths
      artifacts-tar: when including `.dll` files, don't forget the unit-tests
      cmake: fix typo in variable name
      cmake: use test names instead of full paths
      cmake: handle also unit tests
      ci: avoid running the test suite _twice_
      packfile.c: fix a typo in `each_file_in_pack_dir_fn()`'s declaration
      trace2: redact passwords from https:// URLs by default

Josh Brobst (1):
      builtin/reflog.c: fix dry-run option short name

Josh Soref (4):
      doc: update links to current pages
      doc: switch links to https
      doc: update links for andre-simon.de
      doc: refer to internet archive

Josh Steadmon (2):
      unit tests: add a project plan document
      ci: run unit tests in CI

Julian Prein (1):
      hooks--pre-commit: detect non-ASCII when renaming

Junio C Hamano (17):
      cache: add fake_lstat()
      diff-lib: fix check_removed() when fsmonitor is active
      checkout: refactor die_if_checked_out() caller
      orphan/unborn: add to the glossary and use them consistently
      orphan/unborn: fix use of 'orphan' in end-user facing messages
      revision: parse integer arguments to --max-count, --skip, etc., more carefully
      Start the 2.44 cycle
      checkout: forbid "-B <branch>" from touching a branch used elsewhere
      git.txt: HEAD is not that special
      git-bisect.txt: BISECT_HEAD is not that special
      refs.h: HEAD is not that special
      docs: AUTO_MERGE is not that special
      docs: MERGE_AUTOSTASH is not that special
      doc: format.notes specify a ref under refs/notes/ hierarchy
      The second batch
      remote.h: retire CAS_OPT_NAME
      The third batch

Linus Arver (3):
      commit: ignore_non_trailer computes number of bytes to ignore
      trailer: find the end of the log message
      trailer: use offsets for trailer_start/trailer_end

Marcel Krause (1):
      doc: make the gitfile syntax easier to discover

Patrick Steinhardt (62):
      t: allow skipping expected object ID in `ref-store update-ref`
      t: convert tests to not write references via the filesystem
      t: convert tests to not access symrefs via the filesystem
      t: convert tests to not access reflog via the filesystem
      t1450: convert tests to remove worktrees via git-worktree(1)
      t4207: delete replace references via git-update-ref(1)
      t7300: assert exact states of repo
      t7900: assert the absence of refs via git-for-each-ref(1)
      t: mark several tests that assume the files backend with REFFILES
      ci: reorder definitions for grouping functions
      ci: make grouping setup more generic
      ci: group installation of Docker dependencies
      ci: split out logic to set up failed test artifacts
      ci: unify setup of some environment variables
      ci: squelch warnings when testing with unusable Git repo
      ci: install test dependencies for linux-musl
      ci: add support for GitLab CI
      t/lib-httpd: dynamically detect httpd and modules path
      t/lib-httpd: stop using legacy crypt(3) for authentication
      t9164: fix inability to find basename(1) in Subversion hooks
      global: convert trivial usages of `test <expr> -a/-o <expr>`
      contrib/subtree: stop using `-o` to test for number of args
      contrib/subtree: convert subtree type check to use case statement
      Makefile: stop using `test -o` when unlinking duplicate executables
      t5510: ensure that the packed-refs file needs locking
      refs/files: use transactions to delete references
      refs: deduplicate code to delete references
      refs: remove `delete_refs` callback from backends
      commit-graph: disable GIT_COMMIT_GRAPH_PARANOIA by default
      t0410: mark tests to require the reffiles backend
      t1400: split up generic reflog tests from the reffile-specific ones
      t1401: stop treating FETCH_HEAD as real reference
      t1410: use test-tool to create empty reflog
      t1417: make `reflog --updateref` tests backend agnostic
      t3310: stop checking for reference existence via `test -f`
      t4013: simplify magic parsing and drop "failure"
      t5401: speed up creation of many branches
      t5551: stop writing packed-refs directly
      t6301: write invalid object ID via `test-tool ref-store`
      reftable: wrap EXPECT macros in do/while
      reftable: handle interrupted reads
      reftable: handle interrupted writes
      reftable/stack: verify that `reftable_stack_add()` uses auto-compaction
      reftable/stack: perform auto-compaction with transactional interface
      reftable/stack: reuse buffers when reloading stack
      reftable/stack: fix stale lock when dying
      reftable/stack: fix use of unseeded randomness
      reftable/merged: reuse buffer to compute record keys
      reftable/block: introduce macro to initialize `struct block_iter`
      reftable/block: reuse buffer to compute record keys
      setup: extract function to create the refdb
      setup: allow skipping creation of the refdb
      remote-curl: rediscover repository when fetching refs
      builtin/clone: fix bundle URIs with mismatching object formats
      builtin/clone: set up sparse checkout later
      builtin/clone: skip reading HEAD when retrieving remote
      builtin/clone: create the refdb with the correct object format
      wt-status: read HEAD and ORIG_HEAD via the refdb
      refs: propagate errno when reading special refs fails
      refs: complete list of special refs
      bisect: consistently write BISECT_EXPECTED_REV via the refdb
      tests: adjust whitespace in chainlint expectations

Phillip Wood (1):
      unit tests: add TAP unit test framework

René Scharfe (13):
      column: release strbuf and string_list after use
      i18n: factorize even more 'incompatible options' messages
      push: use die_for_incompatible_opt4() for - -delete/--tags/--all/--mirror
      repack: use die_for_incompatible_opt3() for -A/-k/--cruft
      revision: use die_for_incompatible_opt3() for - -graph/--reverse/--walk-reflogs
      revision, rev-parse: factorize incompatibility messages about - -exclude-hidden
      clean: factorize incompatibility message
      worktree: standardize incompatibility messages
      worktree: simplify incompatibility message for --orphan and commit-ish
      show-ref: use die_for_incompatible_opt3()
      t6300: avoid hard-coding object sizes
      git-compat-util: convert skip_{prefix,suffix}{,_mem} to bool
      rebase: use strvec_pushf() for format-patch revisions

Rubén Justo (1):
      status: fix branch shown when not only bisecting

Shreyansh Paliwal (1):
      test-lib-functions.sh: fix test_grep fail message wording

Simon Ser (1):
      format-patch: fix ignored encode_email_headers for cover letter

Stan Hu (2):
      completion: refactor existence checks for pseudorefs
      completion: support pseudoref existence checks for reftables

Todd Zullinger (2):
      perl: bump the required Perl version to 5.8.1 from 5.8.0
      send-email: avoid duplicate specification warnings

Victoria Dye (10):
      ref-filter.c: really don't sort when using --no-sort
      ref-filter.h: add max_count and omit_empty to ref_format
      ref-filter.h: move contains caches into filter
      ref-filter.h: add functions for filter/format & format-only
      ref-filter.c: rename 'ref_filter_handler()' to 'filter_one()'
      ref-filter.c: refactor to create common helper functions
      ref-filter.c: filter & format refs in the same callback
      for-each-ref: clean up documentation of --format
      ref-filter.c: use peeled tag for '*' format fields
      t/perf: add perf tests for for-each-ref


Version v2.43.0; changes since v2.43.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5579t)

Arkadii Yakovets (1):
      l10n: update uk localization for v2.43

Bagas Sanjaya (1):
      l10n: po-id for 2.43 (round 1)

Emir SARI (1):
      l10n: tr: v2.43.0

Jean-Noël Avila (1):
      l10n: fr: v2.43.0 rnd 2

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.43

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5579t)

Ralf Thielow (1):
      l10n: Update German translation

Teng Long (1):
      l10n: zh_CN: for git 2.43.0-rc1

Todd Zullinger (1):
      send-email: remove stray characters from usage

Victoria Dye (1):
      glossary: add definitions for dereference & peel

Yi-Jyun Pan (1):
      l10n: zh-TW: Git 2.43.0-rc1


Version v2.43.0-rc2; changes since v2.43.0-rc1:
-----------------------------------------------

Elijah Newren (1):
      RelNotes: minor wording fixes in 2.43.0 release notes

Junio C Hamano (1):
      Git 2.43-rc2


Version v2.43.0-rc1; changes since v2.43.0-rc0:
-----------------------------------------------

Aditya Neelamraju (1):
      clang-format: fix typo in comment

Andrei Rybak (1):
      SubmittingPatches: call gitk's command "Copy commit reference"

Emily Shaffer (2):
      t0091-bugreport: stop using i18ngrep
      bugreport: reject positional arguments

Jacob Stopak (1):
      Include gettext.h in MyFirstContribution tutorial

Jeff King (1):
      t: avoid perl's pack/unpack "Q" specifier

Johannes Schindelin (2):
      max_tree_depth: lower it for MSVC to avoid stack overflows
      ci: upgrade to using macos-13

Junio C Hamano (6):
      grep: -f <path> is relative to $cwd
      test framework: further deprecate test_i18ngrep
      tests: teach callers of test_i18ngrep to use test_grep
      A bit more before -rc1
      Prepare for -rc1
      Git 2.43-rc1

Karthik Nayak (3):
      revision: rename bit to `do_not_die_on_missing_objects`
      rev-list: move `show_commit()` to the bottom
      rev-list: add commit object support in `--missing` option

Linus Arver (1):
      strvec: drop unnecessary include of hex.h

Martin Ågren (1):
      git-merge-file doc: drop "-file" from argument placeholders

Michael Strawbridge (1):
      send-email: move validation code below process_address_list

Patrick Steinhardt (18):
      commit-graph: introduce envvar to disable commit existence checks
      commit: detect commits that exist in commit-graph but not in the ODB
      builtin/show-ref: convert pattern to a local variable
      builtin/show-ref: split up different subcommands
      builtin/show-ref: fix leaking string buffer
      builtin/show-ref: fix dead code when passing patterns
      builtin/show-ref: refactor `--exclude-existing` options
      builtin/show-ref: stop using global variable to count matches
      builtin/show-ref: stop using global vars for `show_one()`
      builtin/show-ref: refactor options for patterns subcommand
      builtin/show-ref: ensure mutual exclusiveness of subcommands
      builtin/show-ref: explicitly spell out different modes in synopsis
      builtin/show-ref: add new mode to check for reference existence
      t: use git-show-ref(1) to check for ref existence
      test-bloom: stop setting up Git directory twice
      shallow: fix memory leak when registering shallow roots
      setup: refactor `upgrade_repository_format()` to have common exit
      setup: fix leaking repository format

René Scharfe (4):
      parse-options: make CMDMODE errors more precise
      am: simplify --show-current-patch handling
      am, rebase: fix arghelp syntax of --empty
      reflog: fix expire --single-worktree

Robert Coup (1):
      upload-pack: add tracing for fetches

Taylor Blau (4):
      Documentation/gitformat-pack.txt: fix typo
      Documentation/gitformat-pack.txt: fix incorrect MIDX documentation
      list-objects: drop --unpacked non-commit objects from results
      pack-bitmap: drop --unpacked non-commit objects from results

Todd Zullinger (2):
      RelNotes: minor typo fixes in 2.43.0 draft
      RelNotes: improve wording of credential helper notes

brian m. carlson (1):
      merge-file: add an option to process object IDs


Version v2.43.0-rc0; changes since v2.42.1:
-------------------------------------------

Alyssa Ross (1):
      diff: fix --merge-base with annotated tags

Andy Koppe (8):
      pretty-formats: enclose options in angle brackets
      decorate: refactor format_decorations()
      decorate: avoid some unnecessary color overhead
      decorate: color each token separately
      pretty: add %(decorate[:<options>]) format
      pretty: add pointer and tag options to %(decorate)
      decorate: use commit color for HEAD arrow
      pretty: fix ref filtering for %(decorate) formats

Beat Bolli (1):
      unicode: update the width tables to Unicode 15.1

Calvin Wan (4):
      hex-ll: separate out non-hash-algo functions
      wrapper: reduce scope of remove_or_warn()
      config: correct bad boolean env value error message
      parse: separate out parsing functions from config.h

Christian Couder (9):
      pack-objects: allow `--filter` without `--stdout`
      t/helper: add 'find-pack' test-tool
      repack: refactor finishing pack-objects command
      repack: refactor finding pack prefix
      pack-bitmap-write: rebuild using new bitmap when remapping
      repack: add `--filter=<filter-spec>` option
      gc: add `gc.repackFilter` config option
      repack: implement `--filter-to` for storing filtered out objects
      gc: add `gc.repackFilterTo` config option

Derrick Stolee (9):
      maintenance: add get_random_minute()
      maintenance: use random minute in launchctl scheduler
      maintenance: use random minute in Windows scheduler
      maintenance: use random minute in cron scheduler
      maintenance: swap method locations
      maintenance: use random minute in systemd scheduler
      maintenance: fix systemd schedule overlaps
      maintenance: update schedule before config
      mailmap: change primary address for Derrick Stolee

Dorcas AnonoLitunya (1):
      t7601: use "test_path_is_file" etc. instead of "test -f"

Dragan Simic (2):
      diff --stat: add config option to limit filename width
      diff --stat: set the width defaults in a helper function

Drew DeVault (1):
      format-patch: --rfc honors what --subject-prefix sets

Elijah Newren (25):
      documentation: wording improvements
      documentation: fix small error
      documentation: fix typos
      documentation: fix apostrophe usage
      documentation: add missing words
      documentation: remove extraneous words
      documentation: fix subject/verb agreement
      documentation: employ consistent verb tense for a list
      documentation: fix verb tense
      documentation: fix adjective vs. noun
      documentation: fix verb vs. noun
      documentation: fix singular vs. plural
      documentation: whitespace is already generally plural
      documentation: fix choice of article
      documentation: add missing article
      documentation: remove unnecessary hyphens
      documentation: add missing hyphens
      documentation: use clearer prepositions
      documentation: fix punctuation
      documentation: fix capitalization
      documentation: fix whitespace issues
      documentation: add some commas where they are helpful
      documentation: add missing fullstops
      documentation: add missing quotes
      documentation: add missing parenthesis

Eric W. Biederman (1):
      bulk-checkin: only support blobs in index_bulk_checkin

Eric Wong (1):
      treewide: fix various bugs w/ OpenSSL 3+ EVP API

Isoken June Ibizugbe (1):
      builtin/branch.c: adjust error messages to coding guidelines

Jan Alexander Steffens (heftig) (6):
      submodule--helper: use submodule_from_path in set-{url,branch}
      submodule--helper: return error from set-url when modifying failed
      t7419: actually test the branch switching
      t7419, t7420: use test_cmp_config instead of grepping .gitmodules
      t7419: test that we correctly handle renamed submodules
      t7420: test that we correctly handle renamed submodules

Jason Hatton (1):
      Prevent git from rehashing 4GiB files

Javier Mora (2):
      git-status.txt: fix minor asciidoc format issue
      doc/git-bisect: clarify `git bisect run` syntax

Jeff King (96):
      sequencer: use repository parameter in short_commit_name()
      sequencer: mark repository argument as unused
      ref-filter: mark unused parameters in parser callbacks
      pack-bitmap: mark unused parameters in show_object callback
      worktree: mark unused parameters in each_ref_fn callback
      commit-graph: mark unused data parameters in generation callbacks
      ls-tree: mark unused parameter in callback
      stash: mark unused parameter in diff callback
      trace2: mark unused us_elapsed_absolute parameters
      trace2: mark unused config callback parameter
      test-trace2: mark unused argv/argc parameters
      grep: mark unused parameter in output function
      add-interactive: mark unused callback parameters
      negotiator/noop: mark unused callback parameters
      worktree: mark unused parameters in noop repair callback
      imap-send: mark unused parameters with NO_OPENSSL
      grep: mark unused parmaeters in pcre fallbacks
      credential: mark unused parameter in urlmatch callback
      fetch: mark unused parameter in ref_transaction callback
      bundle-uri: mark unused parameters in callbacks
      gc: mark unused descriptors in scheduler callbacks
      update-ref: mark unused parameter in parser callbacks
      merge: make xopts a strvec
      merge: simplify parsing of "-n" option
      format-patch: use OPT_STRING_LIST for to/cc options
      tree-walk: reduce stack size for recursive functions
      tree-walk: drop MAX_TRAVERSE_TREES macro
      tree-walk: rename "error" variable
      fsck: detect very large tree pathnames
      add core.maxTreeDepth config
      traverse_trees(): respect max_allowed_tree_depth
      read_tree(): respect max_allowed_tree_depth
      list-objects: respect max_allowed_tree_depth
      tree-diff: respect max_allowed_tree_depth
      lower core.maxTreeDepth default to 2048
      checkout-index: delay automatic setting of to_tempfile
      parse-options: prefer opt->value to globals in callbacks
      parse-options: mark unused "opt" parameter in callbacks
      merge: do not pass unused opt->value parameter
      parse-options: add more BUG_ON() annotations
      interpret-trailers: mark unused "unset" parameters in option callbacks
      parse-options: mark unused parameters in noop callback
      merge-ort: drop custom err() function
      merge-ort: stop passing "opt" to read_oid_strbuf()
      merge-ort: drop unused parameters from detect_and_process_renames()
      merge-ort: drop unused "opt" parameter from merge_check_renames_reusable()
      merge-ort: lowercase a few error messages
      fsmonitor: prefer repo_git_path() to git_pathdup()
      fsmonitor/win32: drop unused parameters
      fsmonitor: mark some maybe-unused parameters
      fsmonitor/win32: mark unused parameter in fsm_os__incompatible()
      fsmonitor: mark unused parameters in stub functions
      fsmonitor/darwin: mark unused parameters in system callback
      fsmonitor: mark unused hashmap callback parameters
      run-command: mark unused parameters in start_bg_wait callbacks
      commit-graph: factor out chain opening function
      commit-graph: check mixed generation validation when loading chain file
      t5324: harmonize sha1/sha256 graph chain corruption
      commit-graph: detect read errors when verifying graph chain
      commit-graph: tighten chain size check
      commit-graph: report incomplete chains during verification
      t6700: mark test as leak-free
      commit-reach: free temporary list in get_octopus_merge_bases()
      merge: free result of repo_get_merge_bases()
      commit-graph: move slab-clearing to close_commit_graph()
      commit-graph: free all elements of graph chain
      commit-graph: delay base_graph assignment in add_graph_to_chain()
      commit-graph: free graph struct that was not added to chain
      commit-graph: free write-context entries before overwriting
      commit-graph: free write-context base_graph_name during cleanup
      commit-graph: clear oidset after finishing write
      repack: free existing_cruft array after use
      chunk-format: note that pair_chunk() is unsafe
      t: add library for munging chunk-format files
      midx: stop ignoring malformed oid fanout chunk
      commit-graph: check size of oid fanout chunk
      midx: check size of oid lookup chunk
      commit-graph: check consistency of fanout table
      midx: check size of pack names chunk
      midx: enforce chunk alignment on reading
      midx: check size of object offset chunk
      midx: bounds-check large offset chunk
      midx: check size of revindex chunk
      commit-graph: check size of commit data chunk
      commit-graph: detect out-of-bounds extra-edges pointers
      commit-graph: bounds-check base graphs chunk
      commit-graph: check size of generations chunk
      commit-graph: bounds-check generation overflow chunk
      commit-graph: check bounds when accessing BDAT chunk
      commit-graph: check bounds when accessing BIDX chunk
      commit-graph: detect out-of-order BIDX offsets
      chunk-format: drop pair_chunk_unsafe()
      t5319: make corrupted large-offset test more robust
      doc/send-email: mention handling of "reply-to" with --compose
      Revert "send-email: extract email-parsing code into a subroutine"
      send-email: handle to/cc/bcc from --compose message

Johannes Schindelin (5):
      windows: ignore empty `PATH` elements
      is_Cygwin: avoid `exec`ing anything
      Move is_<platform> functions to the beginning
      Move the `_which` function (almost) to the top
      Work around Tcl's default `PATH` lookup

John Cai (3):
      merge-ort: initialize repo in index state
      attr: read attributes from HEAD when bare repo
      attr: add attr.tree for setting the treeish to read attributes from

Josh Soref (1):
      Documentation/git-status: add missing line breaks

Junio C Hamano (37):
      update-index: do not read HEAD and MERGE_HEAD unconditionally
      resolve-undo: allow resurrecting conflicted state that resolved to deletion
      update-index: use unmerge_index_entry() to support removal
      update-index: remove stale fallback code for "--unresolve"
      checkout/restore: refuse unmerging paths unless checking out of the index
      checkout/restore: add basic tests for --merge
      checkout: allow "checkout -m path" to unmerge removed paths
      pretty-formats: define "literal formatting code"
      Start the 2.43 cycle
      The second batch for 2.43
      The extra batch to update credenthal helpers
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      update-index doc: v4 is OK with JGit and libgit2
      update-index: add --show-index-version
      test-tool: retire "index-version"
      The eighth batch
      The ninth batch
      The tenth batch
      The eleventh batch
      completion: loosen and document the requirement around completing alias
      The twelfth batch
      The thirteenth batch
      The fourteenth batch
      The fifteenth batch
      The sixteenth batch
      merge: introduce {copy|clear}_merge_options()
      stash: be careful what we store
      The seventeenth batch
      The eighteenth batch
      The nineteenth batch
      The twentieth batch
      The twenty-first batch
      The twenty-second batch

Kousik Sanagavarapu (3):
      t/t6300: cleanup test_atom
      t/t6300: introduce test_bad_atom
      ref-filter: add mailmap support

Kristoffer Haugsbakk (2):
      range-diff: treat notes like `log`
      grep: die gracefully when outside repository

Linus Arver (16):
      trailer tests: make test cases self-contained
      trailer test description: this tests --where=after, not --where=before
      trailer: add tests to check defaulting behavior with --no-* flags
      trailer doc: narrow down scope of --where and related flags
      trailer: trailer location is a place, not an action
      trailer --no-divider help: describe usual "---" meaning
      trailer --parse help: expose aliased options
      trailer --only-input: prefer "configuration variables" over "rules"
      trailer --parse docs: add explanation for its usefulness
      trailer --unfold help: prefer "reformat" over "join"
      trailer doc: emphasize the effect of configuration variables
      trailer doc: separator within key suppresses default separator
      trailer doc: <token> is a <key> or <keyAlias>, not both
      trailer: separate public from internal portion of trailer_iterator
      trailer: split process_input_file into separate pieces
      trailer: split process_command_line_args into separate functions

M Hickford (3):
      credential/libsecret: store new attributes
      credential/libsecret: erase matching creds only
      credential/wincred: erase matching creds only

Mark Levedahl (6):
      git gui Makefile - remove Cygwin modifications
      git-gui - remove obsolete Cygwin specific code
      git-gui - use cygstart to browse on Cygwin
      git-gui - use mkshortcut on Cygwin
      git-gui - re-enable use of hook scripts
      git-gui - use git-hook, honor core.hooksPath

Matthew McClain (1):
      git-p4 shouldn't attempt to store symlinks in LFS

Oswald Buddenhagen (10):
      t/lib-rebase: set_fake_editor(): fix recognition of reset's short command
      t/lib-rebase: set_fake_editor(): handle FAKE_LINES more consistently
      sequencer: simplify allocation of result array in todo_list_rearrange_squash()
      t/lib-rebase: improve documentation of set_fake_editor()
      format-patch: add --description-file option
      sequencer: beautify subject of reverts of reverts
      git-revert.txt: add discussion
      rebase: simplify code related to imply_merge()
      rebase: handle --strategy via imply_merge() as well
      rebase: move parse_opt_keep_empty() down

Patrick Steinhardt (1):
      revision: make pseudo-opt flags read via stdin behave consistently

Philippe Blain (2):
      completion: commit: complete configured trailer tokens
      completion: commit: complete trailers tokens more robustly

René Scharfe (9):
      subtree: disallow --no-{help,quiet,debug,branch,message}
      t1502, docs: disallow --no-help
      t1502: move optionspec help output to a file
      t1502: test option negation
      parse-options: show negatability of options in short help
      parse-options: factor out usage_indent() and usage_padding()
      parse-options: no --[no-]no-...
      parse-options: simplify usage_padding()
      parse-options: allow omitting option help text

Rubén Justo (2):
      branch: error message deleting a branch in use
      branch: error message checking out a branch in use

Sergey Organov (3):
      diff-merges: improve --diff-merges documentation
      diff-merges: introduce '--dd' option
      completion: complete '--dd'

Shuqi Liang (3):
      t1092: add tests for 'git check-attr'
      attr.c: read attributes in a sparse directory
      check-attr: integrate with sparse-index

Tang Yuyi (1):
      merge-tree: add -X strategy option

Taylor Blau (17):
      repack: move `pack_geometry` struct to the stack
      builtin/pack-objects.c: remove unnecessary strbuf_reset()
      builtin/pack-objects.c: support `--max-pack-size` with `--cruft`
      Documentation/gitformat-pack.txt: remove multi-cruft packs alternative
      Documentation/gitformat-pack.txt: drop mixed version section
      builtin/repack.c: extract structure to store existing packs
      builtin/repack.c: extract marking packs for deletion
      builtin/repack.c: extract redundant pack cleanup for --geometric
      builtin/repack.c: extract redundant pack cleanup for existing packs
      builtin/repack.c: extract `has_existing_non_kept_packs()`
      builtin/repack.c: store existing cruft packs separately
      builtin/repack.c: avoid directly inspecting "util"
      builtin/repack.c: extract common cruft pack loop
      t7700: split cruft-related tests to t7704
      builtin/repack.c: parse `--max-pack-size` with OPT_MAGNITUDE
      builtin/repack.c: implement support for `--max-cruft-size`
      builtin/repack.c: avoid making cruft packs preferred

Victoria Dye (4):
      ref-cache.c: fix prefix matching in ref iteration
      dir.[ch]: expose 'get_dtype'
      dir.[ch]: add 'follow_symlink' arg to 'get_dtype'
      files-backend.c: avoid stat in 'loose_fill_ref_dir'

Vipul Kumar (1):
      git-gui: Fix a typo in README

brian m. carlson (1):
      t: add a test helper to truncate files

Ævar Arnfjörð Bjarmason (1):
      Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4

Štěpán Němec (5):
      doc: fix some typos, grammar and wording issues
      doc/diff-options: improve wording of the log.diffMerges mention
      git-jump: admit to passing merge mode args to ls-files
      doc/gitk: s/sticked/stuck/
      t/README: fix multi-prerequisite example

谢致邦 (XIE Zhibang) (2):
      doc: correct the 50 characters soft limit
      doc: correct the 50 characters soft limit (+)


Version v2.42.1; changes since v2.42.0:
---------------------------------------

Caleb Hill (1):
      git-clean doc: fix "without do cleaning" typo

Christian Hesse (2):
      t/lib-gpg: forcibly run a trustdb update
      t/t6300: drop magic filtering

Derrick Stolee (4):
      upload-pack: fix race condition in error messages
      scalar: add --[no-]src option
      setup: add discover_git_directory_reason()
      scalar reconfigure: help users remove buggy repos

Evan Gates (1):
      git-config: fix misworded --type=path explanation

Han Young (1):
      show doc: redirect user to git log manual instead of git diff-tree

Jacob Abel (1):
      builtin/worktree.c: fix typo in "forgot fetch" msg

Jeff King (17):
      hashmap: use expected signatures for comparison functions
      diff-files: avoid negative exit value
      diff: show usage for unknown builtin_diff_files() options
      diff: die when failing to read index in git-diff builtin
      diff: drop useless return from run_diff_{files,index} functions
      diff: drop useless return values in git-diff helpers
      diff: drop useless "status" parameter from diff_result_code()
      commit-graph: verify swapped zero/non-zero generation cases
      test-lib: ignore uninteresting LSan output
      ci: allow branch selection through "vars"
      ci: deprecate ci/config/allow-ref script
      http: factor out matching of curl http/2 trace lines
      http: update curl http/2 info matching for curl 8.3.0
      test-lib: set UBSAN_OPTIONS to match ASan
      decorate: add clear_decoration() function
      revision: clear decoration structs during release_revisions()
      daemon: free listen_addr before returning

Johannes Schindelin (12):
      rebase: allow overriding the maximal length of the generated labels
      ci: avoid building from the same commit in parallel
      ci(linux-asan-ubsan): let's save some time
      var: avoid a segmentation fault when `HOME` is unset
      completion(switch/checkout): treat --track and -t the same
      maintenance(systemd): support the Windows Subsystem for Linux
      ci: add a GitHub workflow to submit Coverity scans
      coverity: cache the Coverity Build Tool
      coverity: allow overriding the Coverity project
      coverity: support building on Windows
      coverity: allow running on macOS
      coverity: detect and report when the token or project is incorrect

Josip Sokcevic (1):
      diff-lib: fix check_removed when fsmonitor is on

Junio C Hamano (12):
      mv: fix error for moving directory to another
      diff: move the fallback "--exit-code" code down
      diff: mode-only change should be noticed by "--patch -w --exit-code"
      diff: teach "--stat -w --exit-code" to notice differences
      t4040: remove test that succeeded for a wrong reason
      diff: spell DIFF_INDEX_CACHED out when calling run_diff_index()
      diff: the -w option breaks --exit-code for --raw and other output modes
      transfer.unpackLimit: fetch/receive.unpackLimit takes precedence
      doc: update list archive reference to use lore.kernel.org
      commit: do not use cryptic "new_index" in end-user facing messages
      am: align placeholder for --whitespace option with apply
      Git 2.42.1

Kousik Sanagavarapu (1):
      ref-filter: sort numerically when ":size" is used

Mark Ruvald Pedersen (1):
      sequencer: truncate labels to accommodate loose refs

Michal Suchanek (1):
      git-push doc: more visibility for -q option

Naomi Ibe (1):
      builtin/add.c: clean up die() messages

Oswald Buddenhagen (6):
      t9001: fix indentation in test_no_confirm()
      sequencer: rectify empty hint in call of require_clean_work_tree()
      sequencer: fix error message on failure to copy SQUASH_MSG
      t3404-rebase-interactive.sh: fix typos in title of a rewording test
      sequencer: remove unreachable exit condition in pick_commits()
      am: fix error message in parse_opt_show_current_patch()

Patrick Steinhardt (4):
      upload-pack: fix exit code when denying fetch of unreachable object ID
      doc/git-worktree: mention "refs/rewritten" as per-worktree refs
      doc/git-repack: fix syntax for `-g` shorthand option
      doc/git-repack: don't mention nonexistent "--unpacked" option

Philippe Blain (1):
      completion: improve doc for complex aliases

Phillip Wood (7):
      rebase -i: move unlink() calls
      rebase -i: remove patch file after conflict resolution
      sequencer: use rebase_path_message()
      sequencer: factor out part of pick_commits()
      rebase: fix rewritten list for failed pick
      rebase --continue: refuse to commit after failed command
      rebase -i: fix adding failed command to the todo list

René Scharfe (5):
      name-rev: use OPT_HIDDEN_BOOL for --peel-tag
      grep: use OPT_INTEGER_F for --max-depth
      grep: reject --no-or
      diff --no-index: fix -R with stdin
      parse-options: drop unused parse_opt_ctx_t member

Sergey Organov (1):
      doc/diff-options: fix link to generating patch section

Taylor Blau (7):
      commit-graph: introduce `commit_graph_generation_from_graph()`
      t/t5318-commit-graph.sh: test generation zero transitions during fsck
      commit-graph: avoid repeated mixed generation number warnings
      leak tests: mark a handful of tests as leak-free
      leak tests: mark t3321-notes-stripspace.sh as leak-free
      leak tests: mark t5583-push-branches.sh as leak-free
      git-send-email.perl: avoid printing undef when validating addresses

Wesley Schwengle (2):
      git-push.txt: fix grammar
      git-svn: drop FakeTerm hack

Štěpán Němec (1):
      doc/cat-file: make synopsis and description less confusing

王常新 (1):
      merge-ort.c: fix typo 'neeed' to 'needed'


Version v2.42.0; changes since v2.42.0-rc2:
-------------------------------------------

Arkadii Yakovets (1):
      l10n: uk: update translation (2.42.0)

Bagas Sanjaya (1):
      l10n: po-id for 2.42 (round 1)

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Emir SARI (1):
      l10n: tr: git 2.42.0

Jean-Noël Avila (2):
      l10n: fr v2.42.0 rnd 1
      l10n: fr v2.42.0 rnd 2

Jeff King (1):
      fsck: use enum object_type for fsck_walk callback

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.42

Martin Ågren (4):
      notes doc: split up run-on sentences
      notes doc: tidy up `--no-stripspace` paragraph
      show-ref doc: fix carets in monospace
      rev-list-options: fix typo in `--stdin` documentation

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation 5549t0f0u

Ralf Thielow (1):
      l10n: Update German translation

Teng Long (2):
      l10n: zh_CN: v2.42.0 round 1
      l10n: zh_CN: 2.42.0 round 2

Yi-Jyun Pan (1):
      l10n: zh_TW.po: Git 2.42


Version v2.42.0-rc2; changes since v2.42.0-rc1:
-----------------------------------------------

Jeff King (4):
      send-email: drop FakeTerm hack
      send-email: avoid creating more than one Term::ReadLine object
      repack: free geometry struct
      t4053: avoid writing to unopened pipe

Johannes Schindelin (3):
      t0040: declare non-tab indentation to be okay in this script
      win32: add a helper to run `git.exe` without a foreground window
      git maintenance: avoid console window in scheduled tasks on Windows

Junio C Hamano (1):
      Git 2.42-rc2

Oswald Buddenhagen (2):
      advice: handle "rebase" in error_resolve_conflict()
      t9001: remove excessive GIT_SEND_EMAIL_NOTTY=1

Phillip Wood (1):
      t4053: avoid race when killing background processes

René Scharfe (1):
      parse-options: disallow negating OPTION_SET_INT 0

Sebastian Thiel (1):
      mv: handle lstat() failure correctly


Version v2.42.0-rc1; changes since v2.42.0-rc0:
-----------------------------------------------

Adam Majer (1):
      doc: sha256 is no longer experimental

Eric Wong (5):
      sha256/gcrypt: fix build with SANITIZE=leak
      sha256/gcrypt: fix memory leak with SHA-256 repos
      sha256/gcrypt: die on gcry_md_open failures
      sha256: avoid functions deprecated in OpenSSL 3+
      avoid SHA-1 functions deprecated in OpenSSL 3+

Glen Choo (1):
      mailmap: change primary address for Glen Choo

Junio C Hamano (2):
      A few more topics before -rc1
      Git 2.42-rc1

Matthias Aßhauer (3):
      run-command: conditionally define locate_in_PATH()
      compat/mingw: implement a native locate_in_PATH()
      docs: update when `git bisect visualize` uses `gitk`

Phillip Wood (1):
      rebase --skip: fix commit message clean up when skipping squash

René Scharfe (1):
      bundle: use OPT_PASSTHRU_ARGV

Taylor Blau (5):
      t/lib-commit-graph.sh: allow `graph_read_expect()` in sub-directories
      t/lib-commit-graph.sh: avoid directory change in `graph_git_behavior()`
      t5318: avoid top-level directory changes
      t5328: avoid top-level directory changes
      t/lib-commit-graph.sh: avoid sub-shell in `graph_git_behavior()`

brian m. carlson (2):
      ident: don't consider '.' a crud
      gitignore: ignore clangd .cache directory


Version v2.42.0-rc0; changes since v2.41.0:
-------------------------------------------

Alejandro R. Sedeño (1):
      statinfo.h: move DTYPE defines from dir.h

Alex Henrie (4):
      wt-status: don't show divergence advice when committing
      remote: don't imply that integration is always required before pushing
      push: don't imply that integration is always required before pushing
      sequencer: finish parsing the todo list despite an invalid first line

Andreas Herrmann (3):
      configure.ac: don't overwrite NO_EXPAT option
      configure.ac: don't overwrite NO_CURL option
      configure.ac: always save NO_ICONV to config.status

Beat Bolli (2):
      trace2: fix a comment
      wrapper: use trace2 counters to collect fsync stats

Calvin Wan (13):
      strbuf: clarify API boundary
      strbuf: clarify dependency
      abspath: move related functions to abspath
      credential-store: move related functions to credential-store file
      object-name: move related functions to object-name
      path: move related function to path
      strbuf: remove global variable
      git-compat-util: move strbuf.c funcs to its header
      git-compat-util: move wrapper.c funcs to its header
      sane-ctype.h: create header for sane-ctype macros
      kwset: move translation table from ctype
      treewide: remove unnecessary includes for wrapper.h
      git-compat-util: move alloc macros to git-compat-util.h

D. Ben Knoble (2):
      i18n: mark more bundle.c strings for translation
      t4002: fix "diff can read from stdin" syntax

Derrick Stolee (7):
      add: check color.ui for interactive add
      add: test use of brackets when color is disabled
      repository: create disable_replace_refs()
      replace-objects: create wrapper around setting
      repository: create read_replace_refs setting
      packfile: delete .idx files before .pack files
      builtin/repack.c: only repack `.pack`s that exist

Elijah Newren (28):
      init-db: document existing bug with core.bare in template config
      init-db: remove unnecessary global variable
      init-db, clone: change unnecessary global into passed parameter
      setup: adopt shared init-db & clone code
      read-cache: move shared commit and ls-files code
      add: modify add_files_to_cache() to avoid globals
      read-cache: move shared add/checkout/commit code
      statinfo: move stat_{data,validity} functions from cache/read-cache
      run-command.h: move declarations for run-command.c from cache.h
      name-hash.h: move declarations for name-hash.c from cache.h
      sparse-index.h: move declarations for sparse-index.c from cache.h
      preload-index.h: move declarations for preload-index.c from elsewhere
      diff.h: move declaration for global in diff.c from cache.h
      merge.h: move declarations for merge.c from cache.h
      repository.h: move declaration of the_index from cache.h
      read-cache*.h: move declarations for read-cache.c functions from cache.h
      cache.h: remove this no-longer-used header
      log-tree: replace include of revision.h with simple forward declaration
      repository: remove unnecessary include of path.h
      diff.h: remove unnecessary include of oidset.h
      list-objects-filter-options.h: remove unneccessary include
      builtin.h: remove unneccessary includes
      git-compat-util.h: remove unneccessary include of wildmatch.h
      merge-ll: rename from ll-merge
      khash: name the structs that khash declares
      object-store-ll.h: split this header out of object-store.h
      hash-ll, hashmap: move oidhash() to hash-ll
      fsmonitor-ll.h: split this header out of fsmonitor.h

Eric Sunshine (1):
      fsck: avoid misleading variable name

Glen Choo (15):
      cocci: add headings to and reword README
      cocci: codify authoring and reviewing practices
      setup.c: don't setup in discover_git_directory()
      config: don't BUG when both kvi and source are set
      config: inline git_color_default_config
      urlmatch.h: use config_fn_t type
      config: add ctx arg to config_fn_t
      config.c: pass ctx in configsets
      config: pass ctx with config files
      config.c: pass ctx with CLI config
      trace2: plumb config kvi
      config: pass kvi to die_bad_number()
      config.c: remove config_reader from configsets
      config: add kvi.path, use it to evaluate includes
      config: pass source to config_parser_event_fn_t

Han Young (1):
      blame: allow --contents to work with bare repo

Jacob Abel (11):
      worktree add: include -B in usage docs
      t2400: cleanup created worktree in test
      t2400: refactor "worktree add" opt exclusion tests
      t2400: add tests to verify --quiet
      worktree add: add --orphan flag
      worktree add: introduce "try --orphan" hint
      worktree add: extend DWIM to infer --orphan
      worktree add: emit warn when there is a bad HEAD
      t2400: drop no-op `--sq` from rev-parse call
      builtin/worktree.c: convert tab in advice to space
      t2400: rewrite regex to avoid unintentional PCRE

Jacob Keller (1):
      fix cherry-pick/revert status when doing multiple commits

Jan Klötzke (1):
      ref-filter: handle nested tags in --points-at option

Jeff King (36):
      format-patch: free rev.message_id when exiting
      format-patch: free elements of rev.ref_message_ids list
      pathspec: factor out magic-to-name function
      diff: factor out --follow pathspec check
      diff: detect pathspec magic not supported by --follow
      ci: use clang for ASan/UBSan checks
      ci: run ASan/UBSan in a single job
      ci: drop linux-clang job
      commit: pass --no-divider to interpret-trailers
      http: handle both "h2" and "h2h3" in curl info lines
      var: mark unused parameters in git_var callbacks
      imap-send: use server conf argument in setup_curl()
      imap-send: drop unused parameter from imap_cmd_cb callback
      imap-send: drop unused fields from imap_cmd_cb
      refs.c: rename `ref_filter`
      ref-filter.h: provide `REF_FILTER_INIT`
      ref-filter: clear reachable list pointers after freeing
      ref-filter: add `ref_filter_clear()`
      ref-filter.c: parameterize match functions over patterns
      test-ref-store: drop unimplemented reflog-expire command
      do_for_each_ref_helper(): mark unused repository parameter
      http: mark unused parameters in curl callbacks
      http-push: mark unused parameter in xml callback
      am: mark unused keep_cr parameters
      count-objects: mark unused parameter in alternates callback
      revisions: drop unused "opt" parameter in "tweak" callbacks
      fsck: mark unused parameters in various fsck callbacks
      merge-tree: mark unused parameter in traverse callback
      replace: mark unused parameter in ref callback
      replace: mark unused parameter in each_mergetag_fn callback
      rev-parse: mark unused parameter in for_each_abbrev callback
      tag: mark unused parameters in each_tag_name_fn callbacks
      t/helper: mark unused callback void data parameters
      ref-filter: avoid parsing tagged objects in match_points_at()
      ref-filter: avoid parsing non-tags in match_points_at()
      ref-filter: simplify return type of match_points_at

Johan Ruokangas (1):
      gitignore.txt: use backticks instead of double quotes

Johannes Schindelin (3):
      do_read_index(): always mark index as initialized unless erroring out
      split-index: accept that a base index can be empty
      commit -a -m: allow the top-level tree to become empty again

John Cai (34):
      docs: clarify git-pack-refs --all will pack all refs
      pack-refs: teach --exclude option to exclude refs from being packed
      pack-refs: teach pack-refs --include option
      t0000-basic: modernize test format
      t0030-stripspace: modernize test format
      t3210-pack-refs: modernize test format
      t1001-read-tree-m-2way: modernize test format
      t1002-read-tree-m-u-2way: modernize test format
      t1006-cat-file: modernize test format
      t3500-cherry: modernize test format
      t3700-add: modernize test format
      t3903-stash: modernize test format
      t4002-diff-basic: modernize test format
      t4003-diff-rename-1: modernize test format
      t4004-diff-rename-symlink: modernize test format
      t4202-log: modernize test format
      t4206-log-follow-harder-copies: modernize test format
      t5300-pack-object: modernize test format
      t5301-sliding-window: modernize test format
      t5303-pack-corruption-resilience: modernize test format
      t5306-pack-nobase: modernize test format
      t6050-replace: modernize test format
      t7101-reset-empty-subdirs: modernize test format
      t7110-reset-merge: modernize test format
      t7111-reset-table: modernize test format
      t7201-co: modernize test format
      t7508-status: modernize test format
      t7600-merge: modernize test format
      t7700-repack: modernize test format
      t9100-git-svn-basic: modernize test format
      t9104-git-svn-follow-parent: modernize test format
      t9200-git-cvsexportcommit: modernize test format
      t9400-git-cvsserver-server: modernize test format
      docs: add git hash-object -t option's possible values

Jonathan Tan (1):
      CodingGuidelines: use octal escapes, not hex

Josip Sokcevic (1):
      diff-lib: honor override_submodule_config flag bit

Junio C Hamano (44):
      diff: fix interaction between the "-s" option and other options
      show-branch doc: say <ref>, not <reference>
      Start the 2.42 cycle
      The second batch for 2.42
      The third batch
      ll-merge: killing the external merge driver aborts the merge
      The fourth batch
      t6406: skip "external merge driver getting killed by a signal" test on Windows
      The fifth batch
      The sixth batch
      The seventh batch
      The eighth batch
      t6135: attr magic with path pattern
      tree-walk: lose base_offset that is never used in tree_entry_interesting
      tree-walk: drop unused base_offset from do_match()
      The ninth batch
      dir: match "attr" pathspec magic with correct paths
      The tenth batch
      The eleventh batch
      The twelfth batch
      gitignore.txt: mark up explanation of patterns consistently
      am: simplify parsing of "--[no-]keep-cr"
      branch: reject "--no-all" and "--no-remotes" early
      parse-options: introduce OPT_IPVERSION()
      fetch: reject --no-ipv[46]
      show-branch: --no-sparse should give dense output
      short help: allow multi-line opthelp
      remote: simplify "remote add --tags" help text
      short help: allow a gap smaller than USAGE_GAP
      show-branch: reject --[no-](topo|date)-order
      reset: reject --no-(mixed|soft|hard|merge|keep) option
      The thirteenth batch
      branch: update the message to refuse touching a branch in-use
      hex: retire get_sha1_hex()
      The fourteenth batch
      SubmittingPatches: choice of base for fixing an older maintenance track
      The fifteenth batch
      SubmittingPatches: explain why 'next' and above are inappropriate base
      SubmittingPatches: use of older maintenance tracks is an exception
      The sixteenth batch
      MyFirstContribution: refrain from self-iterating too much
      The seventeenth batch
      The eighteenth batch
      Git 2.42-rc0

Kousik Sanagavarapu (5):
      t/lib-gpg: introduce new prereq GPG2
      ref-filter: add new "signature" atom
      t4205: correctly test %(describe:abbrev=...)
      ref-filter: add multiple-option parsing functions
      ref-filter: add new "describe" atom

Kristoffer Haugsbakk (5):
      doc: tag: document `TAG_EDITMSG`
      t/t7004-tag: add regression test for successful tag creation
      tag: keep the message file in case ref transaction fails
      notes: update documentation for `use_default_notes`
      notes: move the documentation to the struct

Linus Arver (15):
      docs: typofixes
      doc: trailer: fix grammar
      doc: trailer: swap verb order
      doc: trailer: drop "commit message part" phrasing
      doc: trailer: examples: avoid the word "message" by itself
      doc: trailer: remove redundant phrasing
      doc: trailer: use angle brackets for <token> and <value>
      doc: trailer.<token>.command: emphasize deprecation
      doc: trailer: mention 'key' in DESCRIPTION
      doc: trailer: add more examples in DESCRIPTION
      SubmittingPatches: reword awkward phrasing
      SubmittingPatches: discuss subsystems separately from git.git
      SubmittingPatches: de-emphasize branches as starting points
      SubmittingPatches: emphasize need to communicate non-default starting points
      SubmittingPatches: simplify guidance for choosing a starting point

M Hickford (3):
      credential: avoid erasing distinct password
      credential: erase all matching credentials
      doc: gitcredentials: link to helper list

Martin Ågren (1):
      t0091-bugreport.sh: actually verify some content of report

Mike Hommey (2):
      commit-reach: fix memory leak in get_reachable_subset()
      mingw: use lowercase includes for some Windows headers

Patrick Steinhardt (17):
      fetch: drop unused DISPLAY_FORMAT_UNKNOWN enum value
      fetch: drop unneeded NULL-check for `remote_ref`
      fetch: pass through `fetch_config` directly
      fetch: use `fetch_config` to store "fetch.prune" value
      fetch: use `fetch_config` to store "fetch.pruneTags" value
      fetch: use `fetch_config` to store "fetch.showForcedUpdates" value
      fetch: use `fetch_config` to store "fetch.recurseSubmodules" value
      fetch: use `fetch_config` to store "fetch.parallel" value
      fetch: use `fetch_config` to store "submodule.fetchJobs" value
      t1006: don't strip timestamps from expected results
      t1006: modernize test style to use `test_cmp`
      strbuf: provide CRLF-aware helper to read until a specified delimiter
      cat-file: simplify reading from standard input
      cat-file: add option '-Z' that delimits input and output with NUL
      revision: reorder `read_revisions_from_stdin()`
      revision: small readability improvement for reading from stdin
      revision: handle pseudo-opts in `--stdin` mode

Petar Vutov (1):
      doc: highlight that .gitmodules does not support !command

Philippe Blain (30):
      revisions.txt: use description list for special refs
      revisions.txt: document more special refs
      completion: complete REVERT_HEAD and BISECT_HEAD
      git-merge.txt: modernize word choice in "True merge" section
      Documentation: document AUTO_MERGE
      completion: complete AUTO_MERGE
      completion: add comments describing __git_diff_* globals
      completion: complete --break-rewrites
      completion: complete --cc
      completion: complete --combined-all-paths
      completion: complete --compact-summary
      completion: complete --default-prefix
      completion: complete --find-copies
      completion: complete --find-object
      completion: complete --find-renames
      completion: complete --function-context
      completion: complete --ignore-matching-lines
      completion: complete --irreversible-delete
      completion: complete --ita-invisible-in-index and --ita-visible-in-index
      completion: complete --line-prefix
      completion: complete --no-relative
      completion: complete --no-stat
      completion: complete --output
      completion: complete --output-indicator-{context,new,old}
      completion: complete --unified
      completion: complete --ws-error-highlight
      completion: move --pickaxe-{all,regex} to __git_diff_common_options
      completion: complete --diff-merges, its options and --no-diff-merges
      completion: complete --remerge-diff
      diff.c: mention completion above add_diff_options

Phillip Wood (5):
      apply: improve error messages when reading patch
      diff --no-index: refuse to compare stdin to a directory
      diff --no-index: die on error reading stdin
      t4054: test diff --no-index with stdin
      diff --no-index: support reading from named pipes

René Scharfe (18):
      t1800: loosen matching of error message for bad shebang
      run-command: report exec error even on ENOENT
      ls-tree: fix documentation of %x format placeholder
      pretty: factor out expand_separator()
      strbuf: factor out strbuf_expand_step()
      replace strbuf_expand_dict_cb() with strbuf_expand_step()
      replace strbuf_expand() with strbuf_expand_step()
      strbuf: simplify strbuf_expand_literal_cb()
      ls-tree: simplify prefix handling
      pretty: avoid double negative in format_commit_item()
      pkt-line: add size parameter to packet_length()
      pretty: use strchr(3) in userformat_find_requirements()
      t6300: fix setup with GPGSSH but without GPG
      strbuf: use skip_prefix() in strbuf_addftime()
      ls-tree: fix --no-full-name
      describe: fix --no-exact-match
      pack-objects: fix --no-keep-true-parents
      pack-objects: fix --no-quiet

Rubén Justo (11):
      config: fix a leak in git_config_copy_or_rename_section_in_file
      remote: fix a leak in query_matches_negative_refspec
      branch: fix a leak in dwim_and_setup_tracking
      branch: fix a leak in inherit_tracking
      branch: fix a leak in check_tracking_branch
      branch: fix a leak in setup_tracking
      rev-parse: fix a leak with --abbrev-ref
      branch: fix a leak in setup_tracking
      branch: fix a leak in cmd_branch
      config: fix a leak in git_config_copy_or_rename_section_in_file
      tests: mark as passing with SANITIZE=leak

Sean Allred (5):
      show-ref doc: update for internal consistency
      ls-remote doc: remove redundant --tags example
      ls-remote doc: show peeled tags in examples
      ls-remote doc: explain what each example does
      ls-remote doc: document the output format

Shuqi Liang (2):
      diff-tree: integrate with sparse index
      worktree: integrate with sparse-index

Taylor Blau (48):
      object: add object_array initializer helper function
      pack-bitmap.c: extract `fill_in_bitmap()`
      pack-bitmap.c: use commit boundary during bitmap traversal
      builtin/submodule--helper.c: handle missing submodule URLs
      builtin/repack.c: only collect fully-formed packs
      reachable.c: extract `obj_is_recent()`
      gc: introduce `gc.recentObjectsHook`
      pack-bitmap.c: gracefully degrade on failure to load MIDX'd pack
      t7701: make annotated tag unreachable
      fsck: suppress commit-graph output with `--no-progress`
      fsck: suppress MIDX output with `--no-progress`
      commit-graph.c: extract `verify_one_commit_graph()`
      commit-graph.c: iteratively verify commit-graph chains
      commit-graph.c: pass progress to `verify_one_commit_graph()`
      commit-graph.c: avoid duplicated progress output during `verify`
      builtin/for-each-ref.c: add `--exclude` option
      refs: plumb `exclude_patterns` argument throughout
      refs/packed-backend.c: refactor `find_reference_location()`
      refs/packed-backend.c: implement jump lists to avoid excluded pattern(s)
      refs/packed-backend.c: add trace2 counters for jump list
      revision.h: store hidden refs in a `strvec`
      refs.h: let `for_each_namespaced_ref()` take excluded patterns
      refs.h: implement `hidden_refs_to_excludes()`
      builtin/receive-pack.c: avoid enumerating hidden references
      upload-pack.c: avoid enumerating hidden refs where possible
      ls-refs.c: avoid enumerating hidden refs where possible
      builtin/repack.c: avoid dir traversal in `collect_pack_filenames()`
      packfile.c: prevent overflow in `nth_packed_object_id()`
      packfile.c: prevent overflow in `load_idx()`
      packfile.c: use checked arithmetic in `nth_packed_object_offset()`
      midx.c: use `size_t`'s for fanout nr and alloc
      midx.c: prevent overflow in `nth_midxed_object_oid()`
      midx.c: prevent overflow in `nth_midxed_offset()`
      midx.c: store `nr`, `alloc` variables as `size_t`'s
      midx.c: prevent overflow in `write_midx_internal()`
      midx.c: prevent overflow in `fill_included_packs_batch()`
      pack-bitmap.c: ensure that eindex lookups don't overflow
      commit-graph.c: prevent overflow in `write_commit_graph_file()`
      commit-graph.c: prevent overflow in add_graph_to_chain()
      commit-graph.c: prevent overflow in `load_oid_from_graph()`
      commit-graph.c: prevent overflow in `fill_commit_graph_info()`
      commit-graph.c: prevent overflow in `fill_commit_in_graph()`
      commit-graph.c: prevent overflow in `load_tree_for_commit()`
      commit-graph.c: prevent overflow in `split_graph_merge_strategy()`
      commit-graph.c: prevent overflow in `merge_commit_graph()`
      commit-graph.c: prevent overflow in `write_commit_graph()`
      commit-graph.c: prevent overflow in `verify_commit_graph()`
      Documentation/RelNotes/2.42.0.txt: typofix

Teng Long (8):
      surround %s with quotes when failed to lookup commit
      notes.c: cleanup 'strbuf_grow' call in 'append_edit'
      notes.c: use designated initializers for clarity
      t3321: add test cases about the notes stripspace behavior
      notes.c: introduce '--separator=<paragraph-break>' option
      notes.c: append separator instead of insert by pos
      notes.c: introduce "--[no-]stripspace" option
      notes: introduce "--no-separator" option

Todd Zullinger (3):
      trace2 tests: fix PTHREADS prereq
      t/lib-gpg: fix ssh-keygen -Y check-novalidate with openssh-9.0
      t/lib-gpg: require GPGSSH for GPGSSH_VERIFYTIME prereq

Victoria Dye (3):
      config: use gitdir to get worktree config
      config: pass 'repo' directly to 'config_with_options()'
      repository: move 'repository_format_worktree_config' to repo scope

Vinayak Dev (1):
      docs: add necessary headers to Documentation/MFOW.txt

ZheNing Hu (1):
      ls-files: align format atoms with ls-tree

brian m. carlson (7):
      t: add a function to check executable bit
      var: add support for listing the shell
      var: format variable structure with C99 initializers
      var: adjust memory allocation for strings
      attr: expose and rename accessor functions
      var: add attributes files locations
      var: add config file locations


Version v2.41.0; changes since v2.41.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5515t)

Arkadii Yakovets (3):
      l10n: uk: add initial translation
      l10n: uk: remove stale lines
      l10n: update uk localization

Bagas Sanjaya (1):
      l10n: po-id for 2.41 (round 1)

Benjamin Jorand (1):
      l10n: fr: fix translation of stash save help

Daniel Santos (1):
      l10n: TEAMS: Update pt_PT repo link

Emir SARI (1):
      l10n: tr: Update Turkish translations for 2.41.0

Jean-Noël Avila (2):
      l10n: fr.po v2.41.0 rnd1
      l10n: fr.po v2.41.0 rnd2

Jordi Mas (2):
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.41

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5515t0f0u)

Ralf Thielow (1):
      l10n: Update German translation

Teng Long (1):
      l10n: zh_CN: Git 2.41.0 round #1

Yi-Jyun Pan (1):
      l10n: zh_TW.po: Git 2.41.0


Version v2.41.0-rc2; changes since v2.41.0-rc1:
-----------------------------------------------

Corentin Garcia (1):
      doc/git-config: add unit for http.lowSpeedLimit

Johannes Schindelin (2):
      rebase --update-refs: fix loops
      rebase -r: fix the total number shown in the progress

Junio C Hamano (5):
      tests: do not negate test_path_exists
      t2021: do not negate test_path_is_dir
      test: do not negate test_path_is_* to assert absense
      A few more topics after 2.41-rc1
      Git 2.41-rc2

Shuqi Liang (1):
      t1092: update a write-tree test


Version v2.41.0-rc1; changes since v2.41.0-rc0:
-----------------------------------------------

Christian Hesse (1):
      imap-send: include strbuf.h

Jeff King (1):
      t/lib-httpd: make CGIPassAuth support conditional

John Cai (1):
      attr: teach "--attr-source=<tree>" global option to "git"

Junio C Hamano (4):
      A bit more before -rc1
      send-email: clear the $message_id after validation
      t9001: mark the script as no longer leak checker clean
      Git 2.41-rc1

Taylor Blau (1):
      run-command.c: fix missing include under `NO_PTHREADS`

brian m. carlson (1):
      upload-pack: advertise capabilities when cloning empty repos


Version v2.41.0-rc0; changes since v2.40.1:
-------------------------------------------

Adam Johnson (1):
      ls-files: fix "--format" output of relative paths

Alex Henrie (5):
      rebase: add documentation and test for --no-rebase-merges
      rebase: deprecate --rebase-merges=""
      rebase: add a config option for --rebase-merges
      format-patch: correct documentation of --thread without an argument
      docs: rewrite the documentation of the text and eol attributes

Andreas Schwab (1):
      git-merge-tree.txt: replace spurious HTML entity

Andrei Rybak (19):
      t1005: assert output of ls-files
      t1006: assert error output of cat-file
      t1010: don't create unused files
      t1302: don't create unused file
      t1400: assert output of update-ref
      t1404: don't create unused file
      t1507: assert output of rev-parse
      t3060: fix mention of function prune_index
      t2107: fix mention of the_index.cache_changed
      t2024: fix loose/strict local base branch DWIM test
      t1300: drop duplicate test
      t1300: check stderr for "ignores pairs" tests
      t1300: add tests for missing keys
      t0300: don't create unused file
      t1300: fix config file syntax error descriptions
      t1300: don't create unused files
      t1450: don't create unused files
      t1502: don't create unused files
      t2019: don't create unused files

Andy Koppe (1):
      restore: fault --staged --worktree with merge opts

Beat Bolli (1):
      unicode: update the width tables to Unicode 15

Clement Mabileau (1):
      branch: improve error log on branch not found by checking remotes refs

Daniel Watson (1):
      SubmittingPatches: clarify MUA discussion with "the"

Derrick Stolee (18):
      object-file: reprepare alternates when necessary
      for-each-ref: add --stdin option
      for-each-ref: explicitly test no matches
      commit-graph: refactor compute_topological_levels()
      commit-graph: simplify compute_generation_numbers()
      commit-graph: return generation from memory
      commit-reach: implement ahead_behind() logic
      for-each-ref: add ahead-behind format atom
      commit-reach: add tips_reachable_from_bases()
      p2000: remove stray '--sparse' flag from test
      fetch: download bundles once, even with --all
      fsck: create scaffolding for rev-index checks
      fsck: check rev-index checksums
      fsck: check rev-index position values
      fsck: validate .rev file header
      fsck: verify checksums of all .bitmap files
      fsck: use local repository
      merge-tree: load default git config

Edwin Kofler (1):
      completion: suppress unwanted unescaping of `read`

Elijah Newren (94):
      treewide: ensure one of the appropriate headers is sourced first
      treewide: remove unnecessary git-compat-util.h includes in headers
      treewide: remove unnecessary cache.h includes
      treewide: remove unnecessary cache.h includes in source files
      alloc.h: move ALLOC_GROW() functions from cache.h
      hash.h: move some oid-related declarations from cache.h
      hex.h: move some hex-related declarations from cache.h
      cache.h: remove dependence on hex.h; make other files include it explicitly
      pretty.h: move has_non_ascii() declaration from commit.h
      ident.h: move ident-related declarations out of cache.h
      object.h: stop depending on cache.h; make cache.h depend on object.h
      dir.h: refactor to no longer need to include cache.h
      object-store.h: move struct object_info from cache.h
      replace-object.h: move read_replace_refs declaration from cache.h to here
      treewide: replace cache.h with more direct headers, where possible
      Remove unnecessary includes of builtin.h
      diff.h: remove unnecessary include of object.h
      t2021: fix platform-specific leftover cruft
      unpack-trees: heed requests to overwrite ignored files
      dir: separate public from internal portion of dir_struct
      dir: add a usage note to exclude_per_dir
      dir: mark output only fields of dir_struct as such
      unpack-trees: clean up some flow control
      sparse-checkout: avoid using internal API of unpack-trees
      sparse-checkout: avoid using internal API of unpack-trees, take 2
      unpack_trees: start splitting internal fields from public API
      unpack-trees: mark fields only used internally as internal
      unpack-trees: rewrap a few overlong lines from previous patch
      unpack-trees: special case read-tree debugging as internal usage
      unpack-trees: add usage notices around df_conflict_entry
      treewide: remove unnecessary cache.h inclusion from a few headers
      treewide: be explicit about dependence on gettext.h
      treewide: remove unnecessary inclusion of gettext.h
      treewide: remove unnecessary cache.h inclusion from several sources
      environment: move comment_line_char from cache.h
      abspath.h: move absolute path functions from cache.h
      cache.h: remove expand_user_path()
      path.h: move function declarations for path.c functions from cache.h
      wrapper.h: move declarations for wrapper.c functions from cache.h
      treewide: remove unnecessary includes of cache.h
      environment.h: move declarations for environment.c functions from cache.h
      treewide: remove cache.h inclusion due to environment.h changes
      setup.h: move declarations for setup.c functions from cache.h
      treewide: remove cache.h inclusion due to setup.h changes
      write-or-die.h: move declarations for write-or-die.c functions from cache.h
      csum-file.h: remove unnecessary inclusion of cache.h
      treewide: be explicit about dependence on trace.h & trace2.h
      treewide: be explicit about dependence on advice.h
      treewide: be explicit about dependence on convert.h
      treewide: be explicit about dependence on pack-revindex.h
      treewide: be explicit about dependence on oid-array.h
      treewide: be explicit about dependence on mem-pool.h
      treewide: remove unnecessary cache.h inclusion
      object-name.h: move declarations for object-name.c functions from cache.h
      treewide: remove cache.h inclusion due to object-name.h changes
      git-zlib: move declarations for git-zlib functions from cache.h
      treewide: remove cache.h inclusion due to git-zlib changes
      object-file.h: move declarations for object-file.c functions from cache.h
      treewide: remove cache.h inclusion due to object-file.h changes
      object.h: move some inline functions and defines from cache.h
      treewide: remove cache.h inclusion due to object.h changes
      editor: move editor-related functions and declarations into common file
      treewide: remove cache.h inclusion due to editor.h changes
      pager.h: move declarations for pager.c functions from cache.h
      treewide: remove cache.h inclusion due to pager.h changes
      cache.h: remove unnecessary includes
      treewide: remove double forward declaration of read_in_full
      treewide: reduce includes of cache.h in other headers
      mailmap, quote: move declarations of global vars to correct unit
      protocol.h: move definition of DEFAULT_GIT_PORT from cache.h
      treewide: be explicit about dependence on strbuf.h
      symlinks.h: move declarations for symlinks.c functions from cache.h
      packfile.h: move pack_window and pack_entry from cache.h
      server-info.h: move declarations for server-info.c functions from cache.h
      copy.h: move declarations for copy.c functions from cache.h
      base85.h: move declarations for base85.c functions from cache.h
      pkt-line.h: move declarations for pkt-line.c functions from cache.h
      match-trees.h: move declarations for match-trees.c functions from cache.h
      ws.h: move declarations for ws.c functions from cache.h
      versioncmp.h: move declarations for versioncmp.c functions from cache.h
      dir.h: move DTYPE defines from cache.h
      tree-diff.c: move S_DIFFTREE_IFXMIN_NEQ define from cache.h
      hash-ll.h: split out of hash.h to remove dependency on repository.h
      cache,tree: move cmp_cache_name_compare from tree.[ch] to read-cache.c
      cache,tree: move basic name compare functions from read-cache to tree
      treewide: remove cache.h inclusion due to previous changes
      cache.h: remove unnecessary headers
      fsmonitor: reduce includes of cache.h
      commit.h: reduce unnecessary includes
      object-store.h: reduce unnecessary includes
      diff.h: reduce unnecessary includes
      reftable: ensure git-compat-util.h is the first (indirect) include
      merge-ort: fix calling merge_finalize() with no intermediate merge
      t5583: fix shebang line

Emily Shaffer (1):
      mailmap: change primary address for Emily Shaffer

Eric Sunshine (1):
      tests: diagnose unclosed here-doc in chainlint.pl

Eric Wong (3):
      commit-reach: avoid NULL dereference
      fetch: support hideRefs to speed up connectivity checks
      fetch: pass --no-write-fetch-head to subprocesses

Fangyi Zhou (1):
      rebase: fix capitalisation autoSquash in i18n string

Felipe Contreras (16):
      advice: add diverging advice for novices
      test: simplify counts aggregation
      test: don't print aggregate-results command
      object-name: fix quiet @{u} parsing
      completion: prompt: use generic colors
      doc: remove GNU troff workaround
      doc: remove manpage-base-url workaround
      doc: asciidoc: remove custom header macro
      doc: simplify man version
      doc: set actual revdate for manpages
      doc: git-checkout: trivial callout cleanup
      doc: git-checkout: reorganize examples
      doc: remove custom callouts format
      doc: manpage: remove maximum title length
      doc: doc-diff: specify date
      test: rev-parse-upstream: add missing cmp

Glen Choo (10):
      config.c: plumb config_source through static fns
      config.c: don't assign to "cf_global" directly
      config.c: create config_reader and the_reader
      config.c: plumb the_reader through callbacks
      config.c: remove current_config_kvi
      config.c: remove current_parsing_scope
      config: report cached filenames in die_bad_number()
      config.c: rename "struct config_source cf"
      clone: error specifically with --local and symlinked objects
      setup: trace bare repository setups

Han Xin (2):
      negotiator/default: avoid stack overflow
      negotiator/skipping: fix some problems in mark_common()

Jacob Keller (2):
      blame: allow --contents to work with non-HEAD commit
      blame: use different author name for fake commit generated by --contents

Jeff King (82):
      ref-filter: drop unused atom parameter from get_worktree_path()
      ls-refs: drop config caching
      serve: use repository pointer to get config
      serve: mark unused parameters in virtual functions
      object-name: mark unused parameters in disambiguate callbacks
      http-backend: mark argc/argv unused
      http-backend: mark unused parameters in virtual functions
      ref-filter: mark unused callback parameters
      mark "pointless" data pointers in callbacks
      run-command: mark error routine parameters as unused
      mark unused parameters in signal handlers
      list-objects: mark unused callback parameters
      for_each_object: mark unused callback parameters
      prio-queue: mark unused parameters in comparison functions
      notes: mark unused callback parameters
      fetch-pack: mark unused parameter in callback function
      rewrite_parents(): mark unused callback parameter
      for_each_commit_graft(): mark unused callback parameter
      userformat_want_item(): mark unused parameter
      run_processes_parallel: mark unused callback parameters
      help: mark unused parameter in git_unknown_cmd_config()
      fsck: factor out index fsck
      fsck: check index files in all worktrees
      fsck: mention file path for index errors
      fsck: check even zero-entry index files
      drop pure pass-through config callbacks
      bundle: turn on --all-progress-implied by default
      bundle: let "-" mean stdin for reading operations
      bundle: document handling of "-" as stdin
      parse-options: consistently allocate memory in fix_filename()
      parse-options: use prefix_filename_except_for_dash() helper
      diff: factor out src/dst prefix setup
      t4013: add tests for diff prefix options
      diff: add --default-prefix option
      format-patch: do not respect diff.noprefix
      format-patch: add format.noprefix option
      add-patch: handle "* Unmerged path" lines
      rebase: prefer --default-prefix to --{src,dst}-prefix for format-patch
      mailmap: drop debugging code
      http: drop unused parameter from start_object_request()
      http: mark unused parameter in fill_active_slot() callbacks
      transport: mark unused parameters in fetch_refs_from_bundle()
      git_connect(): fix corner cases in downgrading v2 to v0
      fast-export: drop const when storing anonymized values
      fast-export: simplify initialization of anonymized hashmaps
      fast-export: factor out anonymized_entry creation
      fast-export: de-obfuscate --anonymize-map handling
      fast-export: drop data parameter from anonymous generators
      fast-export: drop unused parameter from anonymize_commit_message()
      pack-redundant: escalate deprecation warning to an error
      docs: document caveats of rev-list's object-name output
      fast-import: fix file access when run from subdir
      builtins: always pass prefix to parse_options()
      builtins: annotate always-empty prefix parameters
      builtins: mark unused prefix parameters
      mark "argv" as unused when we check argc
      t/helper: mark unused argv/argc arguments
      parse-options: drop parse_opt_unknown_cb()
      pack-redundant: document deprecation
      tests: run internal chain-linter under "make test"
      tests: replace chainlint subshell with a function
      tests: drop here-doc check from internal chain-linter
      tests: skip test_eval_ in internal chain-lint
      t/lib-httpd: pass PERL_PATH to CGI scripts
      v0 protocol: fix infinite loop when parsing multi-valued capabilities
      t5512: stop referring to "v1" protocol
      v0 protocol: fix sha1/sha256 confusion for capabilities^{}
      t5512: add v2 support for "ls-remote --symref" test
      t5512: allow any protocol version for filtered symref test
      t5512: test "ls-remote --heads --symref" filtering with v0 and v2
      v0 protocol: use size_t for capability length/offset
      gpg-interface: set trust level of missing key to "undefined"
      notes: clean up confusing NULL checks in init_notes()
      fetch_bundle_uri(): drop pointless NULL check
      t4212: avoid putting git on left-hand side of pipe
      parse_commit(): parse timestamp from end of line
      parse_commit(): handle broken whitespace-only timestamp
      parse_commit(): describe more date-parsing failure modes
      doc-diff: drop SOURCE_DATE_EPOCH override
      t7001: avoid git on upstream of pipe
      t7001: use "ls-files --format" instead of "cut"
      t: drop "verbose" helper function

Jiang Xin (1):
      object-info: init request_info before reading arg

Johannes Schindelin (7):
      split-index & fsmonitor: demonstrate a bug
      split-index; stop abusing the `base_oid` to strip the "link" extension
      fsmonitor: avoid overriding `cache_changed` bits
      unpack-trees: take care to propagate the split-index flag
      t3701: we don't need no Perl for `add -i` anymore
      t5563: prevent "ambiguous redirect"
      gitk: prevent overly long command lines

John Cai (1):
      name-rev: make --stdin hidden

John Keeping (1):
      format-patch: output header for empty commits

Josh Soref (1):
      subtree: support long global flags

Jouke Witteveen (1):
      send-email docs: Remove mention of discontinued gmail feature

Junio C Hamano (28):
      gpg-interface: lazily initialize and read the configuration
      bundle: don't blindly apply prefix_filename() to "-"
      Start the 2.41 cycle
      The second batch
      am: refer to format-patch in the documentation
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      e-mail workflow: Message-ID is spelled with ID in both capital letters
      The seventh batch
      clone: propagate object-format when cloning from void
      The eighth batch
      The ninth batch
      The tenth batch
      The eleventh batch
      The twelfth batch
      The thirteenth batch
      doc: GIT_DEFAULT_HASH is and will be ignored during "clone"
      The fourteenth batch
      The fifteenth batch
      The sixteenth batch
      diff: refactor common tail part of dirstat computation
      diff: plug leaks in dirstat
      t9800: correct misuse of 'show -s --raw' in a test
      The seventeenth batch
      The eighteenth batch
      Git 2.41-rc0

Kristoffer Haugsbakk (5):
      config: tell the user that we expect an ASCII character
      doc: interpret-trailers: don’t use heredoc in examples
      doc: interpret-trailers: use input redirection
      doc: interpret-trailers: don’t use deprecated config
      doc: interpret-trailers: fix example

Linus Arver (1):
      MyFirstContribution: render literal *

M Hickford (3):
      credential/wincred: include wincred.h
      credential/wincred: store password_expiry_utc
      credential: new attribute oauth_refresh_token

Martin Ågren (2):
      gittutorial: drop early mention of origin
      gittutorial: wrap literal examples in backticks

Mathias Krause (1):
      grep: work around UTF-8 related JIT bug in PCRE2 <= 10.34

Matthew John Cheetham (3):
      t5563: add tests for basic and anoymous HTTP access
      http: read HTTP WWW-Authenticate response headers
      credential: add WWW-Authenticate header to cred requests

Maxim Cournoyer (3):
      send-email: extract execute_cmd from recipients_cmd
      send-email: add --header-cmd, --no-header-cmd options
      send-email: detect empty blank lines in command output

Michael J Gruber (1):
      t3070: make chain lint tester happy

Michael Strawbridge (2):
      send-email: refactor header generation functions
      send-email: expose header information to git-send-email's sendemail-validate hook

Mike Hommey (1):
      Handle some compiler versions containing a dash

Nico Rieck (1):
      gitk: escape file paths before piping to git log

Oswald Buddenhagen (5):
      sequencer: remove pointless rollback_lock_file()
      sequencer: rewrite save_head() in terms of write_message()
      sequencer: actually translate report in do_exec()
      messages: capitalization and punctuation exceptions
      t/t3501-revert-cherry-pick.sh: clarify scope of the file

Patrick Steinhardt (27):
      receive-pack: fix stale packfile locks when dying
      fetch: move reference width calculation into `display_state`
      fetch: move output format into `display_state`
      fetch: pass the full local reference name to `format_display`
      fetch: centralize handling of per-reference format
      fetch: centralize logic to print remote URL
      fetch: centralize printing of reference updates
      commit-graph: fix truncated generation numbers
      midx: fix segfault with no packs and invalid preferred pack
      repack: fix trying to use preferred pack in alternates
      repack: fix generating multi-pack-index with only non-local packs
      pack-objects: split out `--stdin-packs` tests into separate file
      pack-objects: fix error when packing same pack twice
      pack-objects: fix error when same packfile is included and excluded
      pack-objects: extend test coverage of `--stdin-packs` with alternates
      t/helper: allow chmtime to print verbosely without modifying mtime
      repack: honor `-l` when calculating pack geometry
      repack: disable writing bitmaps when doing a local repack
      fetch: fix `--no-recurse-submodules` with multi-remote fetches
      fetch: split out tests for output format
      fetch: add a test to exercise invalid output formats
      fetch: print left-hand side when fetching HEAD:foo
      fetch: refactor calculation of the display table width
      fetch: introduce `display_format` enum
      fetch: lift up parsing of "fetch.output" config variable
      fetch: move option related variables into main function
      fetch: introduce machine-parseable "porcelain" output format

Paul Eggert (1):
      git-compat-util: use gettimeofday(2) for time(2)

Phillip Wood (8):
      wildmatch: fix exponential behavior
      wildmatch: avoid undefined behavior
      wildmatch: hide internal return values
      rebase: stop reading and writing unnecessary strategy state
      sequencer: use struct strvec to store merge strategy options
      rebase -m: cleanup --strategy-option handling
      rebase -m: fix serialization of strategy options
      rebase: remove a couple of redundant strategy tests

Raghul Nanth A (1):
      describe: enable sparse index for describe

René Scharfe (6):
      archive: improve support for running in subdirectory
      t5000: use check_mtime()
      userdiff: support regexec(3) with multi-byte support
      date: remove approxidate_relative()
      get-tar-commit-id: use TYPEFLAG_GLOBAL_HEADER instead of magic value
      test-ctype: check EOF

Robin Jarry (1):
      send-email: export patch counters in validate environment

Rubén Justo (10):
      bisect: fix "reset" when branch is checked out elsewhere
      worktree: introduce is_shared_symref()
      branch: fix die_if_checked_out() when ignore_current_worktree
      rebase: refuse to switch to a branch already checked out elsewhere (test)
      switch: reject if the branch is already checked out elsewhere (test)
      branch: test for failures while renaming branches
      branch: use get_worktrees() in copy_or_rename_branch()
      branch: description for orphan branch errors
      branch: rename orphan branches in any worktree
      branch: avoid unnecessary worktrees traversals

SZEDER Gábor (6):
      treewide: include parse-options.h in source files
      treewide: remove unnecessary inclusions of parse-options.h from headers
      parse-options.h: use consistent name for the callback parameters
      parse-options.h: rename _OPT_CONTAINS_OR_WITH()'s parameters
      parse-options.h: use designated initializers in OPT_* macros
      cocci: remove 'unused.cocci'

Shuqi Liang (3):
      write-tree: integrate with sparse index
      t1092: add tests for `git diff-files`
      diff-files: integrate with sparse index

Siddharth Singh (1):
      hashmap.h: fix minor typo

Sohom Datta (1):
      docs: clarify git rm --cached function in gitignore note

Stanislav Malishevskiy (1):
      http: add support for different sslcert and sslkey types.

Tao Klerks (1):
      mergetool: new config guiDefault supports auto-toggling gui by DISPLAY

Taylor Blau (31):
      commit-graph: introduce `ensure_generations_valid()`
      pack-write.c: plug a leak in stage_tmp_packfiles()
      t5325: mark as leak-free
      pack-revindex: make `load_pack_revindex` take a repository
      pack-revindex: introduce GIT_TEST_REV_INDEX_DIE_ON_DISK
      pack-revindex: introduce `pack.readReverseIndex`
      config: enable `pack.writeReverseIndex` by default
      t: invert `GIT_TEST_WRITE_REV_INDEX`
      pack-write.c: plug a leak in stage_tmp_packfiles()
      builtin/repack.c: fix incorrect reference to '-C'
      builtin/gc.c: ignore cruft packs with `--keep-largest-pack`
      t/t5304-prune.sh: prepare for `gc --cruft` by default
      t/t6501-freshen-objects.sh: prepare for `gc --cruft` by default
      t/t6500-gc.sh: refactor cruft pack tests
      t/t6500-gc.sh: add additional test cases
      t/t9300-fast-import.sh: prepare for `gc --cruft` by default
      builtin/gc.c: make `gc.cruftPacks` enabled by default
      repository.h: drop unused `gc_cruft_packs`
      string-list: multi-delimiter `string_list_split_in_place()`
      string-list: introduce `string_list_setlen()`
      t/helper/test-hashmap.c: avoid using `strtok()`
      t/helper/test-oidmap.c: avoid using `strtok()`
      t/helper/test-json-writer.c: avoid using `strtok()`
      banned.h: mark `strtok()` and `strtok_r()` as banned
      credential.c: store "wwwauth[]" values in `credential_read()`
      t/lib-credential.sh: ensure credential helpers handle long headers
      contrib/credential: avoid fixed-size buffer in osxkeychain
      contrib/credential: remove 'gnome-keyring' credential helper
      contrib/credential: .gitignore libsecret build artifacts
      contrib/credential: avoid fixed-size buffer in libsecret
      contrib/credential: embiggen fixed-size buffer in wincred

Teng Long (1):
      push: introduce '--branches' option

William Sprent (2):
      builtin/sparse-checkout: remove NEED_WORK_TREE flag
      builtin/sparse-checkout: add check-rules command

ZheNing Hu (2):
      receive-pack: fix funny ref error messsage
      push: allow delete single-level ref

Ævar Arnfjörð Bjarmason (33):
      auto-crlf tests: don't lose exit code in loops and outside tests
      t/lib-patch-mode.sh: fix ignored exit codes
      tests: don't lose exit status with "(cd ...; test <op> $(git ...))"
      tests: don't lose "git" exit codes in "! ( git ... | grep )"
      tests: don't lose exit status with "test <op> $(git ...)"
      tests: don't lose misc "git" exit codes
      sequencer.c: fix overflow & segfault in parse_strategy_opts()
      cocci: remove dead rule from "the_repository.pending.cocci"
      cocci: fix incorrect & verbose "the_repository" rules
      cocci: sort "the_repository" rules by header
      cocci: add missing "the_repository" macros to "pending"
      cocci: apply the "cache.h" part of "the_repository.pending"
      cocci: apply the "commit-reach.h" part of "the_repository.pending"
      cocci: apply the "commit.h" part of "the_repository.pending"
      cocci: apply the "diff.h" part of "the_repository.pending"
      cocci: apply the "object-store.h" part of "the_repository.pending"
      cocci: apply the "pretty.h" part of "the_repository.pending"
      cocci: apply the "packfile.h" part of "the_repository.pending"
      cocci: apply the "promisor-remote.h" part of "the_repository.pending"
      cocci: apply the "refs.h" part of "the_repository.pending"
      cocci: apply the "rerere.h" part of "the_repository.pending"
      cocci: apply the "revision.h" part of "the_repository.pending"
      post-cocci: adjust comments for recent repo_* migration
      libs: use "struct repository *" argument, not "the_repository"
      config tests: cover blind spots in git_die_config() tests
      config tests: add "NULL" tests for *_get_value_multi()
      config API: add and use a "git_config_get()" family of functions
      versioncmp.c: refactor config reading next commit
      config API: have *_multi() return an "int" and take a "dest"
      for-each-repo: error on bad --config
      config API users: test for *_get_value_multi() segfaults
      config API: add "string" version of *_value_multi(), fix segfaults
      for-each-repo: with bad config, don't conflate <path> and <cmd>

Øystein Walle (2):
      ref-filter: remove unused ref_format member
      branch, for-each-ref, tag: add option to omit empty lines


Version v2.40.1; changes since v2.40.0:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (7):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()
      Makefile: force -O0 when compiling with SANITIZE=leak

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (22):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8
      Git 2.34.8
      Git 2.35.8
      Git 2.36.6
      Git 2.37.7
      Git 2.38.5
      Git 2.39.3
      Git 2.40.1

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.40.0; changes since v2.40.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5490t)

Bagas Sanjaya (1):
      l10n: po-id for 2.40 (round 1)

Emir SARI (1):
      l10n: tr: Update Turkish translations for v.2.40.0

Fangyi Zhou (1):
      l10n: zh_CN v2.40.0 round 1

Jean-Noël Avila (3):
      l10n: fr: fix some typos
      l10n: fr: v2.40.0 rnd 1
      l10n: fr: v2.40.0 rnd 2

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.40

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5490t0f0u)

Ralf Thielow (1):
      l10n: update German translation


Version v2.40.0-rc2; changes since v2.40.0-rc1:
-----------------------------------------------

Gwyneth Morgan (1):
      signature-format.txt: note SSH and X.509 signature delimiters

Junio C Hamano (1):
      Git 2.40-rc2

René Scharfe (1):
      range-diff: avoid compiler warning when char is unsigned


Version v2.40.0-rc1; changes since v2.40.0-rc0:
-----------------------------------------------

Andrei Rybak (1):
      test-lib: drop comment about test_description

Ashutosh Pandey (1):
      t2015-checkout-unborn.sh: changes the style for cd

Jeff King (21):
      shorten_unambiguous_ref(): avoid integer truncation
      shorten_unambiguous_ref(): use NUM_REV_PARSE_RULES constant
      shorten_unambiguous_ref(): avoid sscanf()
      add basic http proxy tests
      t0066: drop setup of "dir5"
      t5541: run "used receive-pack service" test earlier
      t5541: stop marking "used receive-pack service" test as v0 only
      t5541: simplify and move "no empty path components" test
      t5551: drop redundant grep for Accept-Language
      t5551: lower-case headers in expected curl trace
      t5551: handle HTTP/2 when checking curl trace
      t5551: stop forcing clone to run with v0 protocol
      t5551: handle v2 protocol when checking curl trace
      t5551: handle v2 protocol in upload-pack service test
      t5551: simplify expected cookie file
      t5551: handle v2 protocol in cookie test
      t5551: drop curl trace lines without headers
      t/lib-httpd: respect $HTTPD_PROTO in expect_askpass()
      t/lib-httpd: enable HTTP/2 "h2" protocol, not just h2c
      t5559: fix test failures with LIB_HTTPD_SSL
      t5559: make SSL/TLS the default

John Cai (2):
      diff: consolidate diff algorithm option parsing
      diff: teach diff to read algorithm from diff driver

Junio C Hamano (5):
      format.attach: allow empty value to disable multi-part messages
      A few more topics post 2.40-rc0
      A bit more before 2.40-rc1
      A bit more before 2.40-rc1
      Git 2.40-rc1

M Hickford (1):
      credential: new attribute password_expiry_utc

Matthias Aßhauer (1):
      fetch: choose a sensible default with --jobs=0 again

Patrick Steinhardt (1):
      delta-islands: fix segfault when freeing island marks

Phillip Wood (3):
      rebase -i: check labels and refs when parsing todo list
      rebase -i: match whole word in is_command()
      rebase -i: fix parsing of "fixup -C<commit>"

René Scharfe (1):
      archive: add --mtime

Taylor Blau (1):
      dir-iterator: drop unused `DIR_ITERATOR_FOLLOW_SYMLINKS`

Teng Long (1):
      range-diff: let '--abbrev' option takes effect

Zhang Yi (1):
      t9700: modernize test scripts

idriss fekir (1):
      trace.c, git.c: remove unnecessary parameter to trace_repo_setup()


Version v2.40.0-rc0; changes since v2.39.3:
-------------------------------------------

Adam Szkoda (1):
      ssh signing: better error message when key not in agent

Alison Winters (2):
      completion: add optional ignore-case when matching refs
      completion: add case-insensitive match of pseudorefs

Andrei Rybak (11):
      gitattributes.txt: fix typo in "comma separated"
      *: fix typos which duplicate a word
      git-bisect-lk2009: update java code conventions link
      git-bisect-lk2009: update nist report link
      t6003: uncomment test '--max-age=c3, --topo-order'
      t6422: drop commented out code
      t7527: use test_when_finished in 'case insensitive+preserving'
      Documentation: render dash correctly
      userdiff: support Java type parameters
      userdiff: support Java record types
      userdiff: support Java sealed classes

Calvin Wan (2):
      fetch: fix duplicate remote parallel fetch bug
      Documentation: clarify multiple pushurls vs urls

Carlo Marcelo Arenas Belón (1):
      grep: correctly identify utf-8 characters with \{b,w} in -P

Daniël Haazen (1):
      mingw: fix typo in an error message from ownership check

Derrick Stolee (25):
      transport: rename got_remote_heads
      bundle-uri: serve bundle.* keys from config
      strbuf: introduce strbuf_strip_file_from_path()
      bundle-uri: allow relative URLs in bundle lists
      bundle-uri: download bundles from an advertised list
      clone: unbundle the advertised bundles
      hashfile: allow skipping the hash function
      read-cache: add index.skipHash config option
      test-lib-functions: add helper for trailing hash
      features: feature.manyFiles implies fast index writes
      t1600: fix racy index.skipHash test
      t: allow 'scalar' in test_must_fail
      t921*: test scalar behavior starting maintenance
      scalar: only warn when background maintenance fails
      bundle: test unbundling with incomplete history
      bundle: verify using check_connected()
      t5558: add tests for creationToken heuristic
      bundle-uri: parse bundle.heuristic=creationToken
      bundle-uri: parse bundle.<id>.creationToken values
      bundle-uri: download in creationToken order
      clone: set fetch.bundleURI if appropriate
      bundle-uri: drop bundle.flag from design doc
      fetch: fetch from an external bundle URI
      bundle-uri: store fetch.bundleCreationToken
      bundle-uri: test missing bundles with heuristic

Elijah Newren (16):
      ls-files: add missing documentation for --resolve-undo option
      ls-files: clarify descriptions of file selection options
      ls-files: clarify descriptions of status tags for -t
      ls-files: guide folks to --exclude-standard over other --exclude* options
      t6426: fix TODO about making test more comprehensive
      rebase: mark --update-refs as requiring the merge backend
      rebase: flag --apply and --merge as incompatible
      rebase: remove --allow-empty-message from incompatible opts
      rebase: fix docs about incompatibilities with --root
      rebase: fix incompatiblity checks for --[no-]reapply-cherry-picks
      rebase: add coverage of other incompatible options
      rebase: clarify the OPT_CMDMODE incompatibilities
      rebase: fix formatting of rebase --reapply-cherry-picks option in docs
      rebase: put rebase_options initialization in single place
      rebase: provide better error message for apply options vs. merge config
      name-rev: fix names by dropping taggerdate workaround

Emily Shaffer (4):
      run-command: allow stdin for run_processes_parallel
      hook API: support passing stdin to hooks, convert am's 'post-rewrite'
      sequencer: use the new hook API for the simpler "post-rewrite" call
      hook: support a --to-stdin=<path> option

Eric Sunshine (3):
      t1509: fix failing "root work tree" test due to owner-check
      t1509: make "setup" test more robust
      t1509: facilitate repeated script invocations

Eric Wong (2):
      format-patch: support format.mboxrd with --stdout
      delta-islands: free island_marks and bitmaps

Glen Choo (2):
      read-tree + fetch tests: test failing "--super-prefix" interaction
      docs: document zero bits in index "mode"

Gwyneth Morgan (1):
      request-pull: filter out SSH/X.509 tag signatures

Harshil-Jani (2):
      mingw: remove duplicate `USE_NED_ALLOCATOR` directive
      mingw: remove msysGit/MSYS1 support

Jeff Hostetler (2):
      fsmonitor: fix race seen in t7527
      fsmonitor: eliminate call to deprecated FSEventStream function

Jeff King (32):
      git-jump: move valid-mode check earlier
      pack-bitmap.c: break out of the bitmap loop early if not tracing
      pack-bitmap.c: trace bitmap ignore logs when midx-bitmap is found
      ref-filter: reject arguments to %(HEAD)
      ref-filter: factor out "%(foo) does not take arguments" errors
      ref-filter: factor out "unrecognized %(foo) arg" errors
      ref-filter: truncate atom names in error messages
      ref-filter: convert email atom parser to use err_bad_arg()
      test-bundle-uri: drop unused variables
      convert trivial uses of strncmp() to starts_with()
      convert trivial uses of strncmp() to skip_prefix()
      object-file: inline calls to read_object()
      streaming: inline call to read_object_file_extended()
      read_object_file_extended(): drop lookup_replace option
      repo_read_object_file(): stop wrapping read_object_file_extended()
      packfile: inline custom read_object()
      object-file: fix indent-with-space
      t/interop: report which vanilla git command failed
      t1007: modernize malformed object tests
      t1006: stop using 0-padded timestamps
      t7030: stop using invalid tag name
      t: use hash-object --literally when created malformed objects
      fsck: provide a function to fsck buffer without object struct
      hash-object: use fsck for object checks
      hash-object: fix descriptor leak with --literally
      fsck: do not assume NUL-termination of buffers
      t/lib-httpd: bump required apache version to 2.2
      t/lib-httpd: bump required apache version to 2.4
      t/lib-httpd: drop SSLMutex config
      t/lib-httpd: increase ssl key size to 2048 bits
      doc/ls-remote: cosmetic cleanups for examples
      doc/ls-remote: clarify pattern format

Jiang Xin (3):
      t1301: fix wrong template dir for git-init
      t1301: use test_when_finished for cleanup
      t1301: do not change $CWD in "shared=all" test case

Johannes Schindelin (11):
      bisect--helper: handle states directly
      Turn `git bisect` into a full built-in
      t0021: use Windows-friendly `pwd`
      tests(mingw): avoid very slow `mingw_test_cmp`
      bisect--helper: simplify exit code computation
      bisect: verify that a bogus option won't try to start a bisection
      bisect run: fix the error message
      bisect: remove Cogito-related code
      bisect: no longer try to clean up left-over `.git/head-name` files
      t7510: add a test case that does not need gpg
      gpg: do show gpg's error message upon failure

John Cai (2):
      docs: link generating patch sections
      attr: fix instructions on how to check attrs

Jonathan Tan (5):
      http-fetch: invoke trace2_cmd_name()
      object-file: remove OBJECT_INFO_IGNORE_LOOSE
      object-file: refactor map_loose_object_1()
      object-file: emit corruption errors when detected
      commit: don't lazy-fetch commits

Junio C Hamano (22):
      Start the 2.40 cycle
      The first batch for 2.40
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      format-patch: unleak "-v <num>"
      The seventh batch
      The eighth batch
      The ninth batch
      The tenth batch
      The eleventh batch
      The twelfth batch
      The thirteenth batch
      The fourteenth batch
      The fifteenth batch
      The sixteenth batch
      rev-list: clarify git-log default date format
      test-genzeros: avoid raw write(2)
      The seventeenth batch
      Git 2.40-rc0

Karthik Nayak (2):
      t0003: move setup for `--all` into new block
      attr: add flag `--source` to work with tree-ish

Kostya Farber (1):
      t5000: modernise archive and :(glob) test

Kyle Meyer (2):
      send-email: relay '-v N' to format-patch
      doc/git-branch: fix --force description typo

Kyle Zhao (3):
      merge-tree.c: add --merge-base=<commit> option
      merge-tree.c: allow specifying the merge-base when --stdin is passed
      docs: fix description of the `--merge-base` option

M Hickford (1):
      Documentation: clarify that cache forgets credentials if the system restarts

Martin Ågren (1):
      git-cat-file.txt: fix list continuations rendering literally

Mathias Krause (1):
      grep: fall back to interpreter if JIT memory allocation fails

Peter Grayson (1):
      diff: fix regression with --stat and unmerged file

Philip Oakley (6):
      doc: pretty-formats: separate parameters from placeholders
      doc: pretty-formats: delineate `%<|(` parameter values
      doc: pretty-formats document negative column alignments
      doc: pretty-formats describe use of ellipsis in truncation
      doc: pretty-formats note wide char limitations, and add tests
      .gitattributes: include `text` attribute for eol attributes

Philippe Blain (1):
      branch: improve advice when --recurse-submodules fails

Phillip Wood (2):
      ci(github): restore "print test failures" step name
      rebase: cleanup "--exec" option handling

René Scharfe (19):
      t5317: stop losing return codes of git ls-files
      t5317: demonstrate failure to handle multiple --filter options
      pack-objects: fix handling of multiple --filter options
      pack-objects: simplify --filter handling
      list-objects-filter: remove OPT_PARSE_LIST_OBJECTS_FILTER_INIT()
      diff: factor out add_diff_options()
      diff: use add_diff_options() in diff_opt_parse()
      diff: remove parseopts member from struct diff_options
      mingw: make argv2 in try_shell_exec() non-const
      factor out BARF_UNLESS_COPYABLE
      do full type check in BARF_UNLESS_COPYABLE
      add DUP_ARRAY
      use DUP_ARRAY
      read-cache: use size_t for {base,df}_name_compare()
      pack-objects: use strcspn(3) in name_cmp_len()
      cache-tree: fix strbuf growth in prime_cache_tree_rec()
      test-ctype: test isascii
      test-ctype: test islower and isupper
      test-ctype: test iscntrl, ispunct, isxdigit and isprint

Rudy Rigot (1):
      status: modernize git-status "slow untracked files" advice

SZEDER Gábor (1):
      tests: make 'test_oid' print trailing newline

Sean Allred (3):
      var: do not print usage() with a correct invocation
      var: allow GIT_EDITOR to return null
      var: add GIT_SEQUENCE_EDITOR variable

Seija (1):
      maintenance: compare output of pthread functions for inequality with 0

Seija Kijin (5):
      win32: use _endthreadex to terminate threads, not ExitThread
      win32: prepare pthread.c for change by formatting
      win32: close handles of threads that have been joined
      merge: break out of all_strategy loop when strategy is found
      compat/winansi: check for errors of CreateThread() correctly

Siddharth Asthana (2):
      cat-file: add mailmap support to -s option
      cat-file: add mailmap support to --batch-check option

Simon Gerber (1):
      help.c: fix autocorrect in work tree for bare repository

Sven Strickroth (1):
      submodule: accept -v for the update command

Teng Long (4):
      pack-bitmap.c: remove unnecessary "open_pack_index()" calls
      pack-bitmap.c: avoid exposing absolute paths
      ls-tree: cleanup the redundant SPACE
      t3104: remove shift code in 'test_ls_tree_format'

Thierry Reding (1):
      am: allow passing --no-verify flag

Torsten Bögershausen (1):
      t0003: call dd with portable blocksize

Wes Lord (1):
      new-command.txt: update reference to builtin docs

Yoichi Nakayama (2):
      git-jump: add an optional argument '--stdout'
      git-jump: invoke emacs/emacsclient

Yukai Chou (1):
      doc: fix non-existent config name

Yutaro Ohno (1):
      doc: add "git switch -c" as another option on detached HEAD

ZheNing Hu (1):
      scalar: show progress if stderr refers to a terminal

Ævar Arnfjörð Bjarmason (84):
      bisect tests: test for v2.30.0 "bisect run" regressions
      bisect: refactor bisect_run() to match CodingGuidelines
      bisect test: test exit codes on bad usage
      bisect--helper: emit usage for "git bisect"
      bisect; remove unused "git-bisect.sh" and ".gitignore" entry
      tests: mark tests as passing with SANITIZE=leak
      {reset,merge}: call discard_index() before returning
      commit: discard partial cache before (re-)reading it
      read-cache.c: clear and free "sparse_checkout_patterns"
      dir.c: free "ident" and "exclude_per_dir" in "struct untracked_cache"
      built-ins & libs & helpers: add/move destructors, fix leaks
      unpack-file: fix ancient leak in create_temp_file()
      revision API: call graph_clear() in release_revisions()
      ls-files: fix a --with-tree memory leak
      sequencer.c: fix "opts->strategy" leak in read_strategy_opts()
      connected.c: free the "struct packed_git"
      rebase: don't leak on "--abort"
      cherry-pick: free "struct replay_opts" members
      revert: fix parse_options_concat() leak
      built-ins: use free() not UNLEAK() if trivial, rm dead code
      Makefile: use sha1collisiondetection by default on OSX and Darwin
      protocol v2: add server-side "bundle-uri" skeleton
      t: create test harness for 'bundle-uri' command
      clone: request the 'bundle-uri' command when available
      bundle-uri client: add boolean transfer.bundleURI setting
      bundle-uri client: add helper for testing server
      submodule absorbgitdirs tests: add missing "Migrating git..." tests
      submodule.c & submodule--helper: pass along "super_prefix" param
      submodule--helper: don't use global --super-prefix in "absorbgitdirs"
      submodule--helper: convert "foreach" to its own "--super-prefix"
      submodule--helper: convert "sync" to its own "--super-prefix"
      submodule--helper: convert "status" to its own "--super-prefix"
      submodule--helper: convert "{update,clone}" to their own "--super-prefix"
      read-tree: add "--super-prefix" option, eliminate global
      builtin/difftool.c: { 0 }-initialize rather than using memset()
      sparse-index.c: expand_to_path() can assume non-NULL "istate"
      sparse-index API: BUG() out on NULL ensure_full_index()
      read-cache.c: refactor set_new_index_sparsity() for subsequent commit
      bisect--helper: make the order consistently `argc, argv`
      ls-tree: don't use "show_tree_data" for "fast" callbacks
      ls-tree: use a "struct options"
      ls-tree: fold "show_tree_data" into "cb" struct
      ls-tree: make "line_termination" less generic
      env-helper: move this built-in to "test-tool env-helper"
      cache API: add a "INDEX_STATE_INIT" macro/function, add release_index()
      treewide: always have a valid "index_state.repo" member
      add: remove "add.interactive.useBuiltin" & Perl "git add--interactive"
      add API: remove run_add_interactive() wrapper function
      docs & comments: replace mentions of "git-add--interactive.perl"
      tests: mark tests as passing with SANITIZE=leak
      bundle.c: don't leak the "args" in the "struct child_process"
      commit-graph: use free_commit_graph() instead of UNLEAK()
      clone: use free() instead of UNLEAK()
      various: add missing clear_pathspec(), fix leaks
      name-rev: don't xstrdup() an already dup'd string
      repack: fix leaks on error with "goto cleanup"
      worktree: fix a trivial leak in prune_worktrees()
      http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()
      http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()
      commit-graph: fix a parse_options_concat() leak
      show-branch: free() allocated "head" before return
      builtin/merge.c: use fixed strings, not "strbuf", fix leak
      builtin/merge.c: free "&buf" on "Your local changes..." error
      grep.c: refactor free_grep_patterns()
      grep API: plug memory leaks by freeing "header_list"
      receive-pack: release the linked "struct command *" list
      push: refactor refspec_append_mapped() for subsequent leak-fix
      push: free_refs() the "local_refs" in set_refspecs()
      rebase: use "cleanup" pattern in do_interactive_rebase()
      sequencer.c: split up sequencer_remove_state()
      sequencer API users: fix get_replay_opts() leaks
      builtin/revert.c: move free-ing of "revs" to replay_opts_release()
      builtin/rebase.c: fix "options.onto_name" leak
      sequencer.c: always free() the "msgbuf" in do_pick_commit()
      builtin/rebase.c: free() "options.strategy_opts"
      commit.c: free() revs.commit in get_fork_point()
      config.h: remove unused git_configset_add_parameters()
      run-command.c: remove dead assignment in while-loop
      builtin/rm.c: use narrower "USE_THE_INDEX_VARIABLE"
      cocci & cache.h: fully apply "active_nr" part of index-compatibility
      cocci & cache.h: apply pending "index_cache_pos" rule
      cocci & cache-tree.h: migrate "write_cache_as_tree" to "*_index_*"
      cache-tree API: remove redundant update_main_cache_tree()
      cocci & cache.h: remove "USE_THE_INDEX_COMPATIBILITY_MACROS"

Đoàn Trần Công Danh (6):
      bisect: fix output regressions in v2.30.0
      bisect run: keep some of the post-v2.30.0 output
      bisect-run: verify_good: account for non-negative exit status
      bisect--helper: identify as bisect when report error
      bisect--helper: log: allow arbitrary number of arguments
      date.c: allow ISO 8601 reduced precision times


Version v2.39.3; changes since v2.39.2:
---------------------------------------

Chris. Webster (3):
      ci (check-whitespace): suggest fixes for errors
      ci (check-whitespace): add links to job output
      ci (check-whitespace): move to actions/checkout@v3

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Eric Sunshine (1):
      githooks: discuss Git operations in foreign repositories

Jeff King (25):
      git-compat-util: avoid redefining system function names
      git-compat-util: undefine system names before redeclaring them
      server_supports_v2(): use a separate function for die_on_error
      ls-refs: use repository parameter to iterate refs
      blob: drop unused parts of parse_blob_buffer()
      list-objects: drop process_gitlink() function
      ws: drop unused parameter from ws_blank_line()
      xdiff: drop unused parameter in def_ff()
      xdiff: mark unused parameter in xdl_call_hunk_func()
      diff: mark unused parameters in callbacks
      list-objects-filter: mark unused parameters in virtual functions
      userdiff: mark unused parameter in internal callback
      diff: use filespec path to set up tempfiles for ext-diff
      diff: clean up external-diff argv setup
      diff: drop "name" parameter from prepare_temp_file()
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      http: support CURLOPT_PROTOCOLS_STR
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()
      Makefile: force -O0 when compiling with SANITIZE=leak

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (22):
      ci: only run win+VS build & tests in Git for Windows' fork
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8
      Git 2.34.8
      Git 2.35.8
      Git 2.36.6
      Git 2.37.7
      Git 2.38.5
      Git 2.39.3

Johannes Sixt (1):
      t3920: don't ignore errors of more than one command with `|| true`

Junio C Hamano (4):
      branch: document `-f` and linked worktree behaviour
      checkout: document -b/-B to highlight the differences from "git branch"
      Prepare for 2.39.3 just in case
      http.c: clear the 'finished' member once we are done with it

Lars Kellogg-Stedman (1):
      line-range: fix infinite loop bug with '$' regex

Patrick Steinhardt (1):
      refs: fix corruption by not correctly syncing packed-refs to disk

Philippe Blain (5):
      git-cherry-pick.txt: do not use 'ORIG_HEAD' in example
      git-reset.txt: mention 'ORIG_HEAD' in the Description
      git-merge.txt: mention 'ORIG_HEAD' in the Description
      revisions.txt: be explicit about commands writing 'ORIG_HEAD'
      git-rebase.txt: add a note about 'ORIG_HEAD' being overwritten

René Scharfe (10):
      t4205: don't exit test script on failure
      list-objects-filter: plug pattern_list leak
      t3920: support CR-eating grep
      reflog: clear leftovers in reflog_expiry_cleanup()
      commit: skip already cleared parents in clear_commit_marks_1()
      am: don't pass strvec to apply_parse_options()
      object-file: inline write_buffer()
      use enhanced basic regular expressions on macOS
      ls-tree: fix expansion of repeated %(path)
      ls-tree: remove dead store and strbuf for quote_c_style()

Rubén Justo (1):
      branch: force-copy a branch to itself via @{-1} is a no-op

Seija Kijin (1):
      git: remove duplicate includes

Taylor Blau (6):
      ci: avoid unnecessary builds
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9

William Sprent (1):
      dir: check for single file cone patterns

Ævar Arnfjörð Bjarmason (6):
      t5314: check exit code of "git"
      t7600: don't ignore "rev-parse" exit code in helper
      t4023: fix ignored exit codes of git
      bundle: don't segfault on "git bundle <subcmd>"
      builtin/bundle.c: remove superfluous "newargc" variable
      bundle <cmd>: have usage_msg_opt() note the missing "<file>"


Version v2.39.2; changes since v2.39.1:
---------------------------------------

Jeff King (3):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      http: support CURLOPT_PROTOCOLS_STR

Johannes Schindelin (12):
      fsck: document the new `gitattributes` message IDs
      attr: adjust a mismatched data type
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6
      Git 2.33.7
      Git 2.34.7
      Git 2.35.7
      Git 2.36.5
      Git 2.37.6
      Git 2.38.4
      Git 2.39.2

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.39.1; changes since v2.39.0:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (10):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5
      Git 2.33.6
      Git 2.34.6
      Git 2.35.6
      Git 2.36.4
      Git 2.37.5
      Git 2.38.3
      Git 2.39.1

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.39.0; changes since v2.39.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5501t)

Bagas Sanjaya (1):
      l10n: po-id for 2.39 (round 1)

Emir SARI (1):
      l10n: tr: v2.39.0 updates

Fangyi Zhou (1):
      l10n: zh_CN v2.39.0 round 1

Jean-Noël Avila (1):
      l10n: fr: v2.39 rnd 1

Johannes Schindelin (3):
      ci: avoid using deprecated {up,down}load-artifacts Action
      RelNotes: a couple of typofixes
      ci: use a newer `github-script` version

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (2):
      Git 2.38.2
      Git 2.39

Matheus Tavares (1):
      mailmap: update email address of Matheus Tavares

Oscar Dominguez (1):
      ci(main): upgrade actions/checkout to v3

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5501t0f0)

Ralf Thielow (1):
      l10n: de.po: update German translation

Victoria Dye (1):
      rebase --update-refs: avoid unintended ref deletion

Yi-Jyun Pan (1):
      l10n: zh_TW.po: Git 2.39-rc2

Ævar Arnfjörð Bjarmason (3):
      CI: upgrade to macos-12, and pin OSX version
      CI: don't explicitly pick "bash" shell outside of Windows, fix regression
      CI: migrate away from deprecated "set-output" syntax


Version v2.39.0-rc2; changes since v2.39.0-rc1:
-----------------------------------------------

Junio C Hamano (1):
      Git 2.39-rc2

Ævar Arnfjörð Bjarmason (2):
      Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4
      cocci: avoid "should ... be a metavariable" warnings


Version v2.39.0-rc1; changes since v2.39.0-rc0:
-----------------------------------------------

Andreas Hasenack (1):
      chainlint.pl: fix /proc/cpuinfo regexp

Eric Sunshine (1):
      lib-httpd: extend module location auto-detection

Eric Wong (1):
      prune: quiet ENOENT on missing directories

Glen Choo (1):
      object-file: use real paths when adding alternates

Jean-Noël Avila (1):
      i18n: fix command template placeholder format

Jeff King (2):
      parse_object(): drop extra "has" check before checking object type
      parse_object(): check on-disk type of suspected blob

Jiang Xin (5):
      t5516: fail to run in verbose mode
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Junio C Hamano (3):
      Another batch before -rc1
      A bit more before -rc1
      Git 2.39-rc1

Kyle Meyer (1):
      merge-recursive: fix variable typo in error message

Paul Smith (1):
      Makefile: avoid multiple patterns when recipes generate one file

Phillip Wood (3):
      git_parse_unsigned: reject negative values
      config: require at least one digit when parsing numbers
      git_parse_signed(): avoid integer overflow

René Scharfe (1):
      list-objects-filter: plug combine_filter_data leak

SZEDER Gábor (3):
      line-log: free diff queue when processing non-merge commits
      line-log: free the diff queues' arrays when processing merge commits
      diff.c: use diff_free_queue()

Ævar Arnfjörð Bjarmason (13):
      cache.h: remove unused "the_index" compat macros
      builtin/{grep,log}.: don't define "USE_THE_INDEX_COMPATIBILITY_MACROS"
      cocci & cache.h: remove rarely used "the_index" compat macros
      read-cache API & users: make discard_index() return void
      cocci: add a index-compatibility.pending.cocci
      cocci & cache.h: apply a selection of "pending" index-compatibility
      cocci & cache.h: apply variable section of "pending" index-compatibility
      cocci: apply "pending" index-compatibility to "t/helper/*.c"
      {builtin/*,repository}.c: add & use "USE_THE_INDEX_VARIABLE"
      cache.h & test-tool.h: add & use "USE_THE_INDEX_VARIABLE"
      cocci: apply "pending" index-compatibility to some "builtin/*.c"
      parse_object(): simplify blob conditional
      trace2 tests: guard pthread test with "PTHREAD"


Version v2.39.0-rc0; changes since v2.38.5:
-------------------------------------------

Alex Henrie (1):
      push: improve grammar of branch.autoSetupMerge advice

Anh Le (2):
      index: add trace2 region for clear skip worktree
      index: raise a bug if the index is materialised more than once

Arthur Chan (1):
      fuzz: reorganise the path for existing oss-fuzz fuzzers

Daniel Sonbolian (1):
      git.c: improve code readability in cmd_main()

Debra Obondo (1):
      t7001-mv.sh: modernizing test script using functions

Derrick Stolee (14):
      maintenance: add 'unregister --force'
      scalar: make 'unregister' idempotent
      gc: replace config subprocesses with API calls
      string-list: document iterator behavior on NULL input
      bundle-uri: use plain string in find_temp_filename()
      bundle-uri: create bundle_list struct and helpers
      bundle-uri: create base key-value pair parsing
      bundle-uri: parse bundle list in config format
      bundle-uri: limit recursion depth for bundle lists
      bundle: properly clear all revision flags
      bundle-uri: fetch a list of bundles
      bundle: add flags to verify_bundle()
      bundle-uri: quiet failed unbundlings
      bundle-uri: suppress stderr from remote-https

Diomidis Spinellis (1):
      grep: fix multibyte regex handling under macOS

Elijah Newren (4):
      merge-ort: fix bug with dir rename vs change dir to symlink
      merge-tree: update documentation for differences in -z output
      merge-tree: support multiple batched merges with --stdin
      sparse-checkout.txt: new document with sparse-checkout directions

Emily Shaffer (2):
      gc: add tests for --cruft and friends
      config: let feature.experimental imply gc.cruftPacks=true

Eric DeCosta (6):
      fsmonitor: refactor filesystem checks to common interface
      fsmonitor: relocate socket file if .git directory is remote
      fsmonitor: avoid socket location check if using hook
      fsmonitor: deal with synthetic firmlinks on macOS
      fsmonitor: check for compatability before communicating with fsmonitor
      fsmonitor: add documentation for allowRemote and socketDir options

Eric Sunshine (8):
      check-non-portable-shell: detect obsolescent egrep/fgrep
      chainlint: add explanatory comments
      chainlint: tighten accuracy when consuming input stream
      chainlint: latch start/end position of each token
      chainlint: annotate original test definition rather than token stream
      chainlint: sidestep impoverished macOS "terminfo"
      chainlint: latch line numbers at which each token starts and ends
      chainlint: prefix annotated test definition with line numbers

Eric Wong (1):
      delta-islands: free island-related data after use

Glen Choo (2):
      config: respect includes in protected config
      http: redact curl h2h3 headers in info

Han-Wen Nienhuys (1):
      refs: unify parse_worktree_ref() and ref_type()

Jeff Hostetler (8):
      trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx
      tr2tls: clarify TLS terminology
      api-trace2.txt: elminate section describing the public trace2 API
      trace2: rename the thread_name argument to trace2_thread_start
      trace2: improve thread-name documentation in the thread-context
      trace2: convert ctx.thread_name from strbuf to pointer
      trace2: add stopwatch timers
      trace2: add global counter mechanism

Jeff King (27):
      fsmonitor: fix leak of warning message
      diffstat_consume(): assert non-zero length
      submodule--helper: drop unused argc from module_list_compute()
      update-index: drop unused argc from do_reupdate()
      mark unused parameters in trivial compat functions
      object-file: mark unused parameters in hash_unknown functions
      string-list: mark unused callback parameters
      date: mark unused parameters in handler functions
      apply: mark unused parameters in handlers
      apply: mark unused parameters in noop error/warning routine
      convert: mark unused parameter in null stream filter
      diffcore-pickaxe: mark unused parameters in pickaxe functions
      ll-merge: mark unused parameters in callbacks
      Makefile: force -O0 when compiling with SANITIZE=leak
      repack: convert "names" util bitfield to array
      repack: populate extension bits incrementally
      repack: expand error message for missing pack files
      repack: use tempfiles for signal cleanup
      repack: drop remove_temporary_files()
      Git.pm: trust rev-parse to find bare repositories
      t7700: annotate cruft-pack failure with ok=sigpipe
      shortlog: accept `--date`-related options
      t5516: move plaintext-password tests from t5601 and t5516
      ref-filter: fix parsing of signatures without blank lines
      ref-filter: fix parsing of signatures with CRLF and no body
      branch: gracefully handle '-d' on orphan HEAD
      t: run t5551 tests with both HTTP and HTTP/2

Jerry Zhang (6):
      patch-id: fix stable patch id for binary / header-only
      patch-id: use stable patch-id for rebases
      builtin: patch-id: fix patch-id with binary diffs
      patch-id: fix patch-id for mode changes
      builtin: patch-id: add --verbatim as a command mode
      builtin: patch-id: remove unused diff-tree prefix

Johannes Schindelin (9):
      cmake: make it easier to diagnose regressions in CTest runs
      cmake: copy the merge tools for testing
      add -p: avoid ambiguous signed/unsigned comparison
      cmake: avoid editing t/test-lib.sh
      cmake: increase time-out for a long-running test
      t5516/t5601: be less strict about the number of credential warnings
      scalar reconfigure -a: remove stale `scalar.repo` entries
      ci: use a newer `github-script` version
      tests(scalar): tighten the stale `scalar.repo` test some

John Cai (2):
      fsck: remove the unused BAD_TAG_OBJECT
      fsck: document msg-id

Jonathan Tan (4):
      promisor-remote: remove a return value
      promisor-remote: die upon failing fetch
      negotiator/skipping: avoid stack overflow
      Doc: document push.recurseSubmodules=only

Julia Ramer (1):
      embargoed releases: also describe the git-security list and the process

Junio C Hamano (17):
      Start 2.39 cycle
      symbolic-ref: teach "--[no-]recurse" option
      The (real) first batch for 2.39
      The second batch
      The third batch
      The fourth batch
      ci: add address and undefined sanitizer tasks
      ci: use DC_SHA1=YesPlease on osx-clang job for CI
      The fifth batch
      diff: leave NEEDWORK notes in show_stats() function
      fsck: remove the unused MISSING_TREE_OBJECT
      Documentation: add lint-fsck-msgids
      The sixth batch
      The seventh batch
      The eighth batch
      adjust_shared_perm(): leave g+s alone when the group does not matter
      Git 2.39-rc0

Kousik Sanagavarapu (1):
      repository-version.txt: partialClone casing change

M Hickford (4):
      Documentation/gitcredentials.txt: mention password alternatives
      Documentation: increase example cache timeout to 1 hour
      docs: clarify that credential discards unrecognised attributes
      Docs: describe how a credential-generating helper works

Martin Ågren (1):
      test-lib-functions: drop redundant diagnostic print

Matthew John Cheetham (3):
      wincred: ignore unknown lines (do not die)
      netrc: ignore unknown lines (do not die)
      osxkeychain: clarify that we ignore unknown lines

Michael J Gruber (1):
      notes: avoid empty line in template

Michael McClimon (1):
      Git.pm: add semicolon after catch statement

Nsengiyumva Wilberforce (1):
      t1002: modernize outdated conditional

Patrick Steinhardt (7):
      refs: fix memory leak when parsing hideRefs config
      refs: get rid of global list of hidden refs
      revision: move together exclusion-related functions
      revision: introduce struct to handle exclusions
      revision: add new parameter to exclude hidden refs
      rev-parse: add `--exclude-hidden=` option
      receive-pack: only use visible refs for connectivity check

Philip Oakley (4):
      doc: use "commit-graph" hyphenation consistently
      doc: use 'object database' not ODB or abbreviation
      glossary: add "commit graph" description
      glossary: add reachability bitmap description

Philippe Blain (9):
      test-lib-functions: mark 'test_commit' variables as 'local'
      subtree: use 'git rev-parse --verify [--quiet]' for better error messages
      subtree: add 'die_incompatible_opt' function to reduce duplication
      subtree: prefix die messages with 'fatal'
      subtree: define a variable before its first use in 'find_latest_squash'
      subtree: use named variables instead of "$@" in cmd_pull
      subtree: process 'git-subtree-split' trailer in separate function
      subtree: fix squash merging after annotated tag was squashed merged
      subtree: fix split after annotated tag was squashed merged

Phillip Wood (20):
      t3416: tighten two tests
      t3416: set $EDITOR in subshell
      rebase: be stricter when reading state files containing oids
      rebase: store orig_head as a commit
      rebase: rename merge_base to branch_base
      rebase: factor out branch_base calculation
      rebase --keep-base: imply --reapply-cherry-picks
      rebase --keep-base: imply --no-fork-point
      rebase --apply: remove duplicated code
      t3406: rework rebase reflog tests
      rebase --merge: fix reflog when continuing
      rebase --merge: fix reflog message after skipping
      rebase --apply: respect GIT_REFLOG_ACTION
      rebase --apply: make reflog messages match rebase --merge
      rebase --abort: improve reflog message
      rebase: cleanup action handling
      sequencer: stop exporting GIT_REFLOG_ACTION
      rebase: stop exporting GIT_REFLOG_ACTION
      sequencer: unify label lookup
      sequencer: tighten label lookups

René Scharfe (16):
      revision: use strtol_i() for exclude_parent
      revisions.txt: unspecify order of resolved parts of ^!
      diff: support ^! for merges
      submodule: use strvec_pushf() for --super-prefix
      run-command: fix return value comment
      am: simplify building "show" argument list
      bisect: simplify building "checkout" argument list
      bisect--helper: factor out do_bisect_run()
      sequencer: simplify building argument list in do_exec()
      use child_process member "args" instead of string array variable
      use child_process members "args" and "env" directly
      replace and remove run_command_v_opt_cd_env()
      replace and remove run_command_v_opt_tr2()
      replace and remove run_command_v_opt_cd_env_tr2()
      replace and remove run_command_v_opt()
      archive-tar: report filter start error only once

Ronan Pigott (2):
      for-each-repo: interpolate repo path arguments
      maintenance: add option to register in a specific config

Rubén Justo (3):
      branch: support for shortcuts like @{-1}, completed
      branch: error copying or renaming a detached HEAD
      branch: error code with --edit-description

SZEDER Gábor (1):
      Documentation/build-docdep.perl: generate sorted output

Shaoxuan Yuan (1):
      builtin/grep.c: integrate with sparse index

Sotir Danailov (1):
      docs: git-send-email: difference between ssl and tls smtp-encryption

Taylor Blau (26):
      midx.c: fix whitespace typo
      midx.c: consider annotated tags during bitmap selection
      midx.c: instrument MIDX and bitmap generation with trace2 regions
      pack-bitmap-write.c: instrument number of reused bitmaps
      builtin/repack.c: remove redundant pack-based bitmaps
      repack: don't remove .keep packs with `--pack-kept-objects`
      builtin/repack.c: pass "out" to `prepare_pack_objects`
      builtin/repack.c: pass "cruft_expiration" to `write_cruft_pack`
      builtin/repack.c: write cruft packs to arbitrary locations
      builtin/repack.c: implement `--expire-to` for storing pruned objects
      shortlog: make trailer insertion a noop when appropriate
      shortlog: extract `--group` fragment for translation
      shortlog: support arbitrary commit format `--group`s
      shortlog: extract `shortlog_finish_setup()`
      shortlog: implement `--group=author` in terms of `--group=<format>`
      shortlog: implement `--group=committer` in terms of `--group=<format>`
      apply: reject patches larger than ~1 GiB
      Documentation/howto/maintain-git.txt: fix Meta/redo-jch.sh invocation
      The ninth batch
      Documentation: build redo-jch.sh from master..jch
      Documentation: build redo-seen.sh from jch..seen
      The tenth batch
      The eleventh batch
      The twelfth batch
      builtin/gc.c: fix use-after-free in maintenance_unregister()
      The thirteenth batch

Torsten Bögershausen (1):
      diff.c: use utf8_strwidth() to count display width

Victoria Dye (6):
      rebase --update-refs: avoid unintended ref deletion
      cache-tree: add perf test comparing update and prime
      unpack-trees: add 'skip_cache_tree_update' option
      reset: use 'skip_cache_tree_update' option
      read-tree: use 'skip_cache_tree_update' option
      rebase: use 'skip_cache_tree_update' option

Vincent Bernat (1):
      ls-files: fix --ignored and --killed flags in synopsis

Vlad-Stefan Harbuz (1):
      Documentation: fix typo

srz_zumix (1):
      fsmonitor--daemon: on macOS support symlink

Ævar Arnfjörð Bjarmason (94):
      grep.c: remove "extended" in favor of "pattern_expression", fix segfault
      bundle-uri: create "key=value" line parsing
      bundle-uri: unit test "key=value" parsing
      run-command test helper: use "else if" pattern
      run-command API: have "run_processes_parallel{,_tr2}()" return void
      run-command tests: use "return", not "exit"
      run-command API: make "n" parameter a "size_t"
      run-command API: don't fall back on online_cpus()
      run-command.c: use designated init for pp_init(), add "const"
      run-command API: have run_process_parallel() take an "opts" struct
      run-command API: move *_tr2() users to "run_processes_parallel()"
      run-command.c: make "struct parallel_processes" const if possible
      run-command.c: don't copy *_fn to "struct parallel_processes"
      run-command.c: don't copy "ungroup" to "struct parallel_processes"
      run-command.c: don't copy "data" to "struct parallel_processes"
      run-command.c: use "opts->processes", not "pp->max_processes"
      run-command.c: pass "opts" further down, and use "opts->processes"
      run-command.c: remove "max_processes", add "const" to signal() handler
      tests: assert *.txt SYNOPSIS and -h output
      CodingGuidelines: update and clarify command-line conventions
      builtin/bundle.c: indent with tabs
      bundle: define subcommand -h in terms of command -h
      doc SYNOPSIS: don't use ' for subcommands
      doc SYNOPSIS: consistently use ' for commands
      built-ins: consistently add "\n" between "usage" and options
      doc txt & -h consistency: word-wrap
      doc txt & -h consistency: fix incorrect alternates syntax
      doc txt & -h consistency: add "-z" to cat-file "-h"
      doc txt & -h consistency: balance unbalanced "[" and "]"
      doc txt & -h consistency: correct padding around "[]()"
      stash doc SYNOPSIS & -h: correct padding around "[]()"
      doc txt & -h consistency: use "<options>", not "<options>..."
      doc SYNOPSIS & -h: use "-" to separate words in labels, not "_"
      doc txt & -h consistency: fix mismatching labels
      doc txt & -h consistency: add or fix optional "--" syntax
      doc txt & -h consistency: make output order consistent
      doc txt & -h consistency: add missing options and labels
      doc txt & -h consistency: make "rerere" consistent
      doc txt & -h consistency: make "read-tree" consistent
      doc txt & -h consistency: make "bundle" consistent
      doc txt & -h consistency: use "git foo" form, not "git-foo"
      doc txt & -h consistency: add missing options
      doc txt & -h consistency: make "stash" consistent
      doc txt & -h consistency: make "annotate" consistent
      doc txt & -h consistency: use "[<label>...]" for "zero or more"
      doc txt & -h consistency: make "diff-tree" consistent
      doc txt & -h consistency: make "commit" consistent
      reflog doc: list real subcommands up-front
      worktree: define subcommand -h in terms of command -h
      doc txt & -h consistency: make "worktree" consistent
      tests: start asserting that *.txt SYNOPSIS matches -h output
      tests: assert consistent whitespace in -h output
      fsmonitor OSX: compile with DC_SHA1=YesPlease
      merge: remove always-the-same "verbose" arguments
      hook tests: fix redirection logic error in 96e7225b310
      submodule tests: reset "trace.out" between "grep" invocations
      run-command tests: test stdout of run_command_parallel()
      Makefile + shared.mak: rename and indent $(QUIET_SPATCH_T)
      cocci rules: remove unused "F" metavariable from pending rule
      Makefile: add ability to TAB-complete cocci *.patch rules
      Makefile: have "coccicheck" re-run if flags change
      Makefile: split off SPATCH_BATCH_SIZE comment from "cocci" heading
      cocci: split off include-less "tests" from SPATCH_FLAGS
      cocci: split off "--all-includes" from SPATCH_FLAGS
      cocci: make "coccicheck" rule incremental
      cocci: optimistically use COMPUTE_HEADER_DEPENDENCIES
      Makefile: copy contrib/coccinelle/*.cocci to build/
      cocci rules: remove <id>'s from rules that don't need them
      cocci: run against a generated ALL.cocci
      spatchcache: add a ccache-alike for "spatch"
      Makefile: always (re)set DC_SHA1 on fallback
      INSTALL: remove discussion of SHA-1 backends
      Makefile: correct DC_SHA1 documentation
      Makefile: create and use sections for "define" flag listing
      Makefile: rephrase the discussion of *_SHA1 knobs
      Makefile: document default SHA-256 backend
      Makefile: document SHA-1 and SHA-256 default and selection order
      Makefile & test-tool: replace "DC_SHA1" variable with a "define"
      Makefile: document default SHA-1 backend on OSX
      Makefile: discuss SHAttered in *_SHA{1,256} discussion
      submodule--helper: move "config" to a test-tool
      submodule tests: add tests for top-level flag output
      submodule--helper: fix a memory leak in "status"
      submodule tests: test for a "foreach" blind-spot
      submodule.c: refactor recursive block out of absorb function
      submodule API & "absorbgitdirs": remove "----recursive" option
      submodule--helper: remove --prefix from "absorbgitdirs"
      submodule--helper: drop "update --prefix <pfx>" for "-C <pfx> update"
      submodule--helper: use OPT_SUBCOMMAND() API
      revisions API: extend the nascent REV_INFO_INIT macro
      t7610: fix flaky timeout issue, don't clone from example.com
      Makefile: don't create a ".build/.build/" for cocci, fix output
      maintenance --unregister: fix uninit'd data use & -Wdeclaration-after-statement
      t7610: use "file:///dev/null", not "/dev/null", fixes MinGW

Đoàn Trần Công Danh (7):
      CodingGuidelines: allow grep -E
      t: remove \{m,n\} from BRE grep usage
      t: convert egrep usage to "grep -E"
      t: convert fgrep usage to "grep -F"
      bisect--helper: remove unused options
      bisect--helper: move all subcommands into their own functions
      bisect--helper: parse subcommand with OPT_SUBCOMMAND


Version v2.38.5; changes since v2.38.4:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (7):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()
      Makefile: force -O0 when compiling with SANITIZE=leak

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (20):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8
      Git 2.34.8
      Git 2.35.8
      Git 2.36.6
      Git 2.37.7
      Git 2.38.5

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.38.4; changes since v2.38.3:
---------------------------------------

Jeff King (3):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      http: support CURLOPT_PROTOCOLS_STR

Johannes Schindelin (9):
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6
      Git 2.33.7
      Git 2.34.7
      Git 2.35.7
      Git 2.36.5
      Git 2.37.6
      Git 2.38.4

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.38.3; changes since v2.38.2:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (9):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5
      Git 2.33.6
      Git 2.34.6
      Git 2.35.6
      Git 2.36.4
      Git 2.37.5
      Git 2.38.3

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.38.2; changes since v2.38.1:
---------------------------------------

Alejandro R. Sedeño (1):
      git-compat-util.h: GCC deprecated message arg only in GCC 4.5+

Alex Henrie (1):
      fsmonitor--daemon: don't translate literal commands

Derrick Stolee (1):
      bundle-uri: fix technical doc issues

Jeff Hostetler (1):
      config.mak.dev: disable suggest braces error on old clang versions

Jeff King (12):
      fsck: free tree buffers after walking unreachable objects
      fsck: turn off save_commit_buffer
      parse_object_buffer(): respect save_commit_buffer
      clone: allow "--bare" with "-o"
      remote: handle rename of remote without fetch refspec
      sequencer: detect author name errors in read_author_script()
      test-submodule: inline resolve_relative_url() function
      multi-pack-index: avoid writing to global in option callback
      commit: avoid writing to global in option callback
      attr: drop DEBUG_ATTR code
      dir: use fspathncmp() in pl_hashmap_cmp()
      Makefile: force -O0 when compiling with SANITIZE=leak

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Altmanninger (1):
      sequencer: avoid dropping fixup commit that targets self via commit-ish

Johannes Schindelin (4):
      merge-ort: fix segmentation fault in read-only repositories
      merge-ort: return early when failing to write a blob
      ci: avoid using deprecated {up,down}load-artifacts Action
      ci: use a newer `github-script` version

John Cai (1):
      tmp-objdir: skip clean up when handling a signal

Junio C Hamano (10):
      environ: document GIT_SSL_NO_VERIFY
      environ: explain Boolean environment variables
      environ: GIT_FLUSH should be made a usual Boolean
      environ: simplify description of GIT_INDEX_FILE
      environ: GIT_INDEX_VERSION affects not just a new repository
      branch: do not fail a no-op --edit-desc
      SubmittingPatches: use usual capitalization in the log message body
      Downmerge a handful of topics for 2.38.2
      Downmerge a bit more for 2.38.2
      Git 2.38.2

Noah Betzen (1):
      mergetool.txt: typofix 'overwriten' -> 'overwritten'

Oscar Dominguez (1):
      ci(main): upgrade actions/checkout to v3

Phillip Wood (3):
      mailinfo -b: fix an out of bounds access
      ssh signing: return an error when signature cannot be read
      t3435: remove redundant test case

René Scharfe (4):
      gc: simplify maintenance_task_pack_refs()
      t/lib-httpd: pass LANG and LC_ALL to Apache
      bisect--helper: plug strvec leak
      archive: deduplicate verbose printing

Rubén Justo (2):
      ref-filter.c: fix a leak in get_head_description
      branch: description for non-existent branch errors

Sergey Organov (3):
      diff-merges: cleanup func_by_opt()
      diff-merges: cleanup set_diff_merges()
      diff-merges: clarify log.diffMerges documentation

Taylor Blau (7):
      Documentation/git-multi-pack-index.txt: fix typo
      Documentation/git-multi-pack-index.txt: clarify expire behavior
      midx.c: prevent `expire` from removing the cruft pack
      midx.c: avoid cruft packs with `repack --batch-size=0`
      midx.c: replace `xcalloc()` with `CALLOC_ARRAY()`
      midx.c: remove unnecessary loop condition
      midx.c: avoid cruft packs with non-zero `repack --batch-size`

Victoria Dye (2):
      read-cache: avoid misaligned reads in index v4
      rebase --update-refs: avoid unintended ref deletion

Ævar Arnfjörð Bjarmason (9):
      test-lib: have SANITIZE=leak imply TEST_NO_MALLOC_CHECK
      CodingGuidelines: update for C99
      CodingGuidelines: mention dynamic C99 initializer elements
      CodingGuidelines: allow declaring variables in for loops
      CodingGuidelines: mention C99 features we can't use
      CodingGuidelines: recommend against unportable C99 struct syntax
      CI: upgrade to macos-12, and pin OSX version
      CI: don't explicitly pick "bash" shell outside of Windows, fix regression
      CI: migrate away from deprecated "set-output" syntax

Đoàn Trần Công Danh (1):
      Makefile: clarify runtime relative gitexecdir


Version v2.38.1; changes since v2.38.0:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (31):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      t3207: prepare for changing protocol.file.allow
      t5516: prepare for changing protocol.file.allow
      t5537: prepare for changing protocol.file.allow
      t7814: prepare for changing protocol.file.allow
      t3206: prepare for changing protocol.file.allow
      t5537: prepare for changing protocol.file.allow
      Git 2.30.6
      Git 2.31.5
      Git 2.32.4
      Git 2.33.5
      Git 2.34.5
      Git 2.35.5
      Git 2.36.3
      t7527: prepare for changing protocol.file.allow
      Git 2.37.4
      Git 2.38.1


Version v2.38.0; changes since v2.38.0-rc2:
-------------------------------------------

Alex Henrie (2):
      l10n: fr: don't say that merge is "the default strategy"
      l10n: es: update translation

Alexander Shopov (3):
      l10n: bg.po: Updated Bulgarian translation (5482t)
      l10n: bg.po: Updated Bulgarian translation (5484t)
      l10n: bg.po: Updated Bulgarian translation (5484t)

Bagas Sanjaya (3):
      l10n: po-id for 2.38 (round 1)
      l10n: po-id for 2.38 (round 2)
      l10n: po-id for 2.38 (round 3)

Emir SARI (3):
      l10n: tr: Update translations for v2.38.0 round #1
      l10n: tr: v2.38.0 round 2
      l10n: tr: v2.38.0 3rd round

Fangyi Zhou (2):
      l10n: zh_CN v2.38.0 rounds 1 & 2
      l10n: zh_CN: 2.38.0 round 3

Hubert Bossot (1):
      l10n: fr: The word 'branche' is only feminine

Jean-Noël Avila (3):
      l10n: fr: v2.38 round 1
      l10n: fr: v2.38.0 round 2
      l10n: fr: v2.38.0 round 3

Jordi Mas (3):
      l10n: Update Catalan translation
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.38

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (5482t0f0u)
      l10n: sv.po: Update Swedish translation (5484t0f0u)

Ralf Thielow (2):
      l10n: de.po: update German translation
      l10n: de.po: update German translation

Yi-Jyun Pan (1):
      l10n: zh_TW.po: Git 2.38.0, round 3


Version v2.38.0-rc2; changes since v2.38.0-rc1:
-----------------------------------------------

Alex Henrie (1):
      pack-bitmap: improve grammar of "xor chain" error message

Derrick Stolee (1):
      pack-bitmap: remove trace2 region from hot path

Jeff King (1):
      list-objects-filter: initialize sub-filter structs

Junio C Hamano (1):
      Git 2.38-rc2

Martin Ågren (1):
      cmd-list.perl: fix identifying man sections


Version v2.38.0-rc1; changes since v2.38.0-rc0:
-----------------------------------------------

Adam Dinwoodie (1):
      t1800: correct test to handle Cygwin

Alex Henrie (2):
      gc: don't translate literal commands
      builtin/diagnose.c: don't translate the two mode values

Elijah Conners (1):
      reftable: use a pointer for pq_entry param

Eric Sunshine (19):
      t: add skeleton chainlint.pl
      chainlint.pl: add POSIX shell lexical analyzer
      chainlint.pl: add POSIX shell parser
      chainlint.pl: add parser to validate tests
      chainlint.pl: add parser to identify test definitions
      chainlint.pl: validate test scripts in parallel
      chainlint.pl: don't require `return|exit|continue` to end with `&&`
      t/Makefile: apply chainlint.pl to existing self-tests
      chainlint.pl: don't require `&` background command to end with `&&`
      chainlint.pl: don't flag broken &&-chain if `$?` handled explicitly
      chainlint.pl: don't flag broken &&-chain if failure indicated explicitly
      chainlint.pl: complain about loops lacking explicit failure handling
      chainlint.pl: allow `|| echo` to signal failure upstream of a pipe
      t/chainlint: add more chainlint.pl self-tests
      test-lib: retire "lint harder" optimization hack
      test-lib: replace chainlint.sed with chainlint.pl
      t/Makefile: teach `make test` and `make prove` to run chainlint.pl
      t: retire unused chainlint.sed
      chainlint: colorize problem annotations and test delimiters

Fangyi Zhou (1):
      help: fix doubled words in explanation for developer interfaces

Jacob Stopak (2):
      Documentation: clean up a few misspelled word typos
      Documentation: clean up various typos in technical docs

Jeff King (4):
      list-objects-filter: don't memset after releasing filter struct
      list-objects-filter: handle null default filter spec
      list-objects-filter: add and use initializers
      list-objects-filter: convert filter_spec to a strbuf

Johannes Schindelin (2):
      git help: special-case `scalar`
      scalar: implement the `help` subcommand

Junio C Hamano (3):
      A bit more of remaining topics before -rc1
      Final batch before -rc1
      Git 2.38-rc1

Miaoqian Lin (1):
      commit-graph: Fix missing closedir in expire_commit_graphs

SZEDER Gábor (1):
      t/Makefile: remove 'test-results' on 'make clean'

Shaoxuan Yuan (10):
      t7002: add tests for moving from in-cone to out-of-cone
      mv: rename check_dir_in_index() to empty_dir_has_sparse_contents()
      mv: free the with_slash in check_dir_in_index()
      mv: check if <destination> is a SKIP_WORKTREE_DIR
      mv: remove BOTH from enum update_mode
      mv: from in-cone to out-of-cone
      mv: cleanup empty WORKING_DIRECTORY
      advice.h: add advise_on_moving_dirty_path()
      mv: check overwrite for in-to-out move
      builtin/mv.c: fix possible segfault in add_slash()

Todd Zullinger (2):
      docs: fix a few recently broken links
      api docs: link to html version of api-trace2

Victoria Dye (11):
      scalar: fix command documentation section header
      scalar: include in standard Git build & installation
      scalar: add to 'git help -a' command list
      scalar-clone: add test coverage
      t/perf: add Scalar performance tests
      t/perf: add 'GIT_PERF_USE_SCALAR' run option
      Documentation/technical: include Scalar technical doc
      diagnose.c: refactor to safely use 'd_type'
      Documentation: add ReviewingGuidelines
      diagnose: add to command-list.txt
      version: fix builtin linking & documentation

ZheNing Hu (1):
      ls-files: fix black space in error message


Version v2.38.0-rc0; changes since v2.37.7:
-------------------------------------------

Abhradeep Chakraborty (6):
      Documentation/technical: describe bitmap lookup table extension
      bitmap: move `get commit positions` code to `bitmap_writer_finish`
      pack-bitmap-write.c: write lookup table extension
      pack-bitmap-write: learn pack.writeBitmapLookupTable and add tests
      pack-bitmap: prepare to read lookup table extension
      bitmap-lookup-table: add performance tests for lookup table

Calvin Wan (1):
      submodule merge: update conflict error message

Carlos López (1):
      grep: add --max-count command line option

Christian Couder (1):
      Documentation: clarify whitespace rules for trailers

Derrick Stolee (40):
      branch: add branch_checked_out() helper
      branch: check for bisects and rebases
      fetch: use new branch_checked_out() and add tests
      branch: use branch_checked_out() when deleting refs
      branch: fix branch_checked_out() leaks
      pack-bitmap-write: use const for hashes
      midx: extract bitmap write setup
      midx: reduce memory pressure while writing bitmaps
      t2407: test bisect and rebase as black-boxes
      t2407: test branches currently using apply backend
      branch: consider refs under 'update-refs'
      rebase-interactive: update 'merge' description
      sequencer: define array with enum values
      sequencer: add update-ref command
      rebase: add --update-refs option
      rebase: update refs from 'update-ref' commands
      sequencer: rewrite update-refs as user edits todo list
      rebase: add rebase.updateRefs config option
      sequencer: ignore HEAD ref under --update-refs
      sequencer: notify user of --update-refs activity
      refs: allow "HEAD" as decoration filter
      t4207: modernize test
      t4207: test coloring of grafted decorations
      refs: add array of ref namespaces
      refs: use ref_namespaces for replace refs base
      log-tree: use ref_namespaces instead of if/else-if
      log: add default decoration filter
      log: add --clear-decorations option
      log: create log.initialDecorationSet=all
      maintenance: stop writing log.excludeDecoration
      fetch: use ref_namespaces during prefetch
      docs: document bundle URI standard
      bundle-uri: add example bundle organization
      remote-curl: add 'get' capability
      bundle-uri: create basic file-copy logic
      clone: add --bundle-uri option
      bundle-uri: add support for http(s):// and file://
      clone: --bundle-uri cannot be combined with --depth
      t6019: modernize tests with helper
      clone: warn on failure to repo_init()

Elijah Newren (36):
      merge-tree: rename merge_trees() to trivial_merge_trees()
      merge-tree: move logic for existing merge into new function
      merge-tree: add option parsing and initial shell for real merge function
      merge-tree: implement real merges
      merge-ort: split out a separate display_update_messages() function
      merge-tree: support including merge messages in output
      merge-ort: provide a merge_get_conflicted_files() helper function
      merge-ort: remove command-line-centric submodule message from merge-ort
      merge-tree: provide a list of which files have conflicts
      merge-tree: provide easy access to `ls-files -u` style info
      merge-ort: store more specific conflict information
      merge-ort: optionally produce machine-readable output
      merge-tree: allow `ls-files -u` style info to be NUL terminated
      merge-tree: add a --allow-unrelated-histories flag
      git-merge-tree.txt: add a section on potentional usage mistakes
      merge-ort-wrappers: make printed message match the one from recursive
      merge-resolve: abort if index does not match HEAD
      merge: abort if index does not match HEAD for trivial merges
      merge: do not abort early if one strategy fails to handle the merge
      merge: fix save_state() to work when there are stat-dirty files
      merge: make restore_state() restore staged state too
      merge: ensure we can actually restore pre-merge state
      merge: do not exit restore_state() prematurely
      merge-ort: remove translator lego in new "submodule conflict suggestion"
      merge-ort: avoid surprise with new sub_flag variable
      merge-ort: provide helpful submodule update message when possible
      merge-ort: remove code obsoleted by other changes
      rev-list-options.txt: fix simple typo
      revision: allow --ancestry-path to take an argument
      merge: cleanup confusing logic for handling successful merges
      merge: small code readability improvement
      t4301: add more interesting merge-tree testcases
      t64xx: convert 'test_create_repo' to 'git init'
      diff: have submodule_format logic avoid additional diff headers
      diff: fix filtering of additional headers under --remerge-diff
      diff: fix filtering of merge commits under --remerge-diff

Eric DeCosta (1):
      fsmonitor: option to allow fsmonitor to run against network-mounted repos

Eric Sunshine (6):
      t2407: fix broken &&-chains in compound statement
      t1092: fix buggy sparse "blame" test
      t: detect and signal failure within loop
      t4301: account for behavior differences between sed implementations
      t4301: fix broken &&-chains and add missing loop termination
      t4301: emit blank line in more idiomatic fashion

Glen Choo (15):
      submodule--helper: eliminate internal "--update" option
      submodule--helper tests: add missing "display path" coverage
      submodule--helper update: use display path helper
      submodule--helper: don't recreate recursive prefix
      submodule--helper: use correct display path helper
      submodule--helper update: use --super-prefix
      submodule--helper: remove display path helper
      Documentation/git-config.txt: add SCOPES section
      Documentation: define protected configuration
      config: learn `git_protected_config()`
      safe.directory: use git_protected_config()
      setup.c: create `safe.bareRepository`
      config.c: NULL check when reading protected config
      submodule--helper: add "const" to copy of "update_data"
      submodule--helper: refactor "errmsg_str" to be a "struct strbuf"

Han Xin (4):
      unpack-objects: low memory footprint for get_data() in dry_run mode
      object-file.c: refactor write_loose_object() to several steps
      object-file.c: add "stream_loose_object()" to handle large object
      unpack-objects: use stream_loose_object() to unpack large objects

Jacob Keller (1):
      remote: handle negative refspecs in git remote show

Jacob Stopak (1):
      Documentation: fix various repeat word typos

Jaydeep Das (1):
      gpg-interface: add function for converting trust level to string

Jeff King (43):
      is_promisor_object(): walk promisor packs in pack-order
      fetch: stop passing around unused worktrees variable
      branch: drop unused worktrees variable
      ref-filter: disable save_commit_buffer while traversing
      write_midx_bitmap(): drop unused refs_snapshot parameter
      git-compat-util: add UNUSED macro
      refs: mark unused each_ref_fn parameters
      refs: mark unused reflog callback parameters
      refs: mark unused virtual method parameters
      transport: mark bundle transport_options as unused
      streaming: mark unused virtual method parameters
      config: mark unused callback parameters
      hashmap: mark unused callback parameters
      mark unused read_tree_recursive() callback parameters
      run-command: mark unused async callback parameters
      is_path_owned_by_current_uid(): mark "report" parameter as unused
      xdiff: drop unused mmfile parameters from xdl_do_histogram_diff()
      log-tree: drop unused commit param in remerge_diff()
      match_pathname(): drop unused "flags" parameter
      verify_one_sparse(): drop unused parameters
      reftable: drop unused parameter from reader_seek_linear()
      reflog: assert PARSE_OPT_NONEG in parse-options callbacks
      xdiff: drop unused mmfile parameters from xdl_do_patience_diff()
      pass subcommand "prefix" arguments to parse_options()
      maintenance: add parse-options boilerplate for subcommands
      remote: run "remote rm" argv through parse_options()
      pack-bitmap-write: drop unused pack_idx_entry parameters
      tempfile: drop active flag
      tempfile: update comment describing state transitions
      test-crontab: minor memory and error handling fixes
      lookup_commit_in_graph(): use prepare_commit_graph() to check for graph
      rev-list: disable commit graph with --verify-objects
      parse_object(): allow skipping hash check
      upload-pack: skip parse-object re-hashing of "want" objects
      parse_object(): check commit-graph when skip_hash set
      t1060: check partial clone of misnamed blob
      list_objects_filter_copy(): deep-copy sparse_oid_name field
      transport: deep-copy object-filter struct for fetch-pack
      transport: free filter options in disconnect_git()
      list_objects_filter_options: plug leak of filter_spec strings
      prepare_repo_settings(): plug leak of config values
      fetch: stop checking for NULL transport->remote in do_fetch()
      fetch: add branch.*.merge to default ref-prefix extension

Johannes Schindelin (14):
      merge-ort: store messages in a list, not in a single strbuf
      merge-ort: make `path_messages` a strmap to a string_list
      t5351: avoid relying on `core.fsyncMethod = batch` to be supported
      t5351: avoid using `test_cmp` for binary data
      scalar unregister: stop FSMonitor daemon
      range-diff: reorder argument handling
      range-diff: consistently validate the arguments
      range-diff: optionally accept pathspecs
      add -p: avoid ambiguous signed/unsigned comparison
      t3701: test the built-in `add -i` regardless of NO_PERL
      t6132(NO_PERL): do not run the scripted `add -p`
      add -p: detect more mismatches between plain vs colored diffs
      add -p: gracefully handle unparseable hunk headers in colored diffs
      add -p: ignore dirty submodules

Jonathan Tan (1):
      fetch-pack: write effective filter to trace2

Josh Steadmon (1):
      fetch-pack: add tracing for negotiation rounds

Julien Rouhaud (1):
      gitweb: remove title shortening heuristics

Junio C Hamano (30):
      A regression fix for 2.37
      builtin/mv.c: use the MOVE_ARRAY() macro instead of memmove()
      The first batch after Git 2.37
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      The eighth batch
      The ninth batch
      doc: consolidate --rerere-autoupdate description
      doc: clarify rerere-autoupdate
      The tenth batch
      The eleventh batch
      The twelfth batch
      The thirteenth batch
      The fourteenth batch
      t5329: notice a failure within a loop
      The fifteenth batch
      pretty: separate out the logic to decide the use of in-body from
      format-patch: allow forcing the use of in-body From: header
      format-patch: learn format.forceInBodyFrom configuration variable
      The sixteenth batch
      The seventeenth batch
      The eighteenth batch
      The nineteenth batch
      The twentieth batch
      Prepare for 2.38-rc0
      Git 2.38-rc0

Justin Donnelly (1):
      git-prompt: show presence of unresolved conflicts at command prompt

Kyle Zhao (1):
      send-pack.c: add config push.useBitmaps

Li Linchao (2):
      remote-curl: send Accept-Language header to server
      rev-list: support human-readable output for `--disk-usage`

Linus Torvalds (1):
      symbolic-ref: refuse to set syntactically invalid target

Matheus Tavares (3):
      t0021: avoid grepping for a Perl-specific string at filter output
      t0021: implementation the rot13-filter.pl script in C
      tests: use the new C rot13-filter helper to avoid PERL prereq

Matthew John Cheetham (1):
      scalar: enable built-in FSMonitor on `register`

Michael J Gruber (3):
      sequencer: do not translate reflog messages
      sequencer: do not translate parameters to error_resolve_conflict()
      sequencer: do not translate command names

Moritz Baumann (2):
      git-p4: fix typo in P4Submit.applyCommit()
      git-p4: fix error handling in P4Unshelve.renameBranch()

Phillip Wood (4):
      xdiff: introduce XDL_ALLOC_ARRAY()
      xdiff: introduce xdl_calloc
      xdiff: introduce XDL_CALLOC_ARRAY()
      xdiff: introduce XDL_ALLOC_GROW()

René Scharfe (24):
      archive: update format documentation
      archive: rename archiver data field to filter_command
      archive-tar: factor out write_block()
      archive-tar: add internal gzip implementation
      archive-tar: use OS_CODE 3 (Unix) for internal gzip
      archive-tar: use internal gzip by default
      cocci: avoid normalization rules for memcpy
      mergesort: unify ranks loops
      mergesort: tighten merge loop
      mergesort: add macros for typed sort of linked lists
      test-mergesort: use DEFINE_LIST_SORT_DEBUG
      test-mergesort: use DEFINE_LIST_SORT
      blame: use DEFINE_LIST_SORT
      commit: use DEFINE_LIST_SORT
      fetch-pack: use DEFINE_LIST_SORT
      packfile: use DEFINE_LIST_SORT
      mergesort: remove llist_mergesort()
      tempfile: avoid directory cleanup race
      test-mergesort: read sort input all at once
      test-mergesort: use mem_pool for sort input
      diff-no-index: release strbuf on queue error
      diff-no-index: release prefixed filenames
      diff-no-index: simplify argv index calculation
      add -p: fix worktree patch mode prompts

SZEDER Gábor (27):
      Makefile: build 'gitweb' in the default target
      multi-pack-index: simplify handling of unknown --options
      git.c: update NO_PARSEOPT markings
      t3301-notes.sh: check that default operation mode doesn't take arguments
      t5505-remote.sh: check the behavior without a subcommand
      t0040-parse-options: test parse_options() with various 'parse_opt_flags'
      api-parse-options.txt: fix description of OPT_CMDMODE
      parse-options: PARSE_OPT_KEEP_UNKNOWN only applies to --options
      parse-options: clarify the limitations of PARSE_OPT_NODASH
      parse-options: drop leading space from '--git-completion-helper' output
      parse-options: add support for parsing subcommands
      builtin/bundle.c: let parse-options parse subcommands
      builtin/commit-graph.c: let parse-options parse subcommands
      builtin/gc.c: let parse-options parse 'git maintenance's subcommands
      builtin/hook.c: let parse-options parse subcommands
      builtin/multi-pack-index.c: let parse-options parse subcommands
      builtin/notes.c: let parse-options parse subcommands
      builtin/reflog.c: let parse-options parse subcommands
      builtin/remote.c: let parse-options parse subcommands
      builtin/sparse-checkout.c: let parse-options parse subcommands
      builtin/stash.c: let parse-options parse subcommands
      builtin/worktree.c: let parse-options parse subcommands
      t0040-parse-options: remove leftover debugging
      test-parse-options.c: don't use for loop initial declaration
      test-parse-options.c: fix style of comparison with zero
      notes: simplify default operation mode arguments check
      notes, remote: show unknown subcommands between `'

Shaoxuan Yuan (12):
      t7002: add tests for moving out-of-cone file/directory
      t1092: mv directory from out-of-cone to in-cone
      mv: update sparsity after moving from out-of-cone to in-cone
      mv: decouple if/else-if checks using goto
      mv: check if out-of-cone file exists in index with SKIP_WORKTREE bit
      mv: check if <destination> exists in index to handle overwriting
      mv: use flags mode for update_mode
      mv: add check_dir_in_index() and solve general dir check issue
      t1092: add tests for `git-rm`
      pathspec.h: move pathspec_needs_expanded_index() from reset.c to here
      rm: expand the index only when necessary
      rm: integrate with sparse-index

Siddharth Asthana (4):
      revision: improve commit_rewrite_person()
      ident: move commit_rewrite_person() to ident.c
      ident: rename commit_rewrite_person() to apply_mailmap_to_header()
      cat-file: add mailmap support

Taylor Blau (10):
      commit-graph: pass repo_settings instead of repository
      t1006: extract --batch-command inputs to variables
      builtin/cat-file.c: support NUL-delimited input with `-z`
      t5326: demonstrate potential bitmap corruption
      t/lib-bitmap.sh: avoid silencing stderr
      midx.c: extract `struct midx_fanout`
      midx.c: extract `midx_fanout_add_midx_fanout()`
      midx.c: extract `midx_fanout_add_pack_fanout()`
      midx.c: include preferred pack correctly with existing MIDX
      midx.c: avoid adding preferred objects twice

Teng Long (8):
      pack-bitmap.c: fix formatting of error messages
      pack-bitmap.c: mark more strings for translations
      pack-bitmap.c: rename "idx_name" to "bitmap_name"
      pack-bitmap.c: do not ignore error when opening a bitmap file
      pack-bitmap.c: using error() instead of silently returning -1
      pack-bitmap.c: continue looping when first MIDX bitmap is found
      api-trace2.txt: print config key-value pair
      tr2: shows scope unconditionally in addition to key-value pair

Victoria Dye (22):
      scalar: reword command documentation to clarify purpose
      scalar: convert README.md into a technical design doc
      scalar-diagnose: use "$GIT_UNZIP" in test
      scalar-diagnose: avoid 32-bit overflow of size_t
      scalar-diagnose: add directory to archiver more gently
      scalar-diagnose: move 'get_disk_info()' to 'compat/'
      scalar-diagnose: move functionality to common location
      diagnose.c: add option to configure archive contents
      builtin/diagnose.c: create 'git diagnose' builtin
      builtin/diagnose.c: add '--mode' option
      builtin/bugreport.c: create '--diagnose' option
      scalar-diagnose: use 'git diagnose --mode=all'
      scalar: update technical doc roadmap
      scalar: constrain enlistment search
      scalar-unregister: handle error codes greater than 0
      scalar-[un]register: clearly indicate source of error
      scalar-delete: do not 'die()' in 'delete_enlistment()'
      scalar: move config setting logic into its own function
      scalar: update technical doc roadmap with FSMonitor support
      p0004: fix prereq declaration
      p0006: fix 'read-tree' argument ordering
      unpack-trees: fix sparse directory recursion check

ZheNing Hu (1):
      ls-files: introduce "--format" option

brian m. carlson (2):
      sha256: add support for Nettle
      gc: use temporary file for editing crontab

Ævar Arnfjörð Bjarmason (149):
      t0008: don't rely on default ".git/info/exclude"
      tests: don't depend on template-created .git/branches
      tests: don't assume a .git/info for .git/info/grafts
      tests: don't assume a .git/info for .git/info/attributes
      tests: don't assume a .git/info for .git/info/refs
      tests: don't assume a .git/info for .git/info/exclude
      tests: don't assume a .git/info for .git/info/sparse-checkout
      object-file.c: factor out deflate part of write_loose_object()
      core doc: modernize core.bigFileThreshold documentation
      git-submodule.sh: remove unused sanitize_submodule_env()
      git-submodule.sh: remove unused $prefix variable
      git-submodule.sh: make the "$cached" variable a boolean
      git-submodule.sh: remove unused top-level "--branch" argument
      submodule--helper: have --require-init imply --init
      submodule update: remove "-v" option
      submodule--helper: rename "absorb-git-dirs" to "absorbgitdirs"
      submodule--helper: report "submodule" as our name in some "-h" output
      submodule--helper: understand --checkout, --merge and --rebase synonyms
      git-submodule.sh: use "$quiet", not "$GIT_QUIET"
      git-sh-setup.sh: remove "say" function, change last users
      gitweb/Makefile: define all .PHONY prerequisites inline
      gitweb/Makefile: add a $(GITWEB_ALL) variable
      gitweb/Makefile: clear up and de-duplicate the gitweb.{css,js} vars
      gitweb/Makefile: prepare to merge into top-level Makefile
      gitweb: remove "test" and "test-installed" targets
      gitweb/Makefile: include in top-level Makefile
      gitweb/Makefile: add a "NO_GITWEB" parameter
      submodule--helper: remove unused SUPPORT_SUPER_PREFIX flags
      check-ref-format: fix trivial memory leak
      clone: fix memory leak in wanted_peer_refs()
      submodule.c: free() memory from xgetcwd()
      revert: free "struct replay_opts" members
      cat-file: fix a memory leak in --batch-command mode
      merge-file: refactor for subsequent memory leak fix
      merge-file: fix memory leaks on error path
      checkout: avoid "struct unpack_trees_options" leak
      gc: fix a memory leak
      cat-file: fix a common "struct object_context" memory leak
      pull: fix a "struct oid_array" memory leak
      test-tool test-hash: fix a memory leak
      test-tool path-utils: fix a memory leak
      test-tool {dump,scrap}-cache-tree: fix memory leaks
      test-tool urlmatch-normalization: fix a memory leak
      test-tool regex: call regfree(), fix memory leaks
      test-tool json-writer: fix memory leaks
      test-tool bloom: fix memory leaks
      test-tool ref-store: fix a memory leak
      test-tool delta: fix a memory leak
      Makefile: remove mandatory "spatch" arguments from SPATCH_FLAGS
      Makefile & .gitignore: ignore & clean "git.res", not "*.res"
      cocci: add a "coccicheck-test" target and test *.cocci rules
      cocci: have "coccicheck{,-pending}" depend on "coccicheck-test"
      cocci: add and apply a rule to find "unused" strbufs
      cocci: generalize "unused" rule to cover more than "strbuf"
      trace2: only include "fsync" events if we git_fsync()
      test-lib: use $1, not $@ in test_known_broken_{ok,failure}_
      test-lib: don't set GIT_EXIT_OK before calling test_atexit_handler
      test-lib: fix GIT_EXIT_OK logic errors, use BAIL_OUT
      test-lib: add a --invert-exit-code switch
      t/README: reword the "GIT_TEST_PASSING_SANITIZE_LEAK" description
      test-lib: add a SANITIZE=leak logging mode
      t/Makefile: don't remove test-results in "clean-except-prove-cache"
      tests: move copy/pasted PERL + Test::More checks to a lib-perl.sh
      test-lib: simplify by removing test_external
      test-lib: add a GIT_TEST_PASSING_SANITIZE_LEAK=check mode
      test-lib: have the "check" mode for SANITIZE=leak consider leak logs
      leak tests: don't skip some tests under SANITIZE=leak
      leak tests: mark passing SANITIZE=leak tests as leak-free
      upload-pack: fix a memory leak in create_pack_file()
      CI: use "GIT_TEST_SANITIZE_LEAK_LOG=true" in linux-leaks
      bisect.c: add missing "goto" for release_revisions()
      test-fast-rebase helper: use release_revisions() (again)
      log: fix a memory leak in "git show <revision>..."
      log: refactor "rev.pending" code in cmd_show()
      bisect.c: partially fix bisect_rev_setup() memory leak
      revisions API: don't leak memory on argv elements that need free()-ing
      help.c: refactor drop_prefix() to use a "switch" statement"
      help.c: remove common category behavior from drop_prefix() behavior
      git help doc: use "<doc>" instead of "<guide>"
      git docs: add a category for user-facing file, repo and command UX
      git docs: add a category for file formats, protocols and interfaces
      docs: move commit-graph format docs to man section 5
      docs: move protocol-related docs to man section 5
      docs: move index format docs to man section 5
      docs: move signature docs to man section 5
      docs: move pack format docs to man section 5
      docs: move cruft pack docs to gitformat-pack
      docs: move http-protocol docs to man section 5
      Makefile + hash.h: remove PPC_SHA1 implementation
      Makefile: use $(OBJECTS) instead of $(C_OBJ)
      git-compat-util.h: use "UNUSED", not "UNUSED(var)"
      git-compat-util.h: use "deprecated" for UNUSED variables
      submodule tests: test usage behavior
      submodule tests: test for "add <repository> <abs-path>"
      submodule--helper: remove unused "name" helper
      submodule--helper: remove unused "list" helper
      test-tool submodule-config: remove unused "--url" handling
      submodule--helper: move "is-active" to a test-tool
      submodule--helper: move "check-name" to a test-tool
      submodule--helper: move "resolve-relative-url-test" to a test-tool
      submodule--helper style: don't separate declared variables with \n\n
      submodule--helper style: add \n\n after variable declarations
      submodule--helper: replace memset() with { 0 }-initialization
      submodule--helper: use xstrfmt() in clone_submodule()
      submodule--helper: move "sb" in clone_submodule() to its own scope
      submodule--helper: add "const" to passed "module_clone_data"
      submodule--helper: add "const" to passed "struct update_data"
      submodule--helper: don't redundantly check "else if (res)"
      submodule--helper: rename "int res" to "int ret"
      submodule--helper: return "ret", not "1" from update_submodule()
      submodule--helper: add missing braces to "else" arm
      submodule--helper: don't call submodule_strategy_to_string() in BUG()
      submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string()
      submodule--helper: use "code" in run_update_command()
      submodule--helper: don't exit() on failure, return
      submodule--helper: libify determine_submodule_update_strategy()
      submodule--helper: libify "must_die_on_failure" code paths
      submodule--helper update: don't override 'checkout' exit code
      submodule--helper: libify "must_die_on_failure" code paths (for die)
      submodule--helper: check repo{_submodule,}_init() return values
      submodule--helper: libify more "die" paths for module_update()
      submodule--helper: libify even more "die" paths for module_update()
      submodule--helper: fix bad config API usage
      submodule--helper: fix a leak in "clone_submodule"
      submodule--helper: fix trivial get_default_remote_submodule() leak
      submodule--helper: fix most "struct pathspec" memory leaks
      submodule--helper: "struct pathspec" memory leak in module_update()
      submodule--helper: don't leak {run,capture}_command() cp.dir argument
      submodule--helper: add and use *_release() functions
      submodule--helper: fix "errmsg_str" memory leak
      submodule--helper: fix "sm_path" and other "module_cb_list" leaks
      submodule--helper: fix a leak with repo_clear()
      submodule--helper: fix a memory leak in get_default_remote_submodule()
      submodule--helper: fix "reference" leak
      submodule--helper: fix obscure leak in module_add()
      submodule--helper: fix a leak in module_add()
      submodule--helper: fix a memory leak in print_status()
      submodule--helper: free some "displaypath" in "struct update_data"
      submodule--helper: free rest of "displaypath" in "struct update_data"
      submodule--helper: fix a configure_added_submodule() leak
      docs: add and use include template for config/* includes
      grep docs: de-duplicate configuration sections
      send-email docs: de-duplicate configuration sections
      apply docs: de-duplicate configuration sections
      notes docs: de-duplicate and combine configuration sections
      difftool docs: de-duplicate configuration sections
      log docs: de-duplicate configuration sections
      docs: add CONFIGURATION sections that map to a built-in
      docs: add CONFIGURATION sections that fuzzy map to built-ins

Øystein Walle (1):
      rev-parse --parseopt: detect missing opt-spec


Version v2.37.7; changes since v2.37.6:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (7):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()
      Makefile: force -O0 when compiling with SANITIZE=leak

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (19):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8
      Git 2.34.8
      Git 2.35.8
      Git 2.36.6
      Git 2.37.7

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.37.6; changes since v2.37.5:
---------------------------------------

Jeff King (3):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      http: support CURLOPT_PROTOCOLS_STR

Johannes Schindelin (8):
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6
      Git 2.33.7
      Git 2.34.7
      Git 2.35.7
      Git 2.36.5
      Git 2.37.6

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.37.5; changes since v2.37.4:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (8):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5
      Git 2.33.6
      Git 2.34.6
      Git 2.35.6
      Git 2.36.4
      Git 2.37.5

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.37.4; changes since v2.37.3:
---------------------------------------

Anthony Delannoy (1):
      preload-index: fix memleak

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Elijah Newren (1):
      merge: only apply autostash when appropriate

Jeff King (8):
      is_promisor_object(): fix use-after-free of tree buffer
      compat: add function to enable nonblocking pipes
      git-compat-util: make MAX_IO_SIZE define globally available
      pipe_command(): avoid xwrite() for writing to pipe
      pipe_command(): handle ENOSPC when writing to a pipe
      pipe_command(): mark stdin descriptor as non-blocking
      shell: add basic tests
      shell: limit size of interactive commands

Junio C Hamano (1):
      Merge a handful of topics from the 'master' front

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

René Scharfe (1):
      nonblock: support Windows

SZEDER Gábor (1):
      promisor-remote: fix xcalloc() argument order

Taylor Blau (30):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      t3207: prepare for changing protocol.file.allow
      t5516: prepare for changing protocol.file.allow
      t5537: prepare for changing protocol.file.allow
      t7814: prepare for changing protocol.file.allow
      t3206: prepare for changing protocol.file.allow
      t5537: prepare for changing protocol.file.allow
      Git 2.30.6
      Git 2.31.5
      Git 2.32.4
      Git 2.33.5
      Git 2.34.5
      Git 2.35.5
      Git 2.36.3
      t7527: prepare for changing protocol.file.allow
      Git 2.37.4


Version v2.37.3; changes since v2.37.2:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      cmake: support local installations of git

Felipe Contreras (7):
      mergetools: vimdiff: fix comment
      mergetools: vimdiff: make vimdiff3 actually work
      mergetools: vimdiff: silence annoying messages
      mergetools: vimdiff: fix for diffopt
      mergetools: vimdiff: rework tab logic
      mergetools: vimdiff: fix single window layouts
      mergetools: vimdiff: simplify tabfirst

Glen Choo (1):
      Documentation/git-reflog: remove unneeded \ from \{

Jeff King (4):
      config.mak.dev: squelch -Wno-missing-braces for older gcc
      tree-walk: add a mechanism for getting non-canonicalized modes
      fsck: actually detect bad file modes in trees
      fsck: downgrade tree badFilemode to "info"

Johannes Schindelin (11):
      windows: include the Python bits when building Git for Windows
      mingw: remove unneeded `NO_GETTEXT` directive
      mingw: remove unneeded `NO_CURL` directive
      lstat(mingw): correctly detect ENOTDIR scenarios
      merge-ort: clean up after failed merge
      merge-ort: do leave trace2 region even if checkout fails
      setup: fix some formatting
      setup: prepare for more detailed "dubious ownership" messages
      mingw: provide details about unsafe directories' ownership
      mingw: be more informative when ownership check fails on FAT32
      mingw: handle a file owned by the Administrators group correctly

Junio C Hamano (2):
      A handful more topics from the 'master' front for 2.37.3
      Git 2.37.3

Philip Oakley (1):
      doc add: renormalize is not idempotent for CRCRLF

Phillip Wood (1):
      tests: cache glibc version check

Victoria Dye (4):
      checkout: fix nested sparse directory diff in sparse index
      oneway_diff: handle removed sparse directories
      cache.h: create 'index_name_pos_sparse()'
      unpack-trees: unpack new trees as sparse directories

Ævar Arnfjörð Bjarmason (1):
      hook API: don't segfault on strbuf_addf() to NULL "out"


Version v2.37.2; changes since v2.37.1:
---------------------------------------

Abhradeep Chakraborty (3):
      bitmap-format.txt: feed the file to asciidoc to generate html
      bitmap-format.txt: fix some formatting issues
      bitmap-format.txt: add information for trailing checksum

Celeste Liu (1):
      contrib/rerere-train: avoid useless gpg sign in training

Cleber Rosa (1):
      setup: fix function name in a BUG() message

Derrick Stolee (9):
      t5510: replace 'origin' with URL more carefully
      vscode: improve tab size and wrapping
      git-rebase.txt: use back-ticks consistently
      daemon: clarify directory arguments
      git-cvsserver: clarify directory list
      git.txt: remove redundant language
      t: avoid "whitelist"
      transport.c: avoid "whitelist"
      compat/win32: correct for incorrect compiler warning

Dimitriy Ryazantcev (1):
      i18n: mark message helpers prefix for translation

Elijah Newren (6):
      t6429: fix use of non-existent function
      t6423: add tests of dual directory rename plus add/add conflict
      merge-ort: small cleanups of check_for_directory_rename
      merge-ort: make a separate function for freeing struct collisions
      merge-ort: shuffle the computation and cleanup of potential collisions
      merge-ort: fix issue with dual rename and add/add conflict

Fernando Ramos (1):
      vimdiff: make layout engine more robust against user vim settings

Goss Geppert (2):
      dir: traverse into repository
      dir: minor refactoring / clean-up

Han Xin (2):
      commit-graph.c: no lazy fetch in lookup_commit_in_graph()
      t5330: remove run_with_limited_processses()

Jeff King (6):
      revisions.txt: escape "..." to avoid asciidoc horizontal ellipsis
      clone: drop extra newline from warning message
      clone: propagate empty remote HEAD even with other branches
      clone: use remote branch if it matches default HEAD
      clone: move unborn head creation to update_head()
      diff-files: move misplaced cleanup label

Johannes Schindelin (3):
      tests: fix incorrect --write-junit-xml code
      mergetool(vimdiff): allow paths to contain spaces again
      shortlog: use a stable sort

Junio C Hamano (6):
      revision: mark blobs needed for resolve-undo as reachable
      fsck: do not dereference NULL while checking resolve-undo data
      builtin/remote.c: use the right kind of STRING_LIST_INIT
      Downmerge a handful of fixes for 2.37.x maintenance track
      Downmerge a bit more for 2.37.x
      Git 2.37.2

Kilian Kilger (2):
      git-p4: fix bug with encoding of p4 client name
      git-p4: refactoring of p4CmdList()

Lessley Dennington (1):
      osx-keychain: fix compiler warning

Li Linchao (1):
      ls-files: update test style

Manuel Boni (1):
      config.txt: document include, includeIf

Martin Ågren (3):
      config/core.txt: fix minor issues for `core.sparseCheckoutCone`
      t4200: drop irrelevant code
      read-cache: make `do_read_index()` always set up `istate->repo`

Matheus Tavares (4):
      checkout: document bug where delayed checkout counts entries twice
      checkout: show bug about failed entries being included in final report
      checkout: fix two bugs on the final count of updated entries
      pkt-line.h: move comment closer to the associated code

Moritz Baumann (1):
      git-p4: fix CR LF handling for utf16 files

Philippe Blain (3):
      diff-format.txt: dst can be 0* SHA-1 when path is deleted, too
      diff-format.txt: correct misleading wording
      diff-index.txt: update raw output format in examples

René Scharfe (3):
      combine-diff: abort if --ignore-matching-lines is given
      combine-diff: abort if --output is given
      mingw: avoid mktemp() in mkstemp() implementation

Richard Oliver (1):
      mktree: do not check type of remote objects

SZEDER Gábor (1):
      index-format.txt: remove outdated list of supported extensions

Tao Klerks (1):
      rev-parse: documentation adjustment - mention remote tracking with @{u}

Taylor Blau (4):
      pack-objects.h: remove outdated pahole results
      t5318: demonstrate commit-graph generation v2 corruption
      commit-graph: introduce `repo_find_commit_pos_in_graph()`
      commit-graph: fix corrupt upgrade from generation v1 to v2

Ævar Arnfjörð Bjarmason (3):
      tests: add missing double quotes to included library paths
      test-lib.sh: fix prepend_var() quoting issue
      config tests: fix harmless but broken "rm -r" cleanup


Version v2.37.1; changes since v2.37.0:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      setup: tighten ownership checks post CVE-2022-24765

Johannes Schindelin (8):
      Git 2.30.5
      Git 2.31.4
      Git 2.32.3
      Git 2.33.4
      Git 2.34.4
      Git 2.35.4
      Git 2.36.2
      add --interactive: allow `update` to stage deleted files

Junio C Hamano (1):
      Git 2.37.1


Version v2.37.0; changes since v2.37.0-rc2:
-------------------------------------------

Alex Henrie (1):
      l10n: es: update translation

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5367t)

Arthur Milchior (1):
      l10n: README: fix typo

Bagas Sanjaya (1):
      l10n: po-id for 2.37 (first batch)

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Emir SARI (1):
      l10n: tr: v2.37.0 round #1

Fangyi Zhou (1):
      l10n: zh_CN: v2.37.0 round 1

Jean-Noël Avila (1):
      l10n: fr v2.37 round 1

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.37

Matthias Rüster (2):
      l10n: de.po: Update German translation
      l10n: TEAMS: Change German translation team leader

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5367t0f0u)

René Scharfe (1):
      revert: config documentation fixes

Taylor Blau (1):
      Documentation/config/transfer.txt: fix typo

Trần Ngọc Quân (1):
      l10n: vi(5367t): Updated translation

Yi-Jyun Pan (1):
      l10n: zh_TW: v2.37.0 round 1


Version v2.37.0-rc2; changes since v2.37.0-rc1:
-----------------------------------------------

Alexander Shopov (1):
      name-rev: prefix annotate-stdin with '--' in message

Joakim Petersen (2):
      git-prompt: make colourization consistent
      git-prompt: fix expansion of branch colour codes

Junio C Hamano (1):
      Git 2.37-rc2

René Scharfe (1):
      gc: simplify --cruft description


Version v2.37.0-rc1; changes since v2.37.0-rc0:
-----------------------------------------------

Carlo Marcelo Arenas Belón (1):
      git-compat-util: allow root to access both SUDO_UID and root owned

Derrick Stolee (4):
      t2107: test 'git update-index --verbose'
      t5329: test 'git gc --cruft' without '--prune=now'
      pack-write: drop always-NULL parameter
      cache-tree: remove cache_tree_find_path()

Fabian Stelzer (1):
      gpg docs: explain better use of ssh.defaultKeyCommand

Fangyi Zhou (2):
      push: fix capitalisation of the option name autoSetupMerge
      builtin/rebase: remove a redundant space in l10n string

Jeff King (2):
      perf-lib: fix missing test titles in output
      bug_fl(): correctly initialize trace2 va_list

Jiang Xin (1):
      i18n: fix mismatched camelCase config variables

Johannes Schindelin (9):
      ci(github): bring back the 'print test failures' step
      ci(github): use grouping also in the `win-build` job
      ci(github): also mark up compile errors
      fsmonitor: avoid memory leak in `fsm_settings__get_incompatible_msg()`
      submodule-config: avoid memory leak
      submodule--helper: avoid memory leak when fetching submodules
      read_index_from(): avoid memory leak
      pack-mtimes: avoid closing a bogus file descriptor
      relative_url(): fix incorrect condition

Junio C Hamano (6):
      revert: optionally refer to commit in the "reference" format
      revert: --reference should apply only to 'revert', not 'cherry-pick'
      cocci: retire is_null_sha1() rule
      Fixes and updates post -rc0
      Another batch of fixes before -rc1
      Git 2.37-rc1

Philip Oakley (4):
      rebase.c: state preserve-merges has been removed
      rebase: help users when dying with `preserve-merges`
      rebase: note `preserve` merges may be a pull config option
      rebase: translate a die(preserve-merges) message

Ævar Arnfjörð Bjarmason (4):
      add -i tests: mark "TODO" depending on GIT_TEST_ADD_I_USE_BUILTIN
      fetch doc: note "pushurl" caveat about "credentialsInUrl", elaborate
      transfer doc: move fetch.credentialsInUrl to "transfer" config namespace
      tests: add LIBCURL prerequisite to tests needing libcurl


Version v2.37.0-rc0; changes since v2.36.6:
-------------------------------------------

Abhradeep Chakraborty (1):
      builtin/remote.c: teach `-v` to list filters for promisor remotes

Alex Henrie (1):
      convert: clarify line ending conversion warning

COGONI Guillaume (2):
      contrib/vscode/: debugging with VS Code and gdb
      Documentation/ToolsForGit.txt: Tools for developing Git

Carlo Marcelo Arenas Belón (1):
      reftable: avoid undefined behaviour breaking t0032

Chris Down (2):
      bisect: output state before we are ready to compute bisection
      bisect: output bisect setup status in bisect log

Christian Couder (1):
      http: add custom hostname to IP address resolutions

Derrick Stolee (21):
      clone: die() instead of BUG() on bad refs
      t1092: add compatibility tests for 'git show'
      show: integrate with the sparse index
      object-name: reject trees found in the index
      object-name: diagnose trees in index properly
      rev-parse: integrate with sparse index
      http: make http_get_file() external
      remote: move relative_url()
      remote: allow relative_url() to return an absolute url
      object-file: convert 'switch' back to 'if'
      t1092: refactor 'sparse-index contents' test
      t1092: stress test 'git sparse-checkout set'
      sparse-index: create expand_index()
      sparse-index: introduce partially-sparse indexes
      cache-tree: implement cache_tree_find_path()
      sparse-checkout: --no-sparse-index needs a full index
      sparse-index: partially expand directories
      sparse-index: complete partial expansion
      p2000: add test for 'git sparse-checkout [add|set]'
      sparse-checkout: integrate with sparse index
      remote: create fetch.credentialsInUrl config

Edmundo Carmona Antoranz (2):
      blame: report correct number of lines in progress when using ranges
      rebase: simplify an assignment of options.type in cmd_rebase

Elia Pinto (2):
      Makefile: add a prerequisite to the coverage-report target
      contrib/coccinnelle: add equals-null.cocci

Elijah Newren (9):
      tests: stop assuming --no-cone is the default mode for sparse-checkout
      sparse-checkout: make --cone the default
      git-sparse-checkout.txt: wording updates for the cone mode default
      git-sparse-checkout.txt: update docs for deprecation of 'init'
      git-sparse-checkout.txt: shuffle some sections and mark as internal
      git-sparse-checkout.txt: add a new EXAMPLES section
      git-sparse-checkout.txt: flesh out pattern set sections a bit
      git-sparse-checkout.txt: mark non-cone mode as deprecated
      Documentation: some sparsity wording clarifications

Fernando Ramos (4):
      vimdiff: new implementation with layout support
      vimdiff: integrate layout tests in the unit tests framework ('t' folder)
      vimdiff: add tool documentation
      mergetools: add description to all diff/merge tools

Frantisek Hrbata (3):
      transport: remove unnecessary indenting in transport_push()
      transport: unify return values and exit point from transport_push()
      transport: free local and remote refs in transport_push()

Garrit Franke (3):
      cli: add -v and -h shorthands
      serve.c: remove unnecessary include
      apply.c: remove unnecessary include

Glen Choo (4):
      pull: do not let submodule.recurse override fetch.recurseSubmodules
      remote.c: don't BUG() on 0-length branch names
      remote.c: reject 0-length branch names
      config: document and test the 'worktree' scope

Jason Yundt (1):
      gitweb: switch to an XHTML5 DOCTYPE

Jeff Hostetler (30):
      fsm-listen-win32: handle shortnames
      t7527: test FSMonitor on repos with Unicode root paths
      t/helper/fsmonitor-client: create stress test
      fsmonitor-settings: bare repos are incompatible with FSMonitor
      fsmonitor-settings: stub in Win32-specific incompatibility checking
      fsmonitor-settings: VFS for Git virtual repos are incompatible
      fsmonitor-settings: stub in macOS-specific incompatibility checking
      fsmonitor-settings: remote repos on macOS are incompatible
      fsmonitor-settings: remote repos on Windows are incompatible
      fsmonitor-settings: NTFS and FAT32 on MacOS are incompatible
      unpack-trees: initialize fsmonitor_has_run_once in o->result
      fsm-listen-darwin: ignore FSEvents caused by xattr changes on macOS
      fsmonitor--daemon: cd out of worktree root
      fsmonitor--daemon: prepare for adding health thread
      fsmonitor--daemon: rename listener thread related variables
      fsmonitor--daemon: stub in health thread
      fsm-health-win32: add polling framework to monitor daemon health
      fsm-health-win32: force shutdown daemon if worktree root moves
      fsm-listen-darwin: shutdown daemon if worktree root is moved/renamed
      fsmonitor: optimize processing of directory events
      t7527: FSMonitor tests for directory moves
      t/perf/p7527: add perf test for builtin FSMonitor
      fsmonitor: never set CE_FSMONITOR_VALID on submodules
      t7527: test FSMonitor on case insensitive+preserving file system
      fsmonitor: on macOS also emit NFC spelling for NFD pathname
      t/helper/hexdump: add helper to print hexdump of stdin
      t/lib-unicode-nfc-nfd: helper prereqs for testing unicode nfc/nfd
      t7527: test Unicode NFC/NFD handling on MacOS
      fsmonitor--daemon: allow --super-prefix argument
      t7527: improve implicit shutdown testing in fsmonitor--daemon

Jiang Xin (5):
      Makefile: sort source files before feeding to xgettext
      Makefile: generate "po/git.pot" from stable LOCALIZED_C
      Makefile: remove duplicate and unwanted files in FOUND_SOURCE_FILES
      po/git.pot: this is now a generated file
      Makefile: add "po-update" rule to update po/XX.po

Joel Holdsworth (22):
      git-p4: add blank lines between functions and class definitions
      git-p4: remove unneeded semicolons from statements
      git-p4: indent with 4-spaces
      git-p4: improve consistency of docstring formatting
      git-p4: convert descriptive class and function comments into docstrings
      git-p4: remove commented code
      git-p4: sort and de-duplcate pylint disable list
      git-p4: remove padding from lists, tuples and function arguments
      git-p4: remove spaces around default arguments
      git-p4: removed brackets when assigning multiple return values
      git-p4: place a single space after every comma
      git-p4: remove extraneous spaces before function arguments
      git-p4: remove redundant backslash-continuations inside brackets
      git-p4: remove spaces between dictionary keys and colons
      git-p4: ensure every comment has a single #
      git-p4: ensure there is a single space around all operators
      git-p4: normalize indentation of lines in conditionals
      git-p4: compare to singletons with "is" and "is not"
      git-p4: only seperate code blocks by a single empty line
      git-p4: move inline comments to line above
      git-p4: seperate multiple statements onto seperate lines
      git-p4: sort imports

Johannes Schindelin (24):
      t2016: require the PERL prereq only when necessary
      add -i: default to the built-in implementation
      trace2 docs: a couple of grammar fixes
      trace2 docs: "printf" is not an English word
      trace2 docs: surround more terms in backticks
      trace2 docs: fix a JSON formatted example
      trace2 docs: clarify what `varargs` is all about
      trace2 docs: add missing full stop
      ci: fix code style
      tests: refactor --write-junit-xml code
      test(junit): avoid line feeds in XML attributes
      ci/run-build-and-tests: take a more high-level view
      ci: make it easier to find failed tests' logs in the GitHub workflow
      ci/run-build-and-tests: add some structure to the GitHub workflow output
      ci: optionally mark up output in the GitHub workflow
      ci(github): skip the logs of the successful test cases
      ci: use `--github-workflow-markup` in the GitHub workflow
      ci(github): mention where the full logs can be found
      ci: call `finalize_test_case_output` a little later
      archive: optionally add "virtual" files
      archive --add-virtual-file: allow paths containing colons
      scalar: validate the optional enlistment argument
      scalar: implement `scalar diagnose`
      scalar diagnose: include disk space information

Jonathan Tan (2):
      fetch-pack: make unexpected peek result non-fatal
      commit,shallow: unparse commits if grafts changed

Josh Steadmon (1):
      run-command: don't spam trace2_child_exit()

Junio C Hamano (22):
      Some regression fixes for 2.36
      tree-wide: apply equals-null.cocci
      tree-wide: apply equals-null.cocci
      tree-wide: apply equals-null.cocci
      A bit more regression fixes for 2.36
      0th batch for topics from the previous cycle
      second 0th batch of topics from the previous cycle
      commit: fix "author_ident" leak
      fetch: do not run a redundant fetch from submodule
      t6424: make sure a failed merge preserves local changes
      First batch for 2.37
      Second batch
      Third batch
      Fourth batch
      pathspec: correct an empty string used as a pathspec element
      Fifth batch
      Sixth batch
      Revert -Wno-error=dangling-pointer
      Seventh batch
      Eighth batch
      Ninth batch
      Git 2.37-rc0

Kevin Locke (1):
      setup: don't die if realpath(3) fails on getcwd(3)

Khalid Masum (1):
      t3501: remove test -f and stop ignoring git <cmd> exit code

Kirill Frolov (1):
      git-p4: fix issue with multiple perforce remotes

Kleber Tarcísio (1):
      commit-graph: close file before returning NULL

Matthew John Cheetham (2):
      scalar: teach `diagnose` to gather packfile info
      scalar: teach `diagnose` to gather loose objects information

Miklos Vajna (1):
      log: "--since-as-filter" option is a non-terminating "--since" variant

Neeraj Singh (12):
      bulk-checkin: rename 'state' variable and separate 'plugged' boolean
      bulk-checkin: rebrand plug/unplug APIs as 'odb transactions'
      core.fsyncmethod: batched disk flushes for loose-objects
      cache-tree: use ODB transaction around writing a tree
      builtin/add: add ODB transaction around add_files_to_cache
      update-index: use the bulk-checkin infrastructure
      unpack-objects: use the bulk-checkin infrastructure
      core.fsync: use batch mode and sync loose objects by default on Windows
      test-lib-functions: add parsing helpers for ls-files and ls-tree
      core.fsyncmethod: tests for batch mode
      t/perf: add iteration setup mechanism to perf-lib
      core.fsyncmethod: performance tests for batch mode

Orgad Shaneh (1):
      fetch: limit shared symref check only for local branches

Philippe Blain (8):
      submodule.h: use a named enum for RECURSE_SUBMODULES_*
      MyFirstContribution: add "Anatomy of a Patch Series" section
      MyFirstContribution: add standalone section on cover letter
      MyFirstContribution: reference "The cover letter" in "Preparing Email"
      MyFirstContribution: reference "The cover letter" in GitGitGadget section
      MyFirstContribution: drop PR description for GGG single-patch contributions
      ci: update Cirrus-CI image to FreeBSD 12.3
      range-diff: show submodule changes irrespective of diff.submodule

René Scharfe (4):
      t7812: test PCRE2 whitespace bug
      tempfile: add mks_tempfile_dt()
      diff: use mks_tempfile_dt()
      archive: improve documentation of --prefix

SZEDER Gábor (3):
      t0033-safe-directory: check the error message without matching the trash dir
      t0033-safe-directory: check when 'safe.directory' is ignored
      safe.directory: document and check that it's ignored in the environment

Siddharth Asthana (1):
      t1011: replace test -f with test_path_is_file

Son Luong Ngoc (1):
      fsmonitor: query watchman with right valid json

Tao Klerks (8):
      untracked-cache: test untracked-cache-bypassing behavior with -uall
      untracked-cache: support '--untracked-files=all' if configured
      git-p4: support explicit sync of arbitrary existing git-p4 refs
      git-p4: preserve utf8 BOM when importing from p4 to git
      branch: new autosetupmerge option 'simple' for matching branches
      push: default to single remote even when not named origin
      push: new config option "push.autoSetupRemote" supports "simple" push
      git-p4: improve encoding handling to support inconsistent encodings

Taylor Blau (25):
      builtin/receive-pack.c: remove redundant 'if'
      t7703: demonstrate object corruption with pack.packSizeLimit
      builtin/repack.c: ensure that `names` is sorted
      Documentation/technical: add cruft-packs.txt
      pack-bitmap.c: check preferred pack validity when opening MIDX bitmap
      builtin/pack-objects.c: avoid redundant NULL check
      builtin/pack-objects.c: ensure included `--stdin-packs` exist
      builtin/pack-objects.c: ensure pack validity from MIDX bitmap objects
      pack-mtimes: support reading .mtimes files
      pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
      chunk-format.h: extract oid_version()
      pack-mtimes: support writing pack .mtimes files
      t/helper: add 'pack-mtimes' test-tool
      builtin/pack-objects.c: return from create_object_entry()
      builtin/pack-objects.c: --cruft without expiration
      reachable: add options to add_unseen_recent_objects_to_traversal
      reachable: report precise timestamps from objects in cruft packs
      builtin/pack-objects.c: --cruft with expiration
      builtin/repack.c: support generating a cruft pack
      builtin/repack.c: allow configuring cruft pack generation
      builtin/repack.c: use named flags for existing_packs
      builtin/repack.c: add cruft packs to MIDX during geometric repack
      builtin/gc.c: conditionally avoid pruning objects via loose
      sha1-file.c: don't freshen cruft packs
      builtin/show-ref.c: avoid over-iterating with --heads, --tags

Victoria Dye (8):
      stash: expand sparse-checkout compatibility testing
      stash: integrate with sparse index
      sparse-index: expose 'is_sparse_index_allowed()'
      read-cache: set sparsity when index is new
      stash: apply stash using 'merge_ort_nonrecursive()'
      unpack-trees: preserve index sparsity
      repack: respect --keep-pack with geometric repack
      ci(github): avoid printing test case preamble twice

Yuyi Wang (3):
      cmake: fix CMakeLists.txt on Linux
      cmake: add pcre2 support
      cmake: remove (_)UNICODE def on Windows in CMakeLists.txt

ZheNing Hu (1):
      read-cache.c: reduce unnecessary cache entry name copying

halilsen (2):
      gitk: trivial indentation fix
      gitk: include y coord in recorded sash position

Ævar Arnfjörð Bjarmason (56):
      run-command.h: remove always unused "clean_on_exit_handler_cbdata"
      configure.ac: remove USE_PIC comment
      xdiff/xmacros.h: remove unused XDL_PTRFREE
      pack-bitmap-write: remove unused bitmap_reset() function
      object-store.h: remove unused has_sha1_file*()
      alloc.[ch]: remove alloc_report() function
      t/helper/test-fast-rebase.c: don't leak "struct strbuf"
      blame: use "goto cleanup" for cleanup_scoreboard()
      string_list API users: use string_list_init_{no,}dup
      format-patch: don't leak "extra_headers" or "ref_message_ids"
      cocci: add and apply free_commit_list() rules
      revision.[ch]: provide and start using a release_revisions()
      revisions API users: add straightforward release_revisions()
      revision.[ch]: document and move code declared around "init"
      revisions API users: use release_revisions() needing REV_INFO_INIT
      stash: always have the owner of "stash_info" free it
      revisions API users: add "goto cleanup" for release_revisions()
      revisions API users: use release_revisions() in http-push.c
      revisions API users: use release_revisions() in builtin/log.c
      revisions API users: use release_revisions() with UNLEAK()
      revisions API users: use release_revisions() for "prune_data" users
      revisions API: have release_revisions() release "commits"
      revisions API: have release_revisions() release "mailmap"
      revisions API: have release_revisions() release "cmdline"
      revisions API: have release_revisions() release "filter"
      revisions API: have release_revisions() release "grep_filter"
      revisions API: have release_revisions() release "prune_data"
      revisions API: clear "boundary_commits" in release_revisions()
      revisions API: release "reflog_info" in release revisions()
      revisions API: call diff_free(&revs->pruning) in revisions_release()
      revisions API: have release_revisions() release "date_mode"
      revisions API: have release_revisions() release "topo_walk_info"
      revisions API: add a TODO for diff_free(&revs->diffopt)
      connect.c: refactor sending of agent & object-format
      dir API: add a generalized path_match_flags() function
      fetch-pack: add a deref_without_lazy_fetch_extended()
      fetch-pack: move --keep=* option filling to a function
      bundle.h: make "fd" version of read_bundle_header() public
      Makefile: have "make pot" not "reset --hard"
      i18n CI: stop allowing non-ASCII source messages in po/git.pot
      po/git.pot: don't check in result of "make pot"
      Makefile: add "po-init" rule to initialize po/XX.po
      l10n: Document the new l10n workflow
      common-main.c: move non-trace2 exit() behavior out of trace2.c
      usage.c: add a non-fatal bug() function to go with BUG()
      parse-options.c: use new bug() API for optbug()
      parse-options.c: use optbug() instead of BUG() "opts" check
      receive-pack: use bug() and BUG_if_bug()
      cache-tree.c: use bug() and BUG_if_bug()
      run-command API: rename "env_array" to "env"
      run-command API users: use "env" not "env_array" in comments & names
      ls-tree: test for the regression in 9c4d58ff2c3
      run-command: add an "ungroup" option to run_process_parallel()
      remote.c: remove braces from one-statement "for"-loops
      remote.c: don't dereference NULL in freeing loop
      hook API: fix v2.36.0 regression: hooks should be connected to a TTY


Version v2.36.6; changes since v2.36.5:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (7):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()
      Makefile: force -O0 when compiling with SANITIZE=leak

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (18):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8
      Git 2.34.8
      Git 2.35.8
      Git 2.36.6

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.36.5; changes since v2.36.4:
---------------------------------------

Jeff King (3):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      http: support CURLOPT_PROTOCOLS_STR

Johannes Schindelin (7):
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6
      Git 2.33.7
      Git 2.34.7
      Git 2.35.7
      Git 2.36.5

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.36.4; changes since v2.36.3:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (7):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5
      Git 2.33.6
      Git 2.34.6
      Git 2.35.6
      Git 2.36.4

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.36.3; changes since v2.36.2:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (26):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      t3207: prepare for changing protocol.file.allow
      t5516: prepare for changing protocol.file.allow
      t5537: prepare for changing protocol.file.allow
      t7814: prepare for changing protocol.file.allow
      Git 2.30.6
      Git 2.31.5
      Git 2.32.4
      Git 2.33.5
      Git 2.34.5
      Git 2.35.5
      Git 2.36.3


Version v2.36.2; changes since v2.36.1:
---------------------------------------

Alex Henrie (1):
      rebase: use correct base for --keep-base when a branch is given

Carlo Marcelo Arenas Belón (8):
      ci: make failure to find perforce more user friendly
      ci: avoid brew for installing perforce
      ci: reintroduce prevention from perforce being quarantined in macOS
      t: regression git needs safe.directory when using sudo
      git-compat-util: avoid failing dir ownership checks if running privileged
      t0034: add negative tests and allow git init to mostly work under sudo
      git-compat-util: allow root to access both SUDO_UID and root owned
      setup: tighten ownership checks post CVE-2022-24765

Derrick Stolee (3):
      midx: use real paths in lookup_multi_pack_index()
      multi-pack-index: use --object-dir real path
      cache: use const char * for get_object_directory()

Johannes Schindelin (10):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      dir.c: avoid "exceeds maximum object size" error with GCC v12.x
      Git 2.30.5
      Git 2.31.4
      Git 2.32.3
      Git 2.33.4
      Git 2.34.4
      Git 2.35.4
      Git 2.36.2

Junio C Hamano (6):
      show-branch: -g and --current are incompatible
      clone: plug a miniscule leak
      SubmittingPatches: use more stable git.ozlabs.org URL
      archive: do not let on-disk mode leak to zip archives
      http.c: clear the 'finished' member once we are done with it
      Prepare for 2.36.2

Michael J Gruber (1):
      detect-compiler: make detection independent of locale

Phillip Wood (1):
      tests: make SANITIZE=address imply TEST_NO_MALLOC_CHECK

René Scharfe (1):
      commit, sequencer: turn off break_opt for commit summary

Ævar Arnfjörð Bjarmason (5):
      tests: using custom GIT_EXEC_PATH breaks --valgrind tests
      log test: skip a failing mkstemp() test under valgrind
      object-file: fix a unpack_loose_header() regression in 3b6a8db3b03
      commit-graph.c: don't assume that stat() succeeds
      ci: use https, not http to download binaries from perforce.com


Version v2.36.1; changes since v2.36.0:
---------------------------------------

Junio C Hamano (4):
      2.36 gitk/diff-tree --stdin regression fix
      2.36 show regression fix
      cocci: drop bogus xstrdup_or_null() rule
      Git 2.36.1

Orgad Shaneh (1):
      submodule--helper: fix initialization of warn_if_uninitialized

René Scharfe (3):
      Revert "name-rev: release unused name strings"
      2.36 format-patch regression fix
      2.36 fast-export regression fix

Ævar Arnfjörð Bjarmason (1):
      CI: select CC based on CC_PACKAGE (again)


Version v2.36.0; changes since v2.36.0-rc2:
-------------------------------------------

Bagas Sanjaya (2):
      l10n: po-id for 2.36 (round 1)
      l10n: po-id for 2.36 (round 2)

Carlo Marcelo Arenas Belón (2):
      config.mak.dev: workaround gcc 12 bug affecting "pedantic" CI job
      config.mak.dev: alternative workaround to gcc 12 warning in http.c

Daniel Santos (3):
      l10n: pt_PT: update Portuguese translation
      l10n: pt_PT: update TEAMS file
      l10n: pt_PT: update Portuguese translation

Derrick Stolee (2):
      t0033: add tests for safe.directory
      setup: opt-out of check with safe.directory=*

Emir SARI (2):
      l10n: tr: v2.36.0 round 1
      l10n: tr: v2.36.0 round 2

Fangyi Zhou (3):
      l10n: Update zh_CN repo link
      l10n: zh_CN v2.36.0 round 1
      l10n: zh_CN v2.36.0 round 2

Jean-Noël Avila (2):
      l10n: fr: v2.36 round 1
      l10n: fr: v2.36 round 2

Jiang Xin (2):
      l10n: git.pot: v2.36.0 round 1 (192 new, 106 removed)
      l10n: git.pot: v2.36.0 round 2 (4 new, 3 removed)

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (7):
      Git 2.30.4
      Revert "Merge branch 'ps/avoid-unnecessary-hook-invocation-with-packed-refs'"
      Revert "fetch: increase test coverage of fetches"
      RelNotes: clarify "bisect run unexecutable" tweak
      RelNotes: mention safe.directory
      RelNotes: revert the description on the reverted topics
      Git 2.36

Matheus Valadares (1):
      setup: fix safe.directory key not being checked

Matthias Rüster (1):
      l10n: de.po: Update German translation

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5282t0f0u)

Trần Ngọc Quân (1):
      l10n: vi(5285t): v2.36.0 round 2

Yi-Jyun Pan (1):
      l10n: zh_TW: v2.36.0 round 2


Version v2.36.0-rc2; changes since v2.36.0-rc1:
-----------------------------------------------

Carlo Marcelo Arenas Belón (1):
      mingw: avoid fallback for {local,gm}time_r()

Jean-Noël Avila (1):
      i18n: fix some badly formatted i18n strings

Johannes Schindelin (10):
      GIT-VERSION-GEN: bump to v2.33.1
      Add a function to determine whether a path is owned by the current user
      setup_git_directory(): add an owner check for the top-level directory
      Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
      Git 2.30.3
      Git 2.31.2
      Git 2.32.1
      Git 2.33.2
      Git 2.34.2
      Git 2.35.2

Junio C Hamano (1):
      Git 2.36-rc2


Version v2.36.0-rc1; changes since v2.36.0-rc0:
-----------------------------------------------

Adam Dinwoodie (2):
      configure.ac: fix HAVE_SYNC_FILE_RANGE definition
      t9902: split test to run on appropriate systems

Carlo Marcelo Arenas Belón (1):
      git-compat-util: really support openssl as a source of entropy

Fangyi Zhou (1):
      submodule-helper: fix usage string

Josh Steadmon (1):
      ls-tree: `-l` should not imply recursive listing

Junio C Hamano (1):
      Git 2.36-rc1

Martin Ågren (1):
      git-ls-tree.txt: fix the name of "%(objectsize:padded)"

Todd Zullinger (1):
      doc: replace "--" with {litdd} in credential-cache/fsmonitor

Victoria Dye (1):
      contrib/scalar: fix 'all' target in Makefile

Ævar Arnfjörð Bjarmason (3):
      Documentation/Makefile: fix "make info" regression in dad9cd7d518
      Documentation: add --batch-command to cat-file synopsis
      ls-tree doc: document interaction with submodules


Version v2.36.0-rc0; changes since v2.35.8:
-------------------------------------------

Abhradeep Chakraborty (2):
      amend remaining usage strings according to style guide
      partial-clone: add a partial-clone test case

Alex Henrie (3):
      log: fix memory leak if --graph is passed multiple times
      log: add a --no-graph option
      switch: mention the --detach option when dying due to lack of a branch

Atharva Raykar (5):
      submodule--helper: get remote names from any repository
      submodule--helper: refactor get_submodule_displaypath()
      submodule--helper: allow setting superprefix for init_submodule()
      submodule--helper: run update using child process struct
      submodule: move core cmd_update() logic to C

Bagas Sanjaya (1):
      fetch-pack: parameterize message containing 'ready' keyword

COGONI Guillaume (3):
      t/t3903-stash.sh: replace test [-d|-f] with test_path_is_*
      tests: allow testing if a path is truly a file or a directory
      tests: make the code more readable

Chen Bojun (1):
      receive-pack: purge temporary data if no command is ready to run

David Cantrell (1):
      completion: tab completion of filenames for 'git restore'

Derrick Stolee (45):
      Documentation: add extensions.worktreeConfig details
      worktree: create init_worktree_config()
      config: add repo_config_set_worktree_gently()
      sparse-checkout: set worktree-config correctly
      worktree: copy sparse-checkout patterns and config on add
      config: make git_configset_get_string_tmp() private
      mailmap: change primary address for Derrick Stolee
      dir: force untracked cache with core.untrackedCache
      worktree: combine two translatable messages
      worktree: extract copy_filtered_worktree_config()
      worktree: extract copy_sparse_checkout()
      worktree: extract checkout_worktree()
      worktree: use 'worktree' over 'working tree'
      worktree: use 'worktree' over 'working tree'
      worktree: use 'worktree' over 'working tree'
      worktree: use 'worktree' over 'working tree'
      worktree: use 'worktree' over 'working tree'
      worktree: use 'worktree' over 'working tree'
      worktree: use 'worktree' over 'working tree'
      test-read-graph: include extra post-parse info
      t5318: extract helpers to lib-commit-graph.sh
      commit-graph: fix ordering bug in generation numbers
      commit-graph: start parsing generation v2 (again)
      commit-graph: fix generation number v2 overflow values
      commit-graph: declare bankruptcy on GDAT chunks
      index-pack: document and test the --promisor option
      list-objects-filter-options: create copy helper
      revision: put object filter into struct rev_info
      pack-objects: use rev.filter when possible
      pack-bitmap: drop filter in prepare_bitmap_walk()
      list-objects: consolidate traverse_commit_list[_filtered]
      MyFirstObjectWalk: update recommended usage
      bundle: parse filter capability
      rev-list: move --filter parsing into revision.c
      bundle: create filtered bundles
      bundle: unbundle promisor packs
      clone: fail gracefully when cloning filtered bundle
      maintenance: fix synopsis in documentation
      list-objects-filter: remove CL_ARG__FILTER
      pack-objects: move revs out of get_object_list()
      pack-objects: parse --filter directly into revs.filter
      bundle: move capabilities to end of 'verify'
      bundle: output hash information in 'verify'
      t7700: check post-condition in kept-pack test
      test-lib-functions: remove test_subcommand_inexact

Des Preston (1):
      worktree: include repair cmd in usage

Elia Pinto (8):
      test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34
      t6423-merge-rename-directories.sh: use the $(...) construct
      attr.c: delete duplicate include
      builtin/gc.c: delete duplicate include
      builtin/sparse-checkout.c: delete duplicate include
      builtin/stash.c: delete duplicate include
      t/helper/test-run-command.c: delete duplicate include
      attr.h: remove duplicate struct definition

Elijah Newren (32):
      t1011: add testcase demonstrating accidental loss of user modifications
      unpack-trees: fix accidental loss of user changes
      repo_read_index: clear SKIP_WORKTREE bit from files present in worktree
      Update documentation related to sparsity and the skip-worktree bit
      Accelerate clear_skip_worktree_from_present_files() by caching
      merge-ort: avoid assuming all renames detected
      merge-ort: fix memory leak in merge_ort_internal()
      merge: fix memory leaks in cmd_merge()
      sparse-checkout: fix a couple minor memory leaks
      repo-settings: fix checking for fetch.negotiationAlgorithm=default
      repo-settings: fix error handling for unknown values
      repo-settings: rename the traditional default fetch.negotiationAlgorithm
      show, log: provide a --remerge-diff capability
      log: clean unneeded objects during `log --remerge-diff`
      ll-merge: make callers responsible for showing warnings
      merge-ort: capture and print ll-merge warnings in our preferred fashion
      merge-ort: mark a few more conflict messages as omittable
      merge-ort: format messages slightly different for use in headers
      diff: add ability to insert additional headers for paths
      show, log: include conflict/warning messages in --remerge-diff headers
      merge-ort: mark conflict/warning messages from inner merges as omittable
      diff-merges: avoid history simplifications when diffing merges
      merge-ort: make informational messages from recursive merges clearer
      sparse-checkout: correct reapply's handling of options
      sparse-checkout: correctly set non-cone mode when expected
      sparse-checkout: pay attention to prefix for {set, add}
      sparse-checkout: error or warn when given individual files
      sparse-checkout: reject arguments in cone-mode that look like patterns
      merge-ort: fix small memory leak in detect_and_process_renames()
      merge-ort: fix small memory leak in unique_path()
      merge-ort: exclude messages from inner merges by default
      repo_read_index: add config to expect files outside sparse patterns

Emily Shaffer (14):
      hook: add 'run' subcommand
      gc: use hook library for pre-auto-gc hook
      am: convert {pre,post}-applypatch to use hook.h
      rebase: convert pre-rebase to use hook.h
      am: convert applypatch-msg to use hook.h
      merge: convert post-merge to use hook.h
      hooks: convert non-worktree 'post-checkout' hook to hook library
      hooks: convert worktree 'post-checkout' hook to hook library
      send-email: use 'git hook run' for 'sendemail-validate'
      git-p4: use 'git hook' to run hooks
      commit: convert {pre-commit,prepare-commit-msg} hook to hook.h
      read-cache: convert post-index-change to use hook.h
      receive-pack: convert push-to-checkout hook to hook.h
      run-command: remove old run_hook_{le,ve}() hook API

Fabian Stelzer (2):
      gpg-interface: trim CR from ssh-keygen
      gpg-interface/gpgsm: fix for v2.3

Glen Choo (39):
      fetch: use goto cleanup in cmd_fetch()
      fetch: skip tasks related to fetching objects
      fetch --negotiate-only: do not update submodules
      branch: move --set-upstream-to behavior to dwim_and_setup_tracking()
      branch: make create_branch() always create a branch
      branch: add a dry_run parameter to create_branch()
      builtin/branch: consolidate action-picking logic in cmd_branch()
      branch: add --recurse-submodules option for branch creation
      branch.c: use 'goto cleanup' in setup_tracking() to fix memory leaks
      stash: strip "refs/heads/" with skip_prefix
      checkout, clone: die if tree cannot be parsed
      submodule--helper: remove update-module-mode
      submodule--helper: reorganize code for sh to C conversion
      submodule--helper run-update-procedure: remove --suboid
      submodule--helper run-update-procedure: learn --remote
      submodule--helper update-clone: learn --init
      submodule--helper: remove ensure-core-worktree
      submodule update: add tests for --filter
      submodule--helper update-clone: check for --filter and --init
      t5526: introduce test helper to assert on fetches
      t5526: stop asserting on stderr literally
      t5526: create superproject commits with test helper
      submodule: make static functions read submodules from commits
      submodule: inline submodule_commits() into caller
      submodule: store new submodule commits oid_array in a struct
      submodule: extract get_fetch_task()
      submodule: move logic into fetch_task_create()
      submodule update: use die_message()
      submodule--helper: teach update_data more options
      submodule--helper: reduce logic in run_update_procedure()
      submodule--helper: remove forward declaration
      fetch: fetch unpopulated, changed submodules
      submodule: fix latent check_has_commit() bug
      branch: support more tracking modes when recursing
      branch: give submodule updating advice before exit
      branch --set-upstream-to: be consistent when advising
      branch: remove negative exit code
      branch: rework comments for future developers
      branch.c: simplify advice-and-die sequence

Greg Hurrell (2):
      Documentation/config/pgp.txt: replace stray <TAB> character with <SPC>
      Documentation/config/pgp.txt: add missing apostrophe

Han-Wen Nienhuys (27):
      reftable: fix OOB stack write in print functions
      reftable: fix resource leak in block.c error path
      reftable: fix resource leak blocksource.c
      reftable: check reftable_stack_auto_compact() return value
      reftable: ignore remove() return value in stack_test.c
      reftable: fix resource warning
      reftable: all xxx_free() functions accept NULL arguments
      reftable: order unittests by complexity
      reftable: drop stray printf in readwrite_test
      reftable: handle null refnames in reftable_ref_record_equal
      reftable: make reftable-record.h function signatures const correct
      reftable: implement record equality generically
      reftable: remove outdated file reftable.c
      reftable: make reftable_record a tagged union
      reftable: add print functions to the record types
      t1405: explictly delete reflogs for reftable
      t1405: mark test that checks existence as REFFILES
      t5312: prepare for reftable
      t1410: use test-tool ref-store to inspect reflogs
      t1410: mark bufsize boundary test as REFFILES
      Documentation: object_id_len goes up to 31
      reftable: reject 0 object_id_len
      reftable: add a test that verifies that writing empty keys fails
      reftable: avoid writing empty keys at the block layer
      reftable: ensure that obj_id_len is >= 2 on writing
      reftable: add test for length of disambiguating prefix
      reftable: rename writer_stats to reftable_writer_stats

Jacob Keller (1):
      name-rev: use generation numbers if available

Jason Yundt (2):
      comment: fix typo
      gitweb: remove invalid http-equiv="content-type"

Jayati Shrivastava (1):
      sequencer: use reverse_commit_list() helper

Jaydeep Das (1):
      t/t0015-hash.sh: remove unnecessary '\' at line end

Jaydeep P Das (1):
      userdiff: add builtin diff driver for kotlin language.

Jean-Noël Avila (4):
      i18n: factorize more 'incompatible options' messages
      i18n: factorize "invalid value" messages
      i18n: remove from i18n strings that do not hold translatable parts
      i18n: fix some misformated placeholders in command synopsis

Jeff Hostetler (30):
      fsmonitor: enhance existing comments, clarify trivial response handling
      fsmonitor-ipc: create client routines for git-fsmonitor--daemon
      fsmonitor: config settings are repository-specific
      fsmonitor: use IPC to query the builtin FSMonitor daemon
      fsmonitor: document builtin fsmonitor
      fsmonitor--daemon: add a built-in fsmonitor daemon
      fsmonitor--daemon: implement 'stop' and 'status' commands
      compat/fsmonitor/fsm-listen-win32: stub in backend for Windows
      compat/fsmonitor/fsm-listen-darwin: stub in backend for Darwin
      fsmonitor--daemon: implement 'run' command
      fsmonitor--daemon: implement 'start' command
      fsmonitor--daemon: add pathname classification
      fsmonitor--daemon: define token-ids
      fsmonitor--daemon: create token-based changed path cache
      compat/fsmonitor/fsm-listen-win32: implement FSMonitor backend on Windows
      compat/fsmonitor/fsm-listen-darwin: add MacOS header files for FSEvent
      compat/fsmonitor/fsm-listen-darwin: implement FSEvent listener on MacOS
      fsmonitor--daemon: implement handle_client callback
      help: include fsmonitor--daemon feature flag in version info
      t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
      t7527: create test for fsmonitor--daemon
      t/perf: avoid copying builtin fsmonitor files into test repo
      t/helper/test-chmtime: skip directories on Windows
      t/perf/p7519: fix coding style
      t/perf/p7519: speed up test on Windows
      t/perf/p7519: add fsmonitor--daemon test cases
      fsmonitor--daemon: periodically truncate list of modified files
      fsmonitor--daemon: use a cookie file to sync with file system
      fsmonitor: force update index after large responses
      t7527: test status with untracked-cache and fsmonitor--daemon

Jerry Zhang (3):
      git-rev-list: add --exclude-first-parent-only flag
      patch-id: fix antipatterns in tests
      patch-id: fix scan_hunk_header on diffs with 1 line of before/after

Jessica Clarke (1):
      mem-pool: don't assume uintmax_t is aligned enough for all types

Joel Holdsworth (4):
      git-p4: don't select shell mode using the type of the command argument
      git-p4: pass command arguments as lists instead of using shell
      git-p4: don't print shell commands as python lists
      git-p4: fix instantiation of CalledProcessError

Johannes Schindelin (14):
      sparse-index: sparse index is disallowed when split index is active
      t1091: disable split index
      split-index: it really is incompatible with the sparse index
      git-sh-setup: remove remnant bits referring to `git-legacy-stash`
      add: remove support for `git-legacy-stash`
      stash: remove documentation for `stash.useBuiltin`
      stash: stop warning about the obsolete `stash.useBuiltin` config setting
      docs(diff): lose incorrect claim about `diff-files --diff-filter=A`
      diff.c: move the diff filter bits definitions up a bit
      diff-filter: be more careful when looking for negative bits
      scalar: accept -C and -c options before the subcommand
      checkout/fetch/pull/pack-objects: allow `-h` outside a repository
      t0012: verify that built-ins handle `-h` even without gitdir
      cocci: allow padding with `strbuf_addf()`

John Cai (15):
      receive-pack.c: consolidate find header logic
      name-rev: deprecate --stdin in favor of --annotate-stdin
      name-rev.c: use strbuf_getline instead of limited size buffer
      builtin/reflog.c: use parse-options api for expire, delete subcommands
      name-rev: replace --stdin with --annotate-stdin in synopsis
      cat-file: rename cmdmode to transform_mode
      cat-file: introduce batch_mode enum to replace print_contents
      cat-file: add remove_timestamp helper
      cat-file: add --batch-command mode
      stash: add tests to ensure reflog --rewrite --updatref behavior
      reflog: libify delete reflog function and helpers
      stash: call reflog_delete() in reflog.c
      cat-file: skip expanding default format
      rebase: use test_commit helper in setup
      rebase: set REF_HEAD_DETACH in checkout_up_to_date()

Jonathan Tan (6):
      config: make git_config_include() static
      config: include file if remote URL matches a glob
      sparse-checkout: create leading directory
      clone: support unusual remote ref configurations
      ls-files: support --recurse-submodules --stage
      shallow: reset commit grafts when shallow is reset

Josh Steadmon (2):
      test-lib: unset trace2 parent envvars
      clone, submodule: pass partial clone filters to submodules

Junio C Hamano (30):
      compat/qsort_s.c: avoid using potentially unaligned access
      fetch: help translators by reusing the same message template
      Start post 2.35 cycle
      SubmittingPatches: write problem statement in the log in the present tense
      CodingGuidelines: hint why we value clearly written log messages
      SubmittingPatches: explain why we care about log messages
      Name the next one 2.36 to prepare for 2.35.1
      The first batch
      The second batch for 2.36
      glossary: describe "worktree"
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      The eighth batch
      rerere-train: two fixes to the use of "git show -s"
      am/apply: warn if we end up reading patches from terminal
      The ninth batch
      The tenth batch
      The eleventh batch
      The twelfth batch
      The thirteenth batch
      The 14th batch
      reset: show --no-refresh in the short-help
      The 15th batch
      The 16th batch
      The 17th batch
      CodingGuidelines: give deadline for "for (int i = 0; ..."
      Git 2.36-rc0

Justin Donnelly (4):
      git-prompt: rename `upstream` to `upstream_type`
      git-prompt: make upstream state indicator location consistent
      git-prompt: make long upstream state indicator consistent
      git-prompt: put upstream comments together

Lessley Dennington (3):
      completion: address sparse-checkout issues
      completion: improve sparse-checkout cone mode directory completion
      completion: handle unusual characters for sparse-checkout

Liginity Lee (1):
      fix typo in git-mktree.txt

Marc Strapetz (4):
      test-lib: introduce API for verifying file mtime
      t7508: fix bogus mtime verification
      t7508: add tests capturing racy timestamp handling
      update-index: refresh should rewrite index in case of racy timestamps

Matheus Felipe (1):
      config: correct "--type" option in "git config -h" output

Matt Cooper (1):
      index-pack: clarify the breached limit

Michael J Gruber (2):
      test-lib: declare local variables as local
      tests: demonstrate "show --word-diff --color-moved" regression

Neeraj Singh (10):
      wrapper: make inclusion of Windows csprng header tightly scoped
      core.fsyncmethod: add writeout-only mode
      core.fsync: introduce granular fsync control infrastructure
      core.fsync: add configuration parsing
      core.fsync: new option to harden the index
      core.fsync: documentation and user-friendly aggregate options
      core.fsync: fix incorrect expression for default configuration
      trace2: add stats for fsync operations
      core.fsyncmethod: correctly camel-case warning message
      object-file: pass filename to fsync_or_die

Nihal Jere (1):
      Documentation: git-read-tree: separate links using commas

Patrick Steinhardt (24):
      refs: extract packed_refs_delete_refs() to allow control of transaction
      refs: allow passing flags when beginning transactions
      refs: allow skipping the reference-transaction hook
      refs: demonstrate excessive execution of the reference-transaction hook
      refs: do not execute reference-transaction hook on packing refs
      refs: skip hooks when deleting uncovered packed refs
      fetch-pack: use commit-graph when computing cutoff
      fetch: skip computing output width when not printing anything
      fetch: increase test coverage of fetches
      fetch: backfill tags before setting upstream
      fetch: control lifecycle of FETCH_HEAD in a single place
      fetch: report errors when backfilling tags fails
      refs: add interface to iterate over queued transactional updates
      fetch: make `--atomic` flag cover backfilling of tags
      fetch: make `--atomic` flag cover pruning of refs
      upload-pack: look up "want" lines via commit-graph
      fetch: avoid lookup of commits when not appending to FETCH_HEAD
      refs: add ability for backends to special-case reading of symbolic refs
      remote: read symbolic refs via `refs_read_symbolic_ref()`
      refs/files-backend: optimize reading of symbolic refs
      t5503: simplify setup of test which exercises failure of backfill
      repack: refactor to avoid double-negation of update-server-info
      repack: add config to skip updating server info
      core.fsync: new option to harden references

Philip Oakley (2):
      README.md: add CodingGuidelines and a link for Translators
      doc: check-ignore: code-quote an exclamation mark

Philippe Blain (1):
      pull --rebase: honor rebase.autostash when fast-forwarding

Phillip Wood (29):
      t3701: clean up hunk splitting tests
      builtin add -p: fix hunk splitting
      rebase: factor out checkout for up to date branch
      t5403: refactor rebase post-checkout hook tests
      rebase: pass correct arguments to post-checkout hook
      rebase: do not remove untracked files on checkout
      rebase --apply: don't run post-checkout hook if there is an error
      reset_head(): remove action parameter
      reset_head(): factor out ref updates
      reset_head(): make default_reflog_action optional
      create_autostash(): remove unneeded parameter
      rebase: cleanup reset_head() calls
      reset_head(): take struct rebase_head_opts
      rebase --apply: fix reflog
      rebase --apply: set ORIG_HEAD correctly
      rebase -m: don't fork git checkout
      xdiff: fix a memory leak
      xdiff: handle allocation failure in patience diff
      xdiff: refactor a function
      xdiff: handle allocation failure when merging
      terminal: always reset terminal when reading without echo
      terminal: pop signal handler when terminal is restored
      terminal: set VMIN and VTIME in non-canonical mode
      add -p: disable stdin buffering when interactive.singlekey is set
      terminal: use flags for save_term()
      terminal: don't assume stdin is /dev/tty
      terminal: work around macos poll() bug
      terminal: restore settings on SIGTSTP
      worktree: add -z option for list subcommand

René Scharfe (10):
      grep: use grep_or_expr() in compile_pattern_or()
      grep: use grep_not_expr() in compile_pattern_not()
      apply: use strsets to track symlinks
      stable-qsort: avoid using potentially unaligned access
      bisect--helper: report actual bisect_state() argument on error
      bisect--helper: release strbuf and strvec on run error
      bisect: document run behavior with exit codes 126 and 127
      bisect--helper: double-check run command on exit code 126 and 127
      parse-options: document bracketing of argh
      grep: fix triggering PCRE2_NO_START_OPTIMIZE workaround

Robert Coup (8):
      fetch: fix negotiate-only error message
      fetch-negotiator: add specific noop initializer
      fetch-pack: add refetch
      builtin/fetch-pack: add --refetch option
      fetch: add --refetch option
      t5615-partial-clone: add test for fetch --refetch
      fetch: after refetch, encourage auto gc repacking
      docs: mention --refetch fetch option

SZEDER Gábor (1):
      reflog: fix 'show' subcommand's argv

Shaoxuan Yuan (4):
      builtin/diff.c: fix "git-diff" usage string typo
      t/lib-read-tree-m-3way: modernize style
      t/lib-read-tree-m-3way: indent with tabs
      t0001: replace "test [-d|-f]" with test_path_is_* functions

Shubham Mishra (3):
      t0003: avoid pipes with Git on LHS
      t0001-t0028: avoid pipes with Git on LHS
      t0030-t0050: avoid pipes with Git on LHS

Tao Klerks (6):
      t7519: avoid file to index mtime race for untracked cache
      t7519: populate untracked cache before test
      untracked-cache: write index when populating empty untracked cache
      t/helper/test-chmtime: update mingw to support chmtime on directories
      t7063: mtime-mangling instead of delays in untracked cache testing
      tracking branches: add advice to ambiguous refspec error

Taylor Blau (15):
      grep: extract grep_binexp() from grep_or_expr()
      grep: use grep_and_expr() in compile_pattern_and()
      t5326: demonstrate bitmap corruption after permutation
      midx.c: make changing the preferred pack safe
      pack-revindex.c: instrument loading on-disk reverse index
      t5326: drop unnecessary setup
      t5326: extract `test_rev_exists`
      t5326: move tests to t/lib-bitmap.sh
      t/lib-bitmap.sh: parameterize tests over reverse index source
      midx: read `RIDX` chunk when present
      pack-bitmap.c: gracefully fallback after opening pack/MIDX
      midx: prevent writing a .bitmap without any objects
      CODE_OF_CONDUCT.md: update PLC members list
      builtin/remote.c: parse options in 'rename'
      builtin/remote.c: show progress when renaming remote references

Teng Long (6):
      git-cli.txt: clarify "options first and then args"
      ls-tree: rename "retval" to "recurse" in "show_tree()"
      ls-tree: simplify nesting if/else logic in "show_tree()"
      ls-tree: fix "--name-only" and "--long" combined use bug
      ls-tree: slightly refactor `show_tree()`
      ls-tree: support --object-only option for "git-ls-tree"

Thomas Gummerer (1):
      fetch --prune: exit with error if pruning fails

Thomas Koutcher (1):
      subtree: force merge commit

Todd Zullinger (2):
      t/lib-gpg: reload gpg components after updating trustlist
      t/lib-gpg: kill all gpg components, not just gpg-agent

Victoria Dye (29):
      reset: fix validation in sparse index test
      reset: reorder wildcard pathspec conditions
      clean: integrate with sparse index
      checkout-index: expand sparse checkout compatibility tests
      checkout-index: add --ignore-skip-worktree-bits option
      checkout-index: integrate with sparse index
      update-index: add tests for sparse-checkout compatibility
      update-index: integrate with sparse index
      update-index: reduce scope of index expansion in do_reupdate
      sparse-index: prevent repo root from becoming sparse
      status: fix nested sparse directory diff in sparse index
      read-tree: explicitly disallow prefixes with a leading '/'
      read-tree: expand sparse checkout test coverage
      read-tree: integrate with sparse index
      read-tree: narrow scope of index expansion for '--prefix'
      read-tree: make two-way merge sparse-aware
      read-tree: make three-way merge sparse-aware
      reset: revise index refresh advice
      reset: introduce --[no-]refresh option to --mixed
      reset: replace '--quiet' with '--no-refresh' in performance advice
      reset: suppress '--no-refresh' advice if logging is silenced
      stash: make internal resets quiet and refresh index
      t1092: add sparse directory before cone in test repo
      unpack-trees: increment cache_bottom for sparse directories
      Revert "unpack-trees: improve performance of next_cache_entry"
      reset: do not make '--quiet' disable index refresh
      reset: remove 'reset.quiet' config option
      reset: remove 'reset.refresh' config option
      mv: refresh stat info for moved entry

brian m. carlson (6):
      t0027: add tests for eol without text in .gitattributes
      docs: correct documentation about eol attribute
      wrapper: add a helper to generate numbers from a CSPRNG
      wrapper: use a CSPRNG to generate random file names
      doc: clarify interaction between 'eol' and text=auto
      block-sha1: remove use of obsolete x86 assembly

Ævar Arnfjörð Bjarmason (183):
      cat-file tests: test bad usage
      cat-file tests: test messaging on bad objects/paths
      parse-options API: add a usage_msg_optf()
      cat-file docs: fix SYNOPSIS and "-h" output
      cat-file: move "usage" variable to cmd_cat_file()
      cat-file: make --batch-all-objects a CMDMODE
      cat-file: fix remaining usage bugs
      cat-file: correct and improve usage information
      object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY
      cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters)
      hook API: add a run_hooks() wrapper
      hook API: add a run_hooks_l() wrapper
      git hook run: add an --ignore-missing flag
      cat-file: don't whitespace-pad "(...)" in SYNOPSIS and usage output
      cat-file: s/_/-/ in typo'd usage_msg_optf() message
      compat: auto-detect if zlib has uncompress2()
      sequencer: don't use die_errno() on refs_resolve_ref_unsafe() failure
      refs API: remove "failure_errno" from refs_resolve_ref_unsafe()
      object-name tests: add tests for ambiguous object blind spots
      object-name: explicitly handle OBJ_BAD in show_ambiguous_object()
      object-name: explicitly handle bad tags in show_ambiguous_object()
      object-name: make ambiguous object output translatable
      object-name: show date for ambiguous tag objects
      object-name: iterate ambiguous objects before showing header
      object-name: re-use "struct strbuf" in show_ambiguous_object()
      perl Git.pm: don't ignore signalled failure in _cmd_close()
      completion tests: re-source git-completion.bash in a subshell
      completion: add a GIT_COMPLETION_SHOW_ALL_COMMANDS
      leak tests: fix a memory leak in "test-progress" helper
      progress.c test helper: add missing braces
      progress.c tests: make start/stop commands on stdin
      progress.c tests: test some invalid usage
      progress.h: format and be consistent with progress.c naming
      progress.c: use dereferenced "progress" variable, not "(*p_progress)"
      progress.c: refactor stop_progress{,_msg}() to use helpers
      progress API: unify stop_progress{,_msg}(), fix trace2 bug
      pack-bitmap-write.c: don't return without stop_progress()
      t0051: use "skip_all" under !MINGW in single-test file
      hash-object: fix a trivial leak in --path
      ls-remote & transport API: release "struct transport_ls_refs_options"
      grep.h: remove unused "regex_t regexp" from grep_opt
      log tests: check if grep_config() is called by "log"-like cmds
      grep tests: create a helper function for "BRE" or "ERE"
      grep tests: add missing "grep.patternType" config tests
      built-ins: trust the "prefix" from run_builtin()
      grep.c: don't pass along NULL callback value
      grep API: call grep_config() after grep_init()
      grep.h: make "grep_opt.pattern_type_option" use its enum
      grep.c: do "if (bool && memchr())" not "if (memchr() && bool)"
      grep: simplify config parsing and option parsing
      cache.h: remove always unused show_date_human() declaration
      date API: create a date.h, split from cache.h
      date API: provide and use a DATE_MODE_INIT
      date API: add basic API docs
      date API: add and use a date_mode_release()
      diff.[ch]: have diff_free() call clear_pathspec(opts.pathspec)
      diff.[ch]: have diff_free() free options->parseopts
      hook tests: test for exact "pre-push" hook input
      hook tests: use a modern style for "pre-push" tests
      git-compat-util.h: clarify GCC v.s. C99-specific in comment
      C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
      help doc: add missing "]" to "[-a|--all]"
      help.c: use puts() instead of printf{,_ln}() for consistency
      help tests: test "git" and "git help [-a|-g] spacing
      help.c: split up list_all_cmds_help() function
      help: note the option name on option incompatibility
      help: correct usage & behavior of "git help --all"
      help: error if [-a|-g|-c] and [-i|-m|-w] are combined
      help: add --no-[external-commands|aliases] for use with --all
      help: don't print "\n" before single-section output
      imap-send.c: use designated initializers for "struct imap_server_conf"
      trace2: use designated initializers for "struct tr2_tgt"
      trace2: use designated initializers for "struct tr2_dst"
      object-file: use designated initializers for "struct git_hash_algo"
      archive-*.c: use designated initializers for "struct archiver"
      userdiff.c: use designated initializers for "struct userdiff_driver"
      convert.c: use designated initializers for "struct stream_filter*"
      refspec.c: use designated initializers for "struct refspec_item"
      fast-import.c: use designated initializers for "partial" struct assignments
      object-file.c: split up declaration of unrelated variables
      object-file API: return "void", not "int" from hash_object_file()
      object-file API: add a format_object_header() function
      object-file API: have write_object_file() take "enum object_type"
      object API: correct "buf" v.s. "map" mismatch in *.c and *.h
      object API docs: move check_object_signature() docs to cache.h
      object API users + docs: check <0, not !0 with check_object_signature()
      object-file API: split up and simplify check_object_signature()
      object API: rename hash_object_file_literally() to write_*()
      object-file API: have hash_object_file() take "enum object_type"
      object-file.c: add a literal version of write_object_file_prepare()
      object-file API: pass an enum to read_object_with_reference()
      test-lib: add GIT_SAN_OPTIONS, inherit [AL]SAN_OPTIONS
      test-lib: correct and assert TEST_DIRECTORY overriding
      test-lib: make $GIT_BUILD_DIR an absolute path
      test-lib: add "fast_unwind_on_malloc=0" to LSAN_OPTIONS
      scalar Makefile: use "The default target of..." pattern
      Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
      Makefile: disable GNU make built-in wildcard rules
      Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
      Makefile: move ".SUFFIXES" rule to shared.mak
      Makefile: move $(comma), $(empty) and $(space) to shared.mak
      Makefile: add "$(QUIET)" boilerplate to shared.mak
      Makefiles: add and use wildcard "mkdir -p" template
      log tests: fix "abort tests early" regression in ff37a60c369
      index-pack: fix memory leaks
      merge-base: free() allocated "struct commit **" list
      diff.c: free "buf" in diff_words_flush()
      urlmatch.c: add and use a *_release() function
      remote-curl.c: free memory in cmd_main()
      bundle: call strvec_clear() on allocated strvec
      transport: stop needlessly copying bundle header references
      submodule--helper: fix trivial leak in module_add()
      commit-graph: fix memory leak in misused string_list API
      commit-graph: stop fill_oids_from_packs() progress on error and free()
      lockfile API users: simplify and don't leak "path"
      range-diff: plug memory leak in common invocation
      range-diff: plug memory leak in read_patches()
      repository.c: free the "path cache" in repo_clear()
      submodule tests: test for init and update failure output
      submodule--helper: don't use bitfield indirection for parse_options()
      gettext API users: don't explicitly cast ngettext()'s "n"
      string-list API: change "nr" and "alloc" to "size_t"
      merge: don't run post-hook logic on --no-verify
      hooks: fix an obscure TOCTOU "did we just run a hook?" race
      tests: change some 'test $(git) = "x"' to test_cmp
      tests: use "test_stdout_line_count", not "test $(git [...] | wc -l)"
      read-tree tests: check "diff-files" exit code on failure
      diff tests: don't ignore "git diff" exit code
      diff tests: don't ignore "git diff" exit code in "read" loop
      apply tests: use "test_must_fail" instead of ad-hoc pattern
      merge tests: use "test_must_fail" instead of ad-hoc pattern
      rev-parse tests: don't ignore "git reflog" exit code
      notes tests: don't ignore "git" exit code
      diff tests: don't ignore "git rev-list" exit code
      rev-list tests: don't hide abort() in "test_expect_failure"
      gettext tests: don't ignore "test-tool regex" exit code
      apply tests: don't ignore "git ls-files" exit code, drop sub-shell
      checkout tests: don't ignore "git <cmd>" exit code
      rev-list simplify tests: don't ignore "git" exit code
      list-objects: handle NULL function pointers
      reflog: don't be noisy on empty reflogs
      builtin/submodule--helper.c: rename option struct to "opt"
      test-lib-functions: add and use a "test_hook" wrapper
      hook tests: turn exit code assertions into a loop
      http tests: don't rely on "hook/post-update.sample"
      tests: assume the hooks are disabled by default
      bugreport tests: tighten up "git bugreport -s hooks" test
      fetch+push tests: use "test_hook" and "test_when_finished" pattern
      gc + p4 tests: use "test_hook", remove sub-shells
      tests: change "cat && chmod +x" to use "test_hook"
      tests: change "mkdir -p && write_script" to use "test_hook"
      tests: use "test_hook" for misc "mkdir -p" and "chmod" cases
      diff.c: fix a double-free regression in a18d66cefb
      refs: use designated initializers for "struct ref_storage_be"
      refs: use designated initializers for "struct ref_iterator_vtable"
      misc *.c: use designated initializers for struct assignments
      packed-backend: remove stub BUG(...) functions
      refs debug: add a wrapper for "read_symbolic_ref"
      tests: extend "test_hook" for "rm" and "chmod -x", convert "$HOOK"
      proc-receive hook tests: use "test_hook" instead of "write_script"
      http tests: use "test_hook" for "smart" and "dumb" http tests
      reflog.c: indent argument lists
      reflog: refactor cmd_reflog() to "if" branches
      reflog tests: add missing "git reflog exists" tests
      reflog: move "usage" variables and use macros
      git reflog [expire|delete]: make -h output consistent with SYNOPSIS
      reflog exists: use parse_options() API
      Makefile: use ' ', not non-existing $(wspfx_SQ)
      ls-tree tests: add tests for --name-status
      ls-tree: remove commented-out code
      ls-tree: add missing braces to "else" arms
      ls-tree: use "enum object_type", not {blob,tree,commit}_type
      ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
      ls-tree: introduce struct "show_tree_data"
      ls-tree: introduce "--format" option
      ls-tree: detect and error on --name-only --name-status
      ls-tree: split up "fast path" callbacks
      hooks: fix "invoked hook" regression in a8cc5943338
      reflog: convert to parse_options() API
      reflog [show]: display sensible -h output
      test-lib: have --immediate emit valid TAP on failure
      pack-objects: lazily set up "struct rev_info", don't leak
      reftable: make assignments portable to AIX xlc v12.01


Version v2.35.8; changes since v2.35.7:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (7):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()
      Makefile: force -O0 when compiling with SANITIZE=leak

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (17):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8
      Git 2.34.8
      Git 2.35.8

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.35.7; changes since v2.35.6:
---------------------------------------

Jeff King (3):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      http: support CURLOPT_PROTOCOLS_STR

Johannes Schindelin (6):
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6
      Git 2.33.7
      Git 2.34.7
      Git 2.35.7

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.35.6; changes since v2.35.5:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (6):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5
      Git 2.33.6
      Git 2.34.6
      Git 2.35.6

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.35.5; changes since v2.35.4:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (21):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      Git 2.30.6
      Git 2.31.5
      Git 2.32.4
      Git 2.33.5
      Git 2.34.5
      Git 2.35.5


Version v2.35.4; changes since v2.35.3:
---------------------------------------

Carlo Marcelo Arenas Belón (5):
      t: regression git needs safe.directory when using sudo
      git-compat-util: avoid failing dir ownership checks if running privileged
      t0034: add negative tests and allow git init to mostly work under sudo
      git-compat-util: allow root to access both SUDO_UID and root owned
      setup: tighten ownership checks post CVE-2022-24765

Johannes Schindelin (6):
      Git 2.30.5
      Git 2.31.4
      Git 2.32.3
      Git 2.33.4
      Git 2.34.4
      Git 2.35.4


Version v2.35.3; changes since v2.35.2:
---------------------------------------

Derrick Stolee (2):
      t0033: add tests for safe.directory
      setup: opt-out of check with safe.directory=*

Junio C Hamano (1):
      Git 2.30.4

Matheus Valadares (1):
      setup: fix safe.directory key not being checked


Version v2.35.2; changes since v2.35.1:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      mingw: avoid fallback for {local,gm}time_r()

Johannes Schindelin (10):
      GIT-VERSION-GEN: bump to v2.33.1
      Add a function to determine whether a path is owned by the current user
      setup_git_directory(): add an owner check for the top-level directory
      Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
      Git 2.30.3
      Git 2.31.2
      Git 2.32.1
      Git 2.33.2
      Git 2.34.2
      Git 2.35.2


Version v2.35.1; changes since v2.35.0:
---------------------------------------

Elijah Newren (1):
      sequencer, stash: fix running from worktree subdir

Junio C Hamano (1):
      Git 2.35.1


Version v2.35.0; changes since v2.35.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5195t)

Bagas Sanjaya (2):
      l10n: po-id for 2.35 (round 1)
      l10n: po-id for 2.35 (round 2)

Emir SARI (1):
      l10n: tr: v2.35.0 round 1

Fangyi Zhou (1):
      l10n: zh_CN: v2.35.0 round 1

Jean-Noël Avila (1):
      l10n: fr: v2.35.0 round 1

Jiang Xin (3):
      l10n: git.pot: v2.35.0 round 1 (126 new, 142 removed)
      l10n: git.pot: v2.35.0 round 2 (1 new, 1 removed)
      l10n: batch update to fix typo in branch.c

Jordi Mas (3):
      l10n: Update Catalan translation
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (2):
      checkout: avoid BUG() when hitting a broken repository
      Git 2.35

Jürgen Krämer (1):
      l10n: de.po: Fix translation for "'%s' is aliased to '%s'"

Matthias Rüster (1):
      l10n: de.po: Update German translation

Peter Krefting (2):
      l10n: sv.po: Fix typo
      l10n: sv.po: Update Swedish translation (5196t0f0u)

René Scharfe (1):
      branch,checkout: fix --track documentation

Trần Ngọc Quân (1):
      l10n: vi(5195t): Update for v2.35.0 round 2

Yi-Jyun Pan (2):
      l10n: zh_TW: v2.35.0 round 1 (1 fuzzy)
      l10n: zh_TW: v2.35.0 round 2 (0 untranslated)


Version v2.35.0-rc2; changes since v2.35.0-rc1:
-----------------------------------------------

David Aguilar (1):
      build: centos/RHEL 7 ships with an older gcc and zlib

Johannes Schindelin (1):
      getcwd(mingw): handle the case when there is no cwd

Josh Steadmon (1):
      branch,checkout: fix --track usage strings

Junio C Hamano (2):
      Makefile: FreeBSD cannot do C99-or-below build
      Git 2.35-rc2


Version v2.35.0-rc1; changes since v2.35.0-rc0:
-----------------------------------------------

Bagas Sanjaya (1):
      branch: missing space fix at line 313

Fabian Stelzer (1):
      t/gpg: simplify test for unknown key

Han-Wen Nienhuys (1):
      reftable: avoid initializing structs from structs

Johannes Sixt (1):
      t1450-fsck: exec-bit is not needed to make loose object writable

Junio C Hamano (3):
      packfile: fix off-by-one error in decoding logic
      Last minute fixes before -rc1
      Git 2.35-rc1

Martin Ågren (1):
      cache.h: drop duplicate `ensure_full_index()` declaration

Matthias Aßhauer (1):
      lazyload: use correct calling conventions

Patrick Steinhardt (1):
      fetch: fix deadlock when cleaning up lockfiles in async signals

Randall S. Becker (1):
      build: NonStop ships with an older zlib

Taylor Blau (1):
      fmt-merge-msg: prevent use-after-free with signed tags

Ævar Arnfjörð Bjarmason (2):
      refs API: use "failure_errno", not "errno"
      reftable tests: avoid "int" overflow, use "uint64_t"


Version v2.35.0-rc0; changes since v2.34.8:
-------------------------------------------

Alex Henrie (1):
      pull: don't say that merge is "the default strategy"

Anders Kaseorg (8):
      fetch: lowercase error messages
      receive-pack: lowercase error messages
      branch: lowercase error messages
      worktree: simplify find_shared_symref() memory ownership model
      fetch: protect branches checked out in all worktrees
      receive-pack: clean dead code from update_worktree()
      receive-pack: protect current branch for bare repository worktree
      branch: protect branches checked out in all worktrees

Calvin Wan (1):
      protocol-v2.txt: align delim-pkt spec with usage

Carlo Marcelo Arenas Belón (4):
      test-genzeros: allow more than 2G zeros in Windows
      test-lib: add prerequisite for 64-bit platforms
      mingw: avoid fallback for {local,gm}time_r()
      add -p: avoid use of undefined $key when ReadKey -> EOF

Derrick Stolee (18):
      test-lib.sh: set GIT_TRACE2_EVENT_NESTING
      t/t*: remove custom GIT_TRACE2_EVENT_NESTING
      scalar: 'register' sets recommended config and starts maintenance
      scalar: 'unregister' stops background maintenance
      scalar: implement 'scalar list'
      scalar: implement the `run` command
      t1092: add deeper changes during a checkout
      unpack-trees: use traverse_path instead of name
      repack: respect kept objects with '--write-midx -b'
      repack: make '--quiet' disable progress
      fetch/pull: use the sparse index
      ls-files: add --sparse option
      t1092: replace 'read-cache --table' with 'ls-files --sparse'
      t1091/t3705: remove 'test-tool read-cache --table'
      test-read-cache: remove --table, --expand options
      sparse-checkout: fix segfault on malformed patterns
      sparse-checkout: fix OOM error with mixed patterns
      sparse-checkout: refuse to add to bad patterns

Eli Schwartz (3):
      pretty.c: rework describe options parsing for better extensibility
      pretty: add tag option to %(describe)
      pretty: add abbrev option to %(describe)

Elijah Newren (28):
      sequencer: avoid adding exec commands for non-commit creating commands
      update documentation for new zdiff3 conflictStyle
      name-rev: prefer shorter names over following merges
      sequencer: do not export GIT_DIR and GIT_WORK_TREE for 'exec'
      t2501: add various tests for removing the current working directory
      setup: introduce startup_info->original_cwd
      unpack-trees: refuse to remove startup_info->original_cwd
      unpack-trees: add special cwd handling
      symlinks: do not include startup_info->original_cwd in dir removal
      clean: do not attempt to remove startup_info->original_cwd
      rebase: do not attempt to remove startup_info->original_cwd
      stash: do not attempt to remove startup_info->original_cwd
      dir: avoid incidentally removing the original_cwd in remove_path()
      dir: new flag to remove_dir_recurse() to spare the original_cwd
      t2501: simplify the tests since we can now assume desired behavior
      sparse-checkout: pass use_stdin as a parameter instead of as a global
      sparse-checkout: break apart functions for sparse_checkout_(set|add)
      sparse-checkout: add sanity-checks on initial sparsity state
      sparse-checkout: disallow --no-stdin as an argument to set
      sparse-checkout: split out code for tweaking settings config
      sparse-checkout: enable `set` to initialize sparse-checkout mode
      sparse-checkout: enable reapply to take --[no-]{cone,sparse-index}
      git-sparse-checkout.txt: update to document init/set/reapply changes
      Documentation: clarify/correct a few sparsity related statements
      clone: avoid using deprecated `sparse-checkout init`
      sparse-checkout: remove stray trailing space
      merge-ort: fix bug with renormalization and rename/delete conflicts
      stash: do not return before restoring untracked files

Enzo Matsumiya (1):
      pager: fix crash when pager program doesn't exist

Eric Sunshine (38):
      worktree: stop being overly intimate with run_command() internals
      CodingGuidelines: document which output goes to stdout vs. stderr
      worktree: send "chatty" messages to stderr
      git-worktree.txt: add missing `-v` to synopsis for `worktree list`
      t/lib-pager: use sane_unset() to avoid breaking &&-chain
      t1010: fix unnoticed failure on Windows
      t1020: avoid aborting entire test script when one test fails
      t4202: clarify intent by creating expected content less cleverly
      t5516: drop unnecessary subshell and command invocation
      t6300: make `%(raw:size) --shell` test more robust
      t9107: use shell parameter expansion to avoid breaking &&-chain
      tests: simplify construction of large blocks of text
      tests: use test_write_lines() to generate line-oriented output
      tests: fix broken &&-chains in compound statements
      tests: fix broken &&-chains in `$(...)` command substitutions
      tests: fix broken &&-chains in `{...}` groups
      tests: apply modern idiom for signaling test failure
      tests: apply modern idiom for exiting loop upon failure
      tests: simplify by dropping unnecessary `for` loops
      t0000-t3999: detect and signal failure within loop
      t4000-t4999: detect and signal failure within loop
      t5000-t5999: detect and signal failure within loop
      t6000-t9999: detect and signal failure within loop
      t/chainlint/*.test: don't use invalid shell syntax
      t/chainlint/*.test: fix invalid test cases due to mixing quote types
      t/chainlint/*.test: generalize self-test commentary
      t/chainlint/one-liner: avoid overly intimate chainlint.sed knowledge
      t/Makefile: optimize chainlint self-test
      chainlint.sed: improve ?!AMP?! placement accuracy
      chainlint.sed: improve ?!SEMI?! placement accuracy
      chainlint.sed: tolerate harmless ";" at end of last line in block
      chainlint.sed: drop unnecessary distinction between ?!AMP?! and ?!SEMI?!
      chainlint.sed: drop subshell-closing ">" annotation
      chainlint.sed: make here-doc "<<-" operator recognition more POSIX-like
      chainlint.sed: don't mistake `<< word` in string as here-doc operator
      chainlint.sed: stop throwing away here-doc tags
      chainlint.sed: swallow comments consistently
      chainlint.sed: stop splitting "(..." into separate lines "(" and "..."

Eric Wong (2):
      tests: disable fsync everywhere
      cbtree: remove broken and unused cb_unlink

Fabian Stelzer (14):
      ssh signing: support non ssh-* keytypes
      ssh signing: make sign/amend test more resilient
      test-lib: show missing prereq summary
      test-lib: introduce required prereq for test runs
      test-lib: make BAIL_OUT() work in tests and prereq
      t/fmt-merge-msg: do not redirect stderr
      t/fmt-merge-msg: make gpgssh tests more specific
      ssh signing: use sigc struct to pass payload
      ssh signing: add key lifetime test prereqs
      ssh signing: make verify-commit consider key lifetime
      ssh signing: make git log verify key lifetime
      ssh signing: make verify-tag consider key lifetime
      ssh signing: make fmt-merge-msg consider key lifetime
      ssh signing: verify ssh-keygen in test prereq

Glen Choo (5):
      t5516: add test case for pushing remote refspecs
      remote: move static variables into per-repository struct
      remote: use remote_state parameter internally
      remote: remove the_repository->remote_state from static methods
      remote: die if branch is not found in repository

Greg Hurrell (1):
      docs: add missing colon to Documentation/config/gpg.txt

Han-Wen Nienhuys (48):
      hash.h: provide constants for the hash IDs
      reftable: add LICENSE
      reftable: add error related functionality
      reftable: utility functions
      reftable: add blocksource, an abstraction for random access reads
      reftable: (de)serialization for the polymorphic record type.
      Provide zlib's uncompress2 from compat/zlib-compat.c
      reftable: reading/writing blocks
      reftable: a generic binary tree implementation
      reftable: write reftable files
      reftable: generic interface to tables
      reftable: read reftable files
      reftable: reftable file level tests
      reftable: add a heap-based priority queue for reftable records
      reftable: add merged table view
      reftable: implement refname validation
      reftable: implement stack, a mutable database of reftable files.
      reftable: add dump utility
      Add "test-tool dump-reftable" command.
      branch tests: test for errno propagating on failing read
      refs API: make refs_read_raw_ref() not set errno
      refs API: make parse_loose_ref_contents() not set errno
      refs: drop force_create argument of create_reflog API
      t1404: mark directory/file conflict tests with REFFILES
      show-branch: show reflog message
      test-ref-store: don't add newline to reflog message
      t1405: check for_each_reflog_ent_reverse() more thoroughly
      test-ref-store: tweaks to for-each-reflog-ent format
      refs/debug: trim trailing LF from reflog message
      test-ref-store: remove force-create argument for create-reflog
      test-ref-store: parse symbolic flag constants
      test-ref-store: plug memory leak in cmd_delete_refs
      refs: update comment.
      refs: introduce REF_SKIP_OID_VERIFICATION flag
      refs: introduce REF_SKIP_REFNAME_VERIFICATION flag
      t1430: remove refs using test-tool
      t1430: create valid symrefs using test-helper
      test-ref-store: print hash algorithm
      t5540: require REFFILES
      t5550: require REFFILES
      t7004: create separate tags for different tests
      t7004: use "test-tool ref-store" for reflog inspection
      refs: pass gitdir to packed_ref_store_create
      refs: print error message in debug output
      refs: centralize initialization of the base ref_store.
      reftable: fix typo in header
      reftable: signal overflow
      reftable: support preset file mode for writing

Hans Krentel (hakre) (1):
      ci(check-whitespace): update stale file top comments

Ivan Frade (2):
      fetch-pack: redact packfile urls in traces
      http-fetch: redact url on die() message

Jacob Vosmaer (1):
      upload-pack.c: increase output buffer size

James Limbouris (1):
      subtree: fix argument handling in check_parents

Jean-Noël Avila (20):
      doc: fix git credential synopsis
      doc: split placeholders as individual tokens
      doc: express grammar placeholders between angle brackets
      doc: use only hyphens as word separators in placeholders
      doc: git-ls-files: express options as optional alternatives
      doc: use three dots for indicating repetition instead of star
      doc: uniformize <URL> placeholders' case
      doc: git-http-push: describe the refs as pattern pairs
      doc: git-init: clarify file modes in octal.
      i18n: refactor "foo and bar are mutually exclusive"
      i18n: refactor "%s, %s and %s are mutually exclusive"
      i18n: turn "options are incompatible" into "cannot be used together"
      i18n: standardize "cannot open" and "cannot read"
      i18n: tag.c factorize i18n strings
      i18n: factorize "--foo requires --bar" and the like
      i18n: factorize "no directory given for --foo"
      i18n: refactor "unrecognized %(foo) argument" strings
      i18n: factorize "--foo outside a repository"
      i18n: ref-filter: factorize "%(foo) atom used without %(bar) atom"
      i18n: turn even more messages into "cannot be used together" ones

Jeff King (18):
      urlmatch: add underscore to URL_HOST_CHARS
      strbuf_addftime(): handle "%s" manually
      test_bitmap_hashes(): handle repository without bitmaps
      generate-cmdlist.sh: do not shell out to "sed"
      git-jump: pass "merge" arguments to ls-files
      t5319: corrupt more bytes of the midx checksum
      refs: work around gcc-11 warning with REF_HAVE_NEW
      fetch-pack: ignore SIGPIPE when writing to index-pack
      run-command: unify signal and regular logic for wait_or_whine()
      t7006: clean up SIGPIPE handling in trace2 tests
      t7006: simplify exit-code checks for sigpipe tests
      log: handle --decorate-refs with userformat "%d"
      log: load decorations with --simplify-by-decoration
      xdiff: drop CMP_ENV macro from xhistogram
      xdiff: drop xpparam_t parameter from histogram cmp_recs()
      xdiff: drop unused flags parameter from recs_match
      config.mak.dev: specify -std=gnu99 for gcc/clang
      doc/config: mark ssh allowedSigners example as literal

Jerry Zhang (3):
      git-apply: add --quiet flag
      git-apply: add --allow-empty flag
      git-apply: skip threeway in add / rename cases

Joel Holdsworth (9):
      git-p4: use with statements to close files after use in patchRCSKeywords
      git-p4: pre-compile RCS keyword regexes
      git-p4: add raw option to read_pipelines
      git-p4: open temporary patch file for write only
      git-p4: resolve RCS keywords in bytes not utf-8
      git-p4: print size values in appropriate units
      git-p4: show progress as an integer
      git-p4: remove "debug" verb
      git-p4: remove "rollback" verb

Johannes Altmanninger (1):
      t/perf: do not run tests in user's $SHELL

Johannes Schindelin (14):
      test-tool genzeros: generate large amounts of data more efficiently
      git-compat-util: introduce more size_t helpers
      ci: disallow directional formatting
      scalar: add a README with a roadmap
      scalar: create a rudimentary executable
      scalar: start documenting the command
      scalar: create test infrastructure
      scalar: let 'unregister' handle a deleted enlistment directory gracefully
      scalar: implement the `clone` subcommand
      scalar: teach 'clone' to support the --single-branch option
      scalar: allow reconfiguring an existing enlistment
      scalar: teach 'reconfigure' to optionally handle all registered enlistments
      scalar: implement the `version` command
      tests: set GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME only when needed

Johannes Sixt (2):
      generate-cmdlist.sh: spawn fewer processes
      generate-cmdlist.sh: replace for loop by printf's auto-repeat feature

John Cai (2):
      docs: fix places that break compilation in MyFirstObjectWalk
      docs: add headers in MyFirstObjectWalk

Jonathan Tan (2):
      packfile: avoid overflowing shift during decode
      Doc: no midx and partial clone relation

Josh Steadmon (5):
      trace2: disable tr2_dst before warning on write errors
      branch: accept multiple upstream branches for tracking
      branch: add flags and config to inherit tracking
      config: require lowercase for branch.*.autosetupmerge
      l10n: README: call more attention to plural strings

Junio C Hamano (22):
      for-each-ref: delay parsing of --sort=<atom> options
      MyFirstContribution: teach to use "format-patch --base=auto"
      unsetenv(3) returns int, not void
      init doc: --shared=0xxx does not give umask but perm bits
      0th batch for early fixes
      A bit more regression fixes
      refs: document callback for reflog-ent iterators
      The first batch to start the current cycle
      revision: use C99 declaration of variable in for() loop
      grep: clarify what `grep.patternType=default` means
      flex-array: simplify compiler-specific workaround
      The second batch
      The third batch
      t4204 is not sanitizer clean at all
      format-patch: mark rev_info with UNLEAK
      merge: allow to pretend a merge is made into a different branch
      The fourth batch
      The fifth batch
      SubmittingPatchs: clarify choice of base and testing
      The sixth batch
      The seventh batch
      Git 2.35-rc0

Kashav Madan (1):
      help: make auto-correction prompt more consistent

Lessley Dennington (7):
      git: ensure correct git directory setup with -h
      commit-graph: return if there is no git directory
      test-read-cache: set up repo after git directory
      repo-settings: prepare_repo_settings only in git repos
      diff: replace --staged with --cached in t1092 tests
      diff: enable and test the sparse index
      blame: enable and test the sparse index

Lénaïc Huard (1):
      grep: align default colors with GNU grep ones

Marc Strapetz (1):
      t/README: fix typo

Matt Cooper (4):
      t1051: introduce a smudge filter test for extremely large files
      odb: teach read_blob_entry to use size_t
      odb: guard against data loss checking out a huge file
      clean/smudge: allow clean filters to process extremely large files

Matthew John Cheetham (1):
      scalar: implement the `delete` command

Mugdha Pattnaik (1):
      submodule: absorb git dir instead of dying on deinit

Neeraj Singh (2):
      tmp-objdir: new API for creating temporary writable databases
      tmp-objdir: disable ref updates when replacing the primary odb

Philip Oakley (3):
      repack.c: LLP64 compatibility, upcast unity for left shift
      diffcore-delta.c: LLP64 compatibility, upcast unity for left shift
      object-file.c: LLP64 compatibility, upcast unity for left shift

Phillip Wood (19):
      diff histogram: intern strings
      xdiff: avoid unnecessary memory allocations
      xdiff: simplify comparison
      xdiff: implement a zealous diff3, or "zdiff3"
      diff --color-moved: add perf tests
      diff --color-moved: clear all flags on blocks that are too short
      diff --color-moved: factor out function
      diff --color-moved: rewind when discarding pmb
      diff --color-moved=zebra: fix alternate coloring
      diff --color-moved: avoid false short line matches and bad zebra coloring
      diff: simplify allow-indentation-change delta calculation
      diff --color-moved-ws=allow-indentation-change: simplify and optimize
      diff --color-moved: call comparison function directly
      diff --color-moved: unify moved block growth functions
      diff --color-moved: shrink potential moved blocks as we go
      diff --color-moved: stop clearing potential moved blocks
      diff --color-moved-ws=allow-indentation-change: improve hash lookups
      diff: use designated initializers for emitted_diff_symbol
      diff --color-moved: intern strings

René Scharfe (6):
      mergesort: avoid left shift overflow
      log: let --invert-grep only invert --grep
      t4202: fix patternType setting in --invert-grep test
      daemon: plug memory leak on overlong path
      grep/pcre2: use PCRE2_UTF even with ASCII patterns
      grep/pcre2: factor out literal variable

Robert Estelle (3):
      color: add missing GIT_COLOR_* white/black constants
      color: support "default" to restore fg/bg color
      color: allow colors to be prefixed with "reset"

Robin Jarry (1):
      receive-pack: ignore SIGPIPE while reporting status to client

Sergey Organov (2):
      stash: implement '--staged' option for 'push' and 'save'
      stash: get rid of unused argument in stash_staged()

Taylor Blau (10):
      midx.c: clean up chunkfile after reading the MIDX
      midx.c: don't leak MIDX from verify_midx_file
      t/helper/test-read-midx.c: free MIDX within read_midx_file()
      builtin/pack-objects.c: don't leak memory via arguments
      builtin/repack.c: avoid leaking child arguments
      builtin/multi-pack-index.c: don't leak concatenated options
      midx.c: write MIDX filenames to strbuf
      pack-bitmap.c: don't leak type-level bitmaps
      pack-bitmap.c: more aggressively free in free_bitmap_index()
      packfile: make `close_pack_revindex()` static

Teng Long (1):
      midx: fix a formatting issue in "multi-pack-index.txt"

Thiago Perrotta (2):
      send-email: programmatically generate bash completions
      send-email docs: add format-patch options

Thomas Weißschuh (1):
      var: add GIT_DEFAULT_BRANCH variable

Victoria Dye (12):
      reset: rename is_missing to !is_in_reset_tree
      reset: preserve skip-worktree bit in mixed reset
      sparse-index: update command for expand/collapse test
      test-read-cache.c: prepare_repo_settings after config init
      sparse-index: avoid unnecessary cache tree clearing
      sparse-index: add ensure_correct_sparsity function
      sparse-index: update do_read_index to ensure correct sparsity
      reset: expand test coverage for sparse checkouts
      reset: integrate with sparse index
      reset: make sparse-aware (except --mixed)
      reset: make --mixed sparse-aware
      unpack-trees: improve performance of next_cache_entry

William Sprent (1):
      fast-export: fix surprising behavior with --first-parent

Yoichi Nakayama (1):
      completion: add human and auto: date format

brian m. carlson (1):
      git-compat-util: add a test balloon for C99 support

Ævar Arnfjörð Bjarmason (86):
      refs API: add a version of refs_resolve_ref_unsafe() with "errno"
      refs API: make refs_rename_ref_available() static
      reflog tests: add --updateref tests
      refs/files: remove "name exist?" check in lock_ref_oid_basic()
      refs API: remove refs_read_ref_full() wrapper
      refs API: make resolve_gitlink_ref() not set errno
      refs API: make loose_fill_ref_dir() not set errno
      refs API: make files_copy_or_rename_ref() et al not set errno
      refs API: ignore errno in worktree.c's add_head_info()
      refs API: ignore errno in worktree.c's find_shared_symref()
      refs tests: ignore ignore errno in test-ref-store helper
      refs API: make refs_resolve_refdup() not set errno
      refs API: make refs_ref_exists() not set errno
      refs API: make resolve_ref_unsafe() not set errno
      refs API: make expand_ref() & repo_dwim_log() not set errno
      refs API: don't expose "errno" in run_transaction_hook()
      refs API: post-migration API renaming [1/2]
      refs API: post-migration API renaming [2/2]
      Makefile: move git-SCRIPT-DEFINES adjacent to $(SCRIPT_DEFINES)
      Makefile: remove $(GIT_VERSION) from $(SCRIPT_DEFINES)
      Makefile: remove $(NO_CURL) from $(SCRIPT_DEFINES)
      git-instaweb: unconditionally assume that gitweb is mod_perl capable
      git-sh-setup: remove unused sane_egrep() function
      git-sh-setup: remove "sane_grep", it's not needed anymore
      leak tests: mark a read-tree test as passing SANITIZE=leak
      leak tests: mark "sort" test as passing SANITIZE=leak
      leak tests: mark most gettext tests as passing with SANITIZE=leak
      leak tests: mark some misc tests as passing with SANITIZE=leak
      leak tests: mark some rev-list tests as passing with SANITIZE=leak
      leak tests: mark some rev-parse tests as passing with SANITIZE=leak
      leak tests: mark some update-index tests as passing with SANITIZE=leak
      leak tests: mark some notes tests as passing with SANITIZE=leak
      leak tests: mark some apply tests as passing with SANITIZE=leak
      leak tests: mark some diff tests as passing with SANITIZE=leak
      leak tests: mark some add tests as passing with SANITIZE=leak
      leak tests: mark some clone tests as passing with SANITIZE=leak
      leak tests: mark some status tests as passing with SANITIZE=leak
      leak tests: mark some config tests as passing with SANITIZE=leak
      leak tests: mark some fast-import tests as passing with SANITIZE=leak
      command-list.txt: sort with "LC_ALL=C sort"
      generate-cmdlist.sh: trivial whitespace change
      generate-cmdlist.sh: don't call get_categories() from category_list()
      generate-cmdlist.sh: run "grep | sort", not "sort | grep"
      generate-cmdlist.sh: stop sorting category lines
      generate-cmdlist.sh: replace "grep' invocation with a shell version
      generate-cmdlist.sh: don't parse command-list.txt thrice
      parse-options.c: use "enum parse_opt_result" for parse_nodash_opt()
      checkout: fix "branch info" memory leaks
      CI: remove Travis CI support
      CI: use shorter names that fit in UX tooltips
      CI: rename the "Linux32" job to lower-case "linux32"
      CI: use "$runs_on_pool", not "$jobname" to select packages & config
      CI: don't run "make test" twice in one job
      upload-archive: use regular "struct child_process" pattern
      run-command API users: use strvec_pushv(), not argv assignment
      run-command tests: use strvec_pushv(), not argv assignment
      run-command API users: use strvec_pushl(), not argv construction
      run-command API users: use strvec_push(), not argv construction
      run-command API: remove "argv" member, always use "args"
      difftool: use "env_array" to simplify memory management
      run-command API: remove "env" member, always use "env_array"
      common-main.c: call exit(), don't return
      pack-objects: use BUG(...) not die("BUG: ...")
      strbuf.h: use BUG(...) not die("BUG: ...")
      pathspec: use BUG(...) not die("BUG:%s:%d....", <file>, <line>)
      object.c: use BUG(...) no die("BUG: ...") in lookup_object_by_type()
      usage.c: add a die_message() routine
      usage.c API users: use die_message() for "fatal :" + exit 128
      usage.c API users: use die_message() for error() + exit 128
      gc: return from cmd_gc(), don't call exit()
      usage.c + gc: add and use a die_message_errno()
      config API: use get_error_routine(), not vreportf()
      pull, fetch: fix segfault in --set-upstream option
      stash: don't show "git stash push" usage on bad "git stash" usage
      reflog delete: narrow scope of "cmd" passed to count_reflog_ent()
      reflog expire: narrow scope of "cb" in cmd_reflog_expire()
      reflog: change one->many worktree->refnames to use a string_list
      reflog expire: use "switch" over enum values
      reflog expire: refactor & use "tip_commit" only for UE_NORMAL
      reflog expire: don't use lookup_commit_reference_gently()
      reflog: reduce scope of "struct rev_info"
      refs files-backend: assume cb->newlog if !EXPIRE_REFLOGS_DRY_RUN
      reflog + refs-backend: move "verbose" out of the backend
      Makefile: correct the dependency graph of hook-list.h
      Makefile: move -DPAGER_ENV from BASIC_CFLAGS to EXTRA_CPPFLAGS
      Makefile: don't invoke msgfmt with --statistics

Øystein Walle (2):
      status: count stash entries in separate function
      status: print stash info with --porcelain=v2 --show-stash

徐沛文 (Aleen) (3):
      doc: git-format-patch: describe the option --always
      am: support --empty=<option> to handle empty patches
      am: support --allow-empty to record specific empty patches


Version v2.34.8; changes since v2.34.7:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (6):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (16):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8
      Git 2.34.8

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.34.7; changes since v2.34.6:
---------------------------------------

Jeff King (3):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      http: support CURLOPT_PROTOCOLS_STR

Johannes Schindelin (5):
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6
      Git 2.33.7
      Git 2.34.7

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.34.6; changes since v2.34.5:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (5):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5
      Git 2.33.6
      Git 2.34.6

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.34.5; changes since v2.34.4:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (18):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      Git 2.30.6
      Git 2.31.5
      Git 2.32.4
      Git 2.33.5
      Git 2.34.5


Version v2.34.4; changes since v2.34.3:
---------------------------------------

Carlo Marcelo Arenas Belón (5):
      t: regression git needs safe.directory when using sudo
      git-compat-util: avoid failing dir ownership checks if running privileged
      t0034: add negative tests and allow git init to mostly work under sudo
      git-compat-util: allow root to access both SUDO_UID and root owned
      setup: tighten ownership checks post CVE-2022-24765

Johannes Schindelin (5):
      Git 2.30.5
      Git 2.31.4
      Git 2.32.3
      Git 2.33.4
      Git 2.34.4


Version v2.34.3; changes since v2.34.2:
---------------------------------------

Derrick Stolee (2):
      t0033: add tests for safe.directory
      setup: opt-out of check with safe.directory=*

Junio C Hamano (1):
      Git 2.30.4

Matheus Valadares (1):
      setup: fix safe.directory key not being checked


Version v2.34.2; changes since v2.34.1:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      mingw: avoid fallback for {local,gm}time_r()

Johannes Schindelin (9):
      GIT-VERSION-GEN: bump to v2.33.1
      Add a function to determine whether a path is owned by the current user
      setup_git_directory(): add an owner check for the top-level directory
      Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
      Git 2.30.3
      Git 2.31.2
      Git 2.32.1
      Git 2.33.2
      Git 2.34.2


Version v2.34.1; changes since v2.34.0:
---------------------------------------

Derrick Stolee (1):
      dir: revert "dir: select directories correctly"

Erwin Villejo (1):
      pull: should be noop when already-up-to-date

Junio C Hamano (3):
      Revert "grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data"
      Revert "editor: save and reset terminal after calling EDITOR"
      Git 2.34.1

Philippe Blain (1):
      SubmittingPatches: fix Asciidoc syntax in "GitHub CI" section


Version v2.34.0; changes since v2.34.0-rc2:
-------------------------------------------

Alexander Shopov (3):
      l10n: bg.po: Updated Bulgarian translation (5230t)
      l10n: bg.po: Updated Bulgarian translation (5210t)
      l10n: bg.po: Updated Bulgarian translation (5211t)

Arusekk (3):
      l10n: pl: Update translation
      l10n: pl: 2.34.0 round 2
      l10n: pl: 2.34.0 round 3

Bagas Sanjaya (3):
      l10n: po-id for 2.34 (round 1)
      l10n: po-id for 2.34 (round 2)
      l10n: po-id for 2.34 (round 3)

Christopher Diaz Riveros (1):
      l10n: es: 2.34.0 round 2

Daniel Santos (3):
      l10n: pt_PT: update translation table
      l10n: pt_PT: change email
      l10n: pt_PT: cleaning duplicate translations (#2)

Derrick Stolee (1):
      maintenance: disable cron on macOS

Emir Sarı (3):
      l10n: tr: v2.34.0 round 1
      l10n: tr: v2.34.0 round 2
      l10n: tr: v2.34.0 round 3

Fangyi Zhou (3):
      l10n: zh-CN: v2.34.0 round 1
      l10n: zh_CN: 2.34.0 Round 2
      l10n: zh_CN: v2.34.0 round 3

Jean-Noël Avila (3):
      l10n: fr v2.34.0 rnd1
      l10n: fr: v2.34.0 round 2
      l10n: fr: v2.34.0 rnd 3

Jeff King (1):
      t/lib-gpg: avoid broken versions of ssh-keygen

Jiang Xin (5):
      l10n: git.pot: v2.34.0 round 1 (134 new, 154 removed)
      l10n: git.pot: v2.34.0 round 2 (3 new, 3 removed)
      l10n: git.pot: v2.34.0 round 3 (1 new)
      l10n: ko: fix typos found by git-po-helper
      l10n: it: fix typos found by git-po-helper

Johannes Schindelin (1):
      simple-ipc: work around issues with Cygwin's Unix socket emulation

Jordi Mas (3):
      l10n: Update Catalan translation
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Josh Steadmon (1):
      trace2: increment event format version

Junio C Hamano (4):
      pull: --ff-only should make it a noop when already-up-to-date
      A few hotfixes
      Revert "connected: do not sort input revisions"
      Git 2.34

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git v2.34.0

Peter Krefting (3):
      l10n: sv.po: Fix git-po-helper breakage
      l10n: sv.po: Update Swedish translation (5210t0f0u)
      l10n: sv.po: Update Swedish translation (5211t0f0)

Trần Ngọc Quân (2):
      l10n: vi(5210t): Translation for v2.34.0 rd2
      l10n: vi(5211t): Translation for v2.34.0 rd3

Yi-Jyun Pan (2):
      l10n: zh_TW.po: v2.34.0 round 2 (0 untranslated)
      l10n: zh_TW.po: v2.34.0 round 3 (0 untranslated)

Ævar Arnfjörð Bjarmason (2):
      object-file: fix SEGV on free() regression in v2.34.0-rc2
      object-file: free(*contents) only in read_loose_object() caller


Version v2.34.0-rc2; changes since v2.34.0-rc1:
-----------------------------------------------

Adam Dinwoodie (1):
      t/lib-git.sh: fix ACL-related permissions failure

Alex Riesen (2):
      pull: honor --no-verify and do not call the commit-msg hook
      Document positive variant of commit and merge option "--no-verify"

Junio C Hamano (2):
      A few fixes before -rc2
      Git 2.34-rc2

Robin Dupret (1):
      http-backend: remove a duplicated code branch

Victoria Dye (1):
      async_die_is_recursing: work around GCC v11.x issue on Fedora

Ævar Arnfjörð Bjarmason (1):
      parse-options.[ch]: revert use of "enum" for parse_options()


Version v2.34.0-rc1; changes since v2.34.0-rc0:
-----------------------------------------------

Derrick Stolee (1):
      dir: fix directory-matching bug

Glen Choo (3):
      fsck: verify commit graph when implicitly enabled
      fsck: verify multi-pack-index when implictly enabled
      gc: perform incremental repack when implictly enabled

Hamza Mahfooz (3):
      grep: refactor next_match() and match_one_pattern() for external use
      pretty: colorize pattern matches in commit messages
      grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data

Jeff King (1):
      t5310: drop lib-bundle.sh include

Jiang Xin (1):
      i18n: fix typos found during l10n for git 2.34.0

Junio C Hamano (3):
      format-patch (doc): clarify --base=auto
      A few more topics before -rc1
      Git 2.34-rc1

Phillip Wood (1):
      rebase -i: fix rewording with --committer-date-is-author-date

René Scharfe (2):
      gpg-interface: handle missing " with " gracefully in parse_ssh_output()
      gpg-interface: avoid buffer overrun in parse_ssh_output()

Ævar Arnfjörð Bjarmason (3):
      commit-graph tests: fix error-hiding graph_git_two_modes() helper
      commit-graph tests: fix another graph_git_two_modes() helper
      commit-graph: don't consider "replace" objects with "verify"


Version v2.34.0-rc0; changes since v2.33.8:
-------------------------------------------

Atharva Raykar (11):
      submodule--helper: introduce add-config subcommand
      submodule--helper: add options for compute_submodule_clone_url()
      submodule--helper: refactor resolve_relative_url() helper
      submodule--helper: remove repeated code in sync_submodule()
      dir: libify and export helper functions from clone.c
      submodule--helper: convert the bulk of cmd_add() to C
      submodule--helper: remove add-clone subcommand
      submodule--helper: remove add-config subcommand
      submodule--helper: remove resolve-relative-url subcommand
      submodule--helper: rename compute_submodule_clone_url()
      submodule--helper: run update procedures from C

Azeem Bande-Ali (1):
      help.c: help.autocorrect=prompt waits for user action

Bagas Sanjaya (7):
      make: add INSTALL_STRIP option variable
      ls-files: use imperative mood for -X and -z option description
      difftool: fix word spacing in the usage strings
      blame: describe default output format
      bisect--helper: add space between colon and following sentence
      blame: document --color-* options
      archive: describe compression level option

Ben Boeckel (2):
      advice: add enum variants for missing advice variables
      advice: remove read uses of most global `advice_` variables

Carlo Marcelo Arenas Belón (11):
      win32: allow building with pedantic mode enabled
      developer: enable pedantic by default
      t0301: fixes for windows compatibility
      credential-cache: check for windows specific errors
      git-compat-util: include declaration for unix sockets in windows
      simple-ipc: move definition of ipc_active_state outside of ifdef
      lazyload.h: use an even more generic function pointer than FARPROC
      Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better
      terminal: teach git how to save/restore its terminal settings
      editor: save and reset terminal after calling EDITOR
      wrapper: remove xunsetenv()

David Aguilar (5):
      difftool: create a tmpdir path without repeated slashes
      difftool: refactor dir-diff to write files using helper functions
      difftool: remove an unnecessary call to strbuf_release()
      difftool: add a missing space to the run_dir_diff() comments
      mergetools/xxdiff: prevent segfaults from stopping difftool

David Turner (3):
      t4060: remove unused variable
      diff --submodule=diff: do not fail on ever-initialied deleted submodules
      diff --submodule=diff: don't print failure message twice

Derrick Stolee (34):
      t1092: test merge conflicts outside cone
      add: allow operating on a sparse-only index
      pathspec: stop calling ensure_full_index
      add: ignore outside the sparse-checkout in refresh()
      add: remove ensure_full_index() with --renormalize
      t7519: rewrite sparse index test
      sparse-index: silently return when not using cone-mode patterns
      unpack-trees: fix nested sparse-dir search
      sparse-index: silently return when cache tree fails
      sparse-index: use WRITE_TREE_MISSING_OK
      sparse-checkout: create helper methods
      attr: be careful about sparse directories
      sparse-index: add SPARSE_INDEX_MEMORY_ONLY flag
      sparse-checkout: clear tracked sparse dirs
      diff: ignore sparse paths in diffstat
      merge: make sparse-aware with ORT
      merge-ort: expand only for out-of-cone conflicts
      t1092: add cherry-pick, rebase tests
      sequencer: ensure full index if not ORT strategy
      sparse-index: integrate with cherry-pick and rebase
      t/perf/run: fix bin-wrappers computation
      t3705: test that 'sparse_entry' is unstaged
      t1092: behavior for adding sparse files
      dir: select directories correctly
      dir: fix pattern matching on dirs
      add: fail when adding an untracked sparse file
      add: skip tracked paths outside sparse-checkout cone
      add: implement the --sparse option
      add: update --chmod to skip sparse paths
      add: update --renormalize to skip sparse paths
      rm: add --sparse option
      rm: skip sparse paths with missing SKIP_WORKTREE
      mv: refuse to move sparse paths
      advice: update message to suggest '--sparse'

Elijah Newren (23):
      merge-ort: rename str{map,intmap,set}_func()
      diffcore-rename: use a mem_pool for exact rename detection's hashmap
      merge-ort: add pool_alloc, pool_calloc, and pool_strndup wrappers
      merge-ort: set up a memory pool
      merge-ort: switch our strmaps over to using memory pools
      diffcore-rename, merge-ort: add wrapper functions for filepair alloc/dealloc
      merge-ort: store filepairs and filespecs in our mem_pool
      merge-ort: reuse path strings in pool_alloc_filespec
      merge-ort: remove compile-time ability to turn off usage of memory pools
      Change default merge backend from recursive to ort
      Update docs for change of default merge backend
      tests: remove leftover untracked files
      t2500: add various tests for nuking untracked files
      checkout, read-tree: fix leak of unpack_trees_options.dir
      read-tree, merge-recursive: overwrite ignored files by default
      unpack-trees: introduce preserve_ignored to unpack_trees_options
      unpack-trees: make dir an internal-only struct
      Remove ignored files by default when they are in the way
      Change unpack_trees' 'reset' flag into an enum
      unpack-trees: avoid nuking untracked dir in way of unmerged file
      unpack-trees: avoid nuking untracked dir in way of locally deleted file
      Comment important codepaths regarding nuking untracked files/dirs
      Documentation: call out commands that nuke untracked files/directories

Emily Shaffer (3):
      tr2: make process info collection platform-generic
      tr2: log parent process name
      hook.c: add a hook_exists() wrapper and use it in bugreport.c

Eric Wong (1):
      doc/technical: update note about core.multiPackIndex

Fabian Stelzer (11):
      ssh signing: preliminary refactoring and clean-up
      ssh signing: add test prereqs
      ssh signing: add ssh key format and signing code
      ssh signing: retrieve a default key from ssh-agent
      ssh signing: provide a textual signing_key_id
      ssh signing: verify signatures using ssh-keygen
      ssh signing: duplicate t7510 tests for commits
      ssh signing: tests for logs, tags & push certs
      ssh signing: test that gpg fails for unknown keys
      ssh signing: fmt-merge-msg tests & config parse
      ssh signing: clarify trustlevel usage in docs

Glen Choo (1):
      MyFirstContribution: Document --range-diff option when writing v2

Greg Hurrell (1):
      gitweb: use HEAD as secondary sort key in git_get_heads_list()

Han-Wen Nienhuys (14):
      t6050: use git-update-ref rather than filesystem access
      t1503: mark symlink test as REFFILES
      t6120: use git-update-ref rather than filesystem access
      t3320: use git-symbolic-ref rather than filesystem access
      t2402: use ref-store test helper to create broken symlink
      t1405: use 'git reflog exists' to check reflog existence
      t1405: mark test for 'git pack-refs' as REFFILES
      t1410: mark test as REFFILES
      t7064: use update-ref -d to remove upstream branch
      t6500: use "ls -1" to snapshot ref database state
      t6001: avoid direct file system access
      refs: remove EINVAL errno output from specification of read_raw_ref_fn
      refs/files-backend: stop setting errno from lock_ref_oid_basic
      refs: make errno output explicit for read_raw_ref_fn

Jacob Vosmaer (2):
      pkt-line: add stdio packet write functions
      upload-pack: use stdio in send_ref callbacks

Jeff Hostetler (7):
      trace2: add trace2_child_ready() to report on background children
      simple-ipc: preparations for supporting binary messages.
      simple-ipc/ipc-win32: add trace2 debugging
      simple-ipc/ipc-win32: add Windows ACL to named pipe
      run-command: create start_bg_command
      t/helper/simple-ipc: convert test-simple-ipc to use start_bg_command
      t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()

Jeff King (58):
      http: drop support for curl < 7.11.1
      http: drop support for curl < 7.16.0
      http: drop support for curl < 7.19.4
      refs: drop unused "flags" parameter to lock_ref_oid_basic()
      t0410: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP
      t5310: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP
      pack-bitmap: drop repository argument from prepare_midx_bitmap_git()
      pack-bitmap: drop bitmap_index argument from try_partial_reuse()
      t5551: test v2-to-v0 http protocol fallback
      http-backend: handle HTTP_GIT_PROTOCOL CGI variable
      docs/http-backend: mention v2 protocol
      docs/git: discuss server-side config for GIT_PROTOCOL
      docs/protocol-v2: point readers transport config discussion
      difftool: prepare "diff" cmdline in cmd_difftool()
      serve: rename is_command() to parse_command()
      serve: return capability "value" from get_capability()
      serve: add "receive" method for v2 capabilities table
      serve: provide "receive" function for object-format capability
      serve: provide "receive" function for session-id capability
      serve: drop "keys" strvec
      ls-refs: ignore very long ref-prefix counts
      docs/protocol-v2: clarify some ls-refs ref-prefix details
      serve: reject bogus v2 "command=ls-refs=foo"
      serve: reject commands used as capabilities
      ls-refs: reject unknown arguments
      grep: stop modifying buffer in strip_timestamp
      grep: stop modifying buffer in show_line()
      grep: stop modifying buffer in grep_source_1()
      grep: mark "haystack" buffers as const
      grep: store grep_source buffer as const
      t7900: clean up some more broken refs
      t5516: don't use HEAD ref for invalid ref-deletion tests
      t5600: provide detached HEAD for corruption failures
      t5312: drop "verbose" helper
      t5312: create bogus ref as necessary
      t5312: test non-destructive repack
      t5312: be more assertive about command failure
      refs-internal.h: move DO_FOR_EACH_* flags next to each other
      refs-internal.h: reorganize DO_FOR_EACH_* flag documentation
      refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag
      refs: omit dangling symrefs when using GIT_REF_PARANOIA
      refs: turn on GIT_REF_PARANOIA by default
      repack, prune: drop GIT_REF_PARANOIA settings
      ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN
      ref-filter: drop broken-ref code entirely
      refs: drop "broken" flag from for_each_fullref_in()
      test-read-midx: fix leak of bitmap_index struct
      t1006: clean up broken objects
      cat-file: mention --unordered along with --batch-all-objects
      cat-file: disable refs/replace with --batch-all-objects
      cat-file: split ordered/unordered batch-all-objects callbacks
      cat-file: use packed_object_info() for --batch-all-objects
      gpg-interface: fix leak of "line" in parse_ssh_output()
      gpg-interface: fix leak of strbufs in get_ssh_key_fingerprint()
      send-pack: complain about "expecting report" with --helper-status
      transport-helper: recognize "expecting report" error from send-pack
      submodule: drop unused sm_name parameter from append_fetch_remotes()
      Documentation/Makefile: fix lint-docs mkdir dependency

Jiang Xin (1):
      ci: new github-action for git-l10n code review

Johannes Altmanninger (4):
      Documentation/git-status: remove impossible porcelain status DR and DC
      Documentation/diff-format: state in which cases porcelain status is T
      Documentation/git-status: document porcelain status T (typechange)
      Documentation/git-status: mention how to detect copies

Johannes Schindelin (23):
      tests: exercise the RUNTIME_PREFIX feature
      expand_user_path(): remove stale part of the comment
      expand_user_path(): clarify the role of the `real_home` parameter
      Use a better name for the function interpolating paths
      interpolate_path(): allow specifying paths relative to the runtime prefix
      t5520: do not use `pull.rebase=preserve`
      remote: warn about unhandled branch.<name>.rebase values
      tests: stop testing `git rebase --preserve-merges`
      pull: remove support for `--rebase=preserve`
      rebase: drop support for `--preserve-merges`
      git-svn: drop support for `--preserve-merges`
      rebase: drop the internal `rebase--interactive` command
      rebase: remove obsolete code comment
      rebase: stop mentioning the -p option in comments
      rebase: remove a no-longer-used function
      sequencer: restrict scope of a formerly public function
      commit-graph: when closing the graph, also release the slab
      pull: release packs before fetching
      run-command: prettify the `RUN_COMMAND_*` flags
      run-command: offer to close the object store before running
      run_auto_maintenance(): implicitly close the object store
      Close object store closer to spawning child processes
      ci(windows): ensure that we do not pick up random executables

Johannes Sixt (8):
      lazyload.h: fix warnings about mismatching function pointer types
      t4034/cpp: actually test that operator tokens are not split
      t4034: add tests showing problematic cpp tokenizations
      userdiff-cpp: tighten word regex
      userdiff-cpp: prepare test cases with yet unsupported features
      userdiff-cpp: permit the digit-separating single-quote in numbers
      userdiff-cpp: learn the C++ spaceship operator
      userdiff-cpp: back out the digit-separators in numbers

Jonathan Tan (19):
      submodule: lazily add submodule ODBs as alternates
      grep: use submodule-ODB-as-alternate lazy-addition
      grep: typesafe versions of grep_source_init
      grep: read submodule entry with explicit repo
      grep: allocate subrepos on heap
      grep: add repository to OID grep sources
      submodule-config: pass repo upon blob config read
      t7814: show lack of alternate ODB-adding
      submodule: remove unnecessary unabsorbed fallback
      repository: support unabsorbed in repo_submodule_init
      revision: remove "submodule" from opt struct
      submodule: extract path to submodule gitdir func
      refs: plumb repo into ref stores
      refs: teach arbitrary repo support to iterators
      refs: peeling non-the_repository iterators is BUG
      merge-{ort,recursive}: remove add_submodule_odb()
      object-file: only register submodule ODB if needed
      submodule: pass repo to check_has_commit()
      submodule: trace adding submodule ODB as alternate

Josh Steadmon (1):
      sequencer: advise if skipping cherry-picked commit

Junio C Hamano (22):
      expand_user_path: allow in-flight topics to keep using the old name
      bisect: do not run show-branch just to show the current commit
      bisect: simplify return code from bisect_checkout()
      userdiff: comment on the builtin patterns
      The first batch post 2.33
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      The eighth batch
      The ninth batch
      The tenth batch
      The eleventh batch
      Twelfth batch
      signature-format.txt: explain and illustrate multi-line headers
      Thirteenth batch
      The fourteenth batch
      branch (doc): -m/-c copies config and reflog
      The fifteenth batch
      Git 2.34-rc0

Kaartic Sivaraam (1):
      submodule--helper: fix incorrect newlines in an error message

Lénaïc Huard (4):
      cache.h: Introduce a generic "xdg_config_home_for(…)" function
      maintenance: `git maintenance run` learned `--scheduler=<scheduler>`
      maintenance: add support for systemd timers on Linux
      maintenance: fix test t7900-maintenance.sh

Mahi Kolla (1):
      clone: set submodule.recurse=true if submodule.stickyRecursiveClone enabled

Martin Ågren (5):
      config.txt: fix typo
      git-multi-pack-index.txt: change "folder" to "directory"
      gitignore.txt: change "folder" to "directory"
      gitweb.txt: change "folder" to "directory"
      git-bundle.txt: add missing words and punctuation

Matheus Tavares (2):
      grep: demonstrate bug with textconv attributes and submodules
      add, rm, mv: fix bug that prevents the update of non-sparse dirs

Matthias Aßhauer (1):
      help: make sure local html page exists before calling external processes

Miriam Rubio (3):
      t6030-bisect-porcelain: add tests to control bisect run exit cases
      t6030-bisect-porcelain: add test for bisect visualize
      bisect--helper: retire `--bisect-next-check` subcommand

Orgad Shaneh (1):
      doc: fix capitalization in "git status --porcelain=v2" description

Patrick Steinhardt (15):
      fetch-pack: speed up loading of refs via commit graph
      revision: separate walk and unsorted flags
      connected: do not sort input revisions
      revision: stop retrieving reference twice
      commit-graph: split out function to search commit position
      revision: avoid hitting packfiles when commits are in commit-graph
      ls-refs: reuse buffer when sending refs
      fetch: skip formatting updated refs with `--quiet`
      fetch: speed up lookup of want refs via commit-graph
      fetch: avoid unpacking headers in object existence check
      connected: refactor iterator to return next object ID directly
      fetch-pack: optimize loading of refs via commit graph
      fetch: refactor fetch refs to be more extendable
      fetch: merge fetching and consuming refs
      fetch: avoid second connectivity check if we already have all objects

Philippe Blain (3):
      test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause'
      test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause'
      test-lib-functions: keep user's debugger config files and TERM in 'debug'

Phillip Wood (14):
      t3407: run tests in $TEST_DIRECTORY
      t3407: use test_commit
      t3407: use test_cmp_rev
      t3407: rename a variable
      t3407: use test_path_is_missing
      t3407: strengthen rebase --abort tests
      t3407: rework rebase --quit tests
      rebase: use our standard error return value
      rebase: use lookup_commit_reference_by_name()
      rebase: dereference tags
      sequencer.c: factor out a function
      rebase: fix todo-list rereading
      sparse index: fix use-after-free bug in cache_tree_verify()
      t1092: run "rebase --apply" without "-q" in testing

Pranit Bauva (2):
      run-command: make `exists_in_PATH()` non-static
      bisect--helper: reimplement `bisect_visualize()` shell function in C

René Scharfe (24):
      merge-recursive: use fspathcmp() in path_hashmap_cmp()
      index-pack: use xopen in init_thread
      oidset: make oidset_size() an inline function
      midx: inline nth_midxed_pack_entry()
      packfile: convert mark_bad_packed_object() to object_id
      packfile: convert has_packed_and_bad() to object_id
      packfile: use oidset for bad objects
      packfile: release bad_objects in close_pack()
      test-mergesort: use strbuf_getline()
      test-mergesort: add sort subcommand
      test-mergesort: add test subcommand
      test-mergesort: add generate subcommand
      test-mergesort: add unriffle mode
      test-mergesort: add unriffle_skewed mode
      p0071: measure sorting of already sorted and reversed files
      p0071: test performance of llist_mergesort()
      mergesort: use ranks stack
      p3400: stop using tac(1)
      t3905: show failure to ignore sub-repo
      read-cache: add verify_path_internal()
      read-cache: let verify_path() reject trailing dir separators again
      test-mergesort: use repeatable random numbers
      perf: disable automatic housekeeping
      add: don't write objects with --dry-run

Robert Estelle (1):
      completion: fix incorrect bash/zsh string equality check

SZEDER Gábor (9):
      t1600-index: remove unnecessary redirection
      t1600-index: don't run git commands upstream of a pipe
      t1600-index: disable GIT_TEST_SPLIT_INDEX
      read-cache: look for shared index files next to the index, too
      tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests
      read-cache: fix GIT_TEST_SPLIT_INDEX
      commit-graph: fix bogus counter in "Scanning merged commits" progress line
      entry: show finer-grained counter in "Filtering content" progress line
      command-list.txt: remove 'sparse-index' from main help

Tanushree Tumane (1):
      bisect--helper: reimplement `bisect_run` shell function in C

Tassilo Horn (1):
      userdiff: improve java hunk header regex

Taylor Blau (51):
      pack-bitmap.c: harden 'test_bitmap_walk()' to check type bitmaps
      pack-bitmap-write.c: gracefully fail to write non-closed bitmaps
      pack-bitmap-write.c: free existing bitmaps
      Documentation: describe MIDX-based bitmaps
      object-store.h: teach for_each_packed_object to ignore kept packs
      builtin/pack-objects.c: simplify add_objects_in_unpacked_packs()
      builtin/pack-objects.c: remove duplicate hash lookup
      midx: disallow running outside of a repository
      midx: fix `*.rev` cleanups with `--object-dir`
      midx: clear auxiliary .rev after replacing the MIDX
      midx: reject empty `--preferred-pack`'s
      midx: infer preferred pack when not given one
      midx: close linked MIDXs, avoid leaking memory
      midx: avoid opening multiple MIDXs when writing
      pack-bitmap.c: introduce 'bitmap_num_objects()'
      pack-bitmap.c: introduce 'nth_bitmap_object_oid()'
      pack-bitmap.c: introduce 'bitmap_is_preferred_refname()'
      pack-bitmap.c: avoid redundant calls to try_partial_reuse
      pack-bitmap: read multi-pack bitmaps
      pack-bitmap: write multi-pack bitmaps
      t5310: move some tests to lib-bitmap.sh
      t/helper/test-read-midx.c: add --checksum mode
      t5326: test multi-pack bitmap behavior
      t5319: don't write MIDX bitmaps in t5319
      t7700: update to work with MIDX bitmap test knob
      midx: respect 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP'
      p5310: extract full and partial bitmap tests
      p5326: perf tests for MIDX bitmaps
      t/helper/test-bitmap.c: add 'dump-hashes' mode
      pack-bitmap.c: propagate namehash values from existing bitmaps
      midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps
      p5326: create missing 'perf-tag' tag
      p5326: don't set core.multiPackIndex unnecessarily
      p5326: generate pack bitmaps before writing the MIDX bitmap
      t5326: test propagating hashcache values
      builtin/commit-graph.c: don't accept common --[no-]progress
      builtin/multi-pack-index.c: disable top-level --[no-]progress
      midx: expose `write_midx_file_only()` publicly
      builtin/multi-pack-index.c: support `--stdin-packs` mode
      midx: preliminary support for `--refs-snapshot`
      builtin/repack.c: keep track of existing packs unconditionally
      builtin/repack.c: rename variables that deal with non-kept packs
      builtin/repack.c: extract showing progress to a variable
      builtin/repack.c: support writing a MIDX while repacking
      builtin/repack.c: make largest pack preferred
      builtin/repack.c: pass `--refs-snapshot` when writing bitmaps
      t/perf/aggregate.perl: tolerate leading spaces
      midx.c: extract MIDX lookup by object_dir
      midx.c: lookup MIDX by object directory during expire
      midx.c: lookup MIDX by object directory during repack
      midx.c: guard against commit_lock_file() failures

Teng Long (1):
      list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"

Todd Zullinger (1):
      doc: add bundle-format to TECH_DOCS

USAMI Kenta (1):
      userdiff: support enum keyword in PHP hunk header

Wesley Schwengle (1):
      Document `rebase.forkpoint` in rebase man page

ZheNing Hu (6):
      ref-filter: add obj-type check in grab contents
      ref-filter: add %(raw) atom
      ref-filter: --format=%(raw) support --perl
      ref-filter: use non-const ref_format in *_atom_parser()
      ref-filter: add %(rest) atom
      cherry-pick: use better advice message

brian m. carlson (1):
      t5607: avoid using prerequisites to select algorithm

Ævar Arnfjörð Bjarmason (201):
      Makefile: move ".PHONY: cscope" near its target
      Makefile: add QUIET_GEN to "cscope" target
      test-lib tests: move "run_sub_test" to a new lib-subtest.sh
      Makefile: don't use "FORCE" for tags targets
      http: drop support for curl < 7.19.3 and < 7.17.0 (again)
      http: rename CURLOPT_FILE to CURLOPT_WRITEDATA
      serve: mark has_capability() as static
      transport: rename "fetch" in transport_vtable to "fetch_refs"
      transport: use designated initializers
      serve: use designated initializers
      serve.[ch]: don't pass "struct strvec *keys" to commands
      serve: move transfer.advertiseSID check into session_id_advertise()
      serve.c: move version line to advertise_capabilities()
      {upload,receive}-pack tests: add --advertise-refs tests
      serve.[ch]: remove "serve_options", split up --advertise-refs code
      upload-pack: document and rename --advertise-refs
      Makefile: remove "cscope.out", not "cscope*" in cscope.out target
      Makefile: normalize clobbering & xargs for tags targets
      refs/packet: add missing BUG() invocations to reflog callbacks
      refs/files: remove unused REF_DELETING in lock_ref_oid_basic()
      advice: remove use of global advice_add_embedded_repo
      advice: move advice.graftFileDeprecated squashing to commit.[ch]
      refs/files: remove unused "extras/skip" in lock_ref_oid_basic()
      refs/files: remove unused "skip" in lock_raw_ref() too
      refs/debug: re-indent argument list for "prepare"
      refs: make repo_dwim_log() accept a NULL oid
      refs/files: add a comment about refs_reflog_exists() call
      reflog expire: don't lock reflogs using previously seen OID
      refs API: remove OID argument to reflog_expire()
      refs/files: remove unused "oid" in lock_ref_oid_basic()
      refs/files: remove unused "errno == EISDIR" code
      refs/files: remove unused "errno != ENOTDIR" condition
      refs file backend: move raceproof_create_file() here
      bundle API: start writing API documentation
      commit-graph: define common usage with a macro
      commit-graph: remove redundant handling of -h
      commit-graph: use parse_options_concat()
      multi-pack-index: refactor "goto usage" pattern
      commit-graph: early exit to "usage" on !argc
      commit-graph: show usage on "commit-graph [write|verify] garbage"
      commit-graph: show "unexpected subcommand" error
      gettext: remove optional non-standard parens in N_() definition
      bundle API: change "flags" to be "extra_index_pack_args"
      index-pack: add --progress-title option
      bundle: show progress on "unbundle"
      tr2: remove NEEDSWORK comment for "non-procfs" implementations
      tr2: clarify TRACE2_PROCESS_INFO_EXIT comment under Linux
      tr2: stop leaking "thread_name" memory
      tr2: leave the parent list empty upon failure & don't leak memory
      tr2: do compiler enum check in trace2_collect_process_info()
      tr2: log N parent process names on Linux
      help: correct the usage string in -h and documentation
      INSTALL: don't mention the "curl" executable at all
      INSTALL: reword and copy-edit the "libcurl" section
      git-submodule: remove unused is_zero_oid() function
      git-sh-setup: remove unused "pull with rebase" message
      git-bisect: remove unused SHA-1 $x40 shell variable
      test-lib: remove unused $_x40 and $_z40 variables
      test-tool run-command: fix flip-flop init pattern
      gc: remove unused launchctl_get_uid() call
      parse-options API users: align usage output in C-strings
      send-pack: properly use parse_options() API for usage string
      git rev-parse --parseopt tests: add more usagestr tests
      difftool: prepare "struct child_process" in cmd_difftool()
      difftool: use run_command() API in run_file_diff()
      parse-options API: remove OPTION_ARGUMENT feature
      INSTALL: mention that we need libcurl 7.19.4 or newer to build
      Makefile: drop support for curl < 7.9.8 (again)
      http: drop support for curl < 7.18.0 (again)
      http: correct version check for CURL_HTTP_VERSION_2
      http: correct curl version check for CURLOPT_PINNEDPUBLICKEY
      http: centralize the accounting of libcurl dependencies
      http: don't hardcode the value of CURL_SOCKOPT_OK
      wrapper.c: add x{un,}setenv(), and use xsetenv() in environment.c
      environment.c: remove test-specific "ignore_untracked..." variable
      read-cache & fetch-negotiator: check "enum" values in switch()
      repo-settings.c: simplify the setup
      repository.h: don't use a mix of int and bitfields
      parse-options: properly align continued usage output
      test-lib tests: split up "write and run" into two functions
      test-lib tests: don't provide a description for the sub-tests
      test-lib tests: avoid subshell for "test_cmp" for readability
      test-lib tests: refactor common part of check_sub_test_lib_test*()
      test-lib tests: assert 1 exit code, not non-zero
      test-lib tests: get rid of copy/pasted mock test code
      Makefile: make the "sparse" target non-.PHONY
      Makefile: make COMPUTE_HEADER_DEPENDENCIES=auto work with DEVOPTS=pedantic
      help: correct usage & behavior of "git help --guides"
      help tests: add test for --config output
      help: correct logic error in combining --all and --config
      help: correct logic error in combining --all and --guides
      help: simplify by moving to OPT_CMDMODE()
      help tests: test --config-for-completion option & output
      help / completion: make "git help" do the hard work
      help: move column config discovery to help.c library
      Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
      tests: add a test mode for SANITIZE=leak, run it in CI
      bundle: remove ignored & undocumented "--verbose" flag
      Makefile: mark "check" target as .PHONY
      Makefile: stop hardcoding {command,config}-list.h
      Makefile: don't perform "mv $@+ $@" dance for $(GENERATED_H)
      Makefile: remove an out-of-date comment
      hook.[ch]: move find_hook() from run-command.c to hook.c
      hook.c users: use "hook_exists()" instead of "find_hook()"
      hook-list.h: add a generated list of hooks, like config-list.h
      http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors
      Makefile: pass -Wno-pendantic under GENERATE_COMPILATION_DATABASE=yes
      submodule-config.h: remove unused SUBMODULE_INIT macro
      *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
      *.h _INIT macros: don't specify fields equal to 0
      *.h: move some *_INIT to designated initializers
      cbtree.h: define cb_init() in terms of CBTREE_INIT
      daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro
      builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro
      string-list.[ch]: remove string_list_init() compatibility function
      config.c: remove unused git_config_key_is_valid()
      refs.[ch]: remove unused ref_storage_backend_exists()
      refs/ref-cache.[ch]: remove unused remove_entry_from_dir()
      refs/ref-cache.[ch]: remove unused add_ref_entry()
      refs/ref-cache.c: remove "mkdir" parameter from find_containing_dir()
      refs/ref-cache.[ch]: remove "incomplete" from create_dir_entry()
      parse-options.h: move PARSE_OPT_SHELL_EVAL between enums
      urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT
      builtin/remote.c: add and use a REF_STATES_INIT
      builtin/remote.c: add and use SHOW_INFO_INIT
      builtin.h: remove cmd_tar_tree() declaration
      grep.h: remove unused grep_threads_ok() declaration
      log-tree.h: remove unused function declarations
      config.h: remove unused git_config_get_untracked_cache() declaration
      fsck tests: add test for fsck-ing an unknown type
      fsck tests: refactor one test to use a sub-repo
      fsck tests: test current hash/type mismatch behavior
      fsck tests: test for garbage appended to a loose object
      cat-file tests: move bogus_* variable declarations earlier
      cat-file tests: test for missing/bogus object with -t, -s and -p
      cat-file tests: add corrupt loose object test
      cat-file tests: test for current --allow-unknown-type behavior
      object-file.c: don't set "typep" when returning non-zero
      object-file.c: return -1, not "status" from unpack_loose_header()
      object-file.c: make parse_loose_header_extended() public
      object-file.c: simplify unpack_loose_short_header()
      object-file.c: use "enum" return type for unpack_loose_header()
      object-file.c: return ULHR_TOO_LONG on "header too long"
      object-file.c: stop dying in parse_loose_header()
      fsck: don't hard die on invalid object types
      fsck: report invalid object type-path combinations
      unpack-trees: don't leak memory in verify_clean_subdirectory()
      tests: fix a memory leak in test-prio-queue.c
      tests: fix a memory leak in test-parse-options.c
      tests: fix a memory leak in test-oidtree.c
      tests: fix test-oid-array leak, test in SANITIZE=leak
      ls-files: fix a trivial dir_clear() leak
      ls-files: add missing string_list_clear()
      merge: add missing strbuf_release()
      parse-options.[ch]: consistently use "enum parse_opt_flags"
      parse-options.[ch]: consistently use "enum parse_opt_result"
      parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"
      parse-options.h: make the "flags" in "struct option" an enum
      parse-options.c: move optname() earlier in the file
      commit-graph: stop using optname()
      parse-options.[ch]: make opt{bug,name}() "static"
      parse-options tests: test optname() output
      parse-options: change OPT_{SHORT,UNSET} to an enum
      unwritable tests: assert exact error output
      commit: fix duplication regression in permission error output
      leak tests: run various built-in tests in t00*.sh SANITIZE=leak
      leak tests: run various "test-tool" tests in t00*.sh SANITIZE=leak
      leak tests: mark all ls-tree tests as passing with SANITIZE=leak
      leak tests: mark all trace2 tests as passing with SANITIZE=leak
      leak tests: mark all checkout-index tests as passing with SANITIZE=leak
      leak tests: mark some ls-files tests as passing with SANITIZE=leak
      leak tests: mark some read-tree tests as passing with SANITIZE=leak
      leak tests: mark various "generic" tests as passing with SANITIZE=leak
      leak tests: mark some misc tests as passing with SANITIZE=leak
      sequencer: add a "goto cleanup" to do_reset()
      sequencer: fix a memory leak in do_reset()
      test-lib.sh: de-duplicate error() teardown code
      test-lib.sh: use "Bail out!" syntax on bad SANITIZE=leak use
      test-lib.sh: try to re-chmod & retry on failed trash removal
      "lib-diff" tests: make "README" and "COPYING" test data smaller
      tests: stop using top-level "README" and "COPYING" files
      doc lint: fix error-hiding regression
      doc lint: emit errors on STDERR
      doc build: speed up "make lint-docs"
      doc lint: make "lint-docs" non-.PHONY
      pkt-line.[ch]: remove unused packet_buf_write_len()
      pkt-line.[ch]: remove unused packet_read_line_buf()
      git config doc: fix recent ASCIIDOC formatting regression
      tag: use a "goto cleanup" pattern, leak less memory
      ref-filter API user: add and use a ref_sorting_release()
      branch: use ref_sorting_release()
      git-sh-i18n: remove unused eval_ngettext()
      git-sh-setup: remove messaging supporting --preserve-merges
      Makefile: remove redundant GIT-CFLAGS dependency from "sparse"
      config.c: don't leak memory in handle_path_include()
      grep: prefer "struct grep_opt" over its "void *" equivalent
      grep: use object_array_clear() in cmd_grep()
      grep: fix a "path_list" memory leak
      clone: fix a memory leak of the "git_dir" variable
      submodule--helper: fix small memory leaks
      reflog: free() ref given to us by dwim_log()


Version v2.33.8; changes since v2.33.7:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (6):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (15):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7
      Git 2.33.8

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.33.7; changes since v2.33.6:
---------------------------------------

Johannes Schindelin (4):
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6
      Git 2.33.7

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.33.6; changes since v2.33.5:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (4):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5
      Git 2.33.6

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.33.5; changes since v2.33.4:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (17):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      Git 2.30.6
      Git 2.31.5
      Git 2.32.4
      Git 2.33.5


Version v2.33.4; changes since v2.33.3:
---------------------------------------

Carlo Marcelo Arenas Belón (5):
      t: regression git needs safe.directory when using sudo
      git-compat-util: avoid failing dir ownership checks if running privileged
      t0034: add negative tests and allow git init to mostly work under sudo
      git-compat-util: allow root to access both SUDO_UID and root owned
      setup: tighten ownership checks post CVE-2022-24765

Johannes Schindelin (4):
      Git 2.30.5
      Git 2.31.4
      Git 2.32.3
      Git 2.33.4


Version v2.33.3; changes since v2.33.2:
---------------------------------------

Derrick Stolee (2):
      t0033: add tests for safe.directory
      setup: opt-out of check with safe.directory=*

Junio C Hamano (1):
      Git 2.30.4

Matheus Valadares (1):
      setup: fix safe.directory key not being checked


Version v2.33.2; changes since v2.33.1:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      mingw: avoid fallback for {local,gm}time_r()

Jeff King (1):
      log: document --encoding behavior on iconv() failure

Johannes Schindelin (8):
      GIT-VERSION-GEN: bump to v2.33.1
      Add a function to determine whether a path is owned by the current user
      setup_git_directory(): add an owner check for the top-level directory
      Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
      Git 2.30.3
      Git 2.31.2
      Git 2.32.1
      Git 2.33.2

Junio C Hamano (1):
      Revert "logmsg_reencode(): warn when iconv() fails"

Martin Ågren (1):
      git.txt: fix typo

Phillip Wood (1):
      rebase -i: fix rewording with --committer-date-is-author-date

Victoria Dye (1):
      async_die_is_recursing: work around GCC v11.x issue on Fedora


Version v2.33.1; changes since v2.33.0:
---------------------------------------

Alex Henrie (1):
      pull: abort if --ff-only is given and fast-forwarding is impossible

Andrzej Hunt (1):
      connect: also update offset for features without values

Bagas Sanjaya (1):
      Documentation: fix default directory of git bugreport -o

Carlo Marcelo Arenas Belón (12):
      build: update detect-compiler for newer Xcode version
      builtin/merge: avoid -Wformat-extra-args from ancient Xcode
      ci: run a pedantic build as part of the GitHub workflow
      ci: update freebsd 12 cirrus job
      ci: use upload-artifacts v1 for dockerized jobs
      remote: avoid -Wunused-but-set-variable in gcc with -DNDEBUG
      tree-diff: fix leak when not HAVE_ALLOCA_H
      t0000: avoid masking git exit value through pipes
      git-cvsserver: use crypt correctly to compare password hashes
      git-cvsserver: protect against NULL in crypt(3)
      Documentation: cleanup git-cvsserver
      unicode: update the width tables to Unicode 14

David Aguilar (1):
      difftool: fix symlink-file writing in dir-diff mode

Derrick Stolee (1):
      maintenance: skip bootout/bootstrap when plist is registered

Elijah Newren (25):
      t7601: test interaction of merge/rebase/fast-forward flags and options
      t7601: add tests of interactions with multiple merge heads and config
      pull: since --ff-only overrides, handle it first
      pull: make --rebase and --no-rebase override pull.ff=only
      pull: abort by default when fast-forwarding is not possible
      pull: update docs & code for option compatibility with rebasing
      pull: fix handling of multiple heads
      git-rebase.txt: correct antiquated claims about --rebase-merges
      directory-rename-detection.txt: small updates due to merge-ort optimizations
      Documentation: edit awkward references to `git merge-recursive`
      merge-strategies.txt: update wording for the resolve strategy
      merge-strategies.txt: do not imply using copy detection is desired
      merge-strategies.txt: avoid giving special preference to patience algorithm
      merge-strategies.txt: fix simple capitalization error
      git-rebase.txt: correct out-of-date and misleading text about renames
      merge-strategies.txt: add coverage of the `ort` merge strategy
      Update error message and code comment
      t3903: document a pair of directory/file bugs
      stash: avoid feeding directories to update-index
      stash: restore untracked files AFTER restoring tracked files
      git-am.txt: clarify --abort behavior
      t4151: add a few am --abort tests
      am: fix incorrect exit status on am fail to abort
      trace2.h: fix trivial comment typo
      merge-ort: fix completely wrong comment

Felipe Contreras (4):
      completion: bash: fix prefix detection in branch.*
      completion: bash: fix for suboptions with value
      completion: bash: fix for multiple dash commands
      completion: bash: add correct suffix in variables

Jeff Hostetler (1):
      sparse-index: copy dir_hash in ensure_full_index()

Jeff King (13):
      build: clang version may not be followed by extra words
      range-diff: drop useless "offset" variable from read_patches()
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()
      apply: keep buffer/size pair in sync when parsing binary hunks
      t5323: drop mentions of "master"
      logmsg_reencode(): warn when iconv() fails
      docs: use "character encoding" to refer to commit-object encoding
      t5562: use alarm() to interrupt timed child-wait
      strvec: use size_t to store nr and alloc
      t1400: avoid SIGPIPE race condition on fifo
      clone: handle unborn branch in bare repos
      http: match headers case-insensitively when redacting

Joel Klinghed (1):
      commit: restore --edit when combined with --fixup

Johannes Schindelin (1):
      maintenance: create `launchctl` configuration using a lock file

Johannes Sixt (1):
      t9001: PATH must not use Windows-style paths

Jonathan Tan (3):
      send-pack: fix push.negotiate with remote helper
      send-pack: fix push nego. when remote has refs
      fetch: die on invalid --negotiation-tip hash

Josh Steadmon (1):
      connect, protocol: log negotiated protocol version

Junio C Hamano (4):
      build: catch clang that identifies itself as "$VENDOR clang"
      apply: resolve trivial merge without hitting ll-merge with "--3way"
      hash-object: prefix_filename() returns allocated memory these days
      Git 2.33.1

Kim Altintop (3):
      t5730: introduce fetch command helper
      upload-pack.c: treat want-ref relative to namespace
      docs: clarify the interaction of transfer.hideRefs and namespaces

Kyle Zhao (1):
      pack-revindex.h: correct the time complexity descriptions

Marvin Häuser (1):
      send-email: avoid incorrect header propagation

Matheus Tavares (1):
      checkout: make delayed checkout respect --quiet and --no-progress

Matthias Aßhauer (1):
      documentation: add documentation for 'git version'

Mickey Endito (1):
      t5582: remove spurious 'cd "$D"' line

Mike Hommey (1):
      credential: fix leak in credential_apply_config()

Patrick Steinhardt (1):
      update-ref: fix streaming of status updates

Philip Oakley (1):
      doc: config, tell readers of `git help --config`

Phillip Wood (7):
      t3403: fix commit authorship
      rebase --apply: restore some tests
      rebase --continue: remove .git/MERGE_MSG
      rebase -r: make 'merge -c' behave like reword
      rebase -i: add another reword test
      rebase -r: don't write .git/MERGE_MSG when fast-forwarding
      rebase -r: fix merge -c with a merge strategy

René Scharfe (10):
      compat: let git_mmap use malloc(3) directly
      xopen: explicitly report creation failures
      use xopen() to handle fatal open(2) failures
      show-branch: simplify rev_is_head()
      archive: convert queue_directory to struct object_id
      branch: allow deleting dangling branches with --force
      range-diff: avoid segfault with -I
      setup: use xopen and xdup in sanitize_stdfds
      refs/files-backend: remove unused open mode parameter
      compression: drop write-only core_compression_* variables

SZEDER Gábor (3):
      Makefile: remove archives before manipulating them with 'ar'
      column: fix parsing of the '--nl' option
      test-lib: set GIT_CEILING_DIRECTORIES to protect the surrounding repository

Sergey Organov (1):
      diff-index: restore -c/--cc options handling

Takashi Iwai (1):
      completion: tcsh: Fix regression by drop of wrapper functions

Tal Kelrich (1):
      fast-export: fix anonymized tag using original length

Taylor Blau (4):
      bulk-checkin.c: store checksum directly
      pack-write.c: rename `.idx` files after `*.rev`
      builtin/repack.c: move `.idx` files into place last
      builtin/index-pack.c: move `.idx` files into place last

Zoker (1):
      doc: fix syntax error and the format of printf

Ævar Arnfjörð Bjarmason (20):
      pack-objects tests: cover blindspots in stdin handling
      pack-objects: fix segfault in --stdin-packs option
      bundle doc: rewrite the "DESCRIPTION" section
      bundle doc: elaborate on object prerequisites
      bundle doc: elaborate on rev<->ref restriction
      bundle doc: replace "basis" with "prerequsite(s)"
      ls-remote: set packet_trace_identity(<name>)
      rebase: emit one "fatal" in "fatal: fatal: <error>"
      protocol-caps.c: fix memory leak in send_info()
      mailmap.c: fix a memory leak in free_mailap_{info,entry}()
      gc: remove trailing dot from "gc.log" line
      send-email: fix a "first config key wins" regression in v2.33.0
      Makefile: remove the check_bindir script
      pack-write: skip *.rev work when not writing *.rev
      pack.h: line-wrap the definition of finish_tmp_packfile()
      pack-write: refactor renaming in finish_tmp_packfile()
      index-pack: refactor renaming in final()
      pack-write: split up finish_tmp_packfile() function
      pack-objects: rename .idx files into place after .bitmap files
      Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes

Đoàn Trần Công Danh (3):
      t6300: don't run cat-file on non-existent object
      t6300: check for cat-file exit status code
      diff-lib: ignore paths that are outside $cwd if --relative asked


Version v2.33.0; changes since v2.33.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5227t)

Bagas Sanjaya (4):
      l10n: id.po: fix mismatched variable names
      l10n: id: po-id for 2.33.0 (round 1)
      l10n: id: mismatch variable name fixes
      l10n: id: po-id for 2.33.0 round 2

Christopher Diaz Riveros (1):
      l10n: es: 2.33.0 round 2

Daniel Santos (12):
      l10n: pt_PT: add Portuguese translations part 4
      l10n: pt_PT: add Portuguese translations part 5
      l10n: pt_PT: translation tables
      l10n: pt_PT: remove trailing comments
      l10n: pt_PT: update git-po-helper
      l10n: pt_PT: translated git v2.33.0
      l10n: pt_PT: update translation tables
      l10n: pt_PT: cleaning duplicate translations
      l10n: pt_PT: cleaning flags mismatch
      l10n: pt_PT: update translation table
      l10n: pt_PT: git-po-helper update
      l10n: pt_PT: v2.33.0 round 2

Emir Sarı (2):
      l10n: tr: v2.33.0 round 1
      l10n: tr: v2.33 (round 2)

Fangyi Zhou (1):
      l10n: zh_CN: Revision for git v2.32.0 l10n round 1

Jean-Noël Avila (4):
      l10n: fr: fix typo
      l10n: fr.po v2.33 rnd 1
      l10n: fr.po fix typos in commands and variables
      l10n: fr.po v2.33 rnd 2

Jiang Xin (6):
      l10n: fixed tripple-letter typos
      l10n: git.pot: v2.33.0 round 1 (38 new, 15 removed)
      l10n: git.pot: v2.33.0 round 2 (11 new, 8 removed)
      l10n: README: refactor to use GFM syntax
      l10n: zh_CN: for git v2.33.0 l10n round 2
      l10n: TEAMS: change Simplified Chinese team leader

Jordi Mas (3):
      l10n: Update Catalan translation
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.33

Peter Krefting (3):
      l10n: fixed typos of mismatched constant strings
      l10n: sv.po: Update Swedish translation (5227t0f0u)
      l10n: sv.po: Update Swedish translation (5230t0f0u)

Ralf Thielow (3):
      l10n: update German translation for Git v2.33.0
      l10n: de.po: fix typos
      l10n: update German translation for Git v2.33.0 (rnd2)

René Scharfe (1):
      oidtree: avoid unaligned access to crit-bit tree

Trần Ngọc Quân (3):
      l10n: vi.po(5227t): Updated Vietnamese translation for v2.32.0
      l10n: vi.po(5227t): Fixed typo after run git-po-helper
      l10n: vi.po(5230t): Updated translation for v2.32.0 round 2

Yi-Jyun Pan (2):
      l10n: zh_TW.po: update for v2.33.0 rnd 2
      l10n: zh_TW.po: remove the obsolete glossary

依云 (1):
      l10n: zh_CN: review for git v2.32.0 l10n round 1


Version v2.33.0-rc2; changes since v2.33.0-rc1:
-----------------------------------------------

Carlo Marcelo Arenas Belón (2):
      oidtree: avoid nested struct oidtree_node
      object-store: avoid extra ';' from KHASH_INIT

Jonathan Nieder (1):
      Revert 'diff-merges: let "-m" imply "-p"'

Junio C Hamano (1):
      Git 2.33-rc2

René Scharfe (1):
      object-file: use unsigned arithmetic with bit mask


Version v2.33.0-rc1; changes since v2.33.0-rc0:
-----------------------------------------------

Andrei Rybak (1):
      Documentation: render special characters correctly

Andrzej Hunt (12):
      fmt-merge-msg: free newly allocated temporary strings when done
      environment: move strbuf into block to plug leak
      builtin/submodule--helper: release unused strbuf to avoid leak
      builtin/for-each-repo: remove unnecessary argv copy to plug leak
      diffcore-rename: move old_dir/new_dir definition to plug leak
      ref-filter: also free head for ATOM_HEAD to avoid leak
      read-cache: call diff_setup_done to avoid leak
      convert: release strbuf to avoid leak
      builtin/mv: free or UNLEAK multiple pointers at end of cmd_mv
      builtin/merge: free found_ref when done
      builtin/rebase: fix options.strategy memory lifecycle
      reset: clear_unpack_trees_porcelain to plug leak

Atharva Raykar (4):
      t7400: test failure to add submodule in tracked path
      submodule: prefix die messages with 'fatal'
      submodule--helper: refactor module_clone()
      submodule--helper: introduce add-clone subcommand

Bagas Sanjaya (1):
      diff: --pickaxe-all typofix

Carlo Marcelo Arenas Belón (1):
      t7508: avoid non POSIX BRE

Derrick Stolee (7):
      p2000: add 'git checkout -' test and decrease depth
      p2000: compress repo names
      commit: integrate with sparse-index
      sparse-index: recompute cache-tree
      checkout: stop expanding sparse indexes
      t1092: document bad 'git checkout' behavior
      unpack-trees: resolve sparse-directory/file conflicts

Elijah Newren (7):
      merge-ort: resolve paths early when we have sufficient information
      merge-ort: add some more explanations in collect_merge_info_callback()
      merge-ort: add data structures for allowable trivial directory resolves
      merge-ort: add a handle_deferred_entries() helper function
      merge-ort: defer recursing into directories when merge base is matched
      merge-ort: avoid recursing into directories when we don't need to
      merge-ort: restart merge with cached renames to reduce process entry cost

Felipe Contreras (1):
      test: fix for COLUMNS and bash 5

Jeff King (1):
      submodule: drop unused sm_name parameter from show_fetch_remotes()

Junio C Hamano (2):
      The eighth batch
      Git 2.33-rc1

Philippe Blain (4):
      merge: add missing word "strategy" to a message
      Documentation: define 'MERGE_AUTOSTASH'
      merge: apply autostash if fast-forward fails
      merge: apply autostash if merge strategy fails

René Scharfe (1):
      use fspathhash() everywhere

Thomas Bétous (1):
      mingw: align symlinks-related rmdir() behavior with Linux

Ævar Arnfjörð Bjarmason (3):
      SubmittingPatches: move discussion of Signed-off-by above "send"
      SubmittingPatches: replace discussion of Travis with GitHub Actions
      t0001: fix broken not-quite getcwd(3) test in bed67874e2


Version v2.33.0-rc0; changes since v2.32.7:
-------------------------------------------

Alex Henrie (6):
      merge: don't translate literal commands
      stash: don't translate literal commands
      submodule: use the imperative mood to describe the --files option
      fetch: improve grammar of "shallow roots" message
      setup: split "extensions found" messages into singular and plural
      graph: improve grammar of "invalid color" error message

Anders Höckersten (1):
      describe-doc: clarify default length of abbreviation

Andrei Rybak (7):
      t: fix whitespace around &&
      mailinfo: use starts_with() when checking scissors
      *: fix typos which duplicate a word
      blame: correct name of config option in docs
      t: fix typos in test messages
      git-worktree.txt: fix typo in example path
      help: convert git_cmd to page in one place

Andrew Berry (1):
      docs: .gitignore parsing is to the top of the repo

Andrzej Hunt (3):
      bulk-checkin: make buffer reuse more obvious and safer
      split-index: use oideq instead of memcmp to compare object_id's
      builtin/checkout--worker: zero-initialise struct to avoid MSAN complaints

Atharva Raykar (2):
      MyFirstContribution: link #git-devel to Libera Chat
      submodule--helper: remove redundant include

Beshr Kayali (1):
      Documentation: fix typo in the --patch option of the commit command

Carlo Marcelo Arenas Belón (1):
      config.mak.uname: PCRE1 cleanup

Dennis Ameling (2):
      cmake(windows): set correct path to the system Git config
      ci (vs-build): build with NO_GETTEXT

Denton Liu (2):
      pkt-line: replace "stateless separator" with "response end"
      git-diff: fix missing --merge-base docs

Derrick Stolee (21):
      hashfile: use write_in_full()
      csum-file.h: increase hashfile buffer size
      read-cache: use hashfile instead of git_hash_ctx
      read-cache: delete unused hashing methods
      *: fix typos
      sparse-index: skip indexes with unmerged entries
      sparse-index: include EXTENDED flag when expanding
      t1092: replace incorrect 'echo' with 'cat'
      t1092: expand repository data shape
      t1092: add tests for status/add and sparse files
      unpack-trees: preserve cache_bottom
      unpack-trees: compare sparse directories correctly
      unpack-trees: rename unpack_nondirectories()
      unpack-trees: unpack sparse directory entries
      dir.c: accept a directory as part of cone-mode patterns
      diff-lib: handle index diffs with sparse dirs
      status: skip sparse-checkout percentage with sparse-index
      status: use sparse-index throughout
      wt-status: expand added sparse directory entries
      fsmonitor: integrate with sparse index
      t1092: document bad sparse-checkout behavior

Elijah Newren (29):
      t6423: rename file within directory that other side renamed
      Documentation/technical: describe remembering renames optimization
      fast-rebase: change assert() to BUG()
      fast-rebase: write conflict state to working tree, index, and HEAD
      t6429: testcases for remembering renames
      merge-ort: add data structures for in-memory caching of rename detection
      merge-ort: populate caches of rename detection results
      merge-ort: add code to check for whether cached renames can be reused
      merge-ort: avoid accidental API mis-use
      merge-ort: preserve cached renames for the appropriate side
      merge-ort: add helper functions for using cached renames
      merge-ort: handle interactions of caching and rename/rename(1to1) cases
      merge-ort, diffcore-rename: employ cached renames when possible
      merge-ort: replace string_list_df_name_compare with faster alternative
      diffcore-rename: avoid unnecessary strdup'ing in break_idx
      Fix various issues found in comments
      merge-ort: miscellaneous touch-ups
      promisor-remote: output trace2 statistics for number of objects fetched
      t6421: add tests checking for excessive object downloads during merge
      diffcore-rename: allow different missing_object_cb functions
      diffcore-rename: use a different prefetch for basename comparisons
      merge-ort: add prefetching for content merges
      t6423: test directory renames causing rename-to-self
      merge-ort: ensure we consult df_conflict and path_conflicts
      merge-recursive: handle rename-to-self case
      diff: correct warning message when renameLimit exceeded
      doc: clarify documentation for rename/copy limits
      diffcore-rename: treat a rename_limit of 0 as unlimited
      rename: bump limit defaults yet again

Eric Wong (6):
      xmmap: inform Linux users of tuning knobs on ENOMEM
      speed up alt_odb_usable() with many alternates
      avoid strlen via strbuf_addstr in link_alt_odb_entry
      make object_directory.loose_objects_subdir_seen a bitmap
      oidcpy_with_padding: constify `src' arg
      oidtree: a crit-bit tree for odb_loose_cache

Fabian Wermelinger (1):
      completion: bash: fix late declaration of __git_cmd_idx

Felipe Contreras (32):
      doc: refactor common asciidoc dependencies
      doc: improve asciidoc dependencies
      doc: remove unnecessary rm instances
      doc: simplify Makefile using .DELETE_ON_ERROR
      doc: avoid using rm directly
      push: rename !triangular to same_remote
      push: hedge code of default=simple
      push: copy code to setup_push_simple()
      push: reorganize setup_push_simple()
      push: simplify setup_push_simple()
      push: remove unused code in setup_push_upstream()
      doc: push: explain default=simple correctly
      push: create new get_upstream_ref() helper
      push: return immediately in trivial switch case
      push: split switch cases
      push: factor out null branch check
      push: only get the branch when needed
      push: make setup_push_* return the dst
      push: trivial simplifications
      push: get rid of all the setup_push_* functions
      push: factor out the typical case
      push: remove redundant check
      push: remove trivial function
      push: only check same_remote when needed
      push: don't get a full remote object
      doc: merge: mention default of defaulttoupstream
      doc: avoid using the gender of other people
      comments: avoid using the gender of our users
      pull: cleanup autostash check
      pull: trivial cleanup
      pull: trivial whitespace style fix
      doc: pull: fix rebase=false documentation

Gregory Anders (1):
      git-send-email: add option to specify sendmail command

Han-Wen Nienhuys (26):
      refs: make explicit that ref_iterator_peel returns boolean
      t4202: split testcase for invalid HEAD symref and HEAD hash
      t/helper/ref-store: initialize oid in resolve-ref
      t9300: check ref existence using test-helper rather than a file system check
      t5601: read HEAD using rev-parse
      t1401: use tar to snapshot and restore repo state
      t1401-symbolic-ref: avoid direct filesystem access
      t1413: use tar to save and restore entire .git directory
      t1301: fix typo in error message
      t5000: reformat indentation to the latest fashion
      t5000: inspect HEAD using git-rev-parse
      t7003: use rev-parse rather than FS inspection
      t5304: restyle: trim empty lines, drop ':' before >
      t5304: use "reflog expire --all" to clear the reflog
      test-lib: provide test prereq REFFILES
      t1407: require REFFILES for for_each_reflog test
      t1414: mark corruption test with REFFILES
      t2017: mark --orphan/logAllRefUpdates=false test as REFFILES
      t1404: mark tests that muck with .git directly as REFFILES.
      t7900: stop checking for loose refs
      t7003: check reflog existence only for REFFILES
      t4202: mark bogus head hash test with REFFILES
      t1415: set REFFILES for test specific to storage format
      t1415: avoid direct filesystem access for writing refs
      t7509: avoid direct file access for writing CHERRY_PICK_HEAD
      refs/debug: quote prefix

Hu Jialun (2):
      commit: reorganise commit hint strings
      commit: remove irrelavent prompt on `--allow-empty-message`

Jean-Noël Avila (1):
      help: fix small typo in error message

Jeff King (26):
      clone: clean up directory after transport_fetch_refs() failure
      fetch-pack: signal v2 server that we are done making requests
      doc: explain the use of color.pager
      doc: warn people against --max-pack-size
      ll_binary_merge(): handle XDL_MERGE_FAVOR_UNION
      ll_union_merge(): pass name labels to ll_xdl_merge()
      ll_union_merge(): rename path_unused parameter
      add_pending_object_with_path(): work around "gcc -O3" complaint
      bitmaps: don't recurse into trees already in the bitmap
      t: use portable wrapper for readlink(1)
      pretty.h: update and expand docstring for userformat_find_requirements()
      log: avoid loading decorations for userformats that don't need it
      object.h: expand docstring for lookup_unknown_object()
      object.h: add lookup_object_by_type() function
      load_ref_decorations(): avoid parsing non-tag objects
      add_ref_decoration(): rename s/type/deco_type/
      test-lib: avoid accidental globbing in match_pattern_list()
      doc/rev-list-options: fix duplicate word typo
      load_ref_decorations(): fix decoration with tags
      t0000: clear GIT_SKIP_TESTS before running sub-tests
      doc/git-config: explain --file instead of referring to GIT_CONFIG
      doc/git-config: clarify GIT_CONFIG environment variable
      doc/git-config: simplify "override" advice for FILES section
      pack-bitmap: check pack validity when opening bitmap
      ci: run "apt-get update" before "apt-get install"
      ci/install-dependencies: handle "sparse" job package installs

Jiang Xin (5):
      t6020: fix incompatible parameter expansion
      sideband: don't lose clear-to-eol at packet boundary
      test: compare raw output, not mangle tabs and spaces
      test: refactor to use "test_commit" to create commits
      test: refactor to use "get_abbrev_oid" to get abbrev oid

Johannes Schindelin (15):
      multimail: stop shipping a copy
      subtree: fix the GIT_EXEC_PATH sanity check to work on Windows
      subtree: fix assumption about the directory separator
      pager: avoid setting COLUMNS when we're guessing its value
      mingw: move Git for Windows' system config where users expect it
      config: normalize the path of the system gitconfig
      ci: use the new GitHub Action to download git-sdk-64-minimal
      ci (vs-build): use `cmd` to copy the DLLs, not `powershell`
      ci: upgrade to using actions/{up,down}load-artifacts v2
      ci (windows): transfer also the Git-tracked files to the test jobs
      artifacts-tar: respect NO_GETTEXT
      ci: accelerate the checkout
      ci: run `make sparse` as part of the GitHub workflow
      ci(check-whitespace): stop requiring a read/write token
      ci(check-whitespace): restrict to the intended commits

Jonathan Nieder (1):
      xsize_t: avoid implementation defined behavior when len < 0

Jonathan Tan (7):
      repository: move global r_f_p_c to repo struct
      promisor-remote: support per-repository config
      submodule: refrain from filtering GIT_CONFIG_COUNT
      run-command: refactor subprocess env preparation
      promisor-remote: teach lazy-fetch in any repo
      unpack-trees: refactor prefetching code
      cache-tree: prefetch in partial clone read-tree

Josh Steadmon (1):
      docs: fix api-trace2 doc for "too_many_files" event

Julian Verdurmen (1):
      userdiff: add support for C# record types

Junio C Hamano (10):
      revisions(7): clarify that most commands take a single revision range
      The first batch post Git 2.32
      The second batch
      The third batch
      The fourth batch
      CodingGuidelines: recommend gender-neutral description
      The fifth batch
      The sixth batch
      The seventh batch
      Git 2.33-rc0

Kaartic Sivaraam (1):
      submodule: remove unnecessary `prefix` based option logic

Matheus Tavares (1):
      parallel-checkout: send the new object_id algo field to the workers

Matthew Rogers (3):
      cmake: add knob to disable vcpkg
      cmake: create compile_commands.json by default
      cmake: add warning for ignored MSGFMT_EXE

Michael Schindler (1):
      mergetools/kdiff3: make kdiff3 work on Windows too

Patrick Steinhardt (2):
      perf: fix when running with TEST_OUTPUT_DIRECTORY
      t0000: fix test if run with TEST_OUTPUT_DIRECTORY

Philippe Blain (2):
      parse-options: don't complete option aliases by default
      doc: clarify description of 'submodule.recurse'

René Scharfe (2):
      grep: report missing left operand of --and
      khash: clarify that allocations never fail

Reuven Y (1):
      docs: improve fast-forward in glossary content

Sergey Organov (10):
      t4013: test that "-m" alone has no effect in "git log"
      t4013: test "git log -m --raw"
      t4013: test "git log -m --stat"
      t4013: test "git diff-tree -m"
      t4013: test "git diff-index -m"
      diff-merges: move specific diff-index "-m" handling to diff-index
      git-svn: stop passing "-m" to "git rev-list"
      stash list: stop passing "-m" to "git log"
      diff-merges: rename "combined_imply_patch" to "merges_imply_patch"
      diff-merges: let "-m" imply "-p"

Stephen Manz (3):
      t2400: clean up '"add" worktree with lock' test
      worktree: mark lock strings with `_()` for translation
      worktree: teach `add` to accept --reason <string> with --lock

Tao Klerks (1):
      Remove warning that repack only works on non-promisor packfiles

Taylor Blau (6):
      csum-file: introduce checksum_valid()
      commit-graph: rewrite to use checksum_valid()
      midx: don't reuse corrupt MIDXs when writing
      midx: report checksum mismatches during 'verify'
      multi-pack-index: fix potential segfault without sub-command
      pack-bitmap: clarify comment in filter_bitmap_exclude_type()

Teng Long (1):
      packfile-uri.txt: fix blobPackfileUri description

Thomas Braun (1):
      completion: add --anchored to diff's options

Wolfgang Müller (1):
      rev-parse: mark die() messages for translation

ZheNing Hu (4):
      ref-filter: add objectsize to used_atom
      ref-filter: introduce enum atom_type
      cat-file: handle trivial --batch format with --batch-all-objects
      cat-file: merge two block into one

brian m. carlson (1):
      rev-list: add option for --pretty=format without header

dorgon.chang (1):
      git-p4: fix failed submit by skip non-text data files

edef (1):
      mailinfo: don't discard names under 3 characters

Ævar Arnfjörð Bjarmason (90):
      test-lib: bring $remove_trash out of retirement
      test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable
      test-lib-functions: reword "test_commit --append" docs
      test-lib-functions: document test_commit --no-tag
      test-lib functions: add an --annotated option to "test_commit"
      describe tests: convert setup to use test_commit
      test-lib functions: add --printf option to test_commit
      submodule tests: use symbolic-ref --short to discover branch name
      test-lib: reformat argument list in test_create_repo()
      test-lib: do not show advice about init.defaultBranch under --verbose
      test-lib: split up and deprecate test_create_repo()
      grep/pcre2 tests: reword comments referring to kwset
      pickaxe tests: refactor to use test_commit --append --printf
      pickaxe tests: add test for diffgrep_consume() internals
      pickaxe tests: add test for "log -S" not being a regex
      pickaxe tests: test for -G, -S and --find-object incompatibility
      pickaxe tests: add missing test for --no-pickaxe-regex being an error
      pickaxe: die when -G and --pickaxe-regex are combined
      pickaxe: die when --find-object and --pickaxe-all are combined
      diff.h: move pickaxe fields together again
      pickaxe/style: consolidate declarations and assignments
      perf: add performance test for pickaxe
      pickaxe: refactor function selection in diffcore-pickaxe()
      pickaxe: assert that we must have a needle under -G or -S
      pickaxe -S: support content with NULs under --pickaxe-regex
      pickaxe: rename variables in has_changes() for brevity
      pickaxe -S: slightly optimize contains()
      xdiff-interface: prepare for allowing early return
      xdiff-interface: allow early return from xdiff_emit_line_fn
      pickaxe -G: terminate early on matching lines
      pickaxe -G: don't special-case create/delete
      xdiff users: use designated initializers for out_line
      xdiff-interface: replace discard_hunk_line() with a flag
      describe tests: improve test for --work-tree & --dirty
      describe tests: refactor away from glob matching
      describe tests: don't rely on err.actual from "check_describe"
      describe tests: fix nested "test_expect_success" call
      describe tests: support -C in "check_describe"
      trace2: refactor to avoid gcc warning under -O3
      send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true
      send-email tests: test for boolean variables without a value
      send-email: remove non-working support for "sendemail.smtpssl"
      send-email: refactor sendemail.smtpencryption config parsing
      send-email: copy "config_regxp" into git-send-email.perl
      send-email: lazily load config for a big speedup
      send-email: lazily shell out to "git var"
      send-email: use function syntax instead of barewords
      send-email: get rid of indirect object syntax
      send-email: lazily load modules for a big speedup
      perl: lazily load some common Git.pm setup code
      send-email: move trivial config handling to Perl
      perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd()
      protocol-caps.h: add newline at end of file
      read-cache.c: don't guard calls to progress.c API
      xdiff: use BUG(...), not xdl_bug(...)
      builtins + test helpers: use return instead of exit() in cmd_*
      mktag tests: parse out options in helper
      mktag tests: invert --no-strict test
      show-branch tests: rename the one "show-branch" test file
      show-branch tests: modernize test code
      pre-commit hook tests: don't leave "actual" nonexisting on failure
      gc tests: add a test for the "pre-auto-gc" hook
      mktag tests: test hash-object --literally and unreachable fsck
      mktag tests: test update-ref and reachable fsck
      mktag tests: test for-each-ref
      mktag tests: test fast-export
      show-branch: don't <COLOR></RESET> for space characters
      show-branch tests: add missing tests
      Makefile: add and use the ".DELETE_ON_ERROR" flag
      test-lib.sh: set COLUMNS=80 for --verbose repeatability
      send-pack.c: move "no refs in common" abort earlier
      fetch: document the --negotiate-only option
      *.h: move some *_INIT to designated initializers
      *.c *_init(): define in terms of corresponding *_INIT macro
      dir.[ch]: replace dir_init() with DIR_INIT
      string-list.[ch]: add a string_list_init_{nodup,dup}()
      string-list.h users: change to use *_{nodup,dup}()
      bundle cmd: stop leaking memory from parse_options_cmd_bundle()
      bundle.c: use a temporary variable for OIDs and names
      bundle: remove "ref_list" in favor of string-list.c API
      imap-send.c: use less verbose strbuf_fread() idiom
      fetch: fix segfault in --negotiate-only without --negotiation-tip=*
      *.c static functions: don't forward-declare __attribute__
      sequencer.c: move static function to avoid forward decl
      *.c static functions: add missing __attribute__((format))
      *.h: add a few missing __attribute__((format))
      advice.h: add missing __attribute__((format)) & fix usage
      test-lib-functions: use test-tool for [de]packetize()
      bundle tests: use ">file" not ": >file"
      bundle tests: use test_cmp instead of grep

Đoàn Trần Công Danh (6):
      t: use configured TAR instead of tar
      doc/log: correct default for --decorate
      t: use user-specified utf-8 locale for testing svn
      test-lib-functions: introduce test_stdout_line_count
      t6400: preserve git ls-files exit status code
      t6402: preserve git exit status code


Version v2.32.7; changes since v2.32.6:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (6):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (14):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8
      Git 2.32.7

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.32.6; changes since v2.32.5:
---------------------------------------

Johannes Schindelin (3):
      attr: adjust a mismatched data type
      Git 2.31.7
      Git 2.32.6

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.32.5; changes since v2.32.4:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (3):
      Git 2.30.7
      Git 2.31.6
      Git 2.32.5

Patrick Steinhardt (25):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats
      fsck: refactor `fsck_blob()` to allow for more checks
      fsck: pull out function to check a set of blobs
      fsck: move checks for gitattributes
      fsck: implement checks for gitattributes


Version v2.32.4; changes since v2.32.3:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (16):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      t1092: prepare for changing protocol.file.allow
      t2080: prepare for changing protocol.file.allow
      Git 2.30.6
      Git 2.31.5
      Git 2.32.4


Version v2.32.3; changes since v2.32.2:
---------------------------------------

Carlo Marcelo Arenas Belón (5):
      t: regression git needs safe.directory when using sudo
      git-compat-util: avoid failing dir ownership checks if running privileged
      t0034: add negative tests and allow git init to mostly work under sudo
      git-compat-util: allow root to access both SUDO_UID and root owned
      setup: tighten ownership checks post CVE-2022-24765

Johannes Schindelin (3):
      Git 2.30.5
      Git 2.31.4
      Git 2.32.3


Version v2.32.2; changes since v2.32.1:
---------------------------------------

Derrick Stolee (2):
      t0033: add tests for safe.directory
      setup: opt-out of check with safe.directory=*

Junio C Hamano (1):
      Git 2.30.4

Matheus Valadares (1):
      setup: fix safe.directory key not being checked


Version v2.32.1; changes since v2.32.0:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      mingw: avoid fallback for {local,gm}time_r()

Johannes Schindelin (6):
      Add a function to determine whether a path is owned by the current user
      setup_git_directory(): add an owner check for the top-level directory
      Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
      Git 2.30.3
      Git 2.31.2
      Git 2.32.1


Version v2.32.0; changes since v2.32.0-rc3:
-------------------------------------------

Alex Henrie (1):
      l10n: Update Catalan translation

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5204t)

Alexey Roslyakov (1):
      l10n: ru.po: fix typo in Russian translation

Bagas Sanjaya (5):
      l10n: id: po-id for 2.32.0 (round 1)
      l10n: README: document git-po-helper
      l10n: README: document "core translation"
      l10n: README: document l10n conventions
      l10n: README: note on fuzzy translations

Christopher Diaz Riveros (1):
      l10n: es: 2.32.0 round 1

Daniel Santos (2):
      l10n: pt_PT: add Portuguese translations part 2
      l10n: pt_PT: add Portuguese translations part 3

Emir Sarı (1):
      l10n: tr: v2.32.0-r1

Jean-Noël Avila (1):
      l10n: fr: v2.32.0 round 1

Jiang Xin (4):
      l10n: git.pot: v2.32.0 round 1 (126 new, 26 removed)
      l10n: fix typos in po/TEAMS
      l10n: README: add file extention ".md"
      l10n: zh_CN: for git v2.32.0 l10n round 1

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (2):
      fsync(): be prepared to see EINTR
      Git 2.32

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git v2.32.0

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5204t0f0u)

René Scharfe (1):
      parallel-checkout: avoid dash local bug in tests

Trần Ngọc Quân (1):
      l10n: vi.po(5204t): Updated Vietnamese translation for v2.32.0

Vincent Tam (1):
      l10n: fr.po fixed inconsistencies

Yi-Jyun Pan (2):
      l10n: zh_TW.po: v2.32.0 round 1 (11 untranslated)
      l10n: zh_TW.po: localized

rlespinasse (1):
      l10n: fr: fixed inconsistencies


Version v2.32.0-rc3; changes since v2.32.0-rc2:
-----------------------------------------------

David Aguilar (1):
      contrib/completion: fix zsh completion regression from 59d85a2a05

Junio C Hamano (1):
      Git 2.32-rc3

Ævar Arnfjörð Bjarmason (1):
      builtin/fsck.c: don't conflate "int" and "enum" in callback


Version v2.32.0-rc2; changes since v2.32.0-rc1:
-----------------------------------------------

Derrick Stolee (2):
      t1092: use GIT_PROGRESS_DELAY for consistent results
      dir: update stale description of treat_directory()

Elijah Newren (1):
      dir: introduce readdir_skip_dot_and_dotdot() helper

Johannes Sixt (1):
      t9001-send-email.sh: fix expected absolute paths on Windows

Junio C Hamano (4):
      t1092: revert the "-1" hack for emulating "no progress meter"
      Revert "dir: introduce readdir_skip_dot_and_dotdot() helper"
      Revert "dir: update stale description of treat_directory()"
      Git 2.32-rc2

Matheus Tavares (2):
      init: fix bug regarding ~/ expansion in init.templateDir
      t2080: fix cp invocation to copy symlinks instead of following them

Ævar Arnfjörð Bjarmason (4):
      send-email: fix missing error message regression
      send-email: don't needlessly abs_path() the core.hooksPath
      send-email: move "hooks_path" invocation to git-send-email.perl
      pack-objects: move static inline from a header to the sole consumer


Version v2.32.0-rc1; changes since v2.32.0-rc0:
-----------------------------------------------

Denton Liu (1):
      stash show: use stash.showIncludeUntracked even when diff options given

Derrick Stolee (2):
      dir: update stale description of treat_directory()
      sparse-index: fix uninitialized jump

Elijah Newren (9):
      dir: convert trace calls to trace2 equivalents
      dir: report number of visited directories and paths with trace2
      ls-files: error out on -i unless -o or -c are specified
      t7300: add testcase showing unnecessary traversal into ignored directory
      t3001, t7300: add testcase showcasing missed directory traversal
      dir: avoid unnecessary traversal into ignored directory
      dir: traverse into untracked directories if they may have ignored subfiles
      dir: introduce readdir_skip_dot_and_dotdot() helper
      git-prompt: work under set -u

Eric Wong (1):
      remote-curl: fix clone on sha256 repos

Jeff Hostetler (1):
      simple-ipc: correct ifdefs when NO_PTHREADS is defined

Jeff King (3):
      t: avoid sed-based chain-linting in some expensive cases
      t5551: test http interaction with credential helpers
      Revert "remote-curl: fall back to basic auth if Negotiate fails"

Junio C Hamano (2):
      A handful more topics before -rc1
      Git 2.32-rc1

Todd Zullinger (1):
      t7500: remove non-existant C_LOCALE_OUTPUT prereq

Wolfgang Müller (1):
      rev-parse: fix segfault with missing --path-format argument

ZheNing Hu (1):
      ref-filter: fix read invalid union member bug

Ævar Arnfjörð Bjarmason (5):
      Makefile: don't re-define PERL_DEFINES
      Makefile: regenerate perl/build/* if GIT-PERL-DEFINES changes
      Makefile: regenerate *.pm on NO_PERL_CPAN_FALLBACKS change
      perl: use mock i18n functions under NO_GETTEXT=Y
      Makefile: make PERL_DEFINES recursively expanded


Version v2.32.0-rc0; changes since v2.31.8:
-------------------------------------------

Adam Dinwoodie (1):
      cygwin: disallow backslashes in file names

Alex Henrie (1):
      merge-ort: split "distinct types" message into two translatable messages

Andrey Bienkowski (1):
      doc: clarify the filename encoding in git diff

Andrzej Hunt (22):
      symbolic-ref: don't leak shortened refname in check_symref()
      reset: free instead of leaking unneeded ref
      clone: free or UNLEAK further pointers when finished
      worktree: fix leak in dwim_branch()
      init: remove git_init_db_config() while fixing leaks
      init-db: silence template_dir leak when converting to absolute path
      parse-options: convert bitfield values to use binary shift
      parse-options: don't leak alias help messages
      transport: also free remote_refs in transport_disconnect()
      merge-ort: only do pointer arithmetic for non-empty lists
      revision: free remainder of old commit list in limit_list
      wt-status: fix multiple small leaks
      ls-files: free max_prefix when done
      bloom: clear each bloom_key after use
      branch: FREE_AND_NULL instead of NULL'ing real_ref
      builtin/bugreport: don't leak prefixed filename
      builtin/check-ignore: clear_pathspec before returning
      builtin/checkout: clear pending objects after diffing
      mailinfo: also free strbuf lists when clearing mailinfo
      builtin/for-each-ref: free filter and UNLEAK sorting.
      builtin/rebase: release git_format_patch_opt too
      builtin/rm: avoid leaking pathspec and seen

Atharva Raykar (1):
      userdiff: add support for Scheme

Bagas Sanjaya (1):
      INSTALL: note on using Asciidoctor to build doc

Bruno Albuquerque (1):
      object-info: support for retrieving object info

Charvi Mendiratta (23):
      sequencer: pass todo_item to do_pick_commit()
      sequencer: use const variable for commit message comments
      rebase -i: add fixup [-C | -c] command
      t3437: test script for fixup [-C|-c] options in interactive rebase
      rebase -i: teach --autosquash to work with amend!
      doc/git-rebase: add documentation for fixup [-C|-c] options
      sequencer: fixup the datatype of the 'flag' argument
      sequencer: rename a few functions
      rebase -i: clarify and fix 'fixup -c' rebase-todo help
      t/lib-rebase: update the documentation of FAKE_LINES
      t/t3437: fixup here-docs in the 'setup' test
      t/t3437: remove the dependency of 'expected-message' file from tests
      t/t3437: check the author date of fixed up commit
      t/t3437: simplify and document the test helpers
      t/t3437: use named commits in the tests
      t/t3437: fixup the test 'multiple fixup -c opens editor once'
      doc/rebase -i: fix typo in the documentation of 'fixup' command
      sequencer: export and rename subject_length()
      commit: add amend suboption to --fixup to create amend! commit
      commit: add a reword suboption to --fixup
      t7500: add tests for --fixup=[amend|reword] options
      t3437: use --fixup with options to create amend! commit
      doc/git-commit: add documentation for fixup=[amend|reword] options

Chinmoy Chakraborty (1):
      column, range-diff: downcase option description

Christian Couder (1):
      test-bloom: fix missing 'bloom' from usage string

Christopher Schenk (1):
      remote-curl: fall back to basic auth if Negotiate fails

Dennis Ameling (2):
      cmake(install): fix double .exe suffixes
      cmake(install): include vcpkg dlls

Denton Liu (13):
      git-cat-file.txt: monospace args, placeholders and filenames
      git-cat-file.txt: remove references to "sha1"
      stash show: teach --include-untracked and --only-untracked
      stash show: learn stash.showIncludeUntracked
      git-completion.bash: pass $__git_subcommand_idx from __git_main()
      git-completion.bash: extract from else in _git_stash()
      git-completion.bash: use __gitcomp_builtin() in _git_stash()
      git-completion.bash: separate some commands onto their own line
      git-completion.bash: rename to $__git_cmd_idx
      git-completion.bash: use $__git_cmd_idx in more places
      git-completion.bash: consolidate cases in _git_stash()
      t3905: correct test title
      stash show: fix segfault with --{include,only}-untracked

Derrick Stolee (54):
      commit-graph: create local repository pointer
      commit-graph: use config to specify generation type
      csum-file: make hashwrite() more readable
      sparse-index: design doc and format update
      t/perf: add performance test for sparse operations
      t1092: clean up script quoting
      sparse-index: add guard to ensure full index
      sparse-index: implement ensure_full_index()
      t1092: compare sparse-checkout to sparse-index
      test-read-cache: print cache entries with --table
      test-tool: don't force full index
      unpack-trees: ensure full index
      sparse-checkout: hold pattern list in index
      sparse-index: add 'sdir' index extension
      sparse-index: convert from full to sparse
      submodule: sparse-index should not collapse links
      unpack-trees: allow sparse directories
      sparse-index: check index conversion happens
      sparse-index: add index.sparse config option
      sparse-checkout: toggle sparse index from builtin
      sparse-checkout: disable sparse-index
      cache-tree: integrate with sparse directory entries
      sparse-index: loose integration with cache_tree_verify()
      p2000: add sparse-index repos
      maintenance: simplify prefetch logic
      sparse-index: API protection strategy
      *: remove 'const' qualifier for struct index_state
      read-cache: expand on query into sparse-directory entry
      cache: move ensure_full_index() to cache.h
      add: ensure full index
      checkout-index: ensure full index
      checkout: ensure full index
      commit: ensure full index
      difftool: ensure full index
      fsck: ensure full index
      grep: ensure full index
      ls-files: ensure full index
      merge-index: ensure full index
      rm: ensure full index
      stash: ensure full index
      update-index: ensure full index
      dir: ensure full index
      entry: ensure full index
      merge-recursive: ensure full index
      pathspec: ensure full index
      read-cache: ensure full index
      resolve-undo: ensure full index
      revision: ensure full index
      name-hash: don't add directories to name_hash
      sparse-index: expand_to_path()
      name-hash: use expand_to_path()
      fetch: add --prefetch option
      maintenance: use 'git fetch --prefetch'
      maintenance: respect remote.*.skipFetchAll

Elijah Newren (40):
      diffcore-rename: use directory rename guided basename comparisons
      diffcore-rename: provide basic implementation of idx_possible_rename()
      diffcore-rename: add a mapping of destination names to their indices
      Move computation of dir_rename_count from merge-ort to diffcore-rename
      diffcore-rename: add function for clearing dir_rename_count
      diffcore-rename: move dir_rename_counts into dir_rename_info struct
      diffcore-rename: extend cleanup_dir_rename_info()
      diffcore-rename: compute dir_rename_counts in stages
      diffcore-rename: limit dir_rename_counts computation to relevant dirs
      diffcore-rename: compute dir_rename_guess from dir_rename_counts
      diffcore-rename: enable filtering possible rename sources
      merge-ort: precompute subset of sources for which we need rename detection
      merge-ort: add data structures for an alternate tree traversal
      merge-ort: introduce wrappers for alternate tree traversal
      merge-ort: precompute whether directory rename detection is needed
      merge-ort: use relevant_sources to filter possible rename sources
      merge-ort: skip rename detection entirely if possible
      diffcore-rename: avoid doing basename comparisons for irrelevant sources
      diffcore-rename: take advantage of "majority rules" to skip more renames
      merge-ort, diffcore-rename: tweak dirs_removed and relevant_source type
      merge-ort: record the reason that we want a rename for a directory
      diffcore-rename: only compute dir_rename_count for relevant directories
      diffcore-rename: check if we have enough renames for directories early on
      diffcore-rename: add computation of number of unknown renames
      merge-ort: record the reason that we want a rename for a file
      diffcore-rename: determine which relevant_sources are no longer relevant
      merge-ort: use STABLE_QSORT instead of QSORT where required
      merge-ort: add a special minimal index just for renormalization
      merge-ort: have ll_merge() use a special attr_index for renormalization
      merge-ort: let renormalization change modify/delete into clean delete
      merge-ort: support subtree shifting
      t6428: new test for SKIP_WORKTREE handling and conflicts
      merge-ort: implement CE_SKIP_WORKTREE handling with conflicted entries
      t: mark several submodule merging tests as fixed under merge-ort
      merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict
      merge-recursive: add a bunch of FIXME comments documenting known bugs
      Revert "merge-ort: ignore the directory rename split conflict for now"
      t6423: mark remaining expected failure under merge-ort as such
      Add testing with merge-ort merge strategy
      sequencer: fix edit handling for cherry-pick and revert messages

Eric Sunshine (1):
      merge(s): apply consistent punctuation to "up to date" messages

Firmin Martin (1):
      user-manual.txt: assign preface an id and a title

Georgios Kontaxis (1):
      gitweb: add "e-mail privacy" feature to redact e-mail addresses

Han Xin (1):
      pack-objects: fix comment of reused_chunk.difference

Han-Wen Nienhuys (3):
      reftable: document an alternate cleanup method on Windows
      refs: print errno for read_raw_ref if GIT_TRACE_REFS is set
      refs/debug: trace into reflog expiry too

Jeff Hostetler (13):
      pkt-line: eliminate the need for static buffer in packet_write_gently()
      simple-ipc: design documentation for new IPC mechanism
      simple-ipc: add win32 implementation
      unix-socket: eliminate static unix_stream_socket() helper function
      unix-socket: add backlog size option to unix_stream_listen()
      unix-socket: disallow chdir() when creating unix domain sockets
      unix-stream-server: create unix domain socket under lock
      convert: make convert_attrs() and convert structs public
      convert: add [async_]convert_to_working_tree_ca() variants
      convert: add get_stream_filter_ca() variant
      convert: add classification for conv_attrs struct
      simple-ipc: add Unix domain socket implementation
      t0052: add simple-ipc tests and t/helper/test-simple-ipc tool

Jeff King (39):
      add open_nofollow() helper
      attr: convert "macro_ok" into a flags field
      exclude: add flags parameter to add_patterns()
      attr: do not respect symlinks for in-tree .gitattributes
      exclude: do not respect symlinks for in-tree .gitignore
      mailmap: do not respect symlinks for in-tree .mailmap
      p5303: add missing &&-chains
      p5303: measure time to repack with keep
      builtin/pack-objects.c: rewrite honor-pack-keep logic
      packfile: add kept-pack cache for find_kept_pack_entry()
      t/perf: handle worktrees as test repos
      t/perf: avoid copying worktree files from test repo
      t7003: test ref rewriting explicitly
      filter-branch: drop multiple-ancestor warning
      filter-branch: drop $_x40 glob
      t: annotate !PTHREADS tests with !FAIL_PREREQS
      ref-filter: fix NULL check for parse object failure
      midx.c: improve cache locality in midx_pack_order_cmp()
      pack-objects: update "nr_seen" progress based on pack-reused count
      is_promisor_object(): free tree buffer after parsing
      lookup_unknown_object(): take a repository argument
      revision: avoid parsing with --exclude-promisor-objects
      pack-bitmap: clean up include_check after use
      prune: save reachable-from-recent objects with bitmaps
      t5300: modernize basic tests
      t5300: check that we produced expected number of deltas
      pack-objects: clamp negative window size to 0
      t5316: check behavior of pack-objects --depth=0
      pack-objects: clamp negative depth to 0
      docs/format-patch: mention handling of merges
      t7415: remove out-dated comment about translation
      fsck_tree(): fix shadowed variable
      fsck_tree(): wrap some long lines
      t7415: rename to expand scope
      t7450: test verify_path() handling of gitmodules
      t7450: test .gitmodules symlink matching against obscured names
      t0060: test ntfs/hfs-obscured dotfiles
      fsck: warn about symlinked dotfiles we'll open with O_NOFOLLOW
      docs: document symlink restrictions for dot-files

Jerry Zhang (3):
      git-apply: try threeway first when "--3way" is used
      git-apply: allow simultaneous --cached and --3way options
      apply: adjust messages to account for --3way changes

Joachim Kuebart (2):
      git-p4: ensure complex branches are cloned correctly
      git-p4: speed up search for branch parent

Johannes Schindelin (8):
      pkt-line: do not issue flush packets in write_packetized_*()
      pkt-line: add PACKET_READ_GENTLE_ON_READ_ERROR option
      pkt-line: add options argument to read_packetized_to_strbuf()
      SECURITY: describe how to report vulnerabilities
      Document how we do embargoed releases
      cmake: support SKIP_DASHED_BUILT_INS
      cmake: add a preparatory work-around to accommodate `vcpkg`
      msvc: avoid calling `access("NUL", flags)`

John Szakmeister (2):
      http: store credential when PKI auth is used
      http: drop the check for an empty proxy password before approving

Jonathan Tan (7):
      fetch-pack: buffer object-format with other args
      fetch-pack: refactor process_acks()
      fetch-pack: refactor add_haves()
      fetch-pack: refactor command and capability write
      fetch: teach independent negotiation (no packfile)
      send-pack: support push negotiation
      t5601: mark protocol v2-only test

Josh Soref (1):
      merge: fix swapped "up to date" message components

Julien Richard (1):
      doc: .gitignore documentation typofix

Junio C Hamano (22):
      builtin/repack.c: reword comment around pack-objects flags
      The first batch in 2.32 cycle
      The second batch
      format-patch: give an overview of what a "patch" message is
      The third patch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      The eighth batch
      The ninth batch
      doc: clarify "do not capitalize the first word" rule
      The tenth batch
      The eleventh (aka "ort") batch
      The twelfth batch
      The thirteenth batch
      CodingGuidelines: explicitly allow "local" for test scripts
      The fourteenth batch
      The fifteenth batch
      The sixteenth batch
      The seventeenth batch
      Git 2.32-rc0

Li Linchao (1):
      builtin/clone.c: add --reject-shallow option

Louis Sautier (1):
      pretty: fix a typo in the documentation for %(trailers)

Luke Shumaker (30):
      .gitignore: ignore 'git-subtree' as a build artifact
      subtree: t7900: update for having the default branch name be 'main'
      subtree: t7900: use test-lib.sh's test_count
      subtree: t7900: use consistent formatting
      subtree: t7900: comment subtree_test_create_repo
      subtree: t7900: use 'test' for string equality
      subtree: t7900: delete some dead code
      subtree: t7900: fix 'verify one file change per commit'
      subtree: t7900: rename last_commit_message to last_commit_subject
      subtree: t7900: add a test for the -h flag
      subtree: t7900: add porcelain tests for 'pull' and 'push'
      subtree: don't have loose code outside of a function
      subtree: more consistent error propagation
      subtree: drop support for git < 1.7
      subtree: use `git merge-base --is-ancestor`
      subtree: use git-sh-setup's `say`
      subtree: use more explicit variable names for cmdline args
      subtree: use "$*" instead of "$@" as appropriate
      subtree: don't fuss with PATH
      subtree: use "^{commit}" instead of "^0"
      subtree: parse revs in individual cmd_ functions
      subtree: remove duplicate check
      subtree: add comments and sanity checks
      subtree: don't let debug and progress output clash
      subtree: have $indent actually affect indentation
      subtree: give the docs a once-over
      subtree: allow --squash to be used with --rejoin
      subtree: allow 'split' flags to be passed to 'push'
      subtree: push: allow specifying a local rev other than HEAD
      subtree: be stricter about validating flags

Lénaïc Huard (1):
      maintenance: fix two memory leaks

Martin Ågren (2):
      git-repack.txt: remove spurious ")"
      pretty-formats.txt: add missing space

Matheus Tavares (30):
      convert: fail gracefully upon missing clean cmd on required filter
      symlinks: update comment on threaded_check_leading_path()
      checkout: don't follow symlinks when removing entries
      entry: extract a header file for entry.c functions
      entry: make fstat_output() and read_blob_entry() public
      entry: extract update_ce_after_write() from write_entry()
      entry: move conv_attrs lookup up to checkout_entry()
      entry: add checkout_entry_ca() taking preloaded conv_attrs
      add: include magic part of pathspec on --refresh error
      t3705: add tests for `git add` in sparse checkouts
      add: make --chmod and --renormalize honor sparse checkouts
      pathspec: allow to ignore SKIP_WORKTREE entries on index matching
      refresh_index(): add flag to ignore SKIP_WORKTREE entries
      add: warn when asked to update SKIP_WORKTREE entries
      rm: honor sparse checkout patterns
      pkt-line: do not report packet write errors twice
      unpack-trees: add basic support for parallel checkout
      parallel-checkout: make it truly parallel
      parallel-checkout: add configuration options
      parallel-checkout: support progress displaying
      parallel-checkout: add design documentation
      make_transient_cache_entry(): optionally alloc from mem_pool
      builtin/checkout.c: complete parallel checkout support
      checkout-index: add parallel checkout support
      parallel-checkout: add tests for basic operations
      parallel-checkout: add tests related to path collisions
      t0028: extract encoding helpers to lib-encoding.sh
      parallel-checkout: add tests related to .gitattributes
      ci: run test round with parallel-checkout enabled
      clean: remove unnecessary variable

Nicholas Clark (1):
      submodule update: silence underlying fetch with "--quiet"

Nipunn Koorapati (3):
      fsmonitor: skip lstat deletion check during git diff-index
      fsmonitor: add assertion that fsmonitor is valid to check_removed
      fsmonitor: add perf test for git diff HEAD

Patrick Steinhardt (17):
      githooks.txt: replace mentions of SHA-1 specific properties
      githooks.txt: clarify documentation on reference-transaction hook
      pack-bitmap: avoid traversal of objects referenced by uninteresting tag
      uploadpack.txt: document implication of `uploadpackfilter.allow`
      revision: mark commit parents as NOT_USER_GIVEN
      list-objects: move tag processing into its own function
      list-objects: support filtering by tag and commit
      list-objects: implement object type filter
      pack-bitmap: implement object type filter
      pack-bitmap: implement combined filter
      rev-list: allow filtering of provided items
      config: rename `git_etc_config()`
      config: unify code paths to get global config paths
      config: allow overriding of global and system configuration
      t1300: fix unset of GIT_CONFIG_NOSYSTEM leaking into subsequent tests
      git.txt: fix synopsis of `--config-env` missing the equals sign
      git: support separate arg for `--config-env`'s value

Peter Oliver (1):
      doc: point to diff attribute in patch format docs

Phillip Wood (6):
      rebase -i: only write fixup-message when it's needed
      sequencer: factor out code to append squash message
      rebase -i: comment out squash!/fixup! subjects from squash message
      word diff: handle zero length matches
      patience diff: remove unnecessary string comparisons
      patience diff: remove unused variable

Rafael Silva (1):
      repack: avoid loosening promisor objects in partial clones

Ramkumar Ramachandra (1):
      Add entry for Ramkumar Ramachandra

Ramsay Jones (1):
      bisect--helper: use BISECT_TERMS in 'bisect skip' command

René Scharfe (6):
      pretty: add %(describe)
      pretty: add merge and exclude options to %(describe)
      t4205: assert %(describe) test coverage
      pretty: document multiple %(describe) being inconsistent
      archive: expand only a single %(describe) per archive
      daemon: sanitize all directory separators

Robert Foss (1):
      git-send-email: Respect core.hooksPath setting

SZEDER Gábor (1):
      Makefile: add missing dependencies of 'config-list.h'

Sardorbek Imomaliev (1):
      work around zsh comment in __git_complete_worktree_paths

Sergey Organov (5):
      diff-merges: introduce --diff-merges=on
      diff-merges: refactor set_diff_merges()
      diff-merges: adapt -m to enable default diff format
      diff-merges: introduce log.diffMerges config variable
      doc/diff-options: document new --diff-merges features

Shubham Verma (1):
      t9801: replace test -f with test_path_is_file

Taylor Blau (28):
      packfile: introduce 'find_kept_pack_entry()'
      revision: learn '--no-kept-objects'
      builtin/pack-objects.c: add '--stdin-packs' option
      builtin/repack.c: add '--geometric' option
      builtin/repack.c: do not repack single packs with --geometric
      t7703: test --geometric repack with loose objects
      builtin/repack.c: assign pack split later
      builtin/repack.c: be more conservative with unsigned overflows
      Documentation/git-push.txt: correct configuration typo
      builtin/pack-objects.c: ignore missing links with --stdin-packs
      builtin/multi-pack-index.c: inline 'flags' with options
      builtin/multi-pack-index.c: don't handle 'progress' separately
      builtin/multi-pack-index.c: define common usage with a macro
      builtin/multi-pack-index.c: split sub-commands
      builtin/multi-pack-index.c: don't enter bogus cmd_mode
      builtin/multi-pack-index.c: display usage on unrecognized command
      t/helper/test-read-midx.c: add '--show-objects'
      pack-bitmap: add 'test_bitmap_commits()' helper
      t/helper/test-bitmap.c: initial commit
      builtin/pack-objects.c: respect 'pack.preferBitmapTips'
      midx: allow marking a pack as preferred
      midx: don't free midx_name early
      midx: keep track of the checksum
      midx: make some functions non-static
      Documentation/technical: describe multi-pack reverse indexes
      pack-revindex: read multi-pack reverse indexes
      pack-write.c: extract 'write_rev_file_order'
      pack-revindex: write multi-pack reverse indexes

Torsten Bögershausen (2):
      precompose_utf8: make precompose_string_if_needed() public
      macOS: precompose startup_info->prefix

Ville Skyttä (2):
      completion: audit and guard $GIT_* against unset use
      completion: avoid aliased command lookup error in nounset mode

Will Chandler (1):
      refs: cleanup directories when deleting packed ref

ZheNing Hu (7):
      commit: add --trailer option
      format-patch: allow a non-integral version numbers
      ref-filter: get rid of show_ref_array_item
      ref-filter: reuse output buffer
      pretty: provide human date format
      docs: correct descript of trailer.<token>.command
      trailer: add new .cmd config option

brian m. carlson (14):
      builtin/init-db: handle bare clones when core.bare set to false
      hash: add an algo member to struct object_id
      Always use oidread to read into struct object_id
      http-push: set algorithm when reading object ID
      hash: add a function to finalize object IDs
      Use the final_oid_fn to finalize hashing of object IDs
      builtin/pack-redundant: avoid casting buffers to struct object_id
      hash: set, copy, and use algo field in struct object_id
      hash: provide per-algorithm null OIDs
      builtin/show-index: set the algorithm for object IDs
      commit-graph: don't store file hashes as struct object_id
      builtin/pack-objects: avoid using struct object_id for pack hash
      hex: default to the_hash_algo on zero algorithm value
      hex: print objects using the hash algorithm member

Ævar Arnfjörð Bjarmason (87):
      grep/pcre2: drop needless assignment + assert() on opt->pcre2
      grep/pcre2: drop needless assignment to NULL
      grep/pcre2: correct reference to grep_init() in comment
      grep/pcre2: prepare to add debugging to pcre2_malloc()
      grep/pcre2: add GREP_PCRE2_DEBUG_MALLOC debug mode
      grep/pcre2: use compile-time PCREv2 version test
      grep/pcre2: use pcre2_maketables_free() function
      grep/pcre2: actually make pcre2 use custom allocator
      grep/pcre2: move back to thread-only PCREv2 structures
      grep/pcre2: move definitions of pcre2_{malloc,free}
      Makefile: guard against TEST_OBJS in the environment
      Makefile: split up long OBJECTS line
      Makefile: sort OBJECTS assignment for subsequent change
      Makefile: split OBJECTS into OBJECTS and GIT_OBJS
      Makefile: add {program,xdiff,test,git,fuzz}-objs & objects targets
      remote: add camel-cased *.tagOpt key, like clone
      remote: write camel-cased *.pushRemote on rename
      fsck.c: refactor and rename common config callback
      show tests: add test for "git show <tree>"
      ls-files tests: add meaningful --with-tree tests
      tree.c API: move read_tree() into builtin/ls-files.c
      ls-files: don't needlessly pass around stage variable
      ls-files: refactor away read_tree()
      archive: stop passing "stage" through read_tree_recursive()
      tree.h API: expose read_tree_1() as read_tree_at()
      tree.h API: simplify read_tree_recursive() signature
      diff --no-index tests: add test for --exit-code
      diff --no-index tests: test mode normalization
      rebase: remove transitory rebase.useBuiltin setting & env
      mktag tests: fix broken "&&" chain
      fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}
      fsck.h: use "enum object_type" instead of "int"
      fsck.c: rename variables in fsck_set_msg_type() for less confusion
      fsck.c: remove (mostly) redundant append_msg_id() function
      fsck.c: rename remaining fsck_msg_id "id" to "msg_id"
      fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"
      fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enum
      fsck.h: re-order and re-assign "enum fsck_msg_type"
      fsck.c: call parse_msg_type() early in fsck_set_msg_type()
      fsck.c: undefine temporary STR macro after use
      fsck.c: give "FOREACH_MSG_ID" a more specific name
      fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.h
      fsck.c: pass along the fsck_msg_id in the fsck_error callback
      fsck.c: add an fsck_set_msg_type() API that takes enums
      fsck.c: move gitmodules_{found,done} into fsck_options
      fetch-pack: don't needlessly copy fsck_options
      fetch-pack: use file-scope static struct for fsck_options
      fetch-pack: use new fsck API to printing dangling submodules
      Makefile: add QUIET_GEN to "tags" and "TAGS" targets
      git-send-email: replace "map" in void context with "for"
      git-send-email: test full --validate output
      git-send-email: refactor duplicate $? checks into a function
      git-send-email: improve --validate error output
      bash completion: complete CHERRY_PICK_HEAD
      config.c: remove last remnant of GIT_TEST_GETTEXT_POISON
      userdiff style: re-order drivers in alphabetical order
      userdiff style: declare patterns with consistent style
      userdiff style: normalize pascal regex declaration
      userdiff: add and use for_each_userdiff_driver()
      userdiff tests: explicitly test "default" pattern
      userdiff tests: list builtin drivers via test-tool
      userdiff: remove support for "broken" tests
      blame tests: don't rely on t/t4018/ directory
      blame tests: simplify userdiff driver test
      rebase tests: camel-case rebase.rescheduleFailedExec consistently
      rebase: don't override --no-reschedule-failed-exec with config
      Documentation/Makefile: make $(wildcard howto/*.txt) a var
      Documentation/Makefile: make doc.dep dependencies a variable again
      doc lint: Perl "strict" and "warnings" in lint-gitlink.perl
      doc lint: fix bugs in, simplify and improve lint script
      doc lint: lint and fix missing "GIT" end sections
      doc lint: lint relative section order
      docs: fix linting issues due to incorrect relative section order
      svn tests: remove legacy re-setup from init-clone test
      svn tests: refactor away a "set -e" in test body
      tests: remove all uses of test_i18cmp
      usage.c: don't copy/paste the same comment three times
      api docs: document BUG() in api-error-handling.txt
      api docs: document that BUG() emits a trace2 error event
      pretty tests: simplify %aI/%cI date format test
      pretty tests: give --date/format tests a better description
      sparse-index.c: remove set_index_sparse_config()
      streaming.c: avoid forward declarations
      streaming.c: remove enum/function/vtbl indirection
      streaming.c: remove {open,close,read}_method_decl() macros
      streaming.c: stop passing around "object_info *" to open()
      streaming.c: move {open,close,read} from vtable to "struct git_istream"

Øystein Walle (2):
      transport: respect verbosity when setting upstream
      add: die if both --dry-run and --interactive are given

Đoàn Trần Công Danh (6):
      mailinfo: load default metainfo_charset lazily
      mailinfo: stop parsing options manually
      mailinfo: warn if CRLF found in decoded base64/QP email
      mailinfo: allow squelching quoted CRLF warning
      mailinfo: allow stripping quoted CR without warning
      am: learn to process quoted lines that ends with CRLF


Version v2.31.8; changes since v2.31.7:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (6):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (13):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present
      tests: avoid using `test_i18ncmp`
      Git 2.31.8

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.31.7; changes since v2.31.6:
---------------------------------------

Johannes Schindelin (2):
      attr: adjust a mismatched data type
      Git 2.31.7

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.31.6; changes since v2.31.5:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (2):
      Git 2.30.7
      Git 2.31.6

Patrick Steinhardt (21):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats


Version v2.31.5; changes since v2.31.4:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (13):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      Git 2.30.6
      Git 2.31.5


Version v2.31.4; changes since v2.31.3:
---------------------------------------

Carlo Marcelo Arenas Belón (5):
      t: regression git needs safe.directory when using sudo
      git-compat-util: avoid failing dir ownership checks if running privileged
      t0034: add negative tests and allow git init to mostly work under sudo
      git-compat-util: allow root to access both SUDO_UID and root owned
      setup: tighten ownership checks post CVE-2022-24765

Johannes Schindelin (2):
      Git 2.30.5
      Git 2.31.4


Version v2.31.3; changes since v2.31.2:
---------------------------------------

Derrick Stolee (2):
      t0033: add tests for safe.directory
      setup: opt-out of check with safe.directory=*

Junio C Hamano (1):
      Git 2.30.4

Matheus Valadares (1):
      setup: fix safe.directory key not being checked


Version v2.31.2; changes since v2.31.1:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      mingw: avoid fallback for {local,gm}time_r()

Johannes Schindelin (5):
      Add a function to determine whether a path is owned by the current user
      setup_git_directory(): add an owner check for the top-level directory
      Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
      Git 2.30.3
      Git 2.31.2


Version v2.31.1; changes since v2.31.0:
---------------------------------------

Andrzej Hunt (2):
      Makefile: update 'make fuzz-all' docs to reflect modern clang
      fsmonitor: avoid global-buffer-overflow READ when checking trivial response

Jeff King (1):
      bisect: peel annotated tags to commits

Johannes Schindelin (2):
      fsmonitor: fix memory corruption in some corner cases
      fsmonitor: do not forget to release the token in `discard_index()`

Jonathan Tan (1):
      t5606: run clone branch name test with protocol v2

Junio C Hamano (3):
      xcalloc: use CALLOC_ARRAY() when applicable
      cocci: allow xcalloc(1, size)
      Git 2.31.1

Kyle Meyer (1):
      config.txt: add missing period

René Scharfe (6):
      fix xcalloc() argument order
      git-compat-util.h: drop trailing semicolon from macro definition
      use CALLOC_ARRAY
      vcs-svn: remove header files as well
      block-sha1: drop trailing semicolon from macro definition
      mem-pool: drop trailing semicolon from macro definition

Torsten Bögershausen (1):
      git mv foo FOO ; git mv foo bar gave an assert


Version v2.31.0; changes since v2.31.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5104t)

Arusekk (1):
      l10n: pl.po: Update translation

Bagas Sanjaya (2):
      l10n: start Indonesian translation
      l10n: Add translation team info

Christopher Diaz Riveros (1):
      l10n: es: 2.31.0 round 2

Daniel Santos (1):
      l10n: pt_PT: add Portuguese translations part 1

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Emir Sarı (2):
      l10n: tr: v2.31.0-rc0
      l10n: tr: v2.31.0-rc1

Jean-Noël Avila (2):
      l10n: fr: v2.31.0 rnd 1
      l10n: fr: v2.31 rnd 2

Jiang Xin (3):
      l10n: git.pot: v2.31.0 round 1 (155 new, 89 removed)
      l10n: git.pot: v2.31.0 round 2 (9 new, 8 removed)
      l10n: zh_CN: for git v2.31.0 l10n round 1 and 2

Jonathan Nieder (2):
      mergetool: do not enable hideResolved by default
      doc: describe mergetool configuration in git-mergetool(1)

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.31

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git v2.31.0

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (5103t0f0u)
      l10n: sv.po: Update Swedish translation (5104t0f0u)

Taylor Blau (1):
      pack-revindex.c: don't close unopened file descriptors

Trần Ngọc Quân (1):
      l10n: vi.po(5104t): for git v2.31.0 l10n round 2

Yi-Jyun Pan (1):
      l10n: zh_TW.po: v2.31.0 round 2 (15 untranslated)


Version v2.31.0-rc2; changes since v2.31.0-rc1:
-----------------------------------------------

Elijah Newren (1):
      Documentation/RelNotes: improve release note for rename detection work

Jeff King (2):
      Makefile: add OPEN_RETURNS_EINTR knob
      config.mak.uname: enable OPEN_RETURNS_EINTR for macOS Big Sur

Johannes Schindelin (15):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4
      Git 2.25.5
      Git 2.26.3
      Git 2.27.1
      Git 2.28.1
      Git 2.29.3
      Git 2.30.2

Jonathan Tan (1):
      fetch-pack: do not mix --pack_header and packfile uri

Junio C Hamano (2):
      Merged the open-eintr workaround for macOS
      Git 2.31-rc2

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache

Pratyush Yadav (1):
      Revert "git-gui: remove lines starting with the comment character"


Version v2.31.0-rc1; changes since v2.31.0-rc0:
-----------------------------------------------

Derrick Stolee (17):
      commit-graph: anonymize data in chunk_write_fn
      chunk-format: create chunk format write API
      commit-graph: use chunk-format write API
      midx: rename pack_info to write_midx_context
      midx: use context in write_midx_pack_names()
      midx: add entries to write_midx_context
      midx: add pack_perm to write_midx_context
      midx: add num_large_offsets to write_midx_context
      midx: return success/failure in chunk write methods
      midx: drop chunk progress during write
      midx: use chunk-format API in write_midx_internal()
      chunk-format: create read chunk API
      commit-graph: use chunk-format read API
      midx: use chunk-format read API
      midx: use 64-bit multiplication for chunk sizes
      chunk-format: restore duplicate chunk checks
      chunk-format: add technical docs

Elijah Newren (8):
      diffcore-rename: no point trying to find a match better than exact
      diffcore-rename: filter rename_src list when possible
      t4001: add a test comparing basename similarity and content similarity
      diffcore-rename: compute basenames of source and dest candidates
      diffcore-rename: complete find_basename_matches()
      diffcore-rename: guide inexact rename detection based on basenames
      gitdiffcore doc: mention new preliminary step for rename detection
      merge-ort: call diffcore_rename() directly

Han-Wen Nienhuys (1):
      doc/reftable: document how to handle windows

Hariom Verma (4):
      t6300: use function to test trailer options
      pretty.c: refactor trailer logic to `format_set_trailers_options()`
      pretty.c: capture invalid trailer argument
      ref-filter: use pretty.c logic for trailers

Jeff Hostetler (11):
      p7519: do not rely on "xargs -d" in test
      p7519: fix watchman watch-list test on Windows
      p7519: move watchman cleanup earlier in the test
      p7519: add trace logging during perf test
      preload-index: log the number of lstat calls to trace2
      read-cache: log the number of lstat calls to trace2
      read-cache: log the number of scanned files to trace2
      fsmonitor: log invocation of FSMonitor hook to trace2
      fsmonitor: log FSMN token when reading and writing the index
      fsmonitor: refactor initialization of fsmonitor_last_update token
      dir: fix malloc of root untracked_cache_dir

Jonathan Tan (4):
      http: allow custom index-pack args
      http-fetch: allow custom index-pack args
      fetch-pack: with packfile URIs, use index-pack arg
      fetch-pack: print and use dangling .gitmodules

Junio C Hamano (3):
      Revert "commit-graph: when incompatible with graphs, indicate why"
      Hopefully the last batch before -rc1
      Git 2.31-rc1

Kevin Willford (1):
      fsmonitor: allow all entries for a folder to be invalidated

Mikhail Klyushin (1):
      git-gui: fix typo in russian locale

Neeraj Singh (1):
      read-cache: make the index write buffer size 128K

Pratyush Yadav (1):
      git-gui: remove lines starting with the comment character

Shubham Verma (10):
      t7001: modernize test formatting
      t7001: indent with TABs instead of spaces
      t7001: remove unnecessary blank lines
      t7001: modernize subshell formatting
      t7001: remove whitespace after redirect operators
      t7001: avoid using `cd` outside of subshells
      t7001: use '>' rather than 'touch'
      t7001: put each command on a separate line
      t7001: use here-docs instead of echo
      t7001: use `test` rather than `[`

Taylor Blau (1):
      commit-graph.c: display correct number of chunks when writing


Version v2.31.0-rc0; changes since v2.30.9:
-------------------------------------------

Abhishek Kumar (11):
      commit-graph: fix regression when computing Bloom filters
      revision: parse parent in indegree_walk_step()
      commit-graph: consolidate fill_commit_graph_info
      t6600-test-reach: generalize *_three_modes
      commit-graph: add a slab to store topological levels
      commit-graph: return 64-bit generation number
      commit-graph: implement corrected commit date
      commit-graph: implement generation data chunk
      commit-graph: use generation v2 only if entire chain does
      commit-reach: use corrected commit dates in paint_down_to_common()
      doc: add corrected commit date info

Alex Henrie (1):
      rebase: add a config option for --no-fork-point

Andrew Klotz (1):
      config: improve error message for boolean config

Andrzej Hunt (1):
      commit-graph: avoid leaking topo_levels slab in write_commit_graph()

Christian Couder (3):
      fetch-pack: rename helper to create_promisor_file()
      fetch-pack: refactor writing promisor file
      pack-write: die on error in write_promisor_file()

Christian Walther (1):
      doc: mention bigFileThreshold for packing

Denton Liu (12):
      refs: factor out set_read_ref_cutoffs()
      refs: allow @{n} to work with n-sized reflog
      test-lib-functions.sh: fix usage for test_commit()
      t4203: stop losing return codes of git commands
      git-stash.txt: be explicit about subcommand options
      t3905: remove spaces after redirect operators
      t3905: move all commands into test cases
      t3905: remove nested git in command substitution
      t3905: replace test -s with test_file_not_empty
      t3905: use test_cmp() to check file contents
      stash: declare ref_stash as an array
      i18n.txt: camel case and monospace "i18n.commitEncoding"

Derrick Stolee (47):
      maintenance: extract platform-specific scheduling
      maintenance: include 'cron' details in docs
      pack-bitmap-write: fill bitmap with commit history
      bitmap: implement bitmap_is_subset()
      commit: implement commit_list_contains()
      t5310: add branch-based checks
      pack-bitmap-write: rename children to reverse_edges
      pack-bitmap-write: build fewer intermediate bitmaps
      pack-bitmap-write: use existing bitmaps
      pack-bitmap-write: relax unique revwalk condition
      pack-bitmap-write: better reuse bitmaps
      revision: trace topo-walk statistics
      tree-walk: report recursion counts
      unpack-trees: add trace2 regions
      cache-tree: use trace2 in cache_tree_update()
      maintenance: use launchctl on macOS
      maintenance: use Windows scheduled tasks
      cache-tree: trace regions for I/O
      cache-tree: trace regions for prime_cache_tree
      index-format: use 'cache tree' over 'cached tree'
      index-format: update preamble to cache tree extension
      index-format: discuss recursion of cache-tree better
      cache-tree: speed up consecutive path comparisons
      maintenance: set log.excludeDecoration durin prefetch
      t7900: clean up some broken refs
      cache-tree: clean up cache_tree_update()
      cache-tree: simplify verify_cache() prototype
      cache-tree: extract subtree_pos()
      fsmonitor: de-duplicate BUG()s around dirty bits
      repository: add repo reference to index_state
      name-hash: use trace2 regions for init
      sparse-checkout: load sparse-checkout patterns
      test-lib: test_region looks for trace2 regions
      t1092: test interesting sparse-checkout scenarios
      commit-reach: reduce requirements for remove_redundant()
      commit-graph: use repo_parse_commit
      commit-graph: always parse before commit_graph_data_at()
      commit-graph: validate layers for generation data
      commit-graph: compute generations separately
      commit-graph: be extra careful about mixed generations
      commit-graph: prepare commit graph
      maintenance: add pack-refs task
      maintenance: incremental strategy runs pack-refs weekly
      commit-reach: use one walk in remove_redundant()
      commit-reach: move compare_commits_by_gen
      commit-reach: use heuristic in remove_redundant()
      commit-reach: stale commits may prune generation further

Elijah Newren (81):
      merge-ort: setup basic internal data structures
      merge-ort: add some high-level algorithm structure
      merge-ort: port merge_start() from merge-recursive
      merge-ort: use histogram diff
      merge-ort: add an err() function similar to one from merge-recursive
      merge-ort: implement a very basic collect_merge_info()
      merge-ort: avoid repeating fill_tree_descriptor() on the same tree
      merge-ort: compute a few more useful fields for collect_merge_info
      merge-ort: record stage and auxiliary info for every path
      merge-ort: avoid recursing into identical trees
      merge-ort: add a preliminary simple process_entries() implementation
      merge-ort: have process_entries operate in a defined order
      merge-ort: step 1 of tree writing -- record basenames, modes, and oids
      merge-ort: step 2 of tree writing -- function to create tree object
      merge-ort: step 3 of tree writing -- handling subdirectories as we go
      merge-ort: basic outline for merge_switch_to_result()
      merge-ort: add implementation of checkout()
      tree: enable cmp_cache_name_compare() to be used elsewhere
      merge-ort: add implementation of record_conflicted_index_entries()
      merge-ort: free data structures in merge_finalize()
      merge-ort: add a few includes
      merge-ort: add a clear_internal_opts helper
      merge-ort: add a path_conflict field to merge_options_internal
      merge-ort: add a paths_to_free field to merge_options_internal
      merge-ort: add function grouping comments
      merge-ort: add die-not-implemented stub handle_content_merge() function
      merge-ort: add modify/delete handling and delayed output processing
      merge-ort: add basic data structures for handling renames
      merge-ort: add initial outline for basic rename detection
      merge-ort: implement detect_regular_renames()
      merge-ort: implement compare_pairs() and collect_renames()
      merge-ort: add basic outline for process_renames()
      diffcore-rename: rename num_create to num_destinations
      diffcore-rename: avoid usage of global in too_many_rename_candidates()
      diffcore-rename: simplify limit check
      diffcore-rename: reduce jumpiness in progress counters
      t4058: add more tests and documentation for duplicate tree entry handling
      t4058: explore duplicate tree entry handling in a bit more detail
      diffcore-rename: simplify and accelerate register_rename_src()
      diffcore-rename: accelerate rename_dst setup
      merge-ort: add implementation of both sides renaming identically
      merge-ort: add implementation of both sides renaming differently
      merge-ort: add implementation of rename/delete conflicts
      merge-ort: add implementation of rename collisions
      merge-ort: add implementation of normal rename handling
      merge-ort: add implementation of type-changed rename handling
      commit: move reverse_commit_list() from merge-recursive
      merge-ort: copy a few small helper functions from merge-recursive.c
      merge-ort: make clear_internal_opts() aware of partial clearing
      merge-ort: implement merge_incore_recursive()
      merge-ort: handle D/F conflict where directory disappears due to merge
      merge-ort: handle directory/file conflicts that remain
      merge-ort: implement unique_path() helper
      merge-ort: handle book-keeping around two- and three-way content merge
      merge-ort: flesh out implementation of handle_content_merge()
      merge-ort: copy and adapt merge_3way() from merge-recursive.c
      merge-ort: copy and adapt merge_submodule() from merge-recursive.c
      merge-ort: implement format_commit()
      merge-ort: copy find_first_merges() implementation from merge-recursive.c
      merge-ort: add handling for different types of files at same path
      diffcore-rename: remove unnecessary duplicate entry checks
      merge-ort: add new data structures for directory rename detection
      merge-ort: initialize and free new directory rename data structures
      merge-ort: collect which directories are removed in dirs_removed
      merge-ort: add outline for computing directory renames
      merge-ort: add outline of get_provisional_directory_renames()
      merge-ort: copy get_renamed_dir_portion() from merge-recursive.c
      merge-ort: implement compute_rename_counts()
      merge-ort: implement handle_directory_level_conflicts()
      merge-ort: modify collect_renames() for directory rename handling
      merge-ort: implement compute_collisions()
      merge-ort: implement apply_dir_rename() and check_dir_renamed()
      merge-ort: implement check_for_directory_rename()
      merge-ort: implement handle_path_level_conflicts()
      merge-ort: add a new toplevel_dir field
      merge-ort: implement apply_directory_rename_modifications()
      merge-ort: process_renames() now needs more defensiveness
      merge-ort: fix a directory rename detection bug
      merge-ort: fix massive leak
      merge-ort: ignore the directory rename split conflict for now
      merge-ort: begin performance work; instrument with trace2_region_* calls

Eric Sunshine (3):
      worktree: teach `repair` to fix multi-directional breakage
      t/perf: avoid unnecessary test_export() recursion
      maintenance: fix incorrect `maintenance.repo` path with bare repository

Eric Wong (2):
      core.abbrev=no disables abbreviations
      t1500: ensure current --since= behavior remains

Felipe Contreras (7):
      pull: refactor fast-forward check
      pull: give the advice for choosing rebase/merge much later
      pull: display default warning only when non-ff
      completion: bash: add __git_have_func helper
      completion: bash: improve function detection
      test: completion: add tests for __git_complete
      completion: add proper public __git_complete

Jacob Vosmaer (4):
      builtin/pack-objects.c: avoid iterating all refs
      ls-refs.c: initialize 'prefixes' before using it
      upload-pack.c: fix filter spec quoting bug
      t5544: clarify 'hook works with partial clone' test

Jeff King (38):
      pack-bitmap: fix header size check
      pack-bitmap: bounds-check size of cache extension
      t5310: drop size of truncated ewah bitmap
      rev-list: die when --test-bitmap detects a mismatch
      ewah: factor out bitmap growth
      ewah: make bitmap growth less aggressive
      ewah: implement bitmap_or()
      ewah: add bitmap_dup() function
      pack-bitmap-write: reimplement bitmap writing
      pack-bitmap-write: pass ownership of intermediate bitmaps
      pack-bitmap-write: ignore BITMAP_FLAG_REUSE
      quote: make sq_dequote_step() a public function
      for_each_object_in_pack(): clarify pack vs index ordering
      config: parse more robust format in GIT_CONFIG_PARAMETERS
      refs: switch peel_ref() to peel_iterated_oid()
      run-command: document use_shell option
      git-svn tests: rewrite brittle tests to use "--[no-]merges".
      git-compat-util: always enable variadic macros
      commit_graft_pos(): take an oid instead of a bare hash
      rerere: check dirname format while iterating rr_cache directory
      rerere: tighten rr-cache dirname check
      rerere: use strmap to store rerere directories
      hash_pos(): convert to oid_pos()
      oid_pos(): access table through const pointers
      t0000: keep clean-up tests together
      t0000: run prereq tests inside sub-test
      t0000: run cleaning test inside sub-test
      t0000: consistently use single quotes for outer tests
      pretty: lazy-load commit data when expanding user-format
      completion: treat "branch -D" the same way as "branch -d"
      completion: handle other variants of "branch -m"
      doc/git-branch: fix awkward wording for "-c"
      t: add --no-tag option to test_commit
      mailmap: only look for .mailmap in work tree
      rev-list: add --disk-usage option for calculating disk usage
      docs/rev-list: add an examples section
      docs/rev-list: add some examples of --disk-usage
      doc: mention approxidates for git-commit --date

Jiang Xin (5):
      test: add helper functions for git-bundle
      bundle: lost objects when removing duplicate pendings
      bundle: arguments can be read from stdin
      t5411: use different out file to prevent overwriting
      t5411: refactor check of refs using test_cmp_refs

Joey Salazar (1):
      doc: fix naming of response-end-pkt

Johannes Schindelin (42):
      tests: mark tests relying on the current default for `init.defaultBranch`
      t0060: preemptively adjust alignment
      t[01]*: adjust the references to the default branch name "main"
      t2*: adjust the references to the default branch name "main"
      t3[0-3]*: adjust the references to the default branch name "main"
      t3416: preemptively adjust alignment in a comment
      t34*: adjust the references to the default branch name "main"
      t3[5-9]*: adjust the references to the default branch name "main"
      t4*: adjust the references to the default branch name "main"
      t5323: prepare centered comment for `master` -> `main`
      t5[0-4]*: adjust the references to the default branch name "main"
      t5503: prepare aligned comment for replacing `master` with `main`
      t550*: adjust the references to the default branch name "main"
      t551*: adjust the references to the default branch name "main"
      t55[23]*: adjust the references to the default branch name "main"
      t55[4-9]*: adjust the references to the default branch name "main"
      t5[6-9]*: adjust the references to the default branch name "main"
      t6[0-3]*: adjust the references to the default branch name "main"
      t64*: preemptively adjust alignment to prepare for `master` -> `main`
      t6[4-9]*: adjust the references to the default branch name "main"
      t7[0-4]*: adjust the references to the default branch name "main"
      t7[5-9]*: adjust the references to the default branch name "main"
      t8*: adjust the references to the default branch name "main"
      t9[0-4]*: adjust the references to the default branch name "main"
      t9[5-7]*: adjust the references to the default branch name "main"
      tests(git-p4): transition to the default branch name `main`
      t99*: adjust the references to the default branch name "main"
      tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed
      range-diff/format-patch: refactor check for commit range
      rebase -i: do leave commit message intact in fixup! chains
      range-diff: avoid leaking memory in two error code paths
      range-diff: libify the read_patches() function again
      range-diff: simplify code spawning `git log`
      range-diff: combine all options in a single data structure
      range-diff: move the diffopt initialization down one layer
      range-diff: offer --left-only/--right-only options
      range-diff/format-patch: handle commit ranges other than A..B
      range-diff(docs): explain how to specify commit ranges
      t1450: robustify `remove_object()`
      fsck --name-objects: be more careful parsing generation numbers
      reflog expire --stale-fix: be generous about missing objects
      commit-graph: when incompatible with graphs, indicate why

Johannes Sixt (1):
      replace "parameters" by "arguments" in error messages

Jonathan Tan (4):
      ls-refs: report unborn targets of symrefs
      connect, transport: encapsulate arg in struct
      clone: respect remote unborn HEAD
      usage: trace2 BUG() invocations

Junio C Hamano (21):
      pack-redundant: gauge the usage before proposing its removal
      pull: get rid of unnecessary global variable
      pull: correct condition to trigger non-ff advice
      CoC: explicitly take any whitespace breakage
      The first batch in 2.31 cycle
      t4203: make blame output massaging more robust
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      The eighth batch
      diff: --{rotate,skip}-to=<path>
      The ninth batch
      Documentation: typofix --column description
      The tenth batch
      push: do not turn --delete '' into a matching push
      blame-options.txt: camelcase blame.blankBoundary
      index-format doc: camelCase core.excludesFile
      Git 2.31-rc0

Martin von Zweigbergk (1):
      docs: clarify that refs/notes/ do not keep the attached objects alive

Martin Ågren (7):
      object-name.c: rename from sha1-name.c
      object-file.c: rename from sha1-file.c
      sha1-lookup: rename `sha1_pos()` as `hash_pos()`
      hash-lookup: rename from sha1-lookup
      rev-list-options.txt: fix rendering of bonus paragraph
      git.txt: fix monospace rendering
      gitmailmap.txt: fix rendering of e-mail addresses

Matheus Tavares (7):
      grep: error out if --untracked is used with --cached
      grep: honor sparse-checkout on working tree searches
      write_entry(): fix misuses of `path` in error messages
      checkout-index: omit entries with no tempname from --temp output
      add --chmod: don't update index when --dry-run is used
      add: mark --chmod error string for translation
      add: propagate --chmod errors to exit status

Patrick Steinhardt (11):
      git: add `--super-prefix` to usage string
      config: add new way to pass config via `--config-env`
      config: extract function to parse config pairs
      fetch: extract writing to FETCH_HEAD
      fetch: use strbuf to format FETCH_HEAD updates
      fetch: refactor `s_update_ref` to use common exit path
      fetch: allow passing a transaction to `s_update_ref()`
      fetch: implement support for atomic reference updates
      config: store "git -c" variables using more robust format
      environment: make `getenv_safe()` a public function
      config: allow specifying config entries via envvar pairs

Phil Hord (1):
      use delete_refs when deleting tags or branches

Philippe Blain (1):
      mailmap doc: use correct environment variable 'GIT_WORK_TREE'

Pranit Bauva (7):
      bisect--helper: reimplement `bisect_log` shell function in C
      bisect--helper: reimplement `bisect_replay` shell function in C
      bisect--helper: retire `--bisect-write` subcommand
      bisect--helper: use `res` instead of return in BISECT_RESET case option
      bisect--helper: retire `--bisect-auto-next` subcommand
      bisect--helper: reimplement `bisect_skip` shell function in C
      bisect--helper: retire `--check-and-set-terms` subcommand

Rafael Silva (8):
      worktree: libify should_prune_worktree()
      worktree: teach worktree to lazy-load "prunable" reason
      worktree: teach worktree_lock_reason() to gently handle main worktree
      t2402: ensure locked worktree is properly cleaned up
      worktree: teach `list --porcelain` to annotate locked worktree
      worktree: teach `list` to annotate prunable worktree
      worktree: teach `list` verbose mode
      blame: remove unnecessary use of get_commit_info()

René Scharfe (1):
      cache-tree: use ce_namelen() instead of strlen()

SZEDER Gábor (2):
      t7800-difftool: don't accidentally match tmp dirs
      test-lib: prevent '--stress-jobs=X' from being ignored

Sangeeta Jain (1):
      diff: do not show submodule with untracked files as "-dirty"

Sergey Organov (32):
      revision: factor out parsing of diff-merge related options
      revision: factor out setup of diff-merge related settings
      revision: factor out initialization of diff-merge related settings
      revision: provide implementation for diff merges tweaks
      revision: move diff merges functions to its own diff-merges.c
      diff-merges: rename all functions to have common prefix
      diff-merges: move checks for first_parent_only out of the module
      diff-merges: rename diff_merges_default_to_enable() to match semantics
      diff-merges: re-arrange functions to match the order they are called in
      diff-merges: new function diff_merges_suppress()
      diff-merges: new function diff_merges_set_dense_combined_if_unset()
      diff-merges: introduce revs->first_parent_merges flag
      diff-merges: handle imply -p on -c/--cc logic for log.c
      diff-merges: revise revs->diff flag handling
      t4013: support test_expect_failure through ':failure' magic
      t4013: add tests for -m failing to override -c/--cc
      diff-merges: fix -m to properly override -c/--cc
      diff-merges: split 'ignore_merges' field
      diff-merges: group diff-merge flags next to each other inside 'rev_info'
      diff-merges: get rid of now empty diff_merges_init_revs()
      diff-merges: refactor opt settings into separate functions
      diff-merges: make -m/-c/--cc explicitly mutually exclusive
      diff-merges: implement new values for --diff-merges
      diff-merges: do not imply -p for new options
      diff-merges: let new options enable diff without -p
      diff-merges: add old mnemonic counterparts to --diff-merges
      diff-merges: add '--diff-merges=1' as synonym for 'first-parent'
      doc/git-log: describe new --diff-merges options
      doc/diff-generate-patch: mention new --diff-merges option
      doc/rev-list-options: document --first-parent changes merges format
      doc/git-show: include --diff-merges description
      t4013: add tests for --diff-merges=first-parent

Seth House (4):
      mergetool: add hideResolved configuration
      mergetool: break setup_tool out into separate initialization function
      mergetool: add per-tool support and overrides for the hideResolved flag
      mergetools/vimdiff: add vimdiff1 merge tool variant

Taylor Blau (36):
      ewah/ewah_bitmap.c: avoid open-coding ALLOC_GROW()
      pack-bitmap.c: check reads more aggressively when loading
      pack-bitmap: factor out 'bitmap_for_commit()'
      pack-bitmap: factor out 'add_commit_to_bitmap()'
      pack-revindex: introduce a new API
      write_reuse_object(): convert to new revindex API
      write_reused_pack_one(): convert to new revindex API
      write_reused_pack_verbatim(): convert to new revindex API
      check_object(): convert to new revindex API
      bitmap_position_packfile(): convert to new revindex API
      show_objects_for_type(): convert to new revindex API
      get_size_by_pos(): convert to new revindex API
      try_partial_reuse(): convert to new revindex API
      rebuild_existing_bitmaps(): convert to new revindex API
      get_delta_base_oid(): convert to new revindex API
      retry_bad_packed_offset(): convert to new revindex API
      packed_object_info(): convert to new revindex API
      unpack_entry(): convert to new revindex API
      for_each_object_in_pack(): convert to new revindex API
      builtin/gc.c: guess the size of the revindex
      pack-revindex: remove unused 'find_pack_revindex()'
      pack-revindex: remove unused 'find_revindex_position()'
      pack-revindex: hide the definition of 'revindex_entry'
      pack-revindex.c: avoid direct revindex access in 'offset_to_pack_pos()'
      refs: expose 'for_each_fullref_in_prefixes'
      ls-refs.c: traverse prefixes of disjoint "ref-prefix" sets
      packfile: prepare for the existence of '*.rev' files
      pack-write.c: prepare to write 'pack-*.rev' files
      builtin/index-pack.c: allow stripping arbitrary extensions
      builtin/index-pack.c: write reverse indexes
      builtin/pack-objects.c: respect 'pack.writeReverseIndex'
      Documentation/config/pack.txt: advertise 'pack.writeReverseIndex'
      t: prepare for GIT_TEST_WRITE_REV_INDEX
      t: support GIT_TEST_WRITE_REV_INDEX
      pack-revindex: ensure that on-disk reverse indexes are given precedence
      t5325: check both on-disk and in-memory reverse index

Thomas Ackermann (6):
      doc hash-function-transition: fix asciidoc output
      doc hash-function-transition: use SHA-1 and SHA-256 consistently
      doc hash-function-transition: use upper case consistently
      doc hash-function-transition: fix incomplete sentence
      doc hash-function-transition: move rationale upwards
      doc: use https links

Torsten Bögershausen (1):
      MacOS: precompose_argv_prefix()

ZheNing Hu (4):
      ls_files.c: bugfix for --deleted and --modified
      ls_files.c: consolidate two for loops into one
      ls-files.c: add --deduplicate option
      difftool.c: learn a new way start at specified file

brian m. carlson (8):
      abspath: add a function to resolve paths with missing components
      rev-parse: add option for absolute or relative path formatting
      ref-filter: switch some uses of unsigned long to size_t
      commit: ignore additional signatures when parsing signed commits
      gpg-interface: improve interface for parsing tags
      commit: allow parsing arbitrary buffers with headers
      ref-filter: hoist signature parsing
      gpg-interface: remove other signature headers before verifying

Ævar Arnfjörð Bjarmason (90):
      pretty format %(trailers) test: split a long line
      pretty format %(trailers) doc: avoid repetition
      pretty-format %(trailers): fix broken standalone "valueonly"
      pretty format %(trailers): add a "keyonly"
      pretty format %(trailers): add a "key_value_separator"
      mktag doc: say <hash> not <sha1>
      mktag doc: grammar fix, when exists -> when it exists
      CoC: Update word-wrapping to match upstream
      mktag doc: update to explain why to use this
      mktag tests: don't needlessly use a subshell
      mktag tests: use "test_commit" helper
      mktag tests: remove needless SHA-1 hardcoding
      mktag tests: don't redirect stderr to a file needlessly
      mktag tests: don't create "mytag" twice
      mktag tests: run "fsck" after creating "mytag"
      mktag tests: stress test whitespace handling
      mktag tests: test "hash-object" compatibility
      mktag tests: improve verify_object() test coverage
      mktag tests: test verify_object() with replaced objects
      mktag: use default strbuf_read() hint
      mktag: remove redundant braces in one-line body "if"
      mktag: use puts(str) instead of printf("%s\n", str)
      mktag: use fsck instead of custom verify_tag()
      fsck: make fsck_config() re-usable
      mktag: allow turning off fsck.extraHeaderEntry
      mktag: allow omitting the header/body \n separator
      mktag: convert to parse-options
      mktag: mark strings for translation
      mktag: add a --[no-]strict option
      mailmap doc: create a new "gitmailmap(5)" man page
      mailmap doc: quote config variables `like.this`
      check-mailmap doc: note config options
      mailmap doc: start by mentioning the comment syntax
      mailmap tests: use our preferred whitespace syntax
      mailmap tests: modernize syntax & test idioms
      mailmap tests: improve --stdin tests
      mailmap tests: remove redundant entry in test
      mailmap tests: add a test for "not a blob" error
      mailmap tests: get rid of overly complex blame fuzzing
      mailmap: test for silent exiting on missing file/blob
      test-lib functions: expand "test_commit" comment template
      test-lib functions: document arguments to test_commit
      test-lib functions: add --author support to test_commit
      test-lib functions: add an --append option to test_commit
      tests: refactor a few tests to use "test_commit --append"
      mailmap doc + tests: add better examples & test them
      mailmap tests: add a test for comment syntax
      mailmap tests: add tests for whitespace syntax
      mailmap tests: add tests for empty "<>" syntax
      mailmap doc + tests: document and test for case-insensitivity
      shortlog: remove unused(?) "repo-abbrev" feature
      CoC: update to version 2.0 + local changes
      ci: remove GETTEXT_POISON jobs
      tests: remove support for GIT_TEST_GETTEXT_POISON
      tests: remove uses of GIT_TEST_GETTEXT_POISON=false
      cache-tree tests: refactor for modern test style
      cache-tree tests: remove unused $2 parameter
      cache-tree tests: use a sub-shell with less indirection
      cache-tree tests: explicitly test HEAD and index differences
      git svn mergeinfo tests: modernize redirection & quoting style
      git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty
      upload-pack tests: avoid a non-zero "grep" exit status
      archive tests: use a cheaper "zipinfo -h" invocation to get header
      rm tests: actually test for SIGPIPE in SIGPIPE test
      config.mak.uname: remove redundant NO_LIBPCRE1_JIT flag
      Remove support for v1 of the PCRE library
      grep/pcre2 tests: don't rely on invalid UTF-8 data test
      grep/pcre2: better support invalid UTF-8 haystacks
      grep/log: remove hidden --debug and --grep-debug options
      pager: refactor wait_for_pager() function
      pager: test for exit code with and without SIGPIPE
      run-command: add braces for "if" block in wait_or_whine()
      pager: properly log pager exit code when signalled
      test-lib: remove check_var_migration
      test lib: change "error" to "BUG" as appropriate
      test-lib-functions: move test_set_index_version() to its user
      test-lib-functions: remove generate_zero_bytes() wrapper
      test libs: rename bundle helper to "lib-bundle.sh"
      test libs: rename gitweb-lib.sh to lib-gitweb.sh
      test-lib-functions: move function to lib-bitmap.sh
      t/.gitattributes: sort lines
      tests: remove last uses of GIT_TEST_GETTEXT_POISON=false
      tests: remove most uses of C_LOCALE_OUTPUT
      tests: remove last uses of C_LOCALE_OUTPUT
      tests: remove most uses of test_i18ncmp
      diff: add an API for deferred freeing
      diff: plug memory leak from regcomp() on {log,diff} -I
      test libs: rename "diff-lib" to "lib-diff"
      test-lib-functions: remove bug-inducing "diagnostics" helper param
      test-lib-functions: assert correct parameter count


Version v2.30.9; changes since v2.30.8:
---------------------------------------

Derrick Stolee (1):
      ci: update 'static-analysis' to Ubuntu 22.04

Jeff King (6):
      http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT
      http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION
      range-diff: drop useless "offset" variable from read_patches()
      http: support CURLOPT_PROTOCOLS_STR
      range-diff: handle unterminated lines in read_patches()
      range-diff: use ssize_t for parsed "len" in read_patches()

Jiang Xin (4):
      github-actions: run gcc-8 on ubuntu-20.04 image
      ci: remove the pipe after "p4 -V" to catch errors
      ci: use the same version of p4 on both Linux and macOS
      ci: install python on ubuntu

Johannes Schindelin (11):
      compat/win32/syslog: fix use-after-realloc
      nedmalloc: avoid new compile error
      t0033: GETTEXT_POISON fix
      t0003: GETTEXT_POISON fix, part 1
      t0003: GETTEXT_POISON fix, conclusion
      t5619: GETTEXT_POISON fix
      t5604: GETTEXT_POISON fix, part 1
      t5604: GETTEXT_POISON fix, conclusion
      clone.c: avoid "exceeds maximum object size" error with GCC v12.x
      apply --reject: overwrite existing `.rej` symlink if it exists
      gettext: avoid using gettext if the locale dir is not present

Junio C Hamano (1):
      http.c: clear the 'finished' member once we are done with it

Taylor Blau (5):
      t1300: demonstrate failure when renaming sections with long lines
      config: avoid fixed-sized buffer when renaming/deleting a section
      config.c: avoid integer truncation in `copy_or_rename_section_in_file()`
      config.c: disallow overly-long lines in `copy_or_rename_section_in_file()`
      Git 2.30.9


Version v2.30.8; changes since v2.30.7:
---------------------------------------

Johannes Schindelin (1):
      attr: adjust a mismatched data type

Junio C Hamano (1):
      Git 2.30.8

Patrick Steinhardt (1):
      apply: fix writing behind newly created symbolic links

Taylor Blau (3):
      t5619: demonstrate clone_local() with ambiguous transport
      clone: delay picking a transport until after get_repo_path()
      dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS


Version v2.30.7; changes since v2.30.6:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      test-lib: add prerequisite for 64-bit platforms

Junio C Hamano (1):
      Git 2.30.7

Patrick Steinhardt (21):
      attr: fix overflow when upserting attribute with overly long name
      attr: fix out-of-bounds read with huge attribute names
      attr: fix integer overflow when parsing huge attribute names
      attr: fix out-of-bounds write when parsing huge number of attributes
      attr: fix out-of-bounds read with unreasonable amount of patterns
      attr: fix integer overflow with more than INT_MAX macros
      attr: harden allocation against integer overflows
      attr: fix silently splitting up lines longer than 2048 bytes
      attr: ignore attribute lines exceeding 2048 bytes
      attr: ignore overly large gitattributes files
      pretty: fix out-of-bounds write caused by integer overflow
      pretty: fix out-of-bounds read when left-flushing with stealing
      pretty: fix out-of-bounds read when parsing invalid padding format
      pretty: fix adding linefeed when placeholder is not expanded
      pretty: fix integer overflow in wrapping format
      utf8: fix truncated string lengths in `utf8_strnwidth()`
      utf8: fix returning negative string width
      utf8: fix overflow when returning string width
      utf8: fix checking for glyph width in `strbuf_utf8_replace()`
      utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer
      pretty: restrict input lengths for padding and wrapping formats


Version v2.30.6; changes since v2.30.5:
---------------------------------------

Jeff King (2):
      shell: add basic tests
      shell: limit size of interactive commands

Kevin Backhouse (1):
      alias.c: reject too-long cmdline strings in split_cmdline()

Taylor Blau (12):
      builtin/clone.c: disallow `--local` clones with symlinks
      t/lib-submodule-update.sh: allow local submodules
      t/t1NNN: allow local submodules
      t/2NNNN: allow local submodules
      t/t3NNN: allow local submodules
      t/t4NNN: allow local submodules
      t/t5NNN: allow local submodules
      t/t6NNN: allow local submodules
      t/t7NNN: allow local submodules
      t/t9NNN: allow local submodules
      transport: make `protocol.file.allow` be "user" by default
      Git 2.30.6


Version v2.30.5; changes since v2.30.4:
---------------------------------------

Carlo Marcelo Arenas Belón (5):
      t: regression git needs safe.directory when using sudo
      git-compat-util: avoid failing dir ownership checks if running privileged
      t0034: add negative tests and allow git init to mostly work under sudo
      git-compat-util: allow root to access both SUDO_UID and root owned
      setup: tighten ownership checks post CVE-2022-24765

Johannes Schindelin (1):
      Git 2.30.5


Version v2.30.4; changes since v2.30.3:
---------------------------------------

Derrick Stolee (2):
      t0033: add tests for safe.directory
      setup: opt-out of check with safe.directory=*

Junio C Hamano (1):
      Git 2.30.4

Matheus Valadares (1):
      setup: fix safe.directory key not being checked


Version v2.30.3; changes since v2.30.2:
---------------------------------------

Carlo Marcelo Arenas Belón (1):
      mingw: avoid fallback for {local,gm}time_r()

Johannes Schindelin (4):
      Add a function to determine whether a path is owned by the current user
      setup_git_directory(): add an owner check for the top-level directory
      Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
      Git 2.30.3


Version v2.30.2; changes since v2.30.1:
---------------------------------------

Johannes Schindelin (15):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4
      Git 2.25.5
      Git 2.26.3
      Git 2.27.1
      Git 2.28.1
      Git 2.29.3
      Git 2.30.2

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache

Taylor Blau (1):
      .github/workflows/main.yml: run static-analysis on bionic


Version v2.30.1; changes since v2.30.0:
---------------------------------------

Adam Dinwoodie (1):
      t4129: fix setfacl-related permissions failure

Antonio Russo (1):
      t6016: move to lib-log-graph.sh framework

Daniel Levin (1):
      git-p4: fix syncing file types with pattern

Derrick Stolee (1):
      for-each-repo: do nothing on empty config

Elijah Newren (3):
      t7012: add a testcase demonstrating stash apply bugs in sparse checkouts
      stash: remove unnecessary process forking
      stash: fix stash application in sparse-checkouts

Felipe Contreras (1):
      test: bisect-porcelain: fix location of files

Jeff King (5):
      git_connect_git(): forbid newlines in host and path
      fsck: reject .gitmodules git:// urls with newlines
      t5516: loosen "not our ref" error check
      patch-ids: handle duplicate hashmap entries
      p5303: avoid sed GNU-ism

Johannes Schindelin (1):
      SKIP_DASHED_BUILT_INS: respect `config.mak`

Johannes Sixt (1):
      annotate-tests: quote variable expansions containing path names

Jonathan Tan (1):
      Doc: clarify contents of packfile sent as URI

Junio C Hamano (5):
      parse-options: format argh like error messages
      SubmittingPatches: tighten wording on "sign-off" procedure
      ci/install-depends: attempt to fix "brew cask" stuff
      Prepare for 2.30.1
      Git 2.30.1

Martin Ågren (9):
      t1300: remove duplicate test for `--file ../foo`
      t1300: remove duplicate test for `--file no-such-file`
      t1300: don't needlessly work with `core.foo` configs
      pack-format.txt: document sizes at start of delta data
      builtin/gc: don't peek into `struct lock_file`
      commit-graph: don't peek into `struct lock_file`
      midx: don't peek into `struct lock_file`
      refs/files-backend: don't peek into `struct lock_file`
      read-cache: try not to peek into `struct {lock_,temp}file`

Matheus Tavares (1):
      t4129: don't fail if setgid is set in the test directory

Peter Kaestle (1):
      submodules: fix of regression on fetching of non-init subsub-repo

Philippe Blain (3):
      gitmodules.txt: fix 'GIT_WORK_TREE' variable name
      mergetool--lib: fix '--tool-help' to correctly show available tools
      ci: do not cancel all jobs of a matrix if one fails

René Scharfe (1):
      rebase: verify commit parameter

Taylor Blau (2):
      p7519: allow running without watchman prereq
      Documentation/git-clone.txt: document race with --local

Thomas Ackermann (1):
      doc: fix some typos

Utku Gultopu (1):
      doc: remove "directory cache" from man pages

Vasyl Vavrychuk (1):
      git-send-email.txt: mention less secure app access with Gmail

ZheNing Hu (1):
      builtin/*: update usage format

brian m. carlson (1):
      docs: rephrase and clarify the git status --short format

Ævar Arnfjörð Bjarmason (10):
      branch: change "--local" to "--list" in comment
      branch tests: add to --sort tests
      ref-filter: add braces to if/else if/else chain
      ref-filter: move "cmp_fn" assignment into "else if" arm
      ref-filter: move ref_sorting flags to a bitfield
      branch: sort detached HEAD based on a flag
      branch: show "HEAD detached" first under reverse sort
      Makefile: remove a warning about old GETTEXT_POISON flag
      gettext.c: remove/reword a mostly-useless comment
      fsck doc: remove ancient out-of-date diagnostics


Version v2.30.0; changes since v2.30.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5037t)

Arusekk (1):
      l10n: pl.po: add translation and set team leader

Baptiste Fontaine (1):
      l10n: fr.po Fix a typo

Emir Sarı (2):
      l10n: tr: v2.30.0-r1
      l10n: tr: v2.30.0-r2

Jean-Noël Avila (3):
      l10n: fr fix misleading message
      l10n: fr.po: v2.30.0 rnd 1
      l10n: fr.po v2.30.0 rnd 2

Jiang Xin (3):
      l10n: git.pot: v2.30.0 round 1 (70 new, 45 removed)
      l10n: git.pot: v2.30.0 round 2 (1 new, 2 removed)
      l10n: zh_CN: for git v2.30.0 l10n round 1 and 2

Jordi Mas (2):
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.30

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git 2.30.0

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (5038t0f0u)
      l10n: sv.po: Update Swedish translation (5037t0f0u)

Philippe Blain (1):
      git.txt: fix typos in 'linkgit' macro invocation

Trần Ngọc Quân (1):
      l10n: vi.po(5037t): v2.30.0 rnd 2

Yi-Jyun Pan (1):
      l10n: zh_TW.po: v2.30.0 round 2 (1 untranslated)

m4sk1n (1):
      l10n: pl.po: started Polish translation


Version v2.30.0-rc2; changes since v2.30.0-rc1:
-----------------------------------------------

Jiang Xin (1):
      pack-redundant: fix crash when one packfile in repo

Johannes Schindelin (12):
      t1400: use `main` as initial branch name
      t3200: finish transitioning to the initial branch name `main`
      t3201: finalize transitioning to using the branch name `main`
      t3203: complete the transition to using the branch name `main`
      t3205: finalize transitioning to using the branch name `main`
      t5505: finalize transitioning to using the branch name `main`
      t5510: use `main` as initial branch name
      t5703: use `main` as initial branch name
      t6302: use `main` as initial branch name
      t9902: use `main` as initial branch name
      tests: drop the `PREPARE_FOR_MAIN_BRANCH` prereq
      checkout -p: handle tree arguments correctly again

Junio C Hamano (1):
      Git 2.30-rc2

Martin Ågren (3):
      git-maintenance.txt: add missing word
      gc: fix handling of crontab magic markers
      t7900-maintenance: test for magic markers

Nipunn Koorapati (2):
      negative-refspec: fix segfault on : refspec
      negative-refspec: improve comment on query_matches_negative_refspec


Version v2.30.0-rc1; changes since v2.30.0-rc0:
-----------------------------------------------

David Aguilar (1):
      git-gui: ssh-askpass: add a checkbox to show the input text

Dimitriy Ryazantcev (1):
      git-gui: update Russian translation

Eric Sunshine (1):
      t/perf: fix test_export() failure with BSD `sed`

Jeff Hostetler (1):
      index-format.txt: document v2 format of file system monitor extension

Jeff King (9):
      oid-array.h: drop sha1 mention from header guard
      t0064: drop sha1 mention from filename
      t0064: make duplicate tests more robust
      cache.h: move hash/oid functions to hash.h
      oid-array: make sort function public
      oid-array: provide a for-loop iterator
      commit-graph: drop count_distinct_commits() function
      commit-graph: replace packed_oid_list with oid_array
      commit-graph: use size_t for array allocation and indexing

Johannes Berg (1):
      docs: multi-pack-index: remove note about future 'verify' work

Johannes Schindelin (6):
      t6300: avoid using the default name of the initial branch
      t7064: avoid relying on a specific default branch name
      init: document `init.defaultBranch` better
      branch -m: allow renaming a yet-unborn branch
      get_default_branch_name(): prepare for showing some advice
      init: provide useful advice about init.defaultBranch

Josh Steadmon (1):
      t7900: use --fixed-value in git-maintenance tests

Junio C Hamano (5):
      strmap: make callers of strmap_remove() to call it in void context
      compat-util: pretend that stub setitimer() always succeeds
      diff: correct interaction between --exit-code and -I<pattern>
      Another batch before 2.30-rc1
      Git 2.30-rc1

Martin Schön (1):
      git-gui: use commit message template

Pratyush Yadav (1):
      git-gui: Only touch GITGUI_MSG when needed

Ramsay Jones (6):
      Documentation/Makefile: conditionally include doc.dep
      Documentation/Makefile: conditionally include ../GIT-VERSION-FILE
      gitweb/Makefile: conditionally include ../GIT-VERSION-FILE
      Makefile: don't try to clean old debian build product
      Makefile: don't use a versioned temp distribution directory
      Makefile: conditionally include GIT-VERSION-FILE

Randall S. Becker (1):
      config.mak.uname: remove old NonStop compatibility settings

Serg Tereshchenko (1):
      git-gui: Fix selected text colors

Stefan Haller (2):
      git-gui: fix colored label backgrounds when using themed widgets
      git-gui: use gray background for inactive text widgets

Taylor Blau (2):
      builtin/clone.c: don't ignore transport_fetch_refs() errors
      upload-pack.c: don't free allowed_filters util pointers

Ævar Arnfjörð Bjarmason (1):
      style: do not "break" in switch() after "return"

Đoàn Trần Công Danh (1):
      doc: mention Python 3.x supports


Version v2.30.0-rc0; changes since v2.29.3:
-------------------------------------------

Adam Spiers (1):
      hook: add sample template for push-to-checkout

Alex Vandiver (2):
      dir.c: fix comments to agree with argument name
      fsmonitor: use fsmonitor data in `git diff`

Alexey (1):
      completion: fix zsh installation instructions

Amanda Shafack (1):
      t2200,t9832: avoid using 'git' upstream in a pipe

Arnout Engelen (1):
      doc: make HTML manual reproducible

Bradley M. Kuhn (2):
      Documentation: clarify and expand description of --signoff
      Documentation: stylistically normalize references to Signed-off-by:

Caleb Tillman (1):
      t0000: use test_path_is_file instead of "test -f"

Charvi Mendiratta (5):
      t7101,t7102,t7201: modernize test formatting
      t7102,t7201: remove unnecessary blank spaces in test body
      t7102,t7201: remove whitespace after redirect operator
      t7201: use 'git -C' to avoid subshell
      t7201: put each command on a separate line

Chris. Webster (1):
      ci: github action - add check for whitespace errors

Daniel Duvall (1):
      upload-pack: allow stateless client EOF just prior to haves

Daniel Gurney (2):
      compat/bswap.h: simplify MSVC endianness detection
      compat/bswap.h: don't assume MSVC is little-endian

Dennis Ameling (1):
      ci(vs-build): stop passing the iconv library location explicitly

Denton Liu (18):
      t4068: remove unnecessary >tmp
      git-diff-index.txt: make --cached description a proper sentence
      git-diff.txt: backtick quote command text
      contrib/completion: extract common diff/difftool options
      diff-lib: accept option flags in run_diff_index()
      diff-lib: define diff_get_merge_base()
      t4068: add --merge-base tests
      builtin/diff-index: learn --merge-base
      builtin/diff-tree: learn --merge-base
      contrib/completion: complete `git diff --merge-base`
      Documentation/config/checkout: replace sq with backticks
      builtin/checkout: fix `git checkout -p HEAD...` bug
      Doc: document "A...B" form for <tree-ish> in checkout and switch
      add-patch: add NEEDSWORK about comparing commits
      t2016: add a NEEDSWORK about the PERL prerequisite
      checkout: learn to respect checkout.guess
      contrib/git-resurrect.sh: indent with tabs
      contrib/git-resurrect.sh: use hash-agnostic OID pattern

Derrick Stolee (28):
      maintenance: add prefetch task
      maintenance: add loose-objects task
      maintenance: create auto condition for loose-objects
      midx: enable core.multiPackIndex by default
      midx: use start_delayed_progress()
      maintenance: add incremental-repack task
      maintenance: auto-size incremental-repack batch
      maintenance: add incremental-repack auto condition
      maintenance: optionally skip --auto process
      maintenance: add --schedule option and config
      for-each-repo: run subcommands on configured repos
      maintenance: add [un]register subcommands
      maintenance: add start/stop subcommands
      maintenance: test commit-graph auto condition
      commit-graph: ignore duplicates when merging layers
      commit-graph: don't write commit-graph when disabled
      maintenance: core.commitGraph=false prevents writes
      maintenance: create maintenance.strategy config
      maintenance: use 'incremental' strategy by default
      maintenance: add troubleshooting guide to docs
      config: convert multi_replace to flags
      config: replace 'value_regex' with 'value_pattern'
      t1300: test "set all" mode with value-pattern
      t1300: add test for --replace-all with value-pattern
      config: add --fixed-value option, un-implemented
      config: plumb --fixed-value into config API
      config: implement --fixed-value with --get*
      maintenance: use 'git config --fixed-value'

Drew DeVault (1):
      help.c: help.autocorrect=never means "do not compute suggestions"

Elijah Newren (37):
      hashmap: add usage documentation explaining hashmap_free[_entries]()
      directory-rename-detection.txt: update references to regression tests
      t6423: more involved directory rename test
      t6423: update directory rename detection tests with new rule
      t6423: more involved rules for renaming directories into each other
      t7518: fix flaky grep invocation
      test-lib: allow selecting tests by substring/glob with --run
      t6006, t6012: adjust tests to use 'setup' instead of synonyms
      test-lib: reduce verbosity of skipped tests
      sequencer: remove duplicate rollback_lock_file() call
      t/: new helper for tests that pass with ort but fail with recursive
      merge tests: expect improved directory/file conflict handling in ort
      t6416: correct expectation for rename/rename(1to2) + directory/file
      t6404, t6423: expect improved rename/delete handling in ort backend
      t6423: expect improved conflict markers labels in the ort backend
      merge tests: expect slight differences in output for recursive vs. ort
      t6423, t6436: note improved ort handling with dirty files
      t6423: note improved ort handling with untracked files
      t6423: add more details about direct resolution of directories
      merge-ort: barebones API of new merge strategy with empty implementation
      merge-ort-wrappers: new convience wrappers to mimic the old merge API
      fast-rebase: demonstrate merge-ort's API via new test-tool command
      hashmap: adjust spacing to fix argument alignment
      hashmap: allow re-use after hashmap_free()
      hashmap: introduce a new hashmap_partial_clear()
      hashmap: provide deallocation function names
      strmap: new utility functions
      merge,rebase,revert: select ort or recursive by config or environment
      strmap: add more utility functions
      strmap: enable faster clearing and reusing of strmaps
      strmap: add functions facilitating use as a string->int map
      strmap: split create_entry() out of strmap_put()
      strmap: add a strset sub-type
      strmap: enable allocations to come from a mem_pool
      strmap: take advantage of FLEXPTR_ALLOC_STR when relevant
      Use new HASHMAP_INIT macro to simplify hashmap initialization
      shortlog: use strset from strmap.h

Emily Shaffer (1):
      MyFirstContribution: clarify asciidoc dependency

Felipe Contreras (41):
      completion: zsh: fix __gitcomp_direct()
      completion: zsh: fix name due to broken autoloading
      completion: zsh: fix bash script extension
      completion: zsh: reorganize install instructions
      completion: zsh: fix for directories with spaces
      completion: zsh: update slave script locations
      completion: prompt: fix color for Zsh
      completion: zsh: fix for command aliasing
      completion: bash: synchronize zsh wrapper
      completion: bash: remove zsh wrapper
      completion: zsh: fix completion for --no-.. options
      completion: fix conflict with bashcomp
      completion: zsh: add missing direct_append
      completion: zsh: fix splitting of words
      completion: zsh: simplify compadd functions
      completion: zsh: simplify direct compadd
      completion: zsh: trivial cleanup
      completion: zsh: simplify nl_append
      completion: zsh: simplify file_direct
      completion: zsh: shuffle functions around
      completion: zsh: refactor command completion
      completion: zsh: improve command tags
      completion: zsh: add alias descriptions
      completion: zsh: trivial simplification
      completion: zsh: add simple version check
      completion: bash: trivial cleanup
      completion: bash: cleanup cygwin check
      completion: bash: remove old compat wrappers
      zsh: update copyright notices
      completion: bash: support recursive aliases
      completion: bash: check for alias loop
      completion: bash: improve alias loop detection
      tests: push: improve cleanup of HEAD tests
      tests: push: trivial cleanup
      refspec: make @ a synonym of HEAD
      refspec: trivial cleanup
      .gitignore: remove dangling file
      test: completion: fix typos
      tests: lib-functions: trivial style cleanups
      completion: zsh: fix file completion regression
      completion: bash: fix gitk alias regression

Han-Wen Nienhuys (1):
      move sleep_millisec to git-compat-util.h

Javier Spagnoletti (1):
      userdiff: PHP: catch "abstract" and "final" functions

Jeff King (32):
      fast-import: fix over-allocation of marks storage
      usage: define a type for a reporting function
      config.mak.dev: build with -fno-common
      fast-import: remove duplicated option-parsing line
      perl: check for perl warnings while running tests
      am, sequencer: stop parsing our own committer ident
      test-pkt-line: drop colon from sideband identity
      checkout-index: drop error message from empty --stage=all
      checkout-index: propagate errors to exit code
      sideband: diagnose more sideband anomalies
      format-patch: refactor output selection
      format-patch: tie file-opening logic to output_directory
      format-patch: support --output option
      rev-parse: don't accept options after dashdash
      rev-parse: put all options under the "-" check
      rev-parse: handle --end-of-options
      compute pack .idx byte offsets using size_t
      use size_t to store pack .idx byte offsets
      fsck: correctly compute checksums on idx files larger than 4GB
      block-sha1: take a size_t length parameter
      packfile: detect overflow in .idx file size checks
      repack: make "exts" array available outside cmd_repack()
      send-pack: kill pack-objects helper on signal or exit
      submodule: fix fetch_in_submodule logic
      upload-pack: kill pack-objects helper on signal or exit
      banned.h: mark non-reentrant gmtime, etc as banned
      t7900: speed up expensive test
      gitignore: drop duplicate entry for git-sh-i18n
      banned.h: mark ctime_r() and asctime_r() as banned
      Makefile: mark git-maintenance as a builtin
      upload-pack: propagate return value from object filter config callback
      style: indent multiline "if" conditions to align

Jiang Xin (3):
      t5411: new helper filter_out_user_friendly_and_stable_output
      receive-pack: gently write messages to proc-receive
      receive-pack: use default version 0 for proc-receive

Jinoh Kang (2):
      diff: allow passing NULL to diff_free_filespec_data()
      t7800: simplify difftool test

Joey Salazar (1):
      t7006: Use test_path_is_* functions in test script

Johannes Schindelin (56):
      ci: work around old records of GitHub runs
      ci: make the "skip-if-redundant" check more defensive
      sideband: avoid reporting incomplete sideband messages
      sideband: report unhandled incomplete sideband messages as bugs
      fmt-merge-msg: also suppress "into main" by default
      t9801: use `--` in preparation for default branch rename
      tests: start moving to a different default main branch name
      t6200: adjust suppression pattern to also match "main"
      t5703: adjust a test case for the upcoming default branch name
      t3200: prepare for `main` being shorter than `master`
      t9902: prepare a test for the upcoming default branch name
      tests: prepare aligned mentions of the default branch name
      t1400: prepare for `main` being default branch name
      t5411: start using the default branch name "main"
      t5411: start adjusting the support files for init.defaultBranch=main
      t5411: adjust the remaining support files for init.defaultBranch=main
      t5411: finish preparing for `main` being the default branch name
      t5515: use `main` as the name of the main branch for testing (part 1)
      t5515: use `main` as the name of the main branch for testing (part 2)
      t5515: use `main` as the name of the main branch for testing (part 3)
      t5515: use `main` as the name of the main branch for testing (conclusion)
      t2402: fix typo
      ci: make the whitespace checker more robust
      tests: consolidate the `file_size` function into `test-lib-functions.sh`
      ci: avoid using the deprecated `set-env` construct
      p4: respect init.defaultBranch
      t1004: insert missing "branch" in a message
      t3406: indent with tabs, not spaces
      t3427: adjust stale comment
      t5400,t5402: consistently indent with tabs, not with spaces
      t5570: remove trailing padding
      t9603: use tabs for indentation
      add -i (built-in): do show an error message for incorrect inputs
      add -i (built-in): send error messages to stderr
      add -p (built-in): imitate `xdl_format_hunk_hdr()` generating hunk headers
      add -i: use `reset_color` consistently
      add -i (built-in): prevent the `reset` "color" from being configured
      add -i (built-in): use correct names to load color.diff.* config
      mergetools/bc: add `bc4` to the alias list for Beyond Compare
      mergetool: avoid letting `list_tool_variants` break user-defined setups
      add -p (built-in): do not color the progress indicator separately
      add -i (built-in): use the same indentation as the Perl version
      add -i (Perl version): color header to match the C version
      add -p: prefer color.diff.context over color.diff.plain
      add -i: verify in the tests that colors can be overridden
      t2106: adjust style to the current conventions
      t2106: make test independent of the current main branch name
      t2106: ensure that the checkout fails for the expected reason
      t3040: remove stale note
      t1309: use a neutral branch name in the `onbranch` test cases
      t4015: let the test pass with any default branch name
      pull: colorize the hint about setting `pull.rebase`
      t3404: do not depend on any specific default branch name
      t5526: avoid depending on a specific default branch name
      t5526: drop the prereq expecting the default branch name `main`
      cmake: determine list of extra built-ins dynamically

Jonathan Tan (3):
      apply: when -R, also reverse list of sections
      sequencer: tolerate abbreviated stopped-sha file
      usage: add trace2 entry upon warning()

Josh Steadmon (12):
      docs: new capability to advertise session IDs
      docs: new transfer.advertiseSID option
      trace2: add a public function for getting the SID
      upload-pack: advertise session ID in v0 capabilities
      receive-pack: advertise session ID in v0 capabilities
      serve: advertise session ID in v2 capabilities
      transport: log received server session ID
      fetch-pack: advertise session ID in capabilities
      upload-pack, serve: log received client session ID
      send-pack: advertise session ID in capabilities
      receive-pack: log received client session ID
      t7900: fix typo: "test_execpt_success"

Junio C Hamano (26):
      doc: preparatory clean-up of description on the sign-off option
      SubmittingPatches: clarify DCO is our --signoff rule
      Revert "test_cmp: diagnose incorrect arguments"
      t7102: prepare expected output inside test_expect_* block
      other small fixes for 2.29.2
      SubmittingPatches: clarify the purpose of the final resend
      First batch
      Second batch
      Makefile: enable -Wsparse-error for DEVELOPER build
      Third batch
      log: diagnose -L used with pathspec as an error
      doc: clarify that --abbrev=<n> is about the minimum length
      Fourth batch
      format-patch: make output filename configurable
      Fifth batch
      ci: avoid `set-env` construct in print-test-failures.sh
      Sixth batch
      Seventh batch
      MyFirstContribition: answering questions is not the end of the story
      config doc: value-pattern is not necessarily a regexp
      Eighth batch
      Ninth batch
      Revert "submodules: fix of regression on fetching of non-init subsub-repo"
      Tenth batch
      Eleventh batch
      Git 2.30-rc0

Konrad Borowski (1):
      userdiff: recognize 'macro_rules!' as starting a Rust function block

Kyle Meyer (1):
      stash: add missing space to an error message

Marlon Rac Cambasis (1):
      doc: fixing two trivial typos in Documentation/

Martin Ågren (5):
      list-objects-filter-options: fix function name in BUG
      grep: don't set up a "default" repo for grep
      grep: use designated initializers for `grep_defaults`
      grep: copy struct in one fell swoop
      MyFirstObjectWalk: drop `init_walken_defaults()`

Matheus Tavares (2):
      worktree: fix order of arguments in error message
      apply: don't use core.sharedRepository to create working tree files

Michał Kępień (2):
      merge-base, xdiff: zero out xpparam_t structures
      diff: add -I<regex> that ignores matching changes

Nate Avers (2):
      notes.c: fix a segfault in notes_display_config()
      t3301: test proper exit response to no-value notes.displayRef.

Nicolas Morey-Chaisemartin (1):
      imap-send: parse default git config

Nipunn Koorapati (17):
      t/perf/README: elaborate on output format
      t/perf/p7519-fsmonitor.sh: warm cache on first git status
      t/perf: add fsmonitor perf test for git diff
      perf lint: add make test-lint to perf tests
      p7519-fsmonitor: refactor to avoid code duplication
      p7519-fsmonitor: add a git add benchmark
      t/perf/fsmonitor: separate one time repo initialization
      t/perf/fsmonitor: move watchman setup to one-time-repo-setup
      t/perf/fsmonitor: improve error message if typoing hook name
      t/perf/fsmonitor: factor description out for readability
      t/perf/fsmonitor: shorten DESC to basename
      t/perf/fsmonitor: silence initial git commit
      t/perf/fsmonitor: factor setup for fsmonitor into function
      t/perf/fsmonitor: initialize test with git reset
      t/perf/fsmonitor: perf comparison of multiple fsmonitor integrations
      t/perf/fsmonitor: add benchmark for dirty status
      perf/fsmonitor: use test_must_be_empty helper

Patrick Steinhardt (4):
      t1400: avoid touching refs on filesystem
      update-ref: allow creation of multiple transactions
      p1400: use `git-update-ref --stdin` to test multiple transactions
      update-ref: disallow "start" for ongoing transactions

Peter Kaestle (1):
      submodules: fix of regression on fetching of non-init subsub-repo

Philippe Blain (14):
      ref-filter: handle CRLF at end-of-line more gracefully
      log, show: add tests for messages containing CRLF
      doc: log, gitk: move '-L' description to 'line-range-options.txt'
      doc: line-range: improve formatting
      blame-options.txt: also mention 'funcname' in '-L' description
      doc: add more pointers to gitattributes(5) for userdiff
      line-log: mention both modes in 'blame' and 'log' short help
      blame: enable funcname blaming with userdiff driver
      blame: simplify 'setup_scoreboard' interface
      blame: simplify 'setup_blame_bloom_data' interface
      pull --rebase: compute rebase arguments in separate function
      t5572: add notes on a peculiar test
      t5572: describe '--rebase' tests a little more
      pull: check for local submodule modifications with the right range

Phillip Wood (4):
      rebase -i: stop overwriting ORIG_HEAD buffer
      rebase -i: use struct object_id rather than looking up commit
      rebase -i: use struct object_id when writing state
      rebase -i: simplify get_revision_ranges()

Pranit Bauva (7):
      bisect--helper: finish porting `bisect_start()` to C
      bisect--helper: retire `--bisect-clean-state` subcommand
      bisect--helper: retire `--next-all` subcommand
      bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C
      bisect--helper: retire `--check-expected-revs` subcommand
      bisect--helper: retire `--write-terms` subcommand
      bisect--helper: retire `--bisect-autostart` subcommand

Rafael Silva (2):
      worktree: teach `list` to annotate locked worktree
      maintenance: fix SEGFAULT when no repository

René Scharfe (19):
      Makefile: use git init/add/commit/archive for dist-doc
      Makefile: remove the unused variable TAR_DIST_EXTRA_OPTS
      grep: handle deref_tag() returning NULL
      blame: handle deref_tag() returning NULL
      line-log: handle deref_tag() returning NULL
      object: allow clear_commit_marks_all to handle any repo
      bisect: clear flags in passed repository
      stash: simplify reflog emptiness check
      pack-write: use hashwrite_be32() instead of double-buffering array
      archive: support compression levels beyond 9
      blame: silently ignore invalid ignore file objects
      csum-file: add hashwrite_be64()
      midx: use hashwrite_be64()
      pack-write: use hashwrite_be64()
      diff-lib: plug minor memory leaks in do_diff_cache()
      archive: release refname after use
      gc: fix cast in compare_tasks_by_selection()
      fetch-pack: disregard invalid pack lockfiles
      gitignore: remove entry for git serve

Robert Karszniewicz (2):
      git-completion.bash: __git_diff_common_options: add --[no-]patch
      git-completion.bash: stash-show: complete $__git_diff_common_options

SZEDER Gábor (4):
      bisect: loosen halfway() check for a large number of commits
      t5310-pack-bitmaps: skip JGit tests with SHA256
      tests: make sure nested lazy prereqs work reliably
      tests: fix description of 'test_set_prereq'

Samuel Čavoj (3):
      sequencer: fix gpg option passed to merge subcommand
      sequencer: pass explicit --no-gpg-sign to merge
      t3435: add tests for rebase -r GPG signing

Sean Barag (7):
      clone: add tests for --template and some disallowed option pairs
      clone: use more conventional config/option layering
      remote: add tests for add and rename with invalid names
      refs: consolidate remote name validation
      clone: validate --origin option before use
      clone: read new remote name from remote_name instead of option_origin
      clone: allow configurable default for `-o`/`--origin`

Sergey Organov (2):
      doc/diff-options: fix out of place mentions of '--patch/-p'
      glossary: improve "branch" definition

Sibo Dong (1):
      git-prompt.sh: localize `option` in __git_ps1_show_upstream

Simão Afonso (1):
      crendential-store: use timeout when locking file

Sohom Datta (1):
      userdiff: expand detected chunk headers for css

Srinidhi Kaushik (3):
      push: add reflog check for "--force-if-includes"
      push: parse and set flag for "--force-if-includes"
      t, doc: update tests, reference for "--force-if-includes"

Taylor Blau (5):
      builtin/repack.c: keep track of what pack-objects wrote
      builtin/repack.c: don't move existing packs out of the way
      packfile.c: protect against disappearing indexes
      midx.c: protect against disappearing packs
      builtin/bugreport.c: use thread-safe localtime_r()

Thomas Koutcher (1):
      credential: load default config

Victor Engmark (1):
      userdiff: support Bash

brian m. carlson (1):
      svn: use correct variable name for short OID

Ævar Arnfjörð Bjarmason (8):
      remote: add meaningful exit code on missing/existing
      config.mak.uname: remove unused the NO_R_TO_GCC_LINKER flag
      config.mak.uname: remove unused NEEDS_SSL_WITH_CURL flag
      submodule: use "fetch" logic instead of custom remote discovery
      submodule: remove sh function in favor of helper
      parse-remote: remove this now-unused library
      gc docs: change --keep-base-pack to --keep-largest-pack
      gc: rename keep_base_pack variable for --keep-largest-pack

Štěpán Němec (1):
      config.txt: fix a typo (backslash != backquote)


Version v2.29.3; changes since v2.29.2:
---------------------------------------

Johannes Schindelin (14):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4
      Git 2.25.5
      Git 2.26.3
      Git 2.27.1
      Git 2.28.1
      Git 2.29.3

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.29.2; changes since v2.29.1:
---------------------------------------

Christian Couder (1):
      filter-branch doc: fix filter-repo typo

Jeff King (3):
      t3436: check --committer-date-is-author-date result more carefully
      am: fix broken email with --committer-date-is-author-date
      rebase: fix broken email with --committer-date-is-author-date

Junio C Hamano (1):
      Git 2.29.2


Version v2.29.1; changes since v2.29.0:
---------------------------------------

Johannes Schindelin (1):
      SKIP_DASHED_BUILT_INS: do not skip the bin/ programs

Junio C Hamano (1):
      Git 2.29.1


Version v2.29.0; changes since v2.29.0-rc2:
-------------------------------------------

Alessandro Menti (2):
      l10n: it.po: update the Italian translation for Git 2.29.0 round 1
      l10n: it.po: update the Italian translation

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (5013t)

Daniel Santos (2):
      l10n: Portuguese translation team has changed. Wohoo!
      l10n: pt_PT: make on po/pt_PT.po

Emir Sarı (2):
      l10n: tr: v2.29.0 round 1
      l10n: tr: v2.29.0 round 2

Jean-Noël Avila (2):
      l10n: fr: v2.29.0 rnd 1
      l10n: fr: v2.29.0 rnd 2

Jiang Xin (3):
      l10n: git.pot: v2.29.0 round 1 (124 new, 42 removed)
      l10n: git.pot: v2.29.0 round 2 (1 new, 1 removed)
      l10n: zh_CN: for git v2.29.0 l10n round 1 and 2

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.29

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git 2.29.0

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (5013t0f0u)

Serg Tereshchenko (2):
      git-gui: fix mixed tabs and spaces; prefer tabs
      git-gui: improve dark mode support

Stefan Haller (1):
      git-gui: blame: prevent tool tips from sticking around after Command-Tab

Trần Ngọc Quân (1):
      l10n: vi(5013t): Updated translation for v2.29.0 rd2

Yi-Jyun Pan (1):
      l10n: zh_TW.po: v2.29.0 round 2 (2 untranslated)


Version v2.29.0-rc2; changes since v2.29.0-rc1:
-----------------------------------------------

Junio C Hamano (1):
      Git 2.29-rc2


Version v2.29.0-rc1; changes since v2.29.0-rc0:
-----------------------------------------------

Denton Liu (2):
      compat/mingw.h: drop extern from function declaration
      Makefile: ASCII-sort += lists

Jean-Noël Avila (4):
      git-bisect-lk2009: make continuation of list indented
      doc: use linkgit macro where needed.
      doc: git-remote fix ups
      doc: fix the bnf like style of some commands

Jeff King (2):
      index-pack: restore "resolving deltas" progress meter
      index-pack: drop type_cas mutex

Johannes Schindelin (6):
      GitHub workflow: automatically follow minor updates of setup-msbuild
      help: do not expect built-in commands to be hardlinked
      t1415: avoid using `main` as ref name
      tests: avoid using the branch name `main`
      ci: skip GitHub workflow runs for already-tested commits/trees
      ci: do not skip tagged revisions in GitHub workflows

Jonathan Tan (1):
      index-pack: make get_base_data() comment clearer

Junio C Hamano (1):
      Git 2.29-rc1

Đoàn Trần Công Danh (1):
      t5534: split stdout and stderr redirection


Version v2.29.0-rc0; changes since v2.28.1:
-------------------------------------------

Aaron Lipman (12):
      t6030: modernize "git bisect run" tests
      rev-list: allow bisect and first-parent flags
      cmd_bisect__helper: defer parsing no-checkout flag
      bisect: introduce first-parent flag
      bisect: combine args passed to find_bisection()
      bisect: add first-parent option to documentation
      t3200: clean side effect of git checkout --orphan
      t3201: test multiple branch filter combinations
      Doc: cover multiple contains/no-contains filters
      ref-filter: allow merged and no-merged filters
      ref-filter: make internal reachable-filter API more precise
      Doc: prefer more specific file name

Adrian Moennich (1):
      ci: fix inconsistent indentation

Alban Gruin (1):
      t6300: fix issues related to %(contents:size)

Alex Henrie (1):
      pull: don't warn if pull.ff has been set

Alex Riesen (1):
      fetch: pass --ipv4 and --ipv6 options to sub-fetches

Andrei Rybak (1):
      git-help.txt: fix mentions of option --guides

Antti Keränen (1):
      rebase -i: fix possibly wrong onto hash in todo

Beat Bolli (1):
      gitk: rename "commit summary" to "commit reference"

Ben Wijen (1):
      git clone: don't clone into non-empty directory

Chris Torek (1):
      git-mv: improve error message for conflicted file

Christian Couder (4):
      Documentation: clarify %(contents:XXXX) doc
      t6300: test refs pointing to tree and blob
      ref-filter: add support for %(contents:size)
      bisect: don't use invalid oid as rev when starting

Christian Schlack (1):
      remote: don't show success message when set-head fails

Conor Davis (1):
      commit-graph-format.txt: fix no-parent value

Danny Lin (2):
      contrib/subtree: fix "unsure" for --message in the document
      contrib/subtree: document 'push' does not take '--squash'

Denton Liu (11):
      t3701: stop using `env` in force_color()
      t5324: reorder `run_with_limited_open_files test_might_fail`
      t7107: don't use test_must_fail()
      t9834: remove use of `test_might_fail p4`
      t9400: don't use test_must_fail with cvs
      test-lib-functions: restrict test_must_fail usage
      contrib/completion: complete options that take refs for format-patch
      hooks--pre-push.sample: modernize script
      hooks--pre-push.sample: use hash-agnostic zero OID
      hooks--update.sample: use hash-agnostic zero OID
      gitk: replace tabs with spaces

Derrick Stolee (22):
      commit-graph: place bloom_settings in context
      commit-graph: change test to die on parse, not load
      bloom: fix logic in get_bloom_filter()
      commit-graph: persist existence of changed-paths
      revision.c: fix whitespace
      multi-pack-index: repack batches below --batch-size
      t/README: document GIT_TEST_DEFAULT_HASH
      commit-graph: use the "hash version" byte
      multi-pack-index: use hash version byte
      bloom/diff: properly short-circuit on max_changes
      maintenance: create basic maintenance runner
      maintenance: add --quiet option
      maintenance: replace run_auto_gc()
      maintenance: initialize task array
      maintenance: add commit-graph task
      maintenance: add --task option
      maintenance: take a lock on the objects directory
      maintenance: create maintenance.<task>.enabled config
      maintenance: use pointers to check --auto
      maintenance: add auto condition for commit-graph task
      maintenance: add trace2 regions for task execution
      commit-reach: fix in_merge_bases_many bug

Drew DeVault (1):
      git-send-email: die if sendmail.* config is set

Edmundo Carmona Antoranz (1):
      blame.c: replace instance of !oidcmp for oideq

Elijah Newren (26):
      Remove doubled words in various comments
      hashmap: fix typo in usage docs
      merge-recursive: fix unclear and outright wrong comments
      t6038: make tests fail for the right reason
      t6038: remove problematic test
      merge: make merge.renormalize work for all uses of merge machinery
      checkout: support renormalization with checkout -m <paths>
      Collect merge-related tests to t64xx
      t6418: tighten delete/normalize conflict testcase
      t6422: fix bad check against missing file
      t6416, t6422: fix incorrect untracked file count
      t6423: fix test setup for a couple tests
      t6422: fix multiple errors with the mod6 test expectations
      t6416, t6423: clarify some comments and fix some typos
      t6423: add an explanation about why one of the tests does not pass
      t6422, t6426: be more flexible for add/add conflicts involving renames
      t642[23]: be more flexible for add/add conflicts involving pair renames
      t6425: be more flexible with rename/delete conflict messages
      t3000: fix some test description typos
      dir: avoid prematurely marking nonbare repositories as matches
      sequencer: avoid garbled merge machinery messages due to commit labels
      mem-pool: add convenience functions for strdup and strndup
      mem-pool: use more standard initialization and finalization
      mem-pool: use consistent pool variable name
      dir: make clear_directory() free all relevant memory
      dir: fix problematic API to avoid memory leaks

Emily Shaffer (1):
      Revert "contrib: subtree: adjust test to change in fmt-merge-msg"

Eric Huber (1):
      gitk: Preserve window dimensions on exit when not using ttk themes

Eric Sunshine (22):
      worktree: drop pointless strbuf_release()
      worktree: drop unused code from get_linked_worktree()
      worktree: drop bogus and unnecessary path munging
      worktree: retire special-case normalization of main worktree path
      git-worktree.txt: employ fixed-width typeface consistently
      git-worktree.txt: consistently use term "working tree"
      git-worktree.txt: fix minor grammatical issues
      git-worktree.txt: make start of new sentence more obvious
      git-worktree.txt: link to man pages when citing other Git commands
      test_cmp: diagnose incorrect arguments
      init: disallow --separate-git-dir with bare repository
      worktree: add skeleton "repair" command
      worktree: teach "repair" to fix worktree back-links to main worktree
      worktree: teach "repair" to fix outgoing links to worktrees
      init: teach --separate-git-dir to repair linked worktrees
      init: make --separate-git-dir work from within linked worktree
      git-checkout.txt: document -d short option for --detach
      worktree: teach `add` to recognize -d as shorthand for --detach
      git-worktree.txt: discuss branch-based vs. throwaway worktrees
      diff: move show_interdiff() from its own file to diff-lib
      diff-lib: tighten show_interdiff()'s interface
      format-patch: use 'origin' as start of current-series-range when known

Evan Gates (1):
      Doc: show example scissors line

Han Xin (1):
      send-pack: run GPG after atomic push checking

Han-Wen Nienhuys (17):
      lib-t6000.sh: write tag using git-update-ref
      t3432: use git-reflog to inspect the reflog for HEAD
      bisect: treat BISECT_HEAD as a pseudo ref
      t1400: use git rev-parse for testing PSEUDOREF existence
      Modify pseudo refs through ref backend storage
      Make HEAD a PSEUDOREF rather than PER_WORKTREE.
      refs: move the logic to add \t to reflog to the files backend
      refs: split off reading loose ref data in separate function
      refs: fix comment about submodule ref_stores
      refs: move gitdir into base ref_store
      refs: read FETCH_HEAD and MERGE_HEAD generically
      refs: make refs_ref_exists public
      sequencer: treat CHERRY_PICK_HEAD as a pseudo ref
      builtin/commit: suggest update-ref for pseudoref removal
      sequencer: treat REVERT_HEAD as a pseudo ref
      refs: move REF_LOG_ONLY to refs-internal.h
      refs: add GIT_TRACE_REFS debugging mechanism

Hariom Verma (10):
      t6300: unify %(trailers) and %(contents:trailers) tests
      ref-filter: 'contents:trailers' show error if `:` is missing
      ref-filter: support different email formats
      ref-filter: refactor `grab_objectname()`
      ref-filter: modify error messages in `grab_objectname()`
      ref-filter: rename `objectname` related functions and fields
      ref-filter: add `short` modifier to 'tree' atom
      ref-filter: add `short` modifier to 'parent' atom
      pretty: refactor `format_sanitized_subject()`
      ref-filter: add `sanitize` option for 'subject' atom

Hugo Locurcio (1):
      bisect: swap command-line options in documentation

Jacob Keller (4):
      refspec: fix documentation referring to refspec_item
      refspec: make sure stack refspec_item variables are zeroed
      refspec: add support for negative refspecs
      format-patch: teach format.useAutoBase "whenAble" option

Jeff Hostetler (1):
      mingw: improve performance of mingw_unlink()

Jeff King (80):
      t6000: use test_tick consistently
      t9700: loosen ident timezone regex
      t5539: make timestamp requirements more explicit
      t9100: explicitly unset GIT_COMMITTER_DATE
      test-lib: set deterministic default author/committer date
      t9100: stop depending on commit timestamps
      verify_repository_format(): complain about new extensions in v0 repo
      argv-array: use size_t for count and alloc
      argv-array: rename to strvec
      strvec: rename files from argv-array to strvec
      quote: rename sq_dequote_to_argv_array to mention strvec
      strvec: convert builtin/ callers away from argv_array name
      strvec: convert more callers away from argv_array name
      strvec: convert remaining callers away from argv_array name
      strvec: fix indentation in renamed calls
      strvec: update documention to avoid argv_array
      strvec: drop argv_array compatibility layer
      log: drop "--cc implies -m" logic
      revision: add "--no-diff-merges" option to counteract "-m"
      log: enable "-m" automatically with "--first-parent"
      doc/git-log: move "Diff Formatting" from rev-list-options
      doc/git-log: drop "-r" diff option
      doc/git-log: move "-t" into diff-options list
      doc/git-log: clarify handling of merge commit diffs
      strvec: rename struct fields
      config: work around gcc-10 -Wstringop-overflow warning
      revision: avoid out-of-bounds read/write on empty pathspec
      revision: avoid leak when preparing bloom filter for "/"
      t5616: use test_i18ngrep for upload-pack errors
      sideband: mark "remote error:" prefix for translation
      t1416: avoid hard-coded sha1 ids
      t8003: check output of coalesced blame
      t8003: factor setup out of coalesce test
      blame: only coalesce lines that are adjacent in result
      Makefile: drop builtins from MSVC pdb list
      make credential helpers builtins
      make git-bugreport a builtin
      make git-fast-import a builtin
      drop vcs-svn experiment
      stop calling UNLEAK() before die()
      ls-remote: simplify UNLEAK() usage
      clear_pattern_list(): clear embedded hashmaps
      submodule--helper: use strbuf_release() to free strbufs
      checkout: fix leak of non-existent branch names
      config: fix leaks from git_config_get_string_const()
      config: drop git_config_get_string_const()
      config: fix leak in git_config_get_expiry_in_days()
      submodule--helper: fix leak of core.worktree value
      p5302: disable thread-count parameter tests by default
      p5302: count up to online-cpus for thread tests
      index-pack: adjust default threading cap
      revision: set rev_input_given in handle_revision_arg()
      worktree: fix leak in check_clean_worktree()
      xrealloc: do not reuse pointer freed by zero-length realloc()
      add-patch: fix inverted return code of repo_read_index()
      add--interactive.perl: specify --no-color explicitly
      packfile: actually set approximate_object_count_valid
      diff-highlight: correctly match blank lines for flush
      bswap.h: drop unaligned loads
      Revert "fast-export: use local array to store anonymized oid"
      shortlog: change "author" variables to "ident"
      protocol: re-enable v2 protocol by default
      shortlog: add grouping option
      trailer: add interface for iterating over commit trailers
      shortlog: match commit trailers with --group
      shortlog: de-duplicate trailer values
      shortlog: rename parse_stdin_ident()
      shortlog: parse trailer idents
      shortlog: allow multiple groups to be specified
      convert: drop unused crlf_action from check_global_conv_flags_eol()
      drop unused argc parameters
      env--helper: write to opt->value in parseopt helper
      assert PARSE_OPT_NONEG in parse-options callbacks
      push: drop unused repo argument to do_push()
      sequencer: drop repository argument from run_git_commit()
      sparse-checkout: fill in some options boilerplate
      test-advise: check argument count with argc instead of argv
      sequencer: handle ignore_footer when parsing trailers
      dir.c: drop unused "untracked" from treat_path_fast()
      combine-diff: handle --find-object in multitree code path

Jiang Xin (10):
      transport: not report a non-head push as a branch
      t5411: add basic test cases for proc-receive hook
      receive-pack: add new proc-receive hook
      receive-pack: feed report options to post-receive
      New capability "report-status-v2" for git-push
      doc: add document for capability report-status-v2
      receive-pack: new config receive.procReceiveRefs
      t5411: test updates of remote-tracking branches
      transport: parse report options for tracking refs
      doc: add documentation for the proc-receive hook

Johannes Berg (2):
      pack-write/docs: update regarding pack naming
      docs: commit-graph: fix some whitespace in the diagram

Johannes Schindelin (20):
      t3404: prepare 'short SHA-1 collision' tests for SHA-256
      ci: fix indentation of the `ci-config` job
      ci: avoid ugly "failure" in the `ci-config` job
      t/test-terminal: avoid non-inclusive language
      fast-export: avoid using unnecessary language in a code comment
      t3200: avoid variations of the `master` branch name
      msvc: copy the correct `.pdb` files in the Makefile target `install`
      Optionally skip linking/copying the built-ins
      ci: stop linking built-ins to the dashed versions
      cmake: ignore files generated by CMake as run in Visual Studio
      tests: avoid variations of the `master` branch name
      t9902: avoid using the branch name `master`
      cmake: do find Git for Windows' shell interpreter
      cmake: ensure that the `vcpkg` packages are found on Windows
      cmake: fall back to using `vcpkg`'s `msgfmt.exe` on Windows
      cmake: quote the path accurately when editing `test-lib.sh`
      cmake (Windows): let the `.dll` files be found when running the tests
      cmake (Windows): complain when encountering an unknown compiler
      cmake (Windows): initialize vcpkg/build dependencies automatically
      cmake (Windows): recommend using Visual Studio's built-in CMake support

Johannes Sixt (1):
      gitk: Un-hide selection in areas with non-default background color

Jonathan Tan (32):
      upload-pack: do not lazy-fetch "have" objects
      pack-objects: refactor to oid_object_info_extended
      pack-objects: prefetch objects to be packed
      sha1-file: make pretend_object_file() not prefetch
      sha1-file: introduce no-lazy-fetch has_object()
      apply: do not lazy fetch when applying binary
      pack-objects: no fetch when allow-{any,promisor}
      fsck: do not lazy fetch known non-promisor object
      negotiator/noop: add noop fetch negotiator
      fetch: allow refspecs specified through stdin
      fetch: avoid reading submodule config until needed
      fetch: only populate existing_refs if needed
      fetch-pack: do not lazy-fetch during ref iteration
      promisor-remote: lazy-fetch objects in subprocess
      fetch-pack: remove no_dependents code
      fetch-pack: in partial clone, pass --promisor
      Documentation: deltaBaseCacheLimit is per-thread
      index-pack: remove redundant parameter
      index-pack: unify threaded and unthreaded code
      index-pack: remove redundant child field
      index-pack: calculate {ref,ofs}_{first,last} early
      index-pack: make resolve_delta() assume base data
      (various): document from_promisor parameter
      fetch-pack: document only_packfile in get_pack()
      fetch-pack: make packfile URIs work with transfer.fsckobjects
      fetch: no FETCH_HEAD display if --no-write-fetch-head
      sha1-name: replace unsigned int with option struct
      refs: move dwim_ref() to header file
      wt-status: tolerate dangling marks
      index-pack: make quantum of work smaller
      promisor-remote: remove unused variable
      fetch: do not override partial clone filter

Junio C Hamano (49):
      gitk: be prepared to be run in a bare repository
      reflog: cleanse messages in the refs.c layer
      Revert "fmt-merge-msg: stop treating `master` specially"
      fmt-merge-msg: allow merge destination to be omitted again
      First batch post 2.28
      The second batch -- mostly minor typofixes
      Third batch
      Fourth batch
      Documentation: don't hardcode command categories twice
      compat-util: type-check parameters of no-op replacement functions
      Fifth batch
      Sixth batch
      Seventh batch
      messages: avoid SHA-1 in end-user facing messages
      Eighth batch
      fetch: optionally allow disabling FETCH_HEAD update
      Ninth batch
      ident: say whose identity is missing when giving user.name hint
      Tenth batch
      t3436: do not run git-merge-recursive in dashed form
      transport-helper: do not run git-remote-ext etc. in dashed form
      cvsexportcommit: do not run git programs in dashed form
      run_command: teach API users to use embedded 'args' more
      credential-cache: use child_process.args
      Eleventh batch
      doc: clarify how exit status of post-checkout hook is used
      Twelfth batch
      Thirteenth batch
      add -i: use the built-in version when feature.experimental is set
      Makefile: allow extra tweaking of distribution tarball
      Fourteenth batch
      quote_path: rename quote_path_relative() to quote_path()
      quote_path: give flags parameter to quote_path()
      quote_path: optionally allow quoting a path with SP in it
      quote_path: code clarification
      wt-status: consistently quote paths in "status --short" output
      quote: rename misnamed sq_lookup[] to cq_lookup[]
      quote: turn 'nodq' parameter into a set of flags
      Fifteenth batch
      Sixteenth batch
      t8013: minimum preparatory clean-up
      blame: validate and peel the object names on the ignore list
      t1506: rev-parse A..B and A...B
      sequencer: stop abbreviating stopped-sha file
      Seventeenth batch
      Eighteenth batch
      hashmap_for_each_entry(): workaround MSVC's runtime check failure #3
      Nineteenth batch
      Git 2.29-rc0

Kazuhiro Kato (1):
      gitk: fix branch name encoding error

Kyohei Kadota (1):
      Fit to Plan 9's ANSI/POSIX compatibility layer

Lin Sun (1):
      mergetool: allow auto-merge for meld to follow the vim-diff behavior

Luke Diamand (2):
      git-p4 unshelve: adding a commit breaks git-p4 unshelve
      git-p4: use HEAD~$n to find parent commit for unshelve

Martin Ågren (19):
      dir: check pathspecs before returning `path_excluded`
      t1450: fix quoting of NUL byte when corrupting pack
      t: don't spuriously close and reopen quotes
      t4104: modernize and simplify quoting
      progress: don't dereference before checking for NULL
      http-protocol.txt: document SHA-256 "want"/"have" format
      index-format.txt: document SHA-256 index format
      protocol-capabilities.txt: clarify "allow-x-sha1-in-want" re SHA-256
      shallow.txt: document SHA-256 shallow format
      Documentation: mark `--object-format=sha256` as experimental
      wt-status: replace sha1 mentions with oid
      wt-status: print to s->fp, not stdout
      wt-status: introduce wt_status_state_free_buffers()
      worktree: inline `worktree_ref()` into its only caller
      worktree: update renamed variable in comment
      worktree: rename copy-pasted variable
      worktree: use skip_prefix to parse target
      config/fmt-merge-msg.txt: drop space in quote
      config/uploadpack.txt: fix typo in `--filter=tree:<n>`

Matheus Tavares (4):
      checkout_entry(): remove unreachable error() call
      config: complain about --worktree outside of a git repo
      packfile: fix race condition on unpack_entry()
      packfile: fix memory leak in add_delta_base_cache()

Matthew Rogers (1):
      diff: teach --stat to ignore uninteresting modifications

Michael Forney (2):
      revision: use repository from rev_info when parsing commits
      submodule: use submodule repository when preparing summary

Michal Privoznik (1):
      completion: add show --color-moved[-ws]

Miriam Rubio (4):
      bisect--helper: BUG() in cmd_*() on invalid subcommand
      bisect--helper: use '-res' in 'cmd_bisect__helper' return
      bisect--helper: introduce new `write_in_file()` function
      bisect: call 'clear_commit_marks_all()' in 'bisect_next_all()'

Nikita Leonov (1):
      credential: treat CR/LF as line endings in the credential protocol

Noam Yorav-Raphael (1):
      docs: improve the example that illustrates git-notes path names

Orgad Shaneh (5):
      vcbuild: fix library name for expat with make MSVC=1
      vcbuild: fix batch file name in README
      fetch: do not look for submodule changes in unchanged refs
      submodule: suppress checking for file name and ref ambiguity for object ids
      contrib/buildsystems: fix expat library name for generated vcxproj

Patrick Steinhardt (2):
      refs: fix interleaving hook calls with reference-transaction hook
      refs: remove lookup cache for reference-transaction hook

Paul Mackerras (1):
      gitk: Resize panes correctly when reducing window size

Philippe Blain (19):
      git-log.txt: add links to 'rev-list' and 'diff' docs
      revisions.txt: describe 'rev1 rev2 ...' meaning for ranges
      git-rev-list.txt: fix Asciidoc syntax
      git-rev-list.txt: tweak wording in set operations
      git-rev-list.txt: move description to separate file
      git-log.txt: include rev-list-description.txt
      command-list.txt: add missing 'gitcredentials' and 'gitremote-helpers'
      help: drop usage of 'common' and 'useful' for guides
      git.txt: add list of guides
      fetch, pull doc: correct description of '--set-upstream'
      userdiff: add tests for Fortran xfuncname regex
      userdiff: improve Fortran xfuncname regex
      git-imap-send.txt: don't duplicate 'Examples' sections
      git-imap-send.txt: do verify SSL certificate for gmail.com
      git-imap-send.txt: add note about localized Gmail folders
      doc: mention GIT_SEQUENCE_EDITOR and 'sequence.editor' more
      git.txt: correct stale 'GIT_EXTERNAL_DIFF' description
      Makefile: add support for generating JSON compilation database
      gitsubmodules doc: invoke 'ls-files' with '--recurse-submodules'

Phillip Wood (7):
      add -p: use ALLOC_GROW_BY instead of ALLOW_GROW
      add -p: fix checking of user input
      am: stop exporting GIT_COMMITTER_DATE
      rebase -i: support --committer-date-is-author-date
      rebase -i: support --ignore-date
      add -p: fix memory leak
      add -p: fix editing of intent-to-add paths

Pranit Bauva (2):
      bisect--helper: reimplement `bisect_autostart` shell function in C
      bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in C

Prathamesh Chavan (1):
      submodule: port submodule subcommand 'summary' from shell to C

Raymond E. Pasco (6):
      apply: allow "new file" patches on i-t-a entries
      blame-options.txt: document --first-parent option
      apply: make i-t-a entries never match worktree
      t4140: test apply with i-t-a paths
      diff-lib: use worktree mode in diffs from i-t-a entries
      git-apply.txt: update descriptions of --cached, --index

René Scharfe (21):
      read-cache: remove bogus shortcut
      grep: avoid using oid_to_hex() with parse_object_or_die()
      bisect: use oid_to_hex_r() instead of memcpy()+oid_to_hex()
      upload-pack: remove superfluous sigchain_pop() call
      rebase: remove unused function reschedule_last_action
      connected: use buffered I/O to talk to rev-list
      midx: use buffered I/O to talk to pack-objects
      upload-pack: use buffered I/O to talk to rev-list
      patch-id: ignore newline at end of file in diff_flush_patch_id()
      checkout, restore: make pathspec recursive
      read-cache: fix mem-pool allocation for multi-threaded index loading
      push: release strbufs used for refspec formatting
      refspec: add and use refspec_appendf()
      fast-import: use write_pack_header()
      midx: use hashwrite_u8() in write_midx_header()
      pack-bitmap-write: use hashwrite_be32() in write_hash_cache()
      pack-write: use hashwrite_be32() in write_idx_file()
      archive: read short blobs in archive.c::write_archive_entry()
      archive: add --add-file
      Makefile: use git-archive --add-file
      ref-filter: plug memory leak in reach_filter()

Rohit Ashiwal (2):
      rebase -i: add --ignore-whitespace flag
      rebase: add --reset-author-date

Ryan Zoeller (2):
      parse-options: add --git-completion-helper-all
      completion: add GIT_COMPLETION_SHOW_ALL env var

SZEDER Gábor (15):
      tree-walk.c: don't match submodule entries for 'submod/anything'
      commit-graph: fix parsing the Chunk Lookup table
      commit-graph-format.txt: all multi-byte numbers are in network byte order
      commit-slab: add a function to deep free entries on the slab
      diff.h: drop diff_tree_oid() & friends' return value
      commit-graph: clean up #includes
      commit-graph: simplify parse_commit_graph() #1
      commit-graph: simplify parse_commit_graph() #2
      commit-graph: simplify write_commit_graph_file() #1
      commit-graph: simplify write_commit_graph_file() #2
      commit-graph: unify the signatures of all write_graph_chunk_*() functions
      commit-graph: simplify chunk writes into loop
      commit-graph: check chunk sizes after writing
      commit-graph: check all leading directories in changed path Bloom filters
      ci: use absolute PYTHON_PATH in the Linux jobs

Samanta Navarro (1):
      fast-import: fix typo in documentation

Sergey Organov (9):
      revision: fix die() message for "--unpacked="
      revision: change "--diff-merges" option to require parameter
      doc/git-log: describe --diff-merges=off
      t/t4013: add test for --diff-merges=off
      pretty-options.txt: fix --no-abbrev-commit description
      revision: add separate field for "-m" of "diff-index -m"
      log_tree_diff: get rid of code duplication for first_parent_only
      log_tree_diff: get rid of extra check for NULL
      diff: get rid of redundant 'dense' argument

Shourya Shukla (11):
      submodule: remove extra line feeds between callback struct and macro
      submodule: rename helper functions to avoid ambiguity
      t7421: introduce a test script for verifying 'summary' output
      t7401: modernize style
      t7401: use 'short' instead of 'verify' and cut in rev-parse calls
      t7401: change syntax of test_i18ncmp calls for clarity
      t7401: change indentation for enhanced readability
      t7401: add a NEEDSWORK
      submodule: eliminate unused parameters from print_submodule_summary()
      submodule: fix style in function definition
      t7421: eliminate 'grep' check in t7421.4 for mingw compatibility

Sibi Siddharthan (8):
      Introduce CMake support for configuring Git
      cmake: generate the shell/perl/python scripts and templates, translations
      cmake: installation support for git
      cmake: support for testing git with ctest
      cmake: support for testing git when building out of the source tree
      cmake: support for building git on windows with mingw
      cmake: support for building git on windows with msvc and clang.
      ci: modification of main.yml to use cmake for vs-build job

Simon Legner (1):
      remote-mediawiki: fix duplicate revisions being imported

Stefan Dotterweich (1):
      gitk: add diff lines background colors

Steve Kemp (1):
      comment: fix spelling mistakes inside comments

Taylor Blau (18):
      revision: empty pathspecs should not use Bloom filters
      list_objects_filter_options: introduce 'list_object_filter_config_name'
      upload-pack.c: allow banning certain object filter(s)
      upload-pack.c: introduce 'uploadpackfilter.tree.maxDepth'
      builtin/repack.c: invalidate MIDX only when necessary
      midx: traverse the local MIDX first
      commit-graph: introduce 'get_bloom_filter_settings()'
      t4216: use an '&&'-chain
      commit-graph: pass a 'struct repository *' in more places
      t/helper/test-read-graph.c: prepare repo settings
      commit-graph: respect 'commitGraph.readChangedPaths'
      commit-graph.c: store maximum changed paths
      bloom: split 'get_bloom_filter()' in two
      bloom: use provided 'struct bloom_filter_settings'
      bloom: encode out-of-bounds filters as non-empty
      commit-graph: rename 'split_commit_graph_opts'
      builtin/commit-graph.c: introduce '--max-new-filters=<n>'
      commit-graph: introduce 'commitGraph.maxNewFilters'

Theodore Dubois (1):
      submodule update: silence underlying merge/rebase with "--quiet"

Thomas Guyot-Sionnest (1):
      diff: fix modified lines stats with --stat and --numstat

brian m. carlson (48):
      remote-curl: make --force-with-lease work with non-ASCII ref names
      t: make test-bloom initialize repository
      t1001: use $ZERO_OID
      t3305: make hash agnostic
      t6100: make hash size independent
      t6101: make hash size independent
      t6301: make hash size independent
      t6500: specify test values for SHA-256
      t6501: avoid hard-coded objects
      t7003: compute appropriate length constant
      t7063: make hash size independent
      t7201: abstract away SHA-1-specific constants
      t7102: abstract away SHA-1-specific constants
      t7400: make hash size independent
      t7405: make hash size independent
      t7506: avoid checking for SHA-1-specific constants
      t7508: use $ZERO_OID instead of hard-coded constant
      t8002: make hash size independent
      t8003: make hash size independent
      t8011: make hash size independent
      t9300: abstract away SHA-1-specific constants
      t9300: use $ZERO_OID instead of hard-coded object ID
      t9301: make hash size independent
      t9350: make hash size independent
      t9500: ensure that algorithm info is preserved in config
      t9700: make hash size independent
      t5308: make test work with SHA-256
      t0410: mark test with SHA1 prerequisite
      http-fetch: set up git directory before parsing pack hashes
      builtin/verify-pack: implement an --object-format option
      bundle: add new version for use with SHA-256
      setup: add support for reading extensions.objectformat
      repository: enable SHA-256 support by default
      t: add test_oid option to select hash algorithm
      t: allow testing different hash algorithms via environment
      t: make SHA1 prerequisite depend on default hash
      ci: run tests with SHA-256
      docs: add documentation for extensions.objectFormat
      t: remove test_oid_init in tests
      git-cvsexportcommit: support Perl before 5.10.1
      docs: document SHA-256 pack and indices
      docs: fix step in transition plan
      t4013: improve diff-post-processor logic
      po: add missing letter for French message
      docs: explain why squash merges are broken with long-running branches
      docs: explain why reverts are not always applied on merge
      docs: explain how to deal with files that are always modified
      builtin/clone: avoid failure with GIT_DEFAULT_HASH

pudinha (2):
      mergetool--lib: improve support for vimdiff-style tool variants
      mergetools: add support for nvimdiff (neovim) family

Ákos Uzonyi (2):
      completion: use "prev" variable instead of introducing "prevword"
      completion: complete refs after 'git restore -s'

Ævar Arnfjörð Bjarmason (17):
      remote-mediawiki doc: correct link to GitHub project
      remote-mediawiki doc: link to MediaWiki's current version
      remote-mediawiki doc: don't hardcode Debian PHP versions
      remote-mediawiki tests: use the login/password variables
      remote-mediawiki tests: use a 10 character password
      remote-mediawiki tests: use test_cmp in tests
      remote-mediawiki tests: change `[]` to `test`
      remote-mediawiki tests: use "$dir/" instead of "$dir."
      remote-mediawiki tests: use a more idiomatic dispatch table
      remote-mediawiki tests: replace deprecated Perl construct
      remote-mediawiki tests: use inline PerlIO for readability
      remote-mediawiki tests: use CLI installer
      remote-mediawiki tests: annotate failing tests
      remote-mediawiki: provide a list form of run_git()
      remote-mediawiki: convert to quoted run_git() invocation
      remote-mediawiki: annotate unquoted uses of run_git()
      remote-mediawiki: use "sh" to eliminate unquoted commands

Đoàn Trần Công Danh (1):
      diff: index-line: respect --abbrev in object's name

Роман Донченко (2):
      gitk: don't highlight files after submodules as submodules
      gitk: fix the context menu not appearing in the presence of submodule diffs


Version v2.28.1; changes since v2.28.0:
---------------------------------------

Johannes Schindelin (13):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4
      Git 2.25.5
      Git 2.26.3
      Git 2.27.1
      Git 2.28.1

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.28.0; changes since v2.28.0-rc2:
-------------------------------------------

Alessandro Menti (1):
      l10n: it.po: update the Italian translation for Git 2.28.0 round 1

Bojun Chen (1):
      githooks.txt: use correct "reference-transaction" hook name

Christopher Diaz Riveros (1):
      l10n: es: 2.28.0 round 1

Emir Sarı (1):
      l10n: tr: v2.28.0 round 1

Jean-Noël Avila (1):
      l10n: fr v2.28.0 round 1

Jiang Xin (2):
      l10n: git.pot: v2.28.0 round 1 (70 new, 14 removed)
      l10n: zh_CN: for git v2.28.0 l10n round 1

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.28

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git v2.28.0

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (4931t0f0u)

Ralf Thielow (1):
      l10n: de.po: fix grammar

Taylor Blau (1):
      Documentation/RelNotes: fix a typo in 2.28's relnotes

Trần Ngọc Quân (1):
      l10n: vi.po(4931t): Updated translation for v2.28.0

Yi-Jyun Pan (1):
      l10n: zh_TW.po: v2.28.0 round 1 (0 untranslated)

Đoàn Trần Công Danh (1):
      l10n: vi.po: correct "ident line" translation


Version v2.28.0-rc2; changes since v2.28.0-rc1:
-----------------------------------------------

David J. Malan (1):
      git-prompt: change == to = for zsh's sake

Junio C Hamano (2):
      RelNotes: update the v0 with extension situation
      Git 2.28-rc2

Martin Ågren (2):
      gitworkflows.txt: fix broken subsection underline
      t3200: don't grep for `strerror()` string

Mikhail Terekhov (1):
      git-gui: allow opening work trees from the startup dialog


Version v2.28.0-rc1; changes since v2.28.0-rc0:
-----------------------------------------------

Jonathan Nieder (2):
      Revert "check_repository_format_gently(): refuse extensions for old repositories"
      repository: allow repository format upgrade with extensions

Junio C Hamano (2):
      Hopefully the last batch before -rc1
      Git 2.28-rc1

Martin Ågren (2):
      git-diff.txt: don't mark required argument as optional
      git-diff.txt: reorder possible usages

SZEDER Gábor (3):
      commit-graph: fix progress of reachable commits
      commit-graph: fix "Writing out commit graph" progress counter
      commit-graph: fix "Collecting commits from input" progress line

Trygve Aaberge (2):
      Wait for child on signal death for aliases to builtins
      Wait for child on signal death for aliases to externals


Version v2.28.0-rc0; changes since v2.27.1:
-------------------------------------------

Abhishek Kumar (4):
      object: drop parsed_object_pool->commit_count
      commit-graph: introduce commit_graph_data_slab
      commit: move members graph_pos, generation to a slab
      commit-graph: minimize commit_graph_data_slab access

Andrew Ng (1):
      merge: optimization to skip evaluate_result for single strategy

Ben Keene (1):
      git-p4.py: fix --prepare-p4-only error with multiple commits

Carlo Marcelo Arenas Belón (5):
      t/helper: teach test-regex to report pattern errors (like REG_ILLSEQ)
      t4210: detect REG_ILLSEQ dynamically and skip affected tests
      bisect--helper: avoid segfault with bad syntax in `start --term-*`
      t5608: avoid say() and use "skip_all" instead for consistency
      commit-reach: avoid is_descendant_of() shim

Chris Torek (3):
      t/t3430: avoid undefined git diff behavior
      git diff: improve range handling
      Documentation: usage for diff combined commits

Christian Couder (40):
      upload-pack: remove unused 'wants' from upload_pack_data
      upload-pack: move {want,have}_obj to upload_pack_data
      upload-pack: move 'struct upload_pack_data' around
      upload-pack: use 'struct upload_pack_data' in upload_pack()
      upload-pack: pass upload_pack_data to get_common_commits()
      upload-pack: pass upload_pack_data to receive_needs()
      upload-pack: use upload_pack_data writer in receive_needs()
      upload-pack: move symref to upload_pack_data
      upload-pack: pass upload_pack_data to send_ref()
      upload-pack: pass upload_pack_data to check_non_tip()
      upload-pack: remove static variable 'stateless_rpc'
      upload-pack: pass upload_pack_data to create_pack_file()
      upload-pack: use upload_pack_data fields in receive_needs()
      upload-pack: annotate upload_pack_data fields
      upload-pack: move static vars to upload_pack_data
      upload-pack: move use_sideband to upload_pack_data
      upload-pack: move filter_capability_requested to upload_pack_data
      upload-pack: move multi_ack to upload_pack_data
      upload-pack: change multi_ack to an enum
      upload-pack: pass upload_pack_data to upload_pack_config()
      upload-pack: move keepalive to upload_pack_data
      upload-pack: move allow_filter to upload_pack_data
      upload-pack: move allow_ref_in_want to upload_pack_data
      upload-pack: move allow_sideband_all to upload_pack_data
      upload-pack: move pack_objects_hook to upload_pack_data
      upload-pack: pass upload_pack_data to send_shallow_list()
      upload-pack: pass upload_pack_data to deepen()
      upload-pack: pass upload_pack_data to deepen_by_rev_list()
      upload-pack: pass upload_pack_data to send_unshallow()
      upload-pack: move shallow_nr to upload_pack_data
      upload-pack: move extra_edge_obj to upload_pack_data
      upload-pack: move allow_unadvertised_object_request to upload_pack_data
      upload-pack: change allow_unadvertised_object_request to an enum
      upload-pack: pass upload_pack_data to process_haves()
      upload-pack: pass upload_pack_data to send_acks()
      upload-pack: pass upload_pack_data to ok_to_give_up()
      upload-pack: pass upload_pack_data to got_oid()
      upload-pack: move oldest_have to upload_pack_data
      upload-pack: refactor common code into do_got_oid()
      cat-file: add missing [=<format>] to usage/synopsis

Denton Liu (18):
      lib-submodule-update: add space after function name
      lib-submodule-update: consolidate --recurse-submodules
      remote-curl: fix typo
      remote-curl: remove label indentation
      transport: extract common fetch_pack() call
      pkt-line: extern packet_length()
      remote-curl: error on incomplete packet
      pkt-line: define PACKET_READ_RESPONSE_END
      stateless-connect: send response end packet
      t/README: avoid poor-man's small caps GIT
      CodingGuidelines: specify Python 2.7 is the oldest version
      lib-submodule-update: prepend "git" to $command
      t3200: rename "expected" to "expect"
      t3200: test for specific errors
      branch: don't mix --edit-description
      builtin/diff: update usage comment
      builtin/diff: fix botched update of usage comment
      lib-submodule-update: pass 'test_must_fail' as an argument

Derrick Stolee (3):
      line-log: integrate with changed-path Bloom filters
      commit-reach: create repo_is_descendant_of()
      commit-reach: use fast logic in repo_in_merge_base

Don Goodman-Wilson (1):
      init: allow setting the default for the initial branch name via the config

Elijah Newren (11):
      fast-import: add new --date-format=raw-permissive format
      sparse-checkout: avoid staging deletions of all files
      dir: fix treatment of negated pathspecs
      git-sparse-checkout: clarify interactions with submodules
      dir: fix a few confusing comments
      dir, clean: avoid disallowed behavior
      clean: consolidate handling of ignored parameters
      clean: optimize and document cases where we recurse into subdirectories
      wt-status: show sparse checkout status as well
      git-prompt: document how in-progress operations affect the prompt
      git-prompt: include sparsity state as well

Emily Shaffer (3):
      help: add shell-path to --build-options
      bugreport: include user interactive shell
      docs: mention MyFirstContribution in more places

Eric Sunshine (10):
      worktree: factor out repeated string literal
      worktree: give "should be pruned?" function more meaningful name
      worktree: make high-level pruning re-usable
      worktree: prune duplicate entries referencing same worktree path
      worktree: prune linked worktree referencing main worktree path
      worktree: generalize candidate worktree path validation
      worktree: make "move" refuse to move atop missing registered worktree
      worktree: drop get_worktrees() special-purpose sorting option
      worktree: drop get_worktrees() unused 'flags' argument
      worktree: avoid dead-code in conditional

Han-Wen Nienhuys (5):
      refs.h: clarify reflog iteration order
      t: use update-ref and show-ref to reading/writing refs
      refs: improve documentation for ref iterator
      reftable: clarify how empty tables should be written
      reftable: define version 2 of the spec to accomodate SHA256

Jacob Keller (16):
      completion: add test showing subpar git switch completion
      completion: add tests showing subpar DWIM logic for switch/checkout
      completion: add tests showing subar checkout --detach logic
      completion: add tests showing subpar switch/checkout --track logic
      completion: add tests showing subpar -c/-C startpoint completion
      completion: add tests showing subpar -c/C argument completion
      completion: add tests showing subpar switch/checkout --orphan logic
      completion: replace overloaded track term for __git_complete_refs
      completion: extract function __git_dwim_remote_heads
      completion: perform DWIM logic directly in __git_complete_refs
      completion: improve handling of DWIM mode for switch/checkout
      completion: improve completion for git switch with no options
      completion: improve handling of --detach in checkout
      completion: improve handling of --track in switch/checkout
      completion: improve handling of -c/-C and -b/-B in switch/checkout
      completion: improve handling of --orphan option of switch/checkout

Jeff King (14):
      diff: discard blob data from stat-unmatched pairs
      upload-pack: actually use some upload_pack_data bitfields
      t9351: derive anonymized tree checks from original repo
      fast-export: use xmemdupz() for anonymizing oids
      fast-export: store anonymized oids as hex strings
      fast-export: tighten anonymize_mem() interface to handle only strings
      fast-export: stop storing lengths in anonymized hashmaps
      fast-export: use a flex array to store anonymized entries
      fast-export: move global "idents" anonymize hashmap into function
      fast-export: add a "data" callback parameter to anonymize_str()
      fast-export: allow seeding the anonymized mapping
      fast-export: anonymize "master" refname
      fast-export: use local array to store anonymized oid
      diff: check for merge bases before assigning sym->base

Jiuyang Xie (1):
      doc: fix wrong 4-byte length of pkt-line message

Johannes Schindelin (16):
      checkout -p: handle new files correctly
      clone/fetch: anonymize URLs in the reflog
      msvc: fix "REG_STARTEND" issue
      fmt-merge-msg: stop treating `master` specially
      send-pack/transport-helper: avoid mentioning a particular branch
      submodule: fall back to remote's HEAD for missing remote.<name>.branch
      docs: add missing diamond brackets
      init: allow specifying the initial branch name for the new repository
      clone: use configured default branch name when appropriate
      remote: use the configured default branch name when appropriate
      testsvn: respect `init.defaultBranch`
      docs: adjust for the recent rename of `pu` to `seen`
      docs: adjust the technical overview for the rename `pu` -> `seen`
      tests: reference `seen` wherever `pu` was referenced
      diff-files --raw: show correct post-image of intent-to-add files
      difftool -d: ensure that intent-to-add files are handled correctly

John Lin (1):
      bash-completion: add git-prune into bash completion

Jonathan Nieder (3):
      config: let feature.experimental imply protocol.version=2
      reftable: file format documentation
      experimental: default to fetch.writeCommitGraph=false

Jonathan Tan (12):
      t5551: test that GIT_TRACE_CURL redacts password
      http, imap-send: stop using CURLOPT_VERBOSE
      http: redact all cookies, teach GIT_TRACE_REDACT=0
      http: use --stdin when indexing dumb HTTP pack
      http: refactor finish_http_pack_request()
      http-fetch: refactor into function
      http-fetch: support fetching packfiles by URL
      Documentation: order protocol v2 sections
      Documentation: add Packfile URIs design doc
      upload-pack: refactor reading of pack-objects out
      fetch-pack: support more than one pack lockfile
      upload-pack: send part of packfile response as uri

Josh Steadmon (1):
      fuzz-commit-graph: properly free graph struct

Junio C Hamano (8):
      Start the post 2.27 cycle
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      Git 2.28-rc0

Laurent Arnoud (1):
      diff: add config option relative

Luc Van Oostenryck (1):
      sparse: allow '{ 0 }' to be used without warnings

Marco Trevisan (Treviño) (1):
      completion: use native ZSH array pattern matching

Martin Ågren (1):
      git-rebase.txt: fix description list separator

Matheus Tavares (1):
      entry: check for fstat() errors after checkout

Miroslav Koškár (1):
      doc: fix author vs. committer copy/paste error

Paolo Bonzini (1):
      t4014: do not use "slave branch" nomenclature

Patrick Steinhardt (1):
      refs: implement reference transaction hook

Rafael Aquini (1):
      send-email: restore --in-reply-to superseding behavior

Ramsay Jones (1):
      upload-pack: fix a sparse '0 as NULL pointer' warning

Randall S. Becker (2):
      bugreport.c: replace strbuf_write_fd with write_in_full
      strbuf: remove unreferenced strbuf_write_fd method.

René Scharfe (10):
      fsck: fix a typo in a comment
      t1450: increase test coverage of in-tree d/f detection
      t1450: demonstrate undetected in-tree d/f conflict
      fsck: detect more in-tree d/f conflicts
      checkout: add tests for -b and --track
      checkout: improve error messages for -b with extra argument
      commit-reach: plug minor memory leak after using is_descendant_of()
      pull: plug minor memory leak after using is_descendant_of()
      revision: reallocate TOPO_WALK object flags
      revision: disable min_age optimization with line-log

SZEDER Gábor (4):
      line-log: remove unused fields from 'struct line_log_data'
      t4211-line-log: add tests for parent oids
      line-log: more responsive, incremental 'git log -L'
      line-log: try to use generation number-based topo-ordering

Shourya Shukla (1):
      submodule: port subcommand 'set-branch' from shell to C

Srinidhi Kaushik (1):
      diff-files: treat "i-t-a" files as "not-in-index"

Taylor Blau (11):
      commit-graph.c: extract 'refs_cb_data'
      commit-graph.c: show progress of finding reachable commits
      commit-graph.c: peel refs in 'add_ref_to_set'
      builtin/commit-graph.c: extract 'read_one_commit()'
      builtin/commit-graph.c: dereference tags in builtin
      commit-graph.c: simplify 'fill_oids_from_commits'
      t5318: reorder test below 'graph_read_expect'
      commit-graph: drop COMMIT_GRAPH_WRITE_CHECK_OIDS flag
      t5318: use 'test_must_be_empty'
      t5318: test that '--stdin-commits' respects '--[no-]progress'
      commit.c: don't persist substituted parents when unshallowing

Ville Skyttä (2):
      completion: don't override given stash subcommand with -p
      completion: nounset mode fixes

Xin Li (4):
      repository: add a helper function to perform repository format upgrade
      fetch: allow adding a filter after initial clone
      sparse-checkout: upgrade repository to version 1 when enabling extension
      check_repository_format_gently(): refuse extensions for old repositories

brian m. carlson (61):
      t1050: match object ID paths in a hash-insensitive way
      Documentation: document v1 protocol object-format capability
      builtin/checkout: simplify metadata initialization
      t2060: add a test for switch with --orphan and --discard-changes
      connect: have ref processing code take struct packet_reader
      wrapper: add function to compare strings with different NUL termination
      remote: advertise the object-format capability on the server side
      connect: add function to parse multiple v1 capability values
      connect: add function to fetch value of a v2 server capability
      pkt-line: add a member for hash algorithm
      transport: add a hash algorithm member
      connect: add function to detect supported v1 hash functions
      send-pack: detect when the server doesn't support our hash
      connect: make parse_feature_value extern
      fetch-pack: detect when the server doesn't support our hash
      connect: detect algorithm when fetching refs
      builtin/receive-pack: detect when the server doesn't support our hash
      docs: update remote helper docs for object-format extensions
      transport-helper: implement object-format extensions
      remote-curl: implement object-format extensions
      builtin/clone: initialize hash algorithm properly
      t5562: pass object-format in synthesized test data
      fetch-pack: parse and advertise the object-format capability
      setup: set the_repository's hash algo when checking format
      t3200: mark assertion with SHA1 prerequisite
      packfile: compute and use the index CRC offset
      t5302: modernize test formatting
      builtin/show-index: provide options to determine hash algo
      t1302: expect repo format version 1 for SHA-256
      Documentation/technical: document object-format for protocol v2
      connect: pass full packet reader when parsing v2 refs
      connect: parse v2 refs with correct hash algorithm
      serve: advertise object-format capability for protocol v2
      t5500: make hash independent
      builtin/ls-remote: initialize repository based on fetch
      remote-curl: detect algorithm for dumb HTTP by size
      builtin/index-pack: add option to specify hash algorithm
      t1050: pass algorithm to index-pack when outside repo
      remote-curl: avoid truncating refs with ls-remote
      t/helper: initialize the repository for test-sha1-array
      t5702: offer an object-format capability in the test
      t5703: use object-format serve option
      t5704: send object-format capability with SHA-256
      t5300: pass --object-format to git index-pack
      bundle: detect hash algorithm when reading refs
      remote-testgit: adapt for object-format
      t9109: make test hash independent
      t9168: make test hash independent
      t9108: make test hash independent
      t9100: make test work with SHA-256
      t9104: make hash size independent
      t9101: make hash independent
      t/lib-git-svn: make hash size independent
      perl: create and switch variables for hash constants
      perl: make Git::IndexInfo work with SHA-256
      perl: make SVN code hash independent
      git-svn: set the OID length based on hash algorithm
      git-cvsserver: port to SHA-256
      git-cvsimport: port to SHA-256
      git-cvsexportcommit: port to SHA-256
      http-push: ensure unforced pushes fail when data would be lost

Đoàn Trần Công Danh (1):
      contrib: subtree: adjust test to change in fmt-merge-msg


Version v2.27.1; changes since v2.27.0:
---------------------------------------

Johannes Schindelin (12):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4
      Git 2.25.5
      Git 2.26.3
      Git 2.27.1

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.27.0; changes since v2.27.0-rc2:
-------------------------------------------

Alessandro Menti (2):
      l10n: it.po: update the Italian translation for Git 2.27.0 round 1
      l10n: it.po: update for Git 2.27.0 round #2

Alexander Shopov (2):
      l10n: bg.po: Updated Bulgarian translation (4868t)
      l10n: bg.po: Updated Bulgarian translation (4875t)

Carlo Marcelo Arenas Belón (1):
      t: avoid alternation (not POSIX) in grep's BRE

Christopher Diaz Riveros (1):
      l10n: es: 2.27.0 round 1

Emir Sarı (2):
      l10n: tr: v2.27.0 round 1
      l10n: tr: v2.27.0 round 2

Jan Engelhardt (1):
      l10n: de.po: Fix typo in the German translation of octopus

Jean-Noël Avila (2):
      l10n: fr v2.27.0 rnd 1
      l10n: fr.po v2.27.0 rnd 2

Jiang Xin (3):
      l10n: git.pot: v2.27.0 round 1 (72 new, 37 removed)
      l10n: git.pot: v2.27.0 round 2 (+1)
      l10n: zh_CN: for git v2.27.0 l10n round 1~2

Jordi Mas (3):
      l10n: Update Catalan translation
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.27

Martin Ågren (1):
      rev-list-options.txt: start a list for `show-pulls`

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git 2.27.0

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (4839t0f0u)
      l10n: sv.po: Update Swedish translation (4875t0f0u)

Toon Claes (1):
      Documentation: correct hash environment variable

Trần Ngọc Quân (2):
      l10n: vi(4874t): Updated Vietnamses translation for 2.27.0
      l10n: vi(4875t): Updated Vietnamses translation for 2.27.0rd2

Yi-Jyun Pan (2):
      l10n: zh_TW.po: v2.27.0 round 1 (0 untranslated)
      l10n: zh_TW.po: v2.27.0 round 2 (0 untranslated)

Đoàn Trần Công Danh (1):
      ci/config: correct instruction for CI preferences


Version v2.27.0-rc2; changes since v2.27.0-rc1:
-----------------------------------------------

Ansgar Röber (1):
      Subject: git-gui: fix syntax error because of missing semicolon

Carlo Marcelo Arenas Belón (3):
      t4216: avoid unnecessary subshell in test_bloom_filters_not_used
      t5520: avoid alternation in grep's BRE (not POSIX)
      bisect: avoid tailing CR characters from revision in replay

Derrick Stolee (1):
      fsck: use ERROR_MULTI_PACK_INDEX

Greg Price (1):
      tests: skip small-stack tests on hppa architecture

Ismael Luceno (1):
      git-gui: Handle Ctrl + BS/Del in the commit msg

Jonathan Tan (1):
      t4067: make rename detection test output raw diff

Junio C Hamano (2):
      Hopefully final batch before 2.27-rc2
      Git 2.27-rc2

Martin Ågren (5):
      date-formats.txt: fix list continuation
      git-commit-graph.txt: fix grammo
      git-commit-graph.txt: fix list rendering
      git-credential.txt: use list continuation
      git-sparse-checkout.txt: add missing '

Philippe Blain (1):
      command-list.txt: add gitfaq to the list of guides

Todd Zullinger (1):
      gitfaq: avoid validation error with older asciidoc

Đoàn Trần Công Danh (1):
      t5703: replace "grep -a" usage by perl


Version v2.27.0-rc1; changes since v2.27.0-rc0:
-----------------------------------------------

Abhishek Kumar (1):
      commit-slab-decl.h: update include guard

Carlo Marcelo Arenas Belón (1):
      compat: remove gmtime

Derrick Stolee (1):
      progress: call trace2_region_leave() only after calling _enter()

Elijah Newren (2):
      merge-recursive: fix rename/rename(1to2) for working tree with a binary
      unpack-trees: also allow get_progress() to work on a different index

Johannes Schindelin (1):
      ci: avoid pounding on the poor ci-artifacts container

Junio C Hamano (4):
      Revert "t/test_lib: avoid naked bash arrays in file_lineno"
      Revert "ci: add a problem matcher for GitHub Actions"
      Revert "tests: when run in Bash, annotate test failures with file name/line number"
      Git 2.27-rc1

Todd Zullinger (1):
      git-bugreport.txt: adjust reference to strftime(3)

Đoàn Trần Công Danh (1):
      t1509: correct i18n test


Version v2.27.0-rc0; changes since v2.26.3:
-------------------------------------------

Alban Gruin (3):
      sequencer: mark messages for translation
      sequencer: don't abbreviate a command if it doesn't have a short form
      t3432: test `--merge' with `rebase.abbreviateCommands = true', too

Alex Henrie (1):
      pull: warn if the user didn't say whether to rebase or to merge

Alexandr Miloslavskiy (4):
      set_git_dir: fix crash when used with real_path()
      real_path: remove unsafe API
      real_path_if_valid(): remove unsafe API
      get_superproject_working_tree(): return strbuf

Andras Kucsma (1):
      run-command: trigger PATH lookup properly on Cygwin

Andrei Rybak (2):
      t9500: remove spaces after redirect operators
      t: fix whitespace around &&

Andrew Oakley (1):
      git-p4: recover from inconsistent perforce history

Ash Holland (1):
      userdiff: support Markdown

Ben Keene (8):
      git-p4: change the expansion test from basestring to list
      git-p4: rewrite prompt to be Windows compatible
      git-p4: create new function run_git_hook
      git-p4: add p4-pre-submit exit text
      git-p4: add --no-verify option
      git-p4: restructure code in submit
      git-p4: add p4 submit hooks
      git-p4: add RCS keyword status message

Carlo Marcelo Arenas Belón (8):
      credential-store: ignore bogus lines from store file
      credential: update description for credential_from_url_gently
      credential: correct order of parameters for credential_match
      builtin/receive-pack: avoid generic function name hmac()
      t/t0000-basic: make sure subtests also use TEST_SHELL_PATH
      t/test_lib: avoid naked bash arrays in file_lineno
      credential: update gitcredentials documentation
      credential: document protocol updates

Christian Couder (1):
      upload-pack: clear filter_options for each v2 fetch command

Christopher Warrington (1):
      bisect: allow CRLF line endings in "git bisect replay" input

Damien Robert (6):
      midx.c: fix an integer underflow
      doc: list all commands affected by submodule.recurse
      doc: document --recurse-submodules for reset and restore
      doc: explain how to deactivate submodule.recurse completely
      doc: be more precise on (fetch|push).recurseSubmodules
      doc: --recurse-submodules mostly applies to active submodules

Denton Liu (45):
      Makefile: ASCII-sort += lists
      t7600: use test_write_lines()
      Lib-ify fmt-merge-msg
      Lib-ify prune-packed
      t5512: don't use `test_must_fail test_cmp`
      t5512: stop losing git exit code in here-docs
      t5512: stop losing return codes of git commands
      t5550: simplify no matching line check
      t5607: reorder `nongit test_must_fail`
      t5612: don't use `test_must_fail test_cmp`
      t5612: stop losing return codes of git commands
      t5801: teach compare_refs() to accept !
      wrapper: indent with tabs
      sequencer: stop leaking buf
      sequencer: make file exists check more efficient
      sequencer: make read_oneliner() accept flags
      sequencer: configurably warn on non-existent files
      sequencer: make read_oneliner() extern
      rebase: use read_oneliner()
      sequencer: make apply_autostash() accept a path
      sequencer: rename stash_sha1 to stash_oid
      rebase: use apply_autostash() from sequencer.c
      rebase: generify reset_head()
      reset: extract reset_head() from rebase
      rebase: extract create_autostash()
      rebase: generify create_autostash()
      sequencer: extract perform_autostash() from rebase
      sequencer: unlink autostash in apply_autostash()
      sequencer: implement save_autostash()
      sequencer: implement apply_autostash_oid()
      merge: teach --autostash option
      t5520: make test_pull_autostash() accept expect_parent_num
      pull: pass --autostash to merge
      t6030: use test_path_is_missing()
      t7408: replace incorrect uses of test_must_fail
      t7508: don't use `test_must_fail test_cmp`
      t9141: use test_path_is_missing()
      t9160: use test_path_is_missing()
      t9164: use test_must_fail only on git commands
      t9819: don't use test_must_fail with p4
      Use OPT_CALLBACK and OPT_CALLBACK_F
      push: unset PARSE_OPT_OPTARG for --recurse-submodules
      rebase: save autostash entry into stash reflog on --quit
      switch: fix errors and comments related to -c and -C
      Doc: reference the "stash list" in autostash docs

Derrick Stolee (25):
      connected.c: reprepare packs for corner cases
      config: set pack.useSparse=true by default
      pack-objects: flip the use of GIT_TEST_PACK_SPARSE
      clone: document --filter options
      diff: halt tree-diff early after max_changes
      dir: refactor treat_directory to clarify control flow
      commit-graph: fix buggy --expire-time option
      t5319: replace 'touch -m' with 'test-tool chmtime'
      bloom: ignore renames when computing changed paths
      revision: --show-pulls adds helpful merges
      log-tree: make ref_filter_match() a helper method
      log: add log.excludeDecoration config option
      revision: complicated pathspecs disable filters
      tests: write commit-graph with Bloom filters
      blame: use changed-path Bloom filters
      multi-pack-index: close file descriptor after mmap
      bloom: fix whitespace around tab length
      test-bloom: fix usage typo
      sparse-checkout: stop blocking empty workdirs
      unpack-trees: avoid array out-of-bounds error
      multi-pack-index: respect repack.packKeptObjects=false
      bloom: parse commit before computing filters
      Documentation: changed-path Bloom filters use byte words
      bloom: de-duplicate directory entries
      bloom: use num_changes not nr for limit detection

Elijah Newren (37):
      oidset: remove unnecessary include
      unpack-trees: fix minor typo in comment
      unpack-trees: remove unused error type
      unpack-trees: simplify verify_absent_sparse()
      unpack-trees: simplify pattern_list freeing
      t1091: make some tests a little more defensive against failures
      unpack-trees: allow check_updates() to work on a different index
      unpack-trees: do not mark a dirty path with SKIP_WORKTREE
      unpack-trees: pull sparse-checkout pattern reading into a new function
      unpack-trees: add a new update_sparsity() function
      sparse-checkout: use new update_sparsity() function
      sparse-checkout: use improved unpack_trees porcelain messages
      unpack-trees: move ERROR_WOULD_LOSE_SUBMODULE earlier
      unpack-trees: rename ERROR_* fields meant for warnings to WARNING_*
      unpack-trees: split display_error_msgs() into two
      unpack-trees: make sparse path messages sound like warnings
      unpack-trees: provide warnings on sparse updates for unmerged paths too
      unpack-trees: failure to set SKIP_WORKTREE bits always just a warning
      sparse-checkout: provide a new reapply subcommand
      pull: avoid running both merge and rebase
      t7063: more thorough status checking
      t3000: add more testcases testing a variety of ls-files issues
      dir: fix simple typo in comment
      dir: consolidate treat_path() and treat_one_path()
      dir: fix broken comment
      dir: fix confusion based on variable tense
      dir: replace exponential algorithm with a linear one
      dir: include DIR_KEEP_UNTRACKED_CONTENTS handling in treat_directory()
      dir: replace double pathspec matching with single in treat_directory()
      Fix error-prone fill_directory() API; make it only return matches
      completion: fix 'git add' on paths under an untracked directory
      git-rebase.txt: add another hook to the hooks section, and explain more
      sequencer: honor GIT_REFLOG_ACTION
      rebase -i: mark commits that begin empty in todo editor
      rebase: reinstate --no-keep-empty
      rebase: fix an incompatible-options error message
      rebase: display an error if --root and --fork-point are both provided

Emily Shaffer (8):
      help: move list_config_help to builtin/help
      bugreport: add tool to generate debugging info
      bugreport: gather git version and build info
      bugreport: add uname info
      bugreport: add compiler info
      bugreport: drop extraneous includes
      bugreport: collect list of populated hooks
      trace2: log progress time and throughput

Emma Brooks (3):
      format-patch: teach --no-encode-email-headers
      Documentation: explain "mboxrd" pretty format
      gitweb: Recognize *-to and Closes/Fixes trailers

Eric Sunshine (1):
      restore: default to HEAD when combining --staged and --worktree

Garima Singh (13):
      commit-graph: define and use MAX_NUM_CHUNKS
      bloom.c: add the murmur3 hash implementation
      bloom.c: introduce core Bloom filter constructs
      bloom.c: core Bloom filter implementation for changed paths.
      commit-graph: compute Bloom filters for changed paths
      commit-graph: examine commits by generation number
      commit-graph: write Bloom filters to commit graph file
      commit-graph: reuse existing Bloom filters during write
      commit-graph: add --changed-paths option to write subcommand
      revision.c: use Bloom filters to speed up path based revision walks
      revision.c: add trace2 stats around Bloom filter usage
      t4216: add end to end tests for git log with Bloom filters
      commit-graph: add GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS test flag

Hans Jerry Illikainen (2):
      t: increase test coverage of signature verification output
      gpg-interface: prefer check_signature() for GPG verification

Heba Waly (4):
      advice: extract vadvise() from advise()
      advice: change "setupStreamFailure" to "setUpstreamFailure"
      advice: revamp advise API
      tag: use new advice API to check visibility

Jeff King (41):
      t3419: drop EXPENSIVE tests
      t/lib-credential.sh: drop shebang line
      t/lib-*.sh: drop executable bit
      test-lib-functions: make packetize() more efficient
      upload-pack: handle unexpected delim packets
      p5310: stop timing non-bitmap pack-to-disk
      Makefile: avoid running curl-config multiple times
      Makefile: use curl-config --cflags
      test-lib-functions: simplify packetize() stdin code
      commit-graph: examine changed-path objects in pack order
      oid_array: use size_t for count and allocation
      oid_array: use size_t for iteration
      oid_array: rename source file from sha1-array
      test-tool: rename sha1-array to oid-array
      bisect: stop referring to sha1_array
      ref-filter: stop referring to "sha1 array"
      oidset: stop referring to sha1-array
      clone: use "quick" lookup while following tags
      Makefile: avoid running curl-config unnecessarily
      fast-import: replace custom hash with hashmap.c
      repository: mark the "refs" pointer as private
      remote: drop auto-strlen behavior of make_branch() and make_rewrite()
      parse_config_key(): return subsection len as size_t
      config: drop useless length variable in write_pair()
      git_config_parse_key(): return baselen as size_t
      config: use size_t to store parsed variable baselen
      config: reject parsing of files over INT_MAX
      credential: treat "?" and "#" in URLs as end of host
      blame: drop unused parameter from maybe_changed_path
      test-bloom: fix some whitespace issues
      test-bloom: check that we have expected arguments
      commit-graph: close descriptors after mmap
      t0000: disable GIT_TEST_FAIL_PREREQS in sub-tests
      gitcredentials(7): clarify quoting of helper examples
      gitcredentials(7): make shell-snippet example more realistic
      CodingGuidelines: drop arithmetic expansion advice to use "$x"
      ref-filter: apply --ignore-case to all sorting keys
      ref-filter: apply fallback refname sort only after all user sorts
      list-objects-filter: treat NULL filter_options as "disabled"
      pack-bitmap: pass object filter to fill-in traversal
      ci: allow per-branch config for GitHub Actions

Jessica Clarke (1):
      config.mak.uname: Define FREAD_READS_DIRECTORIES for GNU/Hurd

Jiang Xin (5):
      send-pack: fix inconsistent porcelain output
      t5543: never report what we do not push
      send-pack: mark failure of atomic push properly
      transport-helper: mark failure for atomic push
      transport-helper: new method reject_atomic_push()

Johannes Schindelin (36):
      cherry-pick: add test for `--skip` advice in `git commit`
      tests(junit-xml): avoid invalid XML
      import-tars: ignore the global PAX header
      tests(gpg): allow the gpg-agent to start on Windows
      t/lib-gpg.sh: stop pretending to be a stand-alone script
      tests: do not let lazy prereqs inside `test_expect_*` turn off tracing
      tests: turn GPG, GPGSM and RFC1991 into lazy prereqs
      tests: increase the verbosity of the GPG-related prereqs
      MyFirstObjectWalk: remove unnecessary conditional statement
      t0007: fix a typo
      ci/lib: if CI type is unknown, show the environment variables
      ci/lib: allow running in GitHub Actions
      ci: fix the `jobname` of the `GETTEXT_POISON` job
      subtree: fix build with AsciiDoctor 2
      mingw: do not treat `COM0` as a reserved file name
      t3904: fix incorrect demonstration of a bug
      stash -p: (partially) fix bug concerning split hunks
      mingw: help debugging by optionally executing bash with strace
      interactive: refactor code asking the user for interactive input
      ci: run gem with sudo to install asciidoctor
      README: add a build badge for the GitHub Actions runs
      ci: retire the Azure Pipelines definition
      tests: when run in Bash, annotate test failures with file name/line number
      ci: add a problem matcher for GitHub Actions
      ci: let GitHub Actions upload failed tests' directories
      t: consolidate the `is_hidden` functions
      mingw: make test_path_is_hidden more robust
      t: restrict `is_hidden` to be called only on Windows
      credential: fix grammar
      credential: optionally allow partial URLs in credential_from_url_gently()
      credential: optionally allow partial URLs in credential_from_url_gently()
      credential: handle `credential.<partial-URL>.<key>` again
      macOS/brew: let the build find gettext headers/libraries/msgfmt
      push: anonymize URLs in error messages and warnings
      credential: handle `credential.<partial-URL>.<key>` again
      rebase --autosquash: fix a potential segfault

Jonathan Nieder (1):
      Revert "fetch: default to protocol version 2"

Jonathan Tan (11):
      connected: always use partial clone optimization
      promisor-remote: accept 0 as oid_nr in function
      diff: make diff_populate_filespec_options struct
      diff: refactor object read
      diff: restrict when prefetching occurs
      rebase --merge: optionally skip upstreamed commits
      fetch-pack: return enum from process_acks()
      fetch-pack: in protocol v2, in_vain only after ACK
      fetch-pack: in protocol v2, reset in_vain upon ACK
      commit-graph: avoid memory leaks
      t5500: count objects through stderr, not trace

Jorge Lopez Silva (2):
      http: add client cert support for HTTPS proxies
      http: add environment variable support for HTTPS proxies

Josh Steadmon (1):
      trace2: teach Git to log environment variables

Julien Moutinho (1):
      gitweb: fix UTF-8 encoding when using CGI::Fast

Junio C Hamano (26):
      rebase: --fork-point regression fix
      describe: force long format for a name based on a mislocated tag
      update how-to-maintain-git
      parse-options: teach "git cmd -h" to show alias as alias
      clone: reorder --recursive/--recurse-submodules
      log: give --[no-]use-mailmap a more sensible synonym --[no-]mailmap
      separate tar.* config to its own source file
      The first batch post 2.26 cycle
      The second batch post 2.26 cycle
      t/README: suggest how to leave test early with failure
      CodingGuidelines: allow ${#posix} == strlen($posix)
      sha1-name: do not assume that the ref store is initialized
      receive-pack: compilation fix
      The third batch
      The fourth batch
      credential-store: document the file format a bit more
      Revert "commit-graph.c: introduce '--[no-]check-oids'"
      The fifth batch
      The sixth batch
      The seventh batch
      auto-gc: extract a reusable helper from "git fetch"
      auto-gc: pass --quiet down from am, commit, merge and rebase
      CodingGuidelines: do not ==/!= compare with 0 or '\0' or NULL
      The eighth batch
      The ninth batch
      Git 2.27-rc0

Li Xuejiang (1):
      git-submodule.sh: setup uninitialized variables

Martin Ågren (9):
      Doc: drop support for docbook-xsl before 1.71.1
      Doc: drop support for docbook-xsl before 1.72.0
      Doc: drop support for docbook-xsl before 1.73.0
      manpage-bold-literal.xsl: stop using git.docbook.backslash
      manpage-normal.xsl: fold in manpage-base.xsl
      INSTALL: drop support for docbook-xsl before 1.74
      user-manual.conf: don't specify [listingblock]
      config.txt: move closing "----" to cover entire listing
      merge: use skip_prefix to parse config key

Matheus Tavares (3):
      test-lib: allow short options to be bundled
      grep: follow conventions for printing paths w/ unusual chars
      config doc: fix reference to config.worktree info

Matthias Aßhauer (1):
      mingw: use modern strftime implementation if possible

Michael F. Schönitzer (1):
      docs: fix minor glitch in illustration

Nathan Sanders (1):
      mingw: cope with the Isilon network file system

Patrick Steinhardt (9):
      refs: fix segfault when aborting empty transaction
      git-update-ref.txt: add missing word
      strbuf: provide function to append whole lines
      update-ref: organize commands in an array
      update-ref: drop unused argument for `parse_refname`
      update-ref: pass end pointer instead of strbuf
      update-ref: move transaction handling into `update_refs_stdin()`
      update-ref: read commands in a line-wise fashion
      update-ref: implement interactive transaction handling

Philippe Blain (9):
      t7112: remove mention of KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTED
      t/lib-submodule-update: remove outdated test description
      t/lib-submodule-update: move a test to the right section
      unpack-trees: remove outdated description for verify_clean_submodule
      unpack-trees: check for missing submodule directory in merged_entry
      t/lib-submodule-update: add test removing nested submodules
      git-rebase.txt: fix typo
      pull doc: refer to a specific section in 'fetch' doc
      pull doc: correct outdated description of an example

Phillip Wood (6):
      t3404: use test_cmp_rev
      cherry-pick: check commit error messages
      sequencer: write CHERRY_PICK_HEAD for reword and edit
      commit: use enum value for multiple cherry-picks
      commit: encapsulate determine_whence() for sequencer
      commit: give correct advice for empty commit during a rebase

René Scharfe (4):
      pull: document more passthru options
      pull: remove --update-head-ok from documentation
      pull: pass documented fetch options on
      fsck: report non-consecutive duplicate names in trees

SZEDER Gábor (4):
      ci: use python3 in linux-gcc and osx-gcc and python2 elsewhere
      commit-slab: clarify slabname##_peek()'s return value
      ci: make MAKEFLAGS available inside the Docker container in the Linux32 job
      completion: offer '--(no-)patch' among 'git log' options

Shourya Shukla (4):
      submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb'
      gitfaq: files in .gitignore are tracked
      gitfaq: fetching and pulling a repository
      submodule: port subcommand 'set-url' from shell to C

Son Luong Ngoc (1):
      midx: teach "git multi-pack-index repack" honor "git repack" configurations

Taylor Blau (24):
      t/helper/test-read-graph.c: support commit-graph chains
      builtin/commit-graph.c: support for '--split[=<strategy>]'
      builtin/commit-graph.c: introduce split strategy 'no-merge'
      builtin/commit-graph.c: introduce split strategy 'replace'
      oidset: introduce 'oidset_size'
      commit-graph.h: replace 'commit_hex' with 'commits'
      commit-graph.c: introduce '--[no-]check-oids'
      diff-tree.c: load notes machinery when required
      commit-graph.c: don't use discarded graph_name in error
      t/test-lib.sh: make ULIMIT_FILE_DESCRIPTORS available to tests
      commit-graph.c: gracefully handle file descriptor exhaustion
      t5537: use test_write_lines and indented heredocs for readability
      shallow.c: use '{commit,rollback}_shallow_file'
      tempfile.c: introduce 'create_tempfile_mode'
      lockfile.c: introduce 'hold_lock_file_for_update_mode'
      commit-graph.c: write non-split graphs as read-only
      commit-graph.c: ensure graph layers respect core.sharedRepository
      commit-graph.c: make 'commit-graph-chain's read-only
      commit: make 'commit_graft_pos' non-static
      shallow: extract a header file for shallow-related functions
      shallow.h: document '{commit,rollback}_shallow_file'
      shallow: use struct 'shallow_lock' for additional safety
      pack-bitmap.c: make object filtering functions generic
      pack-bitmap.c: support 'tree:0' filtering

Terry Moschou (1):
      complete: zsh: add missing sub cmd completion candidates

Thomas Gummerer (2):
      stash: get git_stash_config at the top level
      stash: remove the stash.useBuiltin setting

Vasil Dimov (2):
      range-diff: fix a crash in parsing git-log output
      range-diff: avoid negative string precision

Yang Zhao (12):
      git-p4: make python2.7 the oldest supported version
      git-p4: remove string type aliasing
      git-p4: encode/decode communication with p4 for python3
      git-p4: encode/decode communication with git for python3
      git-p4: convert path to unicode before processing them
      git-p4: open .gitp4-usercache.txt in text mode
      git-p4: use marshal format version 2 when sending to p4
      git-p4: fix freezing while waiting for fast-import progress
      git-p4: use functools.reduce instead of reduce
      git-p4: use dict.items() iteration for python3 compatibility
      git-p4: simplify regex pattern generation for parsing diff-tree
      git-p4: use python3's input() everywhere

brian m. carlson (34):
      builtin/pack-objects: make hash agnostic
      hash: implement and use a context cloning function
      hex: introduce parsing variants taking hash algorithms
      hex: add functions to parse hex object IDs in any algorithm
      repository: require a build flag to use SHA-256
      t: use hash-specific lookup tables to define test constants
      t6300: abstract away SHA-1-specific constants
      t6300: make hash algorithm independent
      t/helper/test-dump-split-index: initialize git repository
      t/helper: initialize repository if necessary
      t/helper: make repository tests hash independent
      setup: allow check_repository_format to read repository format
      builtin/init-db: allow specifying hash algorithm on command line
      builtin/init-db: add environment variable for new repo hash
      init-db: move writing repo version into a function
      worktree: allow repository version 1
      commit: use expected signature header for SHA-256
      fast-import: permit reading multiple marks files
      fast-import: add helper function for inserting mark object entries
      fast-import: make find_marks work on any mark set
      fast-import: add a generic function to iterate over marks
      fast-import: add options for rewriting submodules
      builtin/checkout: pass branch info down to checkout_worktree
      convert: permit passing additional metadata to filter processes
      convert: provide additional metadata to filters
      builtin/checkout: compute checkout metadata for checkouts
      builtin/clone: compute checkout metadata for clones
      builtin/rebase: compute checkout metadata for rebases
      builtin/reset: compute checkout metadata for reset
      t0021: test filter metadata for additional cases
      docs: add a FAQ
      builtin/receive-pack: use constant-time comparison for HMAC value
      credential: fix matching URLs with multiple levels in path
      docs: document credential.helper allowed values

luciano.rocha@booking.com (1):
      freshen_file(): use NULL `times' for implicit current-time

Đoàn Trần Công Danh (34):
      t4061: use POSIX compliant regex(7)
      test-lib-functions: test_cmp: eval $GIT_TEST_CMP
      t5003: drop the subshell in test_lazy_prereq
      t5003: skip conversion test if unzip -a is unavailable
      t5616: use rev-parse instead to get HEAD's object_id
      t7063: drop non-POSIX argument "-ls" from find(1)
      t4124: tweak test so that non-compliant diff(1) can also be used
      t5703: feed raw data into test-tool unpack-sideband
      rebase.c: honour --no-gpg-sign
      cherry-pick/revert: honour --no-gpg-sign in all case
      Documentation: document am --no-gpg-sign
      Documentation: reword commit --no-gpg-sign
      Documentation: merge commit-tree --[no-]gpg-sign
      Documentation: document merge option --no-gpg-sign
      ci/lib-docker: preserve required environment variables
      ci/linux32: parameterise command to switch arch
      ci: refactor docker runner script
      ci/linux32: libify install-dependencies step
      travis: build and test on Linux with musl libc and busybox
      ci/lib: set TERM environment variable if not exist
      ci: explicit install all required packages
      ci: configure GitHub Actions for CI/PR
      t4254: merge 2 steps of a single test
      mailinfo.c: avoid strlen on strings that can contains NUL
      mailinfo: disallow NUL character in mail's header
      date.c: s/is_date/set_date/
      date.c: validate and set time in a helper function
      date.c: skip fractional second part of ISO-8601
      date.c: allow compact version of ISO-8601 datetime
      test-parse-pathspec-file.c: s/0/NULL/ for pointer type
      compat/regex: move stdlib.h up in inclusion chain
      graph.c: limit linkage of internal variable
      progress.c: silence cgcc suggestion about internal linkage
      bloom: fix `make sparse` warning

마누엘 (1):
      interactive: explicitly `fflush` stdout before expecting input


Version v2.26.3; changes since v2.26.2:
---------------------------------------

Johannes Schindelin (11):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4
      Git 2.25.5
      Git 2.26.3

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.26.2; changes since v2.26.1:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.26.1; changes since v2.26.0:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.26.0; changes since v2.26.0-rc2:
-------------------------------------------

Alessandro Menti (2):
      l10n: it.po: update the Italian translation for Git 2.26.0 round 1
      l10n: it.po: update the Italian translation for Git 2.26.0 round 2

Alexander Shopov (2):
      l10n: bg.po: Updated Bulgarian translation (4835t)
      l10n: bg.po: Updated Bulgarian translation (4839t)

Beat Bolli (1):
      unicode: update the width tables to Unicode 13.0

Christian Stimming (3):
      git-gui: update pot template and German translation to current source code
      git-gui: extend translation glossary template with more terms
      git-gui: update German translation

Christopher Diaz Riveros (1):
      l10n: es: 2.26.0 round#2

Elijah Newren (1):
      RelNotes/2.26.0: fix various typos

Emir Sarı (5):
      l10n: tr: Add Turkish translation team info
      l10n: tr: Add Turkish translations
      l10n: tr: Add glossary for Turkish translations
      l10n: tr: v2.26.0 round 2
      l10n: tr: Fix a couple of ambiguities

Fangyi Zhou (1):
      l10n: zh_CN: Revise v2.26.0 translation

Jean-Noël Avila (2):
      l10n: fr v2.26.0 rnd1
      l10n: fr : v2.26.0 rnd 2

Jiang Xin (4):
      l10n: git.pot: v2.26.0 round 1 (73 new, 38 removed)
      l10n: git.pot: v2.26.0 round 2 (7 new, 2 removed)
      l10n: zh_CN: for git v2.26.0 l10n round 1 and 2
      l10n: tr.po: change file mode to 644

Jordi Mas (3):
      l10n: Update Catalan translation
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (2):
      Git 2.25.2
      Git 2.26

Luke Bonanomi (1):
      git-gui--askpass: coerce answers to UTF-8 on Windows

Matthias Rüster (1):
      l10n: de.po: Update German translation for Git 2.26.0

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (4835t0f0u)
      l10n: sv.po: Update Swedish translation (4839t0f0u)

Pratyush Yadav (4):
      git-gui: add missing close bracket
      git-gui: fix error popup when doing blame -> "Show History Context"
      git-gui: reduce Tcl version requirement from 8.6 to 8.5
      git-gui: create a new namespace for chord script evaluation

Ralf Thielow (1):
      l10n: de.po: add missing space

Trần Ngọc Quân (1):
      l10n: vi(4839t): Updated Vietnamese translation for v2.26.0

Yi-Jyun Pan (2):
      l10n: zh_TW.po: v2.26.0 round 1 (11 untranslated)
      l10n: zh_TW.po: v2.26.0 round 2 (0 untranslated)

brian m. carlson (1):
      t3419: prevent failure when run with EXPENSIVE

Đoàn Trần Công Danh (1):
      l10n: vi: fix translation + grammar


Version v2.26.0-rc2; changes since v2.26.0-rc1:
-----------------------------------------------

Elijah Newren (3):
      sequencer: clear state upon dropping a become-empty commit
      git-rebase.txt: highlight backend differences with commit rewording
      t6022, t6046: fix flaky files-are-updated checks

Emily Shaffer (1):
      prefix_path: show gitdir if worktree unavailable

Jeff King (1):
      remote: drop "explicit" parameter from remote_ref_for_branch()

Jiang Xin (1):
      i18n: unmark a message in rebase.c

Junio C Hamano (3):
      Documentation: clarify that `-h` alone stands for `help`
      Hopefully the final batch before -rc2
      Git 2.26-rc2

Martin Ågren (1):
      t1091: don't grep for `strerror()` string


Version v2.26.0-rc1; changes since v2.26.0-rc0:
-----------------------------------------------

Alexandr Miloslavskiy (9):
      doc: rm: synchronize <pathspec> description
      rm: support the --pathspec-from-file option
      doc: stash: split options from description (1)
      doc: stash: split options from description (2)
      doc: stash: document more options
      doc: stash: synchronize <pathspec> description
      stash: eliminate crude option parsing
      stash push: support the --pathspec-from-file option
      mingw: workaround for hangs when sending STDIN

Elijah Newren (6):
      merge-recursive: apply collision handling unification to recursive case
      t602[1236], t6034: modernize test formatting
      t6020, t6022, t6035: update merge tests to use test helper functions
      t3035: prefer test_must_fail to bash negation for git commands
      t6022, t6046: test expected behavior instead of testing a proxy for it
      t6020: new test with interleaved lexicographic ordering of directories

Harald van Dijk (1):
      show_one_mergetag: print non-parent in hex form.

Jeff King (1):
      config.mak.dev: re-enable -Wformat-zero-length

Junio C Hamano (1):
      Git 2.26-rc1

Kir Kolyshkin (1):
      completion: add diff --color-moved[-ws]

Paolo Bonzini (5):
      parse-options: add testcases for OPT_CMDMODE()
      parse-options: convert "command mode" to a flag
      am: convert "resume" variable to a struct
      am: support --show-current-patch=raw as a synonym for--show-current-patch
      am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch

Ralf Thielow (1):
      rebase-interactive.c: silence format-zero-length warnings

Rasmus Jonsson (1):
      t1050: replace test -f with test_path_is_file

René Scharfe (1):
      remote-curl: show progress for fetches over dumb HTTP


Version v2.26.0-rc0; changes since v2.25.5:
-------------------------------------------

Abhishek Kumar (2):
      lib-log-graph: consolidate test_cmp_graph logic
      lib-log-graph: consolidate colored graph cmp logic

Alban Gruin (4):
      rebase -i: stop checking out the tip of the branch to rebase
      sequencer: move check_todo_list_from_file() to rebase-interactive.c
      rebase-interactive: warn if commit is dropped with `rebase --edit-todo'
      builtin/rebase: remove a call to get_oid() on `options.switch_to'

Alexandr Miloslavskiy (5):
      parse_branchname_arg(): extract part as new function
      checkout: don't revert file on ambiguous tracking branches
      t: add tests for error conditions with --pathspec-from-file
      t: fix quotes tests for --pathspec-from-file
      t: directly test parse_pathspec_file()

Benno Evers (1):
      describe: don't abort too early when searching tags

Bert Wesarg (6):
      pull --rebase/remote rename: document and honor single-letter abbreviations rebase types
      remote: clean-up by returning early to avoid one indentation
      remote: clean-up config callback
      remote rename/remove: handle branch.<name>.pushRemote config values
      config: provide access to the current line number
      remote rename/remove: gently handle remote.pushDefault config

Denton Liu (32):
      t/lib-git-p4: use test_path_is_missing()
      t0000: replace test_must_fail with run_sub_test_lib_test_err()
      t0003: use named parameters in attr_check()
      t0003: use test_must_be_empty()
      t0003: don't use `test_must_fail attr_check`
      t0020: don't use `test_must_fail has_cr`
      t0020: use ! check_packed_refs_marked
      t1306: convert `test_might_fail rm` to `rm -f`
      t1307: reorder `nongit test_must_fail`
      t1409: let sed open its own input file
      t1409: use test_path_is_missing()
      t1501: remove use of `test_might_fail cp`
      t1507: stop losing return codes of git commands
      t1507: run commands within test_expect_success
      t1507: inline full_name()
      contrib/credential/netrc: make PERL_PATH configurable
      contrib/credential/netrc: work outside a repo
      t2018: remove trailing space from test description
      t2018: add space between function name and ()
      t2018: improve style of if-statement
      t2018: be more discerning when checking for expected exit codes
      t2018: teach do_checkout() to accept `!` arg
      t2018: don't lose return code of git commands
      t2018: replace "sha" with "oid"
      t3030: use test_path_is_missing()
      t3310: extract common notes_merge_files_gone()
      t3415: stop losing return codes of git commands
      t3415: increase granularity of test_auto_{fixup,squash}()
      t3419: stop losing return code of git command
      t3507: fix indentation
      t3507: use test_path_is_missing()
      t4124: only mark git command with test_must_fail

Derrick Stolee (21):
      graph: add test to demonstrate horizontal line bug
      graph: fix collapse of multiple edges
      t1091: use check_files to reduce boilerplate
      t1091: improve here-docs
      sparse-checkout: create leading directories
      clone: fix --sparse option with URLs
      sparse-checkout: cone mode does not recognize "**"
      sparse-checkout: detect short patterns
      sparse-checkout: warn on globs in cone patterns
      sparse-checkout: properly match escaped characters
      sparse-checkout: write escaped patterns in cone mode
      sparse-checkout: unquote C-style strings over --stdin
      sparse-checkout: use C-style quotes in 'list' subcommand
      sparse-checkout: escape all glob characters on write
      sparse-checkout: improve docs around 'set' in cone mode
      sparse-checkout: fix cone mode behavior mismatch
      sparse-checkout: extract add_patterns_from_input()
      sparse-checkout: extract pattern update from 'set' subcommand
      sparse-checkout: create 'add' subcommand
      sparse-checkout: work with Windows paths
      sparse-checkout: allow one-character directories in cone mode

Elijah Newren (20):
      git-rebase.txt: update description of --allow-empty-message
      t3404: directly test the behavior of interest
      rebase (interactive-backend): make --keep-empty the default
      rebase (interactive-backend): fix handling of commits that become empty
      t3406: simplify an already simple test
      rebase, sequencer: remove the broken GIT_QUIET handling
      rebase: make sure to pass along the quiet flag to the sequencer
      rebase: fix handling of restrict_revision
      t3432: make these tests work with either am or merge backends
      rebase: allow more types of rebases to fast-forward
      git-rebase.txt: add more details about behavioral differences of backends
      rebase: move incompatibility checks between backend options a bit earlier
      rebase: add an --am option
      git-prompt: change the prompt for interactive-based rebases
      rebase: drop '-i' from the reflog for interactive-based rebases
      rebase tests: mark tests specific to the am-backend with --am
      rebase tests: repeat some tests using the merge backend instead of am
      rebase: make the backend configurable via config setting
      rebase: change the default backend from "am" to "merge"
      rebase: rename the two primary rebase backends

Emily Shaffer (5):
      fetch: emphasize failure during submodule fetch
      MyFirstContribution: add avenues for getting help
      MyFirstContribution: rephrase contact info
      submodule--helper: use C99 named initializer
      clone: pass --single-branch during --recurse-submodules

Eric Sunshine (6):
      t3400: make test clean up after itself
      rebase: refuse to switch to branch already checked out elsewhere
      worktree: drop unused code from get_main_worktree()
      worktree: improve find_worktree() documentation
      worktree: add utility to find worktree by pathname
      worktree: don't allow "add" validation to be fooled by suffix matching

Eyal Soha (3):
      color.c: refactor color_output arguments
      color.c: support bright aixterm colors
      color.c: alias RGB colors 8-15 to aixterm colors

Hans Jerry Illikainen (2):
      editorconfig: indent text files with tabs
      gpg-interface: add minTrustLevel as a configuration option

Hariom Verma (4):
      get_main_worktree(): allow it to be called in the Git directory
      t5509: use a bare repository for test push target
      receive.denyCurrentBranch: respect all worktrees
      t2402: test worktree path when called in .git directory

Heba Waly (3):
      add: use advise function to display hints
      git: update documentation for --git-dir
      add: change advice config variables used by the add API

Jeff King (52):
      builtin/pack-objects: report reused packfile objects
      packfile: expose get_delta_base()
      ewah/bitmap: introduce bitmap_word_alloc()
      pack-bitmap: introduce bitmap_walk_contains()
      pack-bitmap: uninteresting oid can be outside bitmapped packfile
      pack-bitmap: simplify bitmap_has_oid_in_uninteresting()
      csum-file: introduce hashfile_total()
      pack-objects: introduce pack.allowPackReuse
      builtin/pack-objects: introduce obj_is_packed()
      pack-objects: improve partial packfile reuse
      pack-objects: add checks for duplicate objects
      pack-bitmap: don't rely on bitmap_git->reuse_objects
      sparse-checkout: fix documentation typo for core.sparseCheckoutCone
      verify_filename(): handle backslashes in "wildcards are pathspecs" rule
      t1400: avoid "test" string comparisons
      t1506: drop space after redirection operator
      doc: drop "explicitly given" from push.default description
      sha1-name: mark get_oid() error messages for translation
      normalize_path_copy(): document "dst" size expectations
      walker_fetch(): avoid raw array length computation
      traverse_trees(): use stack array for name entries
      diff: move diff.wsErrorHighlight to "basic" config
      tree-walk.c: break circular dependency with unpack-trees
      mailinfo: treat header values as C strings
      mailinfo: simplify parsing of header values
      mailinfo: be more liberal with header whitespace
      mailinfo: factor out some repeated header handling
      pack-bitmap: factor out type iterator initialization
      pack-bitmap: fix leak of haves/wants object lists
      rev-list: fallback to non-bitmap traversal when filtering
      pack-bitmap: refuse to do a bitmap traversal with pathspecs
      rev-list: factor out bitmap-optimized routines
      rev-list: make --count work with --objects
      rev-list: allow bitmaps when counting objects
      t5310: factor out bitmap traversal comparison
      rev-list: allow commit-only bitmap traversals
      pack-bitmap: basic noop bitmap filter infrastructure
      rev-list: use bitmap filters for traversal
      bitmap: add bitmap_unset() function
      pack-bitmap: implement BLOB_NONE filtering
      pack-bitmap: implement BLOB_LIMIT filtering
      pack-objects: support filters with bitmaps
      nth_packed_object_oid(): use customary integer return
      pack-objects: read delta base oid into object_id struct
      pack-objects: convert oe_set_delta_ext() to use object_id
      pack-objects: use object_id struct in pack-reuse code
      pack-bitmap: use object_id when loading on-disk bitmaps
      pack-check: convert "internal error" die to a BUG()
      pack-check: push oid lookup into loop
      packed_object_info(): use object_id for returning delta base
      packed_object_info(): use object_id internally for delta base
      packfile: drop nth_packed_object_sha1()

Johannes Schindelin (19):
      built-in add -p: prepare for patch modes other than "stage"
      built-in add -p: implement the "stash" and "reset" patch modes
      legacy stash -p: respect the add.interactive.usebuiltin setting
      built-in stash: use the built-in `git add -p` if so configured
      built-in add -p: implement the "checkout" patch modes
      built-in add -p: implement the "worktree" patch modes
      commit --interactive: make it work with the built-in `add -i`
      t3701: adjust difffilter test
      built-in add -p: support interactive.diffFilter
      built-in add -p: handle diff.algorithm
      terminal: make the code of disable_echo() reusable
      terminal: accommodate Git for Windows' default terminal
      terminal: add a new function to read a single keystroke
      built-in add -p: respect the `interactive.singlekey` config setting
      built-in add -p: handle Escape sequences in interactive.singlekey mode
      built-in add -p: handle Escape sequences more efficiently
      ci: include the built-in `git add -i` in the `linux-gcc` job
      t9001, t9116: avoid pipes
      t5537: adjust test_oid label

Johannes Sixt (1):
      t3504: do check for conflict marker after failed cherry-pick

Jonathan Nieder (9):
      sha1-file: document how to use pretend_object_file
      fetch test: avoid use of "VAR= cmd" with a shell function
      t/check-non-portable-shell: detect "FOO= shell_func", too
      fetch test: mark test of "skipping" haves as v0-only
      fetch test: use more robust test for filtered objects
      config doc: protocol.version is not experimental
      test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriate
      protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSION
      fetch: default to protocol version 2

Jonathan Tan (2):
      connected: verify promisor-ness of partial clone
      fetch: forgo full connectivity check if --filter

Junio C Hamano (11):
      The first batch post 2.25 cycle
      The second batch
      C: use skip_prefix() to avoid hardcoded string length
      The third batch for 2.26
      The fourth batch for 2.26
      The fifth batch for 2.26
      The sixth batch for 2.26
      rev-list --count: comment on the use of count_right++
      The seventh batch for 2.26
      The eighth batch for 2.26
      Git 2.26-rc0

Kevin Willford (4):
      fsmonitor: change last update timestamp on the index_state to opaque token
      fsmonitor: handle version 2 of the hooks that will use opaque token
      fsmonitor: add fsmonitor hook scripts for version 2
      fsmonitor: update documentation for hook version and watchman hooks

Kyle Meyer (1):
      submodule add: show 'add --dry-run' stderr when aborting

Lucius Hu (1):
      templates: fix deprecated type option `--bool`

Luke Diamand (7):
      git-p4: make closeStreams() idempotent
      git-p4: add P4CommandException to report errors talking to Perforce
      git-p4: disable some pylint warnings, to get pylint output to something manageable
      git-p4: create helper function importRevisions()
      git-p4: cleanup better on error exit
      git-p4: check for access to remote host earlier
      git-p4: avoid leak of file handle when cloning

Martin Ågren (4):
      name-rev: rewrite create_or_update_name()
      t4117: check for files using `test_path_is_file`
      t9810: drop debug `cat` call
      t: drop debug `cat` calls

Matheus Tavares (21):
      grep: fix race conditions on userdiff calls
      grep: fix race conditions at grep_submodule()
      grep: fix racy calls in grep_objects()
      replace-object: make replace operations thread-safe
      object-store: allow threaded access to object reading
      grep: replace grep_read_mutex by internal obj read lock
      submodule-config: add skip_if_read option to repo_read_gitmodules()
      grep: allow submodule functions to run in parallel
      grep: protect packed_git [re-]initialization
      grep: re-enable threads in non-worktree case
      grep: move driver pre-load out of critical section
      grep: use no. of cores as the default no. of threads
      doc: sparse-checkout: mention --cone option
      completion: add support for sparse-checkout
      diff: make diff_populate_filespec() honor its repo argument
      cache-tree: use given repo's hash_algo at verify_one()
      pack-check: use given repo's hash_algo at verify_packfile()
      streaming: allow open_istream() to handle any repo
      sha1-file: pass git_hash_algo to write_object_file_prepare()
      sha1-file: pass git_hash_algo to hash_object_file()
      sha1-file: allow check_object_signature() to handle any repo

Matthew Rogers (10):
      config: fix typo in variable name
      t1300: fix over-indented HERE-DOCs
      t1300: create custom config file without special characters
      config: make scope_name non-static and rename it
      config: split repo scope to local and worktree
      config: clarify meaning of command line scoping
      config: preserve scope in do_git_config_sequence
      config: teach git_config_source to remember its scope
      submodule-config: add subomdule config scope
      config: add '--show-scope' to print the scope of a config value

Miriam Rubio (3):
      bisect--helper: convert `vocab_*` char pointers to char arrays
      bisect: use the standard 'if (!var)' way to check for 0
      bisect: add enum to represent bisect returning codes

Peter Kaestle (3):
      t7400: add a testcase for submodule status on empty dirs
      submodule: fix status of initialized but not cloned submodules
      t7400: testcase for submodule status on unregistered inner git repos

Pranit Bauva (7):
      bisect--helper: return error codes from `cmd_bisect__helper()`
      bisect: libify `exit_if_skipped_commits` to `error_if_skipped*` and its dependents
      bisect: libify `bisect_checkout`
      bisect: libify `check_merge_bases` and its dependents
      bisect: libify `check_good_are_ancestors_of_bad` and its dependents
      bisect: libify `handle_bad_merge_base` and its dependents
      bisect: libify `bisect_next_all`

René Scharfe (20):
      name-rev: remove unused typedef
      name-rev: respect const qualifier
      name-rev: don't leak path copy in name_ref()
      name-rev: don't _peek() in create_or_update_name()
      name-rev: put struct rev_name into commit slab
      name-rev: factor out get_parent_name()
      name-rev: pre-size buffer in get_parent_name()
      name-rev: generate name strings only if they are better
      name-rev: release unused name strings
      name-rev: sort tip names before applying
      strbuf: add and use strbuf_insertstr()
      mailinfo: don't insert header prefix for handle_content_type()
      parse-options: use COPY_ARRAY in parse_options_concat()
      parse-options: factor out parse_options_count()
      parse-options: const parse_options_concat() parameters
      parse-options: simplify parse_options_dup()
      quote: use isalnum() to check for alphanumeric characters
      use strpbrk(3) to search for characters from a given set
      blame: provide type of fingerprints pointer
      commit-graph: use progress title directly

SZEDER Gábor (6):
      t9902-completion: add tests for the __git_find_on_cmdline() helper
      completion: clean up the __git_find_on_cmdline() helper function
      completion: return the index of found word from __git_find_on_cmdline()
      completion: simplify completing 'git worktree' subcommands and options
      completion: list existing working trees for 'git worktree' subcommands
      completion: list paths and refs for 'git worktree add'

Shourya Shukla (2):
      t6025: modernize style
      t6025: use helpers to replace test -f <path>

Tanushree Tumane (2):
      bisect--helper: change `retval` to `res`
      bisect--helper: introduce new `decide_next()` function

Taylor Blau (5):
      t5318: don't pass non-object directory to '--object-dir'
      commit-graph.h: store an odb in 'struct write_commit_graph_context'
      commit-graph.h: store object directory in 'struct commit_graph'
      commit-graph.c: remove path normalization, comparison
      commit-graph.h: use odb in 'load_commit_graph_one_fd_st'

brian m. carlson (46):
      t4054: make hash-size independent
      t4066: compute index line in diffs
      t4134: compute appropriate length constant
      t4200: make hash size independent
      t4202: abstract away SHA-1-specific constants
      t4204: make hash size independent
      t4300: abstract away SHA-1-specific constants
      t5318: update for SHA-256
      t5319: change invalid offset for SHA-256 compatibility
      t5319: make test work with SHA-256
      t5324: make hash size independent
      t5504: make hash algorithm independent
      t5510: make hash size independent
      t5512: abstract away SHA-1-specific constants
      t5530: compute results based on object length
      t5537: make hash size independent
      t5540: make hash size independent
      t5562: use $ZERO_OID
      t5601: switch into repository to hash object
      t5604: make hash independent
      t/lib-pack: support SHA-256
      t3206: make hash size independent
      t3308: make test work with SHA-256
      t3309: make test work with SHA-256
      t3310: make test work with SHA-256
      t3311: make test work with SHA-256
      t4013: make test hash independent
      t4211: move SHA-1-specific test cases into a directory
      t4211: add test cases for SHA-256
      t4060: make test work with SHA-256
      t5302: make hash size independent
      t5309: make test hash independent
      t5313: make test hash independent
      t5321: make test hash independent
      t5515: make test hash independent
      t5318: update for SHA-256
      t5607: make hash size independent
      t5703: make test work with SHA-256
      t6000: abstract away SHA-1-specific constants
      t6006: make hash size independent
      t6024: update for SHA-256
      mailmap: add an additional email address for brian m. carlson
      t1300: add test for urlmatch with multiple wildcards
      t0300: add tests for some additional cases
      credential: use the last matching username in the config
      credential: allow wildcard patterns when matching config


Version v2.25.5; changes since v2.25.4:
---------------------------------------

Johannes Schindelin (10):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4
      Git 2.25.5

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.25.4; changes since v2.25.3:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.25.3; changes since v2.25.2:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.25.2; changes since v2.25.1:
---------------------------------------

Alexandr Miloslavskiy (1):
      mingw: workaround for hangs when sending STDIN

Beat Bolli (1):
      unicode: update the width tables to Unicode 13.0

David Turner (1):
      git rm submodule: succeed if .gitmodules index stat info is zero

Derrick Stolee (2):
      partial-clone: demonstrate bugs in partial fetch
      partial-clone: avoid fetching when looking for objects

Elijah Newren (4):
      unpack-trees: exit check_updates() early if updates are not wanted
      check-ignore: fix documentation and implementation to match
      t3433: new rebase testcase documenting a stat-dirty-like failure
      merge-recursive: fix the refresh logic in update_file_flags

Emily Shaffer (2):
      prefix_path: show gitdir when arg is outside repo
      prefix_path: show gitdir if worktree unavailable

Harald van Dijk (1):
      show_one_mergetag: print non-parent in hex form.

Jeff King (9):
      merge-recursive: silence -Wxor-used-as-pow warning
      avoid computing zero offsets from NULL pointer
      xdiff: avoid computing non-zero offset from NULL pointer
      obstack: avoid computing offsets from NULL pointer
      index-pack: downgrade twice-resolved REF_DELTA to die()
      doc: move credential helper info into gitcredentials(7)
      doc/config/push: use longer "--" line for preformatted example
      doc-diff: use single-colon rule in rendering Makefile
      run-command.h: fix mis-indented struct member

Johan Herland (2):
      t3305: check notes fanout more carefully and robustly
      notes.c: fix off-by-one error when decreasing notes fanout

Johannes Schindelin (11):
      built-in add -i: do not try to `patch`/`diff` an empty list of files
      built-in add -i: accept open-ended ranges again
      parse_insn_line(): improve error message when parsing failed
      rebase -i: re-fix short SHA-1 collision
      rebase -i: also avoid SHA-1 collisions with missingCommitsCheck
      tests: fix --write-junit-xml with subshells
      t5580: test cloning without file://, test fetching via UNC paths
      mingw: add a helper function to attach GDB to the current process
      t/lib-httpd: avoid using macOS' sed
      ci: prevent `perforce` from being quarantined
      Azure Pipeline: switch to the latest agent pools

Junio C Hamano (4):
      merge-recursive: use subtraction to flip stage
      Documentation: clarify that `-h` alone stands for `help`
      Revert "gpg-interface: prefer check_signature() for GPG verification"
      Git 2.25.2

Philippe Blain (4):
      t7410: rename to t2405-worktree-submodule.sh
      t2405: use git -C and test_commit -C instead of subshells
      t2405: clarify test descriptions and simplify test
      submodule.c: use get_git_dir() instead of get_git_common_dir()


Version v2.25.1; changes since v2.25.0:
---------------------------------------

Denton Liu (2):
      .mailmap: fix erroneous authorship for Johannes Schindelin
      .mailmap: map Yi-Jyun Pan's email

Derrick Stolee (3):
      unpack-trees: correctly compute result count
      clean: demonstrate a bug with pathspecs
      fetch: document and test --refmap=""

Elijah Newren (2):
      string-list: note in docs that callers can specify sorting function
      dir: treat_leading_path() and read_directory_recursive(), round 2

Emily Shaffer (2):
      unpack-trees: watch for out-of-range index position
      submodule: add newline on invalid submodule error

Heba Waly (2):
      commit: honor advice.statusHints when rejecting an empty commit
      doc/gitcore-tutorial: fix prose to match example command

Jacques Bodin-Hullin (1):
      parse-options: lose an unnecessary space in an error message

Jeff King (7):
      restore: invalidate cache-tree when removing entries with --staged
      transport: don't flush when disconnecting stateless-rpc helper
      dir: restructure in a way to avoid passing around a struct dirent
      dir: point treat_leading_path() warning to the right place
      Makefile: use compat regex with SANITIZE=address
      t4018: drop "debugging" cat from hunk-header tests
      t7800: don't rely on reuse_worktree_file()

Johannes Berg (1):
      pack-format: correct multi-pack-index description

Johannes Schindelin (3):
      msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x
      ci: ignore rubygems warning in the "Documentation" job
      convert: fix typo

Jonathan Tan (2):
      sha1-file: remove OBJECT_INFO_SKIP_CACHED
      t5616: make robust to delta base change

Junio C Hamano (2):
      .mailmap: fix GGG authoship screwup
      Git 2.25.1

Kyle Meyer (1):
      submodule foreach: replace $path with $sm_path in example

Martin Ågren (2):
      git-filter-branch.txt: wrap "maths" notation in backticks
      diff-options.txt: avoid "regex" overload in example

Masaya Suzuki (1):
      doc: describe Git bundle format

Philippe Blain (1):
      grep: ignore --recurse-submodules if --no-index is given

Ralf Thielow (1):
      submodule.c: mark more strings for translation

brian m. carlson (7):
      run-command: avoid undefined behavior in exists_in_PATH
      docs: use "currently" for the present time
      doc: move author and committer information to git-commit(1)
      docs: expand on possible and recommended user config options
      doc: provide guidance on user.name format
      doc: dissuade users from trying to ignore tracked files
      docs: mention when increasing http.postBuffer is valuable


Version v2.25.0; changes since v2.25.0-rc2:
-------------------------------------------

Alessandro Menti (1):
      l10n: it.po: update the Italian translation for Git 2.25.0

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (4800t)

Christopher Diaz Riveros (1):
      l10n: es: 2.25.0 round #1

Jean-Noël Avila (1):
      l10n: fr.po v2.25.0 rnd 1

Jiang Xin (2):
      l10n: git.pot: v2.25.0 round 1 (119 new, 13 removed)
      l10n: zh_CN: for git v2.25.0 l10n round 1

Johannes Schindelin (1):
      mingw: safeguard better against backslashes in file names

Jordi Mas (2):
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (2):
      Revert "Merge branch 'ra/rebase-i-more-options'"
      Git 2.25

Martin Ågren (1):
      config/advice.txt: fix description list separator

Matthias Rüster (1):
      l10n: de.po: Update German translation v2.25.0 round 1

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (4800t0f0u)

Thomas Braun (1):
      l10n: de.po: Reword generation numbers

Trần Ngọc Quân (1):
      l10n: vi(4800t): Updated Vietnamese translation v2.25.0

Yi-Jyun Pan (2):
      l10n: zh_TW: add translation for v2.24.0
      l10n: zh_TW.po: update translation for v2.25.0 round 1


Version v2.25.0-rc2; changes since v2.25.0-rc1:
-----------------------------------------------

Denis Ovsienko (1):
      gitweb: fix a couple spelling errors in comments

Derrick Stolee (6):
      sparse-checkout: list directories in cone mode
      sparse-checkout: document interactions with submodules
      sparse-checkout: use extern for global variables
      commit-graph: prefer default size_mult when given zero
      graph: drop assert() for merge with two collapsing parents
      graph: fix lack of color in horizontal lines

Elijah Newren (1):
      merge-recursive: remove unnecessary oid_eq function

Eric Wong (2):
      packfile: remove redundant fcntl F_GETFD/F_SETFD
      packfile: replace lseek+read with pread

Johannes Berg (1):
      multi-pack-index: correct configuration in documentation

Johannes Schindelin (1):
      mingw: only test index entries for backslashes, not tree entries

Jonathan Gilbert (3):
      git-gui: consolidate naming conventions
      git-gui: update status bar to track operations
      git-gui: revert untracked files by deleting them

Junio C Hamano (2):
      The final batch before -rc2
      Git 2.25-rc2

Kazuhiro Kato (1):
      git gui: fix branch name encoding error

Paul Menzel (1):
      am: document that Date: can appear as an in-body header

Philippe Blain (2):
      doc: log, gitk: document accepted line-log diff formats
      doc: log, gitk: line-log arguments must exist in starting revision

Pratyush Yadav (1):
      git-gui: allow closing console window with Escape

Taylor Blau (1):
      Documentation/git-sparse-checkout.txt: fix a typo

Thomas Menzel (1):
      doc: submodule: fix typo for command absorbgitdirs

Zoli Szabó (1):
      git-gui: allow opening currently selected file in default app


Version v2.25.0-rc1; changes since v2.25.0-rc0:
-----------------------------------------------

Ben Keene (2):
      git-p4: yes/no prompts should sanitize user text
      git-p4: show detailed help when parsing options fail

Ed Maste (1):
      CI: add FreeBSD CI support via Cirrus-CI

Elijah Newren (1):
      rebase: fix saving of --signoff state for am-based rebases

Johannes Schindelin (2):
      mingw: short-circuit the conversion of `/dev/null` to UTF-16
      mingw: refuse paths containing reserved names

Johannes Sixt (1):
      t3008: find test-tool through path lookup

Junio C Hamano (2):
      mailmap: mask accentless variant for Công Danh
      Git 2.25-rc1


Version v2.25.0-rc0; changes since v2.24.4:
-------------------------------------------

Alban Gruin (6):
      sequencer: update `total_nr' when adding an item to a todo list
      sequencer: update `done_nr' when skipping commands in a todo list
      sequencer: move the code writing total_nr on the disk to a new function
      rebase: fill `squash_onto' in get_replay_opts()
      sequencer: directly call pick_commits() from complete_action()
      sequencer: fix a memory leak in sequencer_continue()

Alexandr Miloslavskiy (14):
      parse-options.h: add new options `--pathspec-from-file`, `--pathspec-file-nul`
      pathspec: add new function to parse file
      doc: reset: synchronize <pathspec> description
      reset: support the `--pathspec-from-file` option
      doc: commit: synchronize <pathspec> description
      commit: support the --pathspec-from-file option
      cmd_add: prepare for next patch
      add: support the --pathspec-from-file option
      doc: checkout: remove duplicate synopsis
      doc: checkout: fix broken text reference
      doc: checkout: synchronize <pathspec> description
      doc: restore: synchronize <pathspec> description
      checkout, restore: support the --pathspec-from-file option
      commit: forbid --pathspec-from-file --all

Andreas Schwab (1):
      t7812: add missing redirects

Andrei Rybak (1):
      INSTALL: use existing shell scripts as example

Colin Stolley (1):
      packfile.c: speed up loading lots of packfiles

Daniel Ferreira (2):
      diff: export diffstat interface
      built-in add -i: implement the `status` command

Denton Liu (93):
      format-patch: replace erroneous and condition
      format-patch: use enum variables
      format-patch: teach --cover-from-description option
      rebase: hide --preserve-merges option
      t4108: replace create_file with test_write_lines
      t4108: remove git command upstream of pipe
      t4108: use `test_config` instead of `git config`
      t4108: demonstrate bug in apply
      apply: respect merge.conflictStyle in --3way
      submodule: teach set-url subcommand
      git-diff.txt: document return code of `--no-index`
      completion: learn to complete `git rebase --onto=`
      t4215: use helper function to check output
      argv-array: add space after `while`
      rev-list-options.txt: remove reference to --show-notes
      SubmittingPatches: use generic terms for hash
      pretty-formats.txt: use generic terms for hash
      SubmittingPatches: remove dq from commit reference
      completion: complete `tformat:` pretty format
      revision: make get_revision_mark() return const pointer
      pretty.c: inline initalize format_context
      t4205: cover `git log --reflog -z` blindspot
      pretty: add struct cmt_fmt_map::default_date_mode_type
      pretty: implement 'reference' format
      SubmittingPatches: use `--pretty=reference`
      pretty-options.txt: --notes accepts a ref instead of treeish
      t3206: remove spaces after redirect operators
      t3206: disable parameter substitution in heredoc
      t3206: s/expected/expect/
      t3206: range-diff compares logs with commit notes
      range-diff: output `## Notes ##` header
      range-diff: pass through --notes to `git log`
      format-patch: pass notes configuration to range-diff
      t0000: test multiple local assignment
      t: teach test_cmp_rev to accept ! for not-equals
      t5520: improve test style
      t5520: use sq for test case names
      t5520: let sed open its own input
      t5520: replace test -f with test-lib functions
      t5520: remove spaces after redirect operator
      t5520: use test_line_count where possible
      t5520: replace test -{n,z} with test-lib functions
      t5520: use test_cmp_rev where possible
      t5520: test single-line files by git with test_cmp
      t5520: don't put git in upstream of pipe
      t5520: replace $(cat ...) comparison with test_cmp
      t5520: remove redundant lines in test cases
      t5520: replace `! git` with `test_must_fail git`
      lib-bash.sh: move `then` onto its own line
      apply-one-time-sed.sh: modernize style
      t0014: remove git command upstream of pipe
      t0090: stop losing return codes of git commands
      t3301: stop losing return codes of git commands
      t3600: use test_line_count() where possible
      t3600: stop losing return codes of git commands
      t3600: comment on inducing SIGPIPE in `git rm`
      t4015: stop losing return codes of git commands
      t4015: use test_write_lines()
      t4138: stop losing return codes of git commands
      t5317: stop losing return codes of git commands
      t5317: use ! grep to check for no matching lines
      t5703: simplify one-time-sed generation logic
      t5703: stop losing return codes of git commands
      t7501: remove spaces after redirect operators
      t7501: stop losing return codes of git commands
      t7700: drop redirections to /dev/null
      t7700: remove spaces after redirect operators
      t7700: move keywords onto their own line
      t7700: s/test -f/test_path_is_file/
      doc: replace MARC links with lore.kernel.org
      RelNotes: replace Gmane with real Message-IDs
      doc: replace LKML link with lore.kernel.org
      t7700: consolidate code into test_no_missing_in_packs()
      t7700: consolidate code into test_has_duplicate_object()
      t7700: replace egrep with grep
      t7700: make references to SHA-1 generic
      t7700: stop losing return codes of git commands
      t3400: demonstrate failure with format.useAutoBase
      format-patch: fix indentation
      t4014: use test_config()
      format-patch: teach --no-base
      rebase: fix format.useAutoBase breakage
      t3206: fix incorrect test name
      range-diff: mark pointers as const
      range-diff: clear `other_arg` at end of function
      notes: rename to load_display_notes()
      notes: create init_display_notes() helper
      notes: extract logic into set_display_notes()
      format-patch: use --notes behavior for format.notes
      format-patch: move git_config() before repo_init_revisions()
      config/format.txt: clarify behavior of multiple format.notes
      notes: break set_display_notes() into smaller functions
      notes.h: fix typos in comment

Derrick Stolee (22):
      test-tool: use 'read-graph' helper
      sparse-checkout: create builtin with 'list' subcommand
      sparse-checkout: create 'init' subcommand
      clone: add --sparse mode
      sparse-checkout: 'set' subcommand
      sparse-checkout: add '--stdin' option to set subcommand
      sparse-checkout: create 'disable' subcommand
      sparse-checkout: add 'cone' mode
      sparse-checkout: use hashmaps for cone patterns
      sparse-checkout: init and set in cone mode
      unpack-trees: hash less in cone mode
      unpack-trees: add progress to clear_ce_flags()
      sparse-checkout: sanitize for nested folders
      sparse-checkout: update working directory in-process
      sparse-checkout: use in-process update for disable subcommand
      sparse-checkout: write using lockfile
      sparse-checkout: cone mode should not interact with .gitignore
      sparse-checkout: update working directory in-process for 'init'
      sparse-checkout: check for dirty status
      progress: create GIT_PROGRESS_DELAY
      commit-graph: use start_delayed_progress()
      sparse-checkout: respect core.ignoreCase in cone mode

Dimitriy Ryazantcev (1):
      l10n: minor case fix in 'git branch' '--unset-upstream' description

Dominic Jäger (1):
      merge-strategies: fix typo "reflected to" to "reflected in"

Ed Maste (3):
      t4210: skip i18n tests that don't work on FreeBSD
      userdiff: remove empty subexpression from elixir regex
      sparse-checkout: improve OS ls compatibility

Elia Pinto (1):
      kset.h, tar.h: add missing header guard to prevent multiple inclusion

Elijah Newren (26):
      merge-recursive: clean up get_renamed_dir_portion()
      merge-recursive: fix merging a subdirectory into the root directory
      t604[236]: do not run setup in separate tests
      Documentation: fix a bunch of typos, both old and new
      Fix spelling errors in documentation outside of Documentation/
      git-filter-branch.txt: correct argument name typo
      hashmap: fix documentation misuses of -> versus .
      name-hash.c: remove duplicate word in comment
      t6024: modernize style
      Fix spelling errors in code comments
      Fix spelling errors in comments of testcases
      Fix spelling errors in names of tests
      Fix spelling errors in messages shown to users
      Fix spelling errors in test commands
      sha1dc: fix trivial comment spelling error
      multimail: fix a few simple spelling errors
      Fix spelling errors in no-longer-updated-from-upstream modules
      t3011: demonstrate directory traversal failures
      Revert "dir.c: make 'git-status --ignored' work within leading directories"
      dir: remove stray quote character in comment
      dir: exit before wildcard fall-through if there is no wildcard
      dir: break part of read_directory_recursive() out for reuse
      t3434: mark successful test as such
      dir: fix checks on common prefix directory
      dir: synchronize treat_leading_path() and read_directory_recursive()
      dir: consolidate similar code in treat_directory()

Emily Shaffer (4):
      documentation: add tutorial for object walking
      myfirstcontrib: add 'psuh' to command-list.txt
      myfirstcontrib: add dependency installation step
      myfirstcontrib: hint to find gitgitgadget allower

Erik Chen (1):
      fetch: add trace2 instrumentation

Hans Jerry Illikainen (4):
      gpg-interface: refactor the free-and-xmemdupz pattern
      gpg-interface: limit search for primary key fingerprint
      gpg-interface: prefer check_signature() for GPG verification
      grep: don't return an expression from pcre2_free()

Hariom Verma (2):
      builtin/blame.c: constants into bit shift format
      git-compat-util.h: drop the `PRIuMAX` and other fallback definitions

Heba Waly (22):
      config: move documentation to config.h
      documentation: remove empty doc files
      diff: move doc to diff.h and diffcore.h
      dir: move doc to dir.h
      graph: move doc to graph.h and graph.c
      merge: move doc to ll-merge.h
      sha1-array: move doc to sha1-array.h
      remote: move doc to remote.h and refspec.h
      refs: move doc to refs.h
      attr: move doc to attr.h
      revision: move doc to revision.h
      pathspec: move doc to pathspec.h
      sigchain: move doc to sigchain.h
      cache: move doc to cache.h
      argv-array: move doc to argv-array.h
      credential: move doc to credential.h
      parse-options: add link to doc file in parse-options.h
      run-command: move doc to run-command.h
      trace: move doc to trace.h
      tree-walk: move doc to tree-walk.h
      submodule-config: move doc to submodule-config.h
      trace2: move doc to trace2.h

James Coglan (13):
      graph: automatically track display width of graph lines
      graph: handle line padding in `graph_next_line()`
      graph: reuse `find_new_column_by_commit()`
      graph: reduce duplication in `graph_insert_into_new_columns()`
      graph: remove `mapping_idx` and `graph_update_width()`
      graph: extract logic for moving to GRAPH_PRE_COMMIT state
      graph: example of graph output that can be simplified
      graph: tidy up display of left-skewed merges
      graph: commit and post-merge lines for left-skewed merges
      graph: rename `new_mapping` to `old_mapping`
      graph: smooth appearance of collapsing edges on commit lines
      graph: flatten edges that fuse with their right neighbor
      graph: fix coloring of octopus dashes

James Shubin (1):
      completion: tab-complete "git svn --recursive"

Jean-Noël Avila (2):
      doc: remove non pure ASCII characters
      doc: indent multi-line items in list

Jeff Hostetler (1):
      trace2: add region in clear_ce_flags

Jeff King (37):
      parse_commit_buffer(): treat lookup_commit() failure as parse error
      parse_commit_buffer(): treat lookup_tree() failure as parse error
      parse_tag_buffer(): treat NULL tag pointer as parse error
      commit, tag: don't set parsed bit for parse failures
      fsck: stop checking commit->tree value
      fsck: stop checking commit->parent counts
      fsck: stop checking tag->tagged
      fsck: require an actual buffer for non-blobs
      fsck: unify object-name code
      fsck_describe_object(): build on our get_object_name() primitive
      fsck: use oids rather than objects for object_name API
      fsck: don't require object structs for display functions
      fsck: only provide oid/type in fsck_error callback
      fsck: only require an oid for skiplist functions
      fsck: don't require an object struct for report()
      fsck: accept an oid instead of a "struct blob" for fsck_blob()
      fsck: drop blob struct from fsck_finish()
      fsck: don't require an object struct for fsck_ident()
      fsck: don't require an object struct in verify_headers()
      fsck: rename vague "oid" local variables
      fsck: accept an oid instead of a "struct tag" for fsck_tag()
      fsck: accept an oid instead of a "struct commit" for fsck_commit()
      fsck: accept an oid instead of a "struct tree" for fsck_tree()
      hex: drop sha1_to_hex_r()
      pack-objects: avoid pointless oe_map_new_pack() calls
      hex: drop sha1_to_hex()
      send-pack: check remote ref status on pack-objects failure
      t9502: pass along all arguments in xss helper
      t/gitweb-lib.sh: drop confusing quotes
      t/gitweb-lib.sh: set $REQUEST_URI
      gitweb: escape URLs generated by href()
      rev-parse: make --show-toplevel without a worktree an error
      perf-lib: use a single filename for all measurement types
      t/perf: don't depend on Git.pm
      send-pack: use OBJECT_INFO_QUICK to check negative objects
      doc: recommend lore.kernel.org over public-inbox.org
      doc: replace public-inbox links with lore.kernel.org

Johannes Schindelin (57):
      t1400: wrap setup code in test case
      git_path(): handle `.lock` files correctly
      vreportf(): avoid relying on stdio buffering
      update-index: optionally leave skip-worktree entries alone
      stash: handle staged changes in skip-worktree files correctly
      fetch: add the command-line option `--write-commit-graph`
      fetch: avoid locking issues between fetch.jobs/fetch.writeCommitGraph
      remote-curl: unbreak http.extraHeader with custom allocators
      Start to implement a built-in version of `git add --interactive`
      built-in add -i: implement the main loop
      built-in add -i: show unique prefixes of the commands
      built-in add -i: support `?` (prompt help)
      rebase-merges: move labels' whitespace mangling into `label_oid()`
      git svn: stop using `rebase --preserve-merges`
      mingw: demonstrate that all file handles are inherited by child processes
      mingw: work around incorrect standard handles
      mingw: spawned processes need to inherit only standard handles
      mingw: restrict file handle inheritance only on Windows 7 and later
      mingw: do set `errno` correctly when trying to restrict handle inheritance
      add-interactive: make sure to release `rev.prune_data`
      built-in add -i: allow filtering the modified files list
      built-in add -i: prepare for multi-selection commands
      built-in add -i: implement the `update` command
      built-in add -i: re-implement `revert` in C
      built-in add -i: re-implement `add-untracked` in C
      built-in add -i: implement the `patch` command
      built-in add -i: re-implement the `diff` command
      built-in add -i: offer the `quit` command
      pkt-line: fix a typo
      mingw: forbid translating ERROR_SUCCESS to an errno value
      t3701: add a test for advanced split-hunk editing
      t3701: avoid depending on the TTY prerequisite
      t3701: add a test for the different `add -p` prompts
      t3701: verify the shown messages when nothing can be added
      t3701: verify that the diff.algorithm config setting is handled
      git add -p: use non-zero exit code when the diff generation failed
      apply --allow-overlap: fix a corner case
      t3404: fix indentation
      built-in add -i: start implementing the `patch` functionality in C
      built-in add -i: wire up the new C code for the `patch` command
      built-in add -p: show colored hunks by default
      built-in add -p: adjust hunk headers as needed
      built-in add -p: color the prompt and the help text
      built-in add -p: offer a helpful error message when hunk navigation failed
      built-in add -p: support multi-file diffs
      built-in add -p: handle deleted empty files
      built-in app -p: allow selecting a mode change as a "hunk"
      built-in add -p: show different prompts for mode changes and deletions
      built-in add -p: implement the hunk splitting feature
      built-in add -p: coalesce hunks after splitting them
      strbuf: add a helper function to call the editor "on an strbuf"
      built-in add -p: implement hunk editing
      built-in add -p: implement the 'g' ("goto") command
      built-in add -p: implement the '/' ("search regex") command
      built-in add -p: implement the 'q' ("quit") command
      built-in add -p: only show the applicable parts of the help text
      built-in add -p: show helpful hint when nothing can be staged

Jonathan Tan (6):
      fetch-pack: write fetched refs to .promisor
      fetch: remove fetch_if_missing=0
      clone: remove fetch_if_missing=0
      promisor-remote: remove fetch_if_missing=0
      Doc: explain submodule.alternateErrorStrategy
      submodule--helper: advise on fatal alternate error

Josh Holland (1):
      userdiff: support Python async functions

Junio C Hamano (13):
      doc: am --show-current-patch gives an entire e-mail message
      The first batch post 2.24 cycle
      fsmonitor: do not compare bitmap size with size of split index
      ci(osx): update homebrew-cask repository with less noise
      rebase -i: finishing touches to --reset-author-date
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      Makefile: drop GEN_HDRS
      The sixth batch
      dir.c: use st_add3() for allocation size
      Git 2.25-rc0

Kevin Willford (1):
      fsmonitor: fix watchman integration

Manish Goregaokar (2):
      doc: document 'git submodule status --cached'
      submodule: fix 'submodule status' when called from a subdirectory

Martin Ågren (1):
      t7004: check existence of correct tag

Matthew Rogers (1):
      rebase -r: let `label` generate safer labels

Mihail Atanassov (1):
      Documentation/git-bisect.txt: add --no-ff to merge command

Mike Hommey (2):
      revision: clear the topo-walk flags in reset_revision_walk
      revision: free topo_walk_info before creating a new one in init_topo_walk

Miriam Rubio (1):
      clone: rename static function `dir_exists()`.

Nathan Stocks (1):
      t: fix typo in test descriptions

Naveen Nathan (1):
      doc: improve readability of --rebase-merges in git-rebase

Nika Layzell (1):
      reset: parse rev as tree-ish in patch mode

Philip Oakley (1):
      Doc: Bundle file usage

Philippe Blain (4):
      help: add gitsubmodules to the list of guides
      worktree: teach "add" to ignore submodule.recurse config
      doc: mention that 'git submodule update' fetches missing commits
      gitmodules: link to gitsubmodules guide

Phillip Wood (7):
      t3404: remove unnecessary subshell
      t3404: set $EDITOR in subshell
      t3404: remove uneeded calls to set_fake_editor
      sequencer.h fix placement of #endif
      move run_commit_hook() to libgit and use it there
      sequencer: run post-commit hook
      sequencer: fix empty commit check when amending

Prarit Bhargava (3):
      t6006: use test-lib.sh definitions
      t4203: use test-lib.sh definitions
      pretty: add "%aL" etc. to show local-part of email addresses

Pratyush Yadav (1):
      git-shortlog.txt: include commit limiting options

Ralf Thielow (1):
      fetch.c: fix typo in a warning message

René Scharfe (32):
      trace2: add dots directly to strbuf in perf_fmt_prepare()
      utf8: use skip_iprefix() in same_utf_encoding()
      convert: use skip_iprefix() in validate_encoding()
      mingw: use COPY_ARRAY for copying array
      parse-options: avoid arithmetic on pointer that's potentially NULL
      pretty: provide short date format
      fetch: use skip_prefix() instead of starts_with()
      fmt-merge-msg: use skip_prefix() instead of starts_with()
      shell: use skip_prefix() instead of starts_with()
      push: use skip_prefix() instead of starts_with()
      name-rev: use skip_prefix() instead of starts_with()
      run-command: use prepare_git_cmd() in prepare_cmd()
      t1512: use test_line_count
      t1410: use test_line_count
      t1400: use test_must_be_empty
      test: use test_must_be_empty F instead of test -z $(cat F)
      test: use test_must_be_empty F instead of test_cmp empty F
      t9300: don't create unused file
      t7811: don't create unused file
      xdiff: unignore changes in function context
      name-rev: use strbuf_strip_suffix() in get_rev_name()
      commit: use strbuf_add() to add a length-limited string
      patch-id: use oid_to_hex() to print multiple object IDs
      archive-zip: use enum for compression method
      t4256: don't create unused file
      t7004: don't create unused file
      refs: pass NULL to refs_read_ref_full() because object ID is not needed
      remote: pass NULL to read_ref_full() because object ID is not needed
      t3501: don't create unused file
      t5580: don't create unused file
      t6030: don't create unused file
      t4015: improve coverage of function context test

Robin H. Johnson (3):
      bundle: framework for options before bundle file
      bundle-create: progress output control
      bundle-verify: add --quiet

Rohit Ashiwal (6):
      rebase -i: add --ignore-whitespace flag
      sequencer: allow callers of read_author_script() to ignore fields
      rebase -i: support --committer-date-is-author-date
      sequencer: rename amend_author to author_to_rename
      rebase -i: support --ignore-date
      rebase: add --reset-author-date

Ruud van Asseldonk (1):
      t5150: skip request-pull test if Perl is disabled

SZEDER Gábor (29):
      Documentation: mention more worktree-specific exceptions
      path.c: clarify trie_find()'s in-code comment
      path.c: mark 'logs/HEAD' in 'common_list' as file
      path.c: clarify two field names in 'struct common_dir'
      path.c: don't call the match function without value in trie_find()
      builtin/commit-graph.c: remove subcommand-less usage string
      builtin/blame.c: remove '--indent-heuristic' from usage string
      test-lib: don't check prereqs of test cases that won't be run anyway
      t6120-describe: correct test repo history graph in comment
      builtin/unpack-objects.c: show throughput progress
      tests: add 'test_bool_env' to catch non-bool GIT_TEST_* values
      t5608-clone-2gb.sh: turn GIT_TEST_CLONE_2GB into a bool
      sequencer: don't re-read todo for revert and cherry-pick
      test-lib-functions: suppress a 'git rev-parse' error in 'test_commit_bulk'
      ci: build Git with GCC 9 in the 'osx-gcc' build job
      t9300-fast-import: store the PID in a variable instead of pidfile
      t9300-fast-import: don't hang if background fast-import exits too early
      t6120-describe: modernize the 'check_describe' helper
      name-rev: avoid unnecessary cast in name_ref()
      name-rev: use sizeof(*ptr) instead of sizeof(type) in allocation
      t6120: add a test to cover inner conditions in 'git name-rev's name_rev()
      name-rev: extract creating/updating a 'struct name_rev' into a helper
      name-rev: pull out deref handling from the recursion
      name-rev: restructure parsing commits and applying date cutoff
      name-rev: restructure creating/updating 'struct rev_name' instances
      name-rev: drop name_rev()'s 'generation' and 'distance' parameters
      name-rev: use 'name->tip_name' instead of 'tip_name'
      name-rev: eliminate recursion in name_rev()
      name-rev: cleanup name_ref()

Slavica Đukić (3):
      built-in add -i: color the header in the `status` command
      built-in add -i: use color in the main loop
      built-in add -i: implement the `help` command

Tanushree Tumane (2):
      bisect--helper: avoid use-after-free
      bisect--helper: convert `*_warning` char pointers to char arrays.

Thomas Gummerer (1):
      stash: make sure we have a valid index before writing it

Todd Zullinger (1):
      t7812: expect failure for grep -i with invalid UTF-8 data

Utsav Shah (1):
      unpack-trees: skip stat on fsmonitor-valid files

William Baker (6):
      midx: add MIDX_PROGRESS flag
      midx: add progress to write_midx_file
      midx: add progress to expire_midx_packs
      midx: honor the MIDX_PROGRESS flag in verify_midx_file
      midx: honor the MIDX_PROGRESS flag in midx_repack
      multi-pack-index: add [--[no-]progress] option.

brian m. carlson (16):
      t/oid-info: allow looking up hash algorithm name
      t/oid-info: add empty tree and empty blob values
      rev-parse: add a --show-object-format option
      t1305: avoid comparing extensions
      t3429: remove SHA1 annotation
      t4010: abstract away SHA-1-specific constants
      t4011: abstract away SHA-1-specific constants
      t4015: abstract away SHA-1-specific constants
      t4027: make hash-size independent
      t4034: abstract away SHA-1-specific constants
      t4038: abstract away SHA-1 specific constants
      t4039: abstract away SHA-1-specific constants
      t4044: update test to work with SHA-256
      t4045: make hash-size independent
      t4048: abstract away SHA-1-specific constants
      t9001: avoid including non-trailing NUL bytes in variables

r.burenkov (1):
      git-p4: honor lfs.storage configuration variable

ryenus (1):
      fix-typo: consecutive-word duplications

Đoàn Trần Công Danh (14):
      t3301: test diagnose messages for too few/many paramters
      notes: fix minimum number of parameters to "copy" subcommand
      t0028: eliminate non-standard usage of printf
      configure.ac: define ICONV_OMITS_BOM if necessary
      t3900: demonstrate git-rebase problem with multi encoding
      sequencer: reencode to utf-8 before arrange rebase's todo list
      sequencer: reencode revert/cherry-pick's todo list
      sequencer: reencode squashing commit's message
      sequencer: reencode old merge-commit message
      sequencer: reencode commit message for am/rebase --show-current-patch
      sequencer: handle rebase-merges for "onto" message
      date.c: switch to reentrant {gm,local}time_r
      archive-zip.c: switch to reentrant localtime_r
      mingw: use {gm,local}time_s as backend for {gm,local}time_r

Łukasz Niemier (1):
      userdiff: add Elixir to supported userdiff languages


Version v2.24.4; changes since v2.24.3:
---------------------------------------

Johannes Schindelin (9):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4
      Git 2.24.4

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.24.3; changes since v2.24.2:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.24.2; changes since v2.24.1:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Johannes Schindelin (1):
      msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x

Junio C Hamano (1):
      Git 2.17.4


Version v2.24.1; changes since v2.24.0:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (36):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3
      Git 2.18.2
      Git 2.19.3
      t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x
      Git 2.20.2
      mingw: detect when MSYS2's sh is to be spawned more robustly
      mingw: use MSYS2 quoting even when spawning shell scripts
      mingw: fix quoting of empty arguments for `sh`
      t7415: drop v2.20.x-specific work-around
      mingw: sh arguments need quoting in more circumstances
      Git 2.21.1
      Git 2.22.2
      Git 2.23.1
      Git 2.24.1

Jonathan Nieder (3):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules
      submodule: defend against submodule.update = !command in .gitmodules


Version v2.24.0; changes since v2.24.0-rc2:
-------------------------------------------

Alessandro Menti (2):
      l10n: it.po: update the Italian translation for Git 2.24.0
      l10n: it.po: update the Italian translation for Git 2.24.0 round #2

Alexander Shopov (2):
      l10n: bg.po: Updated Bulgarian translation (4693)
      l10n: bg.po: Updated Bulgarian translation (4694)

Bert Wesarg (2):
      git-gui: use existing interface to query a path's attribute
      git-gui: support for diff3 conflict style

Christopher Diaz Riveros (1):
      l10n: es: 2.24.0 round 2

Derrick Stolee (2):
      t5510-fetch.sh: demonstrate fetch.writeCommitGraph bug
      commit-graph: fix writing first commit-graph during fetch

Elijah Newren (2):
      RelNotes/2.24.0: typofix
      RelNotes/2.24.0: fix self-contradictory note

Jean-Noël Avila (2):
      l10n: fr 2.24.0 rnd 1
      l10n: fr v2.24.0 rnd2

Jiang Xin (3):
      l10n: git.pot: v2.24.0 round 1 (35 new, 16 removed)
      l10n: git.pot: v2.24.0 round 2 (1 new)
      l10n: zh_CN: for git v2.24.0 l10n round 1~2

Johannes Schindelin (1):
      Fix build with core.autocrlf=true

Jonathan Tan (1):
      fetch: delay fetch_if_missing=0 until after config

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.24

Martin Ågren (2):
      treewide: correct several "up-to-date" to "up to date"
      manpage-bold-literal.xsl: match for namespaced "d:literal" in template

Matthias Rüster (1):
      l10n: de.po: Update German translation

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (4674t0f0u)
      l10n: sv.po: Update Swedish translation (4695t0f0u)

Pratyush Yadav (1):
      git-gui: add a readme

Thomas Klaeger (1):
      git-gui (Windows): use git-bash.exe if it is available

Trần Ngọc Quân (1):
      l10n: vi(4694t): Updated translation for v2.24.0

kdnakt (1):
      git-gui: improve Japanese translation


Version v2.24.0-rc2; changes since v2.24.0-rc1:
-----------------------------------------------

Johannes Schindelin (1):
      mingw: avoid a buffer overrun in `needs_hiding()`

Junio C Hamano (1):
      Git 2.24-rc2

Robert Luberda (1):
      gitweb: correctly store previous rev in javascript-actions mode

William Baker (1):
      t7519-status-fsmonitor: improve comments


Version v2.24.0-rc1; changes since v2.24.0-rc0:
-----------------------------------------------

Bert Wesarg (1):
      t4014: make output-directory tests self-contained

Carlo Marcelo Arenas Belón (3):
      grep: make PCRE1 aware of custom allocator
      grep: make PCRE2 aware of custom allocator
      grep: avoid leak of chartables in PCRE2

Denton Liu (1):
      t7419: change test_must_fail to ! for grep

Derrick Stolee (1):
      repo-settings: read an int for index.version

Johannes Schindelin (3):
      ci(visual-studio): use strict compile flags, and optimization
      ci(visual-studio): actually run the tests in parallel
      ci(osx): use new location of the `perforce` cask

Junio C Hamano (2):
      Eleventh batch
      Git 2.24-rc1

Maxim Belsky (1):
      completion: clarify installation instruction for zsh

Norman Rasmussen (1):
      diff-highlight: fix a whitespace nit

SZEDER Gábor (2):
      test-progress: fix test failures on big-endian systems
      ci: fix GCC install in the Travis CI GCC OSX job

Stephen Boyd (1):
      userdiff: fix some corner cases in dts regex

William Baker (1):
      fsmonitor: don't fill bitmap with entries to be removed

brian m. carlson (1):
      remote-curl: pass on atomic capability to remote side


Version v2.24.0-rc0; changes since v2.23.4:
-------------------------------------------

Adam Roben (1):
      mingw: fix launching of externals from Unicode paths

Alex Henrie (4):
      doc: fix reference to --ignore-submodules
      commit-graph: remove a duplicate assignment
      diffcore-break: use a goto instead of a redundant if statement
      wrapper: use a loop instead of repetitive statements

Alexandr Miloslavskiy (4):
      contrib/buildsystems: fix Visual Studio Debug configuration
      t0028: fix test for UTF-16-LE-BOM
      t0028: add more tests
      t0061: fix test for argv[0] with spaces (MINGW only)

Ali Utku Selen (1):
      shallow.c: don't free unallocated slabs

Andrey Mazo (1):
      .mailmap: update email address of Andrey Mazo

Beat Bolli (3):
      grep: under --debug, show whether PCRE JIT is enabled
      utf8: use ARRAY_SIZE() in git_wcwidth()
      git-compat-util: fix documentation syntax

Ben Milman (1):
      repository-layout.txt: correct pluralization of 'object'

Ben Wijen (2):
      builtin/rebase.c: make sure the active branch isn't moved when autostashing
      builtin/rebase.c: Remove pointless message

Bert Wesarg (4):
      git-gui: convert new/amend commit radiobutton to checkbutton
      git-gui: add horizontal scrollbar to commit buffer
      builtin/submodule--helper: fix usage string for 'update-clone'
      format-patch: create leading components of output directory

Birger Skogeng Pedersen (2):
      git-gui: add hotkeys to set widget focus
      git-gui: add hotkey to toggle "Amend Last Commit"

CB Bailey (1):
      t4038: Remove non-portable '-a' option passed to test_cmp

Cameron Steffen (1):
      doc: minor formatting fix

Carlo Marcelo Arenas Belón (4):
      http: use xmalloc with cURL
      grep: make sure NO_LIBPCRE1_JIT disable JIT in PCRE1
      grep: refactor and simplify PCRE1 support
      grep: skip UTF8 checks explicitly

Christian Couder (15):
      t0410: remove pipes after git commands
      fetch-object: make functions return an error code
      Add initial support for many promisor remotes
      promisor-remote: implement promisor_remote_get_direct()
      promisor-remote: add promisor_remote_reinit()
      promisor-remote: use repository_format_partial_clone
      Use promisor_remote_get_direct() and has_promisor_remote()
      promisor-remote: parse remote.*.partialclonefilter
      builtin/fetch: remove unique promisor remote limitation
      t0410: test fetching from many promisor remotes
      partial-clone: add multiple remotes in the doc
      remote: add promisor and partial clone config to the doc
      Remove fetch-object.{c,h} in favor of promisor-remote.{c,h}
      Move repository_format_partial_clone to promisor-remote.c
      Move core_partial_clone_filter_default to promisor-remote.c

Clément Chigot (1):
      contrib/svn-fe: fix shebang for svnrdump_sim.py

Corentin BOMPARD (1):
      pull, fetch: add --set-upstream option

David Turner (1):
      clarify documentation for remote helpers

Denton Liu (49):
      packfile.h: drop extern from function declaration
      t4014: drop unnecessary blank lines from test cases
      t3431: add rebase --fork-point tests
      t3432: test rebase fast-forward behavior
      completion: merge options for cherry-pick and revert
      completion: add --skip for cherry-pick and revert
      status: mention --skip for revert and cherry-pick
      rebase: refactor can_fast_forward into goto tower
      rebase: fast-forward --onto in more cases
      rebase: fast-forward --fork-point in more cases
      rebase: teach rebase --keep-base
      mingw: apply array.cocci rule
      compat/*.[ch]: remove extern from function declarations using spatch
      t4014: s/expected/expect/
      t4014: move closing sq onto its own line
      t4014: use sq for test case names
      t4014: remove spaces after redirect operators
      t4014: use indentable here-docs
      t4014: drop redirections to /dev/null
      t4014: let sed open its own files
      t4014: use test_line_count() where possible
      t4014: remove confusing pipe in check_threading()
      t4014: stop losing return codes of git commands
      Doc: add more detail for git-format-patch
      config/format.txt: specify default value of format.coverLetter
      t: use common $SQ variable
      completion: teach rebase to use __gitcomp_builtin
      completion: teach archive to use __gitcomp_builtin
      git-submodule.txt: fix AsciiDoc formatting error
      Makefile: strip leading ./ in $(LIB_H)
      Makefile: define THIRD_PARTY_SOURCES
      Makefile: strip leading ./ in $(FIND_SOURCE_FILES)
      Makefile: run coccicheck on more source files
      gitk: rename zh_CN.po to zh_cn.po
      promisor-remote.h: drop extern from function declaration
      apply.h: include missing header
      promisor-remote.h: include missing header
      pack-bitmap.h: remove magic number
      Makefile: emulate compile in $(HCO) target better
      test-lib: let test_merge() perform octopus merges
      t4214: use test_merge
      t4214: generate expect in their own test cases
      t4214: explicitly list tags in log
      t4214: demonstrate octopus graph coloring failure
      git-rev-list.txt: prune options in synopsis
      t4014: treat rev-list output as the expected value
      t0000: cover GIT_SKIP_TESTS blindspots
      pthread.h: manually align parameter lists
      Makefile: respect $(V) in %.cocci.patch target

Derrick Stolee (14):
      repo-settings: consolidate some config settings
      t6501: use 'git gc' in quiet mode
      commit-graph: turn on commit-graph by default
      repo-settings: parse core.untrackedCache
      repo-settings: create feature.manyFiles setting
      repo-settings: create feature.experimental setting
      merge-recursive: introduce an enum for detect_directory_renames values
      checkout: add simple check for 'git checkout -b'
      fetch: add fetch.writeCommitGraph config setting
      treewide: rename 'struct exclude' to 'struct path_pattern'
      treewide: rename 'struct exclude_list' to 'struct pattern_list'
      treewide: rename 'EXCL_FLAG_' to 'PATTERN_FLAG_'
      treewide: rename 'exclude' methods to 'pattern'
      unpack-trees: rename 'is_excluded_from_list()'

Elijah Newren (53):
      git-fast-import.txt: clarify that multiple merge commits are allowed
      checkout: remove duplicate code
      merge-recursive: be consistent with assert
      checkout: provide better conflict hunk description with detached HEAD
      merge-recursive: enforce opt->ancestor != NULL when calling merge_trees()
      merge-recursive: provide a better label for diff3 common ancestor
      merge-recursive: future-proof update_file_flags() against memory leaks
      merge-recursive: remove another implicit dependency on the_repository
      Ensure index matches head before invoking merge machinery, round N
      merge-recursive: exit early if index != head
      merge-recursive: remove useless parameter in merge_trees()
      merge-recursive: don't force external callers to do our logging
      cache-tree: share code between functions writing an index as a tree
      merge-recursive: fix some overly long lines
      merge-recursive: use common name for ancestors/common/base_list
      merge-recursive: rename 'mrtree' to 'result_tree', for clarity
      merge-recursive: rename merge_options argument to opt in header
      merge-recursive: move some definitions around to clean up the header
      merge-recursive: consolidate unnecessary fields in merge_options
      merge-recursive: comment and reorder the merge_options fields
      merge-recursive: avoid losing output and leaking memory holding that output
      merge-recursive: split internal fields into a separate struct
      merge-recursive: rename MERGE_RECURSIVE_* to MERGE_VARIANT_*
      merge-recursive: add sanity checks for relevant merge_options
      merge-recursive: alphabetize include list
      merge-options.txt: clarify meaning of various ff-related options
      t3427: accelerate this test by using fast-export and fast-import
      t6006: simplify, fix, and optimize empty message test
      Recommend git-filter-repo instead of git-filter-branch
      t9902: use a non-deprecated command for testing
      t7300: add testcases showing failure to clean specified pathspecs
      dir: fix typo in comment
      dir: fix off-by-one error in match_pathspec_item
      dir: also check directories for matching pathspecs
      dir: make the DO_MATCH_SUBMODULE code reusable for a non-submodule case
      dir: if our pathspec might match files under a dir, recurse into it
      dir: add commentary explaining match_pathspec_item's return value
      git-clean.txt: do not claim we will delete files with -n/--dry-run
      clean: disambiguate the definition of -d
      clean: avoid removing untracked files in a nested git repository
      clean: rewrap overly long line
      clean: fix theoretical path corruption
      fast-export: fix exporting a tag and nothing else
      dir: special case check for the possibility that pathspec is NULL
      merge-recursive: fix the diff3 common ancestor label for virtual commits
      fast-import: fix handling of deleted tags
      fast-import: allow tags to be identified by mark labels
      fast-import: add support for new 'alias' command
      fast-export: add support for --import-marks-if-exists
      fast-export: allow user to request tags be marked with --mark-tags
      t9350: add tests for tags of things other than a commit
      fast-export: handle nested tags
      merge-recursive: fix the fix to the diff3 common ancestor label

Emily Shaffer (1):
      promisor-remote: skip move_to_tail when no-op

Eric Wong (20):
      diff: use hashmap_entry_init on moved_entry.ent
      coccicheck: detect hashmap_entry.hash assignment
      packfile: use hashmap_entry in delta_base_cache_entry
      hashmap_entry_init takes "struct hashmap_entry *"
      hashmap_get_next takes "const struct hashmap_entry *"
      hashmap_add takes "struct hashmap_entry *"
      hashmap_get takes "const struct hashmap_entry *"
      hashmap_remove takes "const struct hashmap_entry *"
      hashmap_put takes "struct hashmap_entry *"
      introduce container_of macro
      hashmap_get_next returns "struct hashmap_entry *"
      hashmap: use *_entry APIs to wrap container_of
      hashmap_get{,_from_hash} return "struct hashmap_entry *"
      hashmap_cmp_fn takes hashmap_entry params
      hashmap: use *_entry APIs for iteration
      hashmap: hashmap_{put,remove} return hashmap_entry *
      hashmap: introduce hashmap_free_entries
      OFFSETOF_VAR macro to simplify hashmap iterators
      hashmap: remove type arg from hashmap_{get,put,remove}_entry
      hashmap_entry: remove first member requirement from docs

Gabriele Mazzotta (1):
      gitk: Do not mistake unchanged lines for submodule changes

Garima Singh (3):
      commit-graph: add --[no-]progress to write and verify
      commit-graph: emit trace2 cmd_mode for each sub-command
      sq_quote_buf_pretty: don't drop empty arguments

Hervé Beraud (1):
      hg-to-git: make it compatible with both python3 and python2

Jakob Jarmar (1):
      stash: avoid recursive hard reset on submodules

Jeff Hostetler (7):
      trace2: cleanup column alignment in perf target format
      trace2: trim whitespace in region messages in perf target format
      trace2: remove dead code in maybe_add_string_va()
      trace2: trim trailing whitespace in normal format error message
      quote: add sq_append_quote_argv_pretty()
      trace2: cleanup whitespace in normal format
      trace2: cleanup whitespace in perf format

Jeff King (32):
      setup_traverse_info(): stop copying oid
      tree-walk: drop oid from traverse_info
      tree-walk: use size_t consistently
      tree-walk: accept a raw length for traverse_path_len()
      tree-walk: add a strbuf wrapper for make_traverse_path()
      tree-walk: harden make_traverse_path() length computations
      revision: allow --end-of-options to end option parsing
      parse-options: allow --end-of-options as a synonym for "--"
      gitcli: document --end-of-options
      t1309: use short branch name in includeIf.onbranch test
      common-main: delay trace2 initialization
      config: stop checking whether the_repository is NULL
      t/perf: rename duplicate-numbered test script
      packfile: drop release_pack_memory()
      notes: avoid potential use-after-free during insertion
      fast-import: duplicate parsed encoding string
      fast-import: duplicate into history rather than passing ownership
      git-am: handle missing "author" when parsing commit
      pack-objects: use object_id in packlist_alloc()
      bulk-checkin: zero-initialize hashfile_checkpoint
      diff-delta: set size out-parameter to 0 for NULL delta
      test-read-cache: drop namelen variable
      pack-objects: drop packlist index_pos optimization
      commit-graph: turn off save_commit_buffer
      list-objects: don't queue root trees unless revs->tree_objects is set
      commit-graph: bump DIE_ON_LOAD check to actual load-time
      upload-pack: disable commit graph more gently for shallow traversal
      list-objects-filter: delay parsing of sparse oid
      list-objects-filter: use empty string instead of NULL for sparse "base"
      git_mkstemps_mode(): replace magic numbers with computed value
      add a Code of Conduct document
      CODE_OF_CONDUCT: mention individual project-leader emails

Johannes Schindelin (41):
      Drop unused git-rebase--am.sh
      t3400: stop referring to the scripted rebase
      .gitignore: there is no longer a built-in `git-rebase--interactive`
      sequencer: the `am` and `rebase--interactive` scripts are gone
      rebase: fold git-rebase--common into the -p backend
      t3427: add a clarifying comment
      t3427: simplify the `setup` test case significantly
      t3427: move the `filter-branch` invocation into the `setup` case
      t3427: condense the unnecessarily repetitive test cases into three
      t3427: fix erroneous assumption
      t3427: accommodate for the `rebase --merge` backend having been replaced
      t3427: fix another incorrect assumption
      rebase -r: support merge strategies other than `recursive`
      t/lib-rebase: prepare for testing `git rebase --rebase-merges`
      t3418: test `rebase -r` with merge strategies
      rebase -r: do not (re-)generate root commits with `--root` *and* `--onto`
      setup_git_directory(): handle UNC paths correctly
      Fix .git/ discovery at the root of UNC shares
      setup_git_directory(): handle UNC root paths correctly
      .gitignore: stop ignoring `.manifest` files
      Move git_sort(), a stable sort, into into libgit.a
      diffcore_rename(): use a stable sort
      ci: run `hdr-check` as part of the `Static Analysis` job
      range-diff: internally force `diff.noprefix=true`
      push: do not pretend to return `int` from `die_push_simple()`
      fetch: let --jobs=<n> parallelize --multiple, too
      stash apply: report status correctly even in a worktree's subdirectory
      msvc: avoid using minus operator on unsigned types
      winansi: use FLEX_ARRAY to avoid compiler warning
      compat/win32/path-utils.h: add #include guards
      msvc: ignore some libraries when linking
      msvc: handle DEVELOPER=1
      msvc: work around a bug in GetEnvironmentVariable()
      vcxproj: only copy `git-remote-http.exe` once it was built
      vcxproj: include more generated files
      test-tool run-command: learn to run (parts of) the testsuite
      tests: let --immediate and --write-junit-xml play well together
      ci: really use shallow clones on Azure Pipelines
      ci: also build and test with MS Visual Studio on Azure Pipelines
      xdiffi: fix typos and touch up comments
      doc(stash): clarify the description of `save`

Johannes Sixt (2):
      diff, log doc: say "patch text" instead of "patches"
      diff, log doc: small grammer, format, and language fixes

Jon Simons (2):
      t5616: test cloning/fetching with sparse:oid=<oid> filter
      list-objects-filter: give a more specific error sparse parsing error

Jonathan Tan (6):
      diff: skip GITLINK when lazy fetching missing objs
      transport-helper: skip ls-refs if unnecessary
      transport: teach all vtables to allow fetch first
      cache-tree: do not lazy-fetch tentative tree
      merge-recursive: symlink's descendants not in way
      send-pack: never fetch when checking exclusions

Josh Steadmon (7):
      t7503: verify proper hook execution
      fetch: add trace2 instrumentation
      push: add trace2 instrumentation
      docs: mention trace2 target-dir mode in git-config
      docs: clarify trace2 version invariants
      trace2: discard new traces if target directory has too many files
      trace2: write discard message to sentinel files

Junio C Hamano (14):
      First batch after Git 2.23
      t: use LF variable defined in the test harness
      t3005: remove unused variable
      Second batch
      Third batch
      SubmittingPatches: git-gui has a new maintainer
      Fourth batch
      Fifth batch
      Sixth batch
      transport: push codepath can take arbitrary repository
      Seventh batch
      Eighth batch
      Ninth batch
      Git 2.24-rc0

Kunal Tyagi (1):
      add -i: show progress counter in the prompt

Martin Ågren (14):
      Documentation: wrap blocks with "--"
      git-merge-base.txt: render indentations correctly under Asciidoctor
      Documentation: wrap config listings in "----"
      git-ls-remote.txt: wrap shell listing in "----"
      git-receive-pack.txt: wrap shell [script] listing in "----"
      git-merge-index.txt: wrap shell listing in "----"
      gitweb.conf.txt: switch pluses to backticks to help Asciidoctor
      Doc/Makefile: give mansource/-version/-manual attributes
      asciidoctor-extensions: provide `<refmiscinfo/>`
      doc-diff: replace --cut-header-footer with --cut-footer
      user-manual.txt: add missing section label
      user-manual.txt: change header notation
      asciidoctor-extensions.rb: handle "book" doctype in linkgit
      user-manual.txt: render ASCII art correctly under Asciidoctor

Masaya Suzuki (1):
      fetch: use oidset to keep the want OIDs for faster lookup

Matheus Tavares (1):
      grep: fix worktree case in submodules

Matthew DeVore (10):
      list-objects-filter: encapsulate filter components
      list-objects-filter: put omits set in filter struct
      list-objects-filter-options: always supply *errbuf
      list-objects-filter: implement composite filters
      list-objects-filter-options: move error check up
      list-objects-filter-options: make filter_spec a string_list
      strbuf: give URL-encoding API a char predicate fn
      list-objects-filter-options: allow mult. --filter
      list-objects-filter-options: clean up use of ALLOC_GROW
      list-objects-filter-options: make parser void

Max Rothman (1):
      completion: add missing completions for log, diff, show

Michael J Gruber (3):
      merge: do no-verify like commit
      git-merge: honor pre-merge-commit hook
      merge: --no-verify to bypass pre-merge-commit hook

Mike Hommey (3):
      notes: avoid leaking duplicate entries
      commit: free the right buffer in release_commit_memory
      http: don't leak urlmatch_config.vars

Mischa POSLAWSKY (1):
      ref-filter: initialize empty name or email fields

Paul Mackerras (1):
      gitk: Make web links clickable

Paul Wise (1):
      gitk: Use right colour for remote refs in the "Tags and heads" dialog

Pedro Sousa (1):
      doc: MyFirstContribution: fix cmd placement instructions

Philip.McGraw (1):
      git-p4: auto-delete named temporary file

Phillip Wood (3):
      rebase -i: always update HEAD before rewording
      rebase -i: check for updated todo after squash and reword
      sequencer: simplify root commit creation

Pratyush Yadav (6):
      git-gui: call do_quit before destroying the main window
      git-gui: allow reverting selected lines
      git-gui: allow reverting selected hunk
      git-gui: return early when patch fails to apply
      git-gui: allow undoing last revert
      Documentation: update the location of the git-gui repo

René Scharfe (28):
      nedmalloc: do assignments only after the declaration section
      nedmalloc: avoid compiler warning about unused value
      archive-tar: report wrong pax extended header length
      archive-tar: fix pax extended header length calculation
      archive-tar: use size_t in strbuf_append_ext_header()
      archive-tar: turn length miscalculation warning into BUG
      parseopt: move definition of enum parse_opt_result up
      sha1-name: make sort_ambiguous_oid_array() thread-safe
      log-tree: always use return value of strbuf_detach()
      grep: use return value of strbuf_detach()
      trace2: use warning() directly in tr2_dst_malformed_warning()
      help: make help_unknown_ref() NORETURN
      tree: simplify parse_tree_indirect()
      tag: factor out get_tagged_oid()
      use get_tagged_oid()
      log: test --decorate-refs-exclude with --simplify-by-decoration
      log-tree: call load_ref_decorations() in get_name_decoration()
      rev-parse: demonstrate overflow of N for "foo^N" and "foo~N"
      sha1-name: check for overflow of N in "foo^N" and "foo~N"
      commit-graph: use commit_list_count()
      sha1_name: simplify strbuf handling in interpret_nth_prior_checkout()
      git: use COPY_ARRAY and MOVE_ARRAY in handle_alias()
      treewide: remove duplicate #include directives
      convert: fix handling of dashless UTF prefix in validate_encoding()
      tests: remove "cat foo" before "test_i18ngrep bar foo"
      http-push: simplify deleting a list item
      column: use utf8_strnwidth() to strip out ANSI color escapes
      remote-curl: use argv_array in parse_push()

SZEDER Gábor (33):
      t5510-fetch: fix negated 'test_i18ngrep' invocation
      t5510-fetch: run non-httpd-specific test before sourcing 'lib-httpd.sh'
      t5703: run all non-httpd-specific tests before sourcing 'lib-httpd.sh'
      t: warn against adding non-httpd-specific tests after sourcing 'lib-httpd'
      t5318-commit-graph: use 'test_expect_code'
      commit-graph: turn a group of write-related macro flags into an enum
      commit-graph: error out on invalid commit oids in 'write --stdin-commits'
      t0000-basic: use realistic test script names in the verbose tests
      tests: show the test name and number at the start of verbose output
      completion: fix a typo in a comment
      completion: complete more values of more 'color.*' configuration variables
      completion: add tests for 'git config' completion
      completion: deduplicate configuration sections
      completion: use 'sort -u' to deduplicate config variable names
      completion: simplify inner 'case' pattern in __gitcomp()
      completion: split _git_config()
      completion: complete configuration sections and variable names for 'git -c'
      completion: complete values of configuration variables after 'git -c var='
      completion: complete config variables names and values for 'git clone -c'
      completion: complete config variables and values for 'git clone --config='
      worktree remove: clarify error message on dirty worktree
      diff: 'diff.indentHeuristic' is no longer experimental
      line-log: extract pathspec parsing from line ranges into a helper function
      line-log: avoid unnecessary full tree diffs
      t7300-clean: demonstrate deleting nested repo with an ignored file breakage
      t/lib-git-svn.sh: check GIT_TEST_SVN_HTTPD when running SVN HTTP tests
      ci: restore running httpd tests
      commit-graph: don't show progress percentages while expanding reachable commits
      Revert "progress: use term_clear_line()"
      Test the progress display
      t/helper: ignore only executable files
      travis-ci: do not skip successfully tested trees in debug mode
      name-rev: avoid cutoff timestamp underflow

Stephen Boyd (1):
      userdiff: add a builtin pattern for dts files

Stephen P. Smith (2):
      Quit passing 'now' to date code
      test_date.c: remove reference to GIT_TEST_DATE_NOW

Sun Chao (1):
      pack-refs: always refresh after taking the lock file

Tanay Abhra (1):
      t1308-config-set: fix a test that has a typo

Taylor Blau (4):
      banned.h: fix vsprintf()'s ban message
      t/t5318: introduce failing 'git commit-graph write' tests
      commit-graph.c: handle commit parsing errors
      commit-graph.c: handle corrupt/missing trees

Thomas Gummerer (6):
      t0021: make sure clean filter runs
      push: disallow --all and refspecs when remote.<name>.mirror is set
      factor out refresh_and_write_cache function
      merge: use refresh_and_write_cache
      stash: make sure to write refreshed cache
      range-diff: don't segfault with mode-only changes

Tobias Klauser (1):
      git-svn: trim leading and trailing whitespaces in author name

Torsten Bögershausen (1):
      mingw: support UNC in git clone file://server/share/repo

Varun Naik (2):
      checkout.c: unstage empty deleted ita files
      restore: add test for deleted ita files

YanKe (1):
      gitk: Add Chinese (zh_CN) translation

brian m. carlson (43):
      builtin/replace: make hash size independent
      patch-id: convert to use the_hash_algo
      fetch-pack: use parse_oid_hex
      builtin/receive-pack: switch to use the_hash_algo
      builtin/blame: switch uses of GIT_SHA1_HEXSZ to the_hash_algo
      builtin/rev-parse: switch to use the_hash_algo
      blame: remove needless comparison with GIT_SHA1_HEXSZ
      show-index: switch hard-coded constants to the_hash_algo
      connected: switch GIT_SHA1_HEXSZ to the_hash_algo
      bundle: switch to use the_hash_algo
      combine-diff: replace GIT_SHA1_HEXSZ with the_hash_algo
      config: use the_hash_algo in abbrev comparison
      sha1-lookup: switch hard-coded constants to the_hash_algo
      bisect: switch to using the_hash_algo
      sequencer: convert to use the_hash_algo
      pack-write: use hash_to_hex when writing checksums
      builtin/repack: write object IDs of the proper length
      builtin/worktree: switch null_sha1 to null_oid
      cache: remove null_sha1
      wt-status: convert struct wt_status to object_id
      packfile: replace sha1_to_hex
      builtin/index-pack: replace sha1_to_hex
      builtin/receive-pack: replace sha1_to_hex
      rerere: replace sha1_to_hex
      builtin/show-index: replace sha1_to_hex
      midx: switch to using the_hash_algo
      t3201: abstract away SHA-1-specific constants
      t3206: abstract away hash size constants
      t3301: abstract away SHA-1-specific constants
      t3305: make hash size independent
      t3306: abstract away SHA-1-specific constants
      t3404: abstract away SHA-1-specific constants
      t3430: avoid hard-coded object IDs
      t3506: make hash independent
      t3600: make hash size independent
      t3800: make hash-size independent
      t3903: abstract away SHA-1-specific constants
      t4000: make hash size independent
      t4002: make hash independent
      t4009: make hash size independent
      path: add a function to check for path suffix
      am: reload .gitattributes after patching it
      Documentation: fix build with Asciidoctor 2

Ævar Arnfjörð Bjarmason (20):
      log tests: test regex backends in "--encode=<enc>" tests
      grep: don't use PCRE2?_UTF8 with "log --encoding=<non-utf8>"
      t4210: skip more command-line encoding tests on MinGW
      grep: inline the return value of a function call used only once
      grep tests: move "grep binary" alongside the rest
      grep tests: move binary pattern tests into their own file
      grep: make the behavior for NUL-byte in patterns sane
      grep: drop support for \0 in --fixed-strings <pattern>
      grep: remove the kwset optimization
      grep: use PCRE v2 for optimized fixed-string search
      grep: remove overly paranoid BUG(...) code
      grep: stop "using" a custom JIT stack with PCRE v2
      grep: stop using a custom JIT stack with PCRE v1
      grep: consistently use "p->fixed" in compile_regexp()
      grep: create a "is_fixed" member in "grep_pat"
      grep: stess test PCRE v2 on invalid UTF-8 data
      grep: do not enter PCRE2_UTF mode on fixed matching
      t3432: distinguish "noop-same" v.s. "work-same" in "same head" tests
      t3432: test for --no-ff's interaction with fast-forward
      rebase tests: test linear branch topology


Version v2.23.4; changes since v2.23.3:
---------------------------------------

Johannes Schindelin (8):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5
      Git 2.23.4

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.23.3; changes since v2.23.2:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.23.2; changes since v2.23.1:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.23.1; changes since v2.23.0:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (35):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3
      Git 2.18.2
      Git 2.19.3
      t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x
      Git 2.20.2
      mingw: detect when MSYS2's sh is to be spawned more robustly
      mingw: use MSYS2 quoting even when spawning shell scripts
      mingw: fix quoting of empty arguments for `sh`
      t7415: drop v2.20.x-specific work-around
      mingw: sh arguments need quoting in more circumstances
      Git 2.21.1
      Git 2.22.2
      Git 2.23.1

Jonathan Nieder (3):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules
      submodule: defend against submodule.update = !command in .gitmodules


Version v2.23.0; changes since v2.23.0-rc2:
-------------------------------------------

Alessandro Menti (3):
      l10n: it.po: update the Italian translation
      l10n: it.po: update the Italian translation for v2.23.0
      l10n: it.po: update the Italian localization for v2.23.0 round 2

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (4674t)

Carmine Zaccagnino (1):
      l10n: it.po: remove an extra space

Christopher Díaz Riveros (1):
      l10n: es: 2.23.0 round 2

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Jean-Noël Avila (1):
      l10n: fr v2.23.0 round 2

Jiang Xin (3):
      l10n: git.pot: v2.23.0 round 1 (130 new, 35 removed)
      l10n: git.pot: v2.23.0 round 2 (4 new, 6 removed)
      l10n: zh_CN: for git v2.23.0 l10n round 1~2

Jordi Mas (2):
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (2):
      Git 2.22.1
      Git 2.23

Mark Rushakoff (1):
      doc: fix repeated words

Matthias Rüster (1):
      l10n: de.po: Update German translation

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (4676t0f0u)

Philip Oakley (1):
      .mailmap: update email address of Philip Oakley

Philipp Weißmann (1):
      l10n: de.po: Fix typo in German translation

Trần Ngọc Quân (2):
      l10n: vi.po (4676t): Updated Vietnamese translation
      l10n: vi(4674t): Updated translation for Vietnamese


Version v2.23.0-rc2; changes since v2.23.0-rc1:
-----------------------------------------------

Derrick Stolee (1):
      commit-graph: fix bug around octopus merges

Elijah Newren (1):
      merge-recursive: avoid directory rename detection in recursive case

Jean-Noël Avila (1):
      l10n: reformat some localized strings for v2.23.0

Jeff King (1):
      t0000: reword comments for "local" test

Jonathan Nieder (1):
      t: decrease nesting in test_oid_to_path

Junio C Hamano (1):
      Git 2.23-rc2

Mark Rushakoff (1):
      doc: typo: s/can not/cannot/ and s/is does/does/

René Scharfe (4):
      commit-graph: release strbufs after use
      dir-iterator: release strbuf after use
      test-dir-iterator: use path argument directly
      sha1-file: release strbuf after use

William Chargin (1):
      restore: fix typo in docs


Version v2.23.0-rc1; changes since v2.23.0-rc0:
-----------------------------------------------

Carlo Marcelo Arenas Belón (3):
      xdiff: drop system includes in xutils.c
      xdiff: remove duplicate headers from xhistogram.c
      xdiff: remove duplicate headers from xpatience.c

Jeff King (6):
      verify-tag: drop signal.h include
      wt-status.h: drop stdio.h include
      t: sort output of hashmap iteration
      t7700: clean up .keep file in bitmap-writing test
      repack: silence warnings when auto-enabled bitmaps cannot be built
      repack: simplify handling of auto-bitmaps and .keep files

Johannes Schindelin (15):
      Vcproj.pm: auto-generate GUIDs
      Vcproj.pm: do not configure VCWebServiceProxyGeneratorTool
      Vcproj.pm: urlencode '<' and '>' when generating VC projects
      contrib/buildsystems: ignore irrelevant files in Generators/
      contrib/buildsystems: error out on unknown option
      contrib/buildsystems: handle libiconv, too
      contrib/buildsystems: also handle -lexpat
      contrib/buildsystems: handle options starting with a slash
      contrib/buildsystems: add a backend for modern Visual Studio versions
      msvc: add a Makefile target to pre-generate the Visual Studio solution
      vcxproj: also link-or-copy builtins
      .gitignore: ignore Visual Studio's temporary/generated files
      bin-wrappers: append `.exe` to target paths if necessary
      git: avoid calling aliased builtins via their dashed form
      config: work around bug with includeif:onbranch and early config

Junio C Hamano (5):
      test-dir-iterator: do not assume errno values
      A few more last-minute fixes
      log: flip the --mailmap default unconditionally
      log: really flip the --mailmap default
      Git 2.23-rc1

Martin Ågren (2):
      RelNotes/2.21.1: typofix
      RelNotes/2.23.0: fix a few typos and other minor issues

Philip Oakley (9):
      Vcproj.pm: list git.exe first to be startup project
      contrib/buildsystems: ignore invalidcontinue.obj
      contrib/buildsystems: fix misleading error message
      contrib/buildsystems: handle quoted spaces in filenames
      contrib/buildsystems: ignore gettext stuff
      contrib/buildsystems: redirect errors of the dry run into a log file
      contrib/buildsystems: optionally capture the dry-run in a file
      contrib/buildsystems: handle the curl library option
      .gitignore: touch up the entries regarding Visual Studio

SZEDER Gábor (1):
      Documentation/git-fsck.txt: include fsck.* config variables

brian m. carlson (10):
      t: add helper to convert object IDs to paths
      t1410: make hash size independent
      t1450: make hash size independent
      t5000: make hash independent
      t6030: make test work with SHA-256
      t0027: make hash size independent
      t0090: make test pass with SHA-256
      t1007: remove SHA1 prerequisites
      t1710: make hash independent
      t2203: avoid hard-coded object ID values


Version v2.23.0-rc0; changes since v2.22.5:
-------------------------------------------

Andrey Mazo (8):
      git-p4: detect/prevent infinite loop in gitCommitByP4Change()
      git-p4: add failing test for "git-p4: match branches case insensitively if configured"
      git-p4: match branches case insensitively if configured
      git-p4: don't groom exclude path list on every commit
      git-p4: add failing test for "don't exclude other files with same prefix"
      git-p4: don't exclude other files with same prefix
      git-p4: add failing test for "git-p4: respect excluded paths when detecting branches"
      git-p4: respect excluded paths when detecting branches

Ariadne Conill (3):
      log: add warning for unspecified log.mailmap setting
      documentation: mention --no-use-mailmap and log.mailmap false setting
      tests: defang pager tests by explicitly disabling the log.mailmap warning

Barret Rhoden (8):
      fsck: rename and touch up init_skiplist()
      Move oidset_parse_file() to oidset.c
      blame: use a helper function in blame_chunk()
      blame: add the ability to ignore commits and their changes
      blame: add config options for the output of ignored or unblamable lines
      blame: optionally track line fingerprints during fill_blame_origin()
      blame: use the fingerprint heuristic to match ignored lines
      blame: add a test to cover blame_coalesce()

Beat Bolli (1):
      grep: print the pcre2_jit_on value

Ben Avison (1):
      clone: add `--remote-submodules` flag

Boxuan Li (2):
      userdiff: add Octave
      userdiff: fix grammar and style issues

Carlo Marcelo Arenas Belón (1):
      trace2: correct typo in technical documentation

Cesar Eduardo Barros (1):
      mingw: embed a manifest to trick UAC into Doing The Right Thing

Christian Couder (7):
      t/helper: add test-oidmap.c
      t: add t0016-oidmap.sh
      oidmap: use sha1hash() instead of static hash() function
      test-hashmap: remove 'hash' command
      doc: improve usage string in MyFirstContribution
      test-oidmap: remove 'add' subcommand
      t0016: add 'remove' subcommand test

Daniel Ferreira (1):
      dir-iterator: add tests for dir-iterator API

Denton Liu (3):
      git-format-patch.txt: document --no-notes option
      format-patch: teach format.notes config option
      config: learn the "onbranch:" includeIf condition

Derrick Stolee (35):
      revision: use generation for A..B --topo-order queries
      revision: keep topo-walk free of unintersting commits
      repack: refactor pack deletion for future use
      Docs: rearrange subcommands for multi-pack-index
      multi-pack-index: prepare for 'expire' subcommand
      midx: simplify computation of pack name lengths
      midx: refactor permutation logic and pack sorting
      multi-pack-index: implement 'expire' subcommand
      multi-pack-index: prepare 'repack' subcommand
      midx: implement midx_repack()
      multi-pack-index: test expire while adding packs
      midx: add test that 'expire' respects .keep files
      t5319-multi-pack-index.sh: test batch size zero
      commit-graph: document commit-graph chains
      commit-graph: prepare for commit-graph chains
      commit-graph: rename commit_compare to oid_compare
      commit-graph: load commit-graph chains
      commit-graph: add base graphs chunk
      commit-graph: rearrange chunk count logic
      commit-graph: write commit-graph chains
      commit-graph: add --split option to builtin
      commit-graph: merge commit-graph chains
      commit-graph: allow cross-alternate chains
      commit-graph: expire commit-graph files
      commit-graph: create options for split files
      commit-graph: verify chains with --shallow mode
      commit-graph: clean up chains after flattened write
      commit-graph: test octopus merges with --split
      commit-graph: test --split across alternate without --split
      commit-graph: normalize commit-graph filenames
      commit-graph: test verify across alternates
      fetch: add --[no-]show-forced-updates argument
      fetch: warn about forced updates in branch listing
      pull: add --[no-]show-forced-updates passthrough
      t5319: use 'test-tool path-utils' instead of 'ls -l'

Dimitriy Ryazantcev (1):
      l10n: localizable upload progress messages

Edmundo Carmona Antoranz (1):
      builtin/merge.c - cleanup of code in for-cycle that tests strategies

Elijah Newren (5):
      t9350: fix encoding test to actually test reencoding
      fast-import: support 'encoding' commit header
      fast-export: avoid stripping encoding header if we cannot reencode
      fast-export: differentiate between explicitly UTF-8 and implicitly UTF-8
      fast-export: do automatic reencoding of commit messages only if requested

Emily Shaffer (4):
      documentation: add tutorial for first contribution
      documentation: add anchors to MyFirstContribution
      doc: add some nit fixes to MyFirstContribution
      rev-list: teach --no-object-names to enable piping

Eric Wong (2):
      update-server-info: avoid needless overwrites
      repack: disable bitmaps-by-default if .keep files exist

Jeff Hostetler (13):
      cache-tree/blame: avoid reusing the DEBUG constant
      msvc: mark a variable as non-const
      msvc: do not re-declare the timespec struct
      msvc: define ftello()
      msvc: fix detect_msys_tty()
      msvc: update Makefile to allow for spaces in the compiler path
      status: add status.aheadbehind setting
      status: warn when a/b calculation takes too long
      status: ignore status.aheadbehind in porcelain formats
      msvc: support building Git using MS Visual C++
      msvc: add a compile-time flag to allow detailed heap debugging
      msvc: do not pretend to support all signals
      msvc: ignore .dll and incremental compile output

Jeff King (42):
      cmd_{read,write}_tree: rename "unused" variable that is used
      builtin: consistently pass cmd_* prefix to parse_options
      submodule: drop unused prefix parameter from some functions
      clone: drop dest parameter from copy_alternates()
      read-cache: drop unused parameter from threaded load
      wt-status: drop unused status parameter
      mktree: drop unused length parameter
      name-rev: drop unused parameters from is_better_name()
      pack-objects: drop unused rev_info parameters
      receive-pack: drop unused "commands" from prepare_shallow_update()
      remove_all_fetch_refspecs(): drop unused "remote" parameter
      rev-list: drop unused void pointer from finish_commit()
      show-branch: drop unused parameter from show_independent()
      verify-commit: simplify parameters to run_gpg_verify()
      help_unknown_ref(): duplicate collected refnames
      help_unknown_ref(): check for refname ambiguity
      describe: fix accidental oid/hash type-punning
      upload-pack: rename a "sha1" variable to "oid"
      pack-bitmap-write: convert some helpers to use object_id
      pack-objects: convert packlist_find() to use object_id
      pack-objects: convert locate_object_entry_hash() to object_id
      object: convert lookup_unknown_object() to use object_id
      object: convert lookup_object() to use object_id
      object: convert internal hash_obj() to object_id
      object: convert create_object() to use object_id
      khash: drop broken oid_map typedef
      khash: rename kh_oid_t to kh_oid_set
      delta-islands: convert island_marks khash to use oids
      pack-bitmap: convert khash_sha1 maps into kh_oid_map
      khash: drop sha1-specific map types
      khash: rename oid helper functions
      hash.h: move object_id definition from cache.h
      hashmap: convert sha1hash() to oidhash()
      blame: drop some unused function parameters
      object-store.h: move for_each_alternate_ref() from transport.h
      check_everything_connected: assume alternate ref tips are valid
      test-lib: introduce test_commit_bulk
      t5310: increase the number of bitmapped commits
      t3311: use test_commit_bulk
      t5702: use test_commit_bulk
      t5703: use test_commit_bulk
      t6200: use test_commit_bulk

Johannes Schindelin (18):
      Drop unused git-rebase--am.sh
      t3400: stop referring to the scripted rebase
      .gitignore: there is no longer a built-in `git-rebase--interactive`
      sequencer: the `am` and `rebase--interactive` scripts are gone
      rebase: fold git-rebase--common into the -p backend
      mingw: fix a typo in the msysGit-specific section
      Mark .bat files as requiring CR/LF endings
      t0001 (mingw): do not expect a specific order of stdout/stderr
      obstack: fix compiler warning
      mingw: replace mingw_startup() hack
      msvc: fix dependencies of compat/msvc.c
      msvc: avoid debug assertion windows in Debug Mode
      mingw: enable stack smashing protector
      mingw: get pw_name in UTF-8 format
      mingw: use Unicode functions explicitly
      mingw: fix possible buffer overrun when calling `GetUserNameW()`
      rebase: fix white-space
      git: mark cmd_rebase as requiring a worktree

Johannes Sixt (5):
      userdiff: two simplifications of patterns for rust
      t7610-mergetool: do not place pipelines headed by `yes` in subshells
      t7610-mergetool: use test_cmp instead of test $(cat file) = $txt
      mergetool: dissect strings with shell variable magic instead of `expr`
      mergetool: use shell variable magic instead of `awk`

John Lin (1):
      status: remove the empty line after hints

Junio C Hamano (8):
      The first batch after 2.22
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      Git 2.23-rc0

Karsten Blees (2):
      gettext: always use UTF-8 on native Windows
      mingw: initialize HOME on startup

Marc-André Lureau (1):
      userdiff: add built-in pattern for rust

Martin Ågren (1):
      ref-filter: fix memory leak in `free_array_item()`

Matheus Tavares (8):
      clone: better handle symlinked files at .git/objects/
      dir-iterator: use warning_errno when possible
      dir-iterator: refactor state machine model
      dir-iterator: add flags parameter to dir_iterator_begin
      clone: copy hidden paths at local clone
      clone: extract function from copy_or_link_directory
      clone: use dir-iterator to avoid explicit dir traversal
      clone: replace strcmp by fspathcmp

Matthew DeVore (2):
      list-objects-filter-options: error is localizeable
      ref-filter: sort detached HEAD lines firstly

Michael Osipov (1):
      configure: Detect linking style for HP aCC on HP-UX

Michael Platings (2):
      blame: add a fingerprint heuristic to match ignored lines
      t8014: remove unnecessary braces

Nguyễn Thái Ngọc Duy (60):
      git-checkout.txt: spell out --no-option
      git-checkout.txt: fix one syntax line
      doc: document --overwrite-ignore
      git-checkout.txt: fix monospace typeset
      t: rename t2014-switch.sh to t2014-checkout-switch.sh
      checkout: advice how to get out of detached HEAD mode
      checkout: inform the user when removing branch state
      checkout: keep most #include sorted
      checkout: factor out some code in parse_branchname_arg()
      checkout: make "opts" in cmd_checkout() a pointer
      checkout: move 'confict_style' and 'dwim_..' to checkout_opts
      checkout: split options[] array in three pieces
      checkout: split part of it to new command 'switch'
      switch: better names for -b and -B
      switch: add --discard-changes
      switch: remove -l
      switch: stop accepting pathspec
      switch: reject "do nothing" case
      switch: only allow explicit detached HEAD
      switch: add short option for --detach
      switch: implicit dwim, use --no-guess to disable it
      switch: no worktree status unless real branch switch happens
      switch: reject if some operation is in progress
      switch: make --orphan switch to an empty tree
      t: add tests for switch
      completion: support switch
      doc: promote "git switch"
      checkout: split part of it to new command 'restore'
      restore: take tree-ish from --source option instead
      restore: make pathspec mandatory
      restore: disable overlay mode by default
      checkout: factor out worktree checkout code
      restore: add --worktree and --staged
      restore: reject invalid combinations with --staged
      restore: default to --source=HEAD when only --staged is specified
      restore: replace --force with --ignore-unmerged
      restore: support --patch
      t: add tests for restore
      completion: support restore
      user-manual.txt: prefer 'merge --abort' over 'reset --hard'
      doc: promote "git restore"
      help: move git-diff and git-reset to different groups
      Declare both git-switch and git-restore experimental
      merge: remove drop_save() in favor of remove_merge_branch_state()
      worktree add: sanitize worktree names
      merge: add --quit
      fetch: only run 'gc' once when fetching multiple remotes
      t2027: use test_must_be_empty
      switch: allow to switch in the middle of bisect
      completion: disable dwim on "git switch -d"
      fetch-pack: move capability names out of i18n strings
      fetch-pack: print all relevant supported capabilities with -v -v
      fetch-pack: print server version at the top in -v -v
      sha1-file.c: remove the_repo from read_object_with_reference()
      tree-walk.c: remove the_repo from fill_tree_descriptor()
      tree-walk.c: remove the_repo from get_tree_entry()
      tree-walk.c: remove the_repo from get_tree_entry_follow_symlinks()
      match-trees.c: remove the_repo from shift_tree*()
      Use the right 'struct repository' instead of the_repository
      t7814: do not generate same commits in different repos

Nickolai Belakovski (3):
      ref-filter: add worktreepath atom
      branch: update output to include worktree info
      branch: add worktree info on verbose output

Philip Oakley (5):
      git.c: show usage for accessing the git(1) help page
      Doc: git.txt: remove backticks from link and add git-scm.com/docs
      msvc: include sigset_t definition
      msvc: define O_ACCMODE
      msvc: add pragmas for common warnings

Phillip Wood (7):
      rebase -r: always reword merge -c
      show --continue/skip etc. consistently in synopsis
      sequencer: always allow tab after command name
      sequencer: factor out todo command name parsing
      status: do not report errors in sequencer/todo
      git-prompt: improve cherry-pick/revert detection
      t3420: remove progress lines before comparing output

Ramsay Jones (1):
      env--helper: mark a file-local symbol as static

Rohit Ashiwal (5):
      sequencer: add advice for revert
      sequencer: rename reset_for_rollback to reset_merge
      sequencer: use argv_array in reset_merge
      cherry-pick/revert: add --skip option
      cherry-pick/revert: advise using --skip

SZEDER Gábor (1):
      travis-ci: build with GCC 4.8 as well

Stephen Boyd (2):
      format-patch: inform user that patch-id generation is unstable
      format-patch: make --base patch-id output stable

Taylor Blau (1):
      ref-filter.c: find disjoint pattern prefixes

Thomas Gummerer (15):
      apply: replace marc.info link with public-inbox
      apply: only pass required data to skip_tree_prefix
      apply: only pass required data to git_header_name
      apply: only pass required data to check_header_line
      apply: only pass required data to find_name_*
      apply: only pass required data to gitdiff_* functions
      apply: make parse_git_diff_header public
      range-diff: fix function parameter indentation
      range-diff: split lines manually
      range-diff: don't remove funcname from inner diff
      range-diff: suppress line count in outer diff
      range-diff: add section header instead of diff header
      range-diff: add filename to inner diff
      range-diff: add headers to the outer hunk header
      stash: fix handling removed files with --keep-index

Tigran Mkrtchyan (1):
      tag: add tag.gpgSign config option to force all tags be GPG-signed

Ævar Arnfjörð Bjarmason (20):
      send-email: move the read_config() function above getopts
      send-email: rename the @bcclist variable for consistency
      send-email: do defaults -> config -> getopt in that order
      tests: add a special setup where prerequisites fail
      Makefile: remove the NO_R_TO_GCC_LINKER flag
      send-email: remove cargo-culted multi-patch pattern in tests
      send-email: fix broken transferEncoding tests
      send-email: document --no-[to|cc|bcc]
      send-email: fix regression in sendemail.identity parsing
      Revert "test-lib: whitelist GIT_TR2_* in the environment"
      config tests: simplify include cycle test
      env--helper: new undocumented builtin wrapping git_env_*()
      config.c: refactor die_bad_number() to not call gettext() early
      t6040 test: stop using global "script" variable
      tests: make GIT_TEST_GETTEXT_POISON a boolean
      tests README: re-flow a previously changed paragraph
      tests: replace test_tristate with "git env--helper"
      tests: make GIT_TEST_FAIL_PREREQS a boolean
      tests: mark two failing tests under FAIL_PREREQS
      clone: test for our behavior on odd objects/* content


Version v2.22.5; changes since v2.22.4:
---------------------------------------

Johannes Schindelin (7):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4
      Git 2.22.5

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.22.4; changes since v2.22.3:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.22.3; changes since v2.22.2:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.22.2; changes since v2.22.1:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (34):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3
      Git 2.18.2
      Git 2.19.3
      t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x
      Git 2.20.2
      mingw: detect when MSYS2's sh is to be spawned more robustly
      mingw: use MSYS2 quoting even when spawning shell scripts
      mingw: fix quoting of empty arguments for `sh`
      t7415: drop v2.20.x-specific work-around
      mingw: sh arguments need quoting in more circumstances
      Git 2.21.1
      Git 2.22.2

Jonathan Nieder (3):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules
      submodule: defend against submodule.update = !command in .gitmodules


Version v2.22.1; changes since v2.22.0:
---------------------------------------

Beat Bolli (1):
      unicode: update the width tables to Unicode 12.1

Carlo Marcelo Arenas Belón (5):
      fsmonitor: avoid signed integer overflow / infinite loop
      wrapper: avoid undefined behaviour in macOS
      xdiff: drop system includes in xutils.c
      xdiff: remove duplicate headers from xhistogram.c
      xdiff: remove duplicate headers from xpatience.c

Chris Mayo (1):
      send-email: update documentation of required Perl modules

Denton Liu (2):
      config/alias.txt: change " and ' to `
      config/alias.txt: document alias accepting non-command first word

Derrick Stolee (15):
      commit-graph: fix the_repository reference
      sha1-file: split OBJECT_INFO_FOR_PREFETCH
      commit-graph: return with errors during write
      commit-graph: collapse parameters into flags
      commit-graph: remove Future Work section
      commit-graph: create write_commit_graph_context
      commit-graph: extract fill_oids_from_packs()
      commit-graph: extract fill_oids_from_commit_hex()
      commit-graph: extract fill_oids_from_all_packs()
      commit-graph: extract count_distinct_commits()
      commit-graph: extract copy_oids_to_commits()
      commit-graph: extract write_commit_graph_file()
      commit-graph: use raw_object_store when closing
      packfile: close commit-graph in close_all_packs
      packfile: rename close_all_packs to close_object_store

Doug Ilijev (1):
      README: fix rendering of text in angle brackets

Dr. Adam Nielsen (1):
      gitignore.txt: make slash-rules more readable

Emily Shaffer (3):
      grep: fail if call could output and name is null
      doc: hint about GIT_DEBUGGER in CodingGuidelines
      transport-helper: enforce atomic in push_refs_with_push

Eric Wong (1):
      server-info: do not list unlinked packs

Felipe Contreras (5):
      t5801 (remote-helpers): cleanup refspec stuff
      t5801 (remote-helpers): add test to fetch tags
      fetch: trivial cleanup
      fetch: make the code more understandable
      fetch: fix regression with transport helpers

Jakub Wilk (1):
      doc: don't use git.kernel.org as example gitweb URL

Jeff King (10):
      upload-pack: strip namespace from symref data
      am: simplify prompt response handling
      am: read interactive input from stdin
      am: drop tty requirement for --interactive
      am: fix --interactive HEAD tree resolution
      interpret-trailers: load default config
      verify-tag: drop signal.h include
      wt-status.h: drop stdio.h include
      delta-islands: respect progress flag
      xdiff: clamp function context indices in post-image

Johannes Schindelin (14):
      bisect--helper: verify HEAD could be parsed before continuing
      fill_stat_cache_info(): prepare for an fsmonitor fix
      mark_fsmonitor_valid(): mark the index as changed if needed
      bundle verify: error out if called without an object database
      poll (mingw): allow compiling with GCC 8 and DEVELOPER=1
      kwset: allow building with GCC 8
      winansi: simplify loading the GetCurrentConsoleFontEx() function
      config: avoid calling `labs()` on too-large data type
      t3404: fix a typo
      t0001: fix on case-insensitive filesystems
      rebase --am: ignore rebase.rescheduleFailedExec
      diff: munmap() file contents before running external diff
      mingw: support spawning programs containing spaces in their names
      clean: show an error message when the path is too long

Jonathan Tan (5):
      t5616: refactor packfile replacement
      index-pack: prefetch missing REF_DELTA bases
      t5616: use correct flag to check object is missing
      t5616: cover case of client having delta base
      t5551: test usage of chunked encoding explicitly

Josh Steadmon (1):
      trace2: correct trace2 field name documentation

Junio C Hamano (6):
      transport-helper: avoid var decl in for () loop control
      rm: resolving by removal is not a warning-worthy event
      CodingGuidelines: spell out post-C89 rules
      Flush fixes up to the third batch post 2.22.0
      Merge fixes made on the 'master' front
      Git 2.22.1

Martin Ågren (1):
      RelNotes/2.21.1: typofix

Matthew DeVore (3):
      list-objects-filter: correct usage of ALLOC_GROW
      url: do not read past end of buffer
      url: do not allow %00 to represent NUL in URLs

Miguel Ojeda (1):
      clang-format: use git grep to generate the ForEachMacros list

Mike Hommey (2):
      dup() the input fd for fast-import used for remote helpers
      Use xmmap_gently instead of xmmap in use_pack

Mike Mueller (1):
      p4 unshelve: fix "Not a valid object name HEAD0" on Windows

Morian Sonnet (1):
      submodule foreach: fix recursion of options

Nguyễn Thái Ngọc Duy (3):
      init: make --template path relative to $CWD
      worktree add: be tolerant of corrupt worktrees
      completion: do not cache if --git-completion-helper fails

Paolo Bonzini (2):
      request-pull: quote regex metacharacters in local ref
      request-pull: warn if the remote object is not the same as the local one

Philip Oakley (2):
      doc branch: provide examples for listing remote tracking branches
      .mailmap: update email address of Philip Oakley

Phillip Wood (5):
      rebase: fix a memory leak
      rebase: warn if state directory cannot be removed
      sequencer: return errors from sequencer_remove_state()
      rebase --abort/--quit: cleanup refs/rewritten
      add -p: fix checkout -p with pathological context

Quentin Nerden (2):
      docs: git-clone: refer to long form of options
      docs: git-clone: list short form of options first

René Scharfe (6):
      cleanup: fix possible overflow errors in binary search, part 2
      coccinelle: use COPY_ARRAY for copying arrays
      use COPY_ARRAY for copying arrays
      config: use unsigned_mult_overflows to check for overflows
      config: don't multiply in parse_unit_factor()
      config: simplify parsing of unit factors

Robert Morgan (1):
      gpg(docs): use correct --verify syntax

SZEDER Gábor (11):
      t3404: modernize here doc style
      t3404: make the 'rebase.missingCommitsCheck=ignore' test more focused
      pager: add a helper function to clear the last line in the terminal
      t5551: use 'test_i18ngrep' to check translated output
      rebase: fix garbled progress display with '-x'
      progress: use term_clear_line()
      Document that 'git -C ""' works and doesn't change directory
      ci: don't update Homebrew
      ci: disable Homebrew's auto cleanup
      ci/lib.sh: update a comment about installed P4 and Git-LFS versions
      Documentation/git-fsck.txt: include fsck.* config variables

Simon Williams (1):
      git-p4: allow unshelving of branched files

Steven Roberts (1):
      gpg-interface: do not scan past the end of buffer

Thomas Gummerer (1):
      stash: fix show referencing stash index

Varun Naik (1):
      read-cache.c: do not die if mmap fails

Vishal Verma (1):
      merge: refuse --commit with --squash

Xin Li (1):
      clone: respect user supplied origin name when setting up partial clone

Ævar Arnfjörð Bjarmason (1):
      hash-object doc: stop mentioning git-cvsimport


Version v2.22.0; changes since v2.22.0-rc3:
-------------------------------------------

Alessandro Menti (1):
      l10n: it.po: Updated Italian translation

Alexander Shopov (3):
      l10n: bg.po: Updated Bulgarian translation (4577t)
      l10n: bg.po: Updated Bulgarian translation (4580t)
      l10n: bg.po: Updated Bulgarian translation (4581t)

Christopher Díaz Riveros (3):
      l10n: es: 2.22.0 round 1
      l10n: es: 2.22.0 round 2
      l10n: es: 2.22.0 round 3

Cédric Malard (1):
      l10n: fr.po: Review French translation

Elijah Newren (1):
      merge-recursive: restore accidentally dropped setting of path

Fangyi Zhou (1):
      l10n: zh_CN: Revision for git v2.22.0 l10n

Jean-Noël Avila (3):
      l10n: fr.po v2.22.0.rnd1
      l10n: fr.po v2.22.0 round 2
      l10n: fr v2.22.0 rnd 3

Jiang Xin (4):
      l10n: git.pot: v2.22.0 round 1 (270 new, 56 removed)
      l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed)
      l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)
      l10n: zh_CN: for git v2.22.0 l10n round 1~3

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.22

Matthias Rüster (2):
      l10n: TEAMS: Change German translation team leader
      l10n: de.po: Update German translation

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation
      l10n: sv.po: Update Swedish translation (4577t0f0u)

Ralf Thielow (1):
      l10n: de.po: improve description of 'git reset --quiet'

Trần Ngọc Quân (3):
      l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1
      l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2
      l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3


Version v2.22.0-rc3; changes since v2.22.0-rc2:
-----------------------------------------------

Christian Couder (1):
      list-objects-filter: disable 'sparse:path' filters

Jiang Xin (1):
      i18n: fix typos found during l10n for git 2.22.0

Junio C Hamano (1):
      Git 2.22-rc3

Todd Zullinger (1):
      RelNotes: minor typo fixes in 2.22.0 draft


Version v2.22.0-rc2; changes since v2.22.0-rc1:
-----------------------------------------------

Emily Shaffer (1):
      gitsubmodules: align html and nroff lists

Jean-Noël Avila (1):
      diff: fix mistake in translatable strings

Jeff Hostetler (1):
      trace2: fix tracing when NO_PTHREADS is defined

Johannes Schindelin (4):
      rebase: replace incorrect logical negation by correct bitwise one
      tests: mark a couple more test cases as requiring `rebase -p`
      docs: say that `--rebase=preserve` is deprecated
      rebase docs: recommend `-r` over `-p`

Jonathan Tan (1):
      fetch-pack: send server options after command

Junio C Hamano (1):
      Git 2.22-rc2

Nguyễn Thái Ngọc Duy (3):
      diff-parseopt: correct variable types that are used by parseopt
      diff-parseopt: restore -U (no argument) behavior
      parse-options: check empty value in OPT_INTEGER and OPT_ABBREV

SZEDER Gábor (3):
      trace2: rename environment variables to GIT_TRACE2*
      trace2: document the supported values of GIT_TRACE2* env variables
      progress: avoid empty line when breaking the progress line


Version v2.22.0-rc1; changes since v2.22.0-rc0:
-----------------------------------------------

Boxuan Li (1):
      t4253-am-keep-cr-dos: avoid using pipes

Carlo Marcelo Arenas Belón (1):
      http-push: prevent format overflow warning with gcc >= 9

Chris Mayo (1):
      notes: correct documentation of format_display_notes()

Chris. Webster (1):
      diff-highlight: use correct /dev/null for UNIX and Windows

Denton Liu (10):
      t7610: unsuppress output
      t7610: add mergetool --gui tests
      t2018: cleanup in current test
      branch: make create_branch accept a merge base rev
      tag: fix typo in nested tagging hint
      mergetool: use get_merge_tool function
      mergetool--lib: create gui_mode function
      mergetool: fallback to tool when guitool unavailable
      difftool: make --gui, --tool and --extcmd mutually exclusive
      difftool: fallback on merge.guitool

Derrick Stolee (3):
      midx: pass a repository pointer
      midx: add packs to packed_git linked list
      trace2: add variable description to git.txt

Dustin Spicuzza (1):
      cvsexportcommit: force crlf translation

Elijah Newren (1):
      Honor core.precomposeUnicode in more places

Eric Sunshine (1):
      check-non-portable-shell: support Perl versions older than 5.10

Jeff King (4):
      coccicheck: optionally batch spatch invocations
      t/lib-httpd: pass LSAN_OPTIONS through apache
      coccicheck: make batch size of 0 mean "unlimited"
      get_oid: handle NULL repo->index

Johannes Schindelin (8):
      t5580: verify that alternates can be UNC paths
      fsmonitor: demonstrate that it is not refreshed after discard_index()
      fsmonitor: force a refresh after the index was discarded
      t6500(mingw): use the Windows PID of the shell
      difftool --no-index: error out on --dir-diff (and don't crash)
      status: fix display of rebase -ir's `label` command
      parse-options: adjust `parse_opt_unknown_cb()`s declared return type
      stash: document stash.useBuiltin

Josh Steadmon (1):
      commit-graph: fix memory leak

Junio C Hamano (2):
      pkt-line: drop 'const'-ness of a param to set_packet_header()
      Git 2.22-rc1

Mike Hommey (1):
      Make fread/fwrite-like functions in http.c more like fread/fwrite.

Nguyễn Thái Ngọc Duy (2):
      parse-options: don't emit "ambiguous option" for aliases
      submodule--helper: add a missing \n

SZEDER Gábor (1):
      ci: install 'libsvn-perl' instead of 'git-svn'

Tanushree Tumane (1):
      mingw: remove obsolete IPv6-related code

Todd Zullinger (1):
      test-lib: try harder to ensure a working jgit

Ævar Arnfjörð Bjarmason (8):
      perf README: correct docs for 3c8f12c96c regression
      perf aggregate: remove GIT_TEST_INSTALLED from --codespeed
      perf-lib.sh: make "./run <revisions>" use the correct gits
      perf-lib.sh: remove GIT_TEST_INSTALLED from perf-lib.sh
      perf tests: add "bindir" prefix to git tree test results
      perf-lib.sh: forbid the use of GIT_TEST_INSTALLED
      trace2: fix up a missing "leave" entry point
      sha1dc: update from upstream

İsmail Dönmez (2):
      mingw: do not let ld strip relocations
      mingw: enable DEP and ASLR


Version v2.22.0-rc0; changes since v2.21.4:
-------------------------------------------

Alban Gruin (18):
      sequencer: changes in parse_insn_buffer()
      sequencer: make the todo_list structure public
      sequencer: remove the 'arg' field from todo_item
      sequencer: refactor transform_todos() to work on a todo_list
      sequencer: introduce todo_list_write_to_file()
      sequencer: refactor check_todo_list() to work on a todo_list
      sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
      sequencer: refactor rearrange_squash() to work on a todo_list
      sequencer: make sequencer_make_script() write its script to a strbuf
      sequencer: change complete_action() to use the refactored functions
      rebase--interactive: move sequencer_add_exec_commands()
      rebase--interactive: move rearrange_squash_in_todo_file()
      sequencer: refactor skip_unnecessary_picks() to work on a todo_list
      rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
      rebase-interactive: append_todo_help() changes
      rebase-interactive: rewrite edit_todo_list() to handle the initial edit
      sequencer: use edit_todo_list() in complete_action()
      rebase--interactive: move transform_todo_file()

Alexander Blesius (1):
      doc: fix typos in man pages

Alexander Shopov (1):
      gitk: Update Bulgarian translation (317t)

Anders Waldenborg (7):
      doc: group pretty-format.txt placeholders descriptions
      pretty: allow %(trailers) options with explicit value
      pretty: single return path in %(trailers) handling
      pretty: allow showing specific trailers
      pretty: add support for "valueonly" option in %(trailers)
      strbuf: separate callback for strbuf_expand:ing literals
      pretty: add support for separator option in %(trailers)

Andreas Heiduk (1):
      revisions.txt: remove ambibuity between <rev>:<path> and :<path>

Andrei Rybak (1):
      t4150: remove unused variable

Baruch Siach (1):
      send-email: don't cc *-by lines with '-' prefix

Beat Bolli (1):
      unicode: update the width tables to Unicode 12

Ben Peart (1):
      read-cache: add post-index-change hook

Brandon Richardson (1):
      commit-tree: utilize parse-options api

Christian Couder (4):
      t6050: use test_line_count instead of wc -l
      t6050: redirect expected error output to a file
      replace: peel tag when passing a tag as parent to --graft
      replace: peel tag when passing a tag first to --graft

Clément Chigot (2):
      Makefile: use fileno macro work around on AIX
      git-compat-util: work around for access(X_OK) under root

Corentin BOMPARD (2):
      doc/CodingGuidelines: URLs and paths as monospace
      doc: format pathnames and URLs as monospace.

Damien Robert (1):
      ref-filter: use correct branch for %(push:track)

Daniels Umanovskis (1):
      branch: introduce --show-current display option

David Aguilar (2):
      mergetools: add support for smerge (Sublime Merge)
      contrib/completion: add smerge to the mergetool completion candidates

David Kastrup (1):
      blame.c: don't drop origin blobs as eagerly

Denton Liu (28):
      completion: complete git submodule absorbgitdirs
      git-submodule.txt: "--branch <branch>" option defaults to 'master'
      submodule--helper: teach config subcommand --unset
      submodule: document default behavior
      git-reset.txt: clarify documentation
      git-clean.txt: clarify ignore pattern files
      docs: move core.excludesFile from git-add to gitignore
      contrib/subtree: ensure only one rev is provided
      midx.c: convert FLEX_ALLOC_MEM to FLEX_ALLOC_STR
      cocci: FLEX_ALLOC_MEM to FLEX_ALLOC_STR
      tag: fix formatting
      submodule: teach set-branch subcommand
      tag: advise on nested tags
      t7600: clean up style
      t3507: clean up style
      t7604: clean up style
      t7502: clean up style
      commit: extract cleanup_mode functions to sequencer
      parse-options.h: extract common --cleanup option
      merge: cleanup messages like commit
      merge: add scissors line on merge conflict
      cherry-pick/revert: add scissors line on merge conflict
      *.[ch]: remove extern from function declarations using spatch
      *.[ch]: remove extern from function declarations using sed
      *.[ch]: manually align parameter lists
      revisions.txt: change "rev" to "<rev>"
      revisions.txt: mark optional rev arguments with []
      revisions.txt: mention <rev>~ form

Derrick Stolee (1):
      trace2:data: pack-objects: add trace2 regions

Elijah Newren (22):
      log,diff-tree: add --combined-all-paths option
      merge-options.txt: correct wording of --no-commit option
      t9300: demonstrate bug with get-mark and empty orphan commits
      git-fast-import.txt: fix wording about where ls command can appear
      fast-import: check most prominent commands first
      fast-import: only allow cat-blob requests where it makes sense
      fast-import: fix erroneous handling of get-mark with empty orphan commits
      Use 'unsigned short' for mode, like diff_filespec does
      merge-recursive: rename merge_options argument from 'o' to 'opt'
      merge-recursive: rename diff_filespec 'one' to 'o'
      merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
      merge-recursive: use 'ci' for rename_conflict_info variable name
      merge-recursive: move some struct declarations together
      merge-recursive: shrink rename_conflict_info
      merge-recursive: remove ren[12]_other fields from rename_conflict_info
      merge-recursive: track branch where rename occurred in rename struct
      merge-recursive: cleanup handle_rename_* function signatures
      merge-recursive: switch from (oid,mode) pairs to a diff_filespec
      t6043: fix copied test description to match its purpose
      merge-recursive: track information associated with directory renames
      merge-recursive: give callers of handle_content_merge() access to contents
      merge-recursive: switch directory rename detection default

Eric Wong (1):
      repack: enable bitmaps by default on bare repos

Jean-Noël Avila (2):
      l10n: fr.po remove obsolete entries
      Doc: fix misleading asciidoc formating

Jeff Hostetler (29):
      trace2: Documentation/technical/api-trace2.txt
      trace2: create new combined trace facility
      trace2: collect Windows-specific process information
      trace2:data: add trace2 regions to wt-status
      trace2:data: add editor/pager child classification
      trace2:data: add trace2 sub-process classification
      trace2:data: add trace2 transport child classification
      trace2:data: add trace2 hook classification
      trace2:data: add trace2 instrumentation to index read/write
      trace2:data: add subverb to checkout command
      trace2:data: add subverb to reset command
      trace2:data: add subverb for rebase
      trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh
      trace2: add for_each macros to clang-format
      progress: add sparse mode to force 100% complete message
      trace2:data: add trace2 data to midx
      midx: add progress indicators in multi-pack-index verify
      midx: during verify group objects by packfile to speed verification
      config: initialize opts structure in repo_read_config()
      trace2: refactor setting process starting time
      trace2: add absolute elapsed time to start event
      trace2: find exec-dir before trace2 initialization
      config: add read_very_early_config()
      trace2: use system/global config for default trace2 settings
      trace2: report peak memory usage of the process
      trace2: clarify UTC datetime formatting
      trace2: make SIDs more unique
      trace2: update docs to describe system/global config settings
      trace2: fixup access problem on /etc/gitconfig in read_very_early_config

Jeff King (88):
      prune: lazily perform reachability traversal
      prune: use bitmaps for reachability traversal
      prune: check SEEN flag for reachability
      t5304: rename "sha1" variables to "oid"
      diff: drop options parameter from diffcore_fix_diff_index()
      diff: drop unused color reset parameters
      diff: drop unused emit data parameter from sane_truncate_line()
      diff: drop complete_rewrite parameter from run_external_diff()
      merge-recursive: drop several unused parameters
      pack-objects: drop unused parameter from oe_map_new_pack()
      files-backend: drop refs parameter from split_symref_update()
      ref-filter: drop unused buf/sz pairs
      ref-filter: drop unused "obj" parameters
      ref-filter: drop unused "sz" parameters
      diff: reuse diff setup for --no-index case
      bisect: use string arguments to feed internal diff-tree
      bisect: fix internal diff-tree config loading
      bisect: make diff-tree output prettier
      fetch: avoid calling write_or_die()
      fetch: ignore SIGPIPE during network operation
      rev-list: allow cached objects in existence check
      doc/fsck: clarify --connectivity-only behavior
      fsck: always compute USED flags for unreachable objects
      compat/bswap: add include header guards
      config: document --type=color output is a complete line
      line-log: suppress diff output with "-s"
      line-log: detect unsupported formats
      point pull requesters to GitGitGadget
      Makefile: fix unaligned loads in sha1dc with UBSan
      t5310: correctly remove bitmaps for jgit test
      pack-objects: default to writing bitmap hash-cache
      perf-lib.sh: rely on test-lib.sh for --tee handling
      revision: drop some unused "revs" parameters
      log: drop unused rev_info from early output
      log: drop unused "len" from show_tagger()
      update-index: drop unused prefix_length parameter from do_reupdate()
      test-date: drop unused "now" parameter from parse_dates()
      unpack-trees: drop name_entry from traverse_by_cache_tree()
      unpack-trees: drop unused error_type parameters
      report_path_error(): drop unused prefix parameter
      fetch_pack(): drop unused parameters
      parse-options: drop unused ctx parameter from show_gitcomp()
      pretty: drop unused "type" parameter in needs_rfc2047_encoding()
      pretty: drop unused strbuf from parse_padding_placeholder()
      git: read local config in --list-cmds
      completion: fix multiple command removals
      parse_opt_ref_sorting: always use with NONEG flag
      refs/files-backend: handle packed transaction prepare failure
      refs/files-backend: don't look at an aborted transaction
      http: factor out curl result code normalization
      http: normalize curl results for dumb loose and alternates fetches
      http: use normalize_curl_result() instead of manual conversion
      revision: use a prio_queue to hold rewritten parents
      get_commit_tree(): return NULL for broken tree
      rev-list: let traversal die when --missing is not in use
      rev-list: detect broken root trees
      test-prio-queue: use xmalloc
      xdiff: use git-compat-util
      xdiff: use xmalloc/xrealloc
      progress: use xmalloc/xcalloc
      t5516: drop ok=sigpipe from unreachable-want tests
      t5530: check protocol response for "not our ref"
      upload-pack: send ERR packet for non-tip objects
      pkt-line: prepare buffer before handling ERR packets
      fetch: use free_refs()
      remote.c: make singular free_ref() public
      fetch: do not consider peeled tags as advertised tips
      packfile.h: drop extern from function declarations
      pack-revindex: open index if necessary
      t5319: fix bogus cat-file argument
      t5319: drop useless --buffer from cat-file
      midx: check both pack and index names for containment
      packfile: fix pack basename computation
      http: simplify parsing of remote objects/info/packs
      server-info: fix blind pointer arithmetic
      server-info: simplify cleanup in parse_pack_def()
      server-info: use strbuf to read old info/packs file
      server-info: drop nr_alloc struct member
      server-info: drop objdirlen pointer arithmetic
      update_info_refs(): drop unused force parameter
      t5304: add a test for pruning with bitmaps
      untracked-cache: be defensive about missing NULs in index
      untracked-cache: simplify parsing by dropping "next"
      untracked-cache: simplify parsing by dropping "len"
      p5302: create the repo in each index-pack test
      doc/ls-files: put nested list for "-t" option into block
      t/perf: depend on perl JSON only when using --codespeed
      t/perf: add perf script for partial clones

Jiang Xin (4):
      t5323: test cases for git-pack-redundant
      pack-redundant: delay creation of unique_objects
      pack-redundant: rename pack_list.all_objects
      pack-redundant: consistent sort method

Joel Teichroeb (5):
      stash: improve option parsing test coverage
      stash: convert apply to builtin
      stash: convert drop and clear to builtin
      stash: convert branch to builtin
      stash: convert pop to builtin

Joey Hess (1):
      convert: avoid malloc of original file size

Johannes Schindelin (55):
      ident: add the ability to provide a "fallback identity"
      travis: remove the hack to build the Windows job on Azure Pipelines
      tests: let --stress-limit=<N> imply --stress
      tests: introduce --stress-jobs=<N>
      built-in rebase: no need to check out `onto` twice
      built-in rebase: use the correct reflog when switching branches
      built-in rebase: demonstrate that ORIG_HEAD is not set correctly
      built-in rebase: set ORIG_HEAD just once, before the rebase
      Makefile: use `git ls-files` to list header files, if possible
      curl: anonymize URLs in error messages and warnings
      remote-curl: mark all error messages for translation
      stash: add back the original, scripted `git stash`
      stash: optionally use the scripted version again
      tests: add a special setup where stash.useBuiltin is off
      legacy stash: fix "rudimentary backport of -q"
      built-in stash: handle :(glob) pathspecs again
      mingw: drop MakeMaker reference
      mingw: allow building with an MSYS2 runtime v3.x
      rebase: deprecate --preserve-merges
      mingw: respect core.hidedotfiles = false in git-init again
      test-lib: introduce 'test_atexit'
      git-daemon: use 'test_atexit` to stop 'git-daemon'
      git p4 test: use 'test_atexit' to kill p4d and the watchdog process
      rebase -i: demonstrate obscure loose object cache bug
      sequencer: improve error message when an OID could not be parsed
      sequencer: move stale comment into correct location
      get_oid(): when an object was not found, try harder
      difftool: remove obsolete (and misleading) comment
      parse-options: make OPT_ARGUMENT() more useful
      difftool: allow running outside Git worktrees with --no-index
      docs: move gitremote-helpers into section 7
      docs: do not document the `git remote-testgit` command
      check-docs: really look at the documented commands again
      check-docs: do not expect guide pages to correspond to commands
      check-docs: fix for setups where executables have an extension
      tests (rebase): spell out the `--keep-empty` option
      tests (rebase): spell out the `--force-rebase` option
      t7810: do not abbreviate `--no-exclude-standard` nor `--invert-match`
      t5531: avoid using an abbreviated option
      tests (push): do not abbreviate the `--follow-tags` option
      tests (status): spell out the `--find-renames` option in full
      tests (pack-objects): use the full, unabbreviated `--revs` option
      t3301: fix false negative
      untracked cache: fix off-by-one
      tests: disallow the use of abbreviated options (by default)
      t9822: skip tests if file names cannot be ISO-8859-1 encoded
      macOS: make sure that gettext is found
      remote-testgit: move it into the support directory for t5801
      Makefile: drop the NO_INSTALL variable
      help -a: do not list commands that are excluded from the build
      check-docs: allow command-list.txt to contain excluded commands
      docs: exclude documentation for commands that have been excluded
      check-docs: do not bother checking for legacy scripts' documentation
      test-tool: handle the `-C <directory>` option just like `git`
      Turn `git serve` into a test helper

Jonathan Tan (24):
      remote-curl: reduce scope of rpc_state.argv
      remote-curl: reduce scope of rpc_state.stdin_preamble
      remote-curl: reduce scope of rpc_state.result
      remote-curl: refactor reading into rpc_state's buf
      remote-curl: use post_rpc() for protocol v2 also
      tests: define GIT_TEST_PROTOCOL_VERSION
      t5601: check ssh command only with protocol v0
      tests: always test fetch of unreachable with v0
      t5503: fix overspecification of trace expectation
      t5512: compensate for v0 only sending HEAD symrefs
      t5700: only run with protocol version 1
      tests: fix protocol version for overspecifications
      t5552: compensate for v2 filtering ref adv.
      submodule: explain first attempt failure clearly
      t5551: mark half-auth no-op fetch test as v0-only
      fetch-pack: call prepare_shallow_info only if v0
      fetch-pack: respect --no-update-shallow in v2
      sha1-file: support OBJECT_INFO_FOR_PREFETCH
      fetch-pack: binary search when storing wanted-refs
      diff: batch fetching of missing blobs
      pack-objects: write objects packed to trace2
      transport: die if server options are unsupported
      clone: send server options when using protocol v2
      worktree: update is_bare heuristics

Jordi Mas (1):
      l10n: Fixes to Catalan translation

Josh Steadmon (4):
      protocol-capabilities.txt: document symref
      trace2: write to directory targets
      clone: do faster object check for partial clones
      trace2: fix incorrect function pointer check

Junio C Hamano (14):
      test: caution on our version of 'yes'
      builtin/log: downcase the beginning of error messages
      format-patch: notice failure to open cover letter for writing
      Start 2.22 cycle
      The second batch
      The third batch
      The fourth batch
      gettext tests: export the restored GIT_TEST_GETTEXT_POISON
      The fifth batch
      The sixth batch
      Makefile: dedup list of files obtained from ls-files
      The seventh batch
      The eighth batch
      Git 2.22-rc0

Kyle Meyer (5):
      rebase docs: fix "gitlink" typo
      submodule: refuse to add repository with no commits
      dir: do not traverse repositories with no commits
      add: error appropriately on repository with no commits
      t3000 (ls-files -o): widen description to reflect current tests

Martin Ågren (14):
      setup: free old value before setting `work_tree`
      setup: fix memory leaks with `struct repository_format`
      config/diff.txt: drop spurious backtick
      config/fsck.txt: avoid starting line with dash
      git.txt: remove empty line before list continuation
      git-svn.txt: drop escaping '\' that ends up being rendered
      Documentation: turn middle-of-line tabs into spaces
      Documentation/Makefile: add missing xsl dependencies for manpages
      Documentation/Makefile: add missing dependency on asciidoctor-extensions
      asciidoctor-extensions: fix spurious space after linkgit
      Doc: auto-detect changed build flags
      doc-diff: let `render_tree()` take an explicit directory name
      doc-diff: support diffing from/to AsciiDoc(tor)
      doc-diff: add `--cut-header-footer`

Matthew Kraai (1):
      t3903: add test for --intent-to-add file

Michal Suchanek (1):
      worktree: fix worktree add race

Mike Hommey (1):
      fix pack protocol example client/server communication

Nguyễn Thái Ngọc Duy (124):
      parse-options.h: remove extern on function prototypes
      parse-options: add one-shot mode
      parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN
      parse-options: add OPT_BITOP()
      parse-options: stop abusing 'callback' for lowlevel callbacks
      parse-options: avoid magic return codes
      parse-options: allow ll_callback with OPTION_CALLBACK
      diff.h: keep forward struct declarations sorted
      diff.h: avoid bit fields in struct diff_flags
      diff.c: prepare to use parse_options() for parsing
      diff.c: convert -u|-p|--patch
      diff.c: convert -U|--unified
      diff.c: convert -W|--[no-]function-context
      diff.c: convert --raw
      read-cache.c: fix writing "link" index ext with null base oid
      completion: add more parameter value completion
      diff-parseopt: convert --patch-with-raw
      diff-parseopt: convert --numstat and --shortstat
      diff-parseopt: convert --dirstat and friends
      diff-parseopt: convert --check
      diff-parseopt: convert --summary
      diff-parseopt: convert --patch-with-stat
      diff-parseopt: convert --name-only
      diff-parseopt: convert --name-status
      diff-parseopt: convert -s|--no-patch
      diff-parseopt: convert --stat*
      diff-parseopt: convert --[no-]compact-summary
      diff-parseopt: convert --output-*
      diff-parseopt: convert -B|--break-rewrites
      diff-parseopt: convert -M|--find-renames
      diff-parseopt: convert -D|--irreversible-delete
      diff-parseopt: convert -C|--find-copies
      diff-parseopt: convert --find-copies-harder
      diff-parseopt: convert --no-renames|--[no--rename-empty
      diff-parseopt: convert --relative
      diff-parseopt: convert --[no-]minimal
      diff-parseopt: convert --ignore-some-changes
      Delete check-racy.c
      diff-parseopt: convert --[no-]indent-heuristic
      diff-parseopt: convert --patience
      diff-parseopt: convert --histogram
      diff-parseopt: convert --diff-algorithm
      diff-parseopt: convert --anchored
      diff-parseopt: convert --binary
      diff-parseopt: convert --full-index
      diff-parseopt: convert -a|--text
      diff-parseopt: convert -R
      diff-parseopt: convert --[no-]follow
      diff-parseopt: convert --[no-]color
      diff-parseopt: convert --word-diff
      diff-parseopt: convert --word-diff-regex
      diff-parseopt: convert --color-words
      diff-parseopt: convert --exit-code
      diff-parseopt: convert --quiet
      diff-parseopt: convert --ext-diff
      diff-parseopt: convert --textconv
      diff-parseopt: convert --ignore-submodules
      diff-parseopt: convert --submodule
      files-backend.c: factor out per-worktree code in loose_fill_ref_dir()
      files-backend.c: reduce duplication in add_per_worktree_entries_to_dir()
      Make sure refs/rewritten/ is per-worktree
      unpack-trees: fix oneway_merge accidentally carry over stage index
      checkout.txt: note about losing staged changes with --merge
      commit: improve error message in "-a <paths>" case
      unpack-trees: keep gently check inside add_rejected_path
      unpack-trees: rename "gently" flag to "quiet"
      read-tree: add --quiet
      checkout: prevent losing staged changes with --merge
      diff-parseopt: convert --ws-error-highlight
      diff-parseopt: convert --ita-[in]visible-in-index
      diff-parseopt: convert -z
      diff-parseopt: convert -l
      diff-parseopt: convert -S|-G
      diff-parseopt: convert --pickaxe-all|--pickaxe-regex
      diff-parseopt: convert -O
      diff-parseopt: convert --find-object
      diff-parseopt: convert --diff-filter
      diff-parseopt: convert --[no-]abbrev
      diff-parseopt: convert --[src|dst]-prefix
      diff-parseopt: convert --line-prefix
      diff-parseopt: convert --no-prefix
      diff-parseopt: convert --inter-hunk-context
      diff-parseopt: convert --[no-]color-moved
      diff-parseopt: convert --color-moved-ws
      diff.c: allow --no-color-moved-ws
      range-diff: use parse_options() instead of diff_opt_parse()
      diff --no-index: use parse_options() instead of diff_opt_parse()
      am: avoid diff_opt_parse()
      config: correct '**' matching in includeIf patterns
      interpret-trailers.txt: start the desc line with a capital letter
      read-tree.txt: clarify --reset and worktree changes
      packfile.c: add repo_approximate_object_count()
      refs.c: add refs_ref_exists()
      refs.c: add refs_shorten_unambiguous_ref()
      refs.c: remove the_repo from substitute_branch_name()
      refs.c: remove the_repo from expand_ref()
      refs.c: add repo_dwim_ref()
      refs.c: add repo_dwim_log()
      refs.c: remove the_repo from read_ref_at()
      submodule foreach: fix "<command> --quiet" not being respected
      commit.cocci: refactor code, avoid double rewrite
      commit.c: add repo_get_commit_tree()
      sha1-name.c: remove the_repo from sort_ambiguous()
      sha1-name.c: remove the_repo from find_abbrev_len_packed()
      sha1-name.c: add repo_find_unique_abbrev_r()
      sha1-name.c: store and use repo in struct disambiguate_state
      sha1-name.c: add repo_for_each_abbrev()
      sha1-name.c: remove the_repo from get_short_oid()
      sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
      sha1-name.c: remove the_repo from interpret_branch_mark()
      sha1-name.c: add repo_interpret_branch_name()
      sha1-name.c: remove the_repo from get_oid_oneline()
      sha1-name.c: remove the_repo from get_describe_name()
      sha1-name.c: remove the_repo from get_oid_basic()
      sha1-name.c: remove the_repo from get_oid_1()
      sha1-name.c: remove the_repo from handle_one_ref()
      sha1-name.c: remove the_repo from diagnose_invalid_index_path()
      sha1-name.c: remove the_repo from resolve_relative_path()
      sha1-name.c: remove the_repo from get_oid_with_context_1()
      sha1-name.c: add repo_get_oid()
      submodule-config.c: use repo_get_oid for reading .gitmodules
      sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
      sha1-name.c: remove the_repo from other get_oid_*
      sha1-name.c: remove the_repo from get_oid_mb()

Paul-Sebastian Ungureanu (17):
      sha1-name.c: add `get_oidf()` which acts like `get_oid()`
      strbuf.c: add `strbuf_join_argv()`
      strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()`
      t3903: modernize style
      stash: rename test cases to be more descriptive
      stash: add tests for `git stash show` config
      stash: mention options in `show` synopsis
      stash: convert list to builtin
      stash: convert show to builtin
      stash: convert store to builtin
      stash: convert create to builtin
      stash: convert push to builtin
      stash: make push -q quiet
      stash: convert save to builtin
      stash: optimize `get_untracked_files()` and `check_changes()`
      stash: replace all `write-tree` child processes with API calls
      stash: convert `stash--helper.c` into `stash.c`

Philip Oakley (2):
      rerere doc: quote `rerere.enabled`
      describe doc: remove '7-char' abbreviation reference

Phillip Wood (21):
      am/cherry-pick/rebase/revert: document --rerere-autoupdate
      merge: tweak --rerere-autoupdate documentation
      sequencer: break some long lines
      cherry-pick: demonstrate option amnesia
      cherry-pick --continue: remember options
      commit/reset: try to clean up sequencer state
      fix cherry-pick/revert status after commit
      sequencer: fix cleanup with --signoff and -x
      sequencer.c: save and restore cleanup mode
      sequencer: always discard index after checkout
      rebase: don't translate trace strings
      rebase: rename write_basic_state()
      rebase: use OPT_RERERE_AUTOUPDATE()
      rebase -i: combine rebase--interactive.c with rebase.c
      rebase -i: remove duplication
      rebase -i: use struct commit when parsing options
      rebase -i: use struct object_id for squash_onto
      rebase -i: use struct rebase_options to parse args
      rebase -i: use struct rebase_options in do_interactive_rebase()
      rebase: use a common action enum
      rebase -i: run without forking rebase--interactive

Ramsay Jones (2):
      prune-packed: check for too many arguments
      Makefile: fix 'hdr-check' when GCRYPT not installed

René Scharfe (1):
      get-tar-commit-id: parse comment record

Robert P. J. Day (3):
      mention use of "hooks.allownonascii" in "man githooks"
      docs/git-gc: fix typo "--prune=all" to "--prune=now"
      attr.c: ".gitattribute" -> ".gitattributes" (comments)

Rohit Ashiwal (3):
      test functions: add function `test_file_not_empty`
      t3600: modernize style
      t3600: use helpers to replace test -d/f/e/s <path>

SZEDER Gábor (23):
      test-lib: fix interrupt handling with 'dash' and '--verbose-log -x'
      t/lib-git-daemon: make sure to kill the 'git-daemon' process
      tests: use 'test_atexit' to stop httpd
      t0301-credential-cache: use 'test_atexit' to stop the credentials helper
      git p4 test: clean up the p4d cleanup functions
      git p4 test: simplify timeout handling
      git p4 test: disable '-x' tracing in the p4d watchdog loop
      t9811-git-p4-label-import: fix pipeline negation
      t5318-commit-graph: remove unused variable
      Documentation/git-diff-tree.txt: fix formatting
      Documentation/technical/api-config.txt: fix formatting
      Documentation/technical/protocol-v2.txt: fix formatting
      ci: install Asciidoctor in 'ci/install-dependencies.sh'
      index-pack: show progress while checking objects
      ci: stick with Asciidoctor v1.5.8 for now
      ci: fix AsciiDoc/Asciidoctor stderr check in the documentation build job
      progress: make display_progress() return void
      progress: assemble percentage and counters in a strbuf before printing
      blame: default to HEAD in a bare repo when no start commit is given
      builtin rebase: use FREE_AND_NULL
      builtin rebase: use oideq()
      progress: clear previous progress update dynamically
      progress: break too long progress bar lines

Sun Chao (2):
      pack-redundant: delete redundant code
      pack-redundant: new algorithm to find min packs

Sven Strickroth (1):
      MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()

Taylor Blau (4):
      t: move 'hex2oct' into test-lib-functions.sh
      t: introduce tests for unexpected object types
      list-objects.c: handle unexpected non-blob entries
      list-objects.c: handle unexpected non-tree entries

Thomas Gummerer (15):
      move worktree tests to t24*
      entry: factor out unlink_entry function
      entry: support CE_WT_REMOVE flag in checkout_entry
      read-cache: add invalidate parameter to remove_marked_cache_entries
      checkout: clarify comment
      checkout: factor out mark_cache_entry_for_checkout function
      checkout: introduce --{,no-}overlay option
      checkout: introduce checkout.overlayMode config
      revert "checkout: introduce checkout.overlayMode config"
      ident: don't require calling prepare_fallback_ident first
      stash: drop unused parameter
      stash: pass pathspec as pointer
      glossary: add definition for overlay
      stash: setup default diff output format if necessary
      ls-files: use correct format string

Todd Zullinger (7):
      t4038-diff-combined: quote paths with whitespace
      t9902: test multiple removals via completion.commands
      completion: use __git when calling --list-cmds
      Documentation/rev-list-options: wrap --date=<format> block with "--"
      Documentation/git-status: fix titles in porcelain v2 section
      Documentation/git-svn: improve asciidoctor compatibility
      Documentation/git-show-branch: avoid literal {apostrophe}

Torsten Bögershausen (1):
      trace2: NULL is not allowed for va_list

Trần Ngọc Quân (1):
      l10n: Updated Vietnamese translation for v2.21 rd2

Vadim Kochan (1):
      autoconf: #include <libintl.h> when checking for gettext()

William Hubbs (1):
      config: allow giving separate author and committer idents

Yash Bhatambare (1):
      gitattributes.txt: fix typo

brian m. carlson (35):
      t/lib-submodule-update: use appropriate length constant
      khash: move oid hash table definition
      pack-bitmap: make bitmap header handling hash agnostic
      pack-bitmap: convert struct stored_bitmap to object_id
      pack-bitmap: replace sha1_to_hex
      pack-bitmap: switch hard-coded constants to the_hash_algo
      pack-bitmap: switch hash tables to use struct object_id
      submodule: avoid hard-coded constants
      notes-merge: switch to use the_hash_algo
      notes: make hash size independent
      notes: replace sha1_to_hex
      object-store: rename and expand packed_git's sha1 member
      builtin/name-rev: make hash-size independent
      fast-import: make hash-size independent
      fast-import: replace sha1_to_hex
      builtin/am: make hash size independent
      builtin/pull: make hash-size independent
      http-push: convert to use the_hash_algo
      http-backend: allow 64-character hex names
      http-push: remove remaining uses of sha1_to_hex
      http-walker: replace sha1_to_hex
      http: replace hard-coded constant with the_hash_algo
      http: compute hash of downloaded objects using the_hash_algo
      http: replace sha1_to_hex
      remote-curl: make hash size independent
      hash: add a function to lookup hash algorithm by length
      builtin/get-tar-commit-id: make hash size independent
      archive: convert struct archiver_args to object_id
      refspec: make hash size independent
      builtin/difftool: use parse_oid_hex
      dir: make untracked cache extension hash size independent
      read-cache: read data in a hash-independent way
      Git.pm: make hash size independent
      gitweb: make hash size independent
      send-email: default to quoted-printable when CR is present

Ævar Arnfjörð Bjarmason (36):
      receive-pack: fix use-after-free bug
      commit-graph tests: split up corrupt_graph_and_verify()
      commit-graph tests: test a graph that's too small
      Makefile: remove an out-of-date comment
      Makefile: move "strip" assignment down from flags
      Makefile: add/remove comments at top and tweak whitespace
      Makefile: Move *_LIBS assignment into its own section
      Makefile: move the setting of *FLAGS closer to "include"
      Makefile: allow for combining DEVELOPER=1 and CFLAGS="..."
      gc: remove redundant check for gc_auto_threshold
      gc: convert to using the_hash_algo
      gc: refactor a "call me once" pattern
      reflog tests: make use of "test_config" idiom
      reflog tests: test for the "points nowhere" warning
      rebase: remove the rebase.useBuiltin setting
      gc docs: modernize the advice for manually running "gc"
      gc docs: stop noting "repack" flags
      gc docs: clean grammar for "gc.bigPackThreshold"
      commit-graph: fix segfault on e.g. "git status"
      commit-graph: don't early exit(1) on e.g. "git status"
      commit-graph: don't pass filename to load_commit_graph_one_fd_st()
      commit-graph verify: detect inability to read the graph
      commit-graph write: don't die if the existing graph is corrupt
      commit-graph: improve & i18n error messages
      reflog tests: assert lack of early exit with expiry="never"
      gc: handle & check gc.reflogExpire config
      test-lib: whitelist GIT_TR2_* in the environment
      gc docs: include the "gc.*" section from "config" in "gc"
      gc docs: re-flow the "gc.*" section in "config"
      gc docs: fix formatting for "gc.writeCommitGraph"
      gc docs: note how --aggressive impacts --window & --depth
      gc docs: downplay the usefulness of --aggressive
      gc docs: note "gc --aggressive" in "fast-import"
      gc docs: clarify that "gc" doesn't throw away referenced objects
      gc docs: remove incorrect reference to gc.auto=0
      trace2: fix up a missing "leave" entry point


Version v2.21.4; changes since v2.21.3:
---------------------------------------

Johannes Schindelin (6):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5
      Git 2.21.4

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.21.3; changes since v2.21.2:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.21.2; changes since v2.21.1:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.21.1; changes since v2.21.0:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (33):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3
      Git 2.18.2
      Git 2.19.3
      t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x
      Git 2.20.2
      mingw: detect when MSYS2's sh is to be spawned more robustly
      mingw: use MSYS2 quoting even when spawning shell scripts
      mingw: fix quoting of empty arguments for `sh`
      t7415: drop v2.20.x-specific work-around
      mingw: sh arguments need quoting in more circumstances
      Git 2.21.1

Jonathan Nieder (3):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules
      submodule: defend against submodule.update = !command in .gitmodules


Version v2.21.0; changes since v2.21.0-rc2:
-------------------------------------------

Alessandro Menti (1):
      l10n: it: update the Italian translation

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (4363t)

Christopher Díaz Riveros (1):
      l10n: es: 2.21.0 round 2

Fabien Villepinte (2):
      l10n: fr.po Fix some typos
      l10n: fr.po Fix some typos from round3

Fangyi Zhou (1):
      l10n: zh_CN: Revision for git v2.21.0 l10n

Jean-Noël Avila (1):
      l10n: fr.po v2.21.0 rnd 2

Jiang Xin (3):
      l10n: git.pot: v2.21.0 round 1 (214 new, 38 removed)
      l10n: git.pot: v2.21.0 round 2 (3 new, 3 removed)
      l10n: zh_CN: for git v2.21.0 l10n round 1~2

Jimmy Angelakos (1):
      l10n: el: add Greek l10n team and essential translations

Johannes Schindelin (1):
      README: adjust for final Azure Pipeline ID

Jordi Mas (2):
      l10n: Update Catalan translation
      l10n: Fixes to Catalan translation

Junio C Hamano (1):
      Git 2.21

Nguyễn Thái Ngọc Duy (1):
      l10n: bg.po: correct typo

Peter Krefting (1):
      l10n: Update Swedish translation (4363t0f0u)

Ralf Thielow (1):
      l10n: update German translation

Sebastian Staudt (3):
      l10n: de.po: consistent translation of 'root commit'
      l10n: de.po: fix a message for index-pack.c
      l10n: de.po: fix grammar in message for tag.c

Yoichi Nakayama (1):
      checkout doc: fix an unmatched double-quote pair

Zhilei Han (1):
      l10n: zh_CN: fix typo of submodule init message

Ævar Arnfjörð Bjarmason (3):
      tests: avoid syntax triggering old dash bug
      tests: fix unportable "\?" and "\+" regex syntax
      commit-graph tests: fix unportable "dd" invocation


Version v2.21.0-rc2; changes since v2.21.0-rc1:
-----------------------------------------------

Elijah Newren (1):
      git-rebase.txt: update to reflect merge now implemented on sequencer

Emilio Cobos Álvarez (1):
      docs/git-rebase: remove redundant entry in incompatible options list

Johannes Schindelin (2):
      mingw: safe-guard a bit more against getenv() problems
      tests: teach the test-tool to generate NUL bytes and use it

Junio C Hamano (3):
      t1404: do not rely on the exact phrasing of strerror()
      Revert "t5562: replace /dev/zero with a pipe from generate_zero_bytes"
      Git 2.21-rc2

Max Kirillov (2):
      t5562: do not depend on /dev/zero
      t5562: do not reuse output files

Todd Zullinger (1):
      t/lib-httpd: pass GIT_TEST_SIDEBAND_ALL through Apache


Version v2.21.0-rc1; changes since v2.21.0-rc0:
-----------------------------------------------

Derrick Stolee (1):
      Makefile: add coverage-prove target

Jean-Noël Avila (1):
      Fix typos in translatable strings for v2.21.0

Jeff King (4):
      remote-curl: refactor smart-http discovery
      remote-curl: tighten "version 2" check for smart-http
      RelNotes/2.21: tweak "--date=auto" mention
      RelNotes/2.21: misc typo/English fixups

Johannes Schindelin (4):
      Revert "rebase: introduce a shortcut for --reschedule-failed-exec"
      mingw: fix CPU reporting in `git version --build-options`
      .mailmap: map Clemens Buchacher's mail addresses
      mingw: use a more canonical method to fix the CPU reporting

Josh Steadmon (3):
      t5551: test server-side ERR packet
      fuzz-commit-graph: initialize repo object
      object: fix leak of shallow_stat

Junio C Hamano (3):
      ci: clear and mark MAKEFLAGS exported just once
      Seventh batch for 2.21
      Git 2.21-rc1

Katrin Leinweber (1):
      doc: prevent overflowing <code> tag in rendered HTML

Kevin Daudt (1):
      t0028: fix wrong octal values for BOM in setup

Luke Diamand (1):
      git-p4: remove ticket expiry test

Nguyễn Thái Ngọc Duy (5):
      checkout: update count-checkouts messages
      checkout: count and print -m paths separately
      imap-send.c: add a missing space in error message
      git-compat-util: work around fileno(fp) that is a macro
      get_oid_with_context(): match prototype and implementation

Ramsay Jones (1):
      sequencer: make sign_off_header a file local symbol

Randall S. Becker (6):
      t5403: correct bash ambiguous redirect error in subtest 8 by quoting $GIT_DIR
      config.mak.uname: add FREAD_READS_DIRECTORIES for NonStop platform
      test-lib-functions.sh: add generate_zero_bytes function
      t5318: replace use of /dev/zero with generate_zero_bytes
      t5562: replace /dev/zero with a pipe from generate_zero_bytes
      config.mak.uname: move location of bash on NonStop to CoreUtils

SZEDER Gábor (3):
      ci: make sure we build Git parallel
      test-lib: make '--stress' more bisect-friendly
      test-lib: fix non-portable pattern bracket expressions

Todd Zullinger (2):
      t/lib-gpg: quote path to ${GNUPGHOME}/trustlist.txt
      t/lib-gpg: drop redundant killing of gpg-agent

brian m. carlson (1):
      utf8: handle systems that don't write BOM for UTF-16

Ævar Arnfjörð Bjarmason (1):
      rebase: fix regression in rebase.useBuiltin=false test mode


Version v2.21.0-rc0; changes since v2.20.5:
-------------------------------------------

Arti Zirk (1):
      git-instaweb: add Python builtin http.server support

Ben Peart (2):
      checkout: add test demonstrating regression with checkout -b on initial commit
      checkout: fix regression in checkout -b on intitial checkout

Brandon Richardson (1):
      commit-tree: add missing --gpg-sign flag

Brandon Williams (1):
      mailmap: update brandon williams's email address

Carlo Marcelo Arenas Belón (4):
      t6036: avoid non-portable "cp -a"
      tests: add lint for non portable cp -a
      t5004: avoid using tar for empty packages
      config.mak.uname: OpenBSD uses BSD semantics with fread for directories

Chayoung You (3):
      zsh: complete unquoted paths with spaces correctly
      completion: treat results of git ls-tree as file paths
      completion: fix typo in git-completion.bash

Christian Couder (3):
      fetch: fix extensions.partialclone name in error message
      partial-clone: add missing 'is' in doc
      helper/test-ref-store: fix "new-sha1" vs "old-sha1" typo

David Turner (1):
      Do not print 'dangling' for cat-file in case of ambiguity

Denis Ovsienko (1):
      docs: fix $strict_export text in gitweb.conf.txt

Derrick Stolee (8):
      merge-recursive: combine error handling
      commit-graph: writing missing parents is a BUG
      git-gc.txt: fix typo about gc.writeCommitGraph
      revision: add mark_tree_uninteresting_sparse
      list-objects: consume sparse tree walk
      revision: implement sparse algorithm
      pack-objects: create pack.useSparse setting
      pack-objects: create GIT_TEST_PACK_SPARSE

Elijah Newren (30):
      t6042: add tests for consistency in file collision conflict handling
      t6036, t6042: testcases for rename collision of already conflicting files
      merge-recursive: increase marker length with depth of recursion
      merge-recursive: new function for better colliding conflict resolutions
      merge-recursive: fix rename/add conflict handling
      merge-recursive: improve handling for rename/rename(2to1) conflicts
      merge-recursive: use handle_file_collision for add/add conflicts
      merge-recursive: improve rename/rename(1to2)/add[/add] handling
      t6036, t6043: increase code coverage for file collision handling
      fast-export: convert sha1 to oid
      git-fast-import.txt: fix documentation for --quiet option
      git-fast-export.txt: clarify misleading documentation about rev-list args
      fast-export: use value from correct enum
      fast-export: avoid dying when filtering by paths and old tags exist
      fast-export: move commit rewriting logic into a function for reuse
      fast-export: when using paths, avoid corrupt stream with non-existent mark
      fast-export: ensure we export requested refs
      fast-export: add --reference-excluded-parents option
      fast-import: remove unmaintained duplicate documentation
      fast-export: add a --show-original-ids option to show original names
      git-rebase.txt: update note about directory rename detection and am
      rebase: make builtin and legacy script error messages the same
      rebase: fix incompatible options error message
      t5407: add a test demonstrating how interactive handles --skip differently
      am, rebase--merge: do not overlook --skip'ed commits with post-rewrite
      git-rebase, sequencer: extend --quiet option for the interactive machinery
      git-legacy-rebase: simplify unnecessary triply-nested if
      rebase: define linearization ordering and enforce it
      rebase: implement --merge via the interactive machinery
      git-show-ref.txt: fix order of flags

Eric Sunshine (1):
      doc/config: do a better job of introducing 'worktree.guessRemote'

Eric Wong (2):
      banned.h: mark strncat() as banned
      t1512: test ambiguous cat-file --batch and --batch-output

Erin Dahlgren (1):
      Simplify handling of setup_git_directory_gently() failure cases.

Force Charlie (1):
      http: add support selecting http version

Frank Dana (1):
      docs/gitweb.conf: config variable typo

Issac Trotts (1):
      log: add %S option (like --source) to log --format

Jean-Noël Avila (2):
      Documentation/Makefile add optional targets for l10n
      doc: tidy asciidoc style

Jeff King (50):
      fsck: do not reuse child_process structs
      submodule--helper: prefer strip_suffix() to ends_with()
      rename "alternate_object_database" to "object_directory"
      sha1_file_name(): overwrite buffer instead of appending
      handle alternates paths the same as the main object dir
      sha1-file: use an object_directory for the main object dir
      object-store: provide helpers for loose_objects_cache
      sha1-file: use loose object cache for quick existence check
      fetch-pack: drop custom loose object cache
      odb_load_loose_cache: fix strbuf leak
      transport-helper: drop read/write errno checks
      sha1-file: fix outdated sha1 comment references
      update comment references to sha1_object_info()
      http: use struct object_id instead of bare sha1
      sha1-file: modernize loose object file functions
      sha1-file: modernize loose header/stream functions
      sha1-file: convert pass-through functions to object_id
      convert has_sha1_file() callers to has_object_file()
      sha1-file: drop has_sha1_file()
      sha1-file: prefer "loose object file" to "sha1 file" in messages
      sha1-file: avoid "sha1 file" for generic use in messages
      prefer "hash mismatch" to "sha1 mismatch"
      upload-pack: support hidden refs with protocol v2
      remote: check config validity before creating rewrite struct
      get_super_prefix(): copy getenv() result
      commit: copy saved getenv() result
      config: make a copy of $GIT_CONFIG string
      init: make a copy of $GIT_DIR string
      merge-recursive: copy $GITHEAD strings
      builtin_diff(): read $GIT_DIFF_OPTS closer to use
      add: use separate ADD_CACHE_RENORMALIZE flag
      attr: do not mark queried macros as unset
      t4006: resurrect commented-out tests
      diff: clear emitted_symbols flag after use
      combine-diff: factor out stat-format mask
      combine-diff: treat --shortstat like --stat
      combine-diff: treat --summary like --stat
      combine-diff: treat --dirstat like --stat
      match-trees: drop unused path parameter from score functions
      apply: drop unused "def" parameter from find_name_gnu()
      create_bundle(): drop unused "header" parameter
      column: drop unused "opts" parameter in item_length()
      show_date_relative(): drop unused "tz" parameter
      config: drop unused parameter from maybe_remove_section()
      convert: drop len parameter from conversion checks
      convert: drop path parameter from actual conversion functions
      doc/gitattributes: clarify "autocrlf overrides eol"
      docs/config: clarify "text property" in core.eol
      test-date: drop unused parameter to getnanos()
      add_to_index(): convert forgotten HASH_RENORMALIZE check

Johannes Schindelin (35):
      rebase: introduce --reschedule-failed-exec
      rebase: add a config option to default to --reschedule-failed-exec
      rebase: introduce a shortcut for --reschedule-failed-exec
      gc/repack: release packs when needed
      add --edit: truncate the patch file
      t6042: work around speed optimization on Windows
      abspath_part_inside_repo: respect core.ignoreCase
      rebase: move `reset_head()` into a better spot
      rebase: avoid double reflog entry when switching branches
      rebase: teach `reset_head()` to optionally skip the worktree
      built-in rebase: call `git am` directly
      mingw (t5580): document bug when cloning from backslashed UNC paths
      mingw: special-case arguments to `sh`
      tests: explicitly use `test-tool.exe` on Windows
      travis: fix skipping tagged releases
      ci: rename the library of common functions
      ci/lib.sh: encapsulate Travis-specific things
      ci: inherit --jobs via MAKEFLAGS in run-build-and-tests
      ci: use a junction on Windows instead of a symlink
      test-date: add a subcommand to measure times in shell scripts
      tests: optionally write results as JUnit-style .xml
      ci/lib.sh: add support for Azure Pipelines
      Add a build definition for Azure DevOps
      ci: add a Windows job to the Azure Pipelines definition
      ci: use git-sdk-64-minimal build artifact
      mingw: be more generous when wrapping up the setitimer() emulation
      README: add a build badge (status of the Azure Pipelines build)
      tests: avoid calling Perl just to determine file sizes
      tests: include detailed trace logs with --write-junit-xml upon failure
      mingw: try to work around issues with the test cleanup
      tests: add t/helper/ to the PATH with --with-dashes
      t0061: workaround issues with --with-dashes and RUNTIME_PREFIX
      tests: optionally skip bin-wrappers/
      ci: speed up Windows phase
      ci: parallelize testing on Windows

Jonathan Nieder (1):
      stripspace: allow -s/-c outside git repository

Jonathan Tan (9):
      revision: use commit graph in get_reference()
      fetch-pack: support protocol version 2
      fetch-pack: do not take shallow lock unnecessarily
      upload-pack: teach deepen-relative in protocol v2
      pkt-line: introduce struct packet_writer
      sideband: reverse its dependency on pkt-line
      {fetch,upload}-pack: sideband v2 fetch response
      tests: define GIT_TEST_SIDEBAND_ALL
      ls-refs: filter refs using namespace-stripped name

Josh Steadmon (4):
      filter-options: expand scaled numbers
      commit-graph, fuzz: add fuzzer for commit-graph
      commit-graph: fix buffer read-overflow
      Makefile: correct example fuzz build

Junio C Hamano (11):
      t0027: squelch checkout path run outside test_expect_* block
      t0061: do not fail test if '.' is part of $PATH
      submodule update: run at most one fetch job unless otherwise set
      Prepare for 2.21 cycle to start soonish
      First batch after 2.20.1
      ref-filter: give uintmax_t to format with %PRIuMAX
      Second batch after 2.20
      Third batch after 2.20
      Fourth batch after 2.20
      Fifth batch for 2.21
      Git 2.21-rc0

Kim Gybels (1):
      diff: ensure correct lifetime of external_diff_cmd

Kyle Meyer (2):
      rebase docs: drop stray word in merge command description
      init docs: correct a punctuation typo

Laura Abbott (1):
      git-quiltimport: add --keep-non-patch option

Linus Torvalds (1):
      Add 'human' date format

Luke Diamand (2):
      git-p4: add failing test for shelved CL update involving move/copy
      git-p4: handle update of moved/copied files when updating a shelve

Martin Ågren (5):
      git-column.txt: fix section header
      Documentation: do not nest open blocks
      git-status.txt: render tables correctly under Asciidoctor
      t7510: invoke git as part of &&-chain
      doc-diff: don't `cd_to_toplevel`

Masaya Suzuki (7):
      Use packet_reader instead of packet_read_line
      pack-protocol.txt: accept error packets in any context
      http: support file handles for HTTP_KEEP_ERROR
      http: enable keep_error for HTTP requests
      remote-curl: define struct for CURLOPT_WRITEFUNCTION
      remote-curl: unset CURLOPT_FAILONERROR
      test: test GIT_CURL_VERBOSE=1 shows an error

Matthew DeVore (4):
      list-objects.c: don't segfault for missing cmdline objects
      revision.c: put promisor option in specialized struct
      list-objects-filter: teach tree:# how to handle >0
      tree:<depth>: skip some trees even when collecting omits

Matthieu Moy (1):
      git-multimail: update to release 1.5.0

Max Kirillov (1):
      http-backend: enable cleaning up forked upload/receive-pack on exit

Nguyễn Thái Ngọc Duy (62):
      git.c: mark more strings for translation
      alias.c: mark split_cmdline_strerror() strings for translation
      archive.c: mark more strings for translation
      attr.c: mark more string for translation
      read-cache.c: turn die("internal error") to BUG()
      read-cache.c: mark more strings for translation
      read-cache.c: add missing colon separators
      reflog: mark strings for translation
      remote.c: turn some error() or die() to BUG()
      remote.c: mark messages for translation
      repack: mark more strings for translation
      parse-options: replace opterror() with optname()
      parse-options.c: turn some die() to BUG()
      parse-options.c: mark more strings for translation
      fsck: reduce word legos to help i18n
      fsck: mark strings for translation
      wt-status.c: remove implicit dependency on the_index
      wt-status.c: remove implicit dependency the_repository
      list-objects-filter.c: remove implicit dependency on the_index
      list-objects.c: reduce the_repository references
      notes-merge.c: remove implicit dependency on the_index
      notes-merge.c: remove implicit dependency the_repository
      transport.c: remove implicit dependency on the_index
      sequencer.c: remove implicit dependency on the_index
      sequencer.c: remove implicit dependency on the_repository
      blame.c: remove implicit dependency the_repository
      bisect.c: remove the_repository reference
      branch.c: remove the_repository reference
      bundle.c: remove the_repository references
      cache-tree.c: remove the_repository references
      delta-islands.c: remove the_repository references
      diff-lib.c: remove the_repository references
      line-log.c: remove the_repository reference
      notes-cache.c: remove the_repository references
      pack-check.c: remove the_repository references
      pack-*.c: remove the_repository references
      rerere.c: remove the_repository references
      rebase-interactive.c: remove the_repository references
      checkout: disambiguate dwim tracking branches and local files
      checkout: print something when checking out paths
      tree.c: make read_tree*() take 'struct repository *'
      tree-walk.c: make tree_entry_interesting() take an index
      pathspec.h: clean up "extern" in function declarations
      dir.c: move, rename and export match_attrs()
      tree-walk: support :(attr) matching
      Indent code with TABs
      style: the opening '{' of a function is in a separate line
      worktree: allow to (re)move worktrees with uninitialized submodules
      grep: use grep_opt->repo instead of explict repo argument
      notes-utils.c: remove the_repository references
      repository.c: replace hold_locked_index() with repo_hold_locked_index()
      checkout: avoid the_index when possible
      read-cache.c: kill read_index()
      read-cache.c: replace update_index_if_able with repo_&
      sha1-name.c: remove implicit dependency on the_index
      merge-recursive.c: remove implicit dependency on the_index
      merge-recursive.c: remove implicit dependency on the_repository
      read-cache.c: remove the_* from index_has_changes()
      cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch
      fetch: prefer suffix substitution in compact fetch.output
      help: align the longest command in the command listing
      git-commit.txt: better description what it does

Olga Telezhnaya (6):
      ref-filter: add objectsize:disk option
      ref-filter: add check for negative file size
      ref-filter: add tests for objectsize:disk
      ref-filter: add deltabase option
      ref-filter: add tests for deltabase
      ref-filter: add docs for new options

Orgad Shaneh (2):
      t5403: simplify by using a single repository
      rebase: run post-checkout hook on checkout

Patrick Hogg (2):
      pack-objects: move read mutex to packing_data struct
      pack-objects: merge read_lock and lock in packing_data struct

Peter Osterlund (1):
      git-p4: fix problem when p4 login is not necessary

Phillip Wood (11):
      diff: document --no-color-moved
      Use "whitespace" consistently
      diff: allow --no-color-moved-ws
      diff --color-moved-ws: demonstrate false positives
      diff --color-moved-ws: fix false positives
      diff --color-moved=zebra: be stricter with color alternation
      diff --color-moved-ws: optimize allow-indentation-change
      diff --color-moved-ws: modify allow-indentation-change
      diff --color-moved-ws: handle blank lines
      implicit interactive rebase: don't run sequence editor
      rebase -x: sanity check command

Pranit Bauva (7):
      bisect--helper: `bisect_reset` shell function in C
      bisect--helper: `bisect_write` shell function in C
      wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
      bisect--helper: `check_and_set_terms` shell function in C
      bisect--helper: `bisect_next_check` shell function in C
      bisect--helper: `get_terms` & `bisect_terms` shell function in C
      bisect--helper: `bisect_start` shell function partially in C

Ramsay Jones (2):
      config.mak.uname: remove obsolete SPARSE_FLAGS setting
      Makefile: improve SPARSE_FLAGS customisation

Randall S. Becker (4):
      transport-helper: use xread instead of read
      config.mak.uname: support for modern HPE NonStop config.
      git-compat-util.h: add FLOSS headers for HPE NonStop
      compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop

René Scharfe (5):
      sha1-file: close fd of empty file in map_sha1_file_1()
      object-store: factor out odb_loose_cache()
      object-store: factor out odb_clear_loose_cache()
      object-store: use one oid_array per subdirectory for loose cache
      object-store: retire odb_load_loose_cache()

SZEDER Gábor (22):
      clone: use a more appropriate variable name for the default refspec
      clone: respect additional configured fetch refspecs during initial fetch
      Documentation/clone: document ignored configuration variables
      test-lib: check Bash version for '-x' without using shell arrays
      test-lib: translate SIGTERM and SIGHUP to an exit
      test-lib: extract Bash version check for '-x' tracing
      test-lib: parse options in a for loop to keep $@ intact
      test-lib: parse command line options earlier
      test-lib: consolidate naming of test-results paths
      test-lib: set $TRASH_DIRECTORY earlier
      test-lib-functions: introduce the 'test_set_port' helper function
      test-lib: add the '--stress' option to run a test repeatedly under load
      compat/obstack: fix -Wcast-function-type warnings
      .gitignore: ignore external debug symbols from GCC on macOS
      travis-ci: don't be '--quiet' when running the tests
      travis-ci: switch to Xcode 10.1 macOS image
      travis-ci: build with the right compiler
      commit-graph: rename "large edges" to "extra edges"
      commit-graph: don't call write_graph_chunk_extra_edges() unnecessarily
      strbuf.cocci: suggest strbuf_addbuf() to add one strbuf to an other
      object_as_type: initialize commit-graph-related fields of 'struct commit'
      travis-ci: make the OSX build jobs' 'brew update' more quiet

Sebastian Staudt (2):
      describe: setup working tree for --dirty
      t6120: test for describe with a bare repository

Sergey Organov (4):
      t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks
      cherry-pick: do not error on non-merge commits when '-m 1' is specified
      t3502: validate '-m 1' argument is now accepted for non-merge commits
      t3506: validate '-m 1 -ff' is now accepted for non-merge commits

Shahzad Lone (1):
      various: tighten constness of some local variables

Slavica Djukic (1):
      stash: tolerate missing user identity

Stefan Beller (39):
      sha1_file: allow read_object to read objects in arbitrary repositories
      packfile: allow has_packed_and_bad to handle arbitrary repositories
      diff: align move detection error handling with other options
      object-store: allow read_object_file_extended to read from any repo
      object-store: prepare read_object_file to deal with any repo
      object-store: prepare has_{sha1, object}_file to handle any repo
      object: parse_object to honor its repository argument
      commit: allow parse_commit* to handle any repo
      commit-reach.c: allow paint_down_to_common to handle any repo
      commit-reach.c: allow merge_bases_many to handle any repo
      commit-reach.c: allow remove_redundant to handle any repo
      commit-reach.c: allow get_merge_bases_many_0 to handle any repo
      commit-reach: prepare get_merge_bases to handle any repo
      commit-reach: prepare in_merge_bases[_many] to handle any repo
      commit: prepare get_commit_buffer to handle any repo
      commit: prepare repo_unuse_commit_buffer to handle any repo
      commit: prepare logmsg_reencode to handle arbitrary repositories
      pretty: prepare format_commit_message to handle arbitrary repositories
      sideband: color lines with keyword only
      sha1-array: provide oid_array_filter
      submodule.c: fix indentation
      submodule.c: sort changed_submodule_names before searching it
      submodule.c: tighten scope of changed_submodule_names struct
      submodule: store OIDs in changed_submodule_names
      repository: repo_submodule_init to take a submodule struct
      submodule: migrate get_next_submodule to use repository structs
      submodule.c: fetch in submodules git directory instead of in worktree
      fetch: ensure submodule objects fetched
      submodule update: add regression test with old style setups
      submodule: unset core.worktree if no working tree is present
      submodule--helper: fix BUG message in ensure_core_worktree
      submodule deinit: unset core.worktree
      submodule: use submodule repos for object lookup
      submodule: don't add submodule as odb for push
      commit-graph: convert remaining functions to handle any repo
      commit: prepare free_commit_buffer and release_commit_memory for any repo
      path.h: make REPO_GIT_PATH_FUNC repository agnostic
      t/helper/test-repository: celebrate independence from the_repository
      git-submodule: abort if core.worktree could not be set correctly

Stephen P. Smith (4):
      Replace the proposed 'auto' mode with 'auto:'
      Add 'human' date format documentation
      Add `human` format to test-tool
      Add `human` date format tests.

Sven van Haastregt (1):
      git-submodule.sh: shorten submodule SHA-1s using rev-parse

Thomas Braun (1):
      log -G: ignore binary files

Thomas Gummerer (3):
      t5570: drop racy test
      Revert "t/lib-git-daemon: record daemon log"
      config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users

Torsten Bögershausen (3):
      git clone <url> C:\cygwin\home\USER\repo' is working (again)
      test-lint: only use only sed [-n] [-e command] [-f command_file]
      Support working-tree-encoding "UTF-16LE-BOM"

brian m. carlson (19):
      sha1-file: rename algorithm to "sha1"
      sha1-file: provide functions to look up hash algorithms
      hex: introduce functions to print arbitrary hashes
      cache: make hashcmp and hasheq work with larger hashes
      t: add basic tests for our SHA-1 implementation
      t: make the sha1 test-tool helper generic
      sha1-file: add a constant for hash block size
      t/helper: add a test helper to compute hash speed
      commit-graph: convert to using the_hash_algo
      Add a base implementation of SHA-256 support
      sha256: add an SHA-256 implementation using libgcrypt
      hash: add an SHA-256 implementation using OpenSSL
      tree-walk: copy object ID before use
      match-trees: compute buffer offset correctly when splicing
      match-trees: use hashcpy to splice trees
      tree-walk: store object_id in a separate member
      cache: make oidcpy always copy GIT_MAX_RAWSZ bytes
      fetch-pack: clear alternate shallow when complete
      fetch-pack: clear alternate shallow in one more place

Ævar Arnfjörð Bjarmason (17):
      remote.c: add braces in anticipation of a follow-up change
      i18n: remote.c: mark error(...) messages for translation
      push: improve the error shown on unqualified <dst> push
      push: move unqualified refname error into a function
      push: add an advice on unqualified <dst> push
      push: test that <src> doesn't DWYM if <dst> is unqualified
      push doc: document the DWYM behavior pushing to unqualified <dst>
      commit-graph: split up close_reachable() progress output
      commit-graph write: use pack order when finding commits
      commit-graph write: add "Writing out" progress output
      commit-graph write: more descriptive "writing out" output
      commit-graph write: show progress for object search
      commit-graph write: add more descriptive progress output
      commit-graph write: remove empty line for readability
      commit-graph write: add itermediate progress
      commit-graph write: emit a percentage for all progress
      diff-tree doc: correct & remove wrong documentation


Version v2.20.5; changes since v2.20.4:
---------------------------------------

Johannes Schindelin (5):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6
      Git 2.20.5

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.20.4; changes since v2.20.3:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.20.3; changes since v2.20.2:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.20.2; changes since v2.20.1:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (27):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3
      Git 2.18.2
      Git 2.19.3
      t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x
      Git 2.20.2

Jonathan Nieder (3):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules
      submodule: defend against submodule.update = !command in .gitmodules


Version v2.20.1; changes since v2.20.0:
---------------------------------------

Derrick Stolee (1):
      .gitattributes: ensure t/oid-info/* has eol=lf

Johannes Schindelin (4):
      help.h: fix coding style
      help -a: handle aliases with long names gracefully
      t4256: mark support files as LF-only
      t9902: 'send-email' test case requires PERL

Junio C Hamano (2):
      run-command: report exec failure
      Git 2.20.1

Nguyễn Thái Ngọc Duy (1):
      parse-options: fix SunCC compiler warning


Version v2.20.0; changes since v2.20.0-rc2:
-------------------------------------------

Alexander Shopov (3):
      l10n: bg.po: Updated Bulgarian translation (4185t)
      l10n: bg.po: Updated Bulgarian translation (4185t)
      l10n: bg.po: Updated Bulgarian translation (4187t)

Christopher Díaz Riveros (2):
      l10n: es.po v2.20.0 round 1
      l10n: es.po v2.20.0 round 3

Jean-Noël Avila (2):
      l10n: fr.po v2.20 rnd 1
      l10n: fr.po v2.20.0 round 3

Jiang Xin (5):
      l10n: zh_CN: review for git v2.19.0 l10n
      l10n: git.pot: v2.20.0 round 1 (254 new, 27 removed)
      l10n: git.pot: v2.20.0 round 2 (2 new, 2 removed)
      l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)
      l10n: zh_CN: for git v2.20.0 l10n round 1 to 3

Johannes Sixt (1):
      rebase docs: fix incorrect format of the section Behavioral Differences

Jordi Mas (2):
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.20

Martin Ågren (4):
      range-diff: always pass at least minimal diff options
      RelNotes 2.20: move some items between sections
      RelNotes 2.20: clarify sentence
      RelNotes 2.20: drop spurious double quote

Minh Nguyen (1):
      l10n: vi.po: fix typo in pack-objects

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (4185t0f0u)
      l10n: sv.po: Update Swedish translation (4187t0f0u)

Ralf Thielow (3):
      l10n: update German translation
      l10n: update German translation
      l10n: de.po: fix two messages

Trần Ngọc Quân (2):
      l10n: vi(4185t): Updated Vietnamese translation for v2.20.0
      l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3


Version v2.20.0-rc2; changes since v2.20.0-rc1:
-----------------------------------------------

Greg Hurrell (1):
      doc: update diff-format.txt for removed ellipses in --raw

Jean-Noël Avila (1):
      i18n: fix small typos

Jeff King (1):
      t5562: fix perl path

Johannes Schindelin (2):
      rebase: fix GIT_REFLOG_ACTION regression
      rebase --stat: fix when rebasing to an unrelated history

Junio C Hamano (2):
      format-patch: do not let its diff-options affect --range-diff
      Git 2.20-rc2

Martin Ågren (2):
      git-reset.txt: render tables correctly under Asciidoctor
      git-reset.txt: render literal examples as monospace

Nguyễn Thái Ngọc Duy (2):
      files-backend.c: fix build error on Solaris
      transport-helper.c: do not translate a string twice

Ralf Thielow (1):
      builtin/rebase.c: remove superfluous space in messages

SZEDER Gábor (3):
      tests: send "bug in the test script" errors to the script's stderr
      test-lib-functions: make 'test_cmp_rev' more informative on failure
      t/lib-git-daemon: fix signal checking

Sven Strickroth (1):
      msvc: directly use MS version (_stricmp) of strcasecmp

Torsten Bögershausen (1):
      t5601-99: Enable colliding file detection for MINGW

Ævar Arnfjörð Bjarmason (2):
      push: change needlessly ambiguous example in error
      advice: don't pointlessly suggest --convert-graft-file


Version v2.20.0-rc1; changes since v2.20.0-rc0:
-----------------------------------------------

Derrick Stolee (1):
      pack-objects: ignore ambiguous object warnings

Jeff King (3):
      pack-objects: fix tree_depth and layer invariants
      pack-objects: zero-initialize tree_depth/layer arrays
      pack-objects: fix off-by-one in delta-island tree-depth computation

Johannes Schindelin (7):
      tests: fix GIT_TEST_INSTALLED's PATH to include t/helper/
      tests: respect GIT_TEST_INSTALLED when initializing repositories
      t/lib-gettext: test installed git-sh-i18n if GIT_TEST_INSTALLED is set
      tests: do not require Git to be built when testing an installed Git
      tests: explicitly use `git.exe` on Windows
      legacy-rebase: backport -C<n> and --whitespace=<option> checks
      rebase: warn about the correct tree's OID

Jonathan Nieder (3):
      eoie: default to not writing EOIE section
      ieot: default to not writing IEOT section
      index: make index.threads=true enable ieot and eoie

Junio C Hamano (5):
      Makefile: ease dynamic-gettext-poison transition
      RelNotes: name the release properly
      Prepare for 2.20-rc1
      Git 2.19.2
      Git 2.20-rc1

Nguyễn Thái Ngọc Duy (2):
      format-patch: respect --stat in cover letter's diffstat
      clone: fix colliding file detection on APFS

SZEDER Gábor (1):
      coccicheck: introduce 'pending' semantic patches

Todd Zullinger (1):
      Documentation: build technical/multi-pack-index

Torsten Bögershausen (2):
      Upcast size_t variables to uintmax_t when printing
      remote-curl.c: xcurl_off_t is not portable (on 32 bit platfoms)

Ævar Arnfjörð Bjarmason (2):
      i18n: make GETTEXT_POISON a runtime option
      read-cache: make the split index obey umask settings

Đoàn Trần Công Danh (1):
      git-compat-util: prefer poll.h to sys/poll.h


Version v2.20.0-rc0; changes since v2.19.6:
-------------------------------------------

Aaron Lindsay (1):
      send-email: avoid empty transfer encoding header

Alban Gruin (21):
      sequencer: make three functions and an enum from sequencer.c public
      rebase -i: rewrite append_todo_help() in C
      editor: add a function to launch the sequence editor
      rebase -i: rewrite the edit-todo functionality in C
      sequencer: add a new function to silence a command, except if it fails
      rebase -i: rewrite setup_reflog_action() in C
      rebase -i: rewrite checkout_onto() in C
      sequencer: refactor append_todo_help() to write its message to a buffer
      sequencer: change the way skip_unnecessary_picks() returns its result
      t3404: todo list with commented-out commands only aborts
      rebase -i: rewrite complete_action() in C
      rebase -i: remove unused modes and functions
      rebase -i: implement the logic to initialize $revisions in C
      rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in C
      rebase -i: rewrite write_basic_state() in C
      rebase -i: rewrite init_basic_state() in C
      rebase -i: implement the main part of interactive rebase as a builtin
      rebase--interactive2: rewrite the submodes of interactive rebase in C
      rebase -i: remove git-rebase--interactive.sh
      rebase -i: move rebase--helper modes to rebase--interactive
      p3400: replace calls to `git checkout -b' by `git checkout -B'

Andreas Gruenbacher (1):
      rev-parse: clear --exclude list after 'git rev-parse --all'

Anton Serbulov (1):
      mingw: fix getcwd when the parent directory cannot be queried

Antonio Ospite (10):
      submodule: add a print_config_from_gitmodules() helper
      submodule: factor out a config_set_in_gitmodules_file_gently function
      t7411: merge tests 5 and 6
      t7411: be nicer to future tests and really clean things up
      submodule--helper: add a new 'config' subcommand
      submodule: use the 'submodule--helper config' command
      t7506: clean up .gitmodules properly before setting up new scenario
      submodule: add a helper to check if it is safe to write to .gitmodules
      submodule: support reading .gitmodules when it's not in the working tree
      t/helper: add test-submodule-nested-repo-config

Ben Peart (18):
      checkout: optimize "git checkout -b <new_branch>"
      t/README: correct spelling of "uncommon"
      preload-index: use git_env_bool() not getenv() for customization
      fsmonitor: update GIT_TEST_FSMONITOR support
      read-cache: update TEST_GIT_INDEX_VERSION support
      preload-index: update GIT_FORCE_PRELOAD_TEST support
      read-cache: clean up casting and byte decoding
      eoie: add End of Index Entry (EOIE) extension
      config: add new index.threads config setting
      read-cache: load cache extensions on a worker thread
      ieot: add Index Entry Offset Table (IEOT) extension
      read-cache: load cache entries on worker threads
      reset: don't compute unstaged changes after reset when --quiet
      reset: add new reset.quiet config setting
      reset: warn when refresh_index() takes more than 2 seconds
      speed up refresh_index() by utilizing preload_index()
      add: speed up cmd_add() by utilizing read_cache_preload()
      refresh_index: remove unnecessary calls to preload_index()

Brendan Forster (1):
      http: add support for disabling SSL revocation checks in cURL

Carlo Marcelo Arenas Belón (8):
      unpack-trees: avoid dead store for struct progress
      multi-pack-index: avoid dead store for struct progress
      read-cache: use of memory after it is freed
      commit-slabs: move MAYBE_UNUSED out
      khash: silence -Wunused-function for delta-islands
      compat: make sure git_mmap is not expected to write
      sequencer: cleanup for gcc warning in non developer mode
      builtin/notes: remove unnecessary free

Christian Couder (3):
      pack-objects: refactor code into compute_layer_order()
      pack-objects: move tree_depth into 'struct packing_data'
      pack-objects: move 'layer' into 'struct packing_data'

Christian Hesse (2):
      subtree: add build targets 'man' and 'html'
      subtree: make install targets depend on build targets

Denton Liu (3):
      mergetool: accept -g/--[no-]gui as arguments
      completion: support `git mergetool --[no-]gui`
      doc: document diff/merge.guitool config keys

Derrick Stolee (86):
      multi-pack-index: add design document
      multi-pack-index: add format details
      multi-pack-index: add builtin
      multi-pack-index: add 'write' verb
      midx: write header information to lockfile
      multi-pack-index: load into memory
      t5319: expand test data
      packfile: generalize pack directory list
      multi-pack-index: read packfile list
      multi-pack-index: write pack names in chunk
      midx: read pack names into array
      midx: sort and deduplicate objects from packfiles
      midx: write object ids in a chunk
      midx: write object id fanout chunk
      midx: write object offsets
      config: create core.multiPackIndex setting
      midx: read objects from multi-pack-index
      midx: use midx in abbreviation calculations
      midx: use existing midx when writing new one
      midx: use midx in approximate_object_count
      midx: prevent duplicate packfile loads
      packfile: skip loading index if in multi-pack-index
      midx: clear midx on repack
      commit-reach: move walk methods from commit.c
      commit.h: remove method declarations
      commit-reach: move ref_newer from remote.c
      commit-reach: move commit_contains from ref-filter
      upload-pack: make reachable() more generic
      upload-pack: refactor ok_to_give_up()
      upload-pack: generalize commit date cutoff
      commit-reach: move can_all_from_reach_with_flags
      test-reach: create new test tool for ref_newer
      test-reach: test in_merge_bases
      test-reach: test is_descendant_of
      test-reach: test get_merge_bases_many
      test-reach: test reduce_heads
      test-reach: test can_all_from_reach_with_flags
      test-reach: test commit_contains
      commit-reach: replace ref_newer logic
      commit-reach: make can_all_from_reach... linear
      commit-reach: use can_all_from_reach
      multi-pack-index: provide more helpful usage info
      multi-pack-index: store local property
      midx: mark bad packed objects
      midx: stop reporting garbage
      midx: fix bug that skips midx with alternates
      packfile: add all_packs list
      treewide: use get_all_packs
      midx: test a few commands that use get_all_packs
      pack-objects: consider packs in multi-pack-index
      commit-graph: define GIT_TEST_COMMIT_GRAPH
      t3206-range-diff.sh: cover single-patch case
      t5318: use test_oid for HASH_LEN
      multi-pack-index: add 'verify' verb
      multi-pack-index: verify bad header
      multi-pack-index: verify corrupt chunk lookup table
      multi-pack-index: verify packname order
      multi-pack-index: verify missing pack
      multi-pack-index: verify oid fanout order
      multi-pack-index: verify oid lookup order
      multi-pack-index: fix 32-bit vs 64-bit size check
      multi-pack-index: verify object offsets
      multi-pack-index: report progress during 'verify'
      fsck: verify multi-pack-index
      commit-reach: properly peel tags
      commit-reach: fix memory and flag leaks
      commit-reach: cleanups in can_all_from_reach...
      commit-graph: clean up leaked memory during write
      commit-graph: reduce initial oid allocation
      midx: fix broken free() in close_midx()
      contrib: add coverage-diff script
      ci: add optional test variables
      commit-reach: fix first-parent heuristic
      midx: close multi-pack-index on repack
      multi-pack-index: define GIT_TEST_MULTI_PACK_INDEX
      packfile: close multi-pack-index in close_all_packs
      prio-queue: add 'peek' operation
      test-reach: add run_three_modes method
      test-reach: add rev-list tests
      revision.c: begin refactoring --topo-order logic
      commit/revisions: bookkeeping before refactoring
      revision.c: generation-based topo-order algorithm
      t6012: make rev-list tests more interesting
      commit-reach: implement get_reachable_subset
      test-reach: test get_reachable_subset
      remote: make add_missing_tags() linear

Elijah Newren (7):
      merge-recursive: set paths correctly when three-way merging content
      merge-recursive: avoid wrapper function when unnecessary and wasteful
      merge-recursive: remove final remaining caller of merge_file_one()
      merge-recursive: rename merge_file_1() and merge_content()
      merge-recursive: improve auto-merging messages with path collisions
      merge-recursive: avoid showing conflicts with merge branch before HEAD
      fsck: move fsck_head_link() to get_default_heads() to avoid some globals

Eric Sunshine (26):
      format-patch: allow additional generated content in make_cover_letter()
      format-patch: add --interdiff option to embed diff in cover letter
      format-patch: teach --interdiff to respect -v/--reroll-count
      interdiff: teach show_interdiff() to indent interdiff
      log-tree: show_log: make commentary block delimiting reusable
      format-patch: allow --interdiff to apply to a lone-patch
      range-diff: respect diff_option.file rather than assuming 'stdout'
      range-diff: publish default creation factor
      range-diff: relieve callers of low-level configuration burden
      format-patch: add --range-diff option to embed diff in cover letter
      format-patch: extend --range-diff to accept revision range
      format-patch: teach --range-diff to respect -v/--reroll-count
      format-patch: add --creation-factor tweak for --range-diff
      format-patch: allow --range-diff to apply to a lone-patch
      worktree: don't die() in library function find_worktree()
      worktree: move delete_git_dir() earlier in file for upcoming new callers
      worktree: generalize delete_git_dir() to reduce code duplication
      worktree: prepare for more checks of whether path can become worktree
      worktree: disallow adding same path multiple times
      worktree: teach 'add' to respect --force for registered but missing path
      worktree: teach 'move' to override lock when --force given twice
      worktree: teach 'remove' to override lock when --force given twice
      worktree: delete .git/worktrees if empty after 'remove'
      doc-diff: fix non-portable 'man' invocation
      doc-diff: add --clean mode to remove temporary working gunk
      doc/Makefile: drop doc-diff worktree and temporary files on "make clean"

James Knight (1):
      build: link with curl-defined linker flags

Jann Horn (2):
      patch-delta: fix oob read
      patch-delta: consistently report corruption

Jeff King (73):
      branch: make "-l" a synonym for "--list"
      Add delta-islands.{c,h}
      pack-objects: add delta-islands support
      repack: add delta-islands support
      t5320: tests for delta islands
      t/perf: factor boilerplate out of test_perf
      t/perf: factor out percent calculations
      t/perf: add infrastructure for measuring sizes
      t/perf: add perf tests for fetches from a bitmapped server
      pack-bitmap: save "have" bitmap from walk
      pack-objects: reuse on-disk deltas for thin "have" objects
      SubmittingPatches: mention doc-diff
      rev-list: make empty --stdin not an error
      coccinelle: use <...> for function exclusion
      introduce hasheq() and oideq()
      convert "oidcmp() == 0" to oideq()
      convert "hashcmp() == 0" to hasheq()
      convert "oidcmp() != 0" to "!oideq()"
      convert "hashcmp() != 0" to "!hasheq()"
      convert hashmap comparison functions to oideq()
      read-cache: use oideq() in ce_compare functions
      show_dirstat: simplify same-content check
      doc-diff: always use oids inside worktree
      test-delta: read input into a heap buffer
      t5303: test some corrupt deltas
      patch-delta: handle truncated copy parameters
      t5303: use printf to generate delta bases
      doc/git-branch: remove obsolete "-l" references
      bitmap_has_sha1_in_uninteresting(): drop BUG check
      t5310: test delta reuse with bitmaps
      traverse_bitmap_commit_list(): don't free result
      pack-bitmap: drop "loaded" flag
      doc-diff: force worktree add
      pack-objects: handle island check for "external" delta base
      more oideq/hasheq conversions
      transport: drop refnames from for_each_alternate_ref
      test-tool: show tool list on error
      config.mak.dev: enable -Wunused-function
      t5410: use longer path for sample script
      ls-remote: do not send ref prefixes for patterns
      ls-remote: pass heads/tags prefixes to transport
      read_istream_pack_non_delta(): document input handling
      xdiff: provide a separate emit callback for hunks
      xdiff-interface: provide a separate consume callback for hunks
      rev-list: handle flags for --indexed-objects
      approxidate: handle pending number for "specials"
      pathspec: handle non-terminated strings with :(attr)
      diff: avoid generating unused hunk header lines
      diff: discard hunk headers for patch-ids earlier
      diff: use hunk callback for word-diff
      combine-diff: use an xdiff hunk callback
      diff: convert --check to use a hunk callback
      range-diff: use a hunk callback
      xdiff-interface: drop parse_hunk_header()
      apply: mark include/exclude options as NONEG
      am: handle --no-patch-format option
      ls-files: mark exclude options as NONEG
      pack-objects: mark index-version option as NONEG
      cat-file: mark batch options with NONEG
      status: mark --find-renames option with NONEG
      format-patch: mark "--no-numbered" option with NONEG
      show-branch: mark --reflog option as NONEG
      tag: mark "--message" option with NONEG
      cat-file: report an error on multiple --batch options
      apply: return -1 from option callback instead of calling exit(1)
      parse-options: drop OPT_DATE()
      assert NOARG/NONEG behavior of parse-options callbacks
      midx: double-check large object write loop
      merge: extract verify_merge_signature() helper
      merge: handle --verify-signatures for unborn branch
      pull: handle --verify-signatures for unborn branch
      approxidate: fix NULL dereference in date_time()
      bundle: dup() output descriptor closer to point-of-use

Johannes Schindelin (47):
      compat/poll: prepare for targeting Windows Vista
      mingw: set _WIN32_WINNT explicitly for Git for Windows
      mingw: bump the minimum Windows version to Vista
      builtin rebase: prepare for builtin rebase -i
      rebase -i: clarify what happens on a failed `exec`
      rebase -i: introduce the 'break' command
      getpwuid(mingw): initialize the structure only once
      getpwuid(mingw): provide a better default for the user name
      mingw: use domain information for default email
      http: add support for selecting SSL backends at runtime
      rebase (autostash): avoid duplicate call to state_dir_path()
      rebase (autostash): store the full OID in <state-dir>/autostash
      rebase (autostash): use an explicit OID to apply the stash
      mingw: factor out code to set stat() data
      rebase --autostash: demonstrate a problem with dirty submodules
      rebase --autostash: fix issue with dirty submodules
      mingw: load system libraries the recommended way
      mingw: ensure `getcwd()` reports the correct case
      http: when using Secure Channel, ignore sslCAInfo by default
      t7800: fix quoting
      mingw: reencode environment variables on the fly (UTF-16 <-> UTF-8)
      config: rename `dummy` parameter to `cb` in git_default_config()
      config: allow for platform-specific core.* config settings
      config: move Windows-specific config settings into compat/mingw.c
      mingw: unset PERL5LIB by default
      mingw: fix isatty() after dup2()
      t3404: decouple some test cases from outcomes of previous test cases
      t3418: decouple test cases from a previous `rebase -p` test case
      tests: optionally skip `git rebase -p` tests
      Windows: force-recompile git.res for differing architectures
      built-in rebase: demonstrate regression with --autostash
      built-in rebase --autostash: leave the current branch alone if possible
      Update .mailmap
      rebase -r: demonstrate bug with conflicting merges
      rebase -r: do not write MERGE_HEAD unless needed
      rebase -i: include MERGE_HEAD into files to clean up
      built-in rebase --skip/--abort: clean up stale .git/<name> files
      status: rebase and merge can be in progress at the same time
      apply --recount: allow "no-op hunks"
      rebase: consolidate clean-up code before leaving reset_head()
      rebase: prepare reset_head() for more flags
      built-in rebase: reinstate `checkout -q` behavior where appropriate
      mingw: use `CreateHardLink()` directly
      rebase: really just passthru the `git am` options
      rebase: validate -C<n> and --whitespace=<mode> parameters early
      config: report a bug if git_dir exists without commondir
      mingw: replace an obsolete link with the superseding one

Johannes Sixt (1):
      rebase -i: recognize short commands without arguments

Jonathan Nieder (4):
      gc: improve handling of errors reading gc.log
      gc: exit with status 128 on failure
      gc: do not return error for prior errors in daemonized mode
      commit-reach: correct accidental #include of C file

Jonathan Tan (11):
      connected: document connectivity in partial clones
      fetch: in partial clone, check presence of targets
      transport: allow skipping of ref listing
      transport: do not list refs if possible
      transport: list refs before fetch if necessary
      fetch: do not list refs if fetching only hashes
      cache-tree: skip some blob checks in partial clone
      upload-pack: make have_obj not global
      upload-pack: make want_obj not global
      upload-pack: clear flags before each v2 request
      fetch-pack: be more precise in parsing v2 response

Josh Steadmon (4):
      fuzz: add basic fuzz testing target.
      fuzz: add fuzz testing for packfile indices.
      archive: initialize archivers earlier
      Makefile: use FUZZ_CXXFLAGS for linking fuzzers

Joshua Watt (1):
      send-email: explicitly disable authentication

Junio C Hamano (19):
      Revert "doc/Makefile: drop doc-diff worktree and temporary files on "make clean""
      Initial batch post 2.19
      Second batch post 2.19
      t0000: do not get self-test disrupted by environment warnings
      Declare that the next one will be named 2.20
      Third batch for 2.20
      rebase: fix typoes in error messages
      Fourth batch for 2.20
      Revert "subtree: make install targets depend on build targets"
      Fifth batch for 2.20
      http: give curl version warnings consistently
      Sixth batch for 2.20
      Seventh batch for 2.20
      fetch: replace string-list used as a look-up table with a hashmap
      rebase: apply cocci patch
      Eighth batch for 2.20
      Ninth batch for 2.20
      Tenth batch for 2.20
      Git 2.20-rc0

Karsten Blees (2):
      mingw: replace MSVCRT's fstat() with a Win32-based implementation
      mingw: implement nanosecond-precision file times

Loo Rong Jie (1):
      win32: replace pthread_cond_*() with much simpler code

Lucas De Marchi (1):
      range-diff: allow to diff files regardless of submodule config

Luke Diamand (3):
      git-p4: do not fail in verbose mode for missing 'fileSize' key
      git-p4: unshelve into refs/remotes/p4-unshelved, not refs/remotes/p4/unshelved
      git-p4: fully support unshelving changelists

Martin Ågren (4):
      Doc: use `--type=bool` instead of `--bool`
      git-config.txt: fix 'see: above' note
      builtin/commit-graph.c: UNLEAK variables
      sequencer: break out of loop explicitly

Matthew DeVore (17):
      list-objects: store common func args in struct
      list-objects: refactor to process_tree_contents
      list-objects: always parse trees gently
      t/README: reformat Do, Don't, Keep in mind lists
      Documentation: add shell guidelines
      tests: standardize pipe placement
      t/*: fix ordering of expected/observed arguments
      tests: don't swallow Git errors upstream of pipes
      t9109: don't swallow Git errors upstream of pipes
      tests: order arguments to git-rev-list properly
      rev-list: handle missing tree objects properly
      revision: mark non-user-given objects instead
      list-objects-filter: use BUG rather than die
      list-objects-filter-options: do not over-strbuf_init
      list-objects-filter: implement filter tree:0
      filter-trees: code clean-up of tests
      list-objects: support for skipping tree traversal

Max Kirillov (1):
      http-backend test: make empty CONTENT_LENGTH test more realistic

Michał Górny (6):
      gpg-interface.c: detect and reject multiple signatures on commits
      gpg-interface.c: use flags to determine key/signer info presence
      gpg-interface.c: support getting key fingerprint via %GF format
      gpg-interface.c: obtain primary key fingerprint as well
      t/t7510-signed-commit.sh: Add %GP to custom format checks
      t/t7510-signed-commit.sh: add signing subkey to Eris Discordia key

Nguyễn Thái Ngọc Duy (164):
      clone: report duplicate entries on case-insensitive filesystems
      trace.h: support nested performance tracing
      unpack-trees: add performance tracing
      unpack-trees: optimize walking same trees with cache-tree
      unpack-trees: reduce malloc in cache-tree walk
      unpack-trees: reuse (still valid) cache-tree from src_index
      unpack-trees: add missing cache invalidation
      cache-tree: verify valid cache-tree in the test suite
      Document update for nd/unpack-trees-with-cache-tree
      bisect.c: make show_list() build again
      t/helper: keep test-tool command list sorted
      t/helper: merge test-dump-untracked-cache into test-tool
      t/helper: merge test-pkt-line into test-tool
      t/helper: merge test-parse-options into test-tool
      t/helper: merge test-dump-fsmonitor into test-tool
      Makefile: add a hint about TEST_BUILTINS_OBJS
      config.txt: follow camelCase naming
      config.txt: move fetch part out to a separate file
      config.txt: move format part out to a separate file
      config.txt: move gitcvs part out to a separate file
      config.txt: move gui part out to a separate file
      config.txt: move pull part out to a separate file
      config.txt: move push part out to a separate file
      config.txt: move receive part out to a separate file
      config.txt: move sendemail part out to a separate file
      config.txt: move sequence.editor out of "core" part
      config.txt: move submodule part out to a separate file
      archive.c: remove implicit dependency the_repository
      status: show progress bar if refreshing the index takes too long
      completion: support "git fetch --multiple"
      read-cache.c: remove 'const' from index_has_changes()
      diff.c: reduce implicit dependency on the_index
      combine-diff.c: remove implicit dependency on the_index
      blame.c: rename "repo" argument to "r"
      diff.c: remove the_index dependency in textconv() functions
      grep.c: remove implicit dependency on the_index
      diff.c: remove implicit dependency on the_index
      read-cache.c: remove implicit dependency on the_index
      diff-lib.c: remove implicit dependency on the_index
      ll-merge.c: remove implicit dependency on the_index
      merge-blobs.c: remove implicit dependency on the_index
      merge.c: remove implicit dependency on the_index
      patch-ids.c: remove implicit dependency on the_index
      sha1-file.c: remove implicit dependency on the_index
      rerere.c: remove implicit dependency on the_index
      userdiff.c: remove implicit dependency on the_index
      line-range.c: remove implicit dependency on the_index
      submodule.c: remove implicit dependency on the_index
      tree-diff.c: remove implicit dependency on the_index
      ws.c: remove implicit dependency on the_index
      revision.c: remove implicit dependency on the_index
      revision.c: reduce implicit dependency the_repository
      read-cache.c: optimize reading index format v4
      help -a: improve and make --verbose default
      refs.c: indent with tabs, not spaces
      Add a place for (not) sharing stuff between worktrees
      submodule.c: remove some of the_repository references
      completion: fix __gitcomp_builtin no longer consider extra options
      t1300: extract and use test_cmp_config()
      worktree: add per-worktree config files
      refs: new ref types to make per-worktree refs visible to all worktrees
      revision.c: correct a parameter name
      revision.c: better error reporting on ref from different worktrees
      fsck: check HEAD and reflog from other worktrees
      reflog expire: cover reflog from all worktrees
      Update makefile in preparation for Documentation/config/*.txt
      config.txt: move advice.* to a separate file
      config.txt: move core.* to a separate file
      config.txt: move add.* to a separate file
      config.txt: move alias.* to a separate file
      config.txt: move am.* to a separate file
      config.txt: move apply.* to a separate file
      config.txt: move blame.* to a separate file
      config.txt: move branch.* to a separate file
      config.txt: move browser.* to a separate file
      config.txt: move checkout.* to a separate file
      config.txt: move clean.* to a separate file
      config.txt: move color.* to a separate file
      config.txt: move column.* to a separate file
      config.txt: move commit.* to a separate file
      config.txt: move credential.* to a separate file
      config.txt: move completion.* to a separate file
      config.txt: move diff-config.txt to config/
      config.txt: move difftool.* to a separate file
      config.txt: move fastimport.* to a separate file
      config.txt: move fetch-config.txt to config/
      config.txt: move filter.* to a separate file
      config.txt: move format-config.txt to config/
      config.txt: move fmt-merge-msg-config.txt to config/
      config.txt: move fsck.* to a separate file
      config.txt: move gc.* to a separate file
      config.txt: move gitcvs-config.txt to config/
      config.txt: move gitweb.* to a separate file
      config.txt: move grep.* to a separate file
      config.txt: move gpg.* to a separate file
      config.txt: move gui-config.txt to config/
      config.txt: move guitool.* to a separate file
      config.txt: move help.* to a separate file
      config.txt: move ssh.* to a separate file
      config.txt: move http.* to a separate file
      config.txt: move i18n.* to a separate file
      git-imap-send.txt: move imap.* to a separate file
      config.txt: move index.* to a separate file
      config.txt: move init.* to a separate file
      config.txt: move instaweb.* to a separate file
      config.txt: move interactive.* to a separate file
      config.txt: move log.* to a separate file
      config.txt: move mailinfo.* to a separate file
      config.txt: move mailmap.* to a separate file
      config.txt: move man.* to a separate file
      config.txt: move merge-config.txt to config/
      config.txt: move mergetool.* to a separate file
      config.txt: move notes.* to a separate file
      config.txt: move pack.* to a separate file
      config.txt: move pager.* to a separate file
      config.txt: move pretty.* to a separate file
      config.txt: move protocol.* to a separate file
      config.txt: move pull-config.txt to config/
      config.txt: move push-config.txt to config/
      config.txt: move rebase-config.txt to config/
      config.txt: move receive-config.txt to config/
      config.txt: move remote.* to a separate file
      config.txt: move remotes.* to a separate file
      config.txt: move repack.* to a separate file
      config.txt: move rerere.* to a separate file
      config.txt: move reset.* to a separate file
      config.txt: move sendemail-config.txt to config/
      config.txt: move sequencer.* to a separate file
      config.txt: move showBranch.* to a separate file
      config.txt: move splitIndex.* to a separate file
      config.txt: move status.* to a separate file
      config.txt: move stash.* to a separate file
      config.txt: move submodule.* to a separate file
      config.txt: move tag.* to a separate file
      config.txt: move transfer.* to a separate file
      config.txt: move uploadarchive.* to a separate file
      config.txt: move uploadpack.* to a separate file
      config.txt: move url.* to a separate file
      config.txt: move user.* to a separate file
      config.txt: move versionsort.* to a separate file
      config.txt: move web.* to a separate file
      config.txt: move worktree.* to a separate file
      config.txt: remove config/dummy.txt
      thread-utils: macros to unconditionally compile pthreads API
      wildmatch: change behavior of "foo**bar" in WM_PATHNAME mode
      git-worktree.txt: correct linkgit command name
      sequencer.c: remove a stray semicolon
      tree-walk.c: fix overoptimistic inclusion in :(exclude) matching
      run-command.h: include thread-utils.h instead of pthread.h
      send-pack.c: move async's #ifdef NO_PTHREADS back to run-command.c
      index-pack: remove #ifdef NO_PTHREADS
      name-hash.c: remove #ifdef NO_PTHREADS
      attr.c: remove #ifdef NO_PTHREADS
      grep: remove #ifdef NO_PTHREADS
      grep: clean up num_threads handling
      preload-index.c: remove #ifdef NO_PTHREADS
      pack-objects: remove #ifdef NO_PTHREADS
      read-cache.c: remove #ifdef NO_PTHREADS
      read-cache.c: reduce branching based on HAVE_THREADS
      read-cache.c: initialize copy_len to shut up gcc 8
      Clean up pthread_create() error handling
      completion: use __gitcomp_builtin for format-patch
      build: fix broken command-list.h generation with core.autocrlf
      doc: move extensions.worktreeConfig to the right place

Nickolai Belakovski (2):
      worktree: update documentation for lock_reason and lock_reason_valid
      worktree: rename is_worktree_locked to worktree_lock_reason

Olga Telezhnaya (3):
      ref-filter: free memory from used_atom
      ls-remote: release memory instead of UNLEAK
      ref-filter: free item->value and item->value->s

Phillip Wood (11):
      diff: fix --color-moved-ws=allow-indentation-change
      diff --color-moved-ws: fix double free crash
      diff --color-moved-ws: fix out of bounds string access
      diff --color-moved-ws: fix a memory leak
      diff --color-moved-ws: fix another memory leak
      diff --color-moved: fix a memory leak
      am: don't die in read_author_script()
      am: improve author-script error reporting
      am: rename read_author_script()
      add read_author_script() to libgit
      sequencer: use read_author_script()

Pratik Karki (46):
      rebase: start implementing it as a builtin
      rebase: refactor common shell functions into their own file
      builtin/rebase: support running "git rebase <upstream>"
      builtin rebase: support --onto
      builtin rebase: support `git rebase --onto A...B`
      builtin rebase: handle the pre-rebase hook and --no-verify
      builtin rebase: support --quiet
      builtin rebase: support the `verbose` and `diffstat` options
      builtin rebase: require a clean worktree
      builtin rebase: try to fast forward when possible
      builtin rebase: support --force-rebase
      builtin rebase: start a new rebase only if none is in progress
      builtin rebase: only store fully-qualified refs in `options.head_name`
      builtin rebase: support `git rebase <upstream> <switch-to>`
      builtin rebase: support --continue
      builtin rebase: support --skip
      builtin rebase: support --abort
      builtin rebase: support --quit
      builtin rebase: support --edit-todo and --show-current-patch
      builtin rebase: actions require a rebase in progress
      builtin rebase: stop if `git am` is in progress
      builtin rebase: allow selecting the rebase "backend"
      builtin rebase: support --signoff
      builtin rebase: support --rerere-autoupdate
      builtin rebase: support --committer-date-is-author-date
      builtin rebase: support `ignore-whitespace` option
      builtin rebase: support `ignore-date` option
      builtin rebase: support `keep-empty` option
      builtin rebase: support `--autosquash`
      builtin rebase: support `--gpg-sign` option
      builtin rebase: support `-C` and `--whitespace=<type>`
      builtin rebase: support `--autostash` option
      builtin rebase: support `--exec`
      builtin rebase: support `--allow-empty-message` option
      builtin rebase: support --rebase-merges[=[no-]rebase-cousins]
      merge-base --fork-point: extract libified function
      builtin rebase: support `fork-point` option
      builtin rebase: add support for custom merge strategies
      builtin rebase: support --root
      builtin rebase: optionally auto-detect the upstream
      builtin rebase: optionally pass custom reflogs to reset_head()
      builtin rebase: fast-forward to onto if it is a proper descendant
      builtin rebase: show progress when connected to a terminal
      builtin rebase: use no-op editor when interactive is "implied"
      builtin rebase: error out on incompatible option/mode combinations
      rebase: default to using the builtin rebase

Rafael Ascensão (2):
      refs: show --exclude failure with --branches/tags/remotes=glob
      refs: fix some exclude patterns being ignored

Ralf Thielow (1):
      git-rebase.sh: fix typos in error messages

Ramsay Jones (12):
      Makefile: add a hdr-check target
      json-writer.h: add missing include (hdr-check)
      ewah/ewok_rlw.h: add missing include (hdr-check)
      refs/ref-cache.h: add missing declarations (hdr-check)
      refs/packed-backend.h: add missing declaration (hdr-check)
      refs/refs-internal.h: add missing declarations (hdr-check)
      midx.h: add missing forward declarations (hdr-check)
      delta-islands.h: add missing forward declarations (hdr-check)
      headers: normalize the spelling of some header guards
      fetch-object.h: add missing declaration (hdr-check)
      ewok_rlw.h: add missing 'inline' to function definition
      commit-reach.h: add missing declarations (hdr-check)

Rasmus Villemoes (6):
      help: redirect to aliased commands for "git cmd --help"
      git.c: handle_alias: prepend alias info when first argument is -h
      git-help.txt: document "git help cmd" vs "git cmd --help" for aliases
      Documentation/git-send-email.txt: style fixes
      send-email: only consider lines containing @ or <> for automatic Cc'ing
      send-email: also pick up cc addresses from -by trailers

René Scharfe (11):
      mailinfo: support format=flowed
      fsck: add a performance test for skipList
      fsck: use strbuf_getline() to read skiplist file
      fsck: use oidset instead of oid_array for skipList
      grep: add -r/--[no-]recursive
      fetch-pack: factor out is_unmatched_ref()
      fetch-pack: load tip_oids eagerly iff needed
      khash: factor out kh_release_*
      oidset: use khash
      oidset: uninline oidset_init()
      commit-reach: fix cast in compare_commits_by_gen()

Roger Strain (1):
      subtree: performance improvement for finding unexpected parent commits

SZEDER Gábor (4):
      t1404: increase core.packedRefsTimeout to avoid occasional test failure
      object_id.cocci: match only expressions of type 'struct object_id'
      travis-ci: install packages in 'ci/install-dependencies.sh'
      ref-filter: don't look for objects when outside of a repository

Stefan Beller (21):
      git-submodule.sh: align error reporting for update mode to use path
      git-submodule.sh: rename unused variables
      builtin/submodule--helper: factor out submodule updating
      builtin/submodule--helper: store update_clone information in a struct
      builtin/submodule--helper: factor out method to update a single submodule
      submodule--helper: replace connect-gitdir-workingtree by ensure-core-worktree
      submodule--helper: introduce new update-module-mode helper
      test_decode_color: understand FAINT and ITALIC
      t3206: add color test for range-diff --dual-color
      diff.c: simplify caller of emit_line_0
      diff.c: reorder arguments for emit_line_ws_markup
      diff.c: add set_sign to emit_line_0
      diff: use emit_line_0 once per line
      diff.c: omit check for line prefix in emit_line_0
      diff.c: rewrite emit_line_0 more understandably
      diff.c: add --output-indicator-{new, old, context}
      range-diff: make use of different output indicators
      range-diff: indent special lines as context
      diff.c: pass sign_index to emit_line_ws_markup
      submodule helper: convert relative URL to absolute URL if needed
      builtin/submodule--helper: remove debugging leftover tracing

Stephen P. Smith (10):
      wt-status.c: move has_unmerged earlier in the file
      wt-status: rename commitable to committable
      t7501: add test of "commit --dry-run --short"
      wt-status.c: set the committable flag in the collect phase
      roll wt_status_state into wt_status and populate in the collect phase
      t2000: rename and combine checkout clash tests
      t7509: cleanup description and filename
      t7502: rename commit test script to comply with naming convention
      t7500: rename commit tests script to comply with naming convention
      t7501: rename commit test to comply with naming convention

Steve Hoelzer (1):
      poll: use GetTickCount64() to avoid wrap-around issues

Steven Fernandez (1):
      git-completion.bash: add completion for stash list

Strain, Roger L (4):
      subtree: refactor split of a commit into standalone method
      subtree: make --ignore-joins pay attention to adds
      subtree: use commits before rejoins for splits
      subtree: improve decision on merges kept in split

Taylor Blau (4):
      transport.c: extract 'fill_alternate_refs_command'
      transport.c: introduce core.alternateRefsCommand
      transport.c: introduce core.alternateRefsPrefixes
      Documentation/config.txt: fix typo in core.alternateRefsCommand

Thomas Gummerer (13):
      rerere: unify error messages when read_cache fails
      rerere: lowercase error messages
      rerere: wrap paths in output in sq
      rerere: mark strings for translation
      rerere: add documentation for conflict normalization
      rerere: fix crash with files rerere can't handle
      rerere: only return whether a path has conflicts or not
      rerere: factor out handle_conflict function
      rerere: return strbuf from handle path
      rerere: teach rerere to handle nested conflicts
      rerere: recalculate conflict ID when unresolved conflict is committed
      rerere: mention caveat about unmatched conflict markers
      rerere: add note about files with existing conflict markers

Tim Schumacher (3):
      alias: add support for aliases of an alias
      alias: show the call history when an alias is looping
      t0014: introduce an alias testing suite

brian m. carlson (26):
      t: add test functions to translate hash-related values
      t0000: use hash translation table
      t0000: update tests for SHA-256
      t0002: abstract away SHA-1 specific constants
      t0064: make hash size independent
      t1006: make hash size independent
      t1400: switch hard-coded object ID to variable
      t1405: make hash size independent
      t1406: make hash-size independent
      t1407: make hash size independent
      editorconfig: provide editor settings for Git developers
      editorconfig: indicate settings should be kept in sync
      pack-bitmap-write: use GIT_MAX_RAWSZ for allocation
      builtin/repack: replace hard-coded constants
      builtin/mktree: remove hard-coded constant
      builtin/fetch-pack: remove constants with parse_oid_hex
      pack-revindex: express constants in terms of the_hash_algo
      packfile: express constants in terms of the_hash_algo
      refs/packed-backend: express constants using the_hash_algo
      upload-pack: express constants in terms of the_hash_algo
      transport: use parse_oid_hex instead of a constant
      tag: express constant in terms of the_hash_algo
      apply: replace hard-coded constants
      apply: rename new_sha1_prefix and old_sha1_prefix
      submodule: make zero-oid comparison hash function agnostic
      rerere: convert to use the_hash_algo

Ævar Arnfjörð Bjarmason (31):
      fetch: change "branch" to "reference" in --force -h output
      push tests: make use of unused $1 in test description
      push tests: use spaces in interpolated string
      fetch tests: add a test for clobbering tag behavior
      push doc: remove confusing mention of remote merger
      push doc: move mention of "tag <tag>" later in the prose
      push doc: correct lies about how push refspecs work
      fetch: document local ref updates with/without --force
      fetch: stop clobbering existing tags without --force
      fsck tests: setup of bogus commit object
      fsck tests: add a test for no skipList input
      fsck: document and test sorted skipList input
      fsck: document and test commented & empty line skipList input
      fsck: document that skipList input must be unabbreviated
      fsck: add a performance test
      fsck: support comments & empty lines in skipList
      commit-graph write: add progress output
      commit-graph verify: add progress output
      config doc: add missing list separator for checkout.optimizeNewBranch
      push doc: add spacing between two words
      fetch doc: correct grammar in --force docs
      gc: fix regression in 7b0f229222 impacting --quiet
      gc doc: mention the commit-graph in the intro
      pack-objects test: modernize style
      pack-objects tests: don't leave test .git corrupt at end
      index-pack tests: don't leave test repo dirty at end
      range-diff doc: add a section about output stability
      range-diff: fix regression in passing along diff options
      range-diff: make diff option behavior (e.g. --stat) consistent
      rebase doc: document rebase.useBuiltin
      tests: add a special setup where rebase.useBuiltin is off


Version v2.19.6; changes since v2.19.5:
---------------------------------------

Johannes Schindelin (4):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5
      Git 2.19.6

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.19.5; changes since v2.19.4:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.19.4; changes since v2.19.3:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.19.3; changes since v2.19.2:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (25):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3
      Git 2.18.2
      Git 2.19.3

Jonathan Nieder (2):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules


Version v2.19.2; changes since v2.19.1:
---------------------------------------

Alexander Pyhalov (1):
      t7005-editor: quote filename to fix whitespace-issue

Andreas Heiduk (6):
      doc: clarify boundaries of 'git worktree list --porcelain'
      doc: fix ASCII art tab spacing
      doc: fix inappropriate monospace formatting
      doc: fix descripion for 'git tag --format'
      doc: fix indentation of listing blocks in gitweb.conf.txt
      doc: fix formatting in git-update-ref

Ben Peart (1):
      git-mv: allow submodules and fsmonitor to work together

Brandon Williams (1):
      config: document value 2 for protocol.version

Daniels Umanovskis (3):
      doc: move git-rev-parse from porcelain to plumbing
      doc: move git-get-tar-commit-id to plumbing
      doc: move git-cherry to plumbing

David Zych (1):
      doc: clarify gitcredentials path component matching

Derrick Stolee (6):
      commit-graph: update design document
      test-repository: properly init repo
      commit-graph: not compatible with replace objects
      commit-graph: not compatible with grafts
      commit-graph: not compatible with uninitialized repo
      commit-graph: close_commit_graph before shallow walk

Elijah Newren (7):
      Remove superfluous trailing semicolons
      t4200: demonstrate rerere segfault on specially crafted merge
      rerere: avoid buffer overrun
      update-ref: fix type of update_flags variable to match its usage
      update-ref: allow --no-deref with --stdin
      sequencer: fix --allow-empty-message behavior, make it smarter
      commit: fix erroneous BUG, 'multiple renames on the same target? how?'

Frederick Eaton (3):
      git-archimport.1: specify what kind of Arch we're talking about
      git-column.1: clarify initial description, provide examples
      git-describe.1: clarify that "human readable" is also git-readable

Jeff Hostetler (2):
      t0051: test GIT_TRACE to a windows named pipe
      mingw: fix mingw_open_append to work with named pipes

Jeff King (16):
      trailer: use size_t for string offsets
      trailer: use size_t for iterating trailer list
      trailer: pass process_trailer_opts to trailer_info_get()
      interpret-trailers: tighten check for "---" patch boundary
      interpret-trailers: allow suppressing "---" divider
      pretty, ref-filter: format %(trailers) with no_divider option
      sequencer: ignore "---" divider when parsing trailers
      append_signoff: use size_t for string offsets
      reopen_tempfile(): truncate opened file
      config.mak.dev: add -Wformat-security
      receive-pack: update comment with check_everything_connected
      run-command: mark path lookup errors with ENOENT
      upload-pack: fix broken if/else chain in config callback
      t1450: check large blob in trailing-garbage test
      check_stream_sha1(): handle input underflow
      cat-file: handle streaming failures consistently

Johannes Schindelin (8):
      rebase -i --autosquash: demonstrate a problem skipping the last squash
      rebase -i: be careful to wrap up fixup/squash chains
      pack-objects: fix typo 'detla' -> 'delta'
      pack-objects (mingw): demonstrate a segmentation fault with large deltas
      pack-objects (mingw): initialize `packing_data` mutex in the correct spot
      repack: point out a bug handling stale shallow info
      shallow: offer to prune only non-existing entries
      repack -ad: prune the list of shallow commits

Johannes Sixt (2):
      diff: don't attempt to strip prefix from absolute Windows paths
      t3404-rebase-interactive: test abbreviated commands

Jonathan Nieder (2):
      mailmap: consistently normalize brian m. carlson's name
      git doc: direct bug reporters to mailing list archive

Jonathan Tan (4):
      fetch-object: unify fetch_object[s] functions
      fetch-object: set exact_oid when fetching
      fetch-pack: avoid object flags if no_dependents
      fetch-pack: exclude blobs when lazy-fetching trees

Junio C Hamano (5):
      CodingGuidelines: document the API in *.h files
      receive: denyCurrentBranch=updateinstead should not blindly update
      cocci: simplify "if (++u > 1)" to "if (u++)"
      fsck: s/++i > 1/i++/
      Git 2.19.2

Martin Ågren (5):
      git-commit-graph.txt: fix bullet lists
      git-commit-graph.txt: typeset more in monospace
      git-commit-graph.txt: refer to "*commit*-graph file"
      Doc: refer to the "commit-graph file" with dash
      t1400: drop debug `echo` to actually execute `test`

Matthew DeVore (2):
      Documentation/git-log.txt: do not show --exclude-promisor-objects
      exclude-promisor-objects: declare when option is allowed

Michael Witten (3):
      docs: typo: s/go/to/
      docs: graph: remove unnecessary `graph_update()' call
      docs: typo: s/isimilar/similar/

Mihir Mehta (1):
      doc: fix a typo and clarify a sentence

Nguyễn Thái Ngọc Duy (2):
      add: do not accept pathspec magic 'attr'
      config.txt: correct the note about uploadpack.packObjectsHook

Noam Postavsky (1):
      log: fix coloring of certain octopus merge shapes

René Scharfe (1):
      sequencer: use return value of oidset_insert()

SZEDER Gábor (12):
      Documentation/git.txt: clarify that GIT_TRACE=/path appends
      t3701-add-interactive: tighten the check of trace output
      t1700-split-index: drop unnecessary 'grep'
      t0090: disable GIT_TEST_SPLIT_INDEX for the test checking split index
      t1700-split-index: document why FSMONITOR is disabled in this test script
      split-index: add tests to demonstrate the racy split index problem
      t1700-split-index: date back files to avoid racy situations
      split-index: count the number of deleted entries
      split-index: don't compare cached data of entries already marked for split index
      split-index: smudge and add racily clean cache entries to split index
      split-index: BUG() when cache entry refers to non-existing shared entry
      test-lib: introduce the '-V' short option for '--verbose-log'

Sam McKelvie (1):
      rev-parse: --show-superproject-working-tree should work during a merge

Saulius Gurklys (1):
      doc: fix small typo in git show-branch

Sebastian Staudt (1):
      travis-ci: no longer use containers

Shulhan (1):
      builtin/remote: quote remote name on error to display empty name

Stefan Beller (4):
      refs.c: migrate internal ref iteration to pass thru repository argument
      refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback
      string-list: remove unused function print_string_list
      strbuf.h: format according to coding guidelines

Tao Qingyun (3):
      refs: docstring typo
      builtin/branch.c: remove useless branch_get
      branch: trivial style fix

Thomas Gummerer (4):
      .gitattributes: add conflict-marker-size for relevant files
      linear-assignment: fix potential out of bounds memory access
      t5551: move setup code inside test_expect blocks
      t5551: compare sorted cookies files

Tim Schumacher (1):
      Documentation/Makefile: make manpage-base-url.xsl generation quieter

Torsten Bögershausen (2):
      Make git_check_attr() a void function
      path.c: char is not (always) signed

Uwe Kleine-König (1):
      howto/using-merge-subtree: mention --allow-unrelated-histories


Version v2.19.1; changes since v2.19.0:
---------------------------------------

Jeff King (5):
      submodule--helper: use "--" to signal end of clone options
      submodule-config: ban submodule urls that start with dash
      submodule-config: ban submodule paths that start with a dash
      fsck: detect submodule urls starting with dash
      fsck: detect submodule paths starting with dash

Junio C Hamano (6):
      Git 2.14.5
      Git 2.15.3
      Git 2.16.5
      Git 2.17.2
      Git 2.18.1
      Git 2.19.1


Version v2.19.0; changes since v2.19.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (3958t)

Christopher Díaz Riveros (1):
      l10n: es.po v2.19.0 round 2

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Jean-Noël Avila (2):
      l10n: fr.po v2.19.0 rnd 1
      l10n: fr.po v2.19.0 rnd 2

Jiang Xin (4):
      l10n: zh_CN: review for git 2.18.0
      l10n: git.pot: v2.19.0 round 1 (382 new, 30 removed)
      l10n: git.pot: v2.19.0 round 2 (3 new, 5 removed)
      l10n: zh_CN: for git v2.19.0 l10n round 1 to 2

Jonathan Nieder (1):
      Revert "Merge branch 'sb/submodule-core-worktree'"

Junio C Hamano (1):
      Git 2.19

Max Kirillov (1):
      http-backend: allow empty CONTENT_LENGTH

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation(3608t0f0u)
      l10n: sv.po: Update Swedish translation (3958t0f0u)

Ralf Thielow (1):
      l10n: de.po: translate 108 new messages

Raphaël Hertzog (1):
      l10n: fr: fix a message seen in git bisect

Trần Ngọc Quân (1):
      l10n: vi.po(3958t): updated Vietnamese translation v2.19.0 round 2


Version v2.19.0-rc2; changes since v2.19.0-rc1:
-----------------------------------------------

Derrick Stolee (1):
      commit: don't use generation numbers if not needed

Elijah Newren (3):
      t3401: add another directory rename testcase for rebase and am
      merge-recursive: add ability to turn off directory rename detection
      am: avoid directory rename detection when calling recursive merge machinery

Eric Sunshine (2):
      chainlint: match "quoted" here-doc tags
      config.mak.uname: resolve FreeBSD iconv-related compilation warning

Junio C Hamano (1):
      Git 2.19-rc2

Phillip Wood (2):
      sequencer: handle errors from read_author_ident()
      sequencer: fix quoting in write_author_script

Ævar Arnfjörð Bjarmason (8):
      tests: fix and add lint for non-portable head -c N
      tests: fix and add lint for non-portable seq
      tests: fix comment syntax in chainlint.sed for AIX sed
      tests: use shorter labels in chainlint.sed for AIX sed
      tests: fix version-specific portability issue in Perl JSON
      tests: fix and add lint for non-portable grep --file
      tests: fix non-portable "${var:-"str"}" construct
      tests: fix non-portable iconv invocation


Version v2.19.0-rc1; changes since v2.19.0-rc0:
-----------------------------------------------

Derrick Stolee (2):
      commit: use timestamp_t for author_date_slab
      config: fix commit-graph related config docs

Elia Pinto (1):
      worktree: add --quiet option

Jean-Noël Avila (1):
      i18n: fix mistakes in translated strings

Jeff King (2):
      test-tool.h: include git-compat-util.h
      hashcmp: assert constant hash size

Junio C Hamano (3):
      config.txt: clarify core.checkStat
      Getting ready for -rc1
      Git 2.19-rc1

Kyle Meyer (1):
      range-diff: update stale summary of --no-dual-color

Nguyễn Thái Ngọc Duy (2):
      pack-objects: fix performance issues on packing large deltas
      generate-cmdlist.sh: collect config from all config.txt files

René Scharfe (3):
      checkout-index: improve argument help for --stage
      remote: improve argument help for add --mirror
      parseopt: group literal string alternatives in argument help

SZEDER Gábor (11):
      tests: use 'test_must_be_empty' instead of '! test -s'
      tests: use 'test_must_be_empty' instead of 'test ! -s'
      tests: use 'test_must_be_empty' instead of 'test_cmp /dev/null <out>'
      tests: use 'test_must_be_empty' instead of 'test_cmp <empty> <out>'
      t7501-commit: drop silly command substitution
      t0020-crlf: check the right file
      t4051-diff-function-context: read the right file
      t6018-rev-list-glob: fix 'empty stdin' test
      t3903-stash: don't try to grep non-existing file
      t3420-rebase-autostash: don't try to grep non-existing files
      t/lib-rebase.sh: support explicit 'pick' commands in 'fake_editor.sh'

Samuel Maftoul (1):
      branch: support configuring --sort via .gitconfig

Ævar Arnfjörð Bjarmason (1):
      refactor various if (x) FREE_AND_NULL(x) to just FREE_AND_NULL(x)


Version v2.19.0-rc0; changes since v2.18.5:
-------------------------------------------

Aaron Schrab (1):
      sequencer: use configured comment character

Alban Gruin (4):
      rebase: introduce a dedicated backend for --preserve-merges
      rebase: strip unused code in git-rebase--preserve-merges.sh
      rebase: use the new git-rebase--preserve-merges.sh
      rebase: remove -p code from git-rebase--interactive.sh

Alejandro R. Sedeño (1):
      Makefile: tweak sed invocation

Aleksandr Makarov (1):
      for-each-ref: consistently pass WM_IGNORECASE flag

Andrei Rybak (2):
      Documentation: fix --color option formatting
      t4150: fix broken test for am --scissors

Anthony Sottile (1):
      config.c: fix regression for core.safecrlf false

Antonio Ospite (6):
      config: move config_from_gitmodules to submodule-config.c
      submodule-config: add helper function to get 'fetch' config from .gitmodules
      submodule-config: add helper to get 'update-clone' config from .gitmodules
      submodule-config: make 'config_from_gitmodules' private
      submodule-config: pass repository as argument to config_from_gitmodules
      submodule-config: reuse config_from_gitmodules in repo_read_gitmodules

Beat Bolli (10):
      builtin/config: work around an unsized array forward declaration
      unicode: update the width tables to Unicode 11
      connect.h: avoid forward declaration of an enum
      refs/refs-internal.h: avoid forward declaration of an enum
      convert.c: replace "\e" escapes with "\033".
      sequencer.c: avoid empty statements at top level
      string-list.c: avoid conversion from void * to function pointer
      utf8.c: avoid char overflow
      Makefile: add a DEVOPTS flag to get pedantic compilation
      packfile: ensure that enum object_type is defined

Ben Peart (3):
      convert log_ref_write_fd() to use strbuf
      handle lower case drive letters on Windows
      t3507: add a testcase showing failure with sparse checkout

Brandon Williams (15):
      commit: convert commit_graft_pos() to handle arbitrary repositories
      commit: convert register_commit_graft to handle arbitrary repositories
      commit: convert read_graft_file to handle arbitrary repositories
      test-pkt-line: add unpack-sideband subcommand
      docs: link to gitsubmodules
      upload-pack: implement ref-in-want
      upload-pack: test negotiation with changing repository
      fetch: refactor the population of peer ref OIDs
      fetch: refactor fetch_refs into two functions
      fetch: refactor to make function args narrower
      fetch-pack: put shallow info in output parameter
      fetch-pack: implement ref-in-want
      clone: send ref-prefixes when using protocol v2
      fetch-pack: mark die strings for translation
      pack-protocol: mention and point to docs for protocol v2

Chen Bin (1):
      git-p4: add the `p4-pre-submit` hook

Christian Couder (1):
      t9104: kosherly remove remote refs

Derrick Stolee (43):
      ref-filter: fix outdated comment on in_commit_list
      commit: add generation number to struct commit
      commit-graph: compute generation numbers
      commit: use generations in paint_down_to_common()
      commit-graph: always load commit-graph information
      ref-filter: use generation number for --contains
      commit: use generation numbers for in_merge_bases()
      commit: add short-circuit to paint_down_to_common()
      commit: use generation number in remove_redundant()
      merge: check config before loading commits
      commit-graph.txt: update design document
      commit-graph: fix UX issue when .lock file exists
      ewah/bitmap.c: delete unused 'bitmap_clear()'
      ewah/bitmap.c: delete unused 'bitmap_each_bit()'
      ewah_bitmap: delete unused 'ewah_and()'
      ewah_bitmap: delete unused 'ewah_and_not()'
      ewah_bitmap: delete unused 'ewah_not()'
      ewah_bitmap: delete unused 'ewah_or()'
      ewah_io: delete unused 'ewah_serialize()'
      t5318-commit-graph.sh: use core.commitGraph
      commit-graph: UNLEAK before die()
      commit-graph: fix GRAPH_MIN_SIZE
      commit-graph: parse commit from chosen graph
      commit: force commit to parse from object database
      commit-graph: load a root tree from specific graph
      commit-graph: add 'verify' subcommand
      commit-graph: verify catches corrupt signature
      commit-graph: verify required chunks are present
      commit-graph: verify corrupt OID fanout and lookup
      commit-graph: verify objects exist
      commit-graph: verify root tree OIDs
      commit-graph: verify parent list
      commit-graph: verify generation number
      commit-graph: verify commit date
      commit-graph: test for corrupted octopus edge
      commit-graph: verify contents match checksum
      fsck: verify commit-graph
      commit-graph: use string-list API for input
      commit-graph: add '--reachable' option
      gc: automatically write commit-graph files
      commit-graph: update design document
      commit-graph: fix documentation inconsistencies
      coccinelle: update commit.cocci

Elijah Newren (63):
      t6036, t6042: use test_create_repo to keep tests independent
      t6036, t6042: use test_line_count instead of wc -l
      t6036, t6042: prefer test_path_is_file, test_path_is_missing
      t6036, t6042: prefer test_cmp to sequences of test
      t6036: prefer test_when_finished to manual cleanup in following test
      merge-recursive: fix miscellaneous grammar error in comment
      merge-recursive: fix numerous argument alignment issues
      merge-recursive: align labels with their respective code blocks
      merge-recursive: clarify the rename_dir/RENAME_DIR meaning
      merge-recursive: rename conflict_rename_*() family of functions
      merge-recursive: add pointer about unduly complex looking code
      git-rebase.txt: document incompatible options
      git-rebase.sh: update help messages a bit
      t3422: new testcases for checking when incompatible options passed
      git-rebase: error out when incompatible options passed
      git-rebase.txt: address confusion between --no-ff vs --force-rebase
      directory-rename-detection.txt: technical docs on abilities and limitations
      git-rebase.txt: document behavioral differences between modes
      t3401: add directory rename testcases for rebase and am
      git-rebase: make --allow-empty-message the default
      t3418: add testcase showing problems with rebase -i and strategy options
      Fix use of strategy options with interactive rebases
      git-rebase--merge: modernize "git-$cmd" to "git $cmd"
      apply: fix grammar error in comment
      t5407: fix test to cover intended arguments
      read-cache.c: move index_has_changes() from merge.c
      index_has_changes(): avoid assuming operating on the_index
      t6044: verify that merges expected to abort actually abort
      t6036: add a failed conflict detection case with symlink modify/modify
      t6036: add a failed conflict detection case with symlink add/add
      t6036: add a failed conflict detection case with submodule modify/modify
      t6036: add a failed conflict detection case with submodule add/add
      t6036: add a failed conflict detection case with conflicting types
      t6042: add testcase covering rename/add/delete conflict type
      t6042: add testcase covering rename/rename(2to1)/delete/delete conflict
      t6042: add testcase covering long chains of rename conflicts
      t6036: add lots of detail for directory/file conflicts in recursive case
      t6036: add a failed conflict detection case: regular files, different modes
      t6044: add a testcase for index matching head, when head doesn't match HEAD
      merge-recursive: make sure when we say we abort that we actually abort
      merge-recursive: fix assumption that head tree being merged is HEAD
      t6044: add more testcases with staged changes before a merge is invoked
      merge-recursive: enforce rule that index matches head before merging
      merge: fix misleading pre-merge check documentation
      t7405: add a file/submodule conflict
      t7405: add a directory/submodule conflict
      t7405: verify 'merge --abort' works after submodule/path conflicts
      merge-recursive: preserve skip_worktree bit when necessary
      t1015: demonstrate directory/file conflict recovery failures
      read-cache: fix directory/file conflict handling in read_index_unmerged()
      t3031: update test description to mention desired behavior
      t7406: fix call that was failing for the wrong reason
      t7406: simplify by using diff --name-only instead of diff --raw
      t7406: avoid having git commands upstream of a pipe
      t7406: prefer test_* helper functions to test -[feds]
      t7406: avoid using test_must_fail for commands other than git
      git-update-index.txt: reword possibly confusing example
      Add missing includes and forward declarations
      alloc: make allocate_alloc_state and clear_alloc_state more consistent
      Move definition of enum branch_track from cache.h to branch.h
      urlmatch.h: fix include guard
      compat/precompose_utf8.h: use more common include guard style
      Remove forward declaration of an enum

Eric Sunshine (53):
      t: use test_might_fail() instead of manipulating exit code manually
      t: use test_write_lines() instead of series of 'echo' commands
      t: use sane_unset() rather than 'unset' with broken &&-chain
      t: drop unnecessary terminating semicolon in subshell
      t/lib-submodule-update: fix "absorbing" test
      t5405: use test_must_fail() instead of checking exit code manually
      t5406: use write_script() instead of birthing shell script manually
      t5505: modernize and simplify hard-to-digest test
      t6036: fix broken "merge fails but has appropriate contents" tests
      t7201: drop pointless "exit 0" at end of subshell
      t7400: fix broken "submodule add/reconfigure --force" test
      t7810: use test_expect_code() instead of hand-rolled comparison
      t9001: fix broken "invoke hook" test
      t9814: simplify convoluted check that command correctly errors out
      t0000-t0999: fix broken &&-chains
      t1000-t1999: fix broken &&-chains
      t2000-t2999: fix broken &&-chains
      t3000-t3999: fix broken &&-chains
      t3030: fix broken &&-chains
      t4000-t4999: fix broken &&-chains
      t5000-t5999: fix broken &&-chains
      t6000-t6999: fix broken &&-chains
      t7000-t7999: fix broken &&-chains
      t9000-t9999: fix broken &&-chains
      t9119: fix broken &&-chains
      t6046/t9833: fix use of "VAR=VAL cmd" with a shell function
      t/check-non-portable-shell: stop being so polite
      t/check-non-portable-shell: make error messages more compact
      t/check-non-portable-shell: detect "FOO=bar shell_func"
      t/test-lib: teach --chain-lint to detect broken &&-chains in subshells
      t/Makefile: add machinery to check correctness of chainlint.sed
      t/chainlint: add chainlint "basic" test cases
      t/chainlint: add chainlint "whitespace" test cases
      t/chainlint: add chainlint "one-liner" test cases
      t/chainlint: add chainlint "nested subshell" test cases
      t/chainlint: add chainlint "loop" and "conditional" test cases
      t/chainlint: add chainlint "cuddled" test cases
      t/chainlint: add chainlint "complex" test cases
      t/chainlint: add chainlint "specialized" test cases
      diff: --color-moved: rename "dimmed_zebra" to "dimmed-zebra"
      mw-to-git/t9360: fix broken &&-chain
      t/chainlint.sed: drop extra spaces from regex character class
      sequencer: fix "rebase -i --root" corrupting author header
      sequencer: fix "rebase -i --root" corrupting author header timezone
      sequencer: fix "rebase -i --root" corrupting author header timestamp
      sequencer: don't die() on bogus user-edited timestamp
      color: protect against out-of-bounds reads and writes
      chainlint: match arbitrary here-docs tags rather than hard-coded names
      chainlint: match 'quoted' here-doc tags
      chainlint: recognize multi-line $(...) when command cuddled with "$("
      chainlint: let here-doc and multi-line string commence on same line
      chainlint: recognize multi-line quoted strings more robustly
      chainlint: add test of pathological case which triggered false positive

Han-Wen Nienhuys (2):
      config: document git config getter return value
      sideband: highlight keywords in remote sideband output

Henning Schild (9):
      builtin/receive-pack: use check_signature from gpg-interface
      gpg-interface: make parse_gpg_output static and remove from interface header
      gpg-interface: add new config to select how to sign a commit
      t/t7510: check the validation of the new config gpg.format
      gpg-interface: introduce an abstraction for multiple gpg formats
      gpg-interface: do not hardcode the key string len anymore
      gpg-interface: introduce new config to select per gpg format program
      gpg-interface: introduce new signature format "x509" using gpgsm
      gpg-interface t: extend the existing GPG tests with GPGSM

Isabella Stephens (2):
      blame: prevent error if range ends past end of file
      log: prevent error if line range ends past end of file

Jameson Miller (8):
      read-cache: teach refresh_cache_entry to take istate
      read-cache: teach make_cache_entry to take object_id
      block alloc: add lifecycle APIs for cache_entry structs
      mem-pool: only search head block for available space
      mem-pool: add life cycle management functions
      mem-pool: fill out functionality
      block alloc: allocate cache entries from mem_pool
      block alloc: add validations around cache_entry lifecyle

Jeff Hostetler (1):
      json_writer: new routines to create JSON data

Jeff King (48):
      make show-index a builtin
      show-index: update documentation for index v2
      fetch-pack: don't try to fetch peel values with --all
      ewah: drop ewah_deserialize function
      ewah: drop ewah_serialize_native function
      t3200: unset core.logallrefupdates when testing reflog creation
      t: switch "branch -l" to "branch --create-reflog"
      branch: deprecate "-l" option
      config: turn die_on_error into caller-facing enum
      config: add CONFIG_ERROR_SILENT handler
      config: add options parameter to git_config_from_mem
      fsck: silence stderr when parsing .gitmodules
      t6300: add a test for --ignore-case
      ref-filter: avoid backend filtering with --ignore-case
      t5500: prettify non-commit tag tests
      sequencer: handle empty-set cases consistently
      sequencer: don't say BUG on bogus input
      has_uncommitted_changes(): fall back to empty tree
      fsck: split ".gitmodules too large" error from parse failure
      fsck: downgrade gitmodulesParse default to "info"
      blame: prefer xsnprintf to strcpy for colors
      check_replace_refs: fix outdated comment
      check_replace_refs: rename to read_replace_refs
      add core.usereplacerefs config option
      reencode_string: use st_add/st_mult helpers
      reencode_string: use size_t for string lengths
      strbuf: use size_t for length in intermediate variables
      strbuf_readlink: use ssize_t
      pass st.st_size as hint for strbuf_readlink()
      strbuf_humanise: use unsigned variables
      automatically ban strcpy()
      banned.h: mark strcat() as banned
      banned.h: mark sprintf() as banned
      banned.h: mark strncpy() as banned
      score_trees(): fix iteration over trees with missing entries
      add a script to diff rendered documentation
      t5552: suppress upload-pack trace output
      for_each_*_object: store flag definitions in a single location
      for_each_*_object: take flag arguments as enum
      for_each_*_object: give more comprehensive docstrings
      for_each_packed_object: support iterating in pack-order
      t1006: test cat-file --batch-all-objects with duplicates
      cat-file: rename batch_{loose,packed}_object callbacks
      cat-file: support "unordered" output for --batch-all-objects
      cat-file: use oidset check-and-insert
      cat-file: split batch "buf" into two variables
      cat-file: use a single strbuf for all output
      for_each_*_object: move declarations to object-store.h

Johannes Schindelin (41):
      Makefile: fix the "built from commit" code
      merge: allow reading the merge commit message from a file
      rebase --rebase-merges: add support for octopus merges
      rebase --rebase-merges: adjust man page for octopus support
      vcbuild/README: update to accommodate for missing common-cmds.h
      t7406: avoid failures solely due to timing issues
      contrib: add a script to initialize VS Code configuration
      vscode: hard-code a couple defines
      cache.h: extract enum declaration from inside a struct declaration
      mingw: define WIN32 explicitly
      vscode: only overwrite C/C++ settings
      vscode: wrap commit messages at column 72 by default
      vscode: use 8-space tabs, no trailing ws, etc for Git's source code
      vscode: add a dictionary for cSpell
      vscode: let cSpell work on commit messages, too
      pull --rebase=<type>: allow single-letter abbreviations for the type
      t3430: demonstrate what -r, --autosquash & --exec should do
      git-compat-util.h: fix typo
      remote-curl: remove spurious period
      rebase --exec: make it work with --rebase-merges
      linear-assignment: a function to solve least-cost assignment problems
      Introduce `range-diff` to compare iterations of a topic branch
      range-diff: first rudimentary implementation
      range-diff: improve the order of the shown commits
      range-diff: also show the diff between patches
      range-diff: right-trim commit messages
      range-diff: indent the diffs just like tbdiff
      range-diff: suppress the diff headers
      range-diff: adjust the output of the commit pairs
      range-diff: do not show "function names" in hunk headers
      range-diff: use color for the commit pairs
      color: add the meta color GIT_COLOR_REVERSE
      diff: add an internal option to dual-color diffs of diffs
      range-diff: offer to dual-color the diffs
      range-diff --dual-color: skip white-space warnings
      range-diff: populate the man page
      completion: support `git range-diff`
      range-diff: left-pad patch numbers
      range-diff: make --dual-color the default mode
      range-diff: use dim/bold cues to improve dual color mode
      chainlint: fix for core.autocrlf=true

Johannes Sixt (1):
      mingw: enable atomic O_APPEND

Jonathan Nieder (11):
      object: add repository argument to grow_object_hash
      object: move grafts to object parser
      commit: add repository argument to commit_graft_pos
      commit: add repository argument to register_commit_graft
      commit: add repository argument to read_graft_file
      commit: add repository argument to prepare_commit_graft
      commit: add repository argument to lookup_commit_graft
      subtree test: add missing && to &&-chain
      subtree test: simplify preparation of expected results
      doc hash-function-transition: pick SHA-256 as NewHash
      partial-clone: render design doc using asciidoc

Jonathan Tan (28):
      list-objects: check if filter is NULL before using
      fetch-pack: split up everything_local()
      fetch-pack: clear marks before re-marking
      fetch-pack: directly end negotiation if ACK ready
      fetch-pack: use ref adv. to prune "have" sent
      fetch-pack: make negotiation-related vars local
      fetch-pack: move common check and marking together
      fetch-pack: introduce negotiator API
      pack-bitmap: remove bitmap_git global variable
      pack-bitmap: add free function
      fetch-pack: write shallow, then check connectivity
      fetch-pack: support negotiation tip whitelist
      upload-pack: send refs' objects despite "filter"
      clone: check connectivity even if clone is partial
      revision: tolerate promised targets of tags
      tag: don't warn if target is missing but promised
      negotiator/skipping: skip commits during fetch
      commit-graph: refactor preparing commit graph
      object-store: add missing include
      commit-graph: add missing forward declaration
      commit-graph: add free_commit_graph
      commit-graph: store graph in struct object_store
      commit-graph: add repo arg to graph readers
      t5702: test fetch with multiple refspecs at a time
      fetch: send "refs/tags/" prefix upon CLI refspecs
      fetch-pack: unify ref in and out param
      repack: refactor setup of pack-objects cmd
      repack: repack promisor objects if -a or -A is set

Josh Steadmon (1):
      protocol-v2 doc: put HTTP headers after request

Jules Maselbas (1):
      send-email: fix tls AUTH when sending batch

Junio C Hamano (18):
      tests: clean after SANITY tests
      ewah: delete unused 'rlwit_discharge_empty()'
      Prepare to start 2.19 cycle
      First batch for 2.19 cycle
      Second batch for 2.19 cycle
      fixup! connect.h: avoid forward declaration of an enum
      fixup! refs/refs-internal.h: avoid forward declaration of an enum
      t3404: fix use of "VAR=VAL cmd" with a shell function
      Third batch for 2.19 cycle
      Fourth batch for 2.19 cycle
      remote: make refspec follow the same disambiguation rule as local refs
      Fifth batch for 2.19 cycle
      update-index: there no longer is `apply --index-info`
      gpg-interface: propagate exit status from gpg back to the callers
      Sixth batch for 2.19 cycle
      Seventh batch for 2.19 cycle
      sideband: do not read beyond the end of input
      Git 2.19-rc0

Kana Natsuno (2):
      t4018: add missing test cases for PHP
      userdiff: support new keywords in PHP hunk header

Kim Gybels (1):
      gc --auto: release pack files before auto packing

Kirill Smelkov (1):
      fetch-pack: test explicitly that --all can fetch tag references pointing to non-commits

Luis Marsano (2):
      git-credential-netrc: use in-tree Git.pm for tests
      git-credential-netrc: fix exit status when tests fail

Luke Diamand (6):
      git-p4: python3: replace <> with !=
      git-p4: python3: replace dict.has_key(k) with "k in dict"
      git-p4: python3: remove backticks
      git-p4: python3: basestring workaround
      git-p4: python3: use print() function
      git-p4: python3: fix octal constants

Marc Strapetz (1):
      Documentation: declare "core.ignoreCase" as internal variable

Martin Ågren (1):
      refspec: initalize `refspec_item` in `valid_fetch_refspec()`

Masaya Suzuki (2):
      builtin/send-pack: populate the default configs
      doc: fix want-capability separator

Max Kirillov (4):
      http-backend: cleanup writing to child process
      http-backend: respect CONTENT_LENGTH as specified by rfc3875
      unpack-trees: do not fail reset because of unmerged skipped entry
      http-backend: respect CONTENT_LENGTH for receive-pack

Michael Barabanov (1):
      filter-branch: skip commits present on --state-branch

Mike Hommey (1):
      fast-import: do not call diff_delta() with empty buffer

Nguyễn Thái Ngọc Duy (98):
      commit-slab.h: code split
      commit-slab: support shared commit-slab
      blame: use commit-slab for blame suspects instead of commit->util
      describe: use commit-slab for commit names instead of commit->util
      shallow.c: use commit-slab for commit depth instead of commit->util
      sequencer.c: use commit-slab to mark seen commits
      sequencer.c: use commit-slab to associate todo items to commits
      revision.c: use commit-slab for show_source
      bisect.c: use commit-slab for commit weight instead of commit->util
      name-rev: use commit-slab for rev-name instead of commit->util
      show-branch: use commit-slab for commit-name instead of commit->util
      show-branch: note about its object flags usage
      log: use commit-slab in prepare_bases() instead of commit->util
      merge: use commit-slab in merge remote desc instead of commit->util
      commit.h: delete 'util' field in struct commit
      diff: ignore --ita-[in]visible-in-index when diffing worktree-to-tree
      diff: turn --ita-invisible-in-index on by default
      t2203: add a test about "diff HEAD" case
      apply: add --intent-to-add
      parse-options: option to let --git-completion-helper show negative form
      completion: suppress some -no- options
      Add and use generic name->id mapping code for color slot parsing
      grep: keep all colors in an array
      fsck: factor out msg_id_info[] lazy initialization code
      help: add --config to list all available config
      fsck: produce camelCase config key names
      advice: keep config name in camelCase in advice_config[]
      am: move advice.amWorkDir parsing back to advice.c
      completion: drop the hard coded list of config vars
      completion: keep other config var completion in camelCase
      completion: support case-insensitive config vars
      log-tree: allow to customize 'grafted' color
      completion: complete general config vars in two steps
      upload-pack: reject shallow requests that would return nothing
      completion: collapse extra --no-.. options
      Update messages in preparation for i18n
      archive-tar.c: mark more strings for translation
      archive-zip.c: mark more strings for translation
      builtin/config.c: mark more strings for translation
      builtin/grep.c: mark strings for translation
      builtin/pack-objects.c: mark more strings for translation
      builtin/replace.c: mark more strings for translation
      commit-graph.c: mark more strings for translation
      config.c: mark more strings for translation
      connect.c: mark more strings for translation
      convert.c: mark more strings for translation
      dir.c: mark more strings for translation
      environment.c: mark more strings for translation
      exec-cmd.c: mark more strings for translation
      object.c: mark more strings for translation
      pkt-line.c: mark more strings for translation
      refs.c: mark more strings for translation
      refspec.c: mark more strings for translation
      replace-object.c: mark more strings for translation
      sequencer.c: mark more strings for translation
      sha1-file.c: mark more strings for translation
      transport.c: mark more strings for translation
      transport-helper.c: mark more strings for translation
      pack-objects: document about thread synchronization
      apply.h: drop extern on func declaration
      attr.h: drop extern from function declaration
      blame.h: drop extern on func declaration
      cache-tree.h: drop extern from function declaration
      convert.h: drop 'extern' from function declaration
      diffcore.h: drop extern from function declaration
      diff.h: remove extern from function declaration
      line-range.h: drop extern from function declaration
      rerere.h: drop extern from function declaration
      repository.h: drop extern from function declaration
      revision.h: drop extern from function declaration
      submodule.h: drop extern from function declaration
      config.txt: reorder blame stuff to keep config keys sorted
      Makefile: add missing dependency for command-list.h
      diff.c: move read_index() code back to the caller
      cache-tree: wrap the_index based wrappers with #ifdef
      attr: remove an implicit dependency on the_index
      convert.c: remove an implicit dependency on the_index
      dir.c: remove an implicit dependency on the_index in pathspec code
      preload-index.c: use the right index instead of the_index
      ls-files: correct index argument to get_convert_attr_ascii()
      unpack-trees: remove 'extern' on function declaration
      unpack-trees: add a note about path invalidation
      unpack-trees: don't shadow global var the_index
      unpack-trees: convert clear_ce_flags* to avoid the_index
      unpack-trees: avoid the_index in verify_absent()
      pathspec.c: use the right index instead of the_index
      submodule.c: use the right index instead of the_index
      entry.c: use the right index instead of the_index
      attr: remove index from git_attr_set_direction()
      grep: use the right index instead of the_index
      archive.c: avoid access to the_index
      archive-*.c: use the right repository
      resolve-undo.c: use the right index instead of the_index
      apply.c: pass struct apply_state to more functions
      apply.c: make init_apply_state() take a struct repository
      apply.c: remove implicit dependency on the_index
      blame.c: remove implicit dependency on the_index
      cherry-pick: fix --quit not deleting CHERRY_PICK_HEAD

Nicholas Guriev (1):
      mergetool: don't suggest to continue after last file

Olga Telezhnaya (5):
      ref-filter: add info_source to valid_atom
      ref-filter: fill empty fields with empty values
      ref-filter: initialize eaten variable
      ref-filter: merge get_obj and get_object
      ref-filter: use oid_object_info() to get object

Phillip Wood (5):
      add -p: fix counting empty context lines in edited patches
      sequencer: do not squash 'reword' commits when we hit conflicts
      rebase -i: fix numbering in squash message
      t3430: add conflicting commit
      rebase -i: fix SIGSEGV when 'merge <branch>' fails

Prathamesh Chavan (4):
      submodule foreach: correct '$path' in nested submodules from a subdirectory
      submodule foreach: document '$sm_path' instead of '$path'
      submodule foreach: document variable '$displaypath'
      submodule: port submodule subcommand 'foreach' from shell to C

Ramsay Jones (3):
      fsck: check skiplist for object in fsck_blob()
      t6036: fix broken && chain in sub-shell
      t5562: avoid non-portable "export FOO=bar" construct

René Scharfe (7):
      remote: clear string_list after use in mv()
      add, update-index: fix --chmod argument help
      difftool: remove angular brackets from argument help
      pack-objects: specify --index-version argument help explicitly
      send-pack: specify --force-with-lease argument help explicitly
      shortlog: correct option help for -w
      parse-options: automatically infer PARSE_OPT_LITERAL_ARGHELP

SZEDER Gábor (19):
      update-ref --stdin: use skip_prefix()
      t7510-signed-commit: use 'test_must_fail'
      tests: make forging GPG signed commits and tags more robust
      t5541: clean up truncating access log
      t/lib-httpd: add the strip_access_log() helper function
      t/lib-httpd: avoid occasional failures when checking access.log
      t5608: fix broken &&-chain
      t9300: wait for background fast-import process to die after killing it
      travis-ci: run Coccinelle static analysis with two parallel jobs
      travis-ci: fail if Coccinelle static analysis found something to transform
      coccinelle: mark the 'coccicheck' make target as .PHONY
      coccinelle: use $(addsuffix) in 'coccicheck' make target
      coccinelle: exclude sha1dc source files from static analysis
      coccinelle: put sane filenames into output patches
      coccinelle: extract dedicated make target to clean Coccinelle's results
      travis-ci: include the trash directories of failed tests in the trace log
      t5318: use 'test_cmp_bin' to compare commit-graph files
      t5318: avoid unnecessary command substitutions
      t5310-pack-bitmaps: fix bogus 'pack-objects to file can use bitmap' test

Sebastian Kisela (2):
      git-instaweb: support Fedora/Red Hat apache module path
      git-instaweb: fix apache2 config with apache >= 2.4

Stefan Beller (87):
      repository: introduce parsed objects field
      object: add repository argument to create_object
      alloc: add repository argument to alloc_blob_node
      alloc: add repository argument to alloc_tree_node
      alloc: add repository argument to alloc_commit_node
      alloc: add repository argument to alloc_tag_node
      alloc: add repository argument to alloc_object_node
      alloc: add repository argument to alloc_report
      alloc: add repository argument to alloc_commit_index
      object: allow grow_object_hash to handle arbitrary repositories
      object: allow create_object to handle arbitrary repositories
      alloc: allow arbitrary repositories for alloc functions
      object-store: move object access functions to object-store.h
      shallow: add repository argument to set_alternate_shallow_file
      shallow: add repository argument to register_shallow
      shallow: add repository argument to check_shallow_file_for_update
      shallow: add repository argument to is_repository_shallow
      cache: convert get_graft_file to handle arbitrary repositories
      path.c: migrate global git_path_* to take a repository argument
      shallow: migrate shallow information into the object parser
      commit: allow prepare_commit_graft to handle arbitrary repositories
      commit: allow lookup_commit_graft to handle arbitrary repositories
      refs/packed-backend.c: close fd of empty file
      submodule--helper: plug mem leak in print_default_remote
      sequencer.c: plug leaks in do_pick_commit
      submodule: fix NULL correctness in renamed broken submodules
      t5526: test recursive submodules when fetching moved submodules
      submodule: unset core.worktree if no working tree is present
      submodule: ensure core.worktree is set after update
      submodule deinit: unset core.worktree
      submodule.c: report the submodule that an error occurs in
      sequencer.c: plug mem leak in git_sequencer_config
      .mailmap: merge different spellings of names
      object: add repository argument to parse_object
      object: add repository argument to lookup_object
      object: add repository argument to parse_object_buffer
      object: add repository argument to object_as_type
      blob: add repository argument to lookup_blob
      tree: add repository argument to lookup_tree
      commit: add repository argument to lookup_commit_reference_gently
      commit: add repository argument to lookup_commit_reference
      commit: add repository argument to lookup_commit
      commit: add repository argument to parse_commit_buffer
      commit: add repository argument to set_commit_buffer
      commit: add repository argument to get_cached_commit_buffer
      tag: add repository argument to lookup_tag
      tag: add repository argument to parse_tag_buffer
      tag: add repository argument to deref_tag
      object: allow object_as_type to handle arbitrary repositories
      object: allow lookup_object to handle arbitrary repositories
      blob: allow lookup_blob to handle arbitrary repositories
      tree: allow lookup_tree to handle arbitrary repositories
      commit: allow lookup_commit to handle arbitrary repositories
      tag: allow lookup_tag to handle arbitrary repositories
      tag: allow parse_tag_buffer to handle arbitrary repositories
      commit.c: allow parse_commit_buffer to handle arbitrary repositories
      commit-slabs: remove realloc counter outside of slab struct
      commit.c: migrate the commit buffer to the parsed object store
      commit.c: allow set_commit_buffer to handle arbitrary repositories
      commit.c: allow get_cached_commit_buffer to handle arbitrary repositories
      object.c: allow parse_object_buffer to handle arbitrary repositories
      object.c: allow parse_object to handle arbitrary repositories
      tag.c: allow deref_tag to handle arbitrary repositories
      commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories
      commit.c: allow lookup_commit_reference to handle arbitrary repositories
      xdiff/xdiff.h: remove unused flags
      xdiff/xdiffi.c: remove unneeded function declarations
      t4015: avoid git as a pipe input
      diff.c: do not pass diff options as keydata to hashmap
      diff.c: adjust hash function signature to match hashmap expectation
      diff.c: add a blocks mode for moved code detection
      diff.c: decouple white space treatment from move detection algorithm
      diff.c: factor advance_or_nullify out of mark_color_as_moved
      diff.c: add white space mode to move detection that allows indent changes
      diff.c: offer config option to control ws handling in move detection
      xdiff/xhistogram: pass arguments directly to fall_back_to_classic_diff
      xdiff/xhistogram: factor out memory cleanup into free_index()
      xdiff/xhistogram: move index allocation into find_lcs
      Documentation/git-interpret-trailers: explain possible values
      xdiff/histogram: remove tail recursion
      t1300: document current behavior of setting options
      xdiff: reduce indent heuristic overhead
      config: fix case sensitive subsection names on writing
      git-config: document accidental multi-line setting in deprecated syntax
      git-submodule.sh: accept verbose flag in cmd_update to be non-quiet
      t7410: update to new style
      builtin/submodule--helper: remove stray new line

Taylor Blau (9):
      Documentation/config.txt: camel-case lineNumber for consistency
      grep.c: expose {,inverted} match column in match_line()
      grep.[ch]: extend grep_opt to allow showing matched column
      grep.c: display column number of first match
      builtin/grep.c: add '--column' option to 'git-grep(1)'
      grep.c: add configuration variables to show matched option
      contrib/git-jump/git-jump: jump to exact location
      grep.c: extract show_line_header()
      grep.c: teach 'git grep --only-matching'

Thomas Rast (1):
      range-diff: add tests

Tobias Klauser (1):
      git-rebase--preserve-merges: fix formatting of todo help message

Todd Zullinger (4):
      git-credential-netrc: minor whitespace cleanup in test script
      git-credential-netrc: make "all" default target of Makefile
      gitignore.txt: clarify default core.excludesfile path
      dir.c: fix typos in core.excludesfile comment

Ville Skyttä (1):
      Documentation: spelling and grammar fixes

Vladimir Parfinenko (1):
      rebase: fix documentation formatting

William Chargin (2):
      sha1-name.c: for ":/", find detached HEAD commits
      t: factor out FUNNYNAMES as shared lazy prereq

Xiaolong Ye (1):
      format-patch: clear UNINTERESTING flag before prepare_bases

brian m. carlson (21):
      send-email: add an auto option for transfer encoding
      send-email: accept long lines with suitable transfer encoding
      send-email: automatically determine transfer-encoding
      docs: correct RFC specifying email line length
      sequencer: pass absolute GIT_WORK_TREE to exec commands
      cache: update object ID functions for the_hash_algo
      tree-walk: replace hard-coded constants with the_hash_algo
      hex: switch to using the_hash_algo
      commit: express tree entry constants in terms of the_hash_algo
      strbuf: allocate space with GIT_MAX_HEXSZ
      sha1-name: use the_hash_algo when parsing object names
      refs/files-backend: use the_hash_algo for writing refs
      builtin/update-index: convert to using the_hash_algo
      builtin/update-index: simplify parsing of cacheinfo
      builtin/fmt-merge-msg: make hash independent
      builtin/merge: switch to use the_hash_algo
      builtin/merge-recursive: make hash independent
      diff: switch GIT_SHA1_HEXSZ to use the_hash_algo
      log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexsz
      sha1-file: convert constants to uses of the_hash_algo
      pretty: switch hard-coded constants to the_hash_algo

Ævar Arnfjörð Bjarmason (36):
      checkout tests: index should be clean after dwim checkout
      checkout.h: wrap the arguments to unique_tracking_name()
      checkout.c: introduce an *_INIT macro
      checkout.c: change "unique" member to "num_matches"
      checkout: pass the "num_matches" up to callers
      builtin/checkout.c: use "ret" variable for return
      checkout: add advice for ambiguous "checkout <branch>"
      checkout & worktree: introduce checkout.defaultRemote
      refspec: s/refspec_item_init/&_or_die/g
      refspec: add back a refspec_item_init() function
      doc hash-function-transition: note the lack of a changelog
      receive.fsck.<msg-id> tests: remove dead code
      config doc: don't describe *.fetchObjects twice
      config doc: unify the description of fsck.* and receive.fsck.*
      config doc: elaborate on what transfer.fsckObjects does
      config doc: elaborate on fetch.fsckObjects security
      transfer.fsckObjects tests: untangle confusing setup
      fetch: implement fetch.fsck.*
      fsck: test & document {fetch,receive}.fsck.* config fallback
      fsck: add stress tests for fsck.skipList
      fsck: test and document unknown fsck.<msg-id> values
      tests: make use of the test_must_be_empty function
      tests: make use of the test_must_be_empty function
      fetch tests: change "Tag" test tag to "testTag"
      push tests: remove redundant 'git push' invocation
      push tests: fix logic error in "push" test assertion
      push tests: add more testing for forced tag pushing
      push tests: assert re-pushing annotated tags
      negotiator: unknown fetch.negotiationAlgorithm should error out
      fetch doc: cross-link two new negotiation options
      sha1dc: update from upstream
      push: use PARSE_OPT_LITERAL_ARGHELP instead of unbalanced brackets
      fetch tests: correct a comment "remove it" -> "remove them"
      pull doc: fix a long-standing grammar error
      submodule: add more exhaustive up-path testing
      t2024: mark test using "checkout -p" with PERL prerequisite

Łukasz Stelmach (1):
      completion: complete remote names too


Version v2.18.5; changes since v2.18.4:
---------------------------------------

Johannes Schindelin (3):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6
      Git 2.18.5

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.18.4; changes since v2.18.3:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.18.3; changes since v2.18.2:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.18.2; changes since v2.18.1:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (24):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3
      Git 2.18.2

Jonathan Nieder (2):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules


Version v2.18.1; changes since v2.18.0:
---------------------------------------

Jeff King (5):
      submodule--helper: use "--" to signal end of clone options
      submodule-config: ban submodule urls that start with dash
      submodule-config: ban submodule paths that start with a dash
      fsck: detect submodule urls starting with dash
      fsck: detect submodule paths starting with dash

Junio C Hamano (5):
      Git 2.14.5
      Git 2.15.3
      Git 2.16.5
      Git 2.17.2
      Git 2.18.1


Version v2.18.0; changes since v2.18.0-rc2:
-------------------------------------------

Alexander Shopov (2):
      l10n: bg.po: Updated Bulgarian translation (3608t)
      l10n: bg.po: Updated Bulgarian translation (3608t)

Andre Hinrichs (1):
      l10n: de.po: fix typos

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Christopher Díaz Riveros (3):
      l10n: es.po: Spanish update for v2.18.0 round 1
      l10n: es.po: Spanish update for v2.18.0 round 2
      l10n: es.po: Spanish update for v2.18.0 round 3

Eric Sunshine (1):
      Makefile: make NO_ICONV really mean "no iconv"

Jean-Noël Avila (2):
      l10n: fr.po v2.18 round 1
      l10n: fr.po v2.18.0 round 3

Jeff King (2):
      ewah_read_mmap: bounds-check mmap reads
      ewah: adjust callers of ewah_read_mmap()

Jeremy Linton (1):
      packfile: correct zlib buffer handling

Jiang Xin (4):
      l10n: git.pot: v2.18.0 round 1 (108 new, 14 removed)
      l10n: git.pot: v2.18.0 round 2 (144 new, 6 removed)
      l10n: git.pot: v2.18.0 round 3 (1 new, 1 removed)
      l10n: zh_CN: for git v2.18.0 l10n round 1 to 3

Johannes Schindelin (1):
      rebase --root: fix amending root commit messages

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (3):
      A bunch of micro-fixes before going 2.18 final
      Almost 2.18 final
      Git 2.18

Kaartic Sivaraam (1):
      t3200: clarify description of --set-upstream test

Karthikeyan Singaravelan (1):
      doc: fix typos in documentation and release notes

Kyle Meyer (1):
      gitworkflows: fix grammar in 'Merge upwards' rule

Luke Diamand (6):
      git-p4: disable-rebase: allow setting this via configuration
      git-p4: add option to disable syncing of p4/master with p4
      git-p4: better error reporting when p4 fails
      git-p4: raise exceptions from p4CmdList based on error from p4 server
      git-p4: narrow the scope of exceptions caught when parsing an int
      git-p4: auto-size the block

Meng-Sung Wu (1):
      doc: update the order of the syntax `git merge --continue`

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (3470t0f0u)
      l10n: sv.po: Update Swedish translation (3608t0f0u)

Ralf Thielow (1):
      l10n: TEAMS: remove inactive de team members

René Scharfe (3):
      merge-recursive: use xstrdup() instead of fixed buffer
      blame: release string_list after use in parse_color_fields()
      merge-recursive: use xstrdup() instead of fixed buffer

Robert P. J. Day (3):
      sha1-file.c: correct $GITDIR to $GIT_DIR in a comment
      diff-options.txt: fix minor typos, font inconsistencies, in docs
      Use hyphenated "remote-tracking branch" (docs and comments)

Romain Merland (1):
      git-p4: add options --commit and --disable-rebase

SZEDER Gábor (2):
      t7406-submodule-update: fix broken &&-chains
      RelNotes 2.18: minor fix to entry about dynamically loading completions

Stefan Beller (1):
      t7400: encapsulate setup code in test_expect_success

Todd Zullinger (2):
      rebase --root: demonstrate a bug while amending root commit messages
      t3404: check root commit in 'rebase -i --root reword root commit'

Trần Ngọc Quân (3):
      l10n: vi(3470t): Updated Vietnamese translation for v2.18.0
      l10n: vi.po(3608t): Update Vietnamese translation for v2.18.0 round2
      l10n: vi.po(3608t): Update Vietnamese translation for v2.18.0 round 3

Ævar Arnfjörð Bjarmason (1):
      git-credential-netrc: remove use of "autodie"


Version v2.18.0-rc2; changes since v2.18.0-rc1:
-----------------------------------------------

Elijah Newren (1):
      RelNotes 2.18: clarify where directory rename detection applies

Jeff King (4):
      prepare_commit_graft: treat non-repository as a noop
      index-pack: handle --strict checks of non-repo packs
      t7415: don't bother creating commit for symlink test
      fsck: avoid looking at NULL blob->object

Junio C Hamano (3):
      RelNotes 2.18: typofixes
      index-pack: correct install_packed_git() args
      Git 2.18-rc2

Leif Middelschulte (1):
      merge-submodule: reduce output verbosity

SZEDER Gábor (1):
      completion: correct zsh detection when run from git-completion.zsh


Version v2.18.0-rc1; changes since v2.18.0-rc0:
-----------------------------------------------

Christian Couder (1):
      t990X: use '.git/objects' as 'deep inside .git' path

David Turner (1):
      t: make many tests depend less on the refs being files

Elijah Newren (2):
      rev-parse: check lookup'ed commit references for NULL
      RelNotes: remove duplicate release note

Jonathan Nieder (1):
      fetch: do not pass ref-prefixes for fetch by exact SHA1

Jonathan Tan (1):
      submodule: do not pass null OID to setup_revisions

Junio C Hamano (3):
      refspec-api: avoid uninitialized field in refspec item
      A bit more topics before -rc1
      Git 2.18-rc1

Luke Diamand (1):
      git-p4: add unshelve command

Nguyễn Thái Ngọc Duy (20):
      generate-cmds.sh: factor out synopsis extract code
      generate-cmds.sh: export all commands to command-list.h
      help: use command-list.h for common command list
      Remove common-cmds.h
      git.c: convert --list-* to --list-cmds=*
      git --list-cmds: collect command list in a string_list
      completion: implement and use --list-cmds=main,others
      git: support --list-cmds=list-<category>
      help: add "-a --verbose" to list all commands with synopsis
      help: use command-list.txt for the source of guides
      command-list.txt: documentation and guide line
      completion: let git provide the completable command list
      completion: reduce completable command list
      Move declaration for alias.c to alias.h
      completion: add and use --list-cmds=nohelpers
      completion: add and use --list-cmds=alias
      completion: allow to customize the completable command list
      Use OPT_SET_INT_F() for cmdline option specification
      remote.txt: update documentation for 'update' command
      remote: doc typofix

Orgad Shaneh (1):
      git-rebase--interactive: fix copy-paste mistake

Pedro Alvarez Piedehierro (1):
      import-tars: read overlong names from pax extended header

Robert P. J. Day (4):
      Use proper syntax for replaceables in command docs
      tag: clarify in the doc that a tag can refer to a non-commit object
      init: fix grammar in "templates not found" msg
      p4.txt: Use backquotes for variable names

Thomas Gummerer (2):
      SubmittingPatches: replace numbered attributes with names
      note git-security@googlegroups.com in more places

brian m. carlson (2):
      sequencer: ensure labels that are object IDs are rewritten
      t3430: test clean-up


Version v2.18.0-rc0; changes since v2.17.6:
-------------------------------------------

Anders Kaseorg (1):
      Documentation/git-bisect.txt: git bisect term → git bisect terms

Andreas Heiduk (9):
      git-svn: search --authors-prog in PATH too
      git-svn: allow empty email-address using authors-prog and authors-file
      doc: improve formatting in githooks.txt
      doc: align 'diff --no-index' in text and synopsis
      doc: clarify ignore rules for git ls-files
      doc: add '-d' and '-o' for 'git push'
      git-svn: remove ''--add-author-from' for 'commit-diff'
      doc: add note about shell quoting to revision.txt
      doc: normalize [--options] to [options] in git-diff

Antonio Ospite (1):
      doc: fix config API documentation about config_with_options

Beat Bolli (1):
      git-gui: search for all current SSH key types

Ben Peart (7):
      fsmonitor: fix incorrect buffer size when printing version number
      fsmonitor: force index write after full scan
      test-drop-caches: simplify delay loading of NtSetSystemInformation
      merge: update documentation for {merge,diff}.renameLimit
      merge: add merge.renames config setting
      merge: pass aggressive when rename detection is turned off
      add status config and command line options for rename detection

Bill Ritcher (1):
      mergetools: add support for guiffy

Birger Skogeng Pedersen (1):
      git-gui: bind CTRL/CMD+numpad ENTER to do_commit

Brandon Williams (79):
      pkt-line: introduce packet_read_with_status
      pkt-line: allow peeking a packet line without consuming it
      pkt-line: add delim packet support
      upload-pack: convert to a builtin
      upload-pack: factor out processing lines
      transport: use get_refs_via_connect to get refs
      connect: convert get_remote_heads to use struct packet_reader
      connect: discover protocol version outside of get_remote_heads
      transport: store protocol version
      protocol: introduce enum protocol_version value protocol_v2
      test-pkt-line: introduce a packet-line test helper
      serve: introduce git-serve
      ls-refs: introduce ls-refs server command
      connect: request remote refs using v2
      transport: convert get_refs_list to take a list of ref prefixes
      transport: convert transport_get_remote_refs to take a list of ref prefixes
      ls-remote: pass ref prefixes when requesting a remote's refs
      fetch: pass ref prefixes when fetching
      push: pass ref prefixes when pushing
      upload-pack: introduce fetch server command
      fetch-pack: perform a fetch using v2
      fetch-pack: support shallow requests
      connect: refactor git_connect to only get the protocol version once
      connect: don't request v2 when pushing
      transport-helper: remove name parameter
      transport-helper: refactor process_connect_service
      transport-helper: introduce stateless-connect
      pkt-line: add packet_buf_write_len function
      remote-curl: create copy of the service name
      remote-curl: store the protocol version the server responded with
      http: allow providing extra headers for http requests
      http: don't always add Git-Protocol header
      http: eliminate "# service" line when using protocol v2
      remote-curl: implement stateless-connect command
      remote-curl: don't request v2 when pushing
      commit: allow partial commits with relative paths
      serve: introduce the server-option capability
      ls-remote: send server options when using protocol v2
      fetch: send server options when using protocol v2
      refspec: move refspec parsing logic into its own file
      refspec: rename struct refspec to struct refspec_item
      refspec: factor out parsing a single refspec
      refspec: introduce struct refspec
      refspec: convert valid_fetch_refspec to use parse_refspec
      submodule--helper: convert push_check to use struct refspec
      pull: convert get_tracking_branch to use refspec_item_init
      transport: convert transport_push to use struct refspec
      remote: convert check_push_refs to use struct refspec
      remote: convert match_push_refs to use struct refspec
      clone: convert cmd_clone to use refspec_item_init
      fast-export: convert to use struct refspec
      remote: convert push refspecs to struct refspec
      remote: convert fetch refspecs to struct refspec
      remote: remove add_prune_tags_to_fetch_refspec
      transport-helper: convert to use struct refspec
      fetch: convert fetch_one to use struct refspec
      fetch: convert refmap to use struct refspec
      refspec: remove the deprecated functions
      fetch: convert do_fetch to take a struct refspec
      fetch: convert get_ref_map to take a struct refspec
      fetch: convert prune_refs to take a struct refspec
      remote: convert get_stale_heads to take a struct refspec
      remote: convert apply_refspecs to take a struct refspec
      remote: convert query_refspecs to take a struct refspec
      remote: convert get_ref_match to take a struct refspec
      remote: convert match_explicit_refs to take a struct refspec
      push: check for errors earlier
      push: convert to use struct refspec
      transport: convert transport_push to take a struct refspec
      send-pack: store refspecs in a struct refspec
      transport: remove transport_verify_remote_names
      http-push: store refspecs in a struct refspec
      remote: convert match_push_refs to take a struct refspec
      remote: convert check_push_refs to take a struct refspec
      submodule: convert push_unpushed_submodules to take a struct refspec
      refspec: consolidate ref-prefix generation logic
      fetch: generate ref-prefixes when using a configured refspec
      remote-curl: accept all encodings supported by curl
      remote-curl: accept compressed responses with protocol v2

Casey Fitzpatrick (3):
      submodule: clean up substitutions in script
      submodule: add --progress option to add command
      submodule: add --dissociate option to add/update commands

Christian Couder (6):
      perf/aggregate: add display_dir()
      perf/aggregate: add --sort-by=regression option
      perf/run: add --subsection option
      t/perf: add scripts to bisect performance regressions
      perf/aggregate: use Getopt::Long for option parsing
      perf/bisect_run_script: disable codespeed

Christian Hesse (2):
      perl: fix installing modules from contrib
      Makefile: mark perllibdir as a .PHONY target

Clemens Buchacher (2):
      git-gui: workaround ttk:style theme use
      completion: improve ls-files filter performance

Dan Jacques (3):
      Makefile: generate Perl header from template file
      Makefile: add Perl runtime prefix support
      exec_cmd: RUNTIME_PREFIX on some POSIX systems

Derrick Stolee (20):
      packfile: define and use bsearch_pack()
      sha1_name: use bsearch_pack() for abbreviations
      csum-file: rename hashclose() to finalize_hashfile()
      csum-file: refactor finalize_hashfile() method
      commit-graph: add format document
      graph: add commit graph design document
      commit-graph: create git-commit-graph builtin
      commit-graph: implement write_commit_graph()
      commit-graph: implement git-commit-graph write
      commit-graph: implement git commit-graph read
      commit-graph: add core.commitGraph setting
      commit-graph: close under reachability
      commit: integrate commit graph with commit parsing
      commit-graph: read only from specific pack-indexes
      commit-graph: build graph from starting commits
      commit-graph: implement "--append" option
      treewide: rename tree to maybe_tree
      commit: create get_commit_tree() method
      treewide: replace maybe_tree with accessor methods
      commit-graph: lazy-load trees for commits

Drew DeVault (1):
      git-send-email: allow re-editing of message

Eckhard S. Maaß (1):
      wt-status: use settings from git_diff_ui_config

Elijah Newren (70):
      directory rename detection: basic testcases
      directory rename detection: directory splitting testcases
      directory rename detection: testcases to avoid taking detection too far
      directory rename detection: partially renamed directory testcase/discussion
      directory rename detection: files/directories in the way of some renames
      directory rename detection: testcases checking which side did the rename
      directory rename detection: more involved edge/corner testcases
      directory rename detection: testcases exploring possibly suboptimal merges
      directory rename detection: miscellaneous testcases to complete coverage
      directory rename detection: tests for handling overwriting untracked files
      directory rename detection: tests for handling overwriting dirty files
      merge-recursive: move the get_renames() function
      merge-recursive: introduce new functions to handle rename logic
      merge-recursive: fix leaks of allocated renames and diff_filepairs
      merge-recursive: make !o->detect_rename codepath more obvious
      merge-recursive: split out code for determining diff_filepairs
      merge-recursive: make a helper function for cleanup for handle_renames
      merge-recursive: add get_directory_renames()
      merge-recursive: check for directory level conflicts
      merge-recursive: add computation of collisions due to dir rename & merging
      merge-recursive: check for file level conflicts then get new name
      merge-recursive: when comparing files, don't include trees
      merge-recursive: apply necessary modifications for directory renames
      merge-recursive: avoid clobbering untracked files with directory renames
      merge-recursive: fix overwriting dirty files involved in renames
      merge-recursive: fix remaining directory rename + dirty overwrite cases
      directory rename detection: new testcases showcasing a pair of bugs
      merge-recursive: avoid spurious rename/rename conflict from dir renames
      merge-recursive: ensure we write updates for directory-renamed file
      Documentation: fix several one-character-off spelling errors
      Documentation: normalize spelling of 'normalised'
      directory rename detection: basic testcases
      directory rename detection: directory splitting testcases
      directory rename detection: testcases to avoid taking detection too far
      directory rename detection: partially renamed directory testcase/discussion
      directory rename detection: files/directories in the way of some renames
      directory rename detection: testcases checking which side did the rename
      directory rename detection: more involved edge/corner testcases
      directory rename detection: testcases exploring possibly suboptimal merges
      directory rename detection: miscellaneous testcases to complete coverage
      directory rename detection: tests for handling overwriting untracked files
      directory rename detection: tests for handling overwriting dirty files
      merge-recursive: move the get_renames() function
      merge-recursive: introduce new functions to handle rename logic
      merge-recursive: fix leaks of allocated renames and diff_filepairs
      merge-recursive: make !o->detect_rename codepath more obvious
      merge-recursive: split out code for determining diff_filepairs
      merge-recursive: make a helper function for cleanup for handle_renames
      Make running git under other debugger-like programs easy
      unpack_trees: fix breakage when o->src_index != o->dst_index
      merge-recursive: add get_directory_renames()
      merge-recursive: check for directory level conflicts
      merge-recursive: add computation of collisions due to dir rename & merging
      merge-recursive: check for file level conflicts then get new name
      merge-recursive: when comparing files, don't include trees
      merge-recursive: apply necessary modifications for directory renames
      merge-recursive: avoid clobbering untracked files with directory renames
      merge-recursive: fix overwriting dirty files involved in renames
      merge-recursive: fix remaining directory rename + dirty overwrite cases
      directory rename detection: new testcases showcasing a pair of bugs
      merge-recursive: avoid spurious rename/rename conflict from dir renames
      merge-recursive: improve add_cacheinfo error handling
      merge-recursive: move more is_dirty handling to merge_content
      merge-recursive: avoid triggering add_cacheinfo error with dirty mod
      t6046: testcases checking whether updates can be skipped in a merge
      merge-recursive: fix was_tracked() to quit lying with some renamed paths
      merge-recursive: fix remainder of was_dirty() to use original index
      merge-recursive: make "Auto-merging" comment show for other merges
      merge-recursive: fix check for skipability of working tree updates
      merge-recursive: provide pair of `unpack_trees_{start,finish}()`

Eric Sunshine (5):
      t3200: verify "branch --list" sanity when rebasing from detached HEAD
      t2028: tighten grep expression to make "move worktree" test more robust
      git-worktree.txt: recommend 'git worktree remove' over manual deletion
      git-worktree.txt: unify command-line prompt in example blocks
      configure.ac: fix botched FREAD_READS_DIRECTORIES check

Erik E Brady (1):
      credential: ignore SIGPIPE when writing to credential helpers

Florian Gamböck (1):
      completion: load completion file for external subcommand

Harald Nordgren (1):
      ls-remote: create '--sort' option

Jameson Miller (3):
      fast-import: rename mem_pool type to mp_block
      fast-import: introduce mem_pool type
      mem-pool: move reusable parts of memory pool into its own file

Jeff King (36):
      diff-highlight: correct test graph diagram
      diff-highlight: use test_tick in graph test
      diff-highlight: prefer "echo" to "cat" in tests
      diff-highlight: test interleaved parallel lines of history
      diff-highlight: test graphs with --color
      diff-highlight: use flush() helper consistently
      diff-highlight: detect --graph by indent
      set_git_dir: die when setenv() fails
      add chdir-notify API
      set_work_tree: use chdir_notify
      refs: use chdir_notify to update cached relative paths
      config: move flockfile() closer to unlocked functions
      t5561: drop curl stderr redirects
      t5561: skip tests if curl is not available
      ref-filter: use "struct object_id" consistently
      ref-filter: make ref_array_item allocation more consistent
      ref-filter: factor ref_array pushing into its own function
      t7004: fix mistaken tag name
      gpg-interface: handle bool user.signingkey
      gpg-interface: modernize function declarations
      gpg-interface: use size_t for signature buffer size
      gpg-interface: fix const-correctness of "eol" pointer
      gpg-interface: extract gpg line matching helper
      gpg-interface: find the last gpg signature line
      apply: clarify "-p" documentation
      pager: set COLUMNS to term_columns()
      mark_tree_contents_uninteresting(): drop missing object check
      mark_parents_uninteresting(): drop missing object check
      mark_parents_uninteresting(): replace list with stack
      mark_parents_uninteresting(): avoid most allocation
      get_main_ref_store: BUG() when outside a repository
      config: die when --blob is used outside a repository
      http: use strbufs instead of fixed buffers
      log_write_email_headers: use strbufs
      shorten_unambiguous_ref: use xsnprintf
      fmt_with_err: add a comment that truncation is OK

Johannes Schindelin (66):
      git_config_set: fix off-by-two
      t1300: rename it to reflect that `repo-config` was deprecated
      t1300: demonstrate that --replace-all can "invent" newlines
      config --replace-all: avoid extra line breaks
      t1300: avoid relying on a bug
      t1300: remove unreasonable expectation from TODO
      t5404: relax overzealous test
      t1300: add a few more hairy examples of sections becoming empty
      t1300: `--unset-all` can leave an empty section behind (bug)
      config: introduce an optional event stream while parsing
      config: avoid using the global variable `store`
      config_set_store: rename some fields for consistency
      git_config_set: do not use a state machine
      git_config_set: make use of the config parser's event stream
      git config --unset: remove empty sections (in the common case)
      git_config_set: reuse empty sections
      exec_cmd: provide a new-style RUNTIME_PREFIX helper for Windows
      mingw/msvc: use the new-style RUNTIME_PREFIX helper
      color: introduce support for colorizing stderr
      push: test to verify that push errors are colored
      config: document the settings to colorize push errors/hints
      gettext: avoid initialization if the locale dir is not present
      git_setup_gettext: plug memory leak
      sequencer: avoid using errno clobbered by rollback_lock_file()
      sequencer: make rearrange_squash() a bit more obvious
      sequencer: refactor how original todo list lines are accessed
      sequencer: offer helpful advice when a command was rescheduled
      sequencer: introduce new commands to reset the revision
      sequencer: introduce the `merge` command
      sequencer: fast-forward `merge` commands, if possible
      rebase-helper --make-script: introduce a flag to rebase merges
      rebase: introduce the --rebase-merges option
      sequencer: make refs generated by the `label` command worktree-local
      sequencer: handle post-rewrite for merge commands
      rebase --rebase-merges: avoid "empty merges"
      pull: accept --rebase=merges to recreate the branch topology
      rebase -i: introduce --rebase-merges=[no-]rebase-cousins
      rebase -i --rebase-merges: add a section to the man page
      argv_array: offer to split a string by whitespace
      commit: Let the callback of for_each_mergetag return on error
      replace: avoid using die() to indicate a bug
      tests: introduce test_unset_prereq, for debugging
      replace: "libify" create_graft() and callees
      replace: prepare create_graft() for converting graft files wholesale
      replace: introduce --convert-graft-file
      Add a test for `git replace --convert-graft-file`
      Deprecate support for .git/info/grafts
      filter-branch: stop suggesting to use grafts
      technical/shallow: stop referring to grafts
      technical/shallow: describe why shallow cannot use replace refs
      Remove obsolete script to convert grafts to replace refs
      rebase -i: demonstrate bugs with fixup!/squash! commit messages
      rebase -i: Handle "combination of <n> commits" with GETTEXT_POISON
      sequencer: always commit without editing when asked for
      rebase --skip: clean up commit message after a failed fixup/squash
      sequencer: extract helper to update active_cache_tree
      sequencer: learn about the special "fake root commit" handling
      rebase -i --root: let the sequencer handle even the initial part
      sequencer: allow introducing new root commits
      rebase --rebase-merges: a "merge" into a new root is a fast-forward
      rebase --rebase-merges: root commits can be cousins, too
      test-tool: help verifying BUG() code paths
      run-command: use BUG() to report bugs, not die()
      Replace all die("BUG: ...") calls by BUG() ones
      Convert remaining die*(BUG) messages
      config: a user-provided invalid section is not a BUG

Johannes Sixt (2):
      sequencer: reset the committer date before commits
      git: add -P as a short option for --no-pager

Jonathan Nieder (5):
      sha1_file: allow map_sha1_file_1 to handle arbitrary repositories
      sha1_file: allow sha1_loose_object_info to handle arbitrary repositories
      Makefile: remove unused @@PERLLIBDIR@@ substitution variable
      Makefile: quote $INSTLIBDIR when passing it to sed
      packfile: add repository argument to packed_object_info

Jonathan Tan (4):
      grep: remove "repo" arg from non-supporting funcs
      upload-pack: fix error message typo
      upload-pack: read config when serving protocol v2
      {fetch,upload}-pack: support filter in protocol v2

Junio C Hamano (13):
      stash: fix nonsense pipeline
      The first batch for 2.18 cycle
      The second batch for 2.18
      The third batch for 2.18
      Revert "Merge branch 'en/rename-directory-detection'"
      gc: do not upcase error message shown with die()
      parseopt: handle malformed --expire arguments more nicely
      The fourth batch for 2.18
      The fifth batch for 2.18
      argv-array: return the pushed string from argv_push*()
      The sixth batch for 2.18
      The seventh batch for 2.18
      Git 2.18-rc0

Kaartic Sivaraam (1):
      branch --list: print useful info whilst interactive rebasing a detached HEAD

Lars Schneider (10):
      strbuf: remove unnecessary NUL assignment in xstrdup_tolower()
      strbuf: add xstrdup_toupper()
      strbuf: add a case insensitive starts_with()
      utf8: teach same_encoding() alternative UTF encoding names
      utf8: add function to detect prohibited UTF-16/32 BOM
      utf8: add function to detect a missing UTF-16/32 BOM
      convert: add 'working-tree-encoding' attribute
      convert: check for detectable errors in UTF encodings
      convert: add tracing for 'working-tree-encoding' attribute
      convert: add round trip check based on 'core.checkRoundtripEncoding'

Leif Middelschulte (1):
      merge-recursive: give notice when submodule commit gets fast-forwarded

Loganaden Velvindron (1):
      http: allow use of TLS 1.3

Lucas Werkmeister (1):
      daemon.c: fix condition for redirecting stderr

Luis Marsano (2):
      git-credential-netrc: adapt to test framework for git
      git-credential-netrc: accept gpg option

Martin Ågren (24):
      git-shortlog.txt: reorder usages
      shortlog: add usage-string for stdin-reading
      shortlog: disallow left-over arguments outside repo
      doc: convert \--option to --option
      doc: convert [\--] to [--]
      git-[short]log.txt: unify quoted standalone --
      git-submodule.txt: quote usage in monospace, drop backslash
      fast-export: fix regression skipping some merge-commits
      http-fetch: make `-a` standard behaviour
      walker: drop fields of `struct walker` which are always 1
      t/helper/test-write-cache: clean up lock-handling
      refs.c: do not die if locking fails in `write_pseudoref()`
      refs.c: do not die if locking fails in `delete_pseudoref()`
      lock_file: make function-local locks non-static
      lock_file: move static locks into functions
      refs.c: refer to "object ID", not "sha1", in error messages
      t1400: add tests around adding/deleting pseudorefs
      refs: handle zero oid for pseudorefs
      merge: setup `opts` later in `checkout_fast_forward()`
      config: free resources of `struct config_store_data`
      config: let `config_store_data_clear()` handle `value_regex`
      config: let `config_store_data_clear()` handle `key`
      regex: do not call `regfree()` if compilation fails
      unpack_trees_options: free messages when done

Michal Nazarewicz (1):
      send-email: simplify Gmail example in the documentation

Michele Locati (1):
      filter-branch: return 2 when nothing to rewrite

Nguyễn Thái Ngọc Duy (88):
      repository: initialize the_repository in main()
      repository.c: move env-related setup code back to environment.c
      repository.c: delete dead functions
      sha1_file.c: move delayed getenv(altdb) back to setup_git_env()
      repository: delete ignore_env member
      gc.txt: more details about what gc does
      worktree: delete dead code
      worktree prune: improve prune logic when worktree is moved
      repository.h: add comment and clarify repo_set_gitdir
      git.c: move cmd_struct declaration up
      git.c: add hidden option --list-parseopt-builtins
      completion: mention the oldest version we need to support
      completion: factor out _git_xxx calling code
      completion: add --option completion for most builtin commands
      completion: delete option-only completion commands
      completion: use __gitcomp_builtin in _git_ls_tree
      completion: use __gitcomp_builtin in _git_cherry
      packfile: keep prepare_packed_git() private
      t/helper: add an empty test-tool program
      t/helper: merge test-chmtime into test-tool
      t/helper: merge test-sha1 into test-tool
      t/helper: merge test-lazy-init-name-hash into test-tool
      t/helper: merge test-config into test-tool
      t/helper: merge test-ctype into test-tool
      t/helper: merge test-date into test-tool
      t/helper: merge (unused) test-delta into test-tool
      t/helper: merge test-drop-caches into test-tool
      t/helper: merge test-dump-cache-tree into test-tool
      t/helper: merge test-dump-split-index into test-tool
      t/helper: merge test-example-decorate into test-tool
      t/helper: merge test-genrandom into test-tool
      t/helper: merge test-hashmap into test-tool
      t/helper: merge test-index-version into test-tool
      t/helper: merge (unused) test-match-trees into test-tool
      t/helper: merge (unused) test-mergesort into test-tool
      t/helper: merge test-mktemp into test-tool
      t/helper: merge test-online-cpus into test-tool
      t/helper: merge test-path-utils into test-tool
      t/helper: merge test-prio-queue into test-tool
      t/helper: merge test-read-cache into test-tool
      t/helper: merge test-ref-store into test-tool
      t/helper: merge test-regex into test-tool
      t/helper: merge test-revision-walking into test-tool
      t/helper: merge test-run-command into test-tool
      t/helper: merge test-scrap-cache-tree into test-tool
      t/helper: merge test-sha1-array into test-tool
      t/helper: merge test-sigchain into test-tool
      t/helper: merge test-strcmp-offset into test-tool
      t/helper: merge test-string-list into test-tool
      t/helper: merge test-submodule-config into test-tool
      t/helper: merge test-subprocess into test-tool
      t/helper: merge test-urlmatch-normalization into test-tool
      t/helper: merge test-wildmatch into test-tool
      t/helper: merge test-write-cache into test-tool
      trace.c: export trace_setup_key
      read-cache.c: make $GIT_TEST_SPLIT_INDEX boolean
      pack-objects: a bit of document about struct object_entry
      pack-objects: turn type and in_pack_type to bitfields
      pack-objects: use bitfield for object_entry::dfs_state
      pack-objects: use bitfield for object_entry::depth
      pack-objects: move in_pack_pos out of struct object_entry
      pack-objects: move in_pack out of struct object_entry
      pack-objects: refer to delta objects by index instead of pointer
      pack-objects: shrink z_delta_size field in struct object_entry
      pack-objects: don't check size when the object is bad
      pack-objects: clarify the use of object_entry::size
      pack-objects: shrink size field in struct object_entry
      pack-objects: shrink delta_size field in struct object_entry
      pack-objects: reorder members to shrink struct object_entry
      ci: exercise the whole test suite with uncommon code in pack-objects
      t7700: have closing quote of a test at the beginning of line
      repack: add --keep-pack option
      gc: add --keep-largest-pack option
      gc: add gc.bigPackThreshold config
      gc: handle a corner case in gc.bigPackThreshold
      gc --auto: exclude base pack if not enough mem to "repack -ad"
      pack-objects: show some progress when counting kept objects
      connect.c: mark die_initial_contact() NORETURN
      Makefile: detect compiler and enable more warnings in DEVELOPER=1
      submodule--helper: don't print null in 'submodule status'
      doc: keep first level section header in upper case
      pack-objects: validation and documentation about unreachable options
      completion: fix misspelled config key aliasesfiletype
      repository: fix free problem with repo_clear(the_repository)
      pack-format.txt: more details on pack file format
      column: fix off-by-one default width
      commit.h: rearrange 'index' to shrink struct commit
      travis-ci: run gcc-8 on linux-gcc jobs

Olga Telezhnaya (6):
      ref-filter: add shortcut to work with strbufs
      ref-filter: start adding strbufs with errors
      ref-filter: add return value && strbuf to handlers
      ref-filter: change parsing function error handling
      ref-filter: add return value to parsers
      ref-filter: libify get_ref_atom_value()

Paul-Sebastian Ungureanu (2):
      parse-options: do not show usage upon invalid option value
      t/helper: 'test-chmtime (--get|-g)' to print only the mtime

Philip Oakley (1):
      Avoid multiple PREFIX definitions

Phillip Wood (7):
      rebase --root: stop assuming squash_onto is unset
      rebase -i --keep-empty: don't prune empty commits
      rebase: respect --no-keep-empty
      rebase: extend --signoff support
      rebase -p: error out if --signoff is given
      rebase --keep-empty: always use interactive rebase
      rebase --rebase-merges: add test for --keep-empty

Pratik Karki (1):
      test: avoid pipes in git related commands for test

Ramsay Jones (1):
      BUG_exit_code: fix sparse "symbol not declared" warning

René Scharfe (8):
      sha1_name: use bsearch_pack() in unique_in_pack()
      bisect: use oid_to_hex() for converting object_id hashes to hex strings
      run-command: use strbuf_addstr() for adding a string to a strbuf
      submodule: check for NULL return of get_submodule_ref_store()
      replace_object: use oidmap
      fast-export: avoid NULL pointer arithmetic
      t5512: run git fetch inside test
      fsmonitor: use internal argv_array of struct child_process

Ryan Dammrose (1):
      push: colorize errors

SZEDER Gábor (22):
      test_must_be_empty: simplify file existence check
      t9902-completion: add tests demonstrating issues with quoted pathnames
      completion: move __git_complete_index_file() next to its helpers
      completion: simplify prefix path component handling during path completion
      completion: support completing non-ASCII pathnames
      completion: improve handling quoted paths on the command line
      completion: let 'ls-files' and 'diff-index' filter matching paths
      completion: use 'awk' to strip trailing path components
      t9902-completion: ignore COMPREPLY element order in some tests
      completion: remove repeated dirnames with 'awk' during path completion
      completion: improve handling quoted paths in 'git ls-files's output
      completion: fill COMPREPLY directly when completing paths
      completion: reduce overhead of clearing cached --options
      docs/git-gc: fix minor rendering issue
      coccinelle: avoid wrong transformation suggestions from commit.cocci
      t6050-replace: don't disable stdin for the whole test script
      t5310-pack-bitmaps: make JGit tests work with GIT_TEST_SPLIT_INDEX
      t5516-fetch-push: fix 'push with dry-run' test
      t5516-fetch-push: fix broken &&-chain
      t7005-editor: get rid of the SPACES_IN_FILENAMES prereq
      completion: don't return with error from __gitcomp_file_direct()
      t9902-completion: exercise __git_complete_index_file() directly

Sergey Organov (1):
      glossary: substitute "ancestor" for "direct ancestor" in 'push' description.

Stefan Agner (1):
      send-email: avoid duplicate In-Reply-To/References

Stefan Beller (81):
      repository: introduce raw object store field
      object-store: migrate alternates struct and functions from cache.h
      object-store: move alt_odb_list and alt_odb_tail to object store
      object-store: free alt_odb_list
      object-store: move packed_git and packed_git_mru to object store
      object-store: close all packs upon clearing the object store
      pack: move prepare_packed_git_run_once to object store
      pack: move approximate object count to object store
      sha1_file: add raw_object_store argument to alt_odb_usable
      sha1_file: add repository argument to link_alt_odb_entry
      sha1_file: add repository argument to read_info_alternates
      sha1_file: add repository argument to link_alt_odb_entries
      sha1_file: add repository argument to prepare_alt_odb
      sha1_file: allow link_alt_odb_entries to handle arbitrary repositories
      sha1_file: allow prepare_alt_odb to handle arbitrary repositories
      sha1_file: add repository argument to sha1_file_name
      sha1_file: add repository argument to stat_sha1_file
      sha1_file: add repository argument to open_sha1_file
      sha1_file: add repository argument to map_sha1_file_1
      sha1_file: add repository argument to map_sha1_file
      sha1_file: add repository argument to sha1_loose_object_info
      sha1_file: allow sha1_file_name to handle arbitrary repositories
      sha1_file: allow stat_sha1_file to handle arbitrary repositories
      sha1_file: allow open_sha1_file to handle arbitrary repositories
      sha1_file: allow map_sha1_file to handle arbitrary repositories
      packfile: allow prepare_packed_git_mru to handle arbitrary repositories
      packfile: allow rearrange_packed_git to handle arbitrary repositories
      packfile: allow install_packed_git to handle arbitrary repositories
      packfile: add repository argument to prepare_packed_git_one
      packfile: add repository argument to prepare_packed_git
      packfile: add repository argument to reprepare_packed_git
      packfile: allow prepare_packed_git_one to handle arbitrary repositories
      packfile: allow prepare_packed_git to handle arbitrary repositories
      packfile: allow reprepare_packed_git to handle arbitrary repositories
      packfile: add repository argument to find_pack_entry
      packfile: allow find_pack_entry to handle arbitrary repositories
      submodule.h: drop declaration of connect_work_tree_and_git_dir
      submodule-config: allow submodule_free to handle arbitrary repositories
      submodule-config: add repository argument to submodule_from_{name, path}
      submodule-config: remove submodule_from_cache
      submodule: fixup nested submodules after moving the submodule
      write_or_die.c: rename to use dashes in file name
      unicode_width.h: rename to use dash in file name
      exec_cmd: rename to use dash in file name
      sha1_name.c: rename to use dash in file name
      sha1_file.c: rename to use dash in file name
      replace_object.c: rename to use dash in file name
      replace-object: move replace_map to object store
      object-store: move lookup_replace_object to replace-object.h
      replace-object: eliminate replace objects prepared flag
      replace-object: check_replace_refs is safe in multi repo environment
      refs: add repository argument to get_main_ref_store
      refs: add repository argument to for_each_replace_ref
      replace-object: add repository argument to prepare_replace_object
      replace-object: add repository argument to do_lookup_replace_object
      replace-object: add repository argument to lookup_replace_object
      refs: store the main ref store inside the repository struct
      refs: allow for_each_replace_ref to handle arbitrary repositories
      replace-object: allow prepare_replace_object to handle arbitrary repositories
      replace-object: allow do_lookup_replace_object to handle arbitrary repositories
      replace-object: allow lookup_replace_object to handle arbitrary repositories
      worktree: accept -f as short for --force for removal
      builtin/blame: dim uninteresting metadata lines
      builtin/blame: highlight recently changed lines
      builtin/blame: add new coloring scheme config
      cache.h: add repository argument to oid_object_info_extended
      cache.h: add repository argument to oid_object_info
      packfile: add repository argument to retry_bad_packed_offset
      packfile: add repository argument to packed_to_object_type
      packfile: add repository argument to read_object
      packfile: add repository argument to unpack_entry
      packfile: add repository argument to cache_or_unpack_entry
      cache.h: allow oid_object_info to handle arbitrary repositories
      git-rebase--interactive: clarify arguments
      object.c: free replace map in raw_object_store_clear
      replace-object.c: remove the_repository from prepare_replace_object
      grep: handle corrupt index files early
      git-submodule.sh: try harder to fetch a submodule
      submodule.c: move submodule merging to merge-recursive.c
      merge-recursive: i18n submodule merge output and respect verbosity
      object.c: clear replace map before freeing it

Takuto Ikuta (1):
      fetch-pack.c: use oidset to check existence of loose object

Tao Qingyun (1):
      t1510-repo-setup.sh: remove useless mkdir

Taylor Blau (5):
      builtin/config.c: treat type specifiers singularly
      builtin/config.c: support `--type=<type>` as preferred alias for `--<type>`
      builtin/config: introduce `--default`
      config.c: introduce 'git_config_color' to parse ANSI colors
      builtin/config: introduce `color` type specifier

Thomas Gummerer (10):
      stash push: avoid printing errors
      stash push -u: don't create empty stash
      stash: drop superfluos pathspec parameter
      SubmittingPatches: mention the git contacts command
      completion: stop showing 'save' for stash by default
      completion: make stash -p and alias for stash push -p
      worktree: remove extra members from struct add_opts
      worktree: improve message when creating a new worktree
      worktree: factor out dwim_branch function
      worktree: teach "add" to check out existing branches

Todd Zullinger (1):
      doc/clone: update caption for GIT URLS cross-reference

Torsten Bögershausen (1):
      test: correct detection of UTF8_NFD_TO_NFC for APFS

Wink Saville (8):
      rebase-interactive: simplify pick_on_preserving_merges
      rebase: update invocation of rebase dot-sourced scripts
      rebase: reindent function git_rebase__interactive
      rebase: extract functions out of git_rebase__interactive
      rebase: add and use git_rebase__interactive__preserve_merges
      rebase: remove unused code paths from git_rebase__interactive
      rebase: remove unused code paths from git_rebase__interactive__preserve_merges
      rebase: remove merges_option and a blank line

Yuki Kokubun (1):
      filter-branch: fix errors caused by refs that point at non-committish

brian m. carlson (121):
      bulk-checkin: convert index_bulk_checkin to struct object_id
      builtin/write-tree: convert to struct object_id
      cache-tree: convert write_*_as_tree to object_id
      cache-tree: convert remnants to struct object_id
      resolve-undo: convert struct resolve_undo_info to object_id
      tree: convert read_tree_recursive to struct object_id
      ref-filter: convert grab_objectname to struct object_id
      strbuf: convert strbuf_add_unique_abbrev to use struct object_id
      wt-status: convert struct wt_status_state to object_id
      Convert find_unique_abbrev* to struct object_id
      http-walker: convert struct object_request to use struct object_id
      send-pack: convert remaining functions to struct object_id
      replace_object: convert struct replace_object to object_id
      builtin/mktag: convert to struct object_id
      archive: convert write_archive_entry_fn_t to object_id
      archive: convert sha1_file_to_archive to struct object_id
      builtin/index-pack: convert struct ref_delta_entry to object_id
      sha1_file: convert read_loose_object to use struct object_id
      sha1_file: convert check_sha1_signature to struct object_id
      streaming: convert open_istream to use struct object_id
      builtin/mktree: convert to struct object_id
      sha1_file: convert assert_sha1_type to object_id
      sha1_file: convert retry_bad_packed_offset to struct object_id
      packfile: convert unpack_entry to struct object_id
      Convert remaining callers of sha1_object_info_extended to object_id
      sha1_file: convert sha1_object_info* to object_id
      builtin/fmt-merge-msg: convert remaining code to object_id
      builtin/notes: convert static functions to object_id
      tree-walk: convert get_tree_entry_follow_symlinks internals to object_id
      streaming: convert istream internals to struct object_id
      tree-walk: convert tree entry functions to object_id
      sha1_file: convert read_object_with_reference to object_id
      sha1_file: convert read_sha1_file to struct object_id
      Convert lookup_replace_object to struct object_id
      sha1_file: introduce a constant for max header length
      convert: convert to struct object_id
      sha1_name: convert struct min_abbrev_data to object_id
      t1011: abstract away SHA-1-specific constants
      t1304: abstract away SHA-1-specific constants
      t1300: abstract away SHA-1-specific constants
      t1405: sort reflog entries in a hash-independent way
      t1411: abstract away SHA-1-specific constants
      t1507: abstract away SHA-1-specific constants
      t2020: abstract away SHA-1 specific constants
      t2101: modernize test style
      t2101: abstract away SHA-1-specific constants
      t2107: abstract away SHA-1-specific constants
      format-patch: make cover letters always text/plain
      cache: add a function to read an object ID from a buffer
      server-info: remove unused members from struct pack_info
      Remove unused member in struct object_context
      packfile: remove unused member from struct pack_entry
      packfile: convert has_sha1_pack to object_id
      sha1-file: convert freshen functions to object_id
      packfile: convert find_pack_entry to object_id
      packfile: abstract away hash constant values
      pack-objects: abstract away hash algorithm
      pack-redundant: abstract away hash algorithm
      tree-walk: avoid hard-coded 20 constant
      tree-walk: convert get_tree_entry_follow_symlinks to object_id
      fsck: convert static functions to struct object_id
      submodule-config: convert structures to object_id
      split-index: convert struct split_index to object_id
      Update struct index_state to use struct object_id
      pack-redundant: convert linked lists to use struct object_id
      index-pack: abstract away hash function constant
      commit: convert uses of get_sha1_hex to get_oid_hex
      dir: convert struct untracked_cache_dir to object_id
      http: eliminate hard-coded constants
      revision: replace use of hard-coded constants
      upload-pack: replace use of several hard-coded constants
      diff: specify abbreviation size in terms of the_hash_algo
      builtin/receive-pack: avoid hard-coded constants for push certs
      sha1-file: add functions for hex empty tree and blob OIDs
      builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algo
      builtin/merge: switch tree functions to use object_id
      merge: convert empty tree constant to the_hash_algo
      sequencer: convert one use of EMPTY_TREE_SHA1_HEX
      submodule: convert several uses of EMPTY_TREE_SHA1_HEX
      wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
      builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEX
      builtin/reset: convert use of EMPTY_TREE_SHA1_BIN
      sha1_file: convert cached object code to struct object_id
      cache-tree: use is_empty_tree_oid
      sequencer: use the_hash_algo for empty tree object ID
      dir: use the_hash_algo for empty blob object ID
      sha1_file: only expose empty object constants through git_hash_algo
      Update shell scripts to compute empty tree object ID
      add--interactive: compute the empty tree value
      merge-one-file: compute empty blob object ID
      Documentation: use 8-space tabs with Asciidoctor
      Documentation: render revisions correctly under Asciidoctor
      mailmap: update brian m. carlson's email address
      t/test-lib: add an SHA1 prerequisite
      t/test-lib: introduce ZERO_OID
      t: switch $_z40 to $ZERO_OID
      t/test-lib: introduce OID_REGEX
      t: switch $_x40 to $OID_REGEX
      t0000: annotate with SHA1 prerequisite
      t1007: annotate with SHA1 prerequisite
      t1512: skip test if not using SHA-1
      t4044: skip test if not using SHA-1
      t: skip pack tests if not using SHA-1
      t2203: abstract away SHA-1-specific constants
      t3103: abstract away SHA-1-specific constants
      t3702: abstract away SHA-1-specific constants
      t3905: abstract away SHA-1-specific constants
      t4007: abstract away SHA-1-specific constants
      t4008: abstract away SHA-1-specific constants
      t4014: abstract away SHA-1-specific constants
      t4020: abstract away SHA-1-specific constants
      t4022: abstract away SHA-1-specific constants
      t4029: fix test indentation
      t4029: abstract away SHA-1-specific constants
      t4030: abstract away SHA-1-specific constants
      t/lib-diff-alternative: abstract away SHA-1-specific constants
      t4205: sort log output in a hash-independent way
      t4042: abstract away SHA-1-specific constants
      t4045: abstract away SHA-1-specific constants
      t4208: abstract away SHA-1-specific constants
      t5300: abstract away SHA-1-specific constants

Ævar Arnfjörð Bjarmason (21):
      configure: fix a regression in PCRE v1 detection
      configure: detect redundant --with-libpcre & --with-libpcre1
      Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1
      Makefile: fix broken bindir_relative variable
      Makefile: add a gitexecdir_relative variable
      Makefile: optionally symlink libexec/git-core binaries to bin/git
      Remove contrib/examples/*
      doc hash-function-transition: clarify how older gits die on NewHash
      doc hash-function-transition: clarify what SHAttered means
      git-svn: avoid warning on undef readline()
      Makefile: add a DEVOPTS to suppress -Werror under DEVELOPER
      Makefile: add a DEVOPTS to get all of -Wextra
      git{,-blame}.el: remove old bitrotting Emacs code
      .gitattributes: add *.pl extension for Perl
      .gitattributes: use the "perl" differ for Perl
      .gitattributes: add a diff driver for Python
      sha1-name.c: remove stray newline
      sha1-array.h: align function arguments
      git-p4: change "commitish" typo to "committish"
      sha1-name.c: move around the collect_ambiguous() function
      get_short_oid: sort ambiguous objects by type, then SHA-1


Version v2.17.6; changes since v2.17.5:
---------------------------------------

Johannes Schindelin (2):
      run-command: invalidate lstat cache after a command finished
      Git 2.17.6

Matheus Tavares (2):
      checkout: fix bug that makes checkout follow symlinks in leading path
      unpack_trees(): start with a fresh lstat cache


Version v2.17.5; changes since v2.17.4:
---------------------------------------

Jeff King (6):
      t0300: make "quit" helper more realistic
      t0300: use more realistic inputs
      credential: parse URL without host as empty host, not unset
      credential: refuse to operate when missing host or protocol
      credential: die() when parsing invalid urls
      Git 2.17.5

Jonathan Nieder (4):
      fsck: convert gitmodules url to URL passed to curl
      credential: treat URL without scheme as invalid
      credential: treat URL with empty scheme as invalid
      fsck: reject URL with empty host in .gitmodules


Version v2.17.4; changes since v2.17.3:
---------------------------------------

Jeff King (4):
      credential: avoid writing values with newlines
      t/lib-credential: use test_i18ncmp to check stderr
      credential: detect unrepresentable values when parsing urls
      fsck: detect gitmodules URLs with embedded newlines

Junio C Hamano (1):
      Git 2.17.4


Version v2.17.3; changes since v2.17.2:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (23):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6
      Git 2.17.3

Jonathan Nieder (2):
      submodule: reject submodule.update = !command in .gitmodules
      fsck: reject submodule.update = !command in .gitmodules


Version v2.17.2; changes since v2.17.1:
---------------------------------------

Jeff King (5):
      submodule--helper: use "--" to signal end of clone options
      submodule-config: ban submodule urls that start with dash
      submodule-config: ban submodule paths that start with a dash
      fsck: detect submodule urls starting with dash
      fsck: detect submodule paths starting with dash

Junio C Hamano (4):
      Git 2.14.5
      Git 2.15.3
      Git 2.16.5
      Git 2.17.2


Version v2.17.1; changes since v2.17.0:
---------------------------------------

Jeff King (18):
      submodule-config: verify submodule names as paths
      is_ntfs_dotgit: use a size_t for traversing string
      is_hfs_dotgit: match other .git files
      skip_prefix: add case-insensitive variant
      verify_path: drop clever fallthrough
      verify_dotfile: mention case-insensitivity in comment
      update-index: stat updated files earlier
      verify_path: disallow symlinks in .gitmodules
      index-pack: make fsck error message more specific
      fsck: simplify ".git" check
      fsck: actually fsck blob data
      fsck: detect gitmodules files
      fsck: handle promisor objects in .gitmodules check
      fsck: check .gitmodules content
      fsck: call fsck_finish() after fscking objects
      unpack-objects: call fsck_finish() after fscking objects
      index-pack: check .gitmodules files with --strict
      fsck: complain when .gitmodules is a symlink

Johannes Schindelin (2):
      is_ntfs_dotgit: match other .git files
      is_{hfs,ntfs}_dotgitmodules: add tests

Junio C Hamano (5):
      Git 2.13.7
      Git 2.14.4
      Git 2.15.2
      Git 2.16.4
      Git 2.17.1


Version v2.17.0; changes since v2.17.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (3376t)

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Christopher Díaz Riveros (2):
      l10n: es.po: fixes to Spanish translation
      l10n: es.po: Update Spanish translation 2.17.0

Jean-Noël Avila (2):
      l10n: fr.po v2.17.0 round 1
      l10n: fr.po: v2.17.0 no fuzzy

Jiang Xin (2):
      l10n: git.pot: v2.17.0 round 1 (132 new, 44 removed)
      l10n: zh_CN: for git v2.17.0 l10n round 1

Jonathan Nieder (1):
      upload-pack: disable object filtering when disabled by config

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.17

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (3376t0f0u)

Ralf Thielow (1):
      l10n: de.po: translate 132 new messages

Ray Chen (1):
      l10n: zh_CN: review for git v2.17.0 l10n round 1

René Scharfe (1):
      unpack-trees: release oid_array after use in check_updates()

Trần Ngọc Quân (1):
      l10n: vi.po(3376t): Updated Vietnamese translation for v2.17

Ævar Arnfjörð Bjarmason (1):
      add -p: fix 2.17.0-rc* regression due to moved code


Version v2.17.0-rc2; changes since v2.17.0-rc1:
-----------------------------------------------

Junio C Hamano (3):
      Git 2.16.3
      t9902: disable test on the list of merge-strategies under GETTEXT_POISON
      Git 2.17-rc2

SZEDER Gábor (1):
      completion: clear cached --options when sourcing the completion script

Stefan Beller (1):
      submodule deinit: handle non existing pathspecs gracefully

Thomas Gummerer (1):
      git-stash.txt: remove extra square bracket


Version v2.17.0-rc1; changes since v2.17.0-rc0:
-----------------------------------------------

Ben Peart (1):
      Fix bugs preventing adding updated cache entries to the name hash

David Pursehouse (1):
      Documentation/merge-strategies: typofix

Jeff King (1):
      doc/gitattributes: mention non-recursive behavior

Johannes Schindelin (1):
      mingw: abort on invalid strftime formats

Jonathan Tan (3):
      sha1_file: restore OBJECT_INFO_QUICK functionality
      index-pack: support checking objects but not links
      fetch-pack: do not check links for partial fetch

Junio C Hamano (1):
      Git 2.17-rc1

Kaartic Sivaraam (1):
      t/t3200: fix a typo in a test description

Martin Ågren (4):
      t7006: add tests for how git config paginates
      config: respect `pager.config` in list/get-mode only
      config: change default of `pager.config` to "on"
      write_locked_index(): add flag to avoid writing unchanged index

Michele Locati (1):
      filter-branch: use printf instead of echo -e

Ramsay Jones (3):
      http: fix an unused variable warning for 'curl_no_proxy'
      -Wuninitialized: remove some 'init-self' workarounds
      read-cache: fix an -Wmaybe-uninitialized warning

Todd Zullinger (2):
      RelNotes: add details on Perl module changes
      completion: complete tags with git tag --delete/--verify


Version v2.17.0-rc0; changes since v2.16.6:
-------------------------------------------

Adam Borowski (1):
      hooks/pre-auto-gc-battery: allow gc to run on non-laptops

Alban Gruin (1):
      userdiff: add built-in pattern for golang

Alex Bennée (1):
      send-email: add test for Linux's get_maintainer.pl

Alexander Shopov (1):
      Mark messages for translations

Ben Peart (2):
      dir.c: don't flag the index as dirty for changes to the untracked cache
      name-hash: properly fold directory names in adjust_dirname_case()

Bernhard M. Wiedemann (1):
      perl: call timegm and timelocal with 4-digit year

Brandon Williams (38):
      object_info: change member name from 'typename' to 'type_name'
      object: rename function 'typename' to 'type_name'
      blame: rename 'this' variables
      pack-objects: rename 'this' variables
      rev-parse: rename 'this' variable
      submodule: indicate that 'submodule.recurse' doesn't apply to clone
      diff: rename 'this' variables
      apply: rename 'try' variables
      apply: rename 'new' variables
      checkout: rename 'new' variables
      help: rename 'new' variables
      pack-redundant: rename 'new' variables
      reflog: rename 'new' variables
      remote: rename 'new' variables
      combine-diff: rename 'new' variables
      commit: rename 'new' variables
      diff-lib: rename 'new' variable
      diff: rename 'new' variables
      diffcore-delta: rename 'new' variables
      entry: rename 'new' variables
      http: rename 'new' variables
      imap-send: rename 'new' variables
      line-log: rename 'new' variables
      read-cache: rename 'new' variables
      ref-filter: rename 'new' variables
      remote: rename 'new' variables
      split-index: rename 'new' variables
      submodule: rename 'new' variables
      trailer: rename 'new' variables
      unpack-trees: rename 'new' variables
      init-db: rename 'template' variables
      environment: rename 'template' variables
      diff: rename 'template' variables
      environment: rename 'namespace' variables
      wrapper: rename 'template' variables
      tempfile: rename 'template' variables
      trailer: rename 'template' variables
      replace: rename 'new' variables

Christian Couder (12):
      perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION}
      perf/aggregate: refactor printing results
      perf/aggregate: implement codespeed JSON output
      perf/run: add conf_opts argument to get_var_from_env_or_config()
      perf/run: learn about perf.codespeedOutput
      perf/run: learn to send output to codespeed server
      perf/run: read GIT_PERF_REPO_NAME from perf.repoName
      sha1_file: remove static strbuf from sha1_file_name()
      sha1_file: improve sha1_file_name() perfs
      perf/aggregate: add --subsection option
      perf/aggregate: add --reponame option
      perf/aggregate: sort JSON fields in output

Christian Ludwig (2):
      send-email: rename variable for clarity
      send-email: support separate Reply-To address

Derrick Stolee (3):
      packfile: use get_be64() for large offsets
      sha1_name: fix uninitialized memory errors
      revision.c: reduce object database queries

Elijah Newren (3):
      Tighten and correct a few testcases for merging and cherry-picking
      merge-recursive: fix logic ordering issue
      merge-recursive: add explanation for src_entry and dst_entry

Eric Sunshine (2):
      worktree: add: fix 'post-checkout' not knowing new worktree location
      t2028: fix minor error and issues in newly-added "worktree move" tests

Gargi Sharma (1):
      mru: Replace mru.[ch] with list.h implementation

Genki Sky (1):
      rebase: add --allow-empty-message option

Gregory Herrero (1):
      rebase -p: fix incorrect commit message when calling `git merge`.

Jeff Hostetler (12):
      upload-pack: add object filtering for partial clone
      fetch-pack, index-pack, transport: partial clone
      fetch-pack: add --no-filter
      fetch: support filters
      partial-clone: define partial clone settings in config
      t5616: end-to-end tests for partial clone
      fetch: inherit filter-spec from partial clone
      t5616: test bulk prefetch after partial fetch
      stat_tracking_info: return +1 when branches not equal
      status: add --[no-]ahead-behind to status and commit for V2 format.
      status: update short status to respect --no-ahead-behind
      status: support --no-ahead-behind in long format

Jeff King (20):
      sq_quote_argv: drop maxlen parameter
      trace: avoid unnecessary quoting
      correct error messages for NULL packet_read_line()
      CodingGuidelines: mention "static" and "extern"
      t0002: simplify error checking
      describe: confirm that blobs actually exist
      test-hashmap: use ALLOC_ARRAY rather than bare malloc
      test-hashmap: check allocation computation for overflow
      test-hashmap: use xsnprintf rather than snprintf
      test-hashmap: use strbuf_getline rather than fgets
      test-hashmap: simplify alloc_test_entry
      test-hashmap: use "unsigned int" for hash storage
      sq_dequote: fix extra consumption of source string
      t5545: factor out http repository setup
      remote-curl: unquote incoming push-options
      t: send verbose test-helper output to fd 4
      strbuf_read_file(): preserve errno across close() call
      smart-http: document flush after "# service" line
      t3701: add a test for interactive.diffFilter
      add--interactive: detect bogus diffFilter output

Johannes Schindelin (2):
      sequencer: assign only free()able strings to gpg_sign
      apply: demonstrate a problem applying svn diffs

Jon Simons (1):
      always check for NULL return from packet_read_line()

Jonathan Nieder (1):
      perl: treat PERLLIB_EXTRA as an extra path again

Jonathan Tan (18):
      extension.partialclone: introduce partial clone extension
      fsck: introduce partialclone extension
      fsck: support refs pointing to promisor objects
      fsck: support referenced promisor objects
      fsck: support promisor objects as CLI argument
      index-pack: refactor writing of .keep files
      introduce fetch-object: fetch one promisor object
      sha1_file: support lazily fetching missing objects
      rev-list: support termination at promisor objects
      gc: do not repack promisor packfiles
      fetch-pack: test support excluding large blobs
      fetch: refactor calculation of remote list
      clone: partial clone
      unpack-trees: batch fetching of missing blobs
      fetch-pack: restore save_commit_buffer after use
      Docs: split out long-running subprocess handshake
      packfile: remove GIT_DEBUG_LOOKUP log statements
      packfile: refactor hash search with fanout table

Junio C Hamano (14):
      Start 2.17 cycle
      First batch after 2.16
      blame: tighten command line parser
      Second batch for 2.17
      Third batch for 2.17
      merge: allow fast-forward when merging a tracked tag
      Fourth batch for 2.17
      Fifth batch for 2.17
      test_must_be_empty: make sure the file exists, not just empty
      untracked cache: use git_env_bool() not getenv() for customization
      Sixth batch for 2.17
      Seventh batch for 2.17
      Eighth batch for 2.17
      Git 2.17-rc0

Kim Gybels (1):
      packed_ref_cache: don't use mmap() for small files

Lucas Werkmeister (1):
      daemon: add --log-destination=(stderr|syslog|none)

Martin Ågren (5):
      sequencer: make lockfiles non-static
      sequencer: always roll back lock in `do_recursive_merge()`
      merge-recursive: always roll back lock in `merge_recursive_generic()`
      merge: always roll back lock in `checkout_fast_forward()`
      sequencer: do not roll back lockfile unnecessarily

Matthieu Moy (2):
      send-email: add and use a local copy of Mail::Address
      perl/Git: remove now useless email-address parsing code

Michael Haggerty (5):
      struct snapshot: store `start` rather than `header_len`
      create_snapshot(): use `xmemdupz()` rather than a strbuf
      find_reference_location(): make function safe for empty snapshots
      packed_ref_iterator_begin(): make optimization more general
      load_contents(): don't try to mmap an empty file

Mårten Kongstad (1):
      docs/pretty-formats: fix typo '% <(<N>)' -> '%<|(<N>)'

Nathan Payre (1):
      send-email: extract email-parsing code into a subroutine

Nguyễn Thái Ngọc Duy (72):
      trace.c: move strbuf_release() out of print_trace_line()
      run-command.c: introduce trace_run_command()
      run-command.c: print program 'git' when tracing git_cmd mode
      run-command.c: print env vars in trace_run_command()
      run-command.c: print new cwd in trace_run_command()
      worktree.c: add validate_worktree()
      dir.c: avoid stat() in valid_cached_dir()
      dir.c: fix missing dir invalidation in untracked code
      format-patch: keep cover-letter diffstat wrapped in 72 columns
      dir.c: stop ignoring opendir() error in open_cached_dir()
      format-patch: reduce patch diffstat width to 72
      trace: measure where the time is spent in the index-heavy operations
      diff.c: refactor pprint_rename() to use strbuf
      dir.c: ignore paths containing .git when invalidating untracked cache
      parse-options: support --git-completion-helper
      parse-options: add OPT_xxx_F() variants
      parse-options: let OPT__FORCE take optional flags argument
      git-completion.bash: introduce __gitcomp_builtin
      completion: use __gitcomp_builtin in _git_add
      completion: use __gitcomp_builtin in _git_am
      completion: use __gitcomp_builtin in _git_apply
      completion: use __gitcomp_builtin in _git_branch
      completion: use __gitcomp_builtin in _git_checkout
      completion: use __gitcomp_builtin in _git_cherry_pick
      completion: use __gitcomp_builtin in _git_clean
      completion: use __gitcomp_builtin in _git_clone
      completion: use __gitcomp_builtin in _git_commit
      completion: use __gitcomp_builtin in _git_config
      completion: use __gitcomp_builtin in _git_describe
      completion: use __gitcomp_builtin in _git_difftool
      completion: use __gitcomp_builtin in _git_fetch
      completion: use __gitcomp_builtin in _git_fsck
      completion: use __gitcomp_builtin in _git_gc
      completion: use __gitcomp_builtin in _git_grep
      completion: use __gitcomp_builtin in _git_help
      completion: use __gitcomp_builtin in _git_init
      completion: use __gitcomp_builtin in _git_ls_files
      completion: use __gitcomp_builtin in _git_ls_remote
      completion: use __gitcomp_builtin in _git_merge
      completion: use __gitcomp_builtin in _git_merge_base
      completion: use __gitcomp_builtin in _git_mv
      completion: use __gitcomp_builtin in _git_name_rev
      completion: use __gitcomp_builtin in _git_notes
      completion: use __gitcomp_builtin in _git_pull
      completion: use __gitcomp_builtin in _git_push
      completion: use __gitcomp_builtin in _git_remote
      remote: force completing --mirror= instead of --mirror
      completion: use __gitcomp_builtin in _git_replace
      completion: use __gitcomp_builtin in _git_reset
      completion: use __gitcomp_builtin in _git_revert
      completion: use __gitcomp_builtin in _git_rm
      completion: use __gitcomp_builtin in _git_show_branch
      completion: use __gitcomp_builtin in _git_status
      completion: use __gitcomp_builtin in _git_tag
      completion: use __gitcomp_builtin in _git_worktree
      worktree.c: add update_worktree_location()
      worktree move: new command
      worktree move: accept destination as directory
      worktree move: refuse to move worktrees with submodules
      worktree remove: new command
      worktree remove: allow it when $GIT_WORK_TREE is already gone
      am: add --show-current-patch
      rebase: add --show-current-patch
      rebase: introduce and use pseudo-ref REBASE_HEAD
      am: support --quit
      diff: add --compact-summary
      object.h: update flag allocation comment
      object.h: realign object flag allocation comment
      completion: don't set PARSE_OPT_NOCOMPLETE on --rerere-autoupdate
      completion: simplify _git_notes
      completion: complete --{reuse,reedit}-message= for all notes subcmds
      completion: more subcommands in _git_notes()

Nicolas Morey-Chaisemartin (1):
      tag: add --edit option

Olga Telezhnaya (3):
      mru: use double-linked list from list.h
      ref-filter: get rid of duplicate code
      ref-filter: get rid of goto

Patryk Obara (14):
      clang-format: adjust penalty for return type line break
      http-push: improve error log
      sha1_file: convert pretend_sha1_file to object_id
      dir: convert struct sha1_stat to use object_id
      sha1_file: convert hash_sha1_file to object_id
      cache: clear whole hash buffer with oidclr
      match-trees: convert splice_tree to object_id
      commit: convert commit_tree* to object_id
      notes: convert combine_notes_* to object_id
      notes: convert write_notes_tree to object_id
      sha1_file: convert write_sha1_file to object_id
      sha1_file: convert force_object_loose to object_id
      sha1_file: convert write_loose_object to object_id
      sha1_file: rename hash_sha1_file_literally

Phillip Wood (25):
      t3404: check intermediate squash messages
      commit: move empty message checks to libgit
      Add a function to update HEAD after creating a commit
      commit: move post-rewrite code to libgit
      commit: move print_commit_summary() to libgit
      sequencer: simplify adding Signed-off-by: trailer
      sequencer: load commit related config
      sequencer: try to commit without forking 'git commit'
      t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
      sequencer: improve config handling
      t7505: style fixes
      t7505: add tests for cherry-pick and rebase -i/-p
      sequencer: run 'prepare-commit-msg' hook
      add -p: only display help for active keys
      add -p: only bind search key if there's more than one hunk
      add -p: improve error messages
      add -i: add function to format hunk header
      t3701: indent here documents
      t3701: use test_write_lines and write_script
      t3701: don't hard code sha1 hash values
      t3701: add failing test for pathological context lines
      add -p: adjust offsets of subsequent hunks when one is skipped
      add -p: calculate offset delta for edited patches
      add -p: fix counting when splitting and coalescing
      add -p: don't rely on apply's '--recount' option

Prathamesh Chavan (2):
      submodule: port submodule subcommand 'sync' from shell to C
      submodule: port submodule subcommand 'deinit' from shell to C

Ramsay Jones (1):
      t4151: consolidate multiple calls to test_i18ngrep

Rasmus Villemoes (2):
      grep: move grep_source_init outside critical section
      grep: simplify grep_oid and grep_file

René Scharfe (4):
      cocci: use format keyword instead of a literal string
      check-ignore: fix mix of directories and other file types
      sequencer: factor out strbuf_read_file_or_whine()
      perf: use GIT_PERF_REPEAT_COUNT=3 by default even without config file

SZEDER Gábor (22):
      Use MOVE_ARRAY
      travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux build
      travis-ci: use 'set -e' in the 32 bit Linux build job
      travis-ci: don't repeat the path of the cache directory
      travis-ci: don't run the test suite as root in the 32 bit Linux build
      travis-ci: don't fail if user already exists on 32 bit Linux build job
      t6300-for-each-ref: fix "more than one quoting style" tests
      Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targets
      t: prevent '-x' tracing from interfering with test helpers' stderr
      t: add means to disable '-x' tracing for individual test scripts
      t1507-rev-parse-upstream: don't check the stderr of a shell function
      t5536: simplify checking of messages output to stderr
      t3030-merge-recursive: don't check the stderr of a subshell
      t5500-fetch-pack: don't check the stderr of a subshell
      t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log file
      t5570-git-daemon: don't check the stderr of a subshell
      t9903-bash-prompt: don't check the stderr of __git_ps1()
      t1510-repo-setup: mark as untraceable with '-x'
      t/README: add a note about don't saving stderr of compound commands
      travis-ci: run tests with '-x' tracing
      t9400-git-cvsserver-server: don't rely on the output of 'test_cmp'
      t9402-git-cvsserver-refs: don't check the stderr of a subshell

Stefan Beller (9):
      diff.h: make pickaxe_opts an unsigned bit field
      diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit
      diff: introduce DIFF_PICKAXE_KINDS_MASK
      diffcore: add a pickaxe option to find a specific blob
      diff: properly error out when combining multiple pickaxe options
      diff: use HAS_MULTI_BITS instead of counting bits manually
      builtin/pull: respect verbosity settings in submodules
      send-email: error out when relogin delay is missing
      color.h: document and modernize header

Stephen R Guglielmo (1):
      subtree: fix add and pull for GPG-signed commits

Tatyana Krasnukha (1):
      apply: handle Subversion diffs with /dev/null gracefully

Thomas Gummerer (1):
      reset --hard: make use of the pretty machinery

Thomas Levesque (1):
      userdiff.c: add C# async keyword in diff pattern

Todd Zullinger (2):
      Makefile: remove *.spec from clean target
      Makefile: add NO_PERL_CPAN_FALLBACKS knob

Torsten Bögershausen (1):
      convert_to_git(): safe_crlf/checksafe becomes int conv_flags

brian m. carlson (13):
      hash: move SHA-1 macros to hash.h
      hash: create union for hash context allocation
      builtin/index-pack: improve hash function abstraction
      builtin/unpack-objects: switch uses of SHA-1 to the_hash_algo
      sha1_file: switch uses of SHA-1 to the_hash_algo
      fast-import: switch various uses of SHA-1 to the_hash_algo
      pack-check: convert various uses of SHA-1 to abstract forms
      pack-write: switch various SHA-1 values to abstract forms
      read-cache: abstract away uses of SHA-1
      csum-file: rename sha1file to hashfile
      csum-file: abstract uses of SHA-1
      bulk-checkin: abstract SHA-1 usage
      hash: update obsolete reference to SHA1_HEADER

Ævar Arnfjörð Bjarmason (49):
      Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto
      Makefile: under "make dist", include the sha1collisiondetection submodule
      sha1dc_git.h: re-arrange an ifdef chain for a subsequent change
      Makefile: replace perl/Makefile.PL with simple make rules
      perl: avoid *.pmc and fix Error.pm further
      status: add a failing test showing a core.untrackedCache bug
      wildmatch test: indent with tabs, not spaces
      wildmatch test: use more standard shell style
      wildmatch test: don't try to vertically align our output
      wildmatch test: use a paranoia pattern from nul_match()
      wildmatch test: remove dead fnmatch() test code
      wildmatch test: use test_must_fail, not ! for test-wildmatch
      wildmatch test: perform all tests under all wildmatch() modes
      wildmatch test: create & test files on disk in addition to in-memory
      test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite
      wildmatch test: mark test as EXPENSIVE_ON_WINDOWS
      fetch: don't redundantly NULL something calloc() gave us
      fetch: trivially refactor assignment to ref_nr
      fetch: stop accessing "remote" variable indirectly
      remote: add a macro for "refs/tags/*:refs/tags/*"
      fetch tests: refactor in preparation for testing tag pruning
      fetch tests: re-arrange arguments for future readability
      fetch tests: add a tag to be deleted to the pruning tests
      fetch tests: test --prune and refspec interaction
      fetch tests: double quote a variable for interpolation
      fetch tests: expand case/esac for later change
      fetch tests: fetch <url> <spec> as well as fetch [<remote>]
      git fetch doc: add a new section to explain the ins & outs of pruning
      git remote doc: correct dangerous lies about what prune does
      git-fetch & config doc: link to the new PRUNING section
      fetch tests: add scaffolding for the new fetch.pruneTags
      fetch: add a --prune-tags option and fetch.pruneTags config
      fetch: make the --prune-tags work with <url>
      update-index doc: note a fixed bug in the untracked cache
      update-index doc: note the caveat with "could not open..."
      perl: *.pm files should not have the executable bit
      Git.pm: remove redundant "use strict" from sub-package
      Git.pm: add the "use warnings" pragma
      commit: run git gc --auto just before the post-commit hook
      gitweb: hard-depend on the Digest::MD5 5.8 module
      Git.pm: hard-depend on the File::{Temp,Spec} modules
      git-send-email: unconditionally use Net::{SMTP,Domain}
      perl: update our ancient copy of Error.pm
      perl: update our copy of Mail::Address
      perl: move CPAN loader wrappers to another namespace
      perl: generalize the Git::LoadCPAN facility
      perl: move the perl/Git/FromCPAN tree to perl/FromCPAN
      perl Git::LoadCPAN: emit better errors under NO_PERL_CPAN_FALLBACKS
      git manpage: note git-security@googlegroups.com


Version v2.16.6; changes since v2.16.5:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (22):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4
      test-drop-caches: use `has_dos_drive_prefix()`
      Git 2.16.6

Jonathan Nieder (1):
      submodule: reject submodule.update = !command in .gitmodules


Version v2.16.5; changes since v2.16.4:
---------------------------------------

Jeff King (3):
      submodule--helper: use "--" to signal end of clone options
      submodule-config: ban submodule urls that start with dash
      submodule-config: ban submodule paths that start with a dash

Junio C Hamano (3):
      Git 2.14.5
      Git 2.15.3
      Git 2.16.5


Version v2.16.4; changes since v2.16.3:
---------------------------------------

Jeff King (8):
      submodule-config: verify submodule names as paths
      is_ntfs_dotgit: use a size_t for traversing string
      is_hfs_dotgit: match other .git files
      skip_prefix: add case-insensitive variant
      verify_path: drop clever fallthrough
      verify_dotfile: mention case-insensitivity in comment
      update-index: stat updated files earlier
      verify_path: disallow symlinks in .gitmodules

Johannes Schindelin (2):
      is_ntfs_dotgit: match other .git files
      is_{hfs,ntfs}_dotgitmodules: add tests

Junio C Hamano (4):
      Git 2.13.7
      Git 2.14.4
      Git 2.15.2
      Git 2.16.4


Version v2.16.3; changes since v2.16.2:
---------------------------------------

Ben Peart (1):
      fsmonitor: update documentation to remove reference to invalid config settings

Brandon Williams (1):
      oidmap: ensure map is initialized

Christian Ludwig (1):
      t9001: use existing helper in send-email test

Eric Sunshine (2):
      git-worktree.txt: fix missing ")" typo
      git-worktree.txt: fix indentation of example and text of 'add' command

Eric Wong (2):
      fsck: fix leak when traversing trees
      git-svn: control destruction order to avoid segfault

Genki Sky (1):
      test-lib.sh: unset XDG_CACHE_HOME

Jeff King (10):
      t5570: use ls-remote instead of clone for interp tests
      t/lib-git-daemon: record daemon log
      daemon: fix off-by-one in logging extended attributes
      daemon: handle NULs in extended attribute string
      t/lib-git-daemon: add network-protocol helpers
      daemon: fix length computation in newline stripping
      t0205: drop redundant test
      git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME
      commit: drop uses of get_cached_commit_buffer()
      revision: drop --show-all option

Jonathan Tan (2):
      http: support cookie redaction when tracing
      http: support omitting data from traces

Juan F. Codagnone (1):
      mailinfo: avoid segfault when can't open files

Junio C Hamano (2):
      worktree: say that "add" takes an arbitrary commit in short-help
      Git 2.16.3

Kaartic Sivaraam (2):
      Doc/gitsubmodules: make some changes to improve readability and syntax
      Doc/git-submodule: improve readability and grammar of a sentence

Mathias Rav (1):
      files_initial_transaction_commit(): only unlock if locked

Motoki Seki (1):
      Documentation/gitsubmodules.txt: avoid non-ASCII apostrophes

Nguyễn Thái Ngọc Duy (12):
      t2203: test status output with porcelain v2 format
      Use DIFF_DETECT_RENAME for detect_rename assignments
      wt-status.c: coding style fix
      wt-status.c: catch unhandled diff status codes
      wt-status.c: rename rename-related fields in wt_status_change_data
      wt-status.c: handle worktree renames
      read-cache.c: change type of "temp" in write_shared_index()
      read-cache.c: move tempfile creation/cleanup out of write_shared_index
      diff.c: flush stdout before printing rename warnings
      read-cache: don't write index twice if we can't write shared index
      completion: fix completing merge strategies on non-C locales
      gitignore.txt: elaborate shell glob syntax

Ramsay Jones (2):
      config.mak.uname: remove SPARSE_FLAGS setting for cygwin
      Makefile: suppress a sparse warning for pack-revindex.c

Randall S. Becker (1):
      hashmap.h: remove unused variable

René Scharfe (2):
      describe: use strbuf_add_unique_abbrev() for adding short hashes
      cocci: simplify check for trivial format strings

Robert P. J. Day (2):
      t/: correct obvious typo "detahced"
      Correct mispellings of ".gitmodule" to ".gitmodules"

SZEDER Gábor (11):
      travis-ci: build Git during the 'script' phase
      t5541: add 'test_i18ngrep's missing filename parameter
      t5812: add 'test_i18ngrep's missing filename parameter
      t6022: don't run 'git merge' upstream of a pipe
      t4001: don't run 'git status' upstream of a pipe
      t5510: consolidate 'grep' and 'test_i18ngrep' patterns
      t5536: let 'test_i18ngrep' read the file without redirection
      t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
      t: validate 'test_i18ngrep's parameters
      t: make 'test_i18ngrep' more informative on failure
      t: document 'test_must_fail ok=<signal-name>'

Stefan Beller (5):
      t/lib-submodule-update.sh: clarify test
      t/lib-submodule-update.sh: fix test ignoring ignored files in submodules
      unpack-trees: oneway_merge to update submodules
      submodule: submodule_move_head omits old argument in forced case
      Documentation/git-status: clarify status table for porcelain mode

Stefan Moch (2):
      t7001: add test case for --dry-run
      mv: remove unneeded 'if (!show_only)'

Thomas Gummerer (3):
      read-cache: fix reading the shared index for other repos
      split-index: don't write cache tree with null oid entries
      travis: run tests with GIT_TEST_SPLIT_INDEX

Todd Zullinger (1):
      doc: mention 'git show' defaults to HEAD

Yasushi SHOJI (1):
      bisect: debug: convert struct object to object_id

brian m. carlson (1):
      docs/interpret-trailers: fix agreement error

Ævar Arnfjörð Bjarmason (2):
      commit doc: document that -c, -C, -F and --fixup with -m error
      commit: add support for --fixup <commit> -m"<extra message>"


Version v2.16.2; changes since v2.16.1:
---------------------------------------

Andreas G. Schacker (1):
      doc/read-tree: remove obsolete remark

Daniel Knittl-Frank (1):
      describe: prepend "tags/" when describing tags with embedded name

Jason Merrill (1):
      git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.

Jeff King (4):
      t5600: fix outdated comment about unborn HEAD
      t5600: modernize style
      clone: factor out dir_exists() helper
      clone: do not clean up directories we didn't create

Junio C Hamano (2):
      merge: teach -Xours/-Xtheirs to symbolic link merge
      Git 2.16.2

Nguyễn Thái Ngọc Duy (1):
      add--interactive: ignore submodule changes except HEAD

René Scharfe (9):
      commit: avoid allocation in clear_commit_marks_many()
      commit: use clear_commit_marks_many() in remove_redundant()
      ref-filter: use clear_commit_marks_many() in do_merge_filter()
      object: add clear_commit_marks_all()
      bisect: avoid using the rev_info flag leak_pending
      bundle: avoid using the rev_info flag leak_pending
      checkout: avoid using the rev_info flag leak_pending
      revision: remove the unused flag leak_pending
      commit: remove unused function clear_commit_marks_for_object_array()

Thomas Gummerer (1):
      stash: don't delete untracked files that match pathspec

Ævar Arnfjörð Bjarmason (2):
      perf: amend the grep tests to test grep.threads
      cat-file doc: document that -e will return some output


Version v2.16.1; changes since v2.16.0:
---------------------------------------

Eric Sunshine (1):
      t5601-clone: test case-conflicting files on case-insensitive filesystem

Junio C Hamano (1):
      Git 2.16.1

brian m. carlson (1):
      repository: pre-initialize hash algo pointer


Version v2.16.0; changes since v2.16.0-rc2:
-------------------------------------------

Alexander Shopov (2):
      l10n: bg.po: Updated Bulgarian translation (3284t)
      l10n: bg.po: Updated Bulgarian translation (3288t)

Changwoo Ryu (2):
      l10n: ko.po: Update Korean translation
      l10n: TEAMS: Add ko team members

Christopher Díaz Riveros (3):
      l10n: Update Spanish translation
      l10n: es.po: Update Spanish Translation v2.16.0
      l10n: es.po: Spanish translation 2.16.0 round 2

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Fangyi Zhou (2):
      l10n: zh_CN Fix typo
      l10n: zh_CN translate parameter name

Jean-Noël Avila (2):
      l10n: fr.po v2.16.0 round 1
      l10n: fr.po 2.16 round 2

Jiang Xin (4):
      l10n: git.pot: v2.16.0 round 1 (64 new, 25 removed)
      l10n: git.pot: v2.16.0 round 2 (8 new, 4 removed)
      l10n: zh_CN: for git v2.16.0 l10n round 2
      l10n: TEAMS: add zh_CN team members

Jordi Mas (1):
      l10n: Fixes to Catalan translation

Junio C Hamano (1):
      Git 2.16

Louis Bettens (1):
      l10n: fr.po: "worktree list" mistranslated as prune

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (3284t0f0u)
      l10n: sv.po: Update Swedish translation (3288t0f0u)

Ralf Thielow (2):
      l10n: de.po: improve messages when a branch starts to track another ref
      l10n: de.po: translate 72 new messages

Robert Abel (1):
      l10n: fixes to German translation

SZEDER Gábor (1):
      RelNotes: minor typofix

Trần Ngọc Quân (1):
      l10n: vi.po(3288t): Updated Vietnamese translation for v2.16.0 round 2


Version v2.16.0-rc2; changes since v2.16.0-rc1:
-----------------------------------------------

Beat Bolli (1):
      t3900: add some more quotes

Jeff King (1):
      docs/diff-options: clarify scope of diff-filter types

Johannes Schindelin (8):
      Allow the test suite to pass in a directory whose name contains spaces
      t0302 & t3900: add forgotten quotes
      rebase -p: fix quoting when calling `git merge`
      git gui: fix staging a second line to a 1-line file
      git-gui: avoid exception upon Ctrl+T in an empty list
      git-gui: fix exception when trying to stage with empty file list
      git-gui: allow Ctrl+T to toggle multiple paths
      mingw: handle GITPERLLIB in t0021 in a Windows-compatible way

Junio C Hamano (3):
      merge-recursive: do not look at the index during recursive merge
      RelNotes update before -rc2
      Git 2.16-rc2

Ralf Thielow (1):
      Documentation/git-worktree.txt: add missing `

SZEDER Gábor (9):
      travis-ci: fine tune the use of 'set -x' in 'ci/*' scripts
      travis-ci: don't install default addon packages for the 32 bit Linux build
      travis-ci: save prove state for the 32 bit Linux build
      travis-ci: only print test failures if there are test results available
      travis-ci: print the "tip of branch is exactly at tag" message in color
      travis-ci: create the cache directory early in the build process
      travis-ci: record and skip successfully built trees
      travis-ci: don't store P4 and Git LFS in the working tree
      travis-ci: check that all build artifacts are .gitignore-d

Thomas Gummerer (1):
      oidset: don't return value from oidset_init

Todd Zullinger (2):
      doc/SubmittingPatches: improve text formatting
      http: fix v1 protocol tests with apache httpd < 2.4

Ævar Arnfjörð Bjarmason (2):
      Makefile: NO_OPENSSL=1 should no longer imply BLK_SHA1=1
      bisect: fix a regression causing a segfault


Version v2.16.0-rc1; changes since v2.16.0-rc0:
-----------------------------------------------

Dave Borowitz (1):
      config.txt: document behavior of backslashes in subsections

Elijah Newren (3):
      t6044: recursive can silently incorporate dirty changes in a merge
      move index_has_changes() from builtin/am.c to merge.c for reuse
      merge-recursive: avoid incorporating uncommitted changes in a merge

Jeff King (4):
      test-lib: silence "-x" cleanup under bash
      t5615: avoid re-using descriptor 4
      test-lib: make "-x" work with "--verbose-log"
      t/Makefile: introduce TEST_SHELL_PATH

Johannes Schindelin (5):
      rebase: do not continue when the todo list generation failed
      sequencer: strip bogus LF at end of error messages
      sequencer: remove superfluous conditional
      sequencer: report when noop has an argument
      sequencer: do not invent whitespace when transforming OIDs

Julien Dusser (1):
      strbuf: fix urlencode format string on signed char

Junio C Hamano (1):
      Git 2.16-rc1

Luke Diamand (1):
      git-p4: update multiple shelved change lists

René Scharfe (2):
      http: use internal argv_array of struct child_process
      send-pack: use internal argv_array of struct child_process

Stefan Beller (1):
      t/helper/test-lazy-name-hash: fix compilation

Torsten Bögershausen (1):
      check-non-portable-shell.pl: `wc -l` may have leading WS


Version v2.16.0-rc0; changes since v2.15.4:
-------------------------------------------

Albert Astals Cid (1):
      completion: add --autostash and --no-autostash to pull

Alex Vandiver (7):
      fsmonitor: read entirety of watchman output
      fsmonitor: set the PWD to the top of the working tree
      fsmonitor: don't bother pretty-printing JSON from watchman
      fsmonitor: document GIT_TRACE_FSMONITOR
      fsmonitor: delay updating state until after split index is merged
      fsmonitor: read from getcwd(), not the PWD environment variable
      fsmonitor: store fsmonitor bitmap before splitting index

Anders Kaseorg (1):
      git-gui: sort entries in optimized tclIndex

Andrey Okoshkin (1):
      merge-recursive: check GIT_MERGE_VERBOSITY only once

Ann T Ropea (7):
      Documentation: revisions: fix typo: "three dot" ---> "three-dot" (in line with "two-dot").
      Documentation: user-manual: limit usage of ellipsis
      print_sha1_ellipsis: introduce helper
      checkout: describe_detached_head: remove ellipsis after committish
      t4013: prepare for upcoming "diff --raw --abbrev" output format change
      diff: diff_aligned_abbrev: remove ellipsis after abbreviated SHA-1 value
      t4013: test new output from diff --abbrev --raw

Antoine Beaupré (6):
      remote-mediawiki: limit filenames to legal
      remote-mediawiki: show known namespace choices on failure
      remote-mediawiki: skip virtual namespaces
      remote-mediawiki: support fetching from (Main) namespace
      remote-mediawiki: process namespaces in order
      remote-mediawiki: show progress while fetching namespaces

Beat Bolli (1):
      contrib/git-jump: allow to configure the grep command

Ben Peart (16):
      bswap: add 64 bit endianness helper get_be64
      preload-index: add override to enable testing preload-index
      update-index: add a new --force-write-index option
      fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
      fsmonitor: add documentation for the fsmonitor extension.
      ls-files: Add support in ls-files to display the fsmonitor valid bit
      update-index: add fsmonitor support to update-index
      fsmonitor: add a test tool to dump the index extension
      split-index: disable the fsmonitor extension when running the split index test
      fsmonitor: add test cases for fsmonitor extension
      fsmonitor: add a sample integration script for Watchman
      fsmonitor: add a performance test
      fsmonitor: MINGW support for watchman integration
      fsmonitor: preserve utf8 filenames in fsmonitor-watchman log
      read_index_from(): speed index loading by skipping verification of the entry order
      fsmonitor: simplify determining the git worktree under Windows

Brandon Williams (23):
      pkt-line: add packet_write function
      protocol: introduce protocol extension mechanisms
      daemon: recognize hidden request arguments
      upload-pack, receive-pack: introduce protocol version 1
      connect: teach client to recognize v1 server response
      connect: tell server that the client understands v1
      http: tell server that the client understands v1
      i5700: add interop test for protocol transition
      ssh: introduce a 'simple' ssh variant
      add, reset: use DIFF_OPT_SET macro to set a diff flag
      diff: convert flags to be stored in bitfields
      diff: add flag to indicate textconv was set via cmdline
      diff: remove touched flags
      diff: remove DIFF_OPT_TST macro
      diff: remove DIFF_OPT_SET macro
      diff: remove DIFF_OPT_CLR macro
      diff: make struct diff_flags members lowercase
      pathspec: only match across submodule boundaries when requested
      diff-tree: read the index so attribute checks work in bare repositories
      submodule: convert stage_updated_gitmodules to take a struct index_state
      submodule: used correct index in is_staging_gitmodules_ok
      submodule: convert get_next_submodule to not rely on the_index
      path: document path functions

Christian Couder (24):
      perf/run: add '--config' option to the 'run' script
      perf/run: add get_var_from_env_or_config()
      perf/run: add GIT_PERF_DIRS_OR_REVS
      perf/run: add calls to get_var_from_env_or_config()
      perf/run: add get_subsections()
      perf/run: update get_var_from_env_or_config() for subsections
      perf/run: add run_subsection()
      perf/run: show name of rev being built
      perf: store subsection results in "test-results/$GIT_PERF_SUBSECTION/"
      t0021/rot13-filter: fix list comparison
      t0021/rot13-filter: refactor packet reading functions
      t0021/rot13-filter: improve 'if .. elsif .. else' style
      t0021/rot13-filter: improve error message
      t0021/rot13-filter: add packet_initialize()
      t0021/rot13-filter: refactor checking final lf
      t0021/rot13-filter: add capability functions
      Git/Packet.pm: extract parts of t0021/rot13-filter.pl for reuse
      Git/Packet: clarify that packet_required_key_val_read allows EOF
      Git/Packet.pm: use 'if' instead of 'unless'
      list-objects-filter-options: fix 'keword' typo in comment
      git-compat-util: introduce skip_to_optional_arg()
      index-pack: use skip_to_optional_arg()
      diff: use skip_to_optional_arg()
      diff: use skip_to_optional_arg_default()

Damien Marié (1):
      run-command: add hint when a hook is ignored

Daniel Bensoussan (1):
      doc: reword gitworkflows.txt for neutrality

Derrick Stolee (5):
      p4211-line-log.sh: add log --online --raw --parents perf test
      sha1_name: unroll len loop in find_unique_abbrev_r()
      sha1_name: parse less while finding common prefix
      sha1_name: minimize OID comparisons during disambiguation
      sha1_file: use strbuf_add() instead of strbuf_addf()

Elijah Newren (6):
      sequencer: warn when internal merge may be suboptimal due to renameLimit
      progress: fix progress meters when dealing with lots of work
      diff: remove silent clamp of renameLimit
      sequencer: show rename progress during cherry picks
      merge-recursive: ignore_case shouldn't reject intentional removals
      strbuf: remove unused stripspace function alias

Emily Xie (1):
      pathspec: die on empty strings as pathspec

Eric Sunshine (3):
      worktree: invoke post-checkout hook (unless --no-checkout)
      clone: support 'clone --shared' from a worktree
      version --build-options: also report host CPU

Eric Wong (1):
      git-svn: convert CRLF to LF in commit message to SVN

Florian Klink (1):
      git-send-email: honor $PATH for sendmail binary

Gennady Kupava (2):
      trace: remove trace key normalization
      trace: improve performance while category is disabled

Guillaume Castagnino (1):
      gitweb: use filetest to allow ACLs

Haaris Mehmood (1):
      config: add --expiry-date

Hans Jerry Illikainen (2):
      merge: add config option for verifySignatures
      t: add tests for pull --verify-signatures

Heiko Voigt (3):
      fetch: add test to make sure we stay backwards compatible
      implement fetching of moved submodules
      submodule: simplify decision tree whether to or not to fetch

Ingo Ruhnke (1):
      remote-mediawiki: allow fetching namespaces with spaces

J Wyman (1):
      for-each-ref: let upstream/push report the remote ref name

Jacob Keller (1):
      diff: add tests for --relative without optional prefix value

Jameson Miller (4):
      status: add option to show ignored files differently
      status: report matching ignored and normal untracked
      status: document options to show matching ignored files
      status: test ignored modes

Jean-Noël Avila (1):
      submodule--helper.c: i18n: add a missing space in message

Jeff Hostetler (9):
      dir: allow exclusions from blob in addition to file
      oidmap: add oidmap iterator methods
      oidset: add iterator methods to oidset
      list-objects: filter objects in traverse_commit_list
      rev-list: add list-objects filtering support
      pack-objects: add list-objects filtering
      list-objects-filter-options: support --no-filter
      rev-list: support --no-filter argument
      partial-clone: design doc

Jeff King (11):
      revision: quit pruning diff more quickly when possible
      git-jump: give contact instructions in the README
      p5550: factor out nonsense-pack creation
      t/perf/lib-pack: use fast-import checkpoint to create packs
      p5551: add a script to test fetch pack-dir rescans
      everything_local: use "quick" object existence check
      sha1_file: fast-path null sha1 as a missing object
      git-status.txt: mention --no-optional-locks
      progress: set default delay threshold to 100%, not 0%
      docs/pretty-formats: mention commas in %(trailers) syntax
      cvsimport: apply shell-quoting regex globally

Johannes Schindelin (4):
      for-each-ref: let upstream/push optionally report the remote name
      for-each-ref: test :remotename and :remoteref
      hashmap: adjust documentation to reflect reality
      version --build-options: report commit, too, if possible

Jonathan Nieder (10):
      ssh test: make copy_ssh_wrapper_as clean up after itself
      connect: move no_fork fallback to git_tcp_connect
      connect: split git:// setup into a separate function
      connect: split ssh command line options into separate function
      connect: split ssh option computation to its own function
      ssh: 'auto' variant to select between 'ssh' and 'simple'
      ssh: 'simple' variant does not support -4/-6
      ssh: 'simple' variant does not support --port
      connect: correct style of C-style comment
      generate-cmdlist: avoid non-deterministic output

Jonathan Tan (10):
      connect: in ref advertisement, shallows are last
      Documentation: document Extra Parameters
      Tests: clean up and document submodule helpers
      Tests: clean up submodule recursive helpers
      diff: support anchoring line(s)
      diffcore-rename: make diff-tree -l0 mean -l<large>
      decorate: clean up and document API
      transport: remove unused "push" in vtable
      clone, fetch: remove redundant transport check
      transport: make transport vtable more private

Junio C Hamano (26):
      t0027: do not use an empty string as a pathspec element
      describe: do not use cmd_*() as a subroutine
      merge-ours: do not use cmd_*() as a subroutine
      branch: streamline "attr_only" handling in validate_new_branchname()
      branch: split validate_new_branchname() into two
      xdiff: reassign xpparm_t.flags bits
      The first batch for 2.16
      RelNotes: the second batch post 2.15 comes
      diff: --ignore-cr-at-eol
      RelNotes: the third batch for 2.16
      branch: correctly reject refs/heads/{-dash,HEAD}
      RelNotes: the fourth batch for 2.16
      RelNotes: the fifth batch for 2.16
      hooks doc: clarify when receive-pack invokes its hooks
      RelNotes: the sixth batch for 2.16
      RelNotes: the seventh batch
      t2020: test variations that matter
      RelNotes: the eighth batch
      diff: use skip_to_optional_arg_default() in parsing --relative
      t4045: reindent to make helpers readable
      RelNotes: the ninth batch
      RelNotes: the tenth batch
      t5573, t7612: clean up after unexpected success of 'pull' and 'merge'
      sequencer.c: drop 'const' from function return type
      RelNotes: the eleventh batch
      Git 2.16-rc0

Kaartic Sivaraam (11):
      builtin/branch: remove redundant check for HEAD
      git-rebase: clean up dashed-usages in messages
      Doc/checkout: checking out using @{-N} can lead to detached state
      branch: improve documentation and naming of create_branch() parameters
      branch: group related arguments of create_branch()
      branch: update warning message shown when copying a misnamed branch
      builtin/branch: strip refs/heads/ using skip_prefix
      Doc/check-ref-format: clarify information about @{-N} syntax
      rebase: consistently use branch_name variable
      rebase: distinguish user input by quoting it
      rebase: rebasing can also be done when HEAD is detached

Kevin (1):
      remote-mediawiki: add namespace support

Lars Schneider (3):
      refactor "dumb" terminal determination
      progress: drop delay-threshold code
      launch_editor(): indicate that Git waits for user input

Liam Beguin (9):
      Documentation: move rebase.* configs to new file
      Documentation: use preferred name for the 'todo list' script
      rebase -i: set commit to null in exec commands
      rebase -i: refactor transform_todo_ids
      rebase -i: replace reference to sha1 with oid
      rebase -i: update functions to use a flags parameter
      rebase -i -x: add exec commands via the rebase--helper
      rebase -i: learn to abbreviate command names
      t3404: add test case for abbreviated commands

Marius Paliga (1):
      builtin/push.c: add push.pushOption config

Martin Ågren (15):
      sha1_file: do not leak `lock_file`
      treewide: prefer lockfiles on the stack
      lockfile: fix documentation on `close_lock_file_gently()`
      tempfile: fix documentation on `delete_tempfile()`
      checkout-index: simplify locking logic
      cache-tree: simplify locking logic
      apply: move lockfile into `apply_state`
      apply: remove `newfd` from `struct apply_state`
      cache.h: document `write_locked_index()`
      read-cache: drop explicit `CLOSE_LOCK`-flag
      read-cache: leave lock in right state in `write_locked_index()`
      read_cache: roll back lock in `update_index_if_able()`
      t7006: add tests for how git branch paginates
      branch: respect `pager.branch` in list-mode only
      branch: change default of `pager.branch` to "on"

Michael Haggerty (10):
      t0000: check whether the shell supports the "local" keyword
      files_transaction_prepare(): don't leak flags to packed transaction
      prune_ref(): call `ref_transaction_add_update()` directly
      ref_transaction_update(): die on disallowed flags
      ref_transaction_add_update(): remove a check
      refs: tidy up and adjust visibility of the `ref_update` flags
      refs: rename constant `REF_NODEREF` to `REF_NO_DEREF`
      refs: rename constant `REF_ISPRUNING` to `REF_IS_PRUNING`
      write_packed_entry(): take `object_id` arguments
      refs: update some more docs to use "oid" rather than "sha1"

Nicolas Morey-Chaisemartin (1):
      imap-send: URI encode server folder

Olga Telezhnaya (2):
      format: create pretty.h file
      format: create docs for pretty.h

Phil Hord (2):
      doc: prefer 'stash push' over 'stash save'
      stash: learn to parse -m/--message like commit does

Pranit Bauva (6):
      bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
      bisect--helper: rewrite `check_term_format` shell function in C
      bisect--helper: `write_terms` shell function in C
      bisect--helper: `bisect_clean_state` shell function in C
      t6030: explicitly test for bisection cleanup
      bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C

Prathamesh Chavan (3):
      submodule--helper: introduce get_submodule_displaypath()
      submodule--helper: introduce for_each_listed_submodule()
      submodule: port submodule subcommand 'status' from shell to C

Rafael Ascensão (1):
      log: add option to choose which refs to decorate

Ramsay Jones (1):
      repository: fix a sparse 'using integer as NULL pointer' warning

Randall S. Becker (1):
      install-doc-quick: allow specifying what ref to install

Rasmus Villemoes (2):
      Documentation/config: add sendemail.tocmd to list preceding "See git-send-email(1)"
      completion: add git config sendemail.tocmd

René Scharfe (14):
      notes: move hex_to_bytes() to hex.c and export it
      http-push: use hex_to_bytes()
      sha1_file: use hex_to_bytes()
      t4051: add test for comments preceding function lines
      xdiff: factor out is_func_rec()
      xdiff: show non-empty lines before functions with -W
      t7810: improve check of -W with user-defined function lines
      grep: update boundary variable for pre-context
      grep: show non-empty lines before functions with -W
      am: release strbuf after use in split_mail_mbox()
      fmt-merge-msg: avoid leaking strbuf in shortlog()
      strbuf: release memory on read error in strbuf_read_once()
      transport-helper: plug strbuf and string_list leaks
      p7519: improve check for prerequisite WATCHMAN

Robert Abel (2):
      git-prompt: make __git_eread intended use explicit
      git-prompt: fix reading files with windows line endings

Robert P. J. Day (4):
      bisect: mention "view" as an alternative to "visualize"
      doc: add missing "-n" (dry-run) option to reflog man page
      prune: add "--progress" to man page and usage msg
      notes: correct 'git notes prune' options to '[-n] [-v]'

SZEDER Gábor (5):
      setup.c: fix comment about order of .git directory discovery
      travis-ci: introduce a $jobname variable for 'ci/*' scripts
      travis-ci: move setting environment variables to 'ci/lib-travisci.sh'
      travis-ci: set GIT_TEST_HTTPD in 'ci/lib-travisci.sh'
      travis-ci: use 'set -x' in 'ci/*' scripts for extra tracing output

Simon Ruderich (1):
      config: document default value of http.sslVerify

Stefan Beller (11):
      recursive submodules: detach HEAD from new state
      Documentation/checkout: clarify submodule HEADs to be detached
      t6120: fix typo in test name
      list-objects.c: factor out traverse_trees_and_blobs
      revision.h: introduce blob/tree walking in order of the commits
      builtin/describe.c: rename `oid` to avoid variable shadowing
      builtin/describe.c: print debug statements earlier
      builtin/describe.c: factor out describe_commit
      Documentation/git-clone: improve description for submodule recursing
      t/helper: ignore everything but sources
      builtin/describe.c: describe a blob

Steffen Prohaska (1):
      doc: Mention info/attributes in gitrepository-layout

Stephan Beyer (1):
      bisect run: die if no command is given

Thomas Gummerer (11):
      stash: replace "git stash save" with "git stash push" in the documentation
      stash: mark "git stash save" deprecated in the man page
      stash: remove now superfluos help for "stash push"
      checkout: factor out functions to new lib file
      worktree: add can be created from any commit-ish
      worktree: add --[no-]track option to the add subcommand
      worktree: make add <path> <branch> dwim
      t/README: remove mention of adding copyright notices
      t/README: document test_cmp_rev
      worktree: add --guess-remote flag to add subcommand
      add worktree.guessRemote config option

Todd Zullinger (4):
      branch doc: remove --set-upstream from synopsis
      t/lib-git-svn: cleanup inconsistent tab/space usage
      t/lib-git-svn.sh: improve svnserve tests with parallel make test
      RelNotes: minor typo fixes in 2.16.0 draft

Torsten Bögershausen (3):
      add: introduce "--renormalize"
      convert: tighten the safe autocrlf handling
      t0027: Adapt the new MIX tests to Windows

W. Trevor King (1):
      pull: pass --signoff/--no-signoff to "git merge"

Wei Shuyu (1):
      http: support CURLPROXY_HTTPS

brian m. carlson (29):
      walker: convert to struct object_id
      refs/files-backend: convert struct ref_to_prune to object_id
      refs: convert delete_ref and refs_delete_ref to struct object_id
      refs: convert update_ref and refs_update_ref to use struct object_id
      refs: prevent accidental NULL dereference in write_pseudoref
      refs: update ref transactions to use struct object_id
      Convert check_connected to use struct object_id
      refs: convert resolve_refdup and refs_resolve_refdup to struct object_id
      refs: convert read_ref and read_ref_full to object_id
      refs: convert dwim_ref and expand_ref to struct object_id
      builtin/reflog: convert remaining unsigned char uses to object_id
      refs: convert dwim_log to struct object_id
      pack-bitmap: convert traverse_bitmap_commit_list to object_id
      builtin/pack-objects: convert to struct object_id
      refs: convert peel_ref to struct object_id
      refs: convert read_ref_at to struct object_id
      refs: convert reflog_expire parameter to struct object_id
      sha1_file: convert index_path and index_fd to struct object_id
      Convert remaining callers of resolve_gitlink_ref to object_id
      refs: convert resolve_gitlink_ref to struct object_id
      worktree: convert struct worktree to object_id
      refs: convert resolve_ref_unsafe to struct object_id
      refs: convert peel_object to struct object_id
      refs: convert read_raw_ref backends to struct object_id
      refs/files-backend: convert static functions to object_id
      setup: expose enumerated repo info
      Add structure representing hash algorithm
      Integrate hash algorithm support with repo setup
      Switch empty tree and blob lookups to use hash abstraction

Ævar Arnfjörð Bjarmason (2):
      test-lib: add LIBPCRE1 & LIBPCRE2 prerequisites
      grep: fix segfault under -P + PCRE2 <=10.30 + (*NO_JIT)

Łukasz Stelmach (1):
      git-gui: prevent double UTF-8 conversion


Version v2.15.4; changes since v2.15.3:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (20):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6
      Git 2.15.4

Jonathan Nieder (1):
      submodule: reject submodule.update = !command in .gitmodules


Version v2.15.3; changes since v2.15.2:
---------------------------------------

Jeff King (3):
      submodule--helper: use "--" to signal end of clone options
      submodule-config: ban submodule urls that start with dash
      submodule-config: ban submodule paths that start with a dash

Junio C Hamano (2):
      Git 2.14.5
      Git 2.15.3


Version v2.15.2; changes since v2.15.1:
---------------------------------------

Elijah Newren (1):
      merge-recursive: handle addition of submodule on our side of history

Eric Wong (1):
      rebase: use mboxrd format to avoid split errors

Jeff King (8):
      submodule-config: verify submodule names as paths
      is_ntfs_dotgit: use a size_t for traversing string
      is_hfs_dotgit: match other .git files
      skip_prefix: add case-insensitive variant
      verify_path: drop clever fallthrough
      verify_dotfile: mention case-insensitivity in comment
      update-index: stat updated files earlier
      verify_path: disallow symlinks in .gitmodules

Johannes Schindelin (2):
      is_ntfs_dotgit: match other .git files
      is_{hfs,ntfs}_dotgitmodules: add tests

Junio C Hamano (5):
      merge-base --fork-point doc: clarify the example and failure modes
      Prepare for 2.15.2
      Git 2.13.7
      Git 2.14.4
      Git 2.15.2

Michael Haggerty (2):
      t1409: check that `packed-refs` is not rewritten unnecessarily
      files-backend: don't rewrite the `packed-refs` file unnecessarily

Phillip Wood (2):
      config: avoid "write_in_full(fd, buf, len) != len" pattern
      sequencer: reschedule pick if index can't be locked

René Scharfe (1):
      apply: update line lengths for --inaccurate-eof

Stefan Beller (1):
      t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure

Todd Zullinger (4):
      t/lib-gpg: fix gpgconf stderr redirect to /dev/null
      rebase: fix stderr redirect in apply_autostash()
      notes: send "Automatic notes merge failed" messages to stderr
      completion: add '--copy' option to 'git branch'

Wei Shuyu (1):
      pull: pass -4/-6 option to 'git fetch'

brian m. carlson (2):
      Documentation: enable compat-mode for Asciidoctor
      Documentation: convert SubmittingPatches to AsciiDoc


Version v2.15.1; changes since v2.15.0:
---------------------------------------

Adam Dinwoodie (3):
      t5580: add Cygwin support
      rebase -i: fix comment typo
      doc/SubmittingPatches: correct subject guidance

Andrey Okoshkin (2):
      commit: check result of resolve_ref_unsafe
      diff: fix lstat() error handling in diff_populate_filespec()

Brandon Williams (1):
      wt-status: actually ignore submodules when requested

Carlos Martín Nieto (1):
      diff: --indent-heuristic is no longer experimental

Charles Bailey (2):
      t4201: make use of abbreviation in the test more robust
      grep: fix NO_LIBPCRE1_JIT to fully disable JIT

Dennis Kaarsemaker (1):
      credential-libsecret: unlock locked secrets

Jacob Keller (1):
      sequencer: pass absolute GIT_DIR to exec commands

Jakub Bereżański (2):
      t0302: check helper can handle empty credentials
      wincred: handle empty username/password correctly

Jean Carlo Machado (1):
      fix typos in 2.15.0 release notes

Jeff King (11):
      t4015: refactor --color-moved whitespace test
      t4015: check "negative" case for "-w --color-moved"
      t4015: test the output of "diff --color-moved -b"
      diff: fix whitespace-skipping with --color-moved
      diff: handle NULs in get_string_hash()
      test-ref-store: avoid passing NULL to printf
      remote: handle broken symrefs
      log: handle broken HEAD in decoration check
      worktree: handle broken symrefs in find_shared_symref()
      setup: avoid double slashes when looking for HEAD
      link_alt_odb_entries: make empty input a noop

Johannes Schindelin (5):
      status: do not get confused by submodules in excluded directories
      mingw: include the full version information in the resources
      mingw: add experimental feature to redirect standard handles
      mingw: optionally redirect stderr/stdout via the same handle
      mingw: document the standard handle redirection

Junio C Hamano (9):
      t5601: rm the target file of cp that could still be executing
      check-ref-format --branch: do not expand @{...} outside repository
      check-ref-format --branch: strip refs/heads/ using skip_prefix
      check-ref-format doc: --branch validates and expands <branch>
      column: do not include pager.c
      Start preparation for 2.15.1
      Almost ready for 2.15.1
      A bit more fixes for 2.15.1
      Git 2.15.1

Kaartic Sivaraam (1):
      mailmap: use Kaartic Sivaraam's new address

Kevin Daudt (1):
      column: show auto columns when pager is active

Martin Ågren (7):
      grep: take the read-lock when adding a submodule
      bisect: change calling-convention of `find_bisection()`
      bisect: fix memory leak in `find_bisection()`
      bisect: fix off-by-one error in `best_bisection_sorted()`
      bisect: fix memory leak when returning best element
      builtin/merge-base: free commit lists
      reduce_heads: fix memory leaks

René Scharfe (6):
      sequencer: factor out rewrite_file()
      sequencer: use O_TRUNC to truncate files
      imap-send: handle NULL return of next_arg()
      imap-send: handle missing response codes gracefully
      apply: avoid out-of-bounds access in fuzzy_matchlines()
      config: flip return value of write_section()

SZEDER Gábor (2):
      travis-ci: fix running P4 and Git LFS tests in Linux build jobs
      travis-ci: don't build Git for the static analysis job

Simon Ruderich (2):
      sequencer.c: check return value of close() in rewrite_file()
      wrapper.c: consistently quote filenames in error messages

Stefan Beller (3):
      xdiff-interface: export comparing and hashing strings
      diff.c: get rid of duplicate implementation
      config: document blame configuration

Thomas Braun (1):
      completion: add remaining flags to checkout

Todd Zullinger (3):
      Replace Free Software Foundation address in license notices
      Replace Free Software Foundation address in license notices
      RelNotes: minor typo fixes in 2.15.1 draft


Version v2.15.0; changes since v2.15.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (3245t)

Andre Hinrichs (1):
      l10n: de.po: fix typos

Andrey Okoshkin (1):
      path.c: use xmalloc() in add_to_trie()

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Christopher Díaz (3):
      l10n: es.po: initial Spanish version git 2.14.0
      l10n: es.po: spanish added to TEAMS
      l10n: es.po: Update translation v2.15.0 round 1

Christopher Díaz Riveros (1):
      l10n: es.po: v2.15.0 round 2

Dimitriy Ryazantcev (2):
      l10n: ru.po: update Russian translation
      l10n: ru.po: update Russian translation

Jean-Noel Avila (1):
      l10n: fr.po fix some mistakes

Jean-Noël Avila (1):
      l10n: fr.po: v2.15.0 round 2

Jiang Xin (3):
      l10n: git.pot: v2.15.0 round 1 (68 new, 36 removed)
      l10n: git.pot: v2.15.0 round 2 (2 new, 2 removed)
      l10n: zh_CN: for git v2.15.0 l10n round 2

Jordi Mas (2):
      l10n: Update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (3):
      Git 2.14.3
      Hopefully final batch before 2.15
      Git 2.15

Michael Haggerty (2):
      t1404: add a bunch of tests of D/F conflicts
      files_transaction_prepare(): fix handling of ref lock failure

Nathan Payre (1):
      config doc: clarify "git config --path" example

Nicolas Cornu (1):
      l10n: fr.po change translation of "First, rewinding"

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (3245t0f0u)
      l10n: sv.po: Update Swedish translation (3245t0f0u)

Ralf Thielow (1):
      l10n: de.po: translate 70 new messages

Ray Chen (1):
      l10n: zh_CN: review for git v2.15.0 l10n round 2

SZEDER Gábor (1):
      rev-list-options.txt: use correct directional reference

Sebastian Schuberth (1):
      docs: fix formatting of rev-parse's --show-superproject-working-tree

Trần Ngọc Quân (2):
      l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0
      l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0 round 2


Version v2.15.0-rc2; changes since v2.15.0-rc1:
-----------------------------------------------

David Glasser (1):
      doc: list filter-branch subdirectory-filter first

Jeff King (5):
      diff: fix infinite loop with --color-moved --ignore-space-change
      Revert "color: make "always" the same as "auto" in config"
      Revert "t6006: drop "always" color config tests"
      Revert "color: check color.ui in git_default_config()"
      tag: respect color.ui config

Junio C Hamano (7):
      checkout doc: clarify command line args for "checkout paths" mode
      Crawling towards -rc2
      fetch doc: src side of refspec could be full SHA-1
      Preparing for rc2 continues
      branch doc: sprinkle a few commas for readability
      Prepare for 2.14.3
      Git 2.15-rc2

Ralf Thielow (2):
      sequencer.c: fix and unify error messages in rearrange_squash()
      sequencer.c: unify an error message

W. Trevor King (1):
      Documentation/merge-options.txt: describe -S/--gpg-sign for 'pull'


Version v2.15.0-rc1; changes since v2.15.0-rc0:
-----------------------------------------------

Derrick Stolee (1):
      cleanup: fix possible overflow errors in binary search

Jean-Noël Avila (1):
      i18n: add a missing space in message

Jeff King (19):
      test-terminal: set TERM=vt100
      t4015: prefer --color to -c color.diff=always
      t3701: use test-terminal to collect color output
      t7508: use test_terminal for color output
      t7502: use diff.noprefix for --verbose test
      t6006: drop "always" color config tests
      t3203: drop "always" color test
      t3205: use --color instead of color.branch=always
      provide --color option for all ref-filter users
      color: make "always" the same as "auto" in config
      t4015: use --color with --color-moved
      t7301: use test_terminal to check color
      path.c: fix uninitialized memory access
      sha1_loose_object_info: handle errors from unpack_sha1_rest
      t3308: create a real ref directory/file conflict
      refs_resolve_ref_unsafe: handle d/f conflicts for writes
      write_entry: fix leak when retrying delayed filter
      write_entry: avoid reading blobs in CE_RETRY case
      write_entry: untangle symlink and regular-file cases

Johannes Sixt (1):
      sub-process: use child_process.args instead of child_process.argv

Jonathan Nieder (2):
      technical doc: add a design doc for hash function transition
      strbuf doc: reuse after strbuf_release is fine

Jonathan Tan (1):
      oidmap: map with OID as key

Junio C Hamano (2):
      Prepare for -rc1
      Git 2.15-rc1

Kaartic Sivaraam (2):
      branch: change the error messages to be more meaningful
      setup: update error message to be more meaningful

Lars Schneider (2):
      entry.c: update cache entry only for existing files
      entry.c: check if file exists after checkout

Martin Ågren (1):
      builtin/: add UNLEAKs

Randall S. Becker (1):
      poll.c: always set revents, even if to zero

René Scharfe (3):
      test-stringlist: avoid buffer underrun when sorting nothing
      fsck: handle NULL return of lookup_blob() and lookup_tree()
      .mailmap: normalize name for René Scharfe

Stefan Beller (2):
      branch: reset instead of release a strbuf
      tests: fix diff order arguments in test_cmp

Taylor Blau (8):
      pretty.c: delimit "%(trailers)" arguments with ","
      t4205: unfold across multiple lines
      doc: 'trailers' is the preferred way to format trailers
      doc: use "`<literal>`"-style quoting for literal strings
      t6300: refactor %(trailers) tests
      ref-filter.c: use trailer_opts to format trailers
      ref-filter.c: parse trailers arguments with %(contents) atom
      ref-filter.c: pass empty-string as NULL to atom parsers

Thomas Braun (1):
      completion: add --broken and --dirty to describe

Thomas Gummerer (1):
      http-push: fix construction of hex value from path

Todd Zullinger (1):
      api-argv-array.txt: remove broken link to string-list API


Version v2.15.0-rc0; changes since v2.14.6:
-------------------------------------------

Brandon Casey (7):
      t1502: demonstrate rev-parse --parseopt option mis-parsing
      rev-parse parseopt: do not search help text for flag chars
      rev-parse parseopt: interpret any whitespace as start of help text
      git-rebase: don't ignore unexpected command line arguments
      t0040,t1502: Demonstrate parse_options bugs
      parse-options: write blank line to correct output stream
      parse-options: only insert newline in help text if needed

Brandon Williams (27):
      repo_read_index: don't discard the index
      repository: have the_repository use the_index
      cache.h: add GITMODULES_FILE macro
      config: add config_from_gitmodules
      submodule: remove submodule.fetchjobs from submodule-config parsing
      submodule: remove fetch.recursesubmodules from submodule-config parsing
      submodule: check for unstaged .gitmodules outside of config parsing
      submodule: check for unmerged .gitmodules outside of config parsing
      submodule: merge repo_read_gitmodules and gitmodules_config
      grep: recurse in-process using 'struct repository'
      t7411: check configuration parsing errors
      submodule: don't use submodule_from_name
      add, reset: ensure submodules can be added or reset
      submodule--helper: don't overlay config in remote_submodule_branch
      submodule--helper: don't overlay config in update-clone
      fetch: don't overlay config with submodule-config
      submodule: don't rely on overlayed config when setting diffopts
      unpack-trees: don't respect submodule.update
      submodule: remove submodule_config callback routine
      diff: stop allowing diff to have submodules configured in .git/config
      submodule-config: remove support for overlaying repository config
      submodule-config: move submodule-config functions to submodule-config.c
      submodule-config: lazy-load a repository's .gitmodules file
      unpack-trees: improve loading of .gitmodules
      submodule: remove gitmodules_config
      clang-format: outline the git project's coding style
      Makefile: add style build rule

Eric Blake (1):
      git-contacts: also recognise "Reported-by:"

Han-Wen Nienhuys (4):
      submodule.c: describe submodule_to_gitdir() in a new comment
      real_path: clarify return value ownership
      read_gitfile_gently: clarify return value ownership.
      string-list.h: move documentation from Documentation/api/ into header

Heiko Voigt (1):
      add test for bug in git-mv for recursive submodules

Ian Campbell (4):
      filter-branch: reset $GIT_* before cleaning up
      filter-branch: preserve and restore $GIT_AUTHOR_* and $GIT_COMMITTER_*
      filter-branch: stash away ref map in a branch
      filter-branch: use hash-object instead of mktag

Jameson Miller (1):
      Improve performance of git status --ignored

Jeff Hostetler (1):
      hashmap: add API to disable item counting when threaded

Jeff King (53):
      strbuf: use designated initializers in STRBUF_INIT
      trailer: put process_trailers() options into a struct
      interpret-trailers: add an option to show only the trailers
      interpret-trailers: add an option to show only existing trailers
      interpret-trailers: add an option to unfold values
      interpret-trailers: add --parse convenience option
      pretty: move trailer formatting to trailer.c
      t4205: refactor %(trailers) tests
      pretty: support normalization options for %(trailers)
      write_index_as_tree: cleanup tempfile on error
      setup_temporary_shallow: avoid using inactive tempfile
      setup_temporary_shallow: move tempfile struct into function
      verify_signed_buffer: prefer close_tempfile() to close()
      always check return value of close_tempfile
      tempfile: do not delete tempfile on failed close
      lockfile: do not rollback lock on failed close
      tempfile: prefer is_tempfile_active to bare access
      tempfile: handle NULL tempfile pointers gracefully
      tempfile: replace die("BUG") with BUG()
      tempfile: factor out activation
      tempfile: factor out deactivation
      tempfile: robustify cleanup handler
      tempfile: release deactivated strbufs instead of resetting
      tempfile: use list.h for linked list
      tempfile: remove deactivated list entries
      tempfile: auto-allocate tempfiles on heap
      lockfile: update lifetime requirements in documentation
      ref_lock: stop leaking lock_files
      stop leaking lock structs in some simple cases
      test-lib: --valgrind should not override --verbose-log
      test-lib: set LSAN_OPTIONS to abort by default
      add: free leaked pathspec after add_files_to_cache()
      update-index: fix cache entry leak in add_one_file()
      config: plug user_config leak
      reset: make tree counting less confusing
      reset: free allocated tree buffers
      repository: free fields before overwriting them
      set_git_dir: handle feeding gitdir to itself
      add UNLEAK annotation for reducing leak false positives
      shortlog: skip format/parse roundtrip for internal traversal
      prefix_ref_iterator: break when we leave the prefix
      revision: replace "struct cmdline_pathspec" with argv_array
      test-line-buffer: simplify command parsing
      curl_trace(): eliminate switch fallthrough
      consistently use "fallthrough" comments in switches
      files-backend: prefer "0" for write_in_full() error check
      notes-merge: drop dead zero-write code
      prefer "!=" when checking read_in_full() result
      avoid looking at errno for short read_in_full() returns
      distinguish error versus short read from read_in_full()
      worktree: use xsize_t to access file size
      worktree: check the result of read_in_full()
      git: add --no-optional-locks option

Job Snijders (1):
      gitweb: add 'raw' blob_plain link in history overview

Joel Teichroeb (3):
      stash: add a test for stash create with no files
      stash: add a test for when apply fails during stash branch
      stash: add a test for stashing in a detached state

Johannes Schindelin (12):
      t3415: verify that an empty instructionFormat is handled as before
      rebase -i: generate the script via rebase--helper
      rebase -i: remove useless indentation
      rebase -i: do not invent onelines when expanding/collapsing SHA-1s
      rebase -i: also expand/collapse the SHA-1s via the rebase--helper
      t3404: relax rebase.missingCommitsCheck tests
      rebase -i: check for missing commits in the rebase--helper
      rebase -i: skip unnecessary picks using the rebase--helper
      t3415: test fixup with wrapped oneline
      rebase -i: rearrange fixup/squash lines using the rebase--helper
      Win32: simplify loading of DLL functions
      clang-format: adjust line break penalties

Jonathan Nieder (2):
      pack: make packed_git_mru global a value instead of a pointer
      pathspec doc: parse_pathspec does not maintain references to args

Jonathan Tan (31):
      sha1_file: set whence in storage-specific info fn
      sha1_file: remove read_packed_sha1()
      diff: avoid redundantly clearing a flag
      diff: respect MIN_BLOCK_LENGTH for last block
      diff: define block by number of alphanumeric chars
      pack: move pack name-related functions
      pack: move static state variables
      pack: move pack_report()
      pack: move open_pack_index(), parse_pack_index()
      pack: move release_pack_memory()
      pack: move pack-closing functions
      pack: move use_pack()
      pack: move unuse_pack()
      pack: move add_packed_git()
      pack: move install_packed_git()
      pack: move {,re}prepare_packed_git and approximate_object_count
      pack: move unpack_object_header_buffer()
      pack: move get_size_from_delta()
      pack: move unpack_object_header()
      pack: move clear_delta_base_cache(), packed_object_info(), unpack_entry()
      pack: move nth_packed_object_{sha1,oid}
      pack: move check_pack_index_ptr(), nth_packed_object_offset()
      pack: move find_pack_entry_one(), is_pack_valid()
      pack: move find_sha1_pack()
      pack: move find_pack_entry() and make it global
      pack: move has_sha1_pack()
      pack: move has_pack_index()
      pack: move for_each_packed_object()
      Remove inadvertently added outgoing/packfile.h
      Add t/helper/test-write-cache to .gitignore
      git-compat-util: make UNLEAK less error-prone

Junio C Hamano (25):
      t1408: add a test of stale packed refs covered by loose refs
      clean.c: use designated initializer
      Start post 2.14 cycle
      The first batch of topics after the 2.14 cycle
      diff: retire sane_truncate_fn
      progress: simplify "delayed" progress API
      The second batch post 2.14
      t4200: give us a clean slate after "rerere gc" tests
      t4200: make "rerere gc" test more robust
      t4200: gather "rerere gc" together
      t4200: parameterize "rerere gc" custom expiry test
      rerere: represent time duration in timestamp_t internally
      rerere: allow approxidate in gc.rerereResolved/gc.rerereUnresolved
      The third batch post 2.14
      The fourth batch post 2.14
      The fifth batch post 2.14
      The sixth batch post 2.14
      The seventh batch post 2.14
      The eighth batch for 2.15
      branch: fix "copy" to never touch HEAD
      The ninth batch for 2.15
      The tenth batch for 2.15
      The eleventh batch for 2.15
      The twelfth batch for 2.15
      Git 2.15-rc0

Kaartic Sivaraam (10):
      hook: cleanup script
      hook: name the positional variables
      hook: add sign-off using "interpret-trailers"
      hook: add a simple first example
      hook: use correct logical variable
      t3200: cleanup cruft of a test
      builtin/branch: stop supporting the "--set-upstream" option
      branch: quote branch/ref names to improve readability
      help: change a message to be more precise
      commit-template: change a message to be more intuitive

Kevin Willford (9):
      format-patch: have progress option while generating patches
      rebase: turn on progress option by default for format-patch
      commit: skip discarding the index if there is no pre-commit hook
      perf: add test for writing the index
      read-cache: fix memory leak in do_write_index
      read-cache: avoid allocating every ondisk entry when writing
      merge-recursive: fix memory leak
      merge-recursive: remove return value from get_files_dirs
      merge-recursive: change current file dir string_lists to hashmap

Lars Schneider (1):
      convert: display progress for filtered objects that have been delayed

Martin Koegler (2):
      diff-delta: fix encoding size that would not fit in "unsigned int"
      diff-delta: do not allow delta offset truncation

Martin Ågren (20):
      Doc/git-{push,send-pack}: correct --sign= to --signed=
      t5334: document that git push --signed=1 does not work
      config: introduce git_parse_maybe_bool_text
      config: make git_{config,parse}_maybe_bool equivalent
      treewide: deprecate git_config_maybe_bool, use git_parse_maybe_bool
      parse_decoration_style: drop unused argument `var`
      doc/interpret-trailers: fix "the this" typo
      Documentation/user-manual: update outdated example output
      treewide: correct several "up-to-date" to "up to date"
      config: remove git_config_maybe_bool
      refs/files-backend: add longer-scoped copy of string to list
      refs/files-backend: fix memory leak in lock_ref_for_update
      refs/files-backend: correct return value in lock_ref_for_update
      refs/files-backend: add `refname`, not "HEAD", to list
      builtin/commit: fix memory leak in `prepare_index()`
      commit: fix memory leak in `reduce_heads()`
      leak_pending: use `object_array_clear()`, not `free()`
      object_array: use `object_array_clear()`, not `free()`
      object_array: add and use `object_array_pop()`
      pack-bitmap[-write]: use `object_array_clear()`, don't leak

Max Kirillov (1):
      describe: teach --match to handle branches and remotes

Michael Haggerty (76):
      add_packed_ref(): teach function to overwrite existing refs
      packed_ref_store: new struct
      packed_ref_store: move `packed_refs_path` here
      packed_ref_store: move `packed_refs_lock` member here
      clear_packed_ref_cache(): take a `packed_ref_store *` parameter
      validate_packed_ref_cache(): take a `packed_ref_store *` parameter
      get_packed_ref_cache(): take a `packed_ref_store *` parameter
      get_packed_refs(): take a `packed_ref_store *` parameter
      add_packed_ref(): take a `packed_ref_store *` parameter
      lock_packed_refs(): take a `packed_ref_store *` parameter
      commit_packed_refs(): take a `packed_ref_store *` parameter
      rollback_packed_refs(): take a `packed_ref_store *` parameter
      get_packed_ref(): take a `packed_ref_store *` parameter
      repack_without_refs(): take a `packed_ref_store *` parameter
      packed_peel_ref(): new function, extracted from `files_peel_ref()`
      packed_ref_store: support iteration
      packed_read_raw_ref(): new function, replacing `resolve_packed_ref()`
      packed-backend: new module for handling packed references
      packed_ref_store: make class into a subclass of `ref_store`
      commit_packed_refs(): report errors rather than dying
      commit_packed_refs(): use a staging file separate from the lockfile
      packed_refs_lock(): function renamed from lock_packed_refs()
      packed_refs_lock(): report errors via a `struct strbuf *err`
      packed_refs_unlock(), packed_refs_is_locked(): new functions
      clear_packed_ref_cache(): don't protest if the lock is held
      commit_packed_refs(): remove call to `packed_refs_unlock()`
      repack_without_refs(): don't lock or unlock the packed refs
      t3210: add some tests of bogus packed-refs file contents
      read_packed_refs(): die if `packed-refs` contains bogus data
      packed_ref_store: handle a packed-refs file that is a symlink
      files-backend: cheapen refname_available check when locking refs
      refs: retry acquiring reference locks for 100ms
      notes: make GET_NIBBLE macro more robust
      load_subtree(): remove unnecessary conditional
      load_subtree(): reduce the scope of some local variables
      load_subtree(): fix incorrect comment
      load_subtree(): separate logic for internal vs. terminal entries
      load_subtree(): check earlier whether an internal node is a tree entry
      load_subtree(): only consider blobs to be potential notes
      get_oid_hex_segment(): return 0 on success
      load_subtree(): combine some common code
      get_oid_hex_segment(): don't pad the rest of `oid`
      hex_to_bytes(): simpler replacement for `get_oid_hex_segment()`
      load_subtree(): declare some variables to be `size_t`
      load_subtree(): check that `prefix_len` is in the expected range
      packed-backend: don't adjust the reference count on lock/unlock
      struct ref_transaction: add a place for backends to store data
      packed_ref_store: implement reference transactions
      packed_delete_refs(): implement method
      files_pack_refs(): use a reference transaction to write packed refs
      prune_refs(): also free the linked list
      files_initial_transaction_commit(): use a transaction for packed refs
      t1404: demonstrate two problems with reference transactions
      files_ref_store: use a transaction to update packed refs
      packed-backend: rip out some now-unused code
      files_transaction_finish(): delete reflogs before references
      ref_iterator: keep track of whether the iterator output is ordered
      packed_ref_cache: add a backlink to the associated `packed_ref_store`
      die_unterminated_line(), die_invalid_line(): new functions
      read_packed_refs(): use mmap to read the `packed-refs` file
      read_packed_refs(): only check for a header at the top of the file
      read_packed_refs(): make parsing of the header line more robust
      read_packed_refs(): read references with minimal copying
      packed_ref_cache: remember the file-wide peeling state
      mmapped_ref_iterator: add iterator over a packed-refs file
      mmapped_ref_iterator_advance(): no peeled value for broken refs
      packed-backend.c: reorder some definitions
      packed_ref_cache: keep the `packed-refs` file mmapped if possible
      read_packed_refs(): ensure that references are ordered when read
      packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
      packed_read_raw_ref(): read the reference from the mmapped buffer
      ref_store: implement `refs_peel_ref()` generically
      packed_ref_store: get rid of the `ref_cache` entirely
      ref_cache: remove support for storing peeled values
      mmapped_ref_iterator: inline into `packed_ref_iterator`
      packed-backend.c: rename a bunch of things and update comments

Michael J Gruber (4):
      t7004: move limited stack prereq to test-lib
      t6120: test name-rev --all and --stdin
      t6120: clean up state after breaking repo
      t6120: test describe and name-rev with deep repos

Nguyễn Thái Ngọc Duy (16):
      revision.h: new flag in struct rev_info wrt. worktree-related refs
      refs.c: use is_dir_sep() in resolve_gitlink_ref()
      revision.c: refactor add_index_objects_to_pending()
      revision.c: --indexed-objects add objects from all worktrees
      refs.c: refactor get_submodule_ref_store(), share common free block
      refs: move submodule slash stripping code to get_submodule_ref_store
      refs: add refs_head_ref()
      revision.c: use refs_for_each*() instead of for_each_*_submodule()
      refs.c: move for_each_remote_ref_submodule() to submodule.c
      refs: remove dead for_each_*_submodule()
      revision.c: --all adds HEAD from all worktrees
      files-backend: make reflog iterator go through per-worktree reflog
      revision.c: --reflog add HEAD reflog from all worktrees
      rev-list: expose and document --single-worktree
      refs.c: remove fallback-to-main-store code get_submodule_ref_store()
      refs.c: reindent get_submodule_ref_store()

Nicolas Morey-Chaisemartin (7):
      stash: clean untracked files before reset
      pull: fix cli and config option parsing order
      pull: honor submodule.recurse config option
      imap-send: return with error if curl failed
      imap-send: add wrapper to get server credentials if needed
      imap_send: setup_curl: retreive credentials if not set in config file
      imap-send: use curl by default when possible

Paolo Bonzini (4):
      trailers: export action enums and corresponding lookup functions
      trailers: introduce struct new_trailer_item
      interpret-trailers: add options for actions
      interpret-trailers: fix documentation typo

Patryk Obara (10):
      sha1_file: fix definition of null_sha1
      commit: replace the raw buffer with strbuf in read_graft_line
      commit: allocate array using object_id size
      commit: rewrite read_graft_line
      builtin/hash-object: convert to struct object_id
      read-cache: convert to struct object_id
      sha1_file: convert index_path to struct object_id
      sha1_file: convert index_fd to struct object_id
      sha1_file: convert hash_sha1_file_literally to struct object_id
      sha1_file: convert index_stream to struct object_id

Raman Gupta (1):
      contrib/rerere-train: optionally overwrite existing resolutions

Ramsay Jones (3):
      test-lib: don't use ulimit in test prerequisites on cygwin
      test-lib: use more compact expression in PIPE prerequisite
      t9010-*.sh: skip all tests if the PIPE prereq is missing

René Scharfe (49):
      tree-diff: don't access hash of NULL object_id pointer
      notes: don't access hash of NULL object_id pointer
      receive-pack: don't access hash of NULL object_id pointer
      tree-walk: convert fill_tree_descriptor() to object_id
      apply: check date of potential epoch timestamps first
      apply: remove epoch date from regex
      am: release strbufs after use in detect_patch_format()
      am: release strbuf on error return in hg_patch_to_mail()
      am: release strbuf after use in safe_to_abort()
      check-ref-format: release strbuf after use in check_ref_format_branch()
      clean: release strbuf after use in remove_dirs()
      clone: release strbuf after use in remove_junk()
      commit: release strbuf on error return in commit_tree_extended()
      connect: release strbuf on error return in git_connect()
      convert: release strbuf on error return in filter_buffer_or_fd()
      diff: release strbuf after use in diff_summary()
      diff: release strbuf after use in show_rename_copy()
      diff: release strbuf after use in show_stats()
      help: release strbuf on error return in exec_man_konqueror()
      help: release strbuf on error return in exec_man_man()
      help: release strbuf on error return in exec_woman_emacs()
      mailinfo: release strbuf after use in handle_from()
      mailinfo: release strbuf on error return in handle_boundary()
      merge: release strbuf after use in save_state()
      merge: release strbuf after use in write_merge_heads()
      notes: release strbuf after use in notes_copy_from_stdin()
      refs: release strbuf on error return in write_pseudoref()
      remote: release strbuf after use in read_remote_branches()
      remote: release strbuf after use in migrate_file()
      remote: release strbuf after use in set_url()
      send-pack: release strbuf on error return in send_pack()
      sha1_file: release strbuf on error return in index_path()
      shortlog: release strbuf after use in insert_one_record()
      sequencer: release strbuf after use in save_head()
      transport-helper: release strbuf after use in process_connect_service()
      userdiff: release strbuf after use in userdiff_get_textconv()
      utf8: release strbuf on error return in strbuf_utf8_replace()
      vcs-svn: release strbuf after use in end_revision()
      wt-status: release strbuf after use in read_rebase_todolist()
      wt-status: release strbuf after use in wt_longstatus_print_tracking()
      refs: make sha1 output parameter of refs_resolve_ref_unsafe() optional
      refs: pass NULL to refs_resolve_ref_unsafe() if hash is not needed
      refs: pass NULL to resolve_ref_unsafe() if hash is not needed
      refs: pass NULL to refs_resolve_refdup() if hash is not needed
      refs: pass NULL to resolve_refdup() if hash is not needed
      path: use strbuf_add_real_path()
      use strbuf_addstr() for adding strings to strbufs
      graph: use strbuf_addchars() to add spaces
      repository: use FREE_AND_NULL

Sahil Dua (2):
      config: create a function to format section headers
      branch: add a --copy (-c) option to go with --move (-m)

Stefan Beller (46):
      diff.c: readability fix
      diff.c: move line ending check into emit_hunk_header
      diff.c: factor out diff_flush_patch_all_file_pairs
      diff.c: introduce emit_diff_symbol
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_FRAGINFO
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF
      diff.c: migrate emit_line_checked to use emit_diff_symbol
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_WORDS[_PORCELAIN]
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_INCOMPLETE
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_FILEPAIR_{PLUS, MINUS}
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_HEADER
      diff.c: emit_diff_symbol learns about DIFF_SYMBOL_BINARY_FILES
      diff.c: emit_diff_symbol learns DIFF_SYMBOL_REWRITE_DIFF
      submodule.c: migrate diff output to use emit_diff_symbol
      diff.c: convert emit_binary_diff_body to use emit_diff_symbol
      diff.c: convert show_stats to use emit_diff_symbol
      diff.c: convert word diffing to use emit_diff_symbol
      diff.c: emit_diff_symbol learns about DIFF_SYMBOL_STAT_SEP
      diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY
      diff.c: buffer all output if asked to
      diff.c: color moved lines differently
      diff.c: color moved lines differently, plain mode
      diff.c: add dimming to moved line detection
      diff: document the new --color-moved setting
      attr.c: drop hashmap_cmp_fn cast
      builtin/difftool.c: drop hashmap_cmp_fn cast
      builtin/describe: drop hashmap_cmp_fn cast
      config.c: drop hashmap_cmp_fn cast
      convert/sub-process: drop cast to hashmap_cmp_fn
      patch-ids.c: drop hashmap_cmp_fn cast
      remote.c: drop hashmap_cmp_fn cast
      submodule-config.c: drop hashmap_cmp_fn cast
      name-hash.c: drop hashmap_cmp_fn cast
      t/helper/test-hashmap: use custom data instead of duplicate cmp functions
      commit: convert lookup_commit_graft to struct object_id
      tag: convert gpg_verify_tag to use struct object_id
      t1200: remove t1200-tutorial.sh
      builtin/merge: honor commit-msg hook for merges
      push, fetch: error out for submodule entries not pointing to commits
      replace-objects: evaluate replacement refs without using the object store
      Documentation/githooks: mention merge in commit-msg hook
      Documentation/config: clarify the meaning of submodule.<name>.update
      t7406: submodule.<name>.update command must not be run from .gitmodules
      diff: correct newline in summary for renamed files
      submodule: correct error message for missing commits

Stephan Beyer (1):
      clang-format: add a comment about the meaning/status of the

Takashi Iwai (2):
      sha1dc: build git plumbing code more explicitly
      sha1dc: allow building with the external sha1dc library

Thomas Gummerer (1):
      read-cache: fix index corruption with index v4

Tom G. Christensen (2):
      http: fix handling of missing CURLPROTO_*
      http: use a feature check to enable GSSAPI delegation control

William Duclot (1):
      rebase: make resolve message clearer for inexperienced users

brian m. carlson (12):
      builtin/fsck: convert remaining caller of get_sha1 to object_id
      builtin/merge-tree: convert remaining caller of get_sha1 to object_id
      submodule: convert submodule config lookup to use object_id
      remote: convert struct push_cas to struct object_id
      sequencer: convert to struct object_id
      builtin/update_ref: convert to struct object_id
      bisect: convert bisect_checkout to struct object_id
      builtin/unpack-file: convert to struct object_id
      Convert remaining callers of get_sha1 to get_oid.
      sha1_name: convert get_sha1* to get_oid*
      sha1_name: convert GET_SHA1* flags to GET_OID*
      sha1_name: convert uses of 40 to GIT_SHA1_HEXSZ

Ævar Arnfjörð Bjarmason (1):
      branch: add test for -m renaming multiple config sections

Øystein Walle (1):
      rev-parse: rev-parse: add --is-shallow-repository

Łukasz Gryglicki (1):
      merge: add a --signoff flag


Version v2.14.6; changes since v2.14.5:
---------------------------------------

Garima Singh (2):
      test-path-utils: offer to run a protectNTFS/protectHFS benchmark
      tests: add a helper to stress test argument quoting

Jeff King (7):
      t9300: drop some useless uses of cat
      t9300: create marks files for double-import-marks test
      fast-import: tighten parsing of boolean command line options
      fast-import: stop creating leading directories for import-marks
      fast-import: delay creating leading directories for export-marks
      fast-import: disallow "feature export-marks" by default
      fast-import: disallow "feature import-marks" by default

Johannes Schindelin (19):
      clone --recurse-submodules: prevent name squatting on Windows
      mingw: disallow backslash characters in tree objects' file names
      path.c: document the purpose of `is_ntfs_dotgit()`
      is_ntfs_dotgit(): only verify the leading segment
      path: safeguard `.git` against NTFS Alternate Streams Accesses
      is_ntfs_dotgit(): speed it up
      mingw: fix quoting of arguments
      path: also guard `.gitmodules` against NTFS Alternate Data Streams
      protect_ntfs: turn on NTFS protection by default
      Disallow dubiously-nested submodule git directories
      quote-stress-test: accept arguments to test via the command-line
      t6130/t9350: prepare for stringent Win32 path validation
      quote-stress-test: allow skipping some trials
      unpack-trees: let merged_entry() pass through do_add_entry()'s errors
      mingw: refuse to access paths with illegal characters
      quote-stress-test: offer to test quoting arguments for MSYS2 sh
      mingw: refuse to access paths with trailing spaces or periods
      mingw: handle `subst`-ed "DOS drives"
      Git 2.14.6


Version v2.14.5; changes since v2.14.4:
---------------------------------------

Jeff King (3):
      submodule--helper: use "--" to signal end of clone options
      submodule-config: ban submodule urls that start with dash
      submodule-config: ban submodule paths that start with a dash

Junio C Hamano (1):
      Git 2.14.5


Version v2.14.4; changes since v2.14.3:
---------------------------------------

Jeff King (8):
      submodule-config: verify submodule names as paths
      is_ntfs_dotgit: use a size_t for traversing string
      is_hfs_dotgit: match other .git files
      skip_prefix: add case-insensitive variant
      verify_path: drop clever fallthrough
      verify_dotfile: mention case-insensitivity in comment
      update-index: stat updated files earlier
      verify_path: disallow symlinks in .gitmodules

Johannes Schindelin (2):
      is_ntfs_dotgit: match other .git files
      is_{hfs,ntfs}_dotgitmodules: add tests

Junio C Hamano (2):
      Git 2.13.7
      Git 2.14.4


Version v2.14.3; changes since v2.14.2:
---------------------------------------

Adam Dinwoodie (1):
      doc: correct command formatting

Ann T Ropea (1):
      request-pull: capitalise "Git" to make it a proper noun

Ben Boeckel (1):
      Documentation: mention that `eol` can change the dirty status of paths

Christian Couder (1):
      sha1-lookup: remove sha1_entry_pos() from header file

Daniel Watkins (1):
      diff-highlight: add clean target to Makefile

Eric Rannaud (1):
      fast-import: checkpoint: dump branches/tags/marks even if object_count==0

Evan Zacks (1):
      doc: fix minor typos (extra/duplicated words)

Han-Wen Nienhuys (1):
      submodule.h: typofix

Ilya Kantor (1):
      userdiff: fix HTML hunk header regexp

Jeff King (36):
      sha1_file: drop experimental GIT_USE_LOOKUP search
      config: use a static lock_file struct
      rev-parse: don't trim bisect refnames
      system_path: move RUNTIME_PREFIX to a sub-function
      git_extract_argv0_path: do nothing without RUNTIME_PREFIX
      config: avoid "write_in_full(fd, buf, len) < len" pattern
      get-tar-commit-id: check write_in_full() return against 0
      avoid "write_in_full(fd, buf, len) != len" pattern
      convert less-trivial versions of "write_in_full() != len"
      pkt-line: check write_in_full() errors against "< 0"
      notes-merge: use ssize_t for write_in_full() return value
      config: flip return value of store_write_*()
      read_pack_header: handle signed/unsigned comparison in read result
      read_info_alternates: read contents into strbuf
      read_info_alternates: warn on non-trivial errors
      cat-file: handle NULL object_context.path
      doc: put literal block delimiter around table
      validate_headref: NUL-terminate HEAD buffer
      validate_headref: use skip_prefix for symref parsing
      validate_headref: use get_oid_hex for detached HEADs
      test-terminal: set TERM=vt100
      t4015: prefer --color to -c color.diff=always
      t3701: use test-terminal to collect color output
      t7508: use test_terminal for color output
      t7502: use diff.noprefix for --verbose test
      t6006: drop "always" color config tests
      t3203: drop "always" color test
      t3205: use --color instead of color.branch=always
      provide --color option for all ref-filter users
      color: make "always" the same as "auto" in config
      path.c: fix uninitialized memory access
      sha1_loose_object_info: handle errors from unpack_sha1_rest
      Revert "color: make "always" the same as "auto" in config"
      Revert "t6006: drop "always" color config tests"
      Revert "color: check color.ui in git_default_config()"
      tag: respect color.ui config

Johannes Sixt (1):
      sub-process: use child_process.args instead of child_process.argv

Jonathan Nieder (1):
      strbuf doc: reuse after strbuf_release is fine

Jonathan Tan (1):
      fast-export: do not copy from modified file

Junio C Hamano (8):
      travis: dedent a few scripts that are indented overly deeply
      subprocess: loudly die when subprocess asks for an unsupported capability
      gc: call fscanf() with %<len>s, not %<len>c, when reading hostname
      merge-strategies: avoid implying that "-s theirs" exists
      checkout doc: clarify command line args for "checkout paths" mode
      fetch doc: src side of refspec could be full SHA-1
      Prepare for 2.14.3
      Git 2.14.3

Kaartic Sivaraam (2):
      t/README: fix typo and grammatically improve a sentence
      doc: camelCase the config variables to improve readability

Kevin Daudt (2):
      doc/for-each-ref: consistently use '=' to between argument names and values
      doc/for-each-ref: explicitly specify option names

Lars Schneider (3):
      travis-ci: move Travis CI code into dedicated scripts
      travis-ci: skip a branch build if equal tag is present
      travis-ci: fix "skip_branch_tip_with_tag()" string comparison

Manav Rathi (1):
      docs: improve discoverability of exclude pathspec

Martin Ågren (5):
      convert: always initialize attr_action in convert_attrs
      pack-objects: take lock before accessing `remaining`
      strbuf_setlen: don't write to strbuf_slopbuf
      ThreadSanitizer: add suppressions
      pkt-line: re-'static'-ify buffer in packet_write_fmt_1()

Matthieu Moy (2):
      send-email: fix garbage removal after address
      send-email: don't use Mail::Address, even if available

Max Kirillov (1):
      describe: fix matching to actually match all patterns

Michael Haggerty (1):
      for_each_string_list_item: avoid undefined behavior for empty list

Michael J Gruber (1):
      name-rev: change ULONG_MAX to TIME_MAX

Nguyễn Thái Ngọc Duy (1):
      branch: fix branch renaming not updating HEADs correctly

Ramsay Jones (4):
      git-compat-util.h: xsize_t() - avoid -Wsign-compare warnings
      commit-slab.h: avoid -Wsign-compare warnings
      cache.h: hex2chr() - avoid -Wsign-compare warnings
      ALLOC_GROW: avoid -Wsign-compare warnings

Randall S. Becker (1):
      poll.c: always set revents, even if to zero

René Scharfe (9):
      strbuf: clear errno before calling getdelim(3)
      archive: don't add empty directories to archives
      mailinfo: don't decode invalid =XY quoted-printable sequences
      coccinelle: remove parentheses that become unnecessary
      tag: avoid NULL pointer arithmetic
      run-command: use ALLOC_ARRAY
      test-stringlist: avoid buffer underrun when sorting nothing
      fsck: handle NULL return of lookup_blob() and lookup_tree()
      .mailmap: normalize name for René Scharfe

Ross Kabus (1):
      commit-tree: do not complete line in -F input

Stefan Beller (1):
      branch: reset instead of release a strbuf

Taylor Blau (1):
      ref-filter.c: pass empty-string as NULL to atom parsers

Thomas Braun (1):
      completion: add --broken and --dirty to describe

Thomas Gummerer (2):
      refs: strip out not allowed flags from ref_transaction_update
      http-push: fix construction of hex value from path

Torsten Bögershausen (1):
      test-lint: echo -e (or -E) is not portable


Version v2.14.2; changes since v2.14.1:
---------------------------------------

Andreas Heiduk (2):
      doc: add missing values "none" and "default" for diff.wsErrorHighlight
      doc: clarify "config --bool" behaviour with empty string

Anthony Sottile (1):
      git-grep: correct exit code with --quiet and -L

Brandon Williams (2):
      submodule--helper: teach push-check to handle HEAD
      clone: teach recursive clones to respect -q

Christian Couder (2):
      refs: use skip_prefix() in ref_is_hidden()
      sub-process: print the cmd when a capability is unsupported

Dimitrios Christidis (1):
      fmt-merge-msg: fix coding style

Heiko Voigt (1):
      t5526: fix some broken && chains

Hielke Christian Braun (1):
      gitweb: skip unreadable subdirectories

Jeff King (32):
      t1414: document some reflog-walk oddities
      revision: disallow reflog walking with revs->limited
      log: clarify comment about reflog cycles
      log: do not free parents when walking reflog
      get_revision_1(): replace do-while with an early return
      rev-list: check reflog_info before showing usage
      reflog-walk: stop using fake parents
      reflog-walk: apply --since/--until to reflog dates
      check return value of verify_ref_format()
      docs/for-each-ref: update pointer to color syntax
      t: use test_decode_color rather than literal ANSI codes
      ref-filter: simplify automatic color reset
      ref-filter: abstract ref format into its own struct
      ref-filter: move need_color_reset_at_eol into ref_format
      ref-filter: provide a function for parsing sort options
      ref-filter: make parse_ref_filter_atom a private function
      ref-filter: factor out the parsing of sorting atoms
      ref-filter: pass ref_format struct to atom parsers
      color: check color.ui in git_default_config()
      for-each-ref: load config earlier
      rev-list: pass diffopt->use_colors through to pretty-print
      pretty: respect color settings for %C placeholders
      ref-filter: consult want_color() before emitting colors
      t6018: flesh out empty input/output rev-list tests
      revision: add rev_input_given flag
      rev-list: don't show usage when we see empty ref patterns
      revision: do not fallback to default when rev_input_given is set
      hashcmp: use memcmp instead of open-coded loop
      doc: fix typo in sendemail.identity
      shell: drop git-cvsserver support by default
      archimport: use safe_pipe_capture for user input
      cvsimport: shell-quote variable used in backticks

Johannes Schindelin (2):
      run_processes_parallel: change confusing task_cb convention
      git-gui (MinGW): make use of MSys2's msgfmt

Jonathan Nieder (4):
      vcs-svn: remove more unused prototypes and declarations
      vcs-svn: remove custom mode constants
      vcs-svn: remove repo_delete wrapper function
      vcs-svn: move remaining repo_tree functions to fast_export.h

Jonathan Tan (7):
      fsck: remove redundant parse_tree() invocation
      object: remove "used" field from struct object
      fsck: cleanup unused variable
      Documentation: migrate sub-process docs to header
      sub-process: refactor handshake to common function
      tests: ensure fsck fails on corrupt packfiles
      Doc: clarify that pack-objects makes packs, plural

Junio C Hamano (11):
      http.c: http.sslcert and http.sslkey are both pathnames
      perl/Git.pm: typofix in a comment
      Prepare for 2.14.2
      RelNotes: further fixes for 2.14.2 from the master front
      cvsserver: move safe_pipe_capture() to the main package
      cvsserver: use safe_pipe_capture for `constant commands` as well
      Git 2.10.5
      Git 2.11.4
      Git 2.12.5
      Git 2.13.6
      Git 2.14.2

Kaartic Sivaraam (1):
      commit: check for empty message before the check for untouched template

Kevin Daudt (1):
      stash: prevent warning about null bytes in input

Lars Schneider (7):
      t0021: keep filter log files on comparison
      t0021: make debug log file name configurable
      t0021: write "OUT <size>" only on success
      convert: put the flags field before the flag itself for consistent style
      convert: move multiple file filter error handling to separate function
      convert: refactor capabilities negotiation
      convert: add "status=delayed" to filter process protocol

Martin Ågren (7):
      builtin.h: take over documentation from api-builtin.txt
      git.c: let builtins opt for handling `pager.foo` themselves
      git.c: provide setup_auto_pager()
      t7006: add tests for how git tag paginates
      tag: respect `pager.tag` in list-mode only
      tag: change default of `pager.tag` to "on"
      git.c: ignore pager.* when launching builtin as dashed external

Michael Forney (1):
      scripts: use "git foo" not "git-foo"

Michael J Gruber (6):
      Documentation: use proper wording for ref format strings
      Documentation/git-for-each-ref: clarify peeling of tags for --format
      Documentation/git-merge: explain --continue
      merge: clarify call chain
      merge: split write_merge_state in two
      merge: save merge state earlier

Philip Oakley (4):
      git-gui: remove duplicate entries from .gitconfig's gui.recentrepo
      git gui: cope with duplicates in _get_recentrepo
      git gui: de-dup selected repo from recentrepo history
      git gui: allow for a long recentrepo list

Phillip Wood (7):
      am: remember --rerere-autoupdate setting
      rebase: honor --rerere-autoupdate
      rebase -i: honor --rerere-autoupdate
      t3504: use test_commit
      cherry-pick/revert: remember --rerere-autoupdate
      cherry-pick/revert: reject --rerere-autoupdate when continuing
      am: fix signoff when other trailers are present

Ramsay Jones (2):
      credential-cache: interpret an ECONNRESET as an EOF
      builtin/add: add detail to a 'cannot chmod' error message

René Scharfe (23):
      bswap: convert to unsigned before shifting in get_be32
      bswap: convert get_be16, get_be32 and put_be32 to inline functions
      add MOVE_ARRAY
      use MOVE_ARRAY
      apply: use COPY_ARRAY and MOVE_ARRAY in update_image()
      ls-files: don't try to prune an empty index
      dir: support platforms that require aligned reads
      pack-objects: remove unnecessary NULL check
      t0001: skip test with restrictive permissions if getpwd(3) respects them
      test-path-utils: handle const parameter of basename and dirname
      t3700: fix broken test under !POSIXPERM
      t4062: use less than 256 repetitions in regex
      sha1_file: avoid comparison if no packed hash matches the first byte
      apply: remove prefix_length member from apply_state
      merge: use skip_prefix()
      win32: plug memory leak on realloc() failure in syslog()
      fsck: free buffers on error in fsck_obj()
      sha1_file: release delta_stack on error in unpack_entry()
      t1002: stop using sum(1)
      t5001: add tests for export-ignore attributes and exclude pathspecs
      archive: factor out helper functions for handling attributes
      archive: don't queue excluded directories
      commit: remove unused inline function single_parent()

Santiago Torres (1):
      t: lib-gpg: flush gpg agent on startup

Stefan Beller (3):
      t8008: rely on rev-parse'd HEAD instead of sha1 value
      sha1_file: make read_info_alternates static
      submodule.sh: remove unused variable

Torsten Bögershausen (2):
      convert: add SAFE_CRLF_KEEP_CRLF
      apply: file commited with CRLF should roundtrip diff and apply

Urs Thuermann (1):
      git svn fetch: Create correct commit timestamp when using --localtime

brian m. carlson (2):
      vcs-svn: remove unused prototypes
      vcs-svn: rename repo functions to "svn_repo"

joernchen (1):
      cvsserver: use safe_pipe_capture instead of backticks

Ævar Arnfjörð Bjarmason (1):
      tests: don't give unportable ">" to "test" built-in, use -gt


Version v2.14.1; changes since v2.14.0:
---------------------------------------

Jeff King (5):
      t/lib-proto-disable: restore protocol.allow after config tests
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (9):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6
      Git 2.8.6
      Git 2.9.5
      Git 2.10.4
      Git 2.11.3
      Git 2.12.4
      Git 2.13.5
      Git 2.14.1


Version v2.14.0; changes since v2.14.0-rc1:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (3213t)

Andreas Heiduk (1):
      doc: remove unsupported parameter from patch-id

Anthony Sottile (1):
      diff-options doc: grammar fix

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Hartmut Henkel (1):
      l10n: de.po: various fixes in German translation

Hugues Peccatte (1):
      l10n: fr.po Fix some translations

Jean-Noel Avila (1):
      l10n: fr.po v2.14.0 rnd 2

Jiang Xin (2):
      l10n: zh_CN: for git v2.14.0 l10n round 2
      l10n: zh_CN: review for git v2.14.0 l10n

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (3):
      Preparation for 2.13.4 continues
      Git 2.13.4
      Git 2.14

Louis (1):
      l10n: fr.po Fix typo

Ralf Thielow (1):
      l10n: de.po: update German translation

SZEDER Gábor (1):
      blame: fix memory corruption scrambling revision name in error message

Sylvestre Ledru (1):
      l10n: fr.po Fix some french typos

Trần Ngọc Quân (1):
      l10n: vi.po (3213t): Updated 9 new strings


Version v2.14.0-rc1; changes since v2.14.0-rc0:
-----------------------------------------------

Alexander Shopov (1):
      l10n: bg.po: Updated Bulgarian translation (3206t)

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Eric Wong (1):
      set FD_CLOEXEC properly when O_CLOEXEC is not supported

Jeff King (2):
      gc: run pre-detach operations under lock
      t: handle EOF in test_copy_bytes()

Jiang Xin (2):
      l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
      l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)

Johannes Schindelin (2):
      t1300: demonstrate that CamelCased aliases regressed
      alias: compare alias name *case-insensitively*

Jonathan Nieder (1):
      pre-rebase hook: capture documentation in a <<here document

Jordi Mas (2):
      l10n: Fixes to Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (6):
      A few more topics before 2.14-rc1
      Makefile: help gettext tools to cope with our custom PRItime format
      A few more topics while waiting for the po/PRItime resolution
      Hopefully the final last-minute fix before -rc1
      fixes from 'master' for 2.13.4
      Git 2.14-rc1

Kaartic Sivaraam (2):
      doc: camelCase the i18n config variables to improve readability
      doc: reformat the paragraph containing the 'cut-line'

Miguel Torroja (3):
      git-p4: git-p4 tests with p4 triggers
      git-p4: parse marshal output "p4 -G" in p4 changes
      git-p4: filter for {'code':'info'} in p4CmdList

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (3206t0f0u)

Ramsay Jones (1):
      config.mak.uname: set FREAD_READS_DIRECTORIES for cygwin

René Scharfe (2):
      progress: show overall rate in last update
      Makefile: allow combining UBSan with other sanitizers

Torsten Bögershausen (1):
      cygwin: allow pushing to UNC paths

Trần Ngọc Quân (1):
      l10n: vi.po(3206t): Update Vietnamese translation

Ævar Arnfjörð Bjarmason (3):
      RelNotes: mention "log: add -P as a synonym for --perl-regexp"
      RelNotes: mention "log: make --regexp-ignore-case work with --perl-regexp"
      RelNotes: mention "sha1dc: optionally use sha1collisiondetection as a submodule"


Version v2.14.0-rc0; changes since v2.13.7:
-------------------------------------------

Andreas Heiduk (4):
      doc: describe git svn init --ignore-refs
      filter-branch: add `--setup` step
      filter-branch: add [--] to usage
      git-svn: document special options for commit-diff

Ben Peart (10):
      convert: remove erroneous tests for errno == EPIPE
      pkt-line: fix packet_read_line() to handle len < 0 errors
      pkt-line: add packet_read_line_gently()
      convert: move packet_write_line() into pkt-line as packet_writel()
      convert: split start_multi_file_filter() into two separate functions
      convert: separate generic structures and variables from the filter specific ones
      convert: update generic functions to only use generic data structures
      convert: rename reusable sub-process functions
      sub-process: move sub-process functions into separate files
      convert: update subprocess_read_status() to not die on EOF

Brandon Williams (95):
      submodule: rename add_sha1_to_array()
      submodule: rename free_submodules_sha1s()
      submodule: remove add_oid_to_argv()
      submodule: change string_list changed_submodule_paths
      submodule: improve submodule_has_commits()
      submodule: refactor logic to determine changed submodules
      dir: stop using the index compatibility macros
      dir: convert read_skip_worktree_file_from_index to take an index
      dir: convert directory_exists_in_index to take index
      dir: convert get_dtype to take index
      dir: convert dir_add* to take an index
      dir: convert last_exclude_matching_from_list to take an index
      dir: convert is_excluded_from_list to take an index
      dir: convert add_excludes to take an index
      dir: convert prep_exclude to take an index
      dir: convert is_excluded to take an index
      dir: convert open_cached_dir to take an index
      dir: convert read_directory_recursive to take an index
      dir: convert read_directory to take an index
      dir: convert fill_directory to take an index
      pathspec: provide a more descriptive die message
      submodule: add die_in_unpopulated_submodule function
      pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
      ls-files: prevent prune_cache from overeagerly pruning submodules
      pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
      pathspec: convert find_pathspecs_matching_against_index to take an index
      grep: convert to struct object_id
      diff: convert get_stat_data to struct object_id
      diff: convert diff_index_show_file to struct object_id
      diff: convert diff_addremove to struct object_id
      diff: convert run_diff_files to struct object_id
      diff: convert diff_change to struct object_id
      diff: convert fill_filespec to struct object_id
      diff: convert reuse_worktree_file to struct object_id
      diff: finish conversion for prepare_temp_file to struct object_id
      patch-ids: convert to struct object_id
      diff: convert diff_flush_patch_id to struct object_id
      combine-diff: convert diff_tree_combined to struct object_id
      combine-diff: convert find_paths_* to struct object_id
      tree-diff: convert diff_root_tree_sha1 to struct object_id
      notes-merge: convert notes_merge* to struct object_id
      notes-merge: convert merge_from_diffs to struct object_id
      notes-merge: convert find_notes_merge_pair_ps to struct object_id
      notes-merge: convert verify_notes_filepair to struct object_id
      notes-merge: convert write_note_to_worktree to struct object_id
      diff-tree: convert diff_tree_sha1 to struct object_id
      builtin/diff-tree: cleanup references to sha1
      tree-diff: convert try_to_follow_renames to struct object_id
      tree-diff: convert diff_tree_paths to struct object_id
      tree-diff: convert path_appendnew to object_id
      diffcore-rename: use is_empty_blob_oid
      diff: rename diff_fill_sha1_info to diff_fill_oid_info
      convert: convert get_cached_convert_stats_ascii to take an index
      convert: convert crlf_to_git to take an index
      convert: convert convert_to_git_filter_fd to take an index
      convert: convert convert_to_git to take an index
      convert: convert renormalize_buffer to take an index
      tree: convert read_tree to take an index parameter
      ls-files: convert overlay_tree_on_cache to take an index
      ls-files: convert write_eolinfo to take an index
      ls-files: convert show_killed_files to take an index
      ls-files: convert show_other_files to take an index
      ls-files: convert show_ru_info to take an index
      ls-files: convert ce_excluded to take an index
      ls-files: convert prune_cache to take an index
      ls-files: convert show_ce_entry to take an index
      ls-files: convert show_files to take an index
      ls-files: factor out debug info into a function
      ls-files: factor out tag calculation
      config: create config.h
      config: remove git_config_iter
      config: don't include config.h by default
      setup: teach discover_git_directory to respect the commondir
      config: respect commondir
      config: don't implicitly use gitdir or commondir
      setup: don't perform lazy initialization of repository state
      setup: add comment indicating a hack
      environment: remove namespace_len variable
      repository: introduce the repository object
      environment: place key repository state in the_repository
      environment: store worktree in the_repository
      path: create path.h
      path: always pass in commondir to update_common_dir
      path: convert strbuf_git_common_path to take a 'struct repository'
      path: convert do_git_path to take a 'struct repository'
      path: worktree_git_path() should not use file relocation
      path: add repo_git_path and strbuf_repo_git_path
      path: add repo_worktree_path and strbuf_repo_worktree_path
      config: read config from a repository object
      repository: add index_state to struct repo
      submodule-config: store the_submodule_cache in the_repository
      submodule: add repo_read_gitmodules
      submodule: convert is_submodule_initialized to work on a repository
      repository: enable initialization of submodules
      ls-files: use repository object

Christian Couder (2):
      p3400: add perf tests for rebasing many changes
      sub-process: correct path to API docs in a comment

David Turner (2):
      Increase core.packedGitLimit
      unpack-trees: preserve index extensions

Jeff King (29):
      cache-tree: reject entries with null sha1
      status: fix missing newline when comment chars are disabled
      add--interactive: drop diff.indentHeuristic handling
      pkt-line: annotate packet_writel with LAST_ARG_MUST_BE_NULL
      ref-filter: limit traversal to prefix
      t4208: add check for ":/" without matching file
      check_filename(): refactor ":/" handling
      check_filename(): use skip_prefix
      check_filename(): handle ":^" path magic
      verify_filename(): treat ":(magic)" as a pathspec
      verify_filename(): flip order of checks
      credential: handle invalid arguments earlier
      upload-archive: handle "-h" option early
      remote-{ext,fd}: print usage message on invalid arguments
      submodule--helper: show usage for "-h"
      version: convert to parse-options
      git: add hidden --list-builtins option
      t0012: test "-h" with builtins
      add: warn when adding an embedded repository
      t: move "git add submodule" into test blocks
      configure.ac: loosen FREAD_READS_DIRECTORIES test program
      t0006: check --date=format zone offsets
      date: use localtime() for "-local" time formats
      docs: update 64-bit core.packedGitLimit default
      test-lib: set ASAN_OPTIONS variable before we run git
      test-lib: turn on ASan abort_on_error by default
      Makefile: add helper for compiling with -fsanitize
      Makefile: turn off -fomit-frame-pointer with sanitizers
      Makefile: disable unaligned loads with UBSan

Jeff Smith (29):
      blame: remove unneeded dependency on blob.h
      blame: move textconv_object with related functions
      blame: remove unused parameters
      blame: rename origin structure to blame_origin
      blame: rename scoreboard structure to blame_scoreboard
      blame: rename origin-related functions
      blame: rename coalesce function
      blame: rename ent_score function
      blame: rename nth_line function
      blame: move stat counters to scoreboard
      blame: move copy/move thresholds to scoreboard
      blame: move contents_from to scoreboard
      blame: move reverse flag to scoreboard
      blame: move show_root flag to scoreboard
      blame: move xdl_opts flags to scoreboard
      blame: move no_whole_file_rename flag to scoreboard
      blame: make sanity_check use a callback in scoreboard
      blame: move progress updates to a scoreboard callback
      blame: wrap blame_sort and compare_blame_final
      blame: rework methods that determine 'final' commit
      blame: create scoreboard init function
      blame: create scoreboard setup function
      blame: create entry prepend function
      blame: move core structures to header
      blame: move origin-related methods to libgit
      blame: move fake-commit-related methods to libgit
      blame: move scoreboard-related methods to libgit
      blame: move scoreboard setup to libgit
      blame: move entry prepend to libgit

Johannes Schindelin (9):
      ref-filter: avoid using `unsigned long` for catch-all data type
      t0006 & t5000: prepare for 64-bit timestamps
      t0006 & t5000: skip "far in the future" test when time_t is too limited
      parse_timestamp(): specify explicitly where we parse timestamps
      PRItime: introduce a new "printf format" for timestamps
      timestamp_t: a new data type for timestamps
      date.c: abort if the system time cannot handle one of our timestamps
      use uintmax_t for timestamps
      mingw: verify that paths are not mistaken for remote nicknames

Johannes Sixt (1):
      mingw_fopen: report ENOENT for invalid file names

Jonathan Tan (11):
      fetch-pack: always allow fetching of literal SHA1s
      send-email: support validate hook
      send-email: check for repo before invoking hook
      sha1_file: teach packed_object_info about typename
      sha1_file: rename LOOKUP_UNKNOWN_OBJECT
      sha1_file: rename LOOKUP_REPLACE_OBJECT
      sha1_file: move delta base cache code up
      sha1_file: refactor read_object
      sha1_file: teach sha1_object_info_extended more flags
      sha1_file: do not access pack if unneeded
      sha1_file: refactor has_sha1_file_with_flags

Junio C Hamano (28):
      test-lib.sh: do not barf under --debug at the end of the test
      test-lib: retire $remove_trash variable
      repack: accept --threads=<n> and pass it down to pack-objects
      Start post 2.13 cycle
      name-rev: change a "long" variable to timestamp_t
      Second batch for 2.14
      config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too
      Third batch for 2.14
      compat-util: is_missing_file_error()
      treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked
      Fourth batch for 2.14
      Fifth batch for 2.14
      Sixth batch for 2.14
      Seventh batch for 2.14
      diff- and log- family: handle "git cmd -h" early
      Eighth batch for 2.14
      Ninth batch for 2.14
      Tenth batch for 2.14
      Revert "split-index: add and use unshare_split_index()"
      Eleventh batch for 2.14
      Twelfth batch for 2.14
      Thirteenth batch for 2.14
      sha1collisiondetection: automatically enable when submodule is populated
      Fourteenth batch for 2.14
      Fifteenth batch for 2.14
      Sixteenth batch for 2.14
      Hopefully the last batch before -rc0
      Git 2.14-rc0

Kaartic Sivaraam (4):
      status: contextually notify user about an initial commit
      Documentation/git-submodule: cleanup "add" section
      commit-template: remove outdated notice about explicit paths
      commit-template: distinguish status information unconditionally

Lars Schneider (2):
      travis-ci: handle Git for Windows CI status "failed" explicitly
      travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503

Liam Beguin (3):
      stash: update documentation to use 'stash entry'
      status: add optional stash count information
      glossary: define 'stash entry'

Marc Branchaud (2):
      diff: make the indent heuristic part of diff's basic configuration
      diff: have the diff-* builtins configure diff before initializing revisions

Michael Haggerty (26):
      t3600: clean up permissions test properly
      refs.h: clarify docstring for the ref_transaction_update()-related fns
      ref_iterator_begin_fn(): fix docstring
      files-backend: use `die("BUG: ...")`, not `die("internal error: ...")`
      prefix_ref_iterator: don't trim too much
      refs_ref_iterator_begin(): don't check prefixes redundantly
      refs: use `size_t` indexes when iterating over ref transaction updates
      ref_store: take a `msg` parameter when deleting references
      lockfile: add a new method, is_lock_file_locked()
      files-backend: move `lock` member to `files_ref_store`
      files_ref_store: put the packed files lock directly in this struct
      files_transaction_cleanup(): new helper function
      ref_transaction_commit(): check for valid `transaction->state`
      ref_transaction_prepare(): new optional step for reference updates
      ref_update_reject_duplicates(): expose function to whole refs module
      ref_update_reject_duplicates(): use `size_t` rather than `int`
      ref_update_reject_duplicates(): add a sanity check
      should_pack_ref(): new function, extracted from `files_pack_refs()`
      get_packed_ref_cache(): assume "packed-refs" won't change while locked
      read_packed_refs(): do more of the work of reading packed refs
      read_packed_refs(): report unexpected fopen() failures
      refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA`
      create_ref_entry(): remove `check_name` option
      cache_ref_iterator_begin(): avoid priming unneeded directories
      lock_packed_refs(): fix cache validity check
      for_each_bisect_ref(): don't trim refnames

Mike Hommey (1):
      fast-import: increase the default pack depth to 50

Nguyễn Thái Ngọc Duy (16):
      environment.c: fix potential segfault by get_git_common_dir()
      refs.c: make submodule ref store hashmap generic
      refs: add REFS_STORE_ALL_CAPS
      refs: introduce get_worktree_ref_store()
      worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
      refs: kill set_worktree_head_symref()
      split-index: add and use unshare_split_index()
      use xfopen() in more places
      clone: use xfopen() instead of fopen()
      config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
      wrapper.c: add and use warn_on_fopen_errors()
      wrapper.c: add and use fopen_or_warn()
      wrapper.c: make warn_on_inaccessible() static
      print errno when reporting a system call error
      rerere.c: move error_errno() closer to the source system call
      log: fix memory leak in open_next_file()

Prathamesh Chavan (1):
      dir: create function count_slashes()

Ramsay Jones (2):
      archive-tar: fix a sparse 'constant too large' warning
      git_fopen: fix a sparse 'not declared' warning

René Scharfe (17):
      archive-zip: add tests for big ZIP archives
      archive-zip: use strbuf for ZIP directory
      archive-zip: write ZIP dir entry directly to strbuf
      archive-zip: support archives bigger than 4GB
      archive-zip: support files bigger than 4GB
      archive-zip: set version field for big files correctly
      t5004: require 64-bit support for big ZIP tests
      mingw: simplify PATH handling
      strbuf: let strbuf_addftime handle %z and %Z itself
      sha1_name: cache readdir(3) results in find_short_object_filename()
      p4205: add perf test script for pretty log formats
      sha1_file: let for_each_file_in_obj_subdir() handle subdir names
      sha1_file: guard against invalid loose subdirectory numbers
      coccinelle: polish FREE_AND_NULL rules
      urlmatch: use hex2chr() in append_normalized_escapes()
      wt-status: use separate variable for result of shorten_unambiguous_ref
      use DIV_ROUND_UP

Rikard Falkeborn (6):
      completion: add git config gc completions
      completion: add git config core completions
      completion: add git config am.threeWay completion
      completion: add git config advice completions
      completion: add git config credential completions
      completion: add git config credentialCache.ignoreSIGHUP

SZEDER Gábor (1):
      test-lib: abort when can't remove trash directory

Stefan Beller (22):
      entry.c: submodule recursing: respect force flag correctly
      submodule.c: uninitialized submodules are ignored in recursive commands
      submodule.c: submodule_move_head works with broken submodules
      builtin/reset: add --recurse-submodules switch
      diff: recurse into nested submodules for inline diff
      diff: enable indent heuristic by default
      submodule recursing: do not write a config variable twice
      submodule test invocation: only pass additional arguments
      reset/checkout/read-tree: unify config callback for submodule recursion
      submodule loading: separate code path for .gitmodules and config overlay
      Introduce 'submodule.recurse' option for worktree manipulators
      builtin/grep.c: respect 'submodule.recurse' option
      builtin/push.c: respect 'submodule.recurse' option
      builtin/fetch.c: respect 'submodule.recurse' option
      submodules: overhaul documentation
      builtin/fetch: factor submodule recurse parsing out to submodule config
      builtin/fetch: parse recurse-submodules-default at default options parsing
      pull: optionally rebase submodules (remote submodule changes only)
      builtin/fetch cleanup: always set default value for submodule recursing
      hashmap.h: compare function has access to a data field
      patch-ids.c: use hashmap correctly
      hashmap: migrate documentation from Documentation/technical into header

Stephen Kent (1):
      status: add color config slots for branch info in "--short --branch"

Ville Skyttä (1):
      Spelling fixes

brian m. carlson (60):
      fetch-pack: convert to struct object_id
      Clean up outstanding object_id transforms.
      Convert struct cache_tree to use struct object_id
      builtin/name-rev: convert to struct object_id
      builtin/prune: convert to struct object_id
      bundle: convert to struct object_id
      branch: convert to struct object_id
      builtin/blame: convert static function to struct object_id
      builtin/rev-parse: convert to struct object_id
      fast-import: convert internal structs to struct object_id
      fast-import: convert to struct object_id
      submodule: convert merge_submodule to use struct object_id
      notes-cache: convert to struct object_id
      parse-options-cb: convert to struct object_id
      reflog_expire: convert to struct object_id
      builtin/verify-commit: convert to struct object_id
      tag: convert parse_tag_buffer to struct object_id
      http-push: convert some static functions to struct object_id
      notes-utils: convert internals to struct object_id
      revision: convert prepare_show_merge to struct object_id
      shallow: convert shallow registration functions to object_id
      sequencer: convert some functions to struct object_id
      builtin/tag: convert to struct object_id
      Convert remaining callers of lookup_commit_reference* to object_id
      Convert lookup_commit* to struct object_id
      pack: convert struct pack_idx_entry to struct object_id
      builtin/unpack-objects: convert to struct object_id
      Convert remaining callers of lookup_blob to object_id
      Convert lookup_blob to struct object_id
      tree: convert read_tree_1 to use struct object_id internally
      builtin/reflog: convert tree_is_complete to take struct object_id
      Convert lookup_tree to struct object_id
      log-tree: convert to struct object_id
      Convert lookup_tag to struct object_id
      Convert the verify_pack callback to struct object_id
      Convert struct ref_array_item to struct object_id
      ref-filter: convert some static functions to struct object_id
      refs: convert struct ref_update to use struct object_id
      refs/files-backend: convert many internals to struct object_id
      http-push: convert process_ls_object and descendants to object_id
      revision: rename add_pending_sha1 to add_pending_oid
      revision: convert remaining parse_object callers to object_id
      upload-pack: convert remaining parse_object callers to object_id
      sha1_name: convert internals of peel_onion to object_id
      builtin/read-tree: convert to struct object_id
      builtin/ls-files: convert overlay_tree_on_cache to object_id
      sequencer: convert fast_forward_to to struct object_id
      merge: convert checkout_fast_forward to struct object_id
      builtin/ls-tree: convert to struct object_id
      diff-lib: convert do_diff_cache to struct object_id
      sequencer: convert do_recursive_merge to struct object_id
      tree: convert parse_tree_indirect to struct object_id
      object: convert parse_object* to take struct object_id
      notes: convert internal structures to struct object_id
      notes: convert internal parts to struct object_id
      notes: convert for_each_note to struct object_id
      notes: make get_note return pointer to struct object_id
      notes: convert format_display_notes to struct object_id
      builtin/notes: convert to struct object_id
      notes: convert some accessor functions to struct object_id

xiaoqiang zhao (1):
      send-email: --batch-size to work around some SMTP server limit

Ævar Arnfjörð Bjarmason (65):
      tests: change "cd ... && git fetch" to "cd &&\n\tgit fetch"
      clone: add a --no-tags option to clone without tags
      tests: rename a test having to do with shallow submodules
      perf: add function to setup a fresh test repo
      perf: add test showing exponential growth in path globbing
      config: match both symlink & realpath versions in IncludeIf.gitdir:*
      Makefile & configure: reword inaccurate comment about PCRE
      grep & rev-list doc: stop promising libpcre for --perl-regexp
      test-lib: rename the LIBPCRE prerequisite to PCRE
      log: add exhaustive tests for pattern style options & config
      log: make --regexp-ignore-case work with --perl-regexp
      grep: add a test asserting that --perl-regexp dies when !PCRE
      grep: add a test for backreferences in PCRE patterns
      grep: change non-ASCII -i test to stop using --debug
      grep: add tests for --threads=N and grep.threads
      grep: amend submodule recursion test for regex engine testing
      grep: add tests for grep pattern types being passed to submodules
      grep: add a test helper function for less verbose -f \0 tests
      grep: prepare for testing binary regexes containing rx metacharacters
      grep: add tests to fix blind spots with \0 patterns
      perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
      perf: emit progress output when unpacking & building
      perf: add a comparison test of grep regex engines
      perf: add a comparison test of grep regex engines with -F
      perf: add a comparison test of log --grep regex engines
      perf: add a comparison test of log --grep regex engines with -F
      grep: catch a missing enum in switch statement
      grep: remove redundant regflags assignments
      grep: factor test for \0 in grep patterns into a function
      grep: change the internal PCRE macro names to be PCRE1
      grep: change internal *pcre* variable & function names to be *pcre1*
      grep: move is_fixed() earlier to avoid forward declaration
      test-lib: add a PTHREADS prerequisite
      pack-objects & index-pack: add test for --threads warning
      pack-objects: fix buggy warning about threads
      grep: given --threads with NO_PTHREADS=YesPlease, warn
      grep: assert that threading is enabled when calling grep_{lock,unlock}
      grep: don't redundantly compile throwaway patterns under threading
      grep: skip pthreads overhead when using one thread
      log: add -P as a synonym for --perl-regexp
      grep: add support for the PCRE v1 JIT API
      grep: un-break building with PCRE < 8.32
      grep: un-break building with PCRE < 8.20
      grep: un-break building with PCRE >= 8.32 without --enable-jit
      grep: add support for PCRE v2
      perf: work around the tested repo having an index.lock
      git-compat-util: add a FREE_AND_NULL() wrapper around free(ptr); ptr = NULL
      wildmatch test: cover a blind spot in "/" matching
      coccinelle: add a rule to make "type" code use FREE_AND_NULL()
      coccinelle: make use of the "type" FREE_AND_NULL() rule
      coccinelle: add a rule to make "expression" code use FREE_AND_NULL()
      coccinelle: make use of the "expression" FREE_AND_NULL() rule
      *.[ch] refactoring: make use of the FREE_AND_NULL() macro
      grep: fix erroneously copy/pasted variable in check/assert pattern
      die(): stop hiding errors due to overzealous recursion guard
      wildmatch: remove unused wildopts parameter
      strbuf.h comment: discuss strbuf_addftime() arguments in order
      grep: remove redundant double assignment to 0
      grep: adjust a redundant grep pattern type assignment
      grep: remove redundant "fixed" field re-assignment to 0
      grep: remove redundant and verbose re-assignments to 0
      grep: remove regflags from the public grep_opt API
      grep: remove redundant REG_NEWLINE when compiling fixed regex
      strbuf: change an always NULL/"" strbuf_addftime() param to bool
      sha1dc: optionally use sha1collisiondetection as a submodule


Version v2.13.7; changes since v2.13.6:
---------------------------------------

Jeff King (8):
      submodule-config: verify submodule names as paths
      is_ntfs_dotgit: use a size_t for traversing string
      is_hfs_dotgit: match other .git files
      skip_prefix: add case-insensitive variant
      verify_path: drop clever fallthrough
      verify_dotfile: mention case-insensitivity in comment
      update-index: stat updated files earlier
      verify_path: disallow symlinks in .gitmodules

Johannes Schindelin (2):
      is_ntfs_dotgit: match other .git files
      is_{hfs,ntfs}_dotgitmodules: add tests

Junio C Hamano (1):
      Git 2.13.7


Version v2.13.6; changes since v2.13.5:
---------------------------------------

Jeff King (3):
      shell: drop git-cvsserver support by default
      archimport: use safe_pipe_capture for user input
      cvsimport: shell-quote variable used in backticks

Junio C Hamano (6):
      cvsserver: move safe_pipe_capture() to the main package
      cvsserver: use safe_pipe_capture for `constant commands` as well
      Git 2.10.5
      Git 2.11.4
      Git 2.12.5
      Git 2.13.6

joernchen (1):
      cvsserver: use safe_pipe_capture instead of backticks


Version v2.13.5; changes since v2.13.4:
---------------------------------------

Jeff King (5):
      t/lib-proto-disable: restore protocol.allow after config tests
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (8):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6
      Git 2.8.6
      Git 2.9.5
      Git 2.10.4
      Git 2.11.3
      Git 2.12.4
      Git 2.13.5


Version v2.13.4; changes since v2.13.3:
---------------------------------------

Beat Bolli (1):
      unicode: update the width tables to Unicode 10

Eric Wong (1):
      set FD_CLOEXEC properly when O_CLOEXEC is not supported

Jeff King (2):
      gc: run pre-detach operations under lock
      t: handle EOF in test_copy_bytes()

Johannes Schindelin (2):
      t1300: demonstrate that CamelCased aliases regressed
      alias: compare alias name *case-insensitively*

Jonathan Nieder (1):
      pre-rebase hook: capture documentation in a <<here document

Junio C Hamano (3):
      fixes from 'master' for 2.13.4
      Preparation for 2.13.4 continues
      Git 2.13.4

Kaartic Sivaraam (3):
      doc: correct a mistake in an illustration
      doc: camelCase the i18n config variables to improve readability
      doc: reformat the paragraph containing the 'cut-line'

Phillip Wood (4):
      add -i: move unquote_path() to Git.pm
      Git::unquote_path(): handle '\a'
      Git::unquote_path(): throw an exception on bad path
      t9700: add tests for Git::unquote_path()

René Scharfe (3):
      apply: use starts_with() in gitdiff_verify_name()
      apply: use strcmp(3) for comparing strings in gitdiff_verify_name()
      progress: show overall rate in last update

Torsten Bögershausen (1):
      cygwin: allow pushing to UNC paths


Version v2.13.3; changes since v2.13.2:
---------------------------------------

A. Wilcox (1):
      subtree: honour USE_ASCIIDOCTOR when set

Alejandro R. Sedeño (1):
      ref-filter.c: drop return from void function

Andreas Heiduk (2):
      doc: do not use `rm .git/index` when normalizing line endings
      doc: clarify syntax for %C(auto,...) in pretty formats

Christian Couder (3):
      read-cache: use shared perms when writing shared index
      t1301: move modebits() to test-lib-functions.sh
      t1700: make sure split-index respects core.sharedrepository

David Aguilar (1):
      mergetools/meld: improve compatibiilty with Meld on macOS X

James Clarke (1):
      pack-bitmap: don't perform unaligned memory access

Jeff King (10):
      diff-highlight: split code into module
      add--interactive: handle EOF in prompt_yesno
      add--interactive: quote commentChar regex
      reflog-walk: skip over double-null oid due to HEAD rename
      reflog-walk: duplicate strings in complete_reflogs list
      reflog-walk: don't free reflogs added to cache
      reflog-walk: include all fields when freeing complete_reflogs
      branch: only perform HEAD check for local branches
      branch: use BRANCH_COLOR_LOCAL in ref-filter format
      branch: set remote color in ref-filter branch immediately

Johannes Schindelin (8):
      discover_git_directory(): avoid setting invalid git_dir
      config: report correct line number upon error
      help: use early config when autocorrecting aliases
      t1308: relax the test verifying that empty alias values are disallowed
      t7006: demonstrate a problem with aliases in subdirectories
      alias: use the early config machinery to expand aliases
      sequencer: print autostash messages to stderr
      t5534: fix misleading grep invocation

Junio C Hamano (5):
      t3420: fix under GETTEXT_POISON build
      t1450: use egrep for regexp "alternation"
      submodule--helper: do not call utf8_fprintf() unnecessarily
      Prepare for 2.13.3
      Git 2.13.3

Kaartic Sivaraam (2):
      t7508: fix a broken indentation
      builtin/commit.c: fix a typo in the comment

Marc Branchaud (1):
      auto-correct: tweak phrasing

Phillip Wood (3):
      rebase -i: add test for reflog message
      rebase: add regression tests for console output
      rebase: add more regression tests for console output

Ralf Thielow (1):
      l10n: de.po: fix typo

René Scharfe (4):
      pretty: recalculate duplicate short hashes
      apply: check git diffs for missing old filenames
      apply: check git diffs for invalid file modes
      apply: check git diffs for mutually exclusive header lines

Stefan Beller (2):
      t4005: modernize style and drop hard coded sha1
      merge-recursive: use DIFF_XDL_SET macro

Ævar Arnfjörð Bjarmason (1):
      sha1dc: update from upstream


Version v2.13.2; changes since v2.13.1:
---------------------------------------

Adam Dinwoodie (1):
      docs: fix formatting and grammar

Brandon Williams (12):
      t5550: use write_script to generate post-update hook
      t0061: run_command executes scripts without a #! line
      run-command: prepare command before forking
      run-command: use the async-signal-safe execv instead of execvp
      string-list: add string_list_remove function
      run-command: prepare child environment before forking
      run-command: don't die in child when duping /dev/null
      run-command: eliminate calls to error handling functions in child
      run-command: handle dup2 and close errors in child
      run-command: add note about forking and threading
      run-command: expose is_executable function
      run-command: restrict PATH search to executable files

Dennis Kaarsemaker (1):
      send-email: Net::SMTP::SSL is obsolete, use only when necessary

Eric Wong (1):
      run-command: block signals between fork and execve

Jeff Hostetler (1):
      read-cache: close index.lock in do_write_index

Jeff King (23):
      usage.c: add BUG() function
      setup_git_env: convert die("BUG") to BUG()
      config: complain about --local outside of a git repo
      usage.c: drop set_error_handle()
      handle_revision_arg: reset "dotdot" consistently
      handle_revision_arg: simplify commit reference lookups
      handle_revision_arg: stop using "dotdot" as a generic pointer
      handle_revision_arg: hoist ".." check out of range parsing
      handle_revision_arg: add handle_dotdot() helper
      sha1_name: consistently refer to object_context as "oc"
      get_sha1_with_context: always initialize oc->symlink_path
      get_sha1_with_context: dynamically allocate oc->path
      t4063: add tests of direct blob diffs
      handle_revision_arg: record modes for "a..b" endpoints
      handle_revision_arg: record paths for pending objects
      diff: pass whole pending entry in blobinfo
      diff: use the word "path" instead of "name" for blobs
      diff: use pending "path" if it is available
      diff: use blob path for blob/file diffs
      connect.c: fix leak in parse_one_symref_info()
      remote: drop free_refspecs() function
      t5313: make extended-table test more deterministic
      sha1dc: ignore indent-with-non-tab whitespace violations

Jonathan Nieder (1):
      send-email: Net::SMTP::starttls was introduced in v2.34

Junio C Hamano (6):
      name-rev: refactor logic to see if a new candidate is a better name
      name-rev: favor describing with tags and use committer date to tiebreak
      test: allow skipping the remainder
      diff-tree: update stale in-code comments
      Prepare for 2.13.2
      Git 2.13.2

Kyle J. McKay (1):
      t5100: add some more mailinfo tests

Lars Schneider (1):
      Configure Git contribution guidelines for github.com

Patrick Steinhardt (1):
      git-stash: fix pushing stash with pathspec from subdir

Ramsay Jones (1):
      usage: add NORETURN to BUG() function definitions

René Scharfe (5):
      p0004: simplify calls of test-lazy-init-name-hash
      p0004: avoid using pipes
      p0004: use test_perf
      p0004: don't abort if multi-threaded is too slow
      p0004: don't error out if test repo is too small

Rikard Falkeborn (1):
      completion: add completions for git config commit

SZEDER Gábor (6):
      revision.h: turn rev_info.early_output back into an unsigned int
      revision.c: stricter parsing of '--no-{min,max}-parents'
      revision.c: stricter parsing of '--early-output'
      revision.c: use skip_prefix() in handle_revision_opt()
      revision.c: use skip_prefix() in handle_revision_pseudo_opt()
      docs/pretty-formats: stress that %- removes all preceding line-feeds

Sahil Dua (1):
      t3200: add test for single parameter passed to -m option

Samuel Lijin (6):
      t7300: clean -d should skip dirs with ignored files
      t7061: status --ignored should search untracked dirs
      dir: recurse into untracked dirs for ignored files
      dir: hide untracked contents of untracked dirs
      dir: expose cmp_name() and check_contains()
      clean: teach clean -d to preserve ignored paths

Stefan Beller (5):
      submodule_move_head: reuse child_process structure for futher commands
      submodule: avoid auto-discovery in new working tree manipulator code
      submodule: properly recurse for read-tree and checkout
      t5545: enhance test coverage when no http server is installed
      Documentation/git-rm: correct submodule description

Tyler Brazier (1):
      pull: ff --rebase --autostash works in dirty repo

Ævar Arnfjörð Bjarmason (2):
      wildmatch test: remove redundant duplicate test
      sha1dc: update from upstream

Štěpán Němec (1):
      doc: git-reset: fix a trivial typo


Version v2.13.1; changes since v2.13.0:
---------------------------------------

Andreas Heiduk (4):
      Documentation: fix reference to ifExists for interpret-trailers
      Documentation: fix formatting typo in pretty-formats.txt
      doc: filter-branch does not require re-export of vars
      doc: rewrite description for rev-parse --short

Brian Malehorn (1):
      interpret-trailers: honor the cut line

Jean-Noël Avila (3):
      usability: don't ask questions if no reply is required
      read-tree -m: make error message for merging 0 trees less smart aleck
      git-filter-branch: be more direct in an error message

Jeff King (14):
      am: fix commit buffer leak in get_commit_info()
      am: simplify allocations in get_commit_info()
      am: shorten ident_split variable name in get_commit_info()
      pack-objects: disable pack reuse for object-selection options
      t5310: fix "; do" style
      docs/config: clarify include/includeIf relationship
      docs/config: give a relative includeIf example
      docs/config: avoid the term "expand" for includes
      docs/config: consistify include.path examples
      t5400: avoid concurrent writes into a trace file
      ref-filter: resolve HEAD when parsing %(HEAD) atom
      revision.c: ignore broken tags with ignore_missing_links
      am: handle "-h" argument earlier
      docs/config: mention protocol implications of url.insteadOf

Johannes Schindelin (31):
      mingw: avoid memory leak when splitting PATH
      winansi: avoid use of uninitialized value
      winansi: avoid buffer overrun
      add_commit_patch_id(): avoid allocating memory unnecessarily
      git_config_rename_section_in_file(): avoid resource leak
      get_mail_commit_oid(): avoid resource leak
      difftool: address a couple of resource/memory leaks
      status: close file descriptor after reading git-rebase-todo
      mailinfo & mailsplit: check for EOF while parsing
      cat-file: fix memory leak
      checkout: fix memory leak
      split_commit_in_progress(): simplify & fix memory leak
      setup_bare_git_dir(): help static analysis
      setup_discovered_git_dir(): plug memory leak
      pack-redundant: plug memory leak
      mktree: plug memory leaks reported by Coverity
      fast-export: avoid leaking memory in handle_tag()
      receive-pack: plug memory leak in update()
      line-log: avoid memory leak
      shallow: avoid memory leak
      add_reflog_for_walk: avoid memory leak
      remote: plug memory leak in match_explicit()
      name-rev: avoid leaking memory in the `deref` case
      show_worktree(): plug memory leak
      submodule_uses_worktrees(): plug memory leak
      Fix build with core.autocrlf=true
      git-new-workdir: mark script as LF-only
      completion: mark bash script as LF-only
      t3901: move supporting files into t/t3901/
      Fix the remaining tests that failed with core.autocrlf=true
      t4051: mark supporting files as requiring LF-only line endings

Johannes Sixt (2):
      mingw.h: permit arguments with side effects for is_dir_sep
      Windows: do not treat a path with backslashes as a remote's nick name

Jonathan Nieder (2):
      credential doc: make multiple-helper behavior more prominent
      clone: handle empty config values in -c

Jonathan Tan (3):
      sequencer: add newline before adding footers
      docs: correct receive.advertisePushOptions default
      receive-pack: verify push options in cert

Junio C Hamano (6):
      apply.c: fix whitespace-only mismerge
      checkout: fix memory leak
      doc: replace more gmane links
      read-tree: "read-tree -m --empty" does not make sense
      Prepare for 2.13.1; more topics to follow
      Git 2.13.1

Kyle Meyer (1):
      config.txt: add an entry for log.showSignature

Lars Schneider (6):
      travis-ci: build documentation with AsciiDoc and Asciidoctor
      travis-ci: parallelize documentation build
      travis-ci: unset compiler for jobs that do not need one
      travis-ci: check AsciiDoc/AsciiDoctor stderr output
      travis-ci: setup "prove cache" in "script" step
      travis-ci: add job to run tests with GETTEXT_POISON

Phillip Wood (3):
      rebase -i: fix reflog message
      rebase -i: silence stash apply
      rebase -i: add missing newline to end of message

Ramsay Jones (1):
      t7400: add !CYGWIN prerequisite to 'add with \\ in path'

René Scharfe (2):
      checkout: check return value of resolve_refdup before using hash
      am: check return value of resolve_refdup before using hash

SZEDER Gábor (1):
      docs/config.txt: fix indefinite article in core.fileMode description

Sahil Dua (1):
      branch test: fix invalid config key access

Stefan Beller (1):
      t5531: fix test description

Sven Strickroth (1):
      doc: use https links to Wikipedia to avoid http redirects

Thomas Gummerer (1):
      completion: add git stash push

Torsten Bögershausen (1):
      t0027: tests are not expensive; remove t0025

brian m. carlson (1):
      builtin/log: honor log.decorate

Ævar Arnfjörð Bjarmason (6):
      config.mak.uname: set NO_REGEX=NeedsStartEnd on AIX
      doc: replace a couple of broken gmane links
      tests: fix tests broken under GETTEXT_POISON=YesPlease
      sha1dc: update from upstream
      tag: duplicate mention of --contains should mention --no-contains
      C style: use standard style for "TRANSLATORS" comments


Version v2.13.0; changes since v2.13.0-rc2:
-------------------------------------------

Alexander Shopov (2):
      l10n: bg.po: Updated Bulgarian translation (3201t)
      l10n: bg.po: Updated Bulgarian translation (3195t)

Jean-Noël Avila (2):
      l10n: fr.po v2.13 round 1
      l10n: fr.po v2.13 rnd 2

Jeff Hostetler (1):
      t1450: avoid use of "sed" on the index, which is a binary file

Jeff King (1):
      shell: disallow repo names beginning with dash

Jiang Xin (4):
      l10n: git.pot: v2.13.0 round 1 (96 new, 37 removed)
      l10n: zh_CN: for git v2.13.0 l10n round 1
      l10n: git.pot: v2.13.0 round 2 (4 new, 7 removed)
      l10n: zh_CN: for git v2.13.0 l10n round 2

Jordi Mas (1):
      l10n: Update Catalan translation

Junio C Hamano (10):
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7
      Git 2.7.5
      Git 2.8.5
      Git 2.9.4
      Git 2.10.3
      Git 2.11.2
      Git 2.12.3
      Git 2.13

Michael J Gruber (1):
      l10n: de.po: lower case after semi-colon

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (3199t0f0u)
      l10n: sv.po: Update Swedish translation (3195t0f0u)

Ralf Thielow (2):
      l10n: de.po: update German translation
      l10n: de.po: translate 4 new messages

Ray Chen (1):
      l10n: zh_CN: review for git v2.13.0 l10n round 1

Trần Ngọc Quân (2):
      l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
      l10n: vi.po(3195t): Update translation for v2.13.0 round 2

Vasco Almeida (1):
      l10n: pt_PT: update Portuguese translation


Version v2.13.0-rc2; changes since v2.13.0-rc1:
-----------------------------------------------

Jean-Noël Avila (1):
      i18n: remove i18n from tag reflog message

Jeff King (3):
      completion: optionally disable checkout DWIM
      submodule_init: die cleanly on submodules without url defined
      prio_queue_reverse: don't swap elements with themselves

Junio C Hamano (2):
      Merging a handful of topics before -rc2
      Git 2.13-rc2

Lars Schneider (2):
      travis-ci: printf $STATUS as string
      travis-ci: set DEVELOPER knob for Linux32 build

Peter Krefting (1):
      i18n: read-cache: typofix

René Genz (3):
      doc: update SubmittingPatches
      fix minor typos
      doc: git-pull.txt use US spelling, fix minor typo

Simon Ruderich (1):
      githooks.txt: clarify push hooks are always executed in $GIT_DIR

Stephen Hicks (1):
      rebase -i: reread the todo list if `exec` touched it

Ævar Arnfjörð Bjarmason (1):
      t/perf: correctly align non-ASCII descriptions in output


Version v2.13.0-rc1; changes since v2.13.0-rc0:
-----------------------------------------------

Brandon Williams (1):
      submodule: prevent backslash expantion in submodule names

Christian Couder (1):
      read-cache: avoid using git_path() in freshen_shared_index()

David Turner (2):
      http.postbuffer: allow full range of ssize_t values
      xgethostname: handle long hostnames

Giuseppe Bilotta (4):
      builtin/am: honor --signoff also when --rebasing
      builtin/am: fold am_signoff() into am_append_signoff()
      doc: trivial typo in git-format-patch.txt
      rebase: pass --[no-]signoff option to git am

Jacob Keller (2):
      ls-files: fix recurse-submodules with nested submodules
      ls-files: fix path used when recursing into submodules

Jeff Hostetler (8):
      read-cache: force_verify_index_checksum
      string-list: use ALLOC_GROW macro when reallocing string_list
      read-cache: add strcmp_offset function
      unpack-trees: avoid duplicate ODB lookups during checkout
      p0006-read-tree-checkout: perf test to time read-tree
      read-cache: speed up add_index_entry during checkout
      read-cache: speed up has_dir_name (part 1)
      read-cache: speed up has_dir_name (part 2)

Jeff King (16):
      receive-pack: drop tmp_objdir_env from run_update_hook
      receive-pack: document user-visible quarantine effects
      refs: reject ref updates while GIT_QUARANTINE_PATH is set
      bisect: add git_path_bisect_terms helper
      branch: add edit_description() helper
      use git_path_* helper functions
      replace xstrdup(git_path(...)) with git_pathdup(...)
      replace strbuf_addstr(git_path()) with git_path_buf()
      am: drop "dir" parameter from am_state_init
      connect.c: fix leak in handle_ssh_variant
      doc: use https links to avoid http redirect
      doc: replace or.cz gitwiki link with git.wiki.kernel.org
      gitcore-tutorial: update broken link
      docs/archimport: quote sourcecontrol.net reference
      docs/bisect-lk2009: update nist report link
      docs/bisect-lk2009: update java code conventions link

Jonathan Tan (1):
      fetch-pack: show clearer error message upon ERR

Junio C Hamano (3):
      replace: plug a memory leak
      Getting ready for -rc1
      Git 2.13-rc1

Kyle Meyer (1):
      t1400: use consistent style for test_expect_success calls

Lars Schneider (1):
      travis-ci: add static analysis build job to run coccicheck

Michael Haggerty (20):
      get_ref_dir(): don't call read_loose_refs() for "refs/bisect"
      refs_read_raw_ref(): new function
      refs_ref_iterator_begin(): new function
      refs_verify_refname_available(): implement once for all backends
      refs_verify_refname_available(): use function in more places
      ref-cache: rename `add_ref()` to `add_ref_entry()`
      ref-cache: rename `find_ref()` to `find_ref_entry()`
      ref-cache: rename `remove_entry()` to `remove_entry_from_dir()`
      refs: split `ref_cache` code into separate files
      ref-cache: introduce a new type, ref_cache
      refs: record the ref_store in ref_cache, not ref_dir
      ref-cache: use a callback function to fill the cache
      refs: handle "refs/bisect/" in `loose_fill_ref_dir()`
      do_for_each_entry_in_dir(): eliminate `offset` argument
      get_loose_ref_dir(): function renamed from get_loose_refs()
      get_loose_ref_cache(): new function
      cache_ref_iterator_begin(): make function smarter
      commit_packed_refs(): use reference iteration
      files_pack_refs(): use reference iteration
      do_for_each_entry_in_dir(): delete function

Nguyễn Thái Ngọc Duy (6):
      path.c: and an option to call real_path() in expand_user_path()
      config: resolve symlinks in conditional include's patterns
      config: prepare to pass more info in git_config_with_options()
      config: handle conditional include when $GIT_DIR is not set up
      config: correct file reading order in read_early_config()
      worktree add: add --lock option

Patrick Steinhardt (1):
      pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix

Prathamesh Chavan (1):
      t2027: avoid using pipes

René Scharfe (4):
      am: close stream on error, but not stdin
      files_for_each_reflog_ent_reverse(): close stream and free strbuf on error
      server-info: avoid calling fclose(3) twice in update_info_file()
      use HOST_NAME_MAX to size buffers for gethostname(2)

Sebastian Schuberth (4):
      sha1_file: remove an used fd variable
      submodule: remove a superfluous second check for the "new" variable
      gitmodules: clarify what history depth a shallow clone has
      gitmodules: clarify the ignore option values

Sergey Ryazanov (2):
      http: honor empty http.proxy option to bypass proxy
      http: fix the silent ignoring of proxy misconfiguraion

Torsten Bögershausen (1):
      gitattributes.txt: document how to normalize the line endings

Ævar Arnfjörð Bjarmason (2):
      push: document & test --force-with-lease with multiple remotes
      completion: expand "push --delete <remote> <ref>" for refs on that <remote>


Version v2.13.0-rc0; changes since v2.12.5:
-------------------------------------------

Alex Henrie (1):
      log: if --decorate is not given, default to --decorate=auto

Andreas Heiduk (2):
      Documentation: improve description for core.quotePath
      diff-files: document --ours etc.

Brandon Williams (36):
      attr: pass struct attr_check to collect_some_attrs
      attr: use hashmap for attribute dictionary
      attr: eliminate global check_all_attr array
      attr: remove maybe-real, maybe-macro from git_attr
      attr: tighten const correctness with git_attr and match_attr
      attr: store attribute stack in attr_check structure
      attr: push the bare repo check into read_attr()
      attr: reformat git_attr_set_direction() function
      pathspec: allow querying for attributes
      pathspec: allow escaped query values
      submodule--helper: add is-active subcommand
      submodule status: use submodule--helper is-active
      submodule sync: skip work for inactive submodules
      submodule sync: use submodule--helper is-active
      submodule--helper clone: check for configured submodules using helper
      grep: fix help text typo
      setup: allow for prefix to be passed to git commands
      grep: fix bug when recursing with relative pathspec
      ls-files: fix typo in variable name
      ls-files: fix bug when recursing with relative pathspec
      grep: set default output method
      submodule: decouple url and submodule interest
      submodule init: initialize active submodules
      clone: teach --recurse-submodules to optionally take a pathspec
      submodule--helper init: set submodule.<name>.active
      submodule add: respect submodule.active and submodule.<name>.active
      grep: fix builds with with no thread support
      send-pack: send push options correctly in stateless-rpc case
      remote-curl: allow push options
      sequencer: fix missing newline
      push: unmark a local variable as static
      push: propagate push-options with --recurse-submodules
      remote: expose parse_push_refspec function
      submodule--helper: add push-check subcommand
      push: propagate remote and refspec with --recurse-submodules
      pathspec: fix segfault in clear_pathspec

Christian Couder (24):
      config: mark an error message up for translation
      t1700: change here document style
      config: add git_config_get_split_index()
      split-index: add {add,remove}_split_index() functions
      read-cache: add and then use tweak_split_index()
      update-index: warn in case of split-index incoherency
      t1700: add tests for core.splitIndex
      Documentation/config: add information for core.splitIndex
      Documentation/git-update-index: talk about core.splitIndex config var
      config: add git_config_get_max_percent_split_change()
      read-cache: regenerate shared index if necessary
      t1700: add tests for splitIndex.maxPercentChange
      Documentation/config: add splitIndex.maxPercentChange
      sha1_file: make check_and_freshen_file() non static
      read-cache: touch shared index files when used
      config: add git_config_get_expiry() from gc.c
      read-cache: unlink old sharedindex files
      t1700: test shared index file expiration
      read-cache: refactor read_index_from()
      read-cache: use freshen_shared_index() in read_index_from()
      Documentation/config: add splitIndex.sharedIndexExpire
      Documentation/git-update-index: explain splitIndex.*
      update-index: fix xgetcwd() related memory leak
      p0004: make perf test executable

Cornelius Weig (1):
      tag: generate useful reflog message

David Aguilar (3):
      t7800: remove whitespace before redirect
      t7800: cleanup cruft left behind by tests
      difftool: handle modified symlinks in dir-diff mode

Devin Lehmacher (3):
      path.c: add xdg_cache_home
      credential-cache: use XDG_CACHE_HOME for socket
      credential-cache: add tests for XDG functionality

Hiroshi Shirosaki (1):
      git svn: fix authentication with 'branch'

Jacob Keller (5):
      doc: add documentation for OPT_STRING_LIST
      name-rev: extend --refs to accept multiple patterns
      name-rev: add support to exclude refs by pattern match
      describe: teach --match to accept multiple patterns
      describe: teach describe negative pattern matches

Jeff Hostetler (9):
      preload-index: avoid lstat for skip-worktree items
      name-hash: specify initial size for istate.dir_hash table
      hashmap: allow memihash computation to be continued
      hashmap: add disallow_rehash setting
      hashmap: document memihash_cont, hashmap_disallow_rehash api
      name-hash: perf improvement for lazy_init_name_hash
      name-hash: add test-lazy-init-name-hash
      name-hash: add perf test for lazy_init_name_hash
      test-online-cpus: helper to return cpu count

Jeff King (58):
      setup_git_env: avoid blind fall-back to ".git"
      for_each_alternate_ref: handle failure from real_pathdup()
      for_each_alternate_ref: stop trimming trailing slashes
      for_each_alternate_ref: use strbuf for path allocation
      for_each_alternate_ref: pass name/oid instead of ref struct
      for_each_alternate_ref: replace transport code with for-each-ref
      fetch-pack: cache results of for_each_alternate_ref
      add oidset API
      receive-pack: use oidset to de-duplicate .have lines
      receive-pack: fix misleading namespace/.have comment
      receive-pack: treat namespace .have lines like alternates
      receive-pack: avoid duplicates between our refs and alternates
      ref-filter: move ref_cbdata definition into ref-filter.c
      ref-filter: use contains_result enum consistently
      ref-filter: die on parse_commit errors
      ref-filter: use separate cache for contains_tag_algo
      add--interactive: do not expand pathspecs with ls-files
      cherry-pick: detect bogus arguments to --mainline
      sha1dc: add collision-detecting sha1 implementation
      sha1dc: adjust header includes for git
      sha1dc: disable safe_hash feature
      sequencer: drop "warning:" when stopping for edit
      Makefile: add DC_SHA1 knob
      t0013: add a basic sha1 collision detection test
      hash-object: fix buffer reuse with --path in a subdirectory
      prefix_filename: move docstring to header file
      prefix_filename: drop length parameter
      prefix_filename: return newly allocated string
      prefix_filename: simplify windows #ifdef
      bundle: use prefix_filename with bundle path
      pager_in_use: use git_env_bool()
      fast-import: use xsnprintf for writing sha1s
      fast-import: use xsnprintf for formatting headers
      encode_in_pack_object_header: respect output buffer length
      pack.h: define largest possible encoded object size
      do not check odb_mkstemp return value for errors
      odb_mkstemp: write filename into strbuf
      odb_mkstemp: use git_path_buf
      Makefile: detect errors in running spatch
      difftool: avoid strcpy
      diff: avoid fixed-size buffer for patch-ids
      tag: use strbuf to format tag header
      fetch: use heap buffer to format reflog
      avoid using fixed PATH_MAX buffers for refs
      avoid using mksnpath for refs
      create_branch: move msg setup closer to point of use
      create_branch: use xstrfmt for reflog message
      name-rev: replace static buffer with strbuf
      receive-pack: print --pack-header directly into argv array
      replace unchecked snprintf calls with heap buffers
      combine-diff: replace malloc/snprintf with xstrfmt
      convert unchecked snprintf into xsnprintf
      transport-helper: replace checked snprintf with xsnprintf
      gc: replace local buffer with git_path
      daemon: use an argv_array to exec children
      sha1_loose_object_info: return error for corrupted objects
      index-pack: detect local corruption in collision check
      connect.c: handle errors from split_cmdline

Johannes Schindelin (20):
      git_connect(): factor out SSH variant handling
      rebase--helper: add a builtin helper for interactive rebases
      rebase -i: use the rebase--helper builtin
      rev-parse: fix several options when running in a subdirectory
      t7006: replace dubious test
      setup_git_directory(): use is_dir_sep() helper
      setup: prepare setup_discovered_git_dir() for the root directory
      setup_git_directory_1(): avoid changing global state
      setup: introduce the discover_git_directory() function
      setup: make read_early_config() reusable
      read_early_config(): avoid .git/config hack when unneeded
      read_early_config(): really discover .git/
      t1309: test read_early_config()
      setup_git_directory_gently_1(): avoid die()ing
      t1309: document cases where we would want early config not to die()
      setup.c: mention unresolved problems
      t7504: document regression: reword no longer calls commit-msg
      sequencer: make commit options more extensible
      sequencer: allow the commit-msg hooks to run during a `reword`
      difftool: fix use-after-free

Jonathan Nieder (1):
      has_sha1_file: don't bother if we are not in a repository

Junio C Hamano (41):
      merge: drop 'git merge <message> HEAD <commit>' syntax
      connect: rename tortoiseplink and putty variables
      commit.c: use strchrnul() to scan for one line
      attr.c: use strchrnul() to scan for one line
      attr.c: update a stale comment on "struct match_attr"
      attr.c: explain the lack of attr-name syntax check in parse_attr()
      attr.c: complete a sentence in a comment
      attr.c: mark where #if DEBUG ends more clearly
      attr.c: simplify macroexpand_one()
      attr.c: tighten constness around "git_attr" structure
      attr.c: plug small leak in parse_attr_line()
      attr.c: add push_stack() helper
      attr.c: outline the future plans by heavily commenting
      attr: rename function and struct related to checking attributes
      attr: (re)introduce git_check_attr() and struct attr_check
      attr: convert git_all_attrs() to use "struct attr_check"
      attr: convert git_check_attrs() callers to use the new API
      attr: retire git_check_attrs() API
      attr: change validity check for attribute names to use positive logic
      ref-filter: resurrect "strip" as a synonym to "lstrip"
      connect.c: stop conflating ssh command names and overrides
      First batch after 2.12
      branch: honor --abbrev/--no-abbrev in --list mode
      Second batch after 2.12
      Third batch after 2.12
      Fourth batch after 2.12
      Makefile: make DC_SHA1 the default
      Fifth batch for 2.13
      Sixth batch for 2.13
      tests: lint for run-away here-doc
      branch doc: update description for `--list`
      Seventh batch for 2.13
      sha1dc: avoid CPP macro collisions
      Eighth batch for 2.13
      Ninth batch for 2.13
      Tenth batch for 2.13
      remote.[ch]: parse_push_cas_option() can be static
      contrib/git-resurrect.sh: do not write \t for HT in sed scripts
      Eleventh batch for 2.13
      Twelfth batch for 2.13
      Git 2.13-rc0

Karthik Nayak (20):
      ref-filter: implement %(if), %(then), and %(else) atoms
      ref-filter: include reference to 'used_atom' within 'atom_value'
      ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
      ref-filter: modify "%(objectname:short)" to take length
      ref-filter: move get_head_description() from branch.c
      ref-filter: introduce format_ref_array_item()
      ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
      ref-filter: add support for %(upstream:track,nobracket)
      ref-filter: make "%(symref)" atom work with the ':short' modifier
      ref-filter: introduce refname_atom_parser_internal()
      ref-filter: introduce refname_atom_parser()
      ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal()
      ref-filter: rename the 'strip' option to 'lstrip'
      ref-filter: Do not abruptly die when using the 'lstrip=<N>' option
      ref-filter: modify the 'lstrip=<N>' option to work with negative '<N>'
      ref-filter: add an 'rstrip=<N>' option to atoms which deal with refnames
      ref-filter: allow porcelain to translate messages in the output
      branch, tag: use porcelain output
      branch: use ref-filter printing APIs
      branch: implement '--format' option

Kevin Willford (2):
      name-hash: fix buffer overrun
      t3008: skip lazy-init test on a single-core box

Kyle Meyer (10):
      delete_ref: accept a reflog message argument
      update-ref: pass reflog message to delete_ref()
      rename_ref: replace empty message in HEAD's log
      branch: record creation of renamed branch in HEAD's log
      t1400: rename test descriptions to be unique
      t1400: set core.logAllRefUpdates in "logged by touch" tests
      t1400: use test_path_is_* helpers
      t1400: remove a set of unused output files
      t1400: use test_when_finished for cleanup
      doc/revisions: remove brackets from rev^-n shorthand

Lars Schneider (1):
      travis-ci: build and test Git on Windows

Linus Torvalds (3):
      pathspec magic: add '^' as alias for '!'
      pathspec: don't error out on all-exclusionary pathspec patterns
      mailinfo: fix in-body header continuations

Luke Diamand (3):
      git-p4: add failing test for name-rev rather than symbolic-ref
      git-p4: add read_pipe_text() internal function
      git-p4: don't use name-rev to get current branch

Matt McCutchen (1):
      merge-recursive: make "CONFLICT (rename/delete)" message show both paths

Michael Haggerty (32):
      files_rename_ref(): tidy up whitespace
      refname_is_safe(): correct docstring
      t5505: use "for-each-ref" to test for the non-existence of references
      safe_create_leading_directories_const(): preserve errno
      safe_create_leading_directories(): set errno on SCLD_EXISTS
      raceproof_create_file(): new function
      lock_ref_sha1_basic(): inline constant
      lock_ref_sha1_basic(): use raceproof_create_file()
      rename_tmp_log(): use raceproof_create_file()
      rename_tmp_log(): improve error reporting
      log_ref_write(): inline function
      log_ref_setup(): separate code for create vs non-create
      log_ref_setup(): improve robustness against races
      log_ref_setup(): pass the open file descriptor back to the caller
      log_ref_write_1(): don't depend on logfile argument
      log_ref_setup(): manage the name of the reflog file internally
      log_ref_write_1(): inline function
      delete_ref_loose(): derive loose reference path from lock
      delete_ref_loose(): inline function
      try_remove_empty_parents(): rename parameter "name" -> "refname"
      try_remove_empty_parents(): don't trash argument contents
      try_remove_empty_parents(): teach to remove parents of reflogs, too
      files_transaction_commit(): clean up empty directories
      refs: reorder some function definitions
      refs: make some ref_store lookup functions private
      refs: remove some unnecessary handling of submodule == ""
      register_ref_store(): new function
      refs: store submodule ref stores in a hashmap
      refs: push the submodule attribute down
      base_ref_store_init(): remove submodule argument
      files_ref_store::submodule: use NULL for the main repository
      read_loose_refs(): read refs using resolve_ref_recursively()

Michael J Gruber (3):
      git-prompt: add a describe style for any tags
      describe: localize debug output fully
      l10n: de: translate describe debug terms

Michael Rappazzo (1):
      rev-parse tests: add tests executed from a subdirectory

Mike Hommey (1):
      notes: do not break note_tree structure in note_tree_consolidate()

Mostyn Bramley-Moore (1):
      Documentation: document elements in "ls-files -s" output in order

Nguyễn Thái Ngọc Duy (33):
      attr: support quoting pathname patterns in C style
      clean: use warning_errno() when appropriate
      config.txt: clarify multiple key values in include.path
      config.txt: reflow the second include.path paragraph
      config: add conditional include
      refs.h: add forward declaration for structs used in this file
      files-backend: make files_log_ref_write() static
      files-backend.c: delete dead code in files_ref_iterator_begin()
      files-backend: delete dead code in files_init_db()
      files-backend: add and use files_packed_refs_path()
      files-backend: make sure files_rename_ref() always reach the end
      files-backend: convert git_path() to strbuf_git_path()
      files-backend: move "logs/" out of TMP_RENAMED_LOG
      files-backend: add and use files_reflog_path()
      files-backend: add and use files_ref_path()
      files-backend: remove the use of git_path()
      refs.c: introduce get_main_ref_store()
      refs: rename lookup_ref_store() to lookup_submodule_ref_store()
      refs.c: flatten get_ref_store() a bit
      refs.c: kill register_ref_store(), add register_submodule_ref_store()
      refs.c: make get_main_ref_store() public and use it
      path.c: move some code out of strbuf_git_path_submodule()
      refs: move submodule code out of files-backend.c
      files-backend: replace submodule_allowed check in files_downcast()
      refs: rename get_ref_store() to get_submodule_ref_store() and make it public
      refs: add new ref-store api
      refs: new transaction related ref-store api
      files-backend: avoid ref api targeting main ref store
      refs: delete pack_refs() in favor of refs_pack_refs()
      t/helper: add test-ref-store to test ref-store functions
      t1405: some basic tests on main ref store
      t1406: new tests for submodule ref store
      refs.h: add a note about sorting order of for_each_ref_*

Patrick Steinhardt (5):
      mailmap: add Patrick Steinhardt's work address
      urlmatch: enable normalization of URLs with globs
      urlmatch: split host and port fields in `struct url_info`
      urlmatch: include host in urlmatch ranking
      urlmatch: allow globbing for the URL host part

Quentin Pradet (1):
      git-bisect.txt: add missing word

Ralf Thielow (2):
      submodule.c: add missing ' in error messages
      git-add--interactive.perl: add missing dot in a message

Ramsay Jones (1):
      name-hash: add test-lazy-init-name-hash to .gitignore

René Scharfe (4):
      log-tree: factor out fmt_output_email_subject()
      pretty: use fmt_output_email_subject()
      strbuf: support long paths w/o read rights in strbuf_getcwd() on FreeBSD
      test-read-cache: setup git dir

SZEDER Gábor (41):
      completion: improve __git_refs()'s in-code documentation
      completion tests: don't add test cruft to the test repository
      completion tests: make the $cur variable local to the test helper functions
      completion tests: consolidate getting path of current working directory
      completion tests: check __gitdir()'s output in the error cases
      completion tests: add tests for the __git_refs() helper function
      completion: ensure that the repository path given on the command line exists
      completion: fix most spots not respecting 'git --git-dir=<path>'
      completion: respect 'git --git-dir=<path>' when listing remote refs
      completion: list refs from remote when remote's name matches a directory
      completion: don't list 'HEAD' when trying refs completion outside of a repo
      completion: list short refs from a remote given as a URL
      completion: don't offer commands when 'git --opt' needs an argument
      completion: fix completion after 'git -C <path>'
      rev-parse: add '--absolute-git-dir' option
      completion: respect 'git -C <path>'
      completion: don't use __gitdir() for git commands
      completion: consolidate silencing errors from git commands
      completion: don't guard git executions with __gitdir()
      completion: extract repository discovery from __gitdir()
      completion: cache the path to the repository
      completion: restore removed line continuating backslash
      completion: remove redundant __gitcomp_nl() options from _git_commit()
      completion: wrap __git_refs() for better option parsing
      completion: support completing full refs after '--option=refs/<TAB>'
      completion: support completing fully qualified non-fast-forward refspecs
      completion: support excluding full refs
      completion: don't disambiguate tags and branches
      completion: don't disambiguate short refs
      completion: let 'for-each-ref' and 'ls-remote' filter matching refs
      completion: let 'for-each-ref' strip the remote name from remote branches
      completion: let 'for-each-ref' filter remote branches for 'checkout' DWIMery
      completion: let 'for-each-ref' sort remote branches for 'checkout' DWIMery
      completion: fill COMPREPLY directly when completing refs
      completion: fill COMPREPLY directly when completing fetch refspecs
      completion: speed up branch and tag completion
      refs.c: use skip_prefix() in prettify_refname()
      completion: put matching ctags symbol names directly into COMPREPLY
      completion: extract completing ctags symbol names into helper function
      completion: offer ctags symbol names for 'git log -S', '-G' and '-L:'
      t6500: wait for detached auto gc at the end of the test script

Segev Finer (2):
      connect: handle putty/plink also in GIT_SSH_COMMAND
      connect: Add the envvar GIT_SSH_VARIANT and ssh.variant config

Stefan Beller (32):
      Documentation: fix a typo
      submodule init: warn about falling back to a local path
      rev-parse: add --show-superproject-working-tree
      connect_work_tree_and_git_dir: safely create leading directories
      lib-submodule-update.sh: reorder create_lib_submodule_repo
      lib-submodule-update.sh: do not use ./. as submodule remote
      lib-submodule-update: teach test_submodule_content the -C <dir> flag
      lib-submodule-update.sh: replace sha1 by hash
      lib-submodule-update.sh: define tests for recursing into submodules
      make is_submodule_populated gently
      update submodules: add submodule config parsing
      update submodules: add a config option to determine if submodules are updated
      submodules: introduce check to see whether to touch a submodule
      update submodules: move up prepare_submodule_repo_env
      submodule.c: get_super_prefix_or_empty
      update submodules: add submodule_move_head
      unpack-trees: pass old oid to verify_clean_submodule
      unpack-trees: check if we can perform the operation for submodules
      entry.c: create submodules when interesting
      builtin/checkout: add --recurse-submodules switch
      builtin/read-tree: add --recurse-submodules switch
      builtin/describe: introduce --broken flag
      submodule.c: use argv_array in is_submodule_modified
      submodule.c: factor out early loop termination in is_submodule_modified
      submodule.c: convert is_submodule_modified to use strbuf_getwholeline
      submodule.c: port is_submodule_modified to use porcelain 2
      submodule.c: stricter checking for submodules in is_submodule_modified
      short status: improve reporting for submodule changes
      unpack-trees.c: align submodule error message to the other error messages
      submodule.c: correctly handle nested submodules in is_submodule_modified
      diff: submodule inline diff to initialize env array.
      submodule--helper: fix typo in is_active error message

Thomas Gummerer (9):
      stash: introduce push verb
      stash: add test for the create command line arguments
      stash: refactor stash_create
      stash: teach 'push' (and 'create_stash') to honor pathspec
      stash: use stash_push for no verb form
      stash: allow pathspecs in the no verb form
      stash: don't show internal implementation details
      stash: pass the pathspec argument to git reset
      stash: keep untracked files intact in stash -k

Valery Tolstov (1):
      submodule--helper.c: remove duplicate code

Vegard Nossum (1):
      xdiff -W: relax end-of-file function detection

brian m. carlson (41):
      hex: introduce parse_oid_hex
      builtin/commit: convert to struct object_id
      builtin/diff-tree: convert to struct object_id
      builtin/describe: convert to struct object_id
      builtin/fast-export: convert to struct object_id
      builtin/fmt-merge-message: convert to struct object_id
      builtin/grep: convert to struct object_id
      builtin/branch: convert to struct object_id
      builtin/clone: convert to struct object_id
      builtin/merge: convert to struct object_id
      Convert remaining callers of resolve_refdup to object_id
      builtin/replace: convert to struct object_id
      reflog-walk: convert struct reflog_info to struct object_id
      refs: convert each_reflog_ent_fn to struct object_id
      refs: simplify parsing of reflog entries
      sha1_file: introduce an nth_packed_object_oid function
      Convert object iteration callbacks to struct object_id
      builtin/merge-base: convert to struct object_id
      wt-status: convert to struct object_id
      hash.h: move SHA-1 implementation selection into a header file
      Define new hash-size constants for allocating memory
      Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ
      Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ
      builtin/diff: convert to struct object_id
      builtin/pull: convert portions to struct object_id
      builtin/receive-pack: fix incorrect pointer arithmetic
      builtin/receive-pack: convert portions to struct object_id
      fsck: convert init_skiplist to struct object_id
      parse-options-cb: convert sha1_array_append caller to struct object_id
      test-sha1-array: convert most code to struct object_id
      sha1_name: convert struct disambiguate_state to object_id
      sha1_name: convert disambiguate_hint_fn to take object_id
      submodule: convert check_for_new_submodule_commits to object_id
      builtin/pull: convert to struct object_id
      sha1-array: convert internal storage for struct sha1_array to object_id
      Make sha1_array_append take a struct object_id *
      Convert remaining callers of sha1_array_lookup to object_id
      Convert sha1_array_lookup to take struct object_id
      Convert sha1_array_for_each_unique and for_each_abbrev to object_id
      Rename sha1_array to oid_array
      Documentation: update and rename api-sha1-array.txt

Ævar Arnfjörð Bjarmason (25):
      tag doc: move the description of --[no-]merged earlier
      tag doc: split up the --[no-]merged documentation
      tag doc: reword --[no-]merged to talk about commits, not tips
      ref-filter: make combining --merged & --no-merged an error
      doc/SubmittingPatches: clarify the casing convention for "area: change..."
      t/README: link to metacpan.org, not search.cpan.org
      t/README: change "Inside <X> part" to "Inside the <X> part"
      ref-filter: add test for --contains on a non-commit
      tag: remove a TODO item from the test suite
      tag tests: fix a typo in a test description
      for-each-ref: partly change <object> to <commit> in help
      branch doc: change `git branch <pattern>` to use `<branchname>`
      tag: add more incompatibles mode tests
      parse-options: add OPT_NONEG to the "contains" option
      tag: change misleading --list <pattern> documentation
      tag: implicitly supply --list given another list-like option
      tag: change --point-at to default to HEAD
      ref-filter: add --no-contains option to tag/branch/for-each-ref
      ref-filter: reflow recently changed branch/tag/for-each-ref docs
      tag: add tests for --with and --without
      t/README: clarify the test_have_prereq documentation
      doc/SubmittingPatches: show how to get a CLI commit summary
      rev-parse: match @{upstream}, @{u} and @{push} case-insensitively
      perl: regenerate perl.mak if perl -V changes
      grep: plug a trivial memory leak


Version v2.12.5; changes since v2.12.4:
---------------------------------------

Jeff King (3):
      shell: drop git-cvsserver support by default
      archimport: use safe_pipe_capture for user input
      cvsimport: shell-quote variable used in backticks

Junio C Hamano (5):
      cvsserver: move safe_pipe_capture() to the main package
      cvsserver: use safe_pipe_capture for `constant commands` as well
      Git 2.10.5
      Git 2.11.4
      Git 2.12.5

joernchen (1):
      cvsserver: use safe_pipe_capture instead of backticks


Version v2.12.4; changes since v2.12.3:
---------------------------------------

Jeff King (5):
      t/lib-proto-disable: restore protocol.allow after config tests
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (7):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6
      Git 2.8.6
      Git 2.9.5
      Git 2.10.4
      Git 2.11.3
      Git 2.12.4


Version v2.12.3; changes since v2.12.2:
---------------------------------------

Devin J. Pohly (4):
      t7003: ensure --prune-empty can prune root commit
      t7003: ensure --prune-empty removes entire branch when applicable
      filter-branch: fix --prune-empty on parentless commits
      p7000: add test for filter-branch with --prune-empty

Eric Wong (2):
      http: inform about alternates-as-redirects behavior
      http: release strbuf on disabled alternates

Jeff King (32):
      pack-objects: enforce --depth limit in reused deltas
      pack-objects: convert recursion to iteration in break_delta_chain()
      ident: mark error messages for translation
      ident: handle NULL email when complaining of empty name
      ident: reject all-crud ident name
      ident: do not ignore empty config name/email
      parse_config_key: use skip_prefix instead of starts_with
      parse_config_key: allow matching single-level config
      parse_hide_refs_config: tell parse_config_key we don't want a subsection
      interpret_branch_name(): handle auto-namelen for @{-1}
      interpret_branch_name: move docstring to header file
      strbuf_branchname: drop return value
      strbuf_branchname: add docstring
      interpret_branch_name: allow callers to restrict expansions
      t3204: test git-branch @-expansion corner cases
      branch: restrict @-expansions when deleting
      strbuf_check_ref_format(): expand only local branches
      checkout: restrict @-expansions when finding branch
      t/perf: use $MODERN_GIT for all repo-copying steps
      t/perf: add fallback for pre-bin-wrappers versions of git
      t: add an interoperability test harness
      t/interop: add test of old clients against modern git-daemon
      rev-parse: use skip_prefix when parsing options
      rev-parse: add helper for parsing "--foo/--foo="
      rev-parse: simplify parsing of ref options
      move odb_* declarations out of git-compat-util.h
      sha1_file.c: make pack-name helper globally accessible
      odb_pack_keep(): stop generating keepfile name
      replace snprintf with odb_pack_name()
      index-pack: make pointer-alias fallbacks safer
      run-command: fix segfault when cleaning forked async process
      shell: disallow repo names beginning with dash

Jonathan Tan (1):
      t/perf: export variable used in other blocks

Junio C Hamano (12):
      t5615: fix a here-doc syntax error
      t7406: correct test case for submodule-update initial population
      Prepare for 2.12.3
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7
      Git 2.7.5
      Git 2.8.5
      Git 2.9.4
      Git 2.10.3
      Git 2.11.2
      Git 2.12.3

Kyle Meyer (1):
      doc/config: grammar fixes for core.{editor,commentChar}

Matt McCutchen (3):
      fetch-pack: move code to report unmatched refs to a function
      fetch_refs_via_pack: call report_unmatched_refs
      fetch-pack: add specific error for fetching an unadvertised object

René Scharfe (7):
      cocci: use ALLOC_ARRAY
      strbuf: add strbuf_add_real_path()
      blame: move blame_entry duplication to add_blame_entry()
      receive-pack: simplify run_update_post_hook()
      http-push: don't check return value of lookup_unknown_object()
      revision: remove declaration of path_name()
      shortlog: don't set after_subject to an empty string

SZEDER Gábor (3):
      tests: create an interactive gdb session with the 'debug' helper
      tests: make the 'test_pause' helper work in non-verbose mode
      pickaxe: fix segfault with '-S<...> --pickaxe-regex'

Santiago Torres (1):
      t7004, t7030: fix here-doc syntax errors

Stefan Beller (3):
      refs: parse_hide_refs_config to use parse_config_key
      wt-status: simplify by using for_each_string_list_item
      t3600: rename test to describe its functionality

Ævar Arnfjörð Bjarmason (3):
      cvs tests: skip tests that call "cvs commit" when running as root
      gitweb tests: change confusing "skip_all" phrasing
      gitweb tests: skip tests when we don't have Time::HiRes


Version v2.12.2; changes since v2.12.1:
---------------------------------------

David Turner (1):
      gc: ignore old gc.log files

Eric Wong (1):
      README: create HTTP/HTTPS links from URLs in Markdown

Jeff King (20):
      grep: move thread initialization a little lower
      grep: re-order rev-parsing loop
      grep: fix "--" rev/pathspec disambiguation
      grep: avoid resolving revision names in --no-index case
      grep: do not diagnose misspelt revs with --no-index
      show-branch: drop head_len variable
      show-branch: store resolved head in heap buffer
      remote: avoid reading $GIT_DIR config in non-repo
      grep: treat revs the same for --untracked as for --no-index
      show-branch: use skip_prefix to drop magic numbers
      tempfile: set errno to a known value before calling ferror()
      t6300: avoid creating refs/heads/HEAD
      ewah: fix eword_t/uint64_t confusion
      receive-pack: fix deadlock when we cannot create tmpdir
      send-pack: extract parsing of "unpack" response
      send-pack: use skip_prefix for parsing unpack status
      send-pack: improve unpack-status error messages
      send-pack: read "unpack" status even on pack-objects failure
      send-pack: report signal death of pack-objects
      http-walker: fix buffer underflow processing remote alternates

Johan Hovold (1):
      send-email: only allow one address per body tag

Jonathan Nieder (1):
      remote helpers: avoid blind fall-back to ".git" when setting GIT_DIR

Jonathan Tan (2):
      grep: do not unnecessarily query repo for "--"
      upload-pack: report "not our ref" to client

Junio C Hamano (5):
      config: move a few helper functions up
      config: use git_config_parse_key() in git_config_parse_parameter()
      diff: do not short-cut CHECK_SIZE_ONLY check in diff_populate_filespec()
      Prepare for 2.12.2
      Git 2.12.2

Michael J Gruber (2):
      git-status: make porcelain more robust
      mailmap: use Michael J Gruber's new address

Nguyễn Thái Ngọc Duy (1):
      git-commit.txt: list post-rewrite in HOOKS section

Patrick Steinhardt (2):
      docs/diffcore: fix grammar in diffcore-rename header
      docs/diffcore: unquote "Complete Rewrites" in headers

Ramsay Jones (2):
      wrapper.c: remove unused git_mkstemp() function
      wrapper.c: remove unused gitmkstemps() function

René Scharfe (3):
      sha1_file: release fallback base's memory in unpack_entry()
      commit: be more precise when searching for headers
      commit: don't check for space twice when looking for header

Ross Lagerwall (1):
      remote: ignore failure to remove missing branch.<name>.merge

Sebastian Schuberth (1):
      contrib: git-remote-{bzr,hg} placeholders don't need Python

Stefan Beller (1):
      submodule-config: correct error reporting for invalid ignore value

Ævar Arnfjörð Bjarmason (2):
      doc: change erroneous --[no]-whatever into --[no-]whatever
      push: mention "push.default=tracking" in the documentation


Version v2.12.1; changes since v2.12.0:
---------------------------------------

Allan Xavier (1):
      line-log.c: prevent crash during union of too many ranges

Jeff Hostetler (1):
      mingw: use OpenSSL's SHA-1 routines

Jeff King (3):
      http: restrict auth methods to what the server advertises
      http: add an "auto" mode for http.emptyauth
      add--interactive: fix missing file prompt for patch mode with "-i"

Johannes Schindelin (3):
      Travis: also test on 32-bit Linux
      t1501: demonstrate NULL pointer access with invalid GIT_WORK_TREE
      real_pathdup(): fix callsites that wanted it to die on error

Jonathan Tan (1):
      http: attempt updating base URL only if no error

Junio C Hamano (2):
      Preparing for 2.12.1
      Git 2.12.1

Maxim Moseychuk (2):
      stop_progress_msg: convert xsnprintf to xstrfmt
      bisect_next_all: convert xsnprintf to xstrfmt

Vegard Nossum (1):
      line-log: use COPY_ARRAY to fix mis-sized memcpy


Version v2.12.0; changes since v2.12.0-rc2:
-------------------------------------------

Alexander Shopov (1):
      l10n: bg:  Updated Bulgarian translation (2913t+0f+0u)

Anthony Ramine (1):
      l10n: fr.po: Fix a typo in the French translation

Changwoo Ryu (2):
      l10n: ko.po: Update Korean translation
      l10n: ko.po: Update Korean translation

Damien Regad (1):
      git-check-ref-format: clarify documentation for --normalize

Eric Wong (1):
      git-svn: escape backslashes in refnames

Grégoire Paris (1):
      init: document dotfiles exclusion on template copy

Jean-Noël Avila (2):
      l10n: fr.po: v2.11-rc0 first round
      l10n: fr.po: v2.12.0 round 2 3139t

Jiang Xin (3):
      l10n: git.pot: v2.12.0 round 1 (239 new, 15 removed)
      l10n: git.pot: v2.12.0 round 2 (2 new)
      l10n: zh_CN: for git v2.12.0 l10n round 2

Joachim Jablon (2):
      l10n: fr.po: Fix typos
      l10n: fr.po: Remove gender specific adjectives

Jordi Mas (4):
      l10n: New Catalan translation maintainer
      l10n: fixes to Catalan translation
      l10n: update Catalan translation
      l10n: Update Catalan translation

Junio C Hamano (1):
      Git 2.12

Patrick Steinhardt (1):
      docs/git-gc: fix default value for `--aggressiveDepth`

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (3137t0f0u)
      l10n: sv.po: Update Swedish translation (3139t0f0u)

Ralf Thielow (2):
      l10n: de.po: translate 241 messages
      git add -i: replace \t with blanks in the help message

Ray Chen (1):
      l10n: zh_CN: review for git v2.11.0 l10n

Trần Ngọc Quân (2):
      l10n: vi.po: Updated Vietnamese translation (3137t)
      l10n: vi.po (3139t): Updated 2 new messages for rc1

Vasco Almeida (1):
      l10n: pt_PT: update Portuguese tranlation

brian m. carlson (2):
      Documentation: correctly spell git worktree --detach
      Documentation: use brackets for optional arguments


Version v2.12.0-rc2; changes since v2.12.0-rc1:
-----------------------------------------------

Cornelius Weig (7):
      completion: teach submodule subcommands to complete options
      completion: add subcommand completion for rerere
      completion: improve bash completion for git-add
      completion: teach ls-remote to complete options
      completion: teach replace to complete options
      completion: teach remote subcommands to complete options
      completion: recognize more long-options

David Pursehouse (1):
      config.txt: fix formatting of submodule.alternateErrorStrategy section

Jacob Keller (1):
      reset: add an example of how to split a commit into two

Jeff King (3):
      docs/gitremote-helpers: fix unbalanced quotes
      docs/git-submodule: fix unbalanced quote
      tempfile: avoid "ferror | fclose" trick

Johannes Schindelin (1):
      mingw: make stderr unbuffered again

Junio C Hamano (4):
      A bit more for -rc2
      Revert "reset: add an example of how to split a commit into two"
      Hopefully the final batch of mini-topics before the final
      Git 2.12-rc2

Lars Schneider (1):
      git-p4: fix git-p4.pathEncoding for removed files

René Scharfe (9):
      add SWAP macro
      apply: use SWAP macro
      use SWAP macro
      diff: use SWAP macro
      graph: use SWAP macro
      cocci: detect useless free(3) calls
      ls-files: pass prefix length explicitly to prune_cache()
      ls-files: move only kept cache entries in prune_cache()
      rm: reuse strbuf for all remove_dir_recursively() calls, again

Stefan Beller (4):
      submodule documentation: add options to the subcommand
      submodule update documentation: don't repeat ourselves
      push options: pass push options to the transport helper
      Documentation: unify bottom "part of git suite" lines

Thomas Gummerer (1):
      Documentation/stash: remove mention of git reset --hard


Version v2.12.0-rc1; changes since v2.12.0-rc0:
-----------------------------------------------

Cornelius Weig (2):
      doc: add doc for git-push --recurse-submodules=only
      completion: add completion for --recurse-submodules=only

David Aguilar (3):
      difftool: fix bug when printing usage
      t7800: simplify basic usage test
      t7800: replace "wc -l" with test_line_count

Denton Liu (1):
      Document the --no-gui option in difftool

Eric Wong (1):
      completion: fix git svn authorship switches

Jacob Keller (1):
      reset: add an example of how to split a commit into two

Jeff King (1):
      diff: print line prefix for --name-only output

Junio C Hamano (1):
      Git 2.12-rc1

Nguyễn Thái Ngọc Duy (1):
      rev-list-options.txt: update --all about HEAD

Patrick Steinhardt (1):
      worktree: fix option descriptions for `prune`

René Scharfe (2):
      p5302: create repositories for index-pack results explicitly
      dir: avoid allocation in fill_directory()


Version v2.12.0-rc0; changes since v2.11.4:
-------------------------------------------

Alex Henrie (3):
      bisect: improve English grammar of not-ancestors message
      receive-pack: improve English grammar of denyCurrentBranch message
      clone,fetch: explain the shallow-clone option a little more clearly

Brandon Williams (38):
      real_path: resolve symlinks by hand
      real_path: convert real_path_internal to strbuf_realpath
      real_path: create real_pathdup
      real_path: have callers use real_pathdup and strbuf_realpath
      lib-proto-disable: variable name fix
      http: always warn if libcurl version is too old
      transport: add protocol policy config option
      http: create function to get curl allowed protocols
      transport: add from_user parameter to is_transport_allowed
      transport: reformat flag #defines to be more readable
      submodules: add RECURSE_SUBMODULES_ONLY value
      push: add option to push only submodules
      submodules: add helper to determine if a submodule is populated
      submodules: add helper to determine if a submodule is initialized
      submodules: load gitmodules file from commit sha1
      grep: add submodules as a grep source type
      grep: optionally recurse into submodules
      grep: enable recurse-submodules to work on <tree> objects
      grep: search history of moved submodules
      mv: remove use of deprecated 'get_pathspec()'
      dir: remove struct path_simplify
      dir: convert fill_directory to use the pathspec struct interface
      ls-tree: convert show_recursive to use the pathspec struct interface
      pathspec: remove the deprecated get_pathspec function
      pathspec: copy and free owned memory
      pathspec: remove unused variable from unsupported_magic
      pathspec: always show mnemonic and name in unsupported_magic
      pathspec: simpler logic to prefix original pathspec elements
      pathspec: factor global magic into its own function
      pathspec: create parse_short_magic function
      pathspec: create parse_long_magic function
      pathspec: create parse_element_magic helper
      pathspec: create strip submodule slash helpers
      pathspec: small readability changes
      pathspec: rename prefix_pathspec to init_pathspec_item
      real_path: prevent redefinition of MAXSYMLINKS
      real_path: set errno when max number of symlinks is exceeded
      index: improve constness for reading blob data

Chris Packham (3):
      merge: add '--continue' option as a synonym for 'git commit'
      completion: add --continue option for merge
      merge: ensure '--abort' option takes no arguments

Cornelius Weig (5):
      doc: clarify distinction between sign-off and pgp-signing
      config: add markup to core.logAllRefUpdates doc
      refs: add option core.logAllRefUpdates = always
      update-ref: add test cases for bare repository
      doc: add note about ignoring '--no-create-reflog'

David Aguilar (1):
      gitk: Remove translated message from comments

Dimitriy Ryazantcev (1):
      gitk: ru.po: Update Russian translation

Elia Pinto (2):
      builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
      builtin/commit.c: switch to strbuf, instead of snprintf()

George Vanburgh (1):
      git-p4: fix git-p4.mapUser on Windows

Heiko Voigt (1):
      help: improve is_executable() on Windows

Igor Kushnir (1):
      git-p4: do not pass '-r 0' to p4 commands

Jacob Keller (2):
      pretty: add %(trailers) format for displaying trailers of a commit message
      ref-filter: add support to display trailers as part of contents

Jeff King (25):
      xdiff: drop XDL_FAST_HASH
      http: respect protocol.*.allow=user for http-alternates
      merge: mark usage error strings for translation
      shortlog: test and document --committer option
      Revert "vreportf: avoid intermediate buffer"
      vreport: sanitize ASCII control chars
      t1450: refactor loose-object removal
      sha1_file: fix error message for alternate objects
      t1450: test fsck of packed objects
      sha1_file: add read_loose_object() function
      fsck: parse loose object paths directly
      fsck: detect trailing garbage in all object types
      t1450: clean up sub-objects in duplicate-entry test
      fsck: report trees as dangling
      fsck: prepare dummy objects for --connectivity-check
      fsck: tighten error-checks of "git fsck <head>"
      fsck: do not fallback "git fsck <bogus>" to "git fsck"
      fsck: check HAS_OBJ more consistently
      clear_delta_base_cache(): don't modify hashmap while iterating
      t1450: use "mv -f" within loose object directory
      difftool: hack around -Wzero-length-format warning
      fsck: move typename() printing to its own function
      fsck: lazily load types under --connectivity-only
      color_parse_mem: allow empty color spec
      document behavior of empty color name

Johannes Schindelin (50):
      mingw: add a regression test for pushing to UNC paths
      giteveryday: unbreak rendering with AsciiDoctor
      sequencer: avoid unnecessary curly braces
      sequencer: move "else" keyword onto the same line as preceding brace
      sequencer: use a helper to find the commit message
      sequencer: support a new action: 'interactive rebase'
      sequencer (rebase -i): implement the 'noop' command
      sequencer (rebase -i): implement the 'edit' command
      sequencer (rebase -i): implement the 'exec' command
      sequencer (rebase -i): learn about the 'verbose' mode
      sequencer (rebase -i): write the 'done' file
      sequencer (rebase -i): add support for the 'fixup' and 'squash' commands
      sequencer (rebase -i): implement the short commands
      sequencer (rebase -i): write an author-script file
      sequencer (rebase -i): allow continuing with staged changes
      sequencer (rebase -i): remove CHERRY_PICK_HEAD when no longer needed
      sequencer (rebase -i): skip some revert/cherry-pick specific code path
      sequencer (rebase -i): the todo can be empty when continuing
      sequencer (rebase -i): update refs after a successful rebase
      sequencer (rebase -i): leave a patch upon error
      sequencer (rebase -i): implement the 'reword' command
      sequencer (rebase -i): allow fast-forwarding for edit/reword
      sequencer (rebase -i): refactor setting the reflog message
      sequencer (rebase -i): set the reflog message consistently
      sequencer (rebase -i): copy commit notes at end
      sequencer (rebase -i): record interrupted commits in rewritten, too
      sequencer (rebase -i): run the post-rewrite hook, if needed
      sequencer (rebase -i): respect the rebase.autostash setting
      sequencer (rebase -i): respect strategy/strategy_opts settings
      sequencer (rebase -i): allow rescheduling commands
      sequencer (rebase -i): implement the 'drop' command
      sequencer (rebase -i): differentiate between comments and 'noop'
      difftool: add a skeleton for the upcoming builtin
      sequencer: update reading author-script
      sequencer: use run_command() directly
      sequencer (rebase -i): show only failed `git commit`'s output
      sequencer (rebase -i): show only failed cherry-picks' output
      sequencer (rebase -i): suggest --edit-todo upon unknown command
      sequencer (rebase -i): show the progress
      sequencer (rebase -i): write the progress into files
      sequencer (rebase -i): write out the final message
      difftool: implement the functionality in the builtin
      difftool: retire the scripted version
      remote rename: demonstrate a bogus "remote exists" bug
      remote rename: more carefully determine whether a remote is configured
      relink: retire the command
      status: be prepared for not-yet-started interactive rebase
      t/Makefile: add a rule to re-run previously-failed tests
      test-lib: on FreeBSD, look for unzip(1) in /usr/local/bin/
      mingw: allow hooks to be .exe files

Johannes Sixt (1):
      real_path: canonicalize directory separators in root parts

Jonathan Tan (5):
      trailer: be stricter in parsing separators
      commit: make ignore_non_trailer take buf/len
      trailer: avoid unnecessary splitting on lines
      trailer: have function to describe trailer layout
      sequencer: use trailer's trailer layout

Junio C Hamano (25):
      git_open(): untangle possible NOATIME and CLOEXEC interactions
      git_open_cloexec(): use fcntl(2) w/ FD_CLOEXEC fallback
      sha1_file: stop opening files with O_NOATIME
      Start post 2.11 cycle
      wt-status: implement opportunisitc index update correctly
      hold_locked_index(): align error handling with hold_lockfile_for_update()
      lockfile: LOCK_REPORT_ON_ERROR
      Early fixes for 2.11.x series
      First batch for 2.12
      Second batch for 2.12
      i18n: fix misconversion in shell scripts
      t4201: make tests work with and without the MINGW prerequiste
      Third batch for 2.12
      diff: retire "compaction" heuristics
      lockfile: move REPORT_ON_ERROR bit elsewhere
      Fourth batch for 2.12
      Fifth batch 2.12
      RelNotes: drop merge-later comments for maint
      Sixth batch for 2.12
      Seventh batch for 2.12
      show-ref: remove a stale comment
      relink: really remove the command
      Eighth batch for 2.12
      Ninth batch for 2.12; almost ready for -rc0
      Git 2.12-rc0

Lars Schneider (2):
      git-p4: add config to retry p4 commands; retry 3 times by default
      git-p4: add diff/merge properties to .gitattributes for GitLFS files

Linus Torvalds (1):
      shortlog: group by committer information

Lukas Puehringer (3):
      gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag
      ref-filter: add function to print single ref_array_item
      builtin/tag: add --format argument for tag -v

Luke Diamand (2):
      git-p4: support updating an existing shelved changelist
      git-p4: support git worktrees

Markus Hitter (3):
      gitk: Turn off undo manager in the text widget
      gitk: Remove closed file descriptors from $blobdifffd
      gitk: Clear array 'commitinfo' on reload

Matt McCutchen (1):
      t0001: don't let a default ACL interfere with the umask test

Nguyễn Thái Ngọc Duy (5):
      tag, branch, for-each-ref: add --ignore-case for sorting and filtering
      rebase: add --quit to cleanup rebase, leave everything else untouched
      color.c: fix color_parse_mem() with value_len == 0
      color.c: trim leading spaces in color_parse_mem()
      log --graph: customize the graph lines with config log.graphColors

Paul Mackerras (2):
      gitk: Use explicit RGB green instead of "lime"
      gitk: Update copyright notice to 2016

Peter Law (1):
      Completion: Add support for --submodule=diff

Philip Oakley (3):
      doc: gitk: remove gitview reference
      doc: gitk: add the upstream repo location
      doc: git-gui browser does not default to HEAD

Pranit Bauva (2):
      don't use test_must_fail with grep
      t9813: avoid using pipes

Ramsay Jones (1):
      GIT-VERSION-GEN: do not force abbreviation length used by 'describe'

René Scharfe (11):
      compat: add qsort_s()
      add QSORT_S
      perf: add basic sort performance test
      string-list: use QSORT_S in string_list_sort()
      ref-filter: use QSORT_S in ref_array_sort()
      abspath: add absolute_pathdup()
      use absolute_pathdup()
      use oid_to_hex_r() for converting struct object_id hashes to hex strings
      use oidcpy() for copying hashes between instances of struct object_id
      checkout: convert post_checkout_hook() to struct object_id
      receive-pack: call string_list_clear() unconditionally

Richard Hansen (16):
      .mailmap: record canonical email for Richard Hansen
      rev-parse doc: pass "--" to rev-parse in the --prefix example
      t7610: update branch names to match test number
      t7610: move setup code to the 'setup' test case
      t7610: use test_when_finished for cleanup tasks
      t7610: don't rely on state from previous test
      t7610: run 'git reset --hard' after each test to clean up
      t7610: delete some now-unnecessary 'git reset --hard' lines
      t7610: always work on a test-specific branch
      t7610: don't assume the checked-out commit
      t7610: spell 'git reset --hard' consistently
      t7610: add test case for rerere+mergetool+subdir bug
      mergetool: take the "-O" out of $orderfile
      mergetool: fix running in subdir when rerere enabled
      diff: document behavior of relative diff.orderFile
      diff: document the format of the -O (diff.orderFile) file

Rogier Goossens (3):
      gitk: Add a 'rename' option to the branch context menu
      gitk: Allow checking out a remote branch
      gitk: Include commit title in branch dialog

SZEDER Gábor (9):
      t7004-tag: delete unnecessary tags with test_when_finished
      t7004-tag: use test_config helper
      t7004-tag: add version sort tests to show prerelease reordering issues
      versioncmp: pass full tagnames to swap_prereleases()
      versioncmp: cope with common part overlapping with prerelease suffix
      versioncmp: use earliest-longest contained suffix to determine sorting order
      versioncmp: factor out helper for suffix matching
      versioncmp: generalize version sort suffix reordering
      .mailmap: update Gábor Szeder's email address

Santiago Torres (3):
      builtin/verify-tag: add --format to verify-tag
      t/t7030-verify-tag: Add --format specifier tests
      t/t7004-tag: Add --format specifier tests

Satoshi Yasushima (1):
      gitk: Fix Japanese translation for "marked commit"

Stefan Beller (35):
      submodule config: inline config_from_{name, path}
      submodule-config: rename commit_sha1 to treeish_name
      submodule-config: clarify parsing of null_sha1 element
      submodule add: extend force flag to add existing repos
      submodule: use absolute path for computing relative path connecting
      submodule helper: support super prefix
      test-lib-functions.sh: teach test_commit -C <dir>
      worktree: check if a submodule uses worktrees
      move connect_work_tree_and_git_dir to dir.h
      submodule: add absorb-git-dir function
      worktree: initialize return value for submodule_uses_worktrees
      submodule.h: add extern keyword to functions
      submodule: modernize ok_to_remove_submodule to use argv_array
      submodule: rename and add flags to ok_to_remove_submodule
      rm: absorb a submodules git dir before deletion
      submodule.c: use GIT_DIR_ENVIRONMENT consistently
      contrib: remove gitview
      pathspec: give better message for submodule related pathspec error
      unpack-trees: move checkout state into check_updates
      unpack-trees: remove unneeded continue
      unpack-trees: factor progress setup out of check_updates
      read-tree: use OPT_BOOL instead of OPT_SET_INT
      t1000: modernize style
      t1001: modernize style
      submodule absorbgitdirs: mention in docstring help
      t7411: quote URLs
      t7411: test lookup of uninitialized submodules
      submodule update --init: display correct path from submodule
      lib-submodule-update.sh: reduce use of subshell by using "git -C"
      contrib: remove git-convert-objects
      unpack-trees: support super-prefix option
      setup: add gentle version of resolve_git_dir
      cache.h: expose the dying procedure for reading gitlinks
      submodule absorbing: fix worktree/gitdir pointers recursively for non-moves
      submodule update: run custom update script for initial populating as well

Stefan Dotterweich (1):
      gitk: Fix missing commits when using -S or -G

Steven Penny (2):
      Makefile: POSIX windres
      Makefile: put LIBS after LDFLAGS for imap-send

Vasco Almeida (18):
      gitk: Makefile: create install bin directory
      gitk: Add Portuguese translation
      Git.pm: add subroutines for commenting lines
      i18n: add--interactive: mark strings for translation
      i18n: add--interactive: mark simple here-documents for translation
      i18n: add--interactive: mark strings with interpolation for translation
      i18n: clean.c: match string with git-add--interactive.perl
      i18n: add--interactive: mark plural strings
      i18n: add--interactive: mark patch prompt for translation
      i18n: add--interactive: i18n of help_patch_cmd
      i18n: add--interactive: mark edit_hunk_manually message for translation
      i18n: add--interactive: remove %patch_modes entries
      i18n: add--interactive: mark status words for translation
      i18n: send-email: mark strings for translation
      i18n: send-email: mark warnings and errors for translation
      i18n: send-email: mark string with interpolation for translation
      i18n: send-email: mark composing message for translation
      i18n: difftool: mark warnings for translation

Vegard Nossum (1):
      diff: add interhunk context config option

Vinicius Kursancew (1):
      git-p4: allow submit to create shelved changelists.

Vitaly "_Vi" Shukela (1):
      submodule--helper: set alternateLocation for cloned submodules

Vladimir Panteleev (5):
      show-ref: accept HEAD with --verify
      show-ref: allow -d to work with --verify
      show-ref: move --quiet handling into show_one()
      show-ref: detect dangling refs under --verify as well
      show-ref: remove dead `if (verify)' check

brian m. carlson (8):
      Documentation: fix warning in cat-texi.perl
      Documentation: modernize cat-texi.perl
      Documentation: remove unneeded argument in cat-texi.perl
      Documentation: sort sources for gitman.texi
      Documentation: add XSLT to fix DocBook for Texinfo
      Documentation: move dblatex arguments into variable
      Makefile: add a knob to enable the use of Asciidoctor
      Documentation: implement linkgit macro for Asciidoctor

마누엘 (1):
      asciidoctor: fix user-manual to be built by `asciidoctor`


Version v2.11.4; changes since v2.11.3:
---------------------------------------

Jeff King (3):
      shell: drop git-cvsserver support by default
      archimport: use safe_pipe_capture for user input
      cvsimport: shell-quote variable used in backticks

Junio C Hamano (4):
      cvsserver: move safe_pipe_capture() to the main package
      cvsserver: use safe_pipe_capture for `constant commands` as well
      Git 2.10.5
      Git 2.11.4

joernchen (1):
      cvsserver: use safe_pipe_capture instead of backticks


Version v2.11.3; changes since v2.11.2:
---------------------------------------

Jeff King (4):
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (6):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6
      Git 2.8.6
      Git 2.9.5
      Git 2.10.4
      Git 2.11.3


Version v2.11.2; changes since v2.11.1:
---------------------------------------

Jeff King (1):
      shell: disallow repo names beginning with dash

Junio C Hamano (8):
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7
      Git 2.7.5
      Git 2.8.5
      Git 2.9.4
      Git 2.10.3
      Git 2.11.2


Version v2.11.1; changes since v2.11.0:
---------------------------------------

Alan Davies (1):
      mingw: fix colourization on Cygwin pseudo terminals

Andreas Krey (2):
      commit: make --only --allow-empty work without paths
      commit: remove 'Clever' message for --only --amend

Beat Bolli (6):
      update_unicode.sh: move it into contrib/update-unicode
      update_unicode.sh: remove an unnecessary subshell level
      update_unicode.sh: pin the uniset repo to a known good commit
      update_unicode.sh: automatically download newer definition files
      update_unicode.sh: remove the plane filter
      unicode_width.h: update the width tables to Unicode 9.0

Brandon Williams (2):
      push: --dry-run updates submodules when --recurse-submodules=on-demand
      push: fix --dry-run to not push submodules

Christian Couder (1):
      Documentation/bisect: improve on (bad|new) and (good|bad)

David Aguilar (8):
      mergetool: honor mergetool.$tool.trustExitCode for built-in tools
      mergetools/vimdiff: trust Vim's exit code
      difftool: fix dir-diff index creation when in a subdirectory
      difftool: fix dir-diff index creation when in a subdirectory
      difftool: sanitize $workdir as early as possible
      difftool: chdir as early as possible
      difftool: rename variables for consistency
      mergetools: fix xxdiff hotkeys

David Turner (5):
      submodules: allow empty working-tree dirs in merge/cherry-pick
      remote-curl: don't hang when a server dies before any output
      upload-pack: optionally allow fetching any sha1
      auto gc: don't write bitmaps for incremental repacks
      repack: die on incremental + write-bitmap-index

Dennis Kaarsemaker (1):
      push: test pushing ambiguously named branches

Eric Wong (2):
      git-svn: allow "0" in SVN path components
      git-svn: document useLogAuthor and addAuthorFrom config keys

George Vanburgh (1):
      git-p4: fix multi-path changelist empty commits

Heiko Voigt (4):
      serialize collection of changed submodules
      serialize collection of refs that contain submodule changes
      batch check whether submodule needs pushing into one call
      submodule_needs_pushing(): explain the behaviour when we cannot answer

Jack Bates (1):
      diff: handle --no-abbrev in no-index case

Jeff Hostetler (1):
      mingw: replace isatty() hack

Jeff King (32):
      rev-parse: fix parent shorthands with --symbolic
      t7610: clean up foo.XXXXXX tmpdir
      http: simplify update_url_from_redirect
      http: always update the base URL for redirects
      remote-curl: rename shadowed options variable
      http: make redirects more obvious
      http: treat http-alternates like redirects
      http-walker: complain about non-404 loose object errors
      stash: prefer plumbing over git-diff
      alternates: accept double-quoted paths
      tmp-objdir: quote paths we add to alternates
      Makefile: reformat FIND_SOURCE_FILES
      Makefile: exclude test cruft from FIND_SOURCE_FILES
      Makefile: match shell scripts in FIND_SOURCE_FILES
      Makefile: exclude contrib from FIND_SOURCE_FILES
      parse-options: print "fatal:" before usage_msg_opt()
      README: replace gmane link with public-inbox
      t5000: extract nongit function to test-lib-functions.sh
      index-pack: complain when --stdin is used outside of a repo
      t: use nongit() function where applicable
      index-pack: skip collision check when not in repository
      archive-zip: load userdiff config
      rebase--interactive: count squash commits above 10 correctly
      blame: fix alignment with --abbrev=40
      blame: handle --no-abbrev
      blame: output porcelain "previous" header for each file
      git_exec_path: do not return the result of getenv()
      execv_dashed_external: use child_process struct
      execv_dashed_external: stop exiting with negative code
      execv_dashed_external: wait for child on signal death
      t7810: avoid assumption about invalid regex syntax
      CodingGuidelines: clarify multi-line brace style

Johannes Schindelin (6):
      cherry-pick: demonstrate a segmentation fault
      merge-recursive: handle NULL in add_cacheinfo() correctly
      mingw: intercept isatty() to handle /dev/null as Git expects it
      mingw: adjust is_console() to work with stdin
      git_exec_path: avoid Coverity warning about unfree()d result
      mingw: follow-up to "replace isatty() hack"

Johannes Sixt (3):
      t5547-push-quarantine: run the path separator test on Windows, too
      normalize_path_copy(): fix pushing to //server/share/dir on Windows
      t5615-alternate-env: double-quotes in file names do not work on Windows

Jonathan Tan (1):
      fetch: do not redundantly calculate tag refmap

Junio C Hamano (11):
      utf8: refactor code to decide fallback encoding
      utf8: accept "latin-1" as ISO-8859-1
      push: do not use potentially ambiguous default refspec
      compression: unify pack.compression configuration parsing
      pull: fast-forward "pull --rebase=true"
      preparing for 2.10.3
      Revert "sequencer: remove useless get_dir() function"
      config.abbrev: document the new default that auto-scales
      Almost ready for 2.11.1
      Ready for 2.11.1
      Git 2.11.1

Kristoffer Haugsbakk (4):
      doc: add articles (grammar)
      doc: add verb in front of command to run
      doc: make the intent of sentence clearer
      doc: omit needless "for"

Kyle J. McKay (1):
      mailinfo.c: move side-effects outside of assert

Kyle Meyer (1):
      branch_get_push: do not segfault when HEAD is detached

Lars Schneider (6):
      travis-ci: update P4 to 16.2 and GitLFS to 1.5.2 in Linux build
      git-p4: fix empty file processing for large file system backend GitLFS
      t0021: minor filter process test cleanup
      docs: warn about possible '=' in clean/smudge filter process values
      t0021: fix flaky test
      travis-ci: fix Perforce install on macOS

Luis Ressel (1):
      date-formats.txt: Typo fix

Luke Diamand (1):
      git-p4: avoid crash adding symlinked directory

Matt McCutchen (2):
      doc: mention transfer data leaks in more places
      git-gc.txt: expand discussion of races with other processes

Max Kirillov (1):
      mingw: consider that UNICODE_STRING::Length counts bytes

Mike Hommey (1):
      fast-import: properly fanout notes when tree is imported

Nguyễn Thái Ngọc Duy (13):
      worktree.c: zero new 'struct worktree' on allocation
      worktree: reorder an if statement
      get_worktrees() must return main worktree as first item even on error
      worktree.c: get_worktrees() takes a new flag argument
      worktree list: keep the list sorted
      merge-recursive.c: use string_list_sort instead of qsort
      shallow.c: rename fields in paint_info to better express their purposes
      shallow.c: stop abusing COMMIT_SLAB_SIZE for paint_info's memory pools
      shallow.c: make paint_alloc slightly more robust
      shallow.c: remove useless code
      config.c: handle error case for fstat() calls
      config.c: rename label unlock_and_out
      config.c: handle lock file in error case in git_config_rename_...

Rasmus Villemoes (2):
      shallow.c: avoid theoretical pointer wrap-around
      shallow.c: bit manipulation tweaks

Stefan Beller (7):
      unpack-trees: fix grammar for untracked files in directories
      t3600: remove useless redirect
      t3600: slightly modernize style
      cache.h: document index_name_pos
      cache.h: document remove_index_entry_at
      cache.h: document add_[file_]to_index
      documentation: retire unfinished documentation

Stephan Beyer (5):
      am: fix filename in safe_to_abort() error message
      am: change safe_to_abort()'s not rewinding error into a warning
      t3510: test that cherry-pick --abort does not unsafely change HEAD
      sequencer: make sequencer abort safer
      sequencer: remove useless get_dir() function

Torsten Bögershausen (1):
      convert: git cherry-pick -Xrenormalize did not work

Wolfram Sang (1):
      request-pull: drop old USAGE stuff


Version v2.11.0; changes since v2.11.0-rc3:
-------------------------------------------

Alex Henrie (1):
      l10n: ca.po: update translation

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Jeff King (1):
      common-main: stop munging argv[0] path

Jiang Xin (1):
      l10n: fix unmatched single quote in error message

Junio C Hamano (1):
      Git 2.11

Marc Branchaud (1):
      RelNotes: spelling and phrasing fixups

Ralf Thielow (1):
      l10n: de.po: translate 210 new messages


Version v2.11.0-rc3; changes since v2.11.0-rc2:
-----------------------------------------------

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Jean-Noël Avila (1):
      l10n: fr.po v2.11.0_rnd1

Jiang Xin (5):
      l10n: git.pot: v2.11.0 round 1 (209 new, 53 removed)
      l10n: zh_CN: for git v2.11.0 l10n round 1
      i18n: fix unmatched single quote in error message
      l10n: git.pot: v2.11.0 round 2 (1 new, 1 removed)
      l10n: Fixed typo of git fetch-pack command

Johannes Schindelin (3):
      rebase -i: highlight problems with core.commentchar
      stripspace: respect repository config
      rebase -i: handle core.commentChar=auto

Jonathan Tan (1):
      doc: mention user-configured trailers

Junio C Hamano (4):
      for-each-ref: do not segv with %(HEAD) on an unborn branch
      mailinfo: read local configuration
      archive: read local configuration
      Git 2.11-rc3

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (2913t0f0u)

Trần Ngọc Quân (1):
      l10n: vi.po: Updated translation to v2.11.0 (2913t)

Vasco Almeida (1):
      l10n: pt_PT: update Portuguese translation

jfbu (1):
      l10n: fr.po fix grammar mistakes


Version v2.11.0-rc2; changes since v2.11.0-rc1:
-----------------------------------------------

Ben North (1):
      git-worktree.txt: fix typo "to"/"two", and add comma

Jeff King (1):
      create_branch: drop unused "head" parameter

Junio C Hamano (1):
      Git 2.11-rc2

Tobias Klauser (1):
      diffcore-delta: remove unused parameter to diffcore_count_changes()


Version v2.11.0-rc1; changes since v2.11.0-rc0:
-----------------------------------------------

Andreas Schwab (2):
      t6026-merge-attr: don't fail if sleep exits early
      t6026-merge-attr: ensure that the merge driver was called

Christian Couder (1):
      split-index: s/eith/with/ typo fix

Jeff King (6):
      t0021: use write_script to create rot13 shell script
      t0021: put $TEST_ROOT in $PATH
      t0021: use $PERL_PATH for rot13-filter.pl
      t0021: fix filehandle usage on older perl
      alternates: re-allow relative paths from environment
      sequencer: silence -Wtautological-constant-out-of-range-compare

Johannes Schindelin (1):
      t6026: ensure that long-running script really is

Johannes Sixt (4):
      t0021: expect more variations in the output of uniq -c
      t0021: compute file size with a single process instead of a pipeline
      t0021, t5615: use $PWD instead of $(pwd) in PATH-like shell variables
      t6026: clarify the point of "kill $(cat sleep.pid)"

Junio C Hamano (5):
      A bit of updates post -rc0
      Revert "t6026-merge-attr: ensure that the merge driver was called"
      Revert "t6026-merge-attr: don't fail if sleep exits early"
      t0021: remove debugging cruft
      Git 2.11.0-rc1

Lars Schneider (2):
      Makefile: set NO_OPENSSL on macOS by default
      travis-ci: disable GIT_TEST_HTTPD for macOS

Patrick Steinhardt (1):
      doc: fix location of 'info/' with $GIT_COMMON_DIR

Ralf Thielow (1):
      fetch-pack.c: correct command at the beginning of an error message

René Scharfe (2):
      sha1_name: make wraparound of the index into ring-buffer explicit
      cocci: avoid self-references in object_id transformations


Version v2.11.0-rc0; changes since v2.10.5:
-------------------------------------------

Aaron M Watson (1):
      stash: allow stashes to be referenced by index only

Alex Riesen (2):
      git-gui: support for $FILENAMES in tool definitions
      git-gui: ensure the file in the diff pane is in the list of selected files

Alexander Shopov (2):
      git-gui i18n: Updated Bulgarian translation (565,0f,0u)
      git-gui: Mark 'All' in remote.tcl for translation

Brandon Williams (4):
      git: make super-prefix option
      ls-files: optionally recurse into submodules
      ls-files: pass through safe options for --recurse-submodules
      ls-files: add pathspec matching for submodules

Christian Couder (42):
      apply: make some names more specific
      apply: move 'struct apply_state' to apply.h
      builtin/apply: make apply_patch() return -1 or -128 instead of die()ing
      builtin/apply: read_patch_file() return -1 instead of die()ing
      builtin/apply: make find_header() return -128 instead of die()ing
      builtin/apply: make parse_chunk() return a negative integer on error
      builtin/apply: make parse_single_patch() return -1 on error
      builtin/apply: make parse_whitespace_option() return -1 instead of die()ing
      builtin/apply: make parse_ignorewhitespace_option() return -1 instead of die()ing
      builtin/apply: move init_apply_state() to apply.c
      apply: make init_apply_state() return -1 instead of exit()ing
      builtin/apply: make check_apply_state() return -1 instead of die()ing
      builtin/apply: move check_apply_state() to apply.c
      builtin/apply: make apply_all_patches() return 128 or 1 on error
      builtin/apply: make parse_traditional_patch() return -1 on error
      builtin/apply: make gitdiff_*() return 1 at end of header
      builtin/apply: make gitdiff_*() return -1 on error
      builtin/apply: change die_on_unsafe_path() to check_unsafe_path()
      builtin/apply: make build_fake_ancestor() return -1 on error
      builtin/apply: make remove_file() return -1 on error
      builtin/apply: make add_conflicted_stages_file() return -1 on error
      builtin/apply: make add_index_file() return -1 on error
      builtin/apply: make create_file() return -1 on error
      builtin/apply: make write_out_one_result() return -1 on error
      builtin/apply: make write_out_results() return -1 on error
      unpack-objects: add --max-input-size=<size> option
      builtin/apply: make try_create_file() return -1 on error
      builtin/apply: make create_one_file() return -1 on error
      builtin/apply: rename option parsing functions
      apply: rename and move opt constants to apply.h
      apply: move libified code from builtin/apply.c to apply.{c,h}
      apply: make some parsing functions static again
      apply: use error_errno() where possible
      apply: make it possible to silently apply
      apply: don't print on stdout in verbosity_silent mode
      usage: add set_warn_routine()
      usage: add get_error_routine() and get_warn_routine()
      apply: change error_routine when silent
      apply: refactor `git apply` option parsing
      apply: pass apply state to build_fake_ancestor()
      apply: learn to use a different index file
      builtin/am: use apply API in run_apply()

David Aguilar (4):
      mergetool: add copyright
      mergetool: move main program flow into a main() function
      mergetool: honor diff.orderFile
      mergetool: honor -O<orderfile>

David Turner (9):
      rename_ref_available(): add docstring
      refs: add methods for reflog
      refs: add method for initial ref transaction commit
      refs: make delete_refs() virtual
      refs: add methods to init refs db
      refs: add method to rename refs
      refs: make lock generic
      refs: implement iteration over only per-worktree refs
      fsck: handle bad trees like other errors

Dimitriy Ryazantcev (1):
      git-gui: Update Russian translation

Elia Pinto (1):
      git-gui/po/glossary/txt-to-pot.sh: use the $( ... ) construct for command substitution

Emily Xie (1):
      pathspec: warn on empty strings as pathspec

Eric Wong (2):
      git-svn: reduce scope of input record separator change
      git-svn: "git worktree" awareness

Gavin Lambert (1):
      git-svn: do not reuse caches memoized for a different architecture

Ian Kelling (2):
      gitweb: remove unused guess_file_syntax() parameter
      gitweb: use highlight's shebang detection

Jacob Keller (9):
      format-patch: show 0/1 and 1/1 for singleton patch with cover letter
      cache: add empty_tree_oid object and helper function
      graph: add support for --line-prefix on all graph-aware output
      diff: prepare for additional submodule formats
      allow do_submodule_path to work even if submodule isn't checked out
      submodule: convert show_submodule_summary to use struct object_id *
      submodule: refactor show_submodule_summary with helper function
      diff: teach diff to display submodule difference with an inline diff
      rev-list: use hdr_termination instead of a always using a newline

Jean-Noël Avila (1):
      i18n: i18n: diff: mark die messages for translation

Jeff Hostetler (9):
      status: rename long-format print routines
      status: cleanup API to wt_status_print
      status: support --porcelain[=<version>]
      status: collect per-file data for --porcelain=v2
      status: print per-file porcelain v2 status data
      status: print branch info with --porcelain=v2 --branch
      git-status.txt: describe --porcelain=v2 format
      test-lib-functions.sh: add lf_to_nul helper
      status: unit tests for --porcelain=v2

Jeff King (75):
      provide an initializer for "struct object_info"
      sha1_file: make packed_object_info public
      pack-objects: break delta cycles before delta-search phase
      pack-objects: use mru list when iterating over packs
      cache_or_unpack_entry: drop keep_cache parameter
      clear_delta_base_cache_entry: use a more descriptive name
      release_delta_base_cache: reuse existing detach function
      delta_base_cache: use list.h for LRU
      delta_base_cache: drop special treatment of blobs
      delta_base_cache: use hashmap.h
      t/perf: add basic perf tests for delta base cache
      index-pack: add --max-input-size=<size> option
      receive-pack: allow a maximum input size to be specified
      add_delta_base_cache: use list_for_each_safe
      hash-object: always try to set up the git repository
      patch-id: use RUN_SETUP_GENTLY
      diff: skip implicit no-index check when given --no-index
      diff: handle --no-index prefixes consistently
      diff: always try to set up the repository
      pager: remove obsolete comment
      pager: stop loading git_default_config()
      pager: make pager_program a file-local static
      pager: use callbacks instead of configset
      pager: handle early config
      t1302: use "git -C"
      test-config: setup git directory
      config: only read .git/config from configured repos
      init: expand comments explaining config trickery
      init: reset cached config when entering new repo
      t1007: factor out repeated setup
      clone: pass --progress decision to recursive submodules
      get_sha1: detect buggy calls with multiple disambiguators
      get_sha1: avoid repeating ourselves via ONLY_TO_DIE
      get_sha1: propagate flags to child functions
      get_short_sha1: parse tags when looking for treeish
      get_short_sha1: refactor init of disambiguation code
      get_short_sha1: NUL-terminate hex prefix
      get_short_sha1: mark ambiguity error for translation
      sha1_array: let callbacks interrupt iteration
      for_each_abbrev: drop duplicate objects
      get_short_sha1: list ambiguous objects on error
      xdiff: rename "struct group" to "struct xdlgroup"
      get_short_sha1: make default disambiguation configurable
      tree-walk: be more specific about corrupt tree errors
      t5613: drop reachable_via function
      t5613: drop test_valid_repo function
      t5613: use test_must_fail
      t5613: whitespace/style cleanups
      t5613: do not chdir in main process
      find_unique_abbrev: move logic out of get_short_sha1()
      t5613: clarify "too deep" recursion tests
      link_alt_odb_entry: handle normalize_path errors
      link_alt_odb_entry: refactor string handling
      alternates: provide helper for adding to alternates list
      alternates: provide helper for allocating alternate
      alternates: encapsulate alt->base munging
      alternates: use a separate scratch space
      fill_sha1_file: write "boring" characters
      alternates: store scratch buffer as strbuf
      fill_sha1_file: write into a strbuf
      count-objects: report alternates via verbose mode
      sha1_file: always allow relative paths to alternates
      alternates: use fspathcmp to detect duplicates
      check_connected: accept an env argument
      tmp-objdir: introduce API for temporary object directories
      receive-pack: quarantine objects until pre-receive accepts
      tmp-objdir: put quarantine information in the environment
      tmp-objdir: do not migrate files starting with '.'
      upload-pack: use priority queue in reachable() check
      read info/{attributes,exclude} only when in repository
      test-*-cache-tree: setup git dir
      find_unique_abbrev: use 4-buffer ring
      diff_unique_abbrev: rename to diff_aligned_abbrev
      diff_aligned_abbrev: use "struct oid"
      diff: handle sha1 abbreviations outside of repository

Johannes Schindelin (54):
      cat-file: fix a grammo in the man page
      sequencer: lib'ify sequencer_pick_revisions()
      sequencer: do not die() in do_pick_commit()
      sequencer: lib'ify write_message()
      sequencer: lib'ify do_recursive_merge()
      sequencer: lib'ify do_pick_commit()
      sequencer: lib'ify walk_revs_populate_todo()
      sequencer: lib'ify prepare_revs()
      sequencer: lib'ify read_and_refresh_cache()
      sequencer: lib'ify read_populate_todo()
      sequencer: lib'ify read_populate_opts()
      sequencer: lib'ify create_seq_dir()
      sequencer: lib'ify save_head()
      sequencer: lib'ify save_todo()
      sequencer: lib'ify save_opts()
      sequencer: lib'ify fast_forward_to()
      sequencer: lib'ify checkout_fast_forward()
      sequencer: ensure to release the lock when we could not read the index
      cat-file: introduce the --filters option
      cat-file --textconv/--filters: allow specifying the path separately
      cat-file: support --textconv/--filters in batch mode
      pull: drop confusing prefix parameter of die_on_unclean_work_tree()
      pull: make code more similar to the shell script again
      wt-status: make the require_clean_work_tree() function reusable
      wt-status: export also the has_un{staged,committed}_changes() functions
      wt-status: teach has_{unstaged,uncommitted}_changes() about submodules
      wt-status: begin error messages with lower-case
      sequencer: use static initializers for replay_opts
      sequencer: use memoized sequencer directory path
      sequencer: avoid unnecessary indirection
      sequencer: future-proof remove_sequencer_state()
      sequencer: plug memory leaks for the option values
      sequencer: future-proof read_populate_todo()
      sequencer: refactor the code to obtain a short commit name
      sequencer: completely revamp the "todo" script parsing
      sequencer: strip CR from the todo script
      sequencer: avoid completely different messages for different actions
      sequencer: get rid of the subcommand field
      sequencer: remember the onelines when parsing the todo file
      sequencer: prepare for rebase -i's commit functionality
      sequencer: introduce a helper to read files written by scripts
      sequencer: allow editing the commit message on a case-by-case basis
      sequencer: support amending commits
      sequencer: support cleaning up commit messages
      sequencer: left-trim lines read from the script
      sequencer: stop releasing the strbuf in write_message()
      sequencer: roll back lock file if write_message() failed
      sequencer: refactor write_message() to take a pointer/length
      sequencer: teach write_message() to append an optional LF
      sequencer: remove overzealous assumption in rebase -i mode
      sequencer: mark action_name() for translation
      sequencer: quote filenames in error messages
      sequencer: start error messages consistently with lower case
      sequencer: mark all error messages for translation

Johannes Sixt (1):
      t0060: sidestep surprising path mangling results on Windows

Jonathan Nieder (1):
      connect: tighten check for unexpected early hang up

Jonathan Tan (13):
      tests: move test_lazy_prereq JGIT to test-lib.sh
      connect: advertized capability is not a ref
      mailinfo: separate in-body header processing
      mailinfo: make is_scissors_line take plain char *
      mailinfo: handle in-body header continuations
      trailer: improve const correctness
      trailer: use list.h for doubly-linked list
      trailer: streamline trailer item create and add
      trailer: make args have their own struct
      trailer: clarify failure modes in parse_trailer
      trailer: allow non-trailers in trailer block
      trailer: forbid leading whitespace in trailers
      trailer: support values folded to multiple lines

Josh Triplett (1):
      format-patch: add "--rfc" for the common case of [RFC PATCH]

Junio C Hamano (27):
      blame: improve diagnosis for "--reverse NEW"
      blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
      diff.c: remove output_prefix_length field
      Start the 2.11 cycle
      First batch for 2.11
      Second batch for 2.11
      Third batch for 2.11
      Fourth batch for 2.11
      Fifth batch for 2.11
      Sixth batch for 2.11
      abbrev: add FALLBACK_DEFAULT_ABBREV to prepare for auto sizing
      abbrev: prepare for new world order
      Seventh batch for 2.11
      t4015: split out the "setup" part of ws-error-highlight test
      diff.c: refactor parse_ws_error_highlight()
      diff.c: move ws-error-highlight parsing helpers up
      diff: introduce diff.wsErrorHighlight option
      Eighth batch for 2.11
      Ninth batch for 2.11
      Tenth batch for 2.11
      transport: pass summary_width down the callchain
      fetch: pass summary_width down the callchain
      transport: allow summary-width to be computed dynamically
      transport: compute summary-width dynamically
      Eleventh batch for 2.11
      Getting ready for 2.11-rc0
      Git 2.11-rc0

Karsten Blees (2):
      git-gui: unicode file name support on windows
      git-gui: handle the encoding of Git's output correctly

Kirill Smelkov (2):
      pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use
      pack-objects: use reachability bitmap index when generating non-stdout pack

Lars Schneider (17):
      convert: quote filter names in error messages
      convert: modernize tests
      run-command: move check_pipe() from write_or_die to run_command
      run-command: add clean_on_exit_handler
      pkt-line: rename packet_write() to packet_write_fmt()
      pkt-line: extract set_packet_header()
      pkt-line: add packet_write_fmt_gently()
      pkt-line: add packet_flush_gently()
      pkt-line: add packet_write_gently()
      pkt-line: add functions to read/write flush terminated packet streams
      convert: make apply_filter() adhere to standard Git error handling
      convert: prepare filter.<driver>.process option
      convert: add filter.<driver>.process option
      contrib/long-running-filter: add long running filter example
      sha1_file: rename git_open_noatime() to git_open()
      sha1_file: open window into packfiles with O_CLOEXEC
      read-cache: make sure file handles are not inherited by child processes

Linus Torvalds (1):
      abbrev: auto size the default abbreviation

Mantas Mikulėnas (1):
      contrib: add credential helper for libsecret

Michael Haggerty (36):
      xdl_change_compact(): fix compaction heuristic to adjust ixo
      xdl_change_compact(): only use heuristic if group can't be matched
      is_blank_line(): take a single xrecord_t as argument
      recs_match(): take two xrecord_t pointers as arguments
      xdl_change_compact(): introduce the concept of a change group
      resolve_gitlink_ref(): eliminate temporary variable
      refs: rename struct ref_cache to files_ref_store
      refs: create a base class "ref_store" for files_ref_store
      add_packed_ref(): add a files_ref_store argument
      get_packed_ref(): add a files_ref_store argument
      resolve_missing_loose_ref(): add a files_ref_store argument
      {lock,commit,rollback}_packed_refs(): add files_ref_store arguments
      refs: reorder definitions
      resolve_packed_ref(): rename function from resolve_missing_loose_ref()
      resolve_gitlink_packed_ref(): remove function
      read_raw_ref(): take a (struct ref_store *) argument
      resolve_ref_recursively(): new function
      resolve_gitlink_ref(): implement using resolve_ref_recursively()
      resolve_gitlink_ref(): avoid memory allocation in many cases
      resolve_gitlink_ref(): rename path parameter to submodule
      refs: make read_raw_ref() virtual
      refs: make verify_refname_available() virtual
      refs: make pack_refs() virtual
      refs: make create_symref() virtual
      refs: make peel_ref() virtual
      repack_without_refs(): add a files_ref_store argument
      lock_raw_ref(): add a files_ref_store argument
      commit_ref_update(): add a files_ref_store argument
      lock_ref_for_update(): add a files_ref_store argument
      lock_ref_sha1_basic(): add a files_ref_store argument
      split_symref_update(): add a files_ref_store argument
      files_ref_iterator_begin(): take a ref_store argument
      refs: add method iterator_begin
      diff: improve positioning of add/delete blocks in diffs
      parse-options: add parse_opt_unknown_cb()
      blame: honor the diff heuristic options and config

Michael J Gruber (1):
      gpg-interface: use more status letters

Nguyễn Thái Ngọc Duy (36):
      remote-curl.c: convert fetch_git() to use argv_array
      transport-helper.c: refactor set_helper_option()
      upload-pack: move shallow deepen code out of receive_needs()
      upload-pack: move "shallow" sending code out of deepen()
      upload-pack: remove unused variable "backup"
      upload-pack: move "unshallow" sending code out of deepen()
      upload-pack: use skip_prefix() instead of starts_with()
      upload-pack: tighten number parsing at "deepen" lines
      upload-pack: make check_non_tip() clean things up on error
      upload-pack: move rev-list code out of check_non_tip()
      fetch-pack: use skip_prefix() instead of starts_with()
      fetch-pack: use a common function for verbose printing
      fetch-pack.c: mark strings for translating
      fetch-pack: use a separate flag for fetch in deepening mode
      shallow.c: implement a generic shallow boundary finder based on rev-list
      upload-pack: add deepen-since to cut shallow repos based on time
      fetch: define shallow boundary with --shallow-since
      clone: define shallow clone boundary based on time with --shallow-since
      t5500, t5539: tests for shallow depth since a specific date
      refs: add expand_ref()
      upload-pack: support define shallow boundary by excluding revisions
      fetch: define shallow boundary with --shallow-exclude
      clone: define shallow clone boundary with --shallow-exclude
      t5500, t5539: tests for shallow depth excluding a ref
      upload-pack: split check_unreachable() in two, prep for get_reachable_list()
      upload-pack: add get_reachable_list()
      fetch, upload-pack: --deepen=N extends shallow boundary by N commits
      init: correct re-initialization from a linked worktree
      init: call set_git_dir_init() from within init_db()
      init: kill set_git_dir_init()
      init: do not set unnecessary core.worktree
      init: kill git_link variable
      diff-lib: allow ita entries treated as "not yet exist in index"
      diff: add --ita-[in]visible-in-index
      commit: fix empty commit creation when there's no changes but ita entries
      commit: don't be fooled by ita entries when creating initial commit

Olaf Hering (1):
      git-gui: sort entries in tclIndex

Orgad Shaneh (1):
      git-gui: Do not reset author details on amend

Pat Thoyts (7):
      Allow keyboard control to work in the staging widgets.
      Amend tab ordering and text widget border and highlighting.
      git-gui: fix detection of Cygwin
      git-gui (Windows): use git-gui.exe in `Create Desktop Shortcut`
      git-gui: maintain backwards compatibility for merge syntax
      git-gui: avoid persisting modified author identity
      git-gui: set version 0.21

Petr Stodulka (1):
      http: control GSSAPI credential delegation

Ralf Thielow (2):
      help: introduce option --exclude-guides
      help: make option --help open man pages only for Git commands

René Scharfe (8):
      sha1_file: use llist_mergesort() for sorting packs
      introduce CHECKOUT_INIT
      add QSORT
      use QSORT
      remove unnecessary check before QSORT
      coccicheck: use --all-includes by default
      use QSORT, part 2
      show-branch: use QSORT

Ronnie Sahlberg (2):
      refs: add a backend method structure
      refs: add a transaction_commit() method

Stefan Beller (10):
      t7408: modernize style
      t7408: merge short tests, factor out testing method
      submodule--helper module-clone: allow multiple references
      submodule--helper update-clone: allow multiple references
      clone: factor out checking for an alternate path
      clone: clarify option_reference as required
      clone: implement optional references
      clone: recursive and reference option triggers submodule alternates
      submodule: ignore trailing slash on superproject URL
      submodule: ignore trailing slash in relative url

Vasco Almeida (30):
      i18n: blame: mark error messages for translation
      i18n: branch: mark option description for translation
      i18n: config: mark error message for translation
      i18n: merge-recursive: mark error messages for translation
      i18n: merge-recursive: mark verbose message for translation
      i18n: notes: mark error messages for translation
      notes: spell first word of error messages in lowercase
      i18n: receive-pack: mark messages for translation
      i18n: show-branch: mark error messages for translation
      i18n: show-branch: mark plural strings for translation
      i18n: update-index: mark warnings for translation
      i18n: commit: mark message for translation
      i18n: connect: mark die messages for translation
      i18n: ident: mark hint for translation
      i18n: notes-merge: mark die messages for translation
      i18n: stash: mark messages for translation
      git-gui i18n: mark strings for translation
      git-gui: l10n: add Portuguese translation
      git-gui i18n: internationalize use of colon punctuation
      git-gui i18n: mark "usage:" strings for translation
      git-gui: fix incorrect use of Tcl append command
      git-gui i18n: mark string in lib/error.tcl for translation
      t1512: become resilient to GETTEXT_POISON build
      i18n: apply: mark plural string for translation
      i18n: apply: mark info messages for translation
      i18n: apply: mark error messages for translation
      i18n: apply: mark error message for translation
      i18n: convert mark error messages for translation
      i18n: credential-cache--daemon: mark advice for translation
      i18n: diff: mark warnings for translation

Vegard Nossum (1):
      revision: new rev^-n shorthand for rev^n..rev

brian m. carlson (20):
      cache: convert struct cache_entry to use struct object_id
      builtin/apply: convert static functions to struct object_id
      builtin/blame: convert struct origin to use struct object_id
      builtin/log: convert some static functions to use struct object_id
      builtin/cat-file: convert struct expand_data to use struct object_id
      builtin/cat-file: convert some static functions to struct object_id
      builtin: convert textconv_object to use struct object_id
      streaming: make stream_blob_to_fd take struct object_id
      builtin/checkout: convert some static functions to struct object_id
      notes-merge: convert struct notes_merge_pair to struct object_id
      Convert read_mmblob to take struct object_id.
      builtin/blame: convert file to use struct object_id
      builtin/rm: convert to use struct object_id
      notes: convert init_notes to use struct object_id
      builtin/update-index: convert file to struct object_id
      sha1_name: convert get_sha1_mb to struct object_id
      refs: add an update_ref_oid function.
      builtin/am: convert to struct object_id
      builtin/commit-tree: convert to struct object_id
      builtin/reset: convert to use struct object_id

yaras (1):
      git-gui: fix initial git gui message encoding

Ævar Arnfjörð Bjarmason (3):
      gitweb: fix a typo in a comment
      gitweb: link to 7-char+ SHA-1s, not only 8-char+
      gitweb: link to "git describe"'d commits in log messages


Version v2.10.5; changes since v2.10.4:
---------------------------------------

Jeff King (3):
      shell: drop git-cvsserver support by default
      archimport: use safe_pipe_capture for user input
      cvsimport: shell-quote variable used in backticks

Junio C Hamano (3):
      cvsserver: move safe_pipe_capture() to the main package
      cvsserver: use safe_pipe_capture for `constant commands` as well
      Git 2.10.5

joernchen (1):
      cvsserver: use safe_pipe_capture instead of backticks


Version v2.10.4; changes since v2.10.3:
---------------------------------------

Jeff King (4):
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (5):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6
      Git 2.8.6
      Git 2.9.5
      Git 2.10.4


Version v2.10.3; changes since v2.10.2:
---------------------------------------

Anders Kaseorg (2):
      pre-receive.sample: mark it executable
      git-sh-setup: be explicit where to dot-source git-sh-i18n from.

Andreas Schwab (2):
      t6026-merge-attr: don't fail if sleep exits early
      t6026-merge-attr: ensure that the merge driver was called

Ben North (1):
      git-worktree.txt: fix typo "to"/"two", and add comma

Chris Packham (1):
      completion: support excluding refs

Jeff King (6):
      daemon: detect and reject too-long paths
      git-compat-util: move content inside ifdef/endif guards
      doc: fix missing "::" in config list
      create_branch: drop unused "head" parameter
      common-main: stop munging argv[0] path
      shell: disallow repo names beginning with dash

Johannes Schindelin (1):
      t6026: ensure that long-running script really is

Johannes Sixt (1):
      t6026: clarify the point of "kill $(cat sleep.pid)"

Junio C Hamano (11):
      am: refactor read_author_script()
      Revert "t6026-merge-attr: ensure that the merge driver was called"
      Revert "t6026-merge-attr: don't fail if sleep exits early"
      preparing for 2.10.3
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7
      Git 2.7.5
      Git 2.8.5
      Git 2.9.4
      Git 2.10.3

Lars Schneider (2):
      Makefile: set NO_OPENSSL on macOS by default
      travis-ci: disable GIT_TEST_HTTPD for macOS

Matthieu Moy (3):
      parse_mailboxes: accept extra text after <...> address
      t9000-addresses: update expected results after fix
      Git.pm: add comment pointing to t9000

Patrick Steinhardt (1):
      doc: fix location of 'info/' with $GIT_COMMON_DIR

René Scharfe (4):
      hex: make wraparound of the index into ring-buffer explicit
      valgrind: support test helpers
      commit: simplify building parents list
      cocci: avoid self-references in object_id transformations

Stefan Christ (1):
      Documentation/fmt-merge-msg: fix markup in example

Tobias Klauser (1):
      diffcore-delta: remove unused parameter to diffcore_count_changes()


Version v2.10.2; changes since v2.10.1:
---------------------------------------

Anders Kaseorg (1):
      imap-send: Tell cURL to use imap:// or imaps://

Brandon Williams (1):
      submodules doc: update documentation for "." used for submodule branches

David Turner (2):
      add David Turner's Two Sigma address
      http: http.emptyauth should allow empty (not just NULL) usernames

Dennis Kaarsemaker (1):
      worktree: allow the main brach of a bare repository to be checked out

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Jakub Narębski (1):
      configure.ac: improve description of NO_REGEX test

Jeff King (11):
      verify_packfile: check pack validity before accessing data
      graph: fix extra spaces in graph_padding_line
      clone: detect errors in normalize_path_copy
      files_read_raw_ref: avoid infinite loop on broken symlinks
      files_read_raw_ref: prevent infinite retry loops in general
      merge-base: handle --fork-point without reflog
      fetch: use "quick" has_sha1_file for tag following
      test-lib: handle TEST_OUTPUT_DIRECTORY with spaces
      test-lib: add --verbose-log option
      travis: use --verbose-log test option
      test-lib: bail out when "-v" used under "prove"

Johannes Schindelin (1):
      reset: fix usage

Jonathan Tan (1):
      fetch-pack: do not reset in_vain on non-novel acks

Junio C Hamano (9):
      streaming: make sure to notice corrupt object
      unpack_sha1_header(): detect malformed object header
      worktree: honor configuration variables
      blame: use DEFAULT_ABBREV macro
      diff_unique_abbrev(): document its assumption and limitation
      Start preparing for 2.10.2
      cocci: refactor common patterns to use xstrdup_or_null()
      t3700: fix broken test under !SANITY
      Git 2.10.2

Kevin Daudt (2):
      t5100-mailinfo: replace common path prefix with variable
      mailinfo: unescape quoted-pair in header fields

Nguyễn Thái Ngọc Duy (1):
      git-commit.txt: clarify --patch mode with pathspec

Philip Oakley (2):
      doc: fix merge-base ASCII art tab spacing
      doc: fix the 'revert a faulty merge' ASCII art tab spacing

Pranit Bauva (2):
      rev-list-options: clarify the usage of --reverse
      t0040: convert all possible tests to use `test-parse-options --expect`

Ralf Thielow (2):
      l10n: de.po: fix translation of autostash
      l10n: de.po: translate 260 new messages

René Scharfe (17):
      contrib/coccinelle: fix semantic patch for oid_to_hex_r()
      add coccicheck make target
      use strbuf_addstr() for adding constant strings to a strbuf, part 2
      pretty: let %C(auto) reset all attributes
      add COPY_ARRAY
      use COPY_ARRAY
      git-gui: stop using deprecated merge syntax
      gitignore: ignore output files of coccicheck make target
      use strbuf_addstr() instead of strbuf_addf() with "%s", part 2
      use strbuf_add_unique_abbrev() for adding short hashes, part 2
      pretty: avoid adding reset for %C(auto) if output is empty
      coccicheck: make transformation for strbuf_addf(sb, "...") more precise
      remove unnecessary NULL check before free(3)
      use strbuf_add_unique_abbrev() for adding short hashes, part 3
      pretty: fix document link for color specification
      avoid pointer arithmetic involving NULL in FLEX_ALLOC_MEM
      inline xalloc_flex() into FLEXPTR_ALLOC_MEM

SZEDER Gábor (1):
      ref-filter: strip format option after a field name only once while parsing

Stefan Beller (1):
      documentation: improve submodule.<name>.{url, path} description

Younes Khoudli (1):
      doc: remove reference to the traditional layout in git-tag.txt

Дилян Палаузов (1):
      ./configure.ac: detect SSL in libcurl using curl-config


Version v2.10.1; changes since v2.10.0:
---------------------------------------

Alex Henrie (5):
      am: put spaces around pipe in usage string
      cat-file: put spaces around pipes in usage string
      git-rebase--interactive: fix English grammar
      git-merge-octopus: do not capitalize "octopus"
      unpack-trees: do not capitalize "working"

Beat Bolli (1):
      SubmittingPatches: use gitk's "Copy commit summary" format

Brandon Williams (1):
      pathspec: remove unnecessary function prototypes

Brian Henderson (3):
      diff-highlight: add some tests
      diff-highlight: add failing test for handling --graph output
      diff-highlight: add support for --graph output

Elia Pinto (5):
      t5541-http-push-smart.sh: use the GIT_TRACE_CURL environment var
      test-lib.sh: preserve GIT_TRACE_CURL from the environment
      t5550-http-fetch-dumb.sh: use the GIT_TRACE_CURL environment var
      t5551-http-fetch-smart.sh: use the GIT_TRACE_CURL environment var
      git-check-ref-format.txt: fixup documentation

Eric Wong (3):
      http: warn on curl_multi_add_handle failures
      http: consolidate #ifdefs for curl_multi_remove_handle
      http: always remove curl easy from curlm session on release

Jeff King (20):
      rebase-interactive: drop early check for valid ident
      gc: default aggressive depth to 50
      test-lib: drop PID from test-results/*.count
      diff-highlight: ignore test cruft
      diff-highlight: add multi-byte tests
      diff-highlight: avoid highlighting combined diffs
      error_errno: use constant return similar to error()
      color_parse_mem: initialize "struct color" temporary
      t5305: move cleanup into test block
      t5305: drop "dry-run" of unpack-objects
      t5305: use "git -C"
      t5305: simplify packname handling
      pack-objects: walk tag chains for --include-tag
      remote-curl: handle URLs without protocol
      patch-ids: turn off rename detection
      patch-ids: refuse to compute patch-id for merge commit
      docs/cvsimport: prefer cvs-fast-export to parsecvs
      docs/cvs-migration: update link to cvsps homepage
      docs/cvs-migration: mention cvsimport caveats
      ident: handle NULL ai_canonname

Jiang Xin (1):
      l10n: zh_CN: fixed some typos for git 2.10.0

Johannes Schindelin (4):
      git-gui: respect commit.gpgsign again
      regex: -G<pattern> feeds a non NUL-terminated string to regexec() and fails
      regex: add regexec_buf() that can work on a non NUL-terminated string
      regex: use regexec_buf()

Johannes Sixt (4):
      t9903: fix broken && chain
      t6026-merge-attr: clean up background process at end of test case
      t3700-add: create subdirectory gently
      t3700-add: do not check working tree file mode without POSIXPERM

Josh Triplett (1):
      format-patch: show base info before email signature

Junio C Hamano (6):
      submodule: avoid auto-discovery in prepare_submodule_repo_env()
      symbolic-ref -d: do not allow removal of HEAD
      Prepare for 2.9.4
      Start preparing for 2.10.1
      Prepare for 2.10.1
      Git 2.10.1

Kirill Smelkov (1):
      t/perf/run: copy config.mak.autogen & friends to build area

Lars Schneider (1):
      travis-ci: ask homebrew for its path instead of hardcoding it

Matthieu Moy (1):
      Documentation/config: default for color.* is color.ui

Mike Ralphson (1):
      vcs-svn/fast_export: fix timestamp fmt specifiers

Nguyễn Thái Ngọc Duy (3):
      checkout: add some spaces between code and comment
      checkout.txt: document a common case that ignores ambiguation rules
      checkout: fix ambiguity check in subdir

Philip Oakley (12):
      doc: use 'symmetric difference' consistently
      doc: revisions - name the left and right sides
      doc: show the actual left, right, and boundary marks
      doc: revisions: give headings for the two and three dot notations
      doc: revisions: extra clarification of <rev>^! notation effects
      doc: revisions: single vs multi-parent notation comparison
      doc: gitrevisions - use 'reachable' in page description
      doc: gitrevisions - clarify 'latter case' is revision walk
      doc: revisions - define `reachable`
      doc: revisions - clarify reachability examples
      doc: revisions: show revision expansion in examples
      doc: revisions: sort examples and fix alignment of the unchanged

Ralf Thielow (1):
      rebase -i: improve advice on bad instruction lines

Ray Chen (1):
      l10n: zh_CN: review for git v2.10.0 l10n

René Scharfe (6):
      compat: move strdup(3) replacement to its own file
      introduce hex2chr() for converting two hexadecimal digits to a character
      strbuf: use valid pointer in strbuf_remove()
      checkout: constify parameters of checkout_stage() and checkout_merged()
      unpack-trees: pass checkout state explicitly to check_updates()
      xdiff: fix merging of hunks with -W context and -u context

Satoshi Yasushima (6):
      git-gui: consistently use the same word for "remote" in Japanese
      git-gui: consistently use the same word for "blame" in Japanese
      git-gui: apply po template to Japanese translation
      git-gui: add Japanese language code
      git-gui: update Japanese translation
      git-gui: update Japanese information

Stefan Beller (5):
      xdiff: remove unneeded declarations
      transport: report missing submodule pushes consistently on stderr
      diff.c: use diff_options directly
      diff: omit found pointer from emit_callback
      diff: remove dead code

Thomas Gummerer (4):
      add: document the chmod option
      update-index: add test for chmod flags
      read-cache: introduce chmod_index_entry
      add: modify already added files when --chmod is given

Vasco Almeida (2):
      l10n: pt_PT: update Portuguese translation
      l10n: pt_PT: update Portuguese repository info


Version v2.10.0; changes since v2.10.0-rc2:
-------------------------------------------

Alex Henrie (1):
      l10n: ca.po: update translation

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Jean-Noël Avila (1):
      l10n: fr.po v2.10.0-rc2

Jiang Xin (3):
      l10n: git.pot: v2.10.0 round 1 (248 new, 56 removed)
      l10n: git.pot: v2.10.0 round 2 (12 new, 44 removed)
      l10n: zh_CN: for git v2.10.0 l10n round 2

Junio C Hamano (2):
      A few more fixes before the final 2.10
      Git 2.10

Lars Schneider (1):
      pack-protocol: fix maximum pkt-line size

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (2757t0f0u)

René Scharfe (1):
      p3400: make test script executable

Thomas Gummerer (1):
      blame: fix segfault on untracked files

Trần Ngọc Quân (2):
      l10n: Updated Vietnamese translation for v2.10.0 (2789t)
      l10n: Updated Vietnamese translation for v2.10.0-rc2 (2757t)

Vasco Almeida (2):
      l10n: pt_PT: merge git.pot
      l10n: pt_PT: update Portuguese translation


Version v2.10.0-rc2; changes since v2.10.0-rc1:
-----------------------------------------------

Ben Wijen (2):
      t6026-merge-attr: child processes must not inherit index.lock handles
      mingw: ensure temporary file handles are not inherited by child processes

David Glasser (1):
      doc: mention `git -c` in git-config(1)

Heiko Voigt (1):
      SubmittingPatches: document how to reference previous commits

Jean-Noël Avila (3):
      i18n: fix typos for translation
      i18n: fix git rebase interactive commit messages
      i18n: simplify numeric error reporting

Johannes Schindelin (1):
      Revert "display HTML in default browser using Windows' shell API"

Junio C Hamano (2):
      Prepare for 2.10.0-rc2
      Git 2.10-rc2

Torsten Bögershausen (2):
      git ls-files: text=auto eol=lf is supported in Git 2.10
      gitattributes: Document the unified "auto" handling


Version v2.10.0-rc1; changes since v2.10.0-rc0:
-----------------------------------------------

Johannes Schindelin (2):
      t/Makefile: ensure that paths are valid on platforms we care
      rev-parse: respect core.hooksPath in --git-path

John Keeping (1):
      difftool: always honor fatal error exit codes

Junio C Hamano (4):
      Relnotes: decribe the updates to the "text=auto" attribute
      relnotes: redo the description of text=auto fix
      RelNotes: final batch of topics before -rc1
      Git 2.10-rc1

Linus Torvalds (1):
      gpg-interface: prefer "long" key format output when verifying pgp signatures

Matthieu Moy (1):
      git-multimail: update to release 1.4.0

René Scharfe (7):
      correct FLEXPTR_* example in comment
      mailinfo: recycle strbuf in check_header()
      commit: use xstrdup() in get_merge_parent()
      commit: factor out set_merge_remote_desc()
      merge-recursive: fix verbose output for multiple base trees
      commit: use FLEX_ARRAY in struct merge_remote_desc
      receive-pack: use FLEX_ALLOC_MEM in queue_command()

SZEDER Gábor (1):
      t1410: remove superfluous 'git reflog' from the 'walk past root' test

Stefan Beller (1):
      checkout: do not mention detach advice for explicit --detach option

Torsten Bögershausen (1):
      convert: Correct NNO tests and missing `LF will be replaced by CRLF`

Vasco Almeida (3):
      t3404: become resilient to GETTEXT_POISON
      t5520: become resilient to GETTEXT_POISON
      t7411: become resilient to GETTEXT_POISON


Version v2.10.0-rc0; changes since v2.9.5:
------------------------------------------

Alexander Hirsch (1):
      pull: warn on --verify-signatures with --rebase

Antoine Queru (1):
      upload-pack.c: use parse-options API

Christian Couder (50):
      builtin/apply: make gitdiff_verify_name() return void
      builtin/apply: avoid parameter shadowing 'p_value' global
      builtin/apply: avoid parameter shadowing 'linenr' global
      builtin/apply: avoid local variable shadowing 'len' parameter
      builtin/apply: extract line_by_line_fuzzy_match() from match_fragment()
      builtin/apply: move 'options' variable into cmd_apply()
      builtin/apply: move 'read_stdin' global into cmd_apply()
      builtin/apply: introduce 'struct apply_state' to start libifying
      builtin/apply: move 'state' init into init_apply_state()
      builtin/apply: move 'unidiff_zero' global into 'struct apply_state'
      builtin/apply: move 'check' global into 'struct apply_state'
      builtin/apply: move 'check_index' global into 'struct apply_state'
      builtin/apply: move 'apply_in_reverse' global into 'struct apply_state'
      builtin/apply: move 'apply_with_reject' global into 'struct apply_state'
      builtin/apply: move 'apply_verbosely' global into 'struct apply_state'
      builtin/apply: move 'update_index' global into 'struct apply_state'
      builtin/apply: move 'allow_overlap' global into 'struct apply_state'
      builtin/apply: move 'cached' global into 'struct apply_state'
      builtin/apply: move 'diffstat' global into 'struct apply_state'
      builtin/apply: move 'numstat' global into 'struct apply_state'
      builtin/apply: move 'summary' global into 'struct apply_state'
      builtin/apply: move 'threeway' global into 'struct apply_state'
      builtin/apply: move 'no_add' global into 'struct apply_state'
      builtin/apply: move 'unsafe_paths' global into 'struct apply_state'
      builtin/apply: move 'line_termination' global into 'struct apply_state'
      builtin/apply: move 'fake_ancestor' global into 'struct apply_state'
      builtin/apply: move 'p_context' global into 'struct apply_state'
      builtin/apply: move 'apply' global into 'struct apply_state'
      builtin/apply: move 'patch_input_file' global into 'struct apply_state'
      builtin/apply: move 'limit_by_name' global into 'struct apply_state'
      builtin/apply: move 'has_include' global into 'struct apply_state'
      builtin/apply: move 'p_value' global into 'struct apply_state'
      builtin/apply: move 'p_value_known' global into 'struct apply_state'
      builtin/apply: move 'root' global into 'struct apply_state'
      builtin/apply: move 'whitespace_error' global into 'struct apply_state'
      builtin/apply: move 'whitespace_option' into 'struct apply_state'
      builtin/apply: remove whitespace_option arg from set_default_whitespace_mode()
      builtin/apply: move 'squelch_whitespace_errors' into 'struct apply_state'
      builtin/apply: move 'applied_after_fixing_ws' into 'struct apply_state'
      builtin/apply: move 'ws_error_action' into 'struct apply_state'
      builtin/apply: move 'ws_ignore_action' into 'struct apply_state'
      builtin/apply: move 'max_change' and 'max_len' into 'struct apply_state'
      builtin/apply: move 'state_linenr' global into 'struct apply_state'
      builtin/apply: move 'fn_table' global into 'struct apply_state'
      builtin/apply: move 'symlink_changes' global into 'struct apply_state'
      builtin/apply: move 'state' check into check_apply_state()
      builtin/apply: move applying patches into apply_all_patches()
      builtin/apply: add 'lock_file' pointer into 'struct apply_state'
      builtin/apply: move 'newfd' global into 'struct apply_state'
      .mailmap: use Christian Couder's Tuxfamily address

Christopher Layne (1):
      git-svn: clone: Fail on missing url argument

David Aguilar (2):
      subtree: adjust style to match CodingGuidelines
      subtree: adjust function definitions to match CodingGuidelines

David Turner (2):
      refs: allow log-only updates
      refs: don't dereference on rename

Elia Pinto (2):
      http.c: implement the GIT_TRACE_CURL environment variable
      imap-send.c: introduce the GIT_TRACE_CURL enviroment variable

Eric Sunshine (1):
      blame: drop strdup of string literal

Eric Wong (17):
      fast-import: implement unpack limit
      fast-import: invalidate pack_id references after loosening
      pretty: support "mboxrd" output format
      mailsplit: support unescaping mboxrd messages
      am: support --patch-format=mboxrd
      git-svn: skip mergeinfo handling with --no-follow-parent
      git-svn: warn instead of dying when commit data is missing
      config.mak.uname: define NEEDS_LIBRT under Linux, for now
      http-walker: remove unused parameter from fetch_object
      http: avoid disconnecting on 404s for loose objects
      http-walker: reduce O(n) ops with doubly-linked list
      list: avoid incompatibility with *BSD sys/queue.h
      git-svn: document svn.authorsProg in config
      git-svn: allow --version to work anywhere
      git svn: migrate tests to use lib-httpd
      pager: move pager-specific setup into the build
      http-backend: buffer headers before sending

Ingo Brückl (3):
      t3700: remove unwanted leftover files before running new tests
      t3700: merge two tests into one
      t3700: add a test_mode_in_index helper function

Jacob Keller (1):
      completion: add completion for --submodule=* diff option

Jeff King (72):
      git_config_with_options: drop "found" counting
      git_config_parse_parameter: refactor cleanup code
      config: set up config_source for command-line config
      config: return configset value for current_config_ functions
      config: add a notion of "scope"
      upload-pack: provide a hook for running pack-objects
      parse_opt_string_list: stop allocating new strings
      interpret-trailers: don't duplicate option strings
      blame,shortlog: don't make local option variables static
      use string_list initializer consistently
      repack: document --unpack-unreachable option
      repack: add --keep-unreachable option
      repack: extend --keep-unreachable to loose objects
      gpg-interface: use child_process.args
      verify_signed_buffer: drop pbuf variable
      verify_signed_buffer: use tempfile object
      run-command: add pipe_command helper
      verify_signed_buffer: use pipe_command
      sign_buffer: use pipe_command
      t/perf: fix regression in testing older versions of git
      p4211: explicitly disable renames in no-rename test
      color: fix max-size comment
      doc: refactor description of color format
      add skip_prefix_mem helper
      color: refactor parse_attr
      color: allow "no-" for negating attributes
      color: support "italic" attribute
      color: support strike-through attribute
      t9300: factor out portable "head -c" replacement
      t5000: test tar files that overflow ustar headers
      archive-tar: write extended headers for file sizes >= 8GB
      archive-tar: write extended headers for far-future mtime
      archive-tar: drop return value
      config: fix bogus fd check when setting up default config
      branch: use non-gentle write_file for branch description
      write_file: drop "gently" form
      write_file: use xopen
      write_file: add pointer+len variant
      write_file: add format attribute
      use write_file_buf where applicable
      branch: use write_file_buf instead of write_file
      walker: let walker_say take arbitrary formats
      avoid using sha1_to_hex output as printf format
      check_everything_connected: always pass --quiet to rev-list
      rev-list: add optional progress reporting
      check_everything_connected: convert to argv_array
      check_everything_connected: use a struct with named options
      check_connected: relay errors to alternate descriptor
      check_connected: add progress flag
      clone: use a real progress meter for connectivity check
      index-pack: add flag for showing delta-resolution progress
      receive-pack: turn on index-pack resolving progress
      receive-pack: relay connectivity errors to sideband
      receive-pack: turn on connectivity progress
      receive-pack: send keepalives during quiet periods
      contrib/git-jump: fix greedy regex when matching hunks
      contrib/git-jump: add whitespace-checking mode
      contrib/git-jump: fix typo in README
      t/perf: add tests for many-pack scenarios
      sha1_file: drop free_pack_by_name
      add generic most-recently-used list
      find_pack_entry: replace last_found_pack with MRU cache
      pack-objects: break out of want_object loop early
      pack-objects: compute local/ignore_pack_keep early
      trace: handle NULL argument in trace_disable()
      trace: stop using write_or_whine_pipe()
      trace: use warning() for printing trace errors
      trace: cosmetic fixes for error messages
      trace: correct variable name in write() error message
      trace: disable key after write error
      write_or_die: drop write_or_whine_pipe()
      trace: do not fall back to stderr

Johannes Schindelin (36):
      log: prepare log/log-tree to reuse the diffopt.close_file attribute
      log-tree: respect diffopt's configured output file stream
      line-log: respect diffopt's configured output file stream
      graph: respect the diffopt.file setting
      shortlog: support outputting to streams other than stdout
      format-patch: explicitly switch off color when writing to files
      format-patch: avoid freopen()
      format-patch: use stdout directly
      shortlog: respect the --output=<file> setting
      t4211: ensure that log respects --output=<file>
      diff: do not color output when --color=auto and --output=<file> is given
      t3404: add a test for the --gpg-sign option
      rebase -i: demonstrate a bug with --autosquash
      rebase -i: we allow extra spaces after fixup!/squash!
      mingw: fix the shortlog --output=<file> test
      mingw: fix regression in t1308-config-set
      fsck: refactor how to describe objects
      fsck_walk(): optionally name objects on the go
      fsck: give the error function a chance to see the fsck_options
      fsck: optionally show more helpful info for broken links
      t5520: verify that `pull --rebase` shows the helpful advice when failing
      die("bug"): report bugs consistently
      die(_("BUG")): avoid translating bug messages
      merge-recursive: clarify code in was_tracked()
      prepare the builtins for a libified merge_recursive()
      merge_recursive: abort properly upon errors
      merge-recursive: avoid returning a wholesale struct
      merge-recursive: allow write_tree_from_memory() to error out
      merge-recursive: handle return values indicating errors
      merge-recursive: switch to returning errors instead of dying
      am -3: use merge_recursive() directly again
      merge-recursive: flush output buffer before printing error messages
      merge-recursive: write the commit title in one go
      merge-recursive: offer an option to retain the output in 'obuf'
      merge_trees(): ensure that the callers release output buffer
      merge-recursive: flush output buffer even when erroring out

Johannes Sixt (5):
      git-submodule: forward exit code of git-submodule--helper more faithfully
      submodule-helper: fix indexing in clone retry error reporting path
      rebase-interactive: trim leading whitespace from progress count
      config.c: avoid duplicated global static variables
      commit-slab.h: avoid duplicated global static variables

Jonathan Tan (1):
      fetch-pack: grow stateless RPC windows exponentially

Jordan DE GEA (1):
      worktree: allow "-" short-hand for @{-1} in add command

Josh Triplett (1):
      format-patch: format.from gives the default for --from

Junio C Hamano (21):
      send-email: detect and offer to skip backup files
      pathspec: rename free_pathspec() to clear_pathspec()
      t1308: do not get fooled by symbolic links to the source tree
      builtin/apply: remove misleading comment on lock_file field
      Start the post-2.9 cycle
      Second batch of topics for 2.10
      Third batch of topics for 2.10
      commit.c: remove print_commit_list()
      Fourth batch of topics for 2.10
      Fifth batch of topics for 2.10
      archive-tar: huge offset and future timestamps would not work on 32-bit
      Sixth batch of topics for 2.10
      Seventh batch of topics for 2.10
      t9100: portability fix
      Eighth batch of topics for 2.10
      Ninth batch of topics for 2.10
      Tenth batch for 2.10
      Eleventh batch for 2.10
      Twelfth batch for 2.10
      Final batch before 2.10-rc0
      Git 2.10-rc0

Kevin Willford (4):
      patch-ids: stop using a hand-rolled hashmap implementation
      patch-ids: replace the seen indicator with a commit pointer
      patch-ids: add flag to create the diff patch id using header only data
      rebase: avoid computing unnecessary patch IDs

Lars Schneider (1):
      git-p4: place temporary refs used for branch import under refs/git-p4-tmp

Lukas Fleischer (1):
      receive-pack: send auto-gc output over sideband 2

Mehul Jain (3):
      t4202: refactor test
      log: add "--no-show-signature" command line option
      log: add log.showSignature configuration variable

Michael Haggerty (50):
      t1404: demonstrate a bug resolving references
      commit_ref(): if there is an empty dir in the way, delete it
      read_raw_ref(): don't get confused by an empty directory
      safe_create_leading_directories(): improve docstring
      remove_dir_recursively(): add docstring
      refname_is_safe(): use skip_prefix()
      refname_is_safe(): don't allow the empty string
      refname_is_safe(): insist that the refname already be normalized
      commit_ref_update(): write error message to *err, not stderr
      rename_ref(): remove unneeded local variable
      ref_transaction_commit(): remove local variables n and updates
      read_raw_ref(): rename flags argument to type
      read_raw_ref(): clear *type at start of function
      read_raw_ref(): rename symref argument to referent
      read_raw_ref(): improve docstring
      read_raw_ref(): move docstring to header file
      lock_ref_sha1_basic(): remove unneeded local variable
      refs: make error messages more consistent
      ref_transaction_create(): disallow recursive pruning
      ref_transaction_commit(): correctly report close_ref() failure
      delete_branches(): use resolve_refdup()
      verify_refname_available(): adjust constness in declaration
      add_update(): initialize the whole ref_update
      lock_ref_for_update(): new function
      unlock_ref(): move definition higher in the file
      ref_transaction_update(): check refname_is_safe() at a minimum
      refs: resolve symbolic refs first
      lock_ref_for_update(): don't re-read non-symbolic references
      lock_ref_for_update(): don't resolve symrefs
      commit_ref_update(): remove the flags parameter
      lock_ref_sha1_basic(): only handle REF_NODEREF mode
      refs: remove unnecessary "extern" keywords
      do_for_each_ref(): move docstring to the header file
      refs: use name "prefix" consistently
      delete_refs(): add a flags argument
      remote rm: handle symbolic refs correctly
      get_ref_cache(): only create an instance if there is a submodule
      entry_resolves_to_object(): rename function from ref_resolves_to_object()
      ref_resolves_to_object(): new function
      refs: introduce an iterator interface
      do_for_each_ref(): reimplement using reference iteration
      for_each_reflog(): don't abort for bad references
      dir_iterator: new API for iterating over a directory tree
      for_each_reflog(): reimplement using iterators
      t1404: rename file to t1404-update-ref-errors.sh
      t1404: remove "prefix" argument to test_update_rejected
      t1404: document function test_update_rejected
      t1404: add more tests of update-ref error handling
      lock_ref_for_update(): make error handling more uniform
      lock_ref_for_update(): avoid a symref resolution

Michael J Gruber (2):
      gpg-interface: check gpg signature creation status
      t/t91*: do not say how to avoid the tests

Nguyễn Thái Ngọc Duy (20):
      completion: support git-worktree
      worktree.c: rewrite mark_current_worktree() to avoid strbuf
      git-worktree.txt: keep subcommand listing in alphabetical order
      worktree.c: use is_dot_or_dotdot()
      worktree: avoid 0{40}, too many zeroes, hard to read
      worktree: simplify prefixing paths
      worktree.c: add find_worktree()
      worktree.c: add is_main_worktree()
      lib-httpd.sh: print error.log on error
      worktree.c: add is_worktree_locked()
      git-fetch.txt: document fetch output
      fetch: refactor ref update status formatting code
      fetch: change flag code for displaying tag update and deleted ref
      fetch: align all "remote -> local" output
      fetch: reduce duplicate in ref update status lines with placeholder
      connect: read $GIT_SSH_COMMAND from config file
      worktree: add "lock" command
      worktree: add "unlock" command
      worktree.c: find_worktree() search by path suffix
      log: decorate HEAD -> branch with the same color for arrow and HEAD

René Scharfe (4):
      am: ignore return value of write_file()
      pass constants as first argument to st_mult()
      use CHILD_PROCESS_INIT to initialize automatic variables
      archive-tar: make write_extended_header() void

Ronald Wampler (1):
      Makefile: add NEEDS_LIBRT to optionally link with librt

Stefan Beller (19):
      submodule update: make use of the existing fetch_in_submodule function
      submodule-config: keep shallow recommendation around
      submodule update: learn `--[no-]recommend-shallow` option
      submodule--helper: initial clone learns retry logic
      submodule update: continue when a clone fails
      push options: {pre,post}-receive hook learns about push options
      receive-pack: implement advertising and receiving push options
      push: accept push options
      add a test for push options
      t7406: future proof tests with hard coded depth
      submodule update: respect depth in subsequent fetches
      submodule update: narrow scope of local variable
      submodule--helper: fix usage string for relative-path
      submodule-config: keep configured branch around
      gitmodules: document shallow recommendation
      submodule--helper: add remote-branch helper
      submodule update: allow '.' for branch value
      submodule--helper: use parallel processor correctly
      t7406: fix breakage on OSX

Thomas Braun (3):
      completion: factor out untracked file modes into a variable
      completion: add __git_get_option_value helper
      completion: add git status

Vasco Almeida (44):
      i18n: builtin/remote.c: fix mark for translation
      i18n: advice: mark string about detached head for translation
      i18n: advice: internationalize message for conflicts
      i18n: transport: mark strings for translation
      i18n: sequencer: mark entire sentences for translation
      i18n: rebase-interactive: mark here-doc strings for translation
      i18n: sequencer: mark string for translation
      i18n: rebase-interactive: mark comments of squash for translation
      i18n: merge-octopus: mark messages for translation
      i18n: setup: mark strings for translation
      merge-octopus: use die shell function from git-sh-setup.sh
      tests: use test_i18n* functions to suppress false positives
      i18n: rebase: fix marked string to use eval_gettext variant
      tests: unpack-trees: update to use test_i18n* functions
      i18n: rebase: mark placeholder for translation
      t9003: become resilient to GETTEXT_POISON
      i18n: bisect: simplify error message for i18n
      t4153: fix negated test_i18ngrep call
      t6030: update to use test_i18ncmp
      t5523: use test_i18ngrep for negation
      i18n: git-sh-setup.sh: mark strings for translation
      i18n: bisect: mark strings for translation
      i18n: rebase-interactive: mark strings for translation
      i18n: transport-helper.c: change N_() call to _()
      i18n: notes: mark strings for translation
      i18n: notes: mark options for translation
      i18n: merge: mark messages for translation
      i18n: merge: change command option help to lowercase
      i18n: sequencer: add period to error message
      i18n: standardise messages
      i18n: remote: mark URL fallback text for translation
      i18n: remote: allow translations to reorder message
      i18n: init-db: join message pieces
      i18n: submodule: join strings marked for translation
      i18n: submodule: escape shell variables inside eval_gettext
      i18n: unmark die messages for translation
      i18n: branch: mark comment when editing branch description for translation
      t5541: become resilient to GETTEXT_POISON
      t5510: skip tests under GETTEXT_POISON build
      i18n: notes: mark comment for translation
      i18n: config: unfold error messages marked for translation
      i18n: setup: mark error messages for translation
      i18n: archive: mark errors for translation
      i18n: git-stash: mark messages for translation

Ville Skyttä (2):
      completion: complete --delete, --move, and --remotes for git branch
      Spelling fixes

William Duclot (1):
      userdiff: add built-in pattern for CSS

brian m. carlson (11):
      hex: add oid_to_hex_r()
      contrib/coccinelle: add basic Coccinelle transforms
      coccinelle: convert hashcpy() with null_sha1 to hashclr()
      coccinelle: apply object_id Coccinelle transformations
      diff: convert struct diff_filespec to struct object_id
      diff: rename struct diff_filespec's sha1_valid member
      merge-recursive: convert struct stage_data to use object_id
      merge-recursive: convert struct merge_file_info to object_id
      merge-recursive: convert leaf functions to use struct object_id
      merge-recursive: convert merge_recursive_generic() to object_id
      diff: convert prep_temp_blob() to struct object_id


Version v2.9.5; changes since v2.9.4:
-------------------------------------

Jeff King (4):
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (4):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6
      Git 2.8.6
      Git 2.9.5


Version v2.9.4; changes since v2.9.3:
-------------------------------------

Beat Bolli (1):
      SubmittingPatches: use gitk's "Copy commit summary" format

Ben Wijen (2):
      t6026-merge-attr: child processes must not inherit index.lock handles
      mingw: ensure temporary file handles are not inherited by child processes

David Glasser (1):
      doc: mention `git -c` in git-config(1)

Heiko Voigt (1):
      SubmittingPatches: document how to reference previous commits

Jeff King (12):
      add an extra level of indirection to main()
      common-main: call git_extract_argv0_path()
      common-main: call sanitize_stdfds()
      common-main: call restore_sigpipe_to_default()
      common-main: call git_setup_gettext()
      doc/rev-list-options: clarify "commit@{Nth}" for "-g" option
      doc/rev-list-options: explain "-g" output formats
      doc/pretty-formats: describe index/time formats for %gd
      doc/pretty-formats: explain shortening of %gd
      date: document and test "raw-local" mode
      date: add "unix" format
      shell: disallow repo names beginning with dash

Johannes Schindelin (6):
      mingw: declare main()'s argv as const
      import-tars: support hard links
      t5533: make it pass on case-sensitive filesystems
      git mv: do not keep slash in `git mv dir non-existing-dir/`
      t/Makefile: ensure that paths are valid on platforms we care
      Revert "display HTML in default browser using Windows' shell API"

John Keeping (4):
      Documentation/git-push: fix placeholder formatting
      push: add shorthand for --force-with-lease branch creation
      push: allow pushing new branches with --force-with-lease
      difftool: always honor fatal error exit codes

Junio C Hamano (9):
      merge: avoid "safer crlf" during recording of merge results
      date: clarify --date=raw description
      Prepare for 2.9.4
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7
      Git 2.7.5
      Git 2.8.5
      Git 2.9.4

Lars Schneider (1):
      pack-protocol: fix maximum pkt-line size

Michael Stahl (1):
      document git-repack interaction of pack.threads and pack.windowMemory

René Scharfe (10):
      merge-recursive: use STRING_LIST_INIT_NODUP
      merge: use string_list_split() in add_strategies()
      use strbuf_add_unique_abbrev() for adding short hashes
      correct FLEXPTR_* example in comment
      mailinfo: recycle strbuf in check_header()
      commit: use xstrdup() in get_merge_parent()
      commit: factor out set_merge_remote_desc()
      merge-recursive: fix verbose output for multiple base trees
      commit: use FLEX_ARRAY in struct merge_remote_desc
      receive-pack: use FLEX_ALLOC_MEM in queue_command()

SZEDER Gábor (1):
      t1410: remove superfluous 'git reflog' from the 'walk past root' test

Stefan Beller (1):
      checkout: do not mention detach advice for explicit --detach option

Torsten Bögershausen (1):
      convert: unify the "auto" handling of CRLF


Version v2.9.3; changes since v2.9.2:
-------------------------------------

Alex Henrie (1):
      unpack-trees: fix English grammar in do-this-before-that messages

Andreas Brauchli (1):
      gitweb: escape link body in format_ref_marker

Armin Kunaschik (1):
      t7610: test for mktemp before test execution

Charles Bailey (3):
      t7810-grep.sh: fix duplicated test name
      t7810-grep.sh: fix a whitespace inconsistency
      grep: fix grepping for "intent to add" files

Chris Packham (1):
      completion: add option '--recurse-submodules' to 'git clone'

David A. Greene (1):
      contrib/subtree: Add a test for subtree rebase that loses commits

David Aguilar (4):
      t7900-subtree.sh: fix quoting and broken && chains
      subtree: fix "git subtree split --rejoin"
      difftool: avoid $GIT_DIR and $GIT_WORK_TREE
      difftool: use Git::* functions instead of passing around state

David Kastrup (1):
      blame: require 0 context lines while finding moved lines with -M

Eric Wong (6):
      gc: fix off-by-one error with gc.autoPackLimit
      xread: retry after poll on EAGAIN/EWOULDBLOCK
      xwrite: poll on non-blocking FDs
      hoist out handle_nonblock function for xread and xwrite
      daemon: ignore ENOTSOCK from setsockopt
      configure.ac: stronger test for pthread linkage

Heiko Voigt (3):
      submodule-config: passing name reference for .gitmodule blobs
      submodule-config: combine early return code into one goto
      submodule-config: fix test binary crashing when no arguments given

Jeff King (14):
      send-pack: use buffered I/O to talk to pack-objects
      tests: factor portable signal check out of t0005
      t0005: use test_match_signal as appropriate
      test_must_fail: use test_match_signal
      t/lib-git-daemon: use test_match_signal
      parse_options: allocate a new array when concatenating
      Makefile: drop extra dependencies for test helpers
      Makefile: use VCSSVN_LIB to refer to svn library
      push: anonymize URL in status output
      t5541: fix url scrubbing test when GPG is not set
      diff: do not reuse worktree files that need "clean" conversion
      t4205: drop top-level &&-chaining
      t4205: indent here documents
      am: reset cached ident date for each patch

Joey Hess (1):
      clarify %f documentation

Johannes Schindelin (13):
      pretty: make the skip_blank_lines() function public
      commit.c: make find_commit_subject() more robust
      color.h: remove obsolete comment about limitations on Windows
      t3404: fix a grammo (commands are ran -> commands are run)
      commit -C: skip blank lines at the beginning of the message
      sequencer: use skip_blank_lines() to find the commit subject
      reset --hard: skip blank lines when reporting the commit subject
      commit -S: avoid invalid pointer with empty message
      am: counteract gender bias
      diff: demonstrate a bug with --patience and --ignore-space-at-eol
      diff: fix a double off-by-one with --ignore-space-at-eol
      t/test-lib.sh: fix running tests with --valgrind
      nedmalloc: fix misleading indentation

Johannes Sixt (2):
      Windows: add missing definition of ENOTSOCK
      t4130: work around Windows limitation

John Keeping (1):
      difftool: fix argument handling in subdirs

Junio C Hamano (7):
      diff: document diff-filter exclusion
      grep: further simplify setting the pattern type
      Some fixes for 2.9.3
      hashmap: clarify that hashmap_entry can safely be discarded
      Hopefully final batch for 2.9.3
      Yet another batch for 2.9.3
      Git 2.9.3

Lars Schneider (1):
      travis-ci: enable web server tests t55xx on Linux

Lukas Fleischer (3):
      sideband.c: make send_sideband() return void
      upload-pack.c: make send_client_data() return void
      sideband.c: refactor recv_sideband()

Matthieu Moy (8):
      Documentation/git-mv.txt: fix whitespace indentation
      doc: typeset short command-line options as literal
      doc: typeset long command-line options as literal
      doc: typeset '--' as literal
      doc: typeset long options with argument as literal
      CodingGuidelines: formatting HEAD in documentation
      doc: typeset HEAD and variants as literal
      status: suggest 'git merge --abort' when appropriate

Mike Hommey (2):
      blame: allow to blame paths freshly added to the index
      t/t8003-blame-corner-cases.sh: Use here documents

Nguyễn Thái Ngọc Duy (26):
      new-command.txt: correct the command description file
      grep: break down an "if" stmt in preparation for next changes
      test-regex: isolate the bug test code
      test-regex: expose full regcomp() to the command line
      grep/icase: avoid kwsset on literal non-ascii strings
      grep/icase: avoid kwsset when -F is specified
      grep: rewrite an if/else condition to avoid duplicate expression
      grep/pcre: prepare locale-dependent tables for icase matching
      gettext: add is_utf8_locale()
      grep/pcre: support utf-8
      diffcore-pickaxe: Add regcomp_or_die()
      diffcore-pickaxe: support case insensitive match on non-ascii
      grep.c: reuse "icase" variable
      pack-objects: pass length to check_pack_crc() without truncation
      sha1_file.c: use type off_t* for object_info->disk_sizep
      index-pack: correct "len" type in unpack_data()
      index-pack: report correct bad object offsets even if they are large
      index-pack: correct "offset" type in unpack_entry_data()
      pack-objects: do not truncate result in-pack object size on 32-bit systems
      fsck: use streaming interface for large blobs in pack
      test-lib.sh: introduce and use $EMPTY_TREE
      test-lib.sh: introduce and use $EMPTY_BLOB
      cache-tree.c: fix i-t-a entry skipping directory updates sometimes
      cache-tree: do not generate empty trees as a result of all i-t-a subentries
      config.mak.uname: correct perl path on FreeBSD
      t7063: work around FreeBSD's lazy mtime update feature

Nicolas Pitre (1):
      sideband.c: small optimization of strbuf usage

Orgad Shaneh (1):
      commit: describe that --no-verify skips the commit-msg hook in the help text

Parker Moore (2):
      contrib/persistent-https: update ldflags syntax for Go 1.7+
      contrib/persistent-https: use Git version for build label

Patrick Steinhardt (1):
      rebase -i: restore autostash on abort

Pranit Bauva (1):
      builtin/commit.c: memoize git-path for COMMIT_EDITMSG

Ramsay Jones (1):
      write_or_die: remove the unused write_or_whine() function

René Scharfe (10):
      .gitattributes: set file type for C files
      notes-merge: use O_EXCL to avoid overwriting existing files
      rm: reuse strbuf for all remove_dir_recursively() calls
      worktree: use strbuf_add_absolute_path() directly
      use strbuf_addbuf() for appending a strbuf to another
      submodule-config: use explicit empty string instead of strbuf in config_from()
      strbuf: avoid calling strbuf_grow() twice in strbuf_addbuf()
      use strbuf_addstr() for adding constant strings to a strbuf
      use strbuf_addstr() instead of strbuf_addf() with "%s"
      nedmalloc: work around overzealous GCC 6 warning

Stefan Beller (2):
      Documentation: pack-protocol correct NAK response
      submodule deinit: remove outdated comment


Version v2.9.2; changes since v2.9.1:
-------------------------------------

Jeff King (1):
      t0006: skip "far in the future" test when unsigned long is not long enough

Junio C Hamano (1):
      Git 2.9.2


Version v2.9.1; changes since v2.9.0:
-------------------------------------

Alfred Perlstein (1):
      git-svn: document the 'git svn propset' command

Andrew Oakley (1):
      git-p4: correct hasBranchPrefix verbose output

Armin Kunaschik (1):
      t7800: readlink may not be available

Charles Bailey (1):
      t7810: fix duplicated test title

Dave Nicolson (1):
      Documentation: GPG capitalization

David Turner (1):
      mailmap: use main email address for dturner

Ed Maste (1):
      rebase: update comment about FreeBSD /bin/sh

Edward Thomson (2):
      format_commit_message: honor `color=auto` for `%C(auto)`
      add: add --chmod=+x / --chmod=-x options

Eric Wong (1):
      daemon: enable SO_KEEPALIVE for all sockets

Heiko Becker (1):
      gnome-keyring: Don't hard-code pkg-config executable

Jeff King (9):
      rev-list: "adjust" results of "--count --use-bitmap-index -n"
      rev-list: disable bitmaps when "-n" is used with listing objects
      tree-diff: avoid alloca for large allocations
      fetch: document that pruning happens before fetching
      add--interactive: respect diff.compactionHeuristic
      bisect: always call setup_revisions after init_revisions
      t0006: rename test-date's "show" to "relative"
      t0006: test various date formats
      local_tzoffset: detect errors from tm_to_time_t

Johannes Schindelin (3):
      mingw: let the build succeed with DEVELOPER=1
      perf: accommodate for MacOSX
      t2300: "git --exec-path" is not usable in $PATH on Windows as-is

Jonathan Nieder (1):
      doc: git-htmldocs.googlecode.com is no more

Josef Kufner (1):
      pretty: pass graph width to pretty formatting for use in '%>|(N)'

Junio C Hamano (5):
      blame, line-log: do not loop around deref_tag()
      clone: do not let --depth imply --shallow-submodules
      Start preparing for 2.9.1
      More fixes for 2.9.1
      Git 2.9.1

Keith McGuigan (1):
      builtin/fetch.c: don't free remote->name after fetch

LE Manh Cuong (1):
      sh-setup: enclose setting of ${VAR=default} in double-quotes

Lars Vogel (1):
      Use "working tree" instead of "working directory" for git status

Michael J Gruber (5):
      cherry-pick: allow to pick to unborn branches
      Documentation/technical: describe signature formats
      Documentation/technical: signed tag format
      Documentation/technical: signed commit format
      Documentation/technical: signed merge tag format

Nguyễn Thái Ngọc Duy (1):
      pretty.c: support <direction>|(<negative number>) forms

Peter Colberg (2):
      refs.h: fix misspelt "occurred" in a comment
      config.c: fix misspelt "occurred" in an error message

Pranit Bauva (1):
      strbuf: describe the return value of strbuf_read_file

Ramsay Jones (1):
      regex: fix a SIZE_MAX macro redefinition warning

René Scharfe (9):
      t4051: rewrite, add more tests
      xdiff: factor out match_func_rec()
      xdiff: handle appended chunks better with -W
      xdiff: ignore empty lines before added functions with -W
      xdiff: -W: don't include common trailing empty lines in context
      xdiff: don't trim common tail with -W
      t7810: add test for grep -W and trailing empty context lines
      grep: -W: don't extend context to trailing empty lines
      xdiff: fix merging of appended hunk with -W

SZEDER Gábor (1):
      reflog: continue walking the reflog past root commits

Stefan Beller (1):
      t5614: don't use subshells

Tom Russello (4):
      doc: clearer rule about formatting literals
      doc: change environment variables format
      doc: more consistency in environment variables format
      doc: change configuration variables format

Ville Skyttä (1):
      git-prompt.sh: Don't error on null ${ZSH,BASH}_VERSION, $short_sha


Version v2.9.0; changes since v2.9.0-rc2:
-----------------------------------------

Alexander Shopov (1):
      l10n: Updated Bulgarian translation of git (2597t,0f,0u)

Antonin (1):
      l10n: fr.po Fixed grammar mistake

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Jean-Noël Avila (1):
      l10n: fr.po v2.9.0rnd1

Jeff King (1):
      test-lib: add in-shell "env" replacement

Jiang Xin (2):
      l10n: git.pot: v2.9.0 round 1 (104 new, 37 removed)
      l10n: zh_CN: for git v2.9.0 l10n round 1

Junio C Hamano (5):
      t5500 & t7403: lose bash-ism "local"
      t2300: run git-sh-setup in an environment that better mimics the real life
      diff: disable compaction heuristic for now
      Hopefully the final last-minute update before 2.9 final
      Git 2.9

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (2597t0f0u)

Ralf Thielow (1):
      l10n: de.po: translate 104 new messages

Ray Chen (1):
      l10n: zh_CN: review for git v2.9.0 l10n round 1

Trần Ngọc Quân (1):
      l10n: Updated Vietnamese translation (2597t)

Vasco Almeida (3):
      l10n: pt_PT: merge git.pot file
      l10n: pt_PT: update according to git-gui glossary
      l10n: pt_PT: update Portuguese translation


Version v2.9.0-rc2; changes since v2.9.0-rc1:
---------------------------------------------

Benjamin Dopplinger (1):
      README.md: format CLI commands with code syntax

Erwan Mathoniere (1):
      Documentation: bold literals in man

Johannes Sixt (1):
      rebase -i: remove an unnecessary 'rerere' invocation

Junio C Hamano (3):
      Almost ready for 2.9-rc2
      Git 2.8.4
      Git 2.9-rc2

Matthieu Moy (2):
      Makefile: move 'ifdef DEVELOPER' after config.mak* inclusion
      Makefile: add $(DEVELOPER_CFLAGS) variable

Pablo Santiago Blum de Aguiar (1):
      git-cherry-pick.txt: correct a small typo

René Scharfe (3):
      apply: remove unused parameters from name_terminate()
      patch-id: use starts_with() and skip_prefix()
      perf: make the tests work without a worktree

SZEDER Gábor (1):
      Documentation/git-send-email: fix typo in gmail 2FA section

Stefan Beller (2):
      submodule--helper: offer a consistent API
      submodule: remove bashism from shell script


Version v2.9.0-rc1; changes since v2.9.0-rc0:
---------------------------------------------

Armin Kunaschik (1):
      t0008: 4 tests fail with ksh88

Eric Sunshine (5):
      t1500: be considerate to future potential tests
      t1500: test_rev_parse: facilitate future test enhancements
      t1500: avoid changing working directory outside of tests
      t1500: avoid setting configuration options outside of tests
      t1500: avoid setting environment variables outside of tests

Felipe Contreras (1):
      fast-import: do not truncate exported marks file

Jeff King (3):
      cat-file: avoid noop calls to sha1_object_info_extended
      cat-file: default to --buffer when --batch-all-objects is used
      archive-tar: convert snprintf to xsnprintf

Johannes Sixt (1):
      t6044: replace seq by test_seq

Junio C Hamano (5):
      t4204: do not let $name variable clobbered
      Start preparing for 2.8.4
      Final batch before 2.9-rc1
      More topics for 2.8.4
      Git 2.9-rc1

Karsten Blees (1):
      mingw: make isatty() recognize MSYS2's pseudo terminals (/dev/pty*)

Michael Rappazzo (1):
      Documentation: add instructions to help setup gmail 2FA

Ramsay Jones (1):
      log: document the --decorate=auto option


Version v2.9.0-rc0; changes since v2.8.6:
-----------------------------------------

Ben Woosley (1):
      git-rebase--merge: don't include absent parent as a base

Christian Couder (1):
      Git/SVN: die when there is no commit metadata

David Turner (5):
      refs: move head_ref{,_submodule} to the common code
      refs: move for_each_*ref* functions into common code
      files-backend: break out ref reading
      refs: move resolve_ref_unsafe into common code
      refs: on symref reflog expire, lock symref not referrent

Dennis Kaarsemaker (1):
      Makefile: remove dependency on git.spec

Elijah Newren (6):
      merge-recursive: remove duplicate code
      merge-recursive: do not check working copy when creating a virtual merge base
      t7605: add a testcase demonstrating a bug with trivial merges
      builtin/merge.c: fix a bug with trivial merges
      t6044: new merge testcases for when index doesn't match HEAD
      merge-octopus: abort if index does not match HEAD

Eric Sunshine (4):
      lib-gpg: drop unnecessary "missing GPG" warning
      t6302: normalize names and descriptions of signed tags
      t6302: also test annotated in addition to signed tags
      t6302: skip only signed tags rather than all tests when GPG is missing

Jacob Keller (7):
      submodule: don't pass empty string arguments to submodule--helper clone
      submodule: check argc count for git submodule--helper clone
      submodule: fix submodule--helper clone usage
      submodule: fix segmentation fault in submodule--helper clone
      quote: implement sq_quotef()
      git: submodule honor -c credential.* from command line
      xdiff: add recs_match helper function

Jacob Nisnevich (2):
      mergetools: create mergetool_find_win32_cmd() helper function for winmerge
      mergetools: add support for ExamDiff

Jan Durovec (2):
      git-p4: clean-up code style in tests
      git-p4: add P4 jobs to git commit message

Jeff King (16):
      credential: let empty credential specs reset helper list
      add--interactive: allow custom diff highlighting programs
      git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS
      t5550: fix typo in $HTTPD_URL
      t5550: break submodule config test into multiple sub-tests
      submodule: export sanitized GIT_CONFIG_PARAMETERS
      submodule--helper: move config-sanitizing to submodule.c
      submodule: use prepare_submodule_repo_env consistently
      submodule: stop sanitizing config options
      t6302: simplify non-gpg cases
      t/lib-git-svn: drop $remote_git_svn and $git_svn_id
      t9100,t3419: enclose all test code in single-quotes
      t9107: use "return 1" instead of "exit 1"
      t9107: switch inverted single/double quotes in test
      t9103: modernize test style
      always quote shell arguments to test -z/-n

Johannes Schindelin (8):
      http: support sending custom HTTP headers
      tests: adjust the configuration for Apache 2.2
      t5551: make the test for extra HTTP headers more robust
      t3404: fix typo
      submodule: ensure that -c http.extraheader is heeded
      perf: let's disable symlinks when they are not available
      perf: make the tests work in worktrees
      perf: run "rebase -i" under perf

Junio C Hamano (45):
      rerere: split conflict ID further
      rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
      rerere: handle leftover rr-cache/$ID directory and postimage files
      rerere: delay the recording of preimage
      rerere: allow multiple variants to exist
      t4200: rerere a merge with two identical conflicts
      rerere: do use multiple variants
      merge: refuse to create too cool a merge by default
      pretty: enable --expand-tabs by default for selected pretty formats
      pretty: allow tweaking tabwidth in --expand-tabs
      First batch for post 2.8 cycle
      pretty: test --expand-tabs
      Second batch for post 2.8 cycle
      Makefile: stop pretending to support rpmbuild
      rerere: gc and clear
      rerere: move code related to "forget" together
      rerere: split code to call ll_merge() further
      rerere: adjust 'forget' to multi-variant world order
      Third batch for post 2.8 cycle
      Fourth batch for post 2.8 cycle
      ll-merge: fix typo in comment
      Makefile: clean *.o files we create
      Fifth batch for post 2.8 cycle
      t3033: avoid 'ambiguous refs' warning
      pull: pass --allow-unrelated-histories to "git merge"
      Sixth batch for post 2.8 cycle
      Seventh batch for post 2.8 cycle
      Eighth batch for 2.9
      diff: undocument the compaction heuristic knobs for experimentation
      commit-tree: do not pay attention to commit.gpgsign
      Ninth batch for 2.9
      Tenth batch for 2.9
      ll-merge: use a longer conflict marker for internal merge
      t6036: remove pointless test that expects failure
      ci: validate "linkgit:" in documentation
      test-parse-options: fix output when callback option fails
      test-parse-options: --expect=<string> option to simplify tests
      t0040: remove unused test helpers
      t0040: convert a few tests to use test-parse-options --expect
      Eleventh batch for 2.9
      rerere: plug memory leaks upon "rerere forget" failure
      Twelfth batch for 2.9
      Thirteenth batch for 2.9
      rerere: remove an null statement
      Git 2.9-rc0

Lars Schneider (2):
      git-p4: map a P4 user to Git author name and email address
      travis-ci: enable Git SVN tests t91xx on Linux

Laurent Arnoud (1):
      tag: add the option to force signing of annotated tags

Linus Torvalds (1):
      pretty: expand tabs in indented logs to make things line up properly

Matthieu Moy (7):
      Documentation/diff-config: fix description of diff.renames
      t4001-diff-rename: wrap file creations in a test
      t: add tests for diff.renames (true/false/unset)
      log: introduce init_log_defaults()
      diff: activate diff.renames by default
      README.md: don't take 'commandname' literally
      git-multimail: update to release 1.3.1

Mehul Jain (9):
      git-pull.c: introduce git_pull_config()
      pull --rebase: add --[no-]autostash flag
      t5520: use consistent capitalization in test titles
      t5520: ensure consistent test conditions
      t5520: use better test to check stderr output
      t5520: factor out common "successful autostash" code
      t5520: factor out common "failing autostash" code
      t5520: reduce commom lines of code
      t5520: test --[no-]autostash with pull.rebase=true

Michael Haggerty (19):
      t1430: test the output and error of some commands more carefully
      t1430: clean up broken refs/tags/shadow
      t1430: don't rely on symbolic-ref for creating broken symrefs
      t1430: test for-each-ref in the presence of badly-named refs
      t1430: improve test coverage of deletion of badly-named refs
      resolve_missing_loose_ref(): simplify semantics
      resolve_ref_unsafe(): use for loop to count up to MAXDEPTH
      resolve_ref_unsafe(): ensure flags is always set
      resolve_ref_1(): eliminate local variable
      resolve_ref_1(): reorder code
      resolve_ref_1(): eliminate local variable "bad_name"
      read_raw_ref(): manage own scratch space
      files-backend: inline resolve_ref_1() into resolve_ref_unsafe()
      read_raw_ref(): change flags parameter to unsigned int
      fsck_head_link(): remove unneeded flag variable
      cmd_merge(): remove unneeded flag variable
      checkout_paths(): remove unneeded flag variable
      check_aliased_update(): check that dst_name is non-NULL
      show_head_ref(): check the result of resolve_ref_namespace()

Michael J Gruber (1):
      completion: complete --cherry-mark for git log

Nguyễn Thái Ngọc Duy (57):
      apply: report patch skipping in verbose mode
      test helpers: move test-* to t/helper/ subdirectory
      dir.c: rename str(n)cmp_icase to fspath(n)cmp
      path.c: add git_common_path() and strbuf_git_common_path()
      worktree.c: store "id" instead of "git_dir"
      worktree.c: make find_shared_symref() return struct worktree *
      worktree.c: mark current worktree
      path.c: refactor and add worktree_git_path()
      wt-status.c: split rebase detection out of wt_status_get_state()
      wt-status.c: make wt_status_check_rebase() work on any worktree
      worktree.c: avoid referencing to worktrees[i] multiple times
      worktree.c: check whether branch is rebased in another worktree
      wt-status.c: split bisect detection out of wt_status_get_state()
      worktree.c: check whether branch is bisected in another worktree
      branch: do not rename a branch under bisect or rebase
      usage.c: move format processing out of die_errno()
      usage.c: add warning_errno() and error_errno()
      bisect.c: use die_errno() and warning_errno()
      builtin/am.c: use error_errno()
      builtin/branch.c: use error_errno()
      builtin/fetch.c: use error_errno()
      builtin/help.c: use warning_errno()
      builtin/mailsplit.c: use error_errno()
      builtin/merge-file.c: use error_errno()
      builtin/pack-objects.c: use die_errno() and warning_errno()
      builtin/rm.c: use warning_errno()
      builtin/update-index.c: prefer "err" to "errno" in process_lstat_error
      builtin/upload-archive.c: use error_errno()
      builtin/worktree.c: use error_errno()
      check-racy.c: use error_errno()
      combine-diff.c: use error_errno()
      compat/win32/syslog.c: use warning_errno()
      config.c: use error_errno()
      connected.c: use error_errno()
      copy.c: use error_errno()
      credential-cache--daemon.c: use warning_errno()
      diff-no-index.c: use error_errno()
      editor.c: use error_errno()
      entry.c: use error_errno()
      fast-import.c: use error_errno()
      gpg-interface.c: use error_errno()
      grep.c: use error_errno()
      http.c: use error_errno() and warning_errno()
      ident.c: use warning_errno()
      mailmap.c: use error_errno()
      reachable.c: use error_errno()
      rerere.c: use error_errno() and warning_errno()
      run-command.c: use error_errno()
      sequencer.c: use error_errno()
      server-info.c: use error_errno()
      sha1_file.c: use {error,die,warning}_errno()
      transport-helper.c: use error_errno()
      unpack-trees.c: use error_errno()
      upload-pack.c: use error_errno()
      vcs-svn: use error_errno()
      wrapper.c: use warning_errno()
      wrap-for-bin.sh: regenerate bin-wrappers when switching branches

Pranit Bauva (7):
      t0040-test-parse-options.sh: fix style issues
      test-parse-options: print quiet as integer
      t0040-parse-options: improve test coverage
      t/t7507: improve test coverage
      parse-options.c: make OPTION_COUNTUP respect "unspecified" values
      t7507-commit-verbose: improve test coverage by testing number of diffs
      commit: add a commit.verbose config variable

Ralf Thielow (3):
      completion: add option '--guides' to 'git help'
      completion: add 'revisions' and 'everyday' to 'git help'
      rebase-i: print an abbreviated hash when stop for editing

Ray Zhang (1):
      worktree: add: introduce --checkout option

Santiago Torres (6):
      builtin/verify-tag.c: ignore SIGPIPE in gpg-interface
      t7030: test verifying multiple tags
      verify-tag: update variable name and type
      verify-tag: prepare verify_tag for libification
      verify-tag: move tag verification code to tag.c
      tag -v: verify directly rather than exec-ing verify-tag

Sidhant Sharma (1):
      builtin/receive-pack.c: use parse_options API

Stefan Beller (20):
      submodule-config: keep update strategy around
      submodule-config: drop check against NULL
      fetching submodules: respect `submodule.fetchJobs` config option
      submodule update: direct error message to stderr
      run_processes_parallel: treat output of children as byte array
      run_processes_parallel: rename parameters for the callbacks
      git submodule update: have a dedicated helper for cloning
      submodule helper: remove double 'fatal: ' prefix
      submodule update: expose parallelism to the user
      clone: allow an explicit argument for parallel submodule clones
      rebase: decouple --exec from --interactive
      t3404: cleanup double empty lines between tests
      submodule: port resolve_relative_url from shell to C
      submodule: port init from shell to C
      xdiff: implement empty line chunk heuristic
      clone: add `--shallow-submodules` flag
      submodule init: fail gracefully with a missing .gitmodules file
      submodule--helper update-clone: abort gracefully on missing .gitmodules
      submodule deinit test: fix broken && chain in subshell
      submodule init: redirect stdout to stderr

Stephen P. Smith (1):
      wt-status.c: set commitable bit if there is a meaningful merge.

Xiaolong Ye (4):
      patch-ids: make commit_patch_id() a public helper function
      format-patch: add '--base' option to record base tree info
      format-patch: introduce --base=auto option
      format-patch: introduce format.useAutoBase configuration

brian m. carlson (6):
      sha1-name: introduce a get_oid() function
      test-match-trees: convert to use struct object_id
      match-trees: convert shift_tree() and shift_tree_by() to use object_id
      struct name_entry: use struct object_id instead of unsigned char sha1[20]
      tree-walk: convert tree_entry_extract() to use struct object_id
      match-trees: convert several leaf functions to use struct object_id

Ævar Arnfjörð Bjarmason (4):
      githooks.txt: improve the intro section
      githooks.txt: amend dangerous advice about 'update' hook ACL
      githooks.txt: minor improvements to the grammar & phrasing
      hooks: allow customizing where the hook directory is


Version v2.8.6; changes since v2.8.5:
-------------------------------------

Jeff King (4):
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (3):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6
      Git 2.8.6


Version v2.8.5; changes since v2.8.4:
-------------------------------------

Jeff King (1):
      shell: disallow repo names beginning with dash

Junio C Hamano (5):
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7
      Git 2.7.5
      Git 2.8.5


Version v2.8.4; changes since v2.8.3:
-------------------------------------

Alexander Rinass (1):
      diff: run arguments through precompose_argv

Armin Kunaschik (1):
      t4151: make sure argument to 'test -z' is given

Brian Norris (3):
      Documentation: config: improve word ordering for http.cookieFile
      http: expand http.cookieFile as a path
      config: consistently format $variables in monospaced font

David Aguilar (2):
      difftool: initialize variables for readability
      difftool: handle unmerged files in dir-diff mode

Jeff King (3):
      rebase--interactive: avoid empty list in shell for-loop
      test-lib: set BASH_XTRACEFD automatically
      archive-tar: convert snprintf to xsnprintf

Johannes Schindelin (3):
      name-rev: include taggerdate in considering the best name
      mingw: introduce the 'core.hideDotFiles' setting
      mingw: remove unnecessary definition

Junio C Hamano (9):
      fsck_commit_buffer(): do not special case the last validation
      config: describe 'pathname' value type
      test-lib-functions.sh: remove misleading comment on test_seq
      test-lib-functions.sh: rewrite test_seq without Perl
      Documentation: fix linkgit references
      fsck: detect and warn a commit with embedded NUL
      Start preparing for 2.8.4
      More topics for 2.8.4
      Git 2.8.4

Karsten Blees (1):
      mingw: make isatty() recognize MSYS2's pseudo terminals (/dev/pty*)

Keller Fuchs (1):
      Documentation: clarify signature verification

Lars Schneider (1):
      travis-ci: build documentation

Li Peng (1):
      typofix: assorted typofixes in comments, documentation and messages

Nguyễn Thái Ngọc Duy (1):
      remote.c: specify correct plural form in "commit diverge" message

Stefan Beller (3):
      submodule deinit: require '--all' instead of '.' for all submodules
      t3513: do not compress backup tar file
      t6041: do not compress backup tar file

Torsten Bögershausen (5):
      t0027: make commit_chk_wrnNNO() reliable
      convert: allow core.autocrlf=input and core.eol=crlf
      t0027: test cases for combined attributes
      convert.c: ident + core.autocrlf didn't work
      t5601: Remove trailing space in sed expression

Vasco Almeida (12):
      i18n: index-pack: use plural string instead of normal one
      i18n: builtin/branch.c: mark option for translation
      i18n: unpack-trees: mark strings for translation
      i18n: builtin/rm.c: remove a comma ',' from string
      i18n: branch: unmark string for translation
      i18n: branch: move comment for translators
      i18n: git-parse-remote.sh: mark strings for translation
      i18n: builtin/pull.c: mark placeholders for translation
      i18n: builtin/pull.c: split strings marked for translation
      i18n: remote: add comment for translators
      Documentation/git-mailinfo: fix typo
      i18n: unpack-trees: avoid substituting only a verb in sentences


Version v2.8.3; changes since v2.8.2:
-------------------------------------

Adam Dinwoodie (2):
      config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
      commit: --amend -m '' silently fails to wipe message

Christian Couder (3):
      builtin/apply: get rid of useless 'name' variable
      builtin/apply: handle parse_binary() failure
      builtin/apply: free patch when parse_chunk() fails

Eric Sunshine (1):
      git-format-patch.txt: don't show -s as shorthand for multiple options

Eric Wong (4):
      send-email: more meaningful Message-ID
      send-email: do not load Data::Dumper
      pack-objects: warn on split packs disabling bitmaps
      .mailmap: update to my shorter email address

Jeff King (22):
      setup: document check_repository_format()
      wrap shared_repository global in get/set accessors
      lazily load core.sharedrepository
      check_repository_format_gently: stop using git_config_early
      config: drop git_config_early
      setup: refactor repo format reading and verification
      init: use setup.c's repo version verification
      setup: unify repository version callbacks
      setup: drop repository_format_version global
      verify_repository_format: mark messages for translation
      branch: fix shortening of non-remote symrefs
      commit: do not ignore an empty message given by -m ''
      config: lower-case first word of error strings
      git_config_set_multivar_in_file: all non-zero returns are errors
      git_config_set_multivar_in_file: handle "unset" errors
      t5532: use write_script
      send-pack: close demux pipe before finishing async process
      run-command: teach async threads to ignore SIGPIPE
      send-pack: isolate sigpipe in demuxer thread
      fetch-pack: isolate sigpipe in demuxer thread
      t5504: drop sigpipe=ok from push tests
      remote.c: spell __attribute__ correctly

Johannes Schindelin (5):
      replace --edit: respect core.editor
      win32mmap: set errno appropriately
      mmap(win32): avoid copy-on-write when it is unnecessary
      mmap(win32): avoid expensive fstat() call
      Windows: only add a no-op pthread_sigmask() when needed

Johannes Sixt (1):
      Windows: add pthread_sigmask() that does nothing

Junio C Hamano (10):
      apply: remove unused call to free() in gitdiff_{old,new}name()
      submodule--helper: do not borrow absolute_path() result for too long
      setup.c: do not feed NULL to "%.*s" even with precision 0
      http: differentiate socks5:// and socks5h://
      t1020: do not overuse printf and use write_script
      t3404: use write_script
      send-email: fix grammo in the prompt that asks e-mail recipients
      Start preparing for 2.8.3
      Almost ready for 2.8.3
      Git 2.8.3

Kazuki Yamaguchi (10):
      branch -d: refuse deleting a branch which is currently checked out
      refs: add a new function set_worktree_head_symref
      branch -m: update all per-worktree HEADs
      set_worktree_head_symref(): fix error message
      imap-send: use HMAC() function provided by OpenSSL
      imap-send: check NULL return of SSL_CTX_new()
      imap-send: avoid deprecated TLSv1_method()
      configure: remove checking for HMAC_CTX_cleanup
      imap-send: check for NOLOGIN capability only when using LOGIN command
      imap-send: fix CRAM-MD5 response calculation

Lars Schneider (5):
      travis-ci: update Git-LFS and P4 to the latest version
      travis-ci: express Linux/OS X dependency versions more clearly
      git-p4: fix Git LFS pointer parsing
      t9824: fix wrong reference value
      Documentation: add setup instructions for Travis CI

Luke Diamand (3):
      git-p4 tests: cd to / before running python
      git-p4 tests: work with python3 as well as python2
      git-p4 tests: time_in_seconds should use $PYTHON_PATH

Marios Titas (2):
      ident: check for useConfigOnly before auto-detection of name/email
      ident: give "please tell me" message upon useConfigOnly error

Matthieu Moy (1):
      git-multimail: update to release 1.3.0

Nguyễn Thái Ngọc Duy (2):
      dir.c: remove dead function fnmatch_icase()
      wrapper.c: delete dead function git_mkstemps()

Nikola Forró (1):
      difftool/mergetool: make the form of yes/no questions consistent

Ralf Thielow (1):
      string_list: use string-list API in unsorted_string_list_lookup()

René Nyffenegger (1):
      Documentation: fix typo 'In such these cases'

SZEDER Gábor (4):
      for-each-ref: fix description of '--contains' in manpage
      test-lib: simplify '--option=value' parsing
      t9824: fix broken &&-chain in a subshell
      t5510: run auto-gc in the foreground

Shin Kojima (1):
      gitweb: apply fallback encoding before highlight

Stefan Beller (20):
      submodule foreach: correct path display in recursive submodules
      submodule update --init: correct path handling in recursive submodules
      submodule status: correct path handling in recursive submodules
      submodule update: align reporting path for custom command execution
      submodule update: test recursive path reporting from subdirectory
      t7407: make expectation as clear as possible
      recursive submodules: test for relative paths
      submodule--helper: fix potential NULL-dereference
      submodule--helper clone: create the submodule path just once
      notes: don't leak memory in git_config_get_notes_strategy
      abbrev_sha1_in_line: don't leak memory
      bundle: don't leak an fd in case of early return
      credential-cache, send_request: close fd when done
      submodule--helper, module_clone: always operate on absolute paths
      submodule--helper, module_clone: catch fprintf failure
      mv: allow moving nested submodules
      config doc: improve exit code listing
      config.c: drop local variable
      submodule-config: don't shadow `cache`
      t7300: mark test with SANITY


Version v2.8.2; changes since v2.8.1:
-------------------------------------

Alexander Kuleshov (1):
      submodule-config: use hashmap_iter_first()

Christian Couder (1):
      Documentation: talk about pager in api-trace.txt

David Aguilar (2):
      mergetool: support delete/delete conflicts
      mergetool: honor tempfile configuration when resolving delete conflicts

Elia Pinto (1):
      api-trace.txt: fix typo

Gabriel Souza Franco (2):
      fetch-pack: fix object_id of exact sha1
      fetch-pack: update the documentation for "<refs>..." arguments

Jeff King (12):
      t1515: add tests for rev-parse out-of-repo helpers
      rev-parse: let some options run outside repository
      strbuf_getwholeline: NUL-terminate getdelim buffer on error
      setup: make startup_info available everywhere
      setup: set startup_info->have_repository more reliably
      remote: don't resolve HEAD in non-repository
      mailmap: do not resolve blobs in a non-repository
      grep: turn off gitlink detection for --no-index
      use setup_git_directory() in test-* programs
      send-email: ignore trailing whitespace in mailrc alias file
      credential-cache--daemon: clarify "exit" action semantics
      t/lib-httpd: pass through GIT_CONFIG_NOSYSTEM env

Johannes Sixt (1):
      Windows: shorten code by re-using convert_slashes()

John Keeping (3):
      config: fail if --get-urlmatch finds no value
      Documentation/git-config: use bulleted list for exit codes
      Documentation/git-config: fix --get-all description

Junio C Hamano (7):
      index-pack: correct --keep[=<msg>]
      index-pack: add a helper function to derive .idx/.keep filename
      merge: fix NULL pointer dereference when merging nothing into void
      Makefile: fix misdirected redirections
      Start preparing for 2.8.2
      Prepare for 2.8.2
      Git 2.8.2

Matthieu Moy (2):
      lockfile: mark strings for translation
      lockfile: improve error message when lockfile exists

Michael Procter (1):
      upload-pack: use argv_array for pack_objects

Nguyễn Thái Ngọc Duy (2):
      git-apply.txt: remove a space
      git-apply.txt: mention the behavior inside a subdir

Ori Avtalion (1):
      Documentation: git diff --check detects conflict markers

Pranit Bauva (2):
      t/t7502 : drop duplicate test
      api-parse-options.txt: document OPT_CMDMODE()

Ramsay Jones (2):
      xdiff/xprepare: use the XDF_DIFF_ALG() macro to access flag bits
      xdiff/xprepare: fix a memory leak

SZEDER Gábor (1):
      diffcore: fix iteration order of identical files during rename detection

Saurav Sachidanand (1):
      dir: store EXC_FLAG_* values in unsigned integers

Stanislav Kolotinskiy (1):
      git-send-pack: fix --all option when used with directory

Stefan Beller (1):
      clone tests: rename t57* => t56*

Sven Strickroth (3):
      commit: do not lose SQUASH_MSG contents
      MSVC: vsnprintf in Visual Studio 2015 doesn't need SNPRINTF_SIZE_CORR any more
      MSVC: use shipped headers instead of fallback definitions

Torsten Bögershausen (1):
      correct blame for files commited with CRLF

Vasco Almeida (4):
      l10n: fr: fix transcation of "dir"
      l10n: fr: fix wrongly translated option name
      l10n: fr: change "id de clé" to match "id-clé"
      l10n: fr: don't translate "merge" as a parameter


Version v2.8.1; changes since v2.8.0:
-------------------------------------

Junio C Hamano (1):
      Git 2.8.1

Matthieu Moy (1):
      git.spec.in: use README.md, not README


Version v2.8.0; changes since v2.8.0-rc4:
-----------------------------------------

Alex Henrie (1):
      l10n: ca.po: update translation

Johannes Schindelin (4):
      config --show-origin: report paths with forward slashes
      t1300-repo-config: make it resilient to being run via 'sh -x'
      t1300: fix the new --show-origin tests on Windows
      mingw: skip some tests in t9115 due to file name issues

Junio C Hamano (1):
      Git 2.8

Lars Schneider (2):
      Documentation: use ASCII quotation marks in git-p4
      Documentation: fix git-p4 AsciiDoc formatting

Stefan Beller (1):
      submodule: fix regression for deinit without submodules

Trần Ngọc Quân (1):
      l10n: vi.po (2530t): Update translation

Vasco Almeida (1):
      l10n: pt_PT: Update and add new translations


Version v2.8.0-rc4; changes since v2.8.0-rc3:
---------------------------------------------

Alexander Shopov (1):
      gitk: Update Bulgarian translation (311t)

Changwoo Ryu (1):
      l10n: ko.po: Update Korean translation

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Eric Sunshine (2):
      git-compat-util: st_add4: work around gcc 4.2.x compiler crash
      Revert "config.mak.uname: use clang for Mac OS X 10.6"

Guillermo S. Romero (1):
      gitk: Follow themed bgcolor in help dialogs

Jean-Noël Avila (3):
      l10n: fr.po v2.8.0 round 3
      gitk: Update French translation (311t)
      gitk: fr.po: Sync translations with git

Junio C Hamano (8):
      Git 2.4.11
      Git 2.5.5
      Git 2.6.6
      Git 2.7.4
      Revert "Merge branch 'jc/exclusion-doc'"
      Revert "Merge branch 'nd/exclusion-regression-fix'"
      RelNotes: remove the mention of !reinclusion
      Git 2.8-rc4

Matthieu Moy (1):
      Documentation: fix broken linkgit to git-config

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (2530t0f0u)

Ralf Thielow (3):
      l10n: de.po: translate 22 new messages
      l10n: de.po: add missing newlines
      gitk: Update German translation

Ray Chen (1):
      l10n: zh_CN: review for git v2.8.0 l10n round 2


Version v2.8.0-rc3; changes since v2.8.0-rc2:
---------------------------------------------

Adam Dinwoodie (1):
      t9117: test specifying full url to git svn init -T

Audric Schiltknecht (1):
      l10n: fr.po: Correct case in sentence

Carlos Martín Nieto (1):
      Disown ssh+git and git+ssh

Changwoo Ryu (2):
      l10n: ko.po: Update Korean translation
      l10n: ko: Update Korean translation

Christoph Hoopmann (1):
      l10n: de.po: fix typo

Dimitriy Ryazantcev (2):
      l10n: ru.po: update Russian translation
      l10n: ru.po: update Russian translation

Eric Wong (2):
      git-svn: shorten glob error message
      git-svn: fix URL canonicalization during init w/ SVN 1.7+

Jean-Noël Avila (2):
      l10n: fr.po v2.8.0 round 1 2509t
      l10n: fr.po v2.8.0 round 2

Jeff King (7):
      add helpers for detecting size_t overflow
      tree-diff: catch integer overflow in combine_diff_path allocation
      http-push: stop using name_path
      show_object_with_name: simplify by using path_name()
      list-objects: convert name_path to a strbuf
      list-objects: drop name_path entirely
      list-objects: pass full pathname to callbacks

Jiang Xin (6):
      l10n: git.pot: v2.8.0 round 1 (48 new, 16 removed)
      l10n: zh_CN: for git v2.8.0 l10n round 1
      l10n: git.pot: v2.8.0 round 2 (21 new, 1 removed)
      l10n: zh_CN: for git v2.8.0 l10n round 2
      l10n: git.pot: Add one new message for Git 2.8.0
      l10n: zh_CN: for git v2.8.0 l10n round 3

Junio C Hamano (4):
      sane_grep: pass "-a" if grep accepts it
      rebase-i: clarify "is this commit relevant?" test
      RelNotes for 2.8.0: typofix
      Git 2.8-rc3

Michael J Gruber (1):
      wt-status: allow "ahead " to be picked up by l10n

Peter Krefting (2):
      l10n: sv.po: Fix inconsistent translation of "progress meter"
      l10n: sv.po: Update Swedish translation (2509t0f0u)

Ralf Thielow (5):
      l10n: TEAMS: update Ralf Thielow's email address
      l10n: de.po: add space to abbreviation "z. B."
      l10n: de.po: fix interactive rebase message
      l10n: de.po: translate "command" as "Befehl"
      l10n: de.po: translate 48 new messages

Trần Ngọc Quân (1):
      l10n: vi.po (2509t): Updated Vietnamese translation

Victor Leschuk (1):
      git-svn: loosen config globs limitations


Version v2.8.0-rc2; changes since v2.8.0-rc1:
---------------------------------------------

Jiang Xin (1):
      http: honor no_http env variable to bypass proxy

Junio C Hamano (3):
      gitignore: document that unignoring a directory unignores everything in it
      Git 2.7.3
      Git 2.8-rc2

Michael J Gruber (1):
      t5510: do not leave changed cwd

Stefan Beller (1):
      Documentation: reword rebase summary


Version v2.8.0-rc1; changes since v2.8.0-rc0:
---------------------------------------------

Jeff King (5):
      t5313: test bounds-checks of corrupted/malicious pack/idx files
      nth_packed_object_offset: bounds-check extended offset
      use_pack: handle signed off_t overflow
      compat/mingw: brown paper bag fix for 50a6c8e
      t9700: fix test for perl older than 5.14

Johannes Schindelin (1):
      Mark win32's pthread_exit() as NORETURN

Johannes Sixt (1):
      t0001: fix GIT_* environment variable check under --valgrind

Junio C Hamano (1):
      Git 2.8-rc1

Michael J Gruber (1):
      t/lib-httpd: load mod_unixd

Nguyễn Thái Ngọc Duy (5):
      sha1_file.c: mark strings for translation
      builtin/checkout.c: mark strings for translation
      builtin/clone.c: mark strings for translation
      ref-filter.c: mark strings for translation
      trailer.c: mark strings for translation

Stefan Beller (1):
      run-command: do not pass child process data into callbacks

Thomas Ackermann (1):
      documentation: fix some typos

Torsten Bögershausen (1):
      config.mak.uname: use clang for Mac OS X 10.6


Version v2.8.0-rc0; changes since v2.7.6:
-----------------------------------------

Alexander Kuleshov (1):
      format-patch: introduce format.outputDirectory configuration

Christian Couder (11):
      dir: free untracked cache when removing it
      update-index: use enum for untracked cache options
      update-index: add --test-untracked-cache
      update-index: add untracked cache notifications
      update-index: move 'uc' var declaration
      dir: add {new,add}_untracked_cache()
      dir: add remove_untracked_cache()
      dir: simplify untracked cache "ident" field
      config: add core.untrackedCache
      test-dump-untracked-cache: don't modify the untracked cache
      t7063: add tests for core.untrackedCache

Christoph Egger (1):
      http: implement public key pinning

Dan Aloni (1):
      ident: add user.useConfigOnly boolean for when ident shouldn't be guessed

David A. Greene (1):
      contrib/subtree: Make testing easier

David Turner (2):
      do_compare_entry: use already-computed path
      unpack-trees: fix accidentally quadratic behavior

Edmundo Carmona Antoranz (1):
      blame: add support for --[no-]progress option

Elia Pinto (92):
      Makefile: add missing phony target
      contrib/examples/git-commit.sh: use the $( ... ) construct for command substitution
      contrib/examples/git-fetch.sh: use the $( ... ) construct for command substitution
      contrib/examples/git-merge.sh: use the $( ... ) construct for command substitution
      contrib/examples/git-repack.sh: use the $( ... ) construct for command substitution
      contrib/examples/git-revert.sh: use the $( ... ) construct for command substitution
      contrib/thunderbird-patch-inline/appp.sh: use the $( ... ) construct for command substitution
      git-gui/po/glossary/txt-to-pot.sh: use the $( ... ) construct for command substitution
      t/lib-httpd.sh: use the $( ... ) construct for command substitution
      test-sha1.sh: use the $( ... ) construct for command substitution
      unimplemented.sh: use the $( ... ) construct for command substitution
      t/t1100-commit-tree-options.sh: use the $( ... ) construct for command substitution
      t/t1401-symbolic-ref.sh: use the $( ... ) construct for command substitution
      t/t1410-reflog.sh: use the $( ... ) construct for command substitution
      t/t1511-rev-parse-caret.sh: use the $( ... ) construct for command substitution
      t/t1512-rev-parse-disambiguation.sh: use the $( ... ) construct for command substitution
      t/t1700-split-index.sh: use the $( ... ) construct for command substitution
      t/t2025-worktree-add.sh: use the $( ... ) construct for command substitution
      t/t2102-update-index-symlinks.sh: use the $( ... ) construct for command substitution
      t/t3030-merge-recursive.sh: use the $( ... ) construct for command substitution
      t/t3100-ls-tree-restrict.sh: use the $( ... ) construct for command substitution
      t/t3101-ls-tree-dirname.sh: use the $( ... ) construct for command substitution
      t/t3210-pack-refs.sh: use the $( ... ) construct for command substitution
      t/t3403-rebase-skip.sh: use the $( ... ) construct for command substitution
      t/t3511-cherry-pick-x.sh: use the $( ... ) construct for command substitution
      t/t3600-rm.sh: use the $( ... ) construct for command substitution
      t/t3700-add.sh: use the $( ... ) construct for command substitution
      t/t5100-mailinfo.sh: use the $( ... ) construct for command substitution
      t/t5300-pack-object.sh: use the $( ... ) construct for command substitution
      t/t5301-sliding-window.sh: use the $( ... ) construct for command substitution
      t/t5302-pack-index.sh: use the $( ... ) construct for command substitution
      t/t5303-pack-corruption-resilience.sh: use the $( ... ) construct for command substitution
      t/t5304-prune.sh: use the $( ... ) construct for command substitution
      t/t5305-include-tag.sh: use the $( ... ) construct for command substitution
      t/t5500-fetch-pack.sh: use the $( ... ) construct for command substitution
      t/t5505-remote.sh: use the $( ... ) construct for command substitution
      t/t5506-remote-groups.sh: use the $( ... ) construct for command substitution
      t/t5510-fetch.sh: use the $( ... ) construct for command substitution
      t/t5515-fetch-merge-logic.sh: use the $( ... ) construct for command substitution
      t/t5516-fetch-push.sh: use the $( ... ) construct for command substitution
      t/t5517-push-mirror.sh: use the $( ... ) construct for command substitution
      t/t5522-pull-symlink.sh: use the $( ... ) construct for command substitution
      t/t5530-upload-pack-error.sh: use the $( ... ) construct for command substitution
      t/t5532-fetch-proxy.sh: use the $( ... ) construct for command substitution
      t/t5537-fetch-shallow.sh: use the $( ... ) construct for command substitution
      t/t5538-push-shallow.sh: use the $( ... ) construct for command substitution
      t/t5550-http-fetch-dumb.sh: use the $( ... ) construct for command substitution
      t/t5570-git-daemon.sh: use the $( ... ) construct for command substitution
      t/t5601-clone.sh: use the $( ... ) construct for command substitution
      t/t5700-clone-reference.sh: use the $( ... ) construct for command substitution
      t/t5710-info-alternate.sh: use the $( ... ) construct for command substitution
      t/t5900-repo-selection.sh: use the $( ... ) construct for command substitution
      t/t6001-rev-list-graft.sh: use the $( ... ) construct for command substitution
      t/t6002-rev-list-bisect.sh: use the $( ... ) construct for command substitution
      t/t6015-rev-list-show-all-parents.sh: use the $( ... ) construct for command substitution
      t/t6032-merge-large-rename.sh: use the $( ... ) construct for command substitution
      t/t6132-pathspec-exclude.sh: use the $( ... ) construct for command substitution
      t/t7001-mv.sh: use the $( ... ) construct for command substitution
      t/t7003-filter-branch.sh: use the $( ... ) construct for command substitution
      t/t7004-tag.sh: use the $( ... ) construct for command substitution
      t/t7006-pager.sh: use the $( ... ) construct for command substitution
      t/t7103-reset-bare.sh: use the $( ... ) construct for command substitution
      t/t7406-submodule-update.sh: use the $( ... ) construct for command substitution
      t/t7408-submodule-reference.sh: use the $( ... ) construct for command substitution
      t/t7504-commit-msg-hook.sh: use the $( ... ) construct for command substitution
      t/t7505-prepare-commit-msg-hook.sh: use the $( ... ) construct for command substitution
      t/t7602-merge-octopus-many.sh: use the $( ... ) construct for command substitution
      t/t7700-repack.sh: use the $( ... ) construct for command substitution
      t/t8003-blame-corner-cases.sh: use the $( ... ) construct for command substitution
      t/t9001-send-email.sh: use the $( ... ) construct for command substitution
      t9100-git-svn-basic.sh: use the $( ... ) construct for command substitution
      t9101-git-svn-props.sh: use the $( ... ) construct for command substitution
      t9104-git-svn-follow-parent.sh: use the $( ... ) construct for command substitution
      t9105-git-svn-commit-diff.sh: use the $( ... ) construct for command substitution
      t9107-git-svn-migrate.sh: use the $( ... ) construct for command substitution
      t9108-git-svn-glob.sh: use the $( ... ) construct for command substitution
      t9109-git-svn-multi-glob.sh: use the $( ... ) construct for command substitution
      t9110-git-svn-use-svm-props.sh: use the $( ... ) construct for command substitution
      t9114-git-svn-dcommit-merge.sh: use the $( ... ) construct for command substitution
      t9118-git-svn-funky-branch-names.sh: use the $( ... ) construct for command substitution
      t9119-git-svn-info.sh: use the $( ... ) construct for command substitution
      t9129-git-svn-i18n-commitencoding.sh: use the $( ... ) construct for command substitution
      t9130-git-svn-authors-file.sh: use the $( ... ) construct for command substitution
      t9132-git-svn-broken-symlink.sh: use the $( ... ) construct for command substitution
      t9137-git-svn-dcommit-clobber-series.sh: use the $( ... ) construct for command substitution
      t9138-git-svn-authors-prog.sh: use the $( ... ) construct for command substitution
      t9145-git-svn-master-branch.sh: use the $( ... ) construct for command substitution
      t9150-svk-mergetickets.sh: use the $( ... ) construct for command substitution
      t9300-fast-import.sh: use the $( ... ) construct for command substitution
      t9350-fast-export.sh: use the $( ... ) construct for command substitution
      t9501-gitweb-standalone-http-status.sh: use the $( ... ) construct for command substitution
      t9901-git-web--browse.sh: use the $( ... ) construct for command substitution

Eric Wong (5):
      pass transport verbosity down to git_connect
      connect & http: support -4 and -6 switches for remote operations
      t5570: add tests for "git {clone,fetch,pull} -v"
      git-svn: hoist out utf8 prep from t9129 to lib-git-svn
      tests: remove no-op full-svn-test target

Felipe Gonçalves Assis (7):
      merge-recursive: option to disable renames
      merge-recursive: more consistent interface
      merge-strategies.txt: fix typo
      merge-recursive: find-renames resets threshold
      t3034: add rename threshold tests
      t3034: test option to disable renames
      t3034: test deprecated interface

Jacob Keller (1):
      notes: allow merging from arbitrary references

Jeff King (33):
      pack-revindex: drop hash table
      pack-revindex: store entries directly in packed_git
      create_symref: modernize variable names
      create_symref: use existing ref-lock code
      create_symref: write reflog while holding lock
      run-command: don't warn on SIGPIPE deaths
      checkout,clone: check return value of create_symref
      lock_ref_sha1_basic: always fill old_oid while holding lock
      lock_ref_sha1_basic: handle REF_NODEREF with invalid refs
      shortlog: match both "Author:" and "author" on stdin
      shortlog: use strbufs to read from stdin
      shortlog: replace hand-parsing of author with pretty-printer
      shortlog: optimize "--summary" mode
      shortlog: optimize out useless "<none>" normalization
      shortlog: optimize out useless string list
      shortlog: don't warn on empty author
      transport: drop support for git-over-rsync
      give "nbuf" strbuf a more meaningful name
      checkout-index: simplify "-z" option parsing
      checkout-index: handle "--no-prefix" option
      checkout-index: handle "--no-index" option
      checkout-index: disallow "--no-stage" option
      apply, ls-files: simplify "-z" parsing
      fmt_ident: refactor strictness checks
      test-path-utils: use xsnprintf in favor of strcpy
      rerere: replace strcpy with xsnprintf
      http-push: stop using name_path
      show_object_with_name: simplify by using path_name()
      list-objects: convert name_path to a strbuf
      list-objects: drop name_path entirely
      list-objects: pass full pathname to callbacks
      git-config: better document default behavior for `--include`
      ref-filter: use string_list_split over strbuf_split

Johannes Schindelin (31):
      config.mak.uname: support MSys2
      config.mak.uname: supporting 64-bit MSys2
      pull: allow interactive rebase with --rebase=interactive
      remote: handle the config setting branch.*.rebase=interactive
      completion: add missing branch.*.rebase values
      nedmalloc: allow compiling with MSys2's compiler
      compat/mingw: support MSys2-based MinGW build
      compat/winansi: support compiling with MSys2
      mingw: avoid redefining S_* constants
      mingw: avoid warnings when casting HANDLEs to int
      mingw: squash another warning about a cast
      mingw: uglify (a, 0) definitions to shut up warnings
      mingw: let's use gettext with MSYS2
      mingw: do not trust MSYS2's MinGW gettext.sh
      Git.pm: stop assuming that absolute paths start with a slash
      mingw: prepare the TMPDIR environment variable for shell scripts
      mingw: let lstat() fail with errno == ENOTDIR when appropriate
      mingw: fix t5601-clone.sh
      mingw: accomodate t0060-path-utils for MSYS2
      mingw: disable mkfifo-based tests
      tests: turn off git-daemon tests if FIFOs are not available
      mingw: skip test in t1508 that fails due to path conversion
      mingw: fix t9700's assumption about directory separators
      mingw: work around pwd issues in the tests
      mingw: mark t9100's test cases with appropriate prereqs
      mingw: avoid illegal filename in t9118
      mingw: handle the missing POSIXPERM prereq in t9124
      mingw: skip a test in t9130 that cannot pass on Windows
      mingw: do not bother to test funny file names
      gitignore: ignore generated test-fake-ssh executable
      t5505: 'remote add x y' should work when url.y.insteadOf = x

Johannes Sixt (1):
      t/t5100: no need to use 'echo' command substitutions for globbing

Jon Griffiths (3):
      credential-cache--daemon: refactor check_socket_directory
      credential-cache--daemon: disallow relative socket path
      credential-cache--daemon: change to the socket dir on startup

Jonathan Nieder (1):
      submodule.c: write "Fetching submodule <foo>" to stderr

Junio C Hamano (35):
      First batch for post 2.7 cycle
      strbuf: miniscule style fix
      strbuf: make strbuf_getline_crlf() global
      strbuf: introduce strbuf_getline_{lf,nul}()
      mktree: there are only two possible line terminations
      check-attr: there are only two possible line terminations
      check-ignore: there are only two possible line terminations
      update-index: there are only two possible line terminations
      checkout-index: there are only two possible line terminations
      strbuf: give strbuf_getline() to the "most text friendly" variant
      hash-object: read --stdin-paths with strbuf_getline()
      revision: read --stdin with strbuf_getline()
      rev-parse: read parseopt spec with strbuf_getline()
      ident.c: read /etc/mailname with strbuf_getline()
      remote.c: read $GIT_DIR/remotes/* with strbuf_getline()
      clone/sha1_file: read info/alternates with strbuf_getline()
      transport-helper: read helper response with strbuf_getline()
      cat-file: read batch stream with strbuf_getline()
      column: read lines with strbuf_getline()
      send-pack: read list of refs with strbuf_getline()
      grep: read -f file with strbuf_getline()
      test-sha1-array: read command stream with strbuf_getline()
      Second batch for 2.8 cycle
      Third batch for 2.8 cycle
      git: remove an early return from save_env_before_alias()
      git: protect against unbalanced calls to {save,restore}_env()
      git: simplify environment save/restore logic
      Fourth batch for 2.8.cycle
      Getting closer to 2.7.1
      restore_env(): free the saved environment variable once we are done
      Fifth batch for 2.8 cycle
      Sixth batch for the 2.8 cycle
      Seventh batch for the 2.8 cycle
      Eighth batch for 2.8
      Git 2.8-rc0

Karsten Blees (1):
      mingw: factor out Windows specific environment setup

Karthik Nayak (10):
      ref-filter: bump 'used_atom' and related code to the top
      ref-filter: introduce struct used_atom
      ref-filter: introduce parsing functions for each valid atom
      ref-filter: introduce color_atom_parser()
      ref-filter: introduce parse_align_position()
      ref-filter: introduce align_atom_parser()
      ref-filter: align: introduce long-form syntax
      ref-filter: introduce remote_ref_atom_parser()
      ref-filter: introduce contents_atom_parser()
      ref-filter: introduce objectname_atom_parser()

Kazutoshi Satoda (2):
      git-svn: enable "svn.pathnameencoding" on dcommit
      git-svn: apply "svn.pathnameencoding" before URL encoding

Knut Franke (2):
      http: allow selection of proxy authentication method
      http: use credential API to handle proxy authentication

Lars Schneider (8):
      travis-ci: run previously failed tests first, then slowest to fastest
      travis-ci: explicity use container-based infrastructure
      convert: treat an empty string for clean/smudge filters as "cat"
      t: do not hide Git's exit code in tests using 'nul_to_q'
      rename git_config_from_buf to git_config_from_mem
      config: add 'origin_type' to config_source struct
      config: add '--show-origin' option to print the origin of a config value
      add DEVELOPER makefile knob to check for acknowledged warnings

Matthew Kraai (1):
      Documentation: remove unnecessary backslashes

Matthieu Moy (6):
      README: use markdown syntax
      README.md: add hyperlinks on filenames
      README.md: move the link to git-scm.com up
      README.md: don't call git stupid in the title
      README.md: move down historical explanation about the name
      push: remove "push.default is unset" warning message

Michael J Gruber (1):
      t9100: fix breakage when SHELL_PATH is not /bin/sh

Mike Hommey (1):
      notes: allow treeish expressions as notes ref

Nguyễn Thái Ngọc Duy (9):
      git.c: make it clear save_env() is for alias handling only
      setup.c: re-fix d95138e (setup: set env $GIT_WORK_TREE when ..
      git.c: make sure we do not leak GIT_* to alias scripts
      dir.c: fix match_pathname()
      dir.c: support tracing exclude
      dir.c: support marking some patterns already matched
      dir.c: don't exclude whole dir prematurely
      worktree: fix "add -B"
      worktree add -B: do the checkout test before update branch

Pat Thoyts (1):
      t0008: avoid absolute path

Patrick Steinhardt (2):
      push: add '--delete' flag to synopsis
      push: add '-d' as shorthand for '--delete'

Rob Mayoff (1):
      contrib/subtree: unwrap tag refs

Romain Picard (1):
      git-p4.py: add support for filetype change

Stefan Beller (7):
      xread: poll on non blocking fds
      strbuf: add strbuf_read_once to read without blocking
      sigchain: add command to pop all common signals
      run-command: add an asynchronous parallel child processor
      fetch_populated_submodules: use new parallel job processing
      submodules: allow parallel fetching, add tests and documentation
      submodule: try harder to fetch needed sha1 by direct fetching sha1

Thomas Gummerer (11):
      t7810: correct --no-index test
      builtin/grep: add grep.fallbackToNoIndex config
      ls-remote: document --quiet option
      ls-remote: document --refs option
      ls-remote: fix synopsis
      ls-remote: use parse-options api
      ls-remote: add support for showing symrefs
      remote: use parse_config_key
      remote: simplify remote_is_configured()
      remote: actually check if remote exits
      remote: use remote_is_configured() for add and rename

Tobias Klauser (2):
      trailer: allow to write to files other than stdout
      interpret-trailers: add option for in-place editing

Torsten Bögershausen (8):
      ls-files: add eol diagnostics
      t0027: add tests for get_stream_filter()
      convert.c: remove unused parameter 'path'
      convert.c: remove input_crlf_action()
      convert.c: use text_eol_is_crlf()
      convert.c: refactor crlf_action
      convert.c: simplify text_stat
      convert.c: correct attr_action()

Victor Leschuk (3):
      grep: allow threading even on a single-core machine
      grep: slight refactoring to the code that disables threading
      grep: add --threads=<num> option and grep.threads configuration

Will Palmer (2):
      test for '!' handling in rev-parse's named commits
      object name: introduce '^{/!-<negative pattern>}' notation

brian m. carlson (1):
      http: add option to try authentication without username

마누엘 (1):
      mingw: try to delete target directory before renaming


Version v2.7.6; changes since v2.7.5:
-------------------------------------

Jeff King (4):
      t5813: add test for hostname starting with dash
      connect: factor out "looks like command line option" check
      connect: reject dashed arguments for proxy commands
      connect: reject paths that look like command line options

Junio C Hamano (2):
      connect: reject ssh hostname that begins with a dash
      Git 2.7.6


Version v2.7.5; changes since v2.7.4:
-------------------------------------

Eric Sunshine (1):
      git-compat-util: st_add4: work around gcc 4.2.x compiler crash

Jeff King (2):
      archive-tar: convert snprintf to xsnprintf
      shell: disallow repo names beginning with dash

Junio C Hamano (4):
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7
      Git 2.7.5

Matthieu Moy (1):
      Documentation: fix broken linkgit to git-config


Version v2.7.4; changes since v2.7.3:
-------------------------------------

Jeff King (7):
      add helpers for detecting size_t overflow
      tree-diff: catch integer overflow in combine_diff_path allocation
      http-push: stop using name_path
      show_object_with_name: simplify by using path_name()
      list-objects: convert name_path to a strbuf
      list-objects: drop name_path entirely
      list-objects: pass full pathname to callbacks

Junio C Hamano (4):
      Git 2.4.11
      Git 2.5.5
      Git 2.6.6
      Git 2.7.4


Version v2.7.3; changes since v2.7.2:
-------------------------------------

Alexander Kuleshov (2):
      exec_cmd.c: use find_last_dir_sep() for code simplification
      git.c: simplify stripping extension of a file in handle_builtin()

David Turner (1):
      refs: document transaction semantics

Jeff King (37):
      checkout: reorder check_filename conditional
      check_filename: tighten dwim-wildcard ambiguity
      get_sha1: don't die() on bogus search strings
      reflog_expire_cfg: NUL-terminate pattern field
      add helpers for detecting size_t overflow
      tree-diff: catch integer overflow in combine_diff_path allocation
      diff: clarify textconv interface
      harden REALLOC_ARRAY and xcalloc against size_t overflow
      add helpers for allocating flex-array structs
      argv-array: add detach function
      convert manual allocations to argv_array
      convert trivial cases to ALLOC_ARRAY
      use xmallocz to avoid size arithmetic
      convert trivial cases to FLEX_ARRAY macros
      use st_add and st_mult for allocation size computation
      prepare_{git,shell}_cmd: use argv_array
      write_untracked_extension: use FLEX_ALLOC helper
      fast-import: simplify allocation in start_packfile
      fetch-pack: simplify add_sought_entry
      test-path-utils: fix normalize_path_copy output buffer size
      sequencer: simplify memory allocation of get_message
      git-compat-util: drop mempcpy compat code
      transport_anonymize_url: use xstrfmt
      diff_populate_gitlink: use a strbuf
      convert ewah/bitmap code to use xmalloc
      ewah: convert to REALLOC_ARRAY, etc
      merge-one-file: use empty blob for add/add base
      merge-tree: drop generate_common strategy
      xdiff: drop XDL_EMIT_COMMON
      t5313: test bounds-checks of corrupted/malicious pack/idx files
      nth_packed_object_offset: bounds-check extended offset
      use_pack: handle signed off_t overflow
      write_or_die: handle EPIPE in async threads
      fetch-pack: ignore SIGPIPE in sideband demuxer
      test_must_fail: report number of unexpected signal
      t5504: handle expected output from SIGPIPE death
      compat/mingw: brown paper bag fix for 50a6c8e

Johannes Schindelin (1):
      git config: report when trying to modify a non-existing repo config

John Keeping (2):
      t8005: avoid grep on non-ASCII data
      t9200: avoid grep on non-ASCII data

Junio C Hamano (4):
      pager: lose a separate argv[]
      pager: factor out a helper to prepare a child process to run the pager
      am -i: fix "v"iew
      Git 2.7.3

Martin Amdisen (1):
      templates/hooks: fix minor typo in the sample update-hook

Matthieu Moy (1):
      Documentation/git-push: document that 'simple' is the default

Michael J Gruber (1):
      tests: rename work-tree tests to *work-tree*

Nguyễn Thái Ngọc Duy (2):
      rev-parse: take prefix into account in --git-common-dir
      sha1_file.c: mark strings for translation

Patrick Steinhardt (16):
      config: introduce set_or_die wrappers
      branch: report errors in tracking branch setup
      branch: die on config error when unsetting upstream
      branch: die on config error when editing branch description
      submodule: die on config error when linking modules
      submodule--helper: die on config error when cloning module
      remote: die on config error when setting URL
      remote: die on config error when setting/adding branches
      remote: die on config error when manipulating remotes
      clone: die on config error in cmd_clone
      init-db: die on config errors when initializing empty repo
      sequencer: die on config error when saving replay opts
      compat: die when unable to set core.precomposeunicode
      config: rename git_config_set to git_config_set_gently
      config: rename git_config_set_or_die to git_config_set
      xdiff/xmerge: fix memory leak in xdl_merge

Shawn O. Pearce (1):
      remote-curl: include curl_errorstr on SSL setup failures

Stefan Beller (1):
      submodule helper list: respect correct path prefix


Version v2.7.2; changes since v2.7.1:
-------------------------------------

Alex Henrie (1):
      stripspace: call U+0020 a "space" instead of a "blank"

Andrew Wheeler (1):
      push: fix ref status reporting for --force-with-lease

Dickson Wong (1):
      mergetool: reorder vim/gvim buffers in three-way diffs

GyuYong Jung (1):
      git-cvsserver.perl: fix typo

Johannes Schindelin (3):
      merge-file: let conflict markers match end-of-line style of the context
      merge-file: ensure that conflict sections match eol style
      test-lib: limit the output of the yes utility

Junio C Hamano (2):
      Start preparing for 2.7.2
      Git 2.7.2

Matt McCutchen (1):
      Documentation/git-clean.txt: don't mention deletion of .git/modules/*

Nguyễn Thái Ngọc Duy (5):
      blame: remove obsolete comment
      add and use a convenience macro ce_intent_to_add()
      grep: make it clear i-t-a entries are ignored
      worktree.c: fix indentation
      worktree: stop supporting moving worktrees manually

SZEDER Gábor (1):
      completion: fix mis-indentation in _git_stash()


Version v2.7.1; changes since v2.7.0:
-------------------------------------

Changwoo Ryu (1):
      l10n: ko.po: Add Korean translation

Dave Ware (1):
      contrib/subtree: fix "subtree split" skipped-merge bug

David A. Wheeler (1):
      Expand documentation describing --signoff

Dennis Kaarsemaker (1):
      reflog-walk: don't segfault on non-commit sha1's in the reflog

Eric Wong (3):
      git-send-email: do not double-escape quotes from mutt
      for-each-ref: document `creatordate` and `creator` fields
      git-svn: fix auth parameter handling on SVN 1.9.0+

Jeff King (8):
      avoid shifting signed integers 31 bits
      bswap: add NO_UNALIGNED_LOADS define
      rebase: ignore failures from "gc --auto"
      filter-branch: resolve $commit^{tree} in no-index case
      clean: make is_git_repository a public function
      resolve_gitlink_ref: ignore non-repository paths
      t6300: use test_atom for some un-modern tests
      tag: do not show ambiguous tag names as "tags/foo"

Johannes Schindelin (11):
      commit: allow editing the commit message even in shared repos
      Handle more file writes correctly in shared repos
      Refactor skipping DOS drive prefixes
      compat/basename: make basename() conform to POSIX
      compat/basename.c: provide a dirname() compatibility function
      t0060: verify that basename() and dirname() work as expected
      fetch: release pack files before garbage-collecting
      am: release pack files before garbage-collecting
      merge: release pack files before garbage-collecting
      receive-pack: release pack files before garbage-collecting
      t0060: loosen overly strict expectations

Johannes Sixt (1):
      mingw: avoid linking to the C library's isalpha()

John Keeping (1):
      completion: add missing git-rebase options

Junio C Hamano (2):
      test-lib: clarify and tighten SANITY
      Git 2.7.1

Lars Vogel (1):
      git-add doc: do not say working directory when you mean working tree

Nguyễn Thái Ngọc Duy (5):
      Revert "setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR"
      dir.c: clean the entire struct in clear_exclude_list()
      Revert "dir.c: don't exclude whole dir prematurely if neg pattern may match"
      diff-no-index: do not take a redundant prefix argument
      diff: make -O and --output work in subdirectory

Paul Wagland (2):
      completion: complete show-branch "--date-order"
      completion: update completion arguments for stash

SZEDER Gábor (1):
      t6050-replace: make failing editor test more robust

Sebastian Schuberth (3):
      docs: clarify that passing --depth to git-clone implies --single-branch
      docs: say "commits" in the --depth option wording for git-clone
      docs: clarify that --depth for git-fetch works with newly initialized repos

Stephen P. Smith (4):
      user-manual: remove temporary branch entry from todo list
      glossary: define the term shallow clone
      user-manual: add section documenting shallow clones
      user-manual: add addition gitweb information

Thomas Braun (1):
      completion: complete "diff --word-diff-regex="

Øyvind A. Holm (1):
      gitweb: squelch "uninitialized value" warning


Version v2.7.0; changes since v2.7.0-rc3:
-----------------------------------------

Junio C Hamano (2):
      Git 2.6.5
      Git 2.7

Ralf Thielow (2):
      l10n: de.po: improve some translations
      l10n: de.po: translate 68 new messages


Version v2.7.0-rc3; changes since v2.7.0-rc2:
---------------------------------------------

Alex Henrie (2):
      l10n: ca.po: update translation
      l10n: ca.po: update translation

Alexander Shopov (2):
      l10n: Updated Bulgarian translation of git (2477t,0f,0u)
      l10n: Updated Bulgarian translation of git (2477t,0f,0u)

Audric Schiltknecht (1):
      l10n: fr.po: Fix typo

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Jean-Noël Avila (2):
      l10n: fr v2.7.0 round 1 (2477t)
      l10n: fr.po v2.7.0 round 2 (2477t)

Jeff King (3):
      revision.c: propagate tag names from pending array
      symbolic-ref: propagate error code from create_symref()
      t1401: test reflog creation for git-symbolic-ref

Jiang Xin (4):
      l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)
      l10n: zh_CN: for git v2.7.0 l10n round 1
      l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)
      l10n: zh_CN: for git v2.7.0 l10n round 2

Junio C Hamano (1):
      Git 2.7-rc3

Luke Diamand (1):
      git-p4: failing test case for skipping changes with multiple depots

Peter Krefting (3):
      l10n: sv.po: Update Swedish translation (2477t0f0u)
      l10n: sv: Fix bad translation
      l10n: sv.po: Update Swedish translation (2477t0f0u)

Sam Hocevar (2):
      git-p4: support multiple depot paths in p4 submit
      git-p4: reduce number of server queries for fetches

Trần Ngọc Quân (1):
      l10n: vi.po: Updated translation (2477t)

Élie Bouttier (1):
      l10n: fr.po: Fix typo


Version v2.7.0-rc2; changes since v2.7.0-rc1:
---------------------------------------------

Fabian Ruch (1):
      rebase -i: remember merge options beyond continue actions

Giuseppe Bilotta (2):
      gitk: Match ttk fonts to gitk fonts
      gitk: Let .bleft.mid widgets 'breathe'

Jeff King (3):
      ident: make xgetpwuid_self() a static local helper
      ident: keep a flag for bogus default_email
      ident: loosen getpwuid error in non-strict mode

Johannes Schindelin (1):
      mingw: emulate write(2) that fails with a EPIPE

John Keeping (1):
      send-email: enable SSL level 1 debug output

Junio C Hamano (2):
      Update release notes to 2.7
      Git 2.7-rc2

Mike Crowe (3):
      push: add recurseSubmodules config option
      push: test that --recurse-submodules on command line overrides config
      push: follow the "last one wins" convention for --recurse-submodules

Peter Krefting (1):
      gitk: sv.po: Update Swedish translation (311t)

Ralf Thielow (1):
      push: don't mark options of recurse-submodules for translation

SZEDER Gábor (2):
      completion: remove 'git column' from porcelain commands
      credential-store: don't pass strerror to die_errno()

YOKOTA Hiroshi (16):
      gitk: Color name update
      gitk: Re-sync line number in Japanese message catalogue
      gitk: Update Japanese message catalog
      gitk: Translate more to Japanese catalog
      gitk: Translate Japanese catalog
      gitk: Fix wrong translation
      gitk: Update Japanese translation
      gitk: Fix translation around copyright sign
      gitk: Update Japanese translation
      gitk: Update fuzzy messages
      gitk: Change last translator line
      gitk: Update year
      gitk: Remove unused line
      gitk: Improve translation message
      gitk: Update "Language:" header
      gitk: Update revision date in Japanese PO file

brian m. carlson (3):
      sha1_file.c: introduce a null_oid constant
      format-patch: add an option to suppress commit hash
      format-patch: check that header line has expected format


Version v2.7.0-rc1; changes since v2.7.0-rc0:
---------------------------------------------

Charles Bailey (1):
      t3404: fix quoting of redirect for some versions of bash

Jeff King (1):
      ident: fix undefined variable when NO_IPV6 is set

Johannes Sixt (1):
      prune: close directory earlier during loose-object directory traversal

Junio C Hamano (4):
      Prepare for 2.6.5
      Update release notes to 2.7
      Update draft release notes to 2.6.5
      Git 2.7-rc1

Lars Schneider (1):
      git-p4: add option to keep empty commits

SZEDER Gábor (2):
      Make error message after failing commit_lock_file() less confusing
      completion: fix completing unstuck email alias arguments

Stefan Beller (1):
      document submodule sync --recursive

Stefan Naewe (1):
      revision.c: fix possible null pointer arithmetic


Version v2.7.0-rc0; changes since v2.6.7:
-----------------------------------------

Alex Henrie (1):
      gitk: l10n: Update Catalan translation

Alex Riesen (1):
      clone: allow "--dissociate" without reference

Antoine Delaite (1):
      bisect: add the terms old/new

Beat Bolli (1):
      gitk: Add missing accelerators

Ben Boeckel (1):
      remote: add get-url subcommand

Dair Grant (1):
      git-svn: improve rebase/mkdirs performance

David Turner (8):
      refs: clean up common_list
      path: optimize common dir checking
      refs: make refs/bisect/* per-worktree
      http.c: use CURLOPT_RANGE for range requests
      copy_msg(): rename to copy_reflog_msg()
      initdb: make safe_create_dir public
      files_log_ref_write: new function
      refs: break out ref conflict checks

Dennis Kaarsemaker (1):
      git-p4: import the ctypes module

Dimitriy Ryazantcev (1):
      gitk: Update Russian translation

Edmundo Carmona Antoranz (1):
      checkout: add --progress option

Fabio Porcedda (1):
      contrib/subtree: remove "push" command from the "todo" file

Gabor Bernat (1):
      filter-branch: add passed/remaining seconds on progress

Jacob Keller (2):
      sendemail: teach git-send-email to dump alias names
      completion: add support for completing email aliases

Jeff King (77):
      run-command: provide in_async query function
      pkt-line: show packets in async processes as "sideband"
      fast-import: switch crash-report date to iso8601
      date: make "local" orthogonal to date format
      show-branch: avoid segfault with --reflog of unborn branch
      mailsplit: fix FILE* leak in split_maildir
      archive-tar: fix minor indentation violation
      fsck: don't fsck alternates for connectivity-only check
      add xsnprintf helper function
      add git_path_buf helper function
      strbuf: make strbuf_complete_line more generic
      add reentrant variants of sha1_to_hex and find_unique_abbrev
      fsck: use strbuf to generate alternate directories
      mailsplit: make PATH_MAX buffers dynamic
      trace: use strbuf for quote_crnl output
      progress: store throughput display in a strbuf
      test-dump-cache-tree: avoid overflow of cache-tree name
      compat/inet_ntop: fix off-by-one in inet_ntop4
      convert trivial sprintf / strcpy calls to xsnprintf
      archive-tar: use xsnprintf for trivial formatting
      use xsnprintf for generating git object headers
      find_short_object_filename: convert sprintf to xsnprintf
      stop_progress_msg: convert sprintf to xsnprintf
      compat/hstrerror: convert sprintf to snprintf
      grep: use xsnprintf to format failure message
      entry.c: convert strcpy to xsnprintf
      add_packed_git: convert strcpy into xsnprintf
      http-push: replace strcat with xsnprintf
      receive-pack: convert strncpy to xsnprintf
      replace trivial malloc + sprintf / strcpy calls with xstrfmt
      config: use xstrfmt in normalize_value
      fetch: replace static buffer with xstrfmt
      use strip_suffix and xstrfmt to replace suffix
      ref-filter: drop sprintf and strcpy calls
      help: drop prepend function in favor of xstrfmt
      mailmap: replace strcpy with xstrdup
      read_branches_file: simplify string handling
      read_remotes_file: simplify string handling
      resolve_ref: use strbufs for internal buffers
      upload-archive: convert sprintf to strbuf
      remote-ext: simplify git pkt-line generation
      http-push: use strbuf instead of fwrite_buffer
      http-walker: store url in a strbuf
      sha1_get_pack_name: use a strbuf
      precompose_utf8: drop unused variable
      probe_utf8_pathname_composition: use internal strbuf
      init: use strbufs to store paths
      apply: convert root string to strbuf
      transport: use strbufs for status table "quickref" strings
      merge-recursive: convert malloc / strcpy to strbuf
      enter_repo: convert fixed-size buffers to strbufs
      remove_leading_path: use a strbuf for internal storage
      write_loose_object: convert to strbuf
      diagnose_invalid_index_path: use strbuf to avoid strcpy/strcat
      fetch-pack: use argv_array for index-pack / unpack-objects
      http-push: use an argv_array for setup_revisions
      stat_tracking_info: convert to argv_array
      daemon: use cld->env_array when re-spawning
      use sha1_to_hex_r() instead of strcpy
      drop strcpy in favor of raw sha1_to_hex
      color: add overflow checks for parsing colors
      use alloc_ref rather than hand-allocating "struct ref"
      avoid sprintf and strcpy with flex arrays
      receive-pack: simplify keep_arg computation
      help: clean up kfmclient munging
      prefer memcpy to strcpy
      color: add color_set helper for copying raw colors
      notes: document length of fanout path with a constant
      convert strncpy to memcpy
      fsck: drop inode-sorting code
      Makefile: drop D_INO_IN_DIRENT build knob
      fsck: use for_each_loose_file_in_objdir
      use strbuf_complete to conditionally append slash
      name-rev: use strip_suffix to avoid magic numbers
      http: use off_t to store partial file size
      filter-branch: skip index read/write when possible
      blame: fix object casting regression

Johannes Schindelin (1):
      test: facilitate debugging Git executables in tests with gdb

Johannes Sixt (9):
      read_branches_file: plug a FILE* leak
      compat/mingw.c: remove printf format warning
      modernize t9300: single-quote placement and indentation
      modernize t9300: use test_must_fail
      modernize t9300: use test_must_be_empty
      modernize t9300: wrap lines after &&
      modernize t9300: use test_when_finished for clean-up
      modernize t9300: mark here-doc words to ignore tab indentation
      modernize t9300: move test preparations into test_expect_success

John Keeping (11):
      Documentation/blame-options: don't list date formats
      Documentation/config: don't list date formats
      Documentation/git-for-each-ref: don't list date formats
      Documentation/rev-list: don't list date formats
      t6300: introduce test_date() helper
      t6300: add test for "raw" date format
      date: check for "local" before anything else
      t6300: make UTC and local dates different
      t6300: add tests for "-local" date formats
      send-email: expand path in sendemail.smtpsslcertpath config
      send-email: die if CA path doesn't exist

Juerg Haefliger (1):
      git-quiltimport: add commandline option --series <file>

Junio C Hamano (71):
      rerere: fix an off-by-one non-bug
      rerere: handle conflicts with multiple stage #1 entries
      rerere: plug conflict ID leaks
      rerere: lift PATH_MAX limitation
      rerere: write out each record of MERGE_RR in one go
      rerere: report autoupdated paths only after actually updating them
      rerere: drop want_sp parameter from is_cmarker()
      rerere: stop looping unnecessarily
      rerere: do not leak mmfile[] for a path with multiple stage #1 entries
      rerere: explain the rerere I/O abstraction
      rerere: fix benign off-by-one non-bug and clarify code
      rerere: explain MERGE_RR management helpers
      rerere: explain the primary codepath
      rerere: explain "rerere forget" codepath
      rerere: explain the remainder
      rerere: refactor "replay" part of do_plain_rerere()
      rerere: further de-dent do_plain_rerere()
      rerere: further clarify do_rerere_one_path()
      rerere: call conflict-ids IDs
      rerere: use "struct rerere_id" instead of "char *" for conflict ID
      rerere: un-nest merge() further
      filter-branch: make report-progress more readable
      Start cycle toward 2.7
      Second batch for 2.7
      Third batch for 2.7
      Fourth batch for 2.7
      Fifth batch for 2.7
      mailinfo: remove a no-op call convert_to_utf8(it, "")
      mailinfo: fold decode_header_bq() into decode_header()
      mailinfo: fix an off-by-one error in the boundary stack
      mailinfo: explicitly close file handle to the patch output
      Sixth batch for 2.7
      mailinfo: plug strbuf leak during continuation line handling
      mailinfo: move handle_boundary() lower
      mailinfo: move read_one_header_line() closer to its callers
      mailinfo: move check_header() after the helpers it uses
      mailinfo: move cleanup_space() before its users
      mailinfo: move definition of MAX_HDR_PARSED closer to its use
      mailinfo: get rid of function-local static states
      mailinfo: do not let handle_body() touch global "line" directly
      mailinfo: do not let handle_boundary() touch global "line" directly
      mailinfo: do not let find_boundary() touch global "line" directly
      mailinfo: move global "line" into mailinfo() function
      mailinfo: introduce "struct mailinfo" to hold globals
      mailinfo: move keep_subject & keep_non_patch_bracket to struct mailinfo
      mailinfo: move global "FILE *fin, *fout" to struct mailinfo
      mailinfo: move filter/header stage to struct mailinfo
      mailinfo: move patch_lines to struct mailinfo
      mailinfo: move add_message_id and message_id to struct mailinfo
      mailinfo: move use_scissors and use_inbody_headers to struct mailinfo
      mailinfo: move metainfo_charset to struct mailinfo
      mailinfo: move check for metainfo_charset to convert_to_utf8()
      mailinfo: move transfer_encoding to struct mailinfo
      mailinfo: move charset to struct mailinfo
      mailinfo: move cmitmsg and patchfile to struct mailinfo
      mailinfo: move [ps]_hdr_data to struct mailinfo
      mailinfo: move content/content_top to struct mailinfo
      mailinfo: handle_commit_msg() shouldn't be called after finding patchbreak
      mailinfo: keep the parsed log message in a strbuf
      mailinfo: libify
      mailinfo: handle charset conversion errors in the caller
      am: make direct call to mailinfo
      mailinfo: remove calls to exit() and die() deep in the callchain
      Seventh batch for 2.7
      Eighth batch for 2.7
      Ninth batch for 2.7
      Tenth batch for 2.7
      Eleventh batch for 2.7
      RelNotes update for 2.7
      Update release notes to 2.7
      Git 2.7-rc0

Karthik Nayak (35):
      t6302: for-each-ref tests for ref-filter APIs
      tag: libify parse_opt_points_at()
      ref-filter: implement '--points-at' option
      for-each-ref: add '--points-at' option
      ref-filter: add parse_opt_merge_filter()
      ref-filter: implement '--merged' and '--no-merged' options
      for-each-ref: add '--merged' and '--no-merged' options
      parse-option: rename parse_opt_with_commit()
      parse-options.h: add macros for '--contains' option
      ref-filter: implement '--contains' option
      for-each-ref: add '--contains' option
      ref-filter: move `struct atom_value` to ref-filter.c
      ref-filter: introduce ref_formatting_state and ref_formatting_stack
      utf8: add function to align a string into given strbuf
      ref-filter: introduce handler function for each atom
      ref-filter: introduce match_atom_name()
      ref-filter: implement an `align` atom
      ref-filter: add option to filter out tags, branches and remotes
      ref-filter: add support for %(contents:lines=X)
      ref-filter: add support to sort by version
      ref-filter: add option to match literal pattern
      tag.c: use 'ref-filter' data structures
      tag.c: use 'ref-filter' APIs
      tag.c: implement '--format' option
      tag.c: implement '--merged' and '--no-merged' options
      branch: refactor width computation
      branch: bump get_head_description() to the top
      branch: roll show_detached HEAD into regular ref_list
      branch: move 'current' check down to the presentation layer
      branch: drop non-commit error reporting
      branch.c: use 'ref-filter' data structures
      branch.c: use 'ref-filter' APIs
      branch: add '--points-at' option
      tag.c: use the correct algorithm for the '--contains' option
      ref-filter: fallback on alphabetical comparison

Lars Schneider (18):
      git-p4: add config git-p4.pathEncoding
      git-p4: improve path encoding verbose output
      git-p4: use replacement character for non UTF-8 characters in paths
      git-p4: add optional type specifier to gitConfig reader
      git-p4: add gitConfigInt reader
      git-p4: return an empty list if a list config has no values
      git-p4: add file streaming progress in verbose mode
      git-p4: check free space during streaming
      git-p4: add support for large file systems
      git-p4: add Git LFS backend for large file system
      git-p4: avoid "stat" command in t9815 git-p4-submit-fail
      git-p4: skip t9819 test case on case insensitive file systems
      git-p4: retry kill/cleanup operations in tests with timeout
      git-p4: add p4d timeout in tests
      git-p4: add trap to kill p4d on test exit
      implement test_might_fail using a refactored test_must_fail
      add "ok=sigpipe" to test_must_fail and use it to fix flaky tests
      Add Travis CI support

Lukas Fleischer (4):
      config.txt: document the semantics of hideRefs with namespaces
      upload-pack: strip refs before calling ref_is_hidden()
      hideRefs: add support for matching full refs
      t5509: add basic tests for hideRefs

Matthieu Moy (5):
      bisect: sanity check on terms
      bisect: add 'git bisect terms' to view the current terms
      bisect: allow setting any user-specified in 'git bisect start'
      strtoul_ui: reject negative values
      git-multimail: update to release 1.2.0

Max Kirillov (3):
      blame: test to describe use of blame --reverse --first-parent
      blame: extract find_single_final
      blame: allow blame --reverse --first-parent when it makes sense

Michael Haggerty (4):
      pack_if_possible_fn(): use ref_type() instead of is_per_worktree_ref()
      refname_is_safe(): improve docstring
      refs/refs-internal.h: new header file
      refs: split filesystem-based refs code into a new file

Michael Rappazzo (5):
      worktree: add top-level worktree.c
      worktree: refactor find_linked_symref function
      worktree: add a function to get worktree details
      worktree: add details to the worktree struct
      worktree: add 'list' command

Namhyung Kim (1):
      stash: allow "stash show" diff output configurable

Nguyễn Thái Ngọc Duy (3):
      dir.c: make last_exclude_matching_from_list() run til the end
      dir.c: don't exclude whole dir prematurely if neg pattern may match
      mailinfo: fix passing wrong address to git_mailinfo_config

Noam Postavsky (1):
      credential-cache: new option to ignore sighup

Ramsay Jones (1):
      http: fix some printf format warnings

René Scharfe (7):
      parse-options: deduplicate parse_options_usage() calls
      parse-options: inline parse_options_usage() at its only remaining caller
      parse-options: allow -h as a short option
      t1450: add tests for NUL in headers of commits and tags
      grep: stop using PARSE_OPT_NO_INTERNAL_HELP
      fsck: treat a NUL in a tag header as an error
      show-ref: stop using PARSE_OPT_NO_INTERNAL_HELP

Ronnie Sahlberg (2):
      verify_refname_available(): rename function
      verify_refname_available(): new function

Stefan Beller (4):
      submodule: rewrite `module_list` shell function in C
      submodule: rewrite `module_name` shell function in C
      submodule: rewrite `module_clone` shell function in C
      submodule-config: "goto" removal in parse_config()

Takashi Iwai (3):
      gitk: Update msgid's for menu items with accelerator
      gitk: Add accelerators to Japanese locale
      gitk: Add accelerator to German locale

Techlive Zheng (7):
      contrib/subtree: Clean and refactor test code
      contrib/subtree: Add test for missing subtree
      contrib/subtree: Add tests for subtree add
      contrib/subtree: Add merge tests
      contrib/subtree: Add split tests
      contrib/subtree: Make each test self-contained
      contrib/subtree: Handle '--prefix' argument with a slash appended

Tobias Klauser (4):
      credential-cache--daemon: remove unused #include "sigchain.h"
      diff: remove unused #include "sigchain.h"
      read-cache: remove unused #include "sigchain.h"
      shallow: remove unused #include "sigchain.h"

Torsten Bögershausen (1):
      t0027: improve test for not-normalized files

Trần Ngọc Quân (1):
      Updated Vietnamese translation

brian m. carlson (12):
      sha1_file: introduce has_object_file helper.
      Convert struct ref to use object_id.
      add_sought_entry_mem: convert to struct object_id
      parse_fetch: convert to use struct object_id
      get_remote_heads: convert to struct object_id
      push_refs_with_export: convert to struct object_id
      ref_newer: convert to use struct object_id
      object: introduce get_object_hash macro.
      Add several uses of get_object_hash.
      Convert struct object to object_id
      Remove get_object_hash.
      remote: convert functions to struct object_id


Version v2.6.7; changes since v2.6.6:
-------------------------------------

Jeff King (1):
      shell: disallow repo names beginning with dash

Junio C Hamano (3):
      Git 2.4.12
      Git 2.5.6
      Git 2.6.7


Version v2.6.6; changes since v2.6.5:
-------------------------------------

Jeff King (7):
      add helpers for detecting size_t overflow
      tree-diff: catch integer overflow in combine_diff_path allocation
      http-push: stop using name_path
      show_object_with_name: simplify by using path_name()
      list-objects: convert name_path to a strbuf
      list-objects: drop name_path entirely
      list-objects: pass full pathname to callbacks

Junio C Hamano (3):
      Git 2.4.11
      Git 2.5.5
      Git 2.6.6


Version v2.6.5; changes since v2.6.4:
-------------------------------------

Alexey Shumkin (2):
      t7900-subtree: test the "space in a subdirectory name" case
      contrib/subtree: respect spaces in a repository path

Charles Bailey (1):
      t3404: fix quoting of redirect for some versions of bash

Christian Couder (1):
      Documentation/git-update-index: add missing opts to synopsis

David Turner (1):
      verify_pack: do not ignore return value of verification function

Elia Pinto (1):
      ident.c: add support for IPv6

Jeff King (7):
      ident: make xgetpwuid_self() a static local helper
      ident: keep a flag for bogus default_email
      ident: loosen getpwuid error in non-strict mode
      ident: fix undefined variable when NO_IPV6 is set
      revision.c: propagate tag names from pending array
      symbolic-ref: propagate error code from create_symref()
      t1401: test reflog creation for git-symbolic-ref

Johannes Sixt (1):
      prune: close directory earlier during loose-object directory traversal

John Keeping (6):
      t7610: don't use test_config in a subshell
      t5801: don't use test_when_finished in a subshell
      test-lib-functions: support "test_config -C <dir> ..."
      t7800: don't use test_config in a subshell
      test-lib-functions: detect test_when_finished in subshell
      send-email: enable SSL level 1 debug output

Junio C Hamano (3):
      Prepare for 2.6.5
      Update draft release notes to 2.6.5
      Git 2.6.5

Lars Schneider (1):
      git-p4: add option to keep empty commits

Nguyễn Thái Ngọc Duy (1):
      git-check-ref-format.txt: typo, s/avoids/avoid/

René Scharfe (2):
      use pop_commit() for consuming the first entry of a struct commit_list
      show-branch: use argv_array for default arguments

SZEDER Gábor (3):
      Make error message after failing commit_lock_file() less confusing
      completion: remove 'git column' from porcelain commands
      credential-store: don't pass strerror to die_errno()

Stefan Beller (1):
      document submodule sync --recursive

Stefan Naewe (1):
      revision.c: fix possible null pointer arithmetic


Version v2.6.4; changes since v2.6.3:
-------------------------------------

Atousa Pahlevan Duprat (2):
      sha1: provide another level of indirection for the SHA-1 functions
      sha1: allow limiting the size of the data passed to SHA1_Update()

Charles Bailey (1):
      http: treat config options sslCAPath and sslCAInfo as paths

Christian Couder (1):
      Documentation/git-update-index: add missing opts to synopsys

Clemens Buchacher (1):
      allow hooks to ignore their standard input stream

Daniel Knittl-Frank (1):
      Escape Git's exec path in contrib/rerere-train.sh script

David Aguilar (1):
      difftool: ignore symbolic links in use_wt_file

Dennis Kaarsemaker (2):
      t5813: avoid creating urls that break on cygwin
      check-ignore: correct documentation about output

Doug Kelly (2):
      t5304: test cleaning pack garbage
      gc: remove garbage .idx files from pack dir

Fredrik Medley (1):
      rebase-i-exec: Allow space in SHELL_PATH

GIRARD Etienne (1):
      git-p4: clean up after p4 submit failure

John Keeping (3):
      interpret-trailers: allow running outside a repository
      rebase: support --no-autostash
      Documentation/git-rebase: fix --no-autostash formatting

Junio C Hamano (3):
      prepare_packed_git(): refactor garbage reporting in pack directory
      Prepare for 2.6.4
      Git 2.6.4

Luke Diamand (3):
      git-p4: add failing test for submit from detached head
      git-p4: add option to system() to return subshell status
      git-p4: work with a detached head

Michael J Gruber (1):
      Documentation/diff: give --word-diff-regex=. example

Pat Thoyts (1):
      remote-http(s): support SOCKS proxies

Rainer M. Canavan (1):
      configure.ac: use $LIBS not $CFLAGS when testing -lpthread

René Scharfe (1):
      wt-status: correct and simplify check for detached HEAD

SZEDER Gábor (4):
      bash prompt: test dirty index and worktree while on an orphan branch
      bash prompt: remove a redundant 'git diff' option
      bash prompt: indicate dirty index even on orphan branches
      filter-branch: deal with object name vs. pathname ambiguity in tree-filter

Андрей Рыбак (1):
      Documentation: make environment variable formatting more consistent


Version v2.6.3; changes since v2.6.2:
-------------------------------------

David Turner (2):
      t7063: fix flaky untracked-cache test
      name-hash: don't reuse cache_entry in dir_entry

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

James McCoy (1):
      filter-branch: remove multi-line headers in msg filter

Jeff King (7):
      introduce "extensions" form of core.repositoryformatversion
      introduce "preciousObjects" repository extension
      t6031: move triple-rename test to t3030
      t6031: generalize for recursive and resolve strategies
      merge: detect delete/modechange conflict
      add_submodule_odb: initialize alt_odb list earlier
      merge-file: clamp exit code to maximum 127

Johannes Schindelin (10):
      t5700: demonstrate a Windows file locking issue with `git clone --dissociate`
      sha1_file: consolidate code to close a pack's file descriptor
      gc: demonstrate failure with stale remote HEAD
      sha1_file.c: add a function to release all packs
      clone --dissociate: avoid locking pack files
      pack-objects: do not get distracted by broken symrefs
      imap-send: only use CURLOPT_LOGIN_OPTIONS if it is actually available
      Squelch warning about an integer overflow
      Silence GCC's "cast of pointer to integer of a different size" warning
      t3404: "rebase -i" gets broken when insn sheet uses CR/LF line endings

Junio C Hamano (10):
      am -3: do not let failed merge from completing the error codepath
      Documentation/gc: warn against --prune=<now>
      usage: do not insist that standard input must come from a file
      Documentation/everyday: match undefline with the text
      Documentation: match underline with the text
      Documentation: match undefline with the text in old release notes
      Documentation: AsciiDoc spells em-dash as double-dashes, not triple
      add: simplify -u/-A without pathspec
      rebase-i: work around Windows CRLF line endings
      Git 2.6.3

Lars Schneider (2):
      git-p4: add test case for "Translation of file content failed" error
      git-p4: handle "Translation of file content failed"

Luke Diamand (3):
      git-p4: failing test for ignoring invalid p4 labels
      git-p4: do not terminate creating tag for unknown commit
      git-p4: fix P4 label import for unprocessed commits

Max Kirillov (3):
      submodule refactor: use strbuf_git_path_submodule() in add_submodule_odb()
      path: implement common_dir handling in git_pathdup_submodule()
      blame: fix option name in error message

Nguyễn Thái Ngọc Duy (7):
      path.c: delete an extra space
      gc: save log from daemonized gc --auto and print it next time
      t0002: add test for enter_repo(), non-strict mode
      enter_repo: avoid duplicating logic, use is_git_directory() instead
      enter_repo: allow .git files in strict mode
      clone: allow --local from a linked checkout
      clone: better error when --reference is a linked checkout

Ralf Thielow (1):
      am, credential-cache: add angle brackets to usage string

Ray Donnelly (1):
      test-path-utils.c: remove incorrect assumption

Remi Pommarel (3):
      Makefile: link libcurl before zlib
      Makefile: make curl-config path configurable
      configure.ac: detect ssl need with libcurl

René Scharfe (7):
      t7060: add test for status --branch on a detached HEAD
      wt-status: exit early using goto in wt_shortstatus_print_tracking()
      wt-status: avoid building bogus branch name with detached HEAD
      wt-status: don't skip a magical number of characters blindly
      wt-status: use skip_prefix() to get rid of magic string length constants
      run-command: factor out child_process_clear()
      daemon: plug memory leak

Sidhant Sharma (1):
      worktree: usage: denote <branch> as optional with 'add'

Stefan Agner (1):
      git-send-email.perl: Fixed sending of many/huge changes/patches

Tobias Klauser (2):
      strbuf: make stripspace() part of strbuf
      stripspace: use parse-options for command-line parsing

Waldek Maleska (1):
      Correct fscanf formatting string for I64u values

Xue Fuqiao (2):
      Documentation: fix header markup
      user-manual: fix the description of fast-forward


Version v2.6.2; changes since v2.6.1:
-------------------------------------

Alex Henrie (2):
      merge: grammofix in please-commit-before-merge message
      pull: enclose <options> in brackets in the usage string

Christian Couder (2):
      quote: fix broken sq_quote_buf() related comment
      quote: move comment before sq_quote_buf()

Eric N. Vander Weele (1):
      log: Update log.follow doc and add to config.txt

Jacob Keller (1):
      notes: correct documentation of DWIMery for notes references

Jeff King (3):
      git_connect: clear GIT_* environment for ssh
      git_connect: clarify conn->use_shell flag
      blame: handle --first-parent

Johannes Schindelin (1):
      setup: fix "inside work tree" detection on case-insensitive filesystems

John Keeping (2):
      Makefile: fix MAKEFLAGS tests with multiple flags
      Documentation: fix section header mark-up

Junio C Hamano (3):
      Makefile: allow $(ARFLAGS) specified from the command line
      fsck: exit with non-zero when problems are found
      Git 2.6.2

Matthieu Moy (7):
      Documentation: use 'keyid' consistently, not 'key-id'
      Documentation/grep: fix documentation of -O
      Documentation: explain optional arguments better
      t3203: test 'detached at' after checkout --detach
      status: don't say 'HEAD detached at HEAD'
      rebase-i: explicitly accept tab as separator in commands
      rebase-i: loosen over-eager check_bad_cmd check

Michael J Gruber (1):
      t2026: rename worktree prune test

Nguyễn Thái Ngọc Duy (1):
      ls-remote.txt: delete unsupported option

Renee Margaret McConahy (1):
      am: configure gpg at startup

Stephan Beyer (2):
      t5561: get rid of racy appending to logfile
      t/perf: make runner work even if Git is not installed

Takashi Iwai (1):
      pager: don't use unsafe functions in signal handlers

Tobias Klauser (2):
      connect: fix typo in result string of prot_name()
      Documentation/interpret-trailers: Grammar fix


Version v2.6.1; changes since v2.6.0:
-------------------------------------

Blake Burkhart (2):
      http: limit redirection to protocol-whitelist
      http: limit redirection depth

Jeff King (6):
      transport: add a protocol-whitelist environment variable
      submodule: allow only certain protocols for submodule fetches
      transport: refactor protocol whitelist code
      react to errors in xdi_diff
      xdiff: reject files larger than ~1GB
      merge-file: enforce MAX_XDIFF_SIZE on incoming files

Junio C Hamano (4):
      Git 2.3.10
      Git 2.4.10
      Git 2.5.4
      Git 2.6.1


Version v2.6.0; changes since v2.6.0-rc3:
-----------------------------------------

Junio C Hamano (1):
      Git 2.6


Version v2.6.0-rc3; changes since v2.6.0-rc2:
---------------------------------------------

Alejandro R. Sedeño (1):
      Makefile: use SHELL_PATH when running generate-cmdlist.sh

Alex Henrie (2):
      show-ref: place angle brackets around variables in usage string
      l10n: ca.po: update translation

Andreas Schwab (1):
      Documentation/config: fix formatting for branch.*.rebase and pull.rebase

Brian Norris (1):
      send-email: fix uninitialized var warning for $smtp_auth

Edward Thomson (1):
      poll: honor the timeout on Win32

Jean-Noël Avila (2):
      l10n: fr.po v2.6.0 round 1 (2441t)
      l10n: fr.po v2.6.0 round 2 (2440t)

Jiang Xin (6):
      l10n: TEAMS: stash inactive zh_CN team members
      l10n: zh_CN: Add translations for Git glossary
      l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)
      l10n: zh_CN: for git v2.6.0 l10n round 1
      l10n: git.pot: v2.6.0 round 2 (3 improvements)
      l10n: zh_CN: for git v2.6.0 l10n round 2

Johannes Schindelin (1):
      am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

Junio C Hamano (4):
      Update RelNotes to 2.6 to describe leftover bits since -rc2
      Git 2.5.3
      Update RelNotes to 2.6
      Git 2.6-rc3

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (2441t0f0u)

Philip Oakley (1):
      doc: show usage of branch description

Phillip Sz (1):
      l10n: de.po: better language for one string

Ralf Thielow (4):
      pull: don't mark values for option "rebase" for translation
      tag, update-ref: improve description of option "create-reflog"
      l10n: de.po: translate 123 new messages
      l10n: de.po: translate 2 messages

Ramsay Jones (1):
      mailmap: update my entry with new email address

Ray Chen (10):
      l10n: zh_CN: Update Translation: "tag object"
      l10n: zh_CN: Unify Translation of "packfile"
      l10n: zh_CN: Update Translation of "tag"
      l10n: zh_CN: Add Surrounding Spaces
      l10n: zh_CN: Update Git Glossary: SHA-1
      l10n: zh_CN: Update Git Glossary: "dumb", "smart"
      l10n: zh_CN: Update Git Glossary: tag
      l10n: zh_CN: Update Git Glossary: fork
      l10n: zh_CN: Update Git Glossary: pickaxe
      l10n: zh_CN: Update Git Glossary: "commit message"

Trần Ngọc Quân (2):
      l10n: Updated Vietnamese translation (2441t)
      l10n: Update and review Vietnamese translation (2440t)


Version v2.6.0-rc2; changes since v2.6.0-rc1:
---------------------------------------------

Alex Henrie (2):
      gitk: Fix bad English grammar "Matches none Commit Info"
      gitk: Remove mc parameter from proc show_error

Alexander Shopov (2):
      gitk: Update Bulgarian translation (304t)
      gitk: Update Bulgarian translation (307t)

Beat Bolli (2):
      gitk: Add a "Copy commit summary" command
      gitk: Adjust the menu line numbers to compensate for the new entry

Giuseppe Bilotta (2):
      apply: comment grammar fix
      gitk: Accelerators for the main menu

Ismael Luceno (1):
      gitk: Make it easier to go quickly to a specific commit

Jeff King (5):
      pack-protocol: clarify LF-handling in PKT-LINE()
      verify_absent: allow filenames longer than PATH_MAX
      notes: use a strbuf in add_non_note
      read_info_alternates: handle paths larger than PATH_MAX
      show-branch: use a strbuf for reflog descriptions

Junio C Hamano (6):
      Git 2.2.3
      Git 2.3.9
      Git 2.4.9
      Git 2.5.2
      Release Notes: typofix
      Git 2.6-rc2

Marc Branchaud (3):
      gitk: Rearrange window title to be more conventional
      gitk: Show the current view's name in the window title
      gitk: Use translated version of "Command line" in getcommitlines

Matthieu Prat (1):
      t7060: actually test "git diff-index --cached -M"

Michael J Gruber (1):
      git-svn: parse authors file more leniently

Michael Rappazzo (1):
      gitk: Add mouse right-click options to copy path and branch name

Paul Mackerras (3):
      gitk: Replace catch {unset foo} with unset -nocomplain foo
      gitk: Fix error when changing colors after closing "List references" window
      gitk: Update .po files

Peter Krefting (1):
      gitk: sv.po: Update Swedish translation (305t0f0u)


Version v2.6.0-rc1; changes since v2.6.0-rc0:
---------------------------------------------

Jeff King (1):
      rerere: release lockfile in non-writing functions

Junio C Hamano (2):
      am: match --signoff to the original scripted version
      Git 2.6-rc1


Version v2.6.0-rc0; changes since v2.5.6:
-----------------------------------------

Alex Henrie (3):
      reflog: add missing single quote to error message
      pack-objects: place angle brackets around placeholders in usage strings
      read-tree: replace bracket set with parentheses to clarify usage

Antoine Delaite (3):
      bisect: correction of typo
      bisect: replace hardcoded "bad|good" by variables
      bisect: simplify the addition of new bisect terms

Brian Degenhardt (1):
      unpack-trees: populate cache-tree on successful merge

Charles Bailey (2):
      test-parse-options: update to handle negative ints
      parse-options: move unsigned long option parsing out of pack-objects.c

Dave Borowitz (9):
      Documentation/git-push.txt: document when --signed may fail
      Documentation/git-send-pack.txt: wrap long synopsis line
      Documentation/git-send-pack.txt: document --signed
      gitremote-helpers.txt: document pushcert option
      transport: remove git_transport_options.push_cert
      config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool
      builtin/send-pack.c: use parse_options API
      push: support signing pushes iff the server supports it
      push: add a config option push.gpgSign for default signed pushes

David Turner (18):
      log: add "log.follow" configuration variable
      refs.c: add err arguments to reflog functions
      refs: break out check for reflog autocreation
      refs: new public ref function: safe_create_reflog
      git-reflog: add exists command
      refs: add REF_FORCE_CREATE_REFLOG flag
      update-ref and tag: add --create-reflog arg
      git-stash: use update-ref --create-reflog instead of creating files
      t/t7509: remove unnecessary manipulation of reflog
      tests: remove some direct access to .git/logs
      refs: introduce pseudoref and per-worktree ref concepts
      refs: add ref_type function
      pseudorefs: create and use pseudoref update and delete functions
      bisect: use update_ref
      sequencer: replace write_cherry_pick_head with update_ref
      worktrees: add find_shared_symref
      notes: handle multiple worktrees
      pseudoref: check return values from read_ref()

Elia Pinto (1):
      http: add support for specifying the SSL version

Eric Sunshine (25):
      config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
      checkout: avoid resolving HEAD unnecessarily
      checkout: name check_linked_checkouts() more meaningfully
      checkout: improve die_if_checked_out() robustness
      checkout: die_if_checked_out: simplify strbuf management
      checkout: generalize die_if_checked_out() branch name argument
      checkout: check_linked_checkout: improve "already checked out" aesthetic
      checkout: check_linked_checkout: simplify symref parsing
      checkout: teach check_linked_checkout() about symbolic link HEAD
      branch: publish die_if_checked_out()
      worktree: improve worktree setup message
      worktree: simplify new branch (-b/-B) option checking
      worktree: introduce options container
      worktree: make --detach mutually exclusive with -b/-B
      worktree: add: suppress auto-vivication with --detach and no <branch>
      worktree: make branch creation distinct from worktree population
      worktree: elucidate environment variables intended for child processes
      worktree: add_worktree: construct worktree-population command locally
      worktree: detect branch-name/detached and error conditions locally
      worktree: make setup of new HEAD distinct from worktree population
      worktree: avoid resolving HEAD unnecessarily
      worktree: populate via "git reset --hard" rather than "git checkout"
      checkout: drop intimate knowledge of newly created worktree
      Documentation/git-worktree: fix broken 'linkgit' invocation
      Documentation/config: mention "now" and "never" for 'expire' settings

Erik Elfström (5):
      setup: add gentle version of read_gitfile
      setup: sanity check file size in read_gitfile_gently
      t7300: add tests to document behavior of clean and nested git
      p7300: add performance tests for clean
      clean: improve performance when removing lots of directories

Galan Rémi (3):
      git-rebase -i: add command "drop" to remove a commit
      git rebase -i: warn about removed commits
      git rebase -i: add static check for commands and SHA-1

Guillaume Pagès (4):
      status: factor two rebase-related messages together
      status: differentiate interactive from non-interactive rebases
      status: give more information during rebase -i
      status: add new tests for status during rebase -i

Heiko Voigt (4):
      submodule: implement a config API for lookup of .gitmodules values
      submodule: extract functions for config set and lookup
      submodule: use new config API for worktree configurations
      submodule: allow erroneous values for the fetchRecurseSubmodules option

Jacob Keller (8):
      refs: cleanup comments regarding check_refname_component()
      refs: loosen restriction on wildcard "*" refspecs
      notes: document cat_sort_uniq rewriteMode
      notes: extract enum notes_merge_strategy to notes-utils.h
      notes: extract parse_notes_merge_strategy to notes-utils
      notes: add tests for --commit/--abort/--strategy exclusivity
      notes: add notes.mergeStrategy option to select default strategy
      notes: teach git-notes about notes.<name>.mergeStrategy option

Jan Viktorin (1):
      send-email: provide whitelist of SMTP AUTH mechanisms

Jeff King (36):
      pkt-line: simplify starts_with checks in packet tracing
      pkt-line: tighten sideband PACK check when tracing
      pkt-line: support tracing verbatim pack contents
      cat-file: minor style fix in options list
      cat-file: move batch_options definition to top of file
      cat-file: add --buffer option
      cat-file: stop returning value from batch_one_object
      cat-file: split batch_one_object into two stages
      cat-file: add --batch-all-objects option
      read_gitfile_gently: fix use-after-free
      cat-file: sort and de-dup output of --batch-all-objects
      show-branch: use DATE_RELATIVE instead of magic number
      convert "enum date_mode" into a struct
      introduce "format" date-mode
      strbuf: make strbuf_addftime more robust
      docs/config.txt: reorder hideRefs config
      refs: support negative transfer.hideRefs
      cache.h: clarify documentation for git_path, et al
      cache.h: complete set of git_path_submodule helpers
      t5700: modernize style
      add_to_alternates_file: don't add duplicate entries
      prefer git_pathdup to git_path in some possibly-dangerous cases
      prefer mkpathdup to mkpath in assignments
      remote.c: drop extraneous local variable from migrate_file
      refs.c: remove extra git_path calls from read_loose_refs
      path.c: drop git_path_submodule
      refs.c: simplify strbufs in reflog setup and writing
      refs.c: avoid repeated git_path calls in rename_tmp_log
      refs.c: avoid git_path assignment in lock_ref_sha1_basic
      refs.c: remove_empty_directories can take a strbuf
      find_hook: keep our own static buffer
      get_repo_path: refactor path-allocation
      memoize common git-path "constant" files
      format_config: don't init strbuf
      format_config: simplify buffer handling
      get_urlmatch: avoid useless strbuf write

Jiang Xin (1):
      i18n: am: fix typo in description of -b option

Johannes Schindelin (19):
      fsck: introduce fsck options
      fsck: introduce identifiers for fsck messages
      fsck: provide a function to parse fsck message IDs
      fsck: offer a function to demote fsck errors to warnings
      fsck (receive-pack): allow demoting errors to warnings
      fsck: report the ID of the error/warning
      fsck: make fsck_ident() warn-friendly
      fsck: make fsck_commit() warn-friendly
      fsck: handle multiple authors in commits specially
      fsck: make fsck_tag() warn-friendly
      fsck: add a simple test for receive.fsck.<msg-id>
      fsck: disallow demoting grave fsck errors to warnings
      fsck: optionally ignore specific fsck issues completely
      fsck: allow upgrading fsck warnings to errors
      fsck: document the new receive.fsck.<msg-id> options
      fsck: support demoting errors to warnings
      fsck: introduce `git fsck --connectivity-only`
      fsck: git receive-pack: support excluding objects from fsck'ing
      fsck: support ignoring objects in `git fsck` via fsck.skiplist

Johannes Sixt (1):
      t7300-clean: require POSIXPERM for chmod 0 test

Junio C Hamano (21):
      commit-slab: introduce slabname##_peek() function
      First batch for 2.6
      sha1_file.c: rename move_temp_to_file() to finalize_object_file()
      Second batch for 2.6
      Third batch for 2.6
      Fourth batch for 2.6
      log: rename "tweak" helpers
      log: when --cc is given, default to -p unless told otherwise
      log: show merge commit when --cc is given
      builtin/am: introduce write_state_*() helper functions
      builtin/am: make sure state files are text
      write_file(): drop "fatal" parameter
      write_file_v(): do not leave incomplete line at the end
      write_file(): drop caller-supplied LF from calls to create a one-liner file
      builtin/log.c: minor reformat
      Fifth batch for 2.6
      Sixth batch for 2.6
      Seventh batch for 2.6
      Eighth batch for 2.6
      Ninth batch for 2.6
      Git 2.6-rc0

Karsten Blees (1):
      Documentation/i18n.txt: clarify character encoding support

Karthik Nayak (11):
      for-each-ref: extract helper functions out of grab_single_ref()
      for-each-ref: clean up code
      for-each-ref: rename 'refinfo' to 'ref_array_item'
      for-each-ref: introduce new structures for better organisation
      for-each-ref: introduce 'ref_array_clear()'
      for-each-ref: rename some functions and make them public
      for-each-ref: rename variables called sort to sorting
      ref-filter: add 'ref-filter.h'
      ref-filter: move code from 'for-each-ref'
      for-each-ref: introduce filter_refs()
      ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname

Kevin Daudt (1):
      pull: allow dirty tree when rebase.autostash enabled

Lars Schneider (1):
      git-p4: honor core.ignorecase when using P4 client specs

Matthieu Moy (2):
      Documentation/bisect: move getting help section to the end
      bisect: don't mix option parsing and non-trivial code

Michael Haggerty (41):
      delete_ref(): move declaration to refs.h
      remove_branches(): remove temporary
      delete_ref(): handle special case more explicitly
      delete_refs(): new function for the refs API
      delete_refs(): make error message more generic
      delete_refs(): bail early if the packed-refs file cannot be rewritten
      prune_remote(): use delete_refs()
      prune_refs(): use delete_refs()
      repack_without_refs(): make function private
      initial_ref_transaction_commit(): function for initial ref creation
      refs: remove some functions from the module's public interface
      initial_ref_transaction_commit(): check for duplicate refs
      initial_ref_transaction_commit(): check for ref D/F conflicts
      refs: move the remaining ref module declarations to refs.h
      refs.h: add some parameter names to function declarations
      check_branch_commit(): make first parameter const
      update_ref(): don't read old reference value before delete
      cmd_update_ref(): make logic more straightforward
      delete_ref(): use the usual convention for old_sha1
      Documentation/bisect: revise overall content
      fast-import: add a get-mark command
      Documentation/git-worktree: consistently use term "linked working tree"
      Documentation/git-worktree: fix incorrect reference to file "locked"
      Documentation/config: fix stale "git prune --worktree" reference
      Documentation/git-worktree: wordsmith worktree-related manpages
      lockfile: move documentation to lockfile.h and lockfile.c
      create_bundle(): duplicate file descriptor to avoid closing it twice
      lockfile: add accessors get_lock_file_fd() and get_lock_file_fp()
      lockfile: add accessor get_lock_file_path()
      commit_lock_file(): use get_locked_file_path()
      tempfile: a new module for handling temporary files
      prepare_tempfile_object(): new function, extracted from create_tempfile()
      tempfile: add several functions for creating temporary files
      register_tempfile(): new function to handle an existing temporary file
      write_shared_index(): use tempfile module
      setup_temporary_shallow(): use tempfile module
      diff: use tempfile module
      lock_repo_for_gc(): compute the path to "gc.pid" only once
      gc: use tempfile module to handle gc.pid file
      credential-cache--daemon: delete socket from main()
      credential-cache--daemon: use tempfile module

Michael Rappazzo (1):
      git-rebase--interactive.sh: add config option for custom instruction format

Mike Hommey (1):
      Allow to control where the replace refs are looked for

Patrick Steinhardt (4):
      Documentation/git-worktree: fix duplicated 'from'
      clone: do not include authentication data in guessed dir
      clone: do not use port number as dir name
      clone: abort if no dir name could be guessed

Paul Tan (85):
      t4150: test applying StGit patch
      am: teach StGit patch parser how to read from stdin
      t4150: test applying StGit series
      am: use gmtime() to parse mercurial patch date
      am: teach mercurial patch parser how to read from stdin
      parse-options-cb: implement parse_opt_passthru()
      parse-options-cb: implement parse_opt_passthru_argv()
      argv-array: implement argv_array_pushv()
      pull: implement skeletal builtin pull
      pull: implement fetch + merge
      pull: pass verbosity, --progress flags to fetch and merge
      pull: pass git-merge's options to git-merge
      pull: pass git-fetch's options to git-fetch
      pull: error on no merge candidates
      pull: support pull.ff config
      pull: check if in unresolved merge state
      pull: fast-forward working tree if head is updated
      pull: implement pulling into an unborn branch
      pull: set reflog message
      pull: teach git pull about --rebase
      pull: configure --rebase via branch.<name>.rebase or pull.rebase
      pull --rebase: exit early when the working directory is dirty
      pull --rebase: error on no merge candidate cases
      pull: remove redirection to git-pull.sh
      t4150: am.messageid really adds the message id
      t4150: am fails if index is dirty
      t4151: am --abort will keep dirty index intact
      t4150: am refuses patches when paused
      t4150: am --resolved fails if index has no changes
      t4150: am --resolved fails if index has unmerged entries
      t4150: am with applypatch-msg hook
      t4150: am with pre-applypatch hook
      t4150: am with post-applypatch hook
      t4150: tests for am --[no-]scissors
      t3418: non-interactive rebase --continue with rerere enabled
      t3901: test git-am encoding conversion
      wrapper: implement xopen()
      wrapper: implement xfopen()
      builtin-am: implement skeletal builtin am
      builtin-am: implement patch queue mechanism
      builtin-am: split out mbox/maildir patches with git-mailsplit
      builtin-am: auto-detect mbox patches
      builtin-am: extract patch and commit info with git-mailinfo
      builtin-am: apply patch with git-apply
      builtin-am: implement committing applied patch
      builtin-am: refuse to apply patches if index is dirty
      builtin-am: implement --resolved/--continue
      builtin-am: don't parse mail when resuming
      builtin-am: implement --skip
      builtin-am: implement --abort
      builtin-am: reject patches when there's a session in progress
      builtin-am: implement -q/--quiet
      builtin-am: exit with user friendly message on failure
      builtin-am: implement -s/--signoff
      cache-tree: introduce write_index_as_tree()
      builtin-am: implement --3way
      builtin-am: implement --rebasing mode
      builtin-am: bypass git-mailinfo when --rebasing
      builtin-am: handle stray state directory
      builtin-am: implement -u/--utf8
      builtin-am: implement -k/--keep, --keep-non-patch
      builtin-am: implement --[no-]message-id, am.messageid
      builtin-am: support --keep-cr, am.keepcr
      builtin-am: implement --[no-]scissors
      builtin-am: pass git-apply's options to git-apply
      builtin-am: implement --ignore-date
      builtin-am: implement --committer-date-is-author-date
      builtin-am: implement -S/--gpg-sign, commit.gpgsign
      builtin-am: invoke post-rewrite hook
      builtin-am: support automatic notes copying
      builtin-am: invoke applypatch-msg hook
      builtin-am: invoke pre-applypatch hook
      builtin-am: invoke post-applypatch hook
      builtin-am: rerere support
      builtin-am: support and auto-detect StGit patches
      builtin-am: support and auto-detect StGit series files
      builtin-am: support and auto-detect mercurial patches
      builtin-am: implement -i/--interactive
      builtin-am: implement legacy -b/--binary option
      builtin-am: check for valid committer ident
      builtin-am: remove redirection to git-am.sh
      test_terminal: redirect child process' stdin to a pty
      am: let command-line options override saved options
      am: let --signoff override --no-signoff
      am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

Ralf Thielow (1):
      lockfile: remove function "hold_lock_file_for_append"

Remi Lespinet (11):
      t9001-send-email: move script creation in a setup test
      send-email: allow aliases in patch header and command script outputs
      t9001-send-email: refactor header variable fields replacement
      send-email: refactor address list process
      send-email: allow use of aliases in the From field of --compose mode
      send-email: minor code refactoring
      send-email: reduce dependencies impact on parse_address_line
      send-email: consider quote as delimiter instead of character
      send-email: allow multiple emails using --cc, --to and --bcc
      send-email: suppress meaningless whitespaces in from field
      git-am: add am.threeWay config variable

SZEDER Gábor (6):
      bash prompt: test untracked files status indicator with untracked dirs
      bash prompt: faster untracked status indicator with untracked directories
      config: add '--name-only' option to list only variable names
      completion: list variable names reliably with 'git config --name-only'
      config: restructure format_config() for better control flow
      describe --contains: default to HEAD when no commit-ish is given

Stefan Beller (1):
      read-cache: fix indentation in read_index_from

Thomas Braun (1):
      completion: offer '--edit-todo' during interactive rebase

Zoë Blade (1):
      userdiff: add support for Fountain documents

brian m. carlson (7):
      verify-tag: add tests
      verify-tag: share code with verify-commit
      verify-commit: add test for exit status on untrusted signature
      gpg: centralize signature check
      gpg: centralize printing signature buffers
      verify-commit: add option to print raw gpg status information
      verify-tag: add option to print raw gpg status information


Version v2.5.6; changes since v2.5.5:
-------------------------------------

Jeff King (1):
      shell: disallow repo names beginning with dash

Junio C Hamano (2):
      Git 2.4.12
      Git 2.5.6


Version v2.5.5; changes since v2.5.4:
-------------------------------------

Jeff King (7):
      add helpers for detecting size_t overflow
      tree-diff: catch integer overflow in combine_diff_path allocation
      http-push: stop using name_path
      show_object_with_name: simplify by using path_name()
      list-objects: convert name_path to a strbuf
      list-objects: drop name_path entirely
      list-objects: pass full pathname to callbacks

Junio C Hamano (2):
      Git 2.4.11
      Git 2.5.5


Version v2.5.4; changes since v2.5.3:
-------------------------------------

Blake Burkhart (2):
      http: limit redirection to protocol-whitelist
      http: limit redirection depth

Jeff King (6):
      transport: add a protocol-whitelist environment variable
      submodule: allow only certain protocols for submodule fetches
      transport: refactor protocol whitelist code
      react to errors in xdi_diff
      xdiff: reject files larger than ~1GB
      merge-file: enforce MAX_XDIFF_SIZE on incoming files

Junio C Hamano (3):
      Git 2.3.10
      Git 2.4.10
      Git 2.5.4


Version v2.5.3; changes since v2.5.2:
-------------------------------------

Alex Henrie (1):
      git-submodule: remove extraneous space from error message

Brett Randall (1):
      git-svn doc: mention "svn-remote.<name>.include-paths"

David Turner (2):
      untracked-cache: support sparse checkout
      untracked-cache: fix subdirectory handling

Johannes Schindelin (1):
      am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

Junio C Hamano (1):
      Git 2.5.3

Nguyễn Thái Ngọc Duy (2):
      t7063: use --force-untracked-cache to speed up a bit
      untracked cache: fix entry invalidation


Version v2.5.2; changes since v2.5.1:
-------------------------------------

Andreas Schwab (1):
      Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable

Christian Couder (3):
      trailer: ignore first line of message
      trailer: retitle a test and correct an in-comment message
      trailer: support multiline title

Clemens Buchacher (1):
      git_open_noatime: return with errno=0 on success

David Turner (1):
      commit: don't rewrite shared index unnecessarily

Eric Sunshine (1):
      generate-cmdlist: re-implement as shell script

Erik Elfström (1):
      t7300: fix broken && chains

Jeff King (9):
      vreportf: report to arbitrary filehandles
      vreportf: avoid intermediate buffer
      config: silence warnings for command names with invalid keys
      rev-list: make it obvious that we do not support notes
      log: diagnose empty HEAD more clearly
      verify_absent: allow filenames longer than PATH_MAX
      notes: use a strbuf in add_non_note
      read_info_alternates: handle paths larger than PATH_MAX
      show-branch: use a strbuf for reflog descriptions

Jim Hill (1):
      strbuf_read(): skip unnecessary strbuf_grow() at eof

Johannes Sixt (1):
      t2019: skip test requiring '*' in a file name non Windows

Junio C Hamano (5):
      ps_matched: xcalloc() takes nmemb and then element size
      Git 2.2.3
      Git 2.3.9
      Git 2.4.9
      Git 2.5.2

Michael Haggerty (4):
      get_remote_group(): handle remotes with single-character names
      get_remote_group(): rename local variable "space" to "wordlen"
      get_remote_group(): eliminate superfluous call to strcspn()
      get_remote_group(): use skip_prefix()

Nguyễn Thái Ngọc Duy (1):
      setup: update the right file in multiple checkouts

Patrick Steinhardt (2):
      tests: fix broken && chains in t1509-root-worktree
      tests: fix cleanup after tests in t1509-root-worktree

Philip Oakley (1):
      po/README: Update directions for l10n contributors

René Scharfe (3):
      t5004: test ZIP archives with many entries
      archive-zip: use a local variable to store the creator version
      archive-zip: support more than 65535 entries

SZEDER Gábor (2):
      t3020: fix typo in test description
      wt-status: move #include "pathspec.h" to the header

Sven Strickroth (1):
      config: close config file handle in case of error


Version v2.5.1; changes since v2.5.0:
-------------------------------------

Charles Bailey (1):
      untracked: fix detection of uname(2) failure

David Aguilar (1):
      contrib/subtree: ignore log.date configuration

David Turner (1):
      unpack-trees: don't update files with CE_WT_REMOVE set

Eric Sunshine (5):
      Documentation/git: drop outdated Cogito reference
      Documentation/git-tools: improve discoverability of Git wiki
      Documentation/git-tools: fix item text formatting
      Documentation/git-tools: drop references to defunct tools
      Documentation/git-tools: retire manually-maintained list

Ilya Bobyr (1):
      rev-parse --parseopt: allow [*=?!] in argument hints

Jeff King (4):
      test-lib: turn off "-x" tracing during chain-lint check
      test-lib: disable trace when test is not verbose
      clone: add tests for output directory
      clone: use computed length in guess_dir_name

Jiang Xin (1):
      receive-pack: crash when checking with non-exist HEAD

Jose F. Morales (1):
      Mingw: verify both ends of the pipe () call

Junio C Hamano (5):
      builtin/send-pack.c: respect user.signingkey
      Git 2.4.8
      Start preparing for 2.5.1
      pull: pass upload_pack only when it was given
      Git 2.5.1

Karthik Nayak (1):
      Documentation/tag: remove double occurance of "<pattern>"

Matthieu Moy (1):
      pull.sh: quote $upload_pack when passing it to git-fetch

Mike Hommey (1):
      fast-import: do less work when given "from" matches current branch head

Nguyễn Thái Ngọc Duy (1):
      setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR

Simon A. Eugster (1):
      checkout: document subtlety around --ours/--theirs

Stefan Beller (3):
      parse-options: align curly braces for all options
      add: remove dead code
      transport-helper: die on errors reading refs.

Thomas Ackermann (1):
      typofix for index-format.txt


Version v2.5.0; changes since v2.5.0-rc3:
-----------------------------------------

Junio C Hamano (4):
      Revert "git-am: add am.threeWay config variable"
      RelNotes: am.threeWay does not exist (yet)
      Git 2.4.7
      Git 2.5


Version v2.5.0-rc3; changes since v2.5.0-rc2:
---------------------------------------------

Alex Henrie (2):
      l10n: ca.po: update translation
      l10n: ca.po: update translation

Alexander Shopov (2):
      l10n: Updated Bulgarian translation of git (2355t,0f,0u)
      l10n: Updated Bulgarian translation of git (2359t,0f,0u)

Dimitriy Ryazantcev (1):
      l10n: ru.po: update Russian translation

Eric Sunshine (2):
      Documentation/git-worktree: fix stale "git checkout --to" references
      Documentation/git: fix stale "MULTIPLE CHECKOUT MODE" reference

Jean-Noël Avila (2):
      l10n: fr.po v2.5.0-rc0 (2355t)
      l10n: fr v2.5.0 round 2 (2359t)

Jiang Xin (4):
      l10n: git.pot: v2.5.0 round 1 (65 new, 15 removed)
      l10n: zh_CN: for git v2.5.0 l10n round 1
      l10n: git.pot: v2.5.0 round 2 (9 new, 5 removed)
      l10n: zh_CN: for git v2.5.0 l10n round 2

Junio C Hamano (3):
      Git 2.4.6
      worktree: caution that this is still experimental
      Git 2.5.0-rc3

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (2355t0f0u)
      l10n: sv.po: Update Swedish translation (2359t0f0u)

Ralf Thielow (4):
      l10n: de.po: fix translation of "head nodes"
      l10n: de.po: translate "index" as "Index"
      l10n: de.po: translate 65 new messages
      l10n: de.po: translate 9 new messages

René Scharfe (1):
      diff: parse ws-error-highlight option more strictly

Stefan Beller (1):
      revision.c: remove unneeded check for NULL

Tony Finch (1):
      gitweb: fix typo in man page

Trần Ngọc Quân (2):
      l10n: Updated Vietnamese translation (2355t)
      l10n: Updated Vietnamese translation (2359t)


Version v2.5.0-rc2; changes since v2.5.0-rc1:
---------------------------------------------

Charles Bailey (3):
      contrib/subtree: use tabs consitently for indentation in tests
      contrib/subtree: fix broken &&-chains and revealed test error
      contrib/subtree: small tidy-up to test

Clemens Buchacher (1):
      rebase: return non-zero error code if format-patch fails

Enrique Tobis (1):
      http: always use any proxy auth method available

Eric Sunshine (23):
      Documentation/git-checkout: fix incorrect worktree prune command
      Documentation/git-worktree: associate options with commands
      Documentation: move linked worktree description from checkout to worktree
      Documentation/git-worktree: add BUGS section
      Documentation/git-worktree: split technical info from general description
      Documentation/git-worktree: add high-level 'lock' overview
      Documentation/git-worktree: add EXAMPLES section
      checkout: fix bug with --to and relative HEAD
      checkout: relocate --to's "no branch specified" check
      checkout: prepare_linked_checkout: drop now-unused 'new' argument
      checkout: make --to unconditionally verbose
      checkout: drop 'checkout_opts' dependency from prepare_linked_checkout
      worktree: introduce "add" command
      worktree: add --force option
      worktree: add --detach option
      worktree: add -b/-B options
      tests: worktree: retrofit "checkout --to" tests for "worktree add"
      checkout: retire --to option
      checkout: require worktree unconditionally
      worktree: extract basename computation to new function
      worktree: add: make -b/-B default to HEAD when <branch> is omitted
      worktree: add: auto-vivify new branch when <branch> is omitted
      checkout: retire --ignore-other-worktrees in favor of --force

Jeff King (4):
      docs: clarify that --encoding can produce invalid sequences
      for_each_packed_object: automatically open pack index
      rev-list: disable --use-bitmap-index when pruning commits
      check_and_freshen_file: fix reversed success-check

Johannes Schindelin (2):
      t3404: demonstrate CHERRY_PICK_HEAD bug
      rebase -i: do not leave a CHERRY_PICK_HEAD file behind

Junio C Hamano (6):
      fsck: it is OK for a tag and a commit to lack the body
      pager: do not leak "GIT_PAGER_IN_USE" to the pager
      index-pack: fix allocation of sorted_by_pos array
      The last minute bits of fixes
      Revert "checkout: retire --ignore-other-worktrees in favor of --force"
      Git 2.5.0-rc2

Karsten Blees (2):
      config.c: fix writing config files on Windows network shares
      Makefile / racy-git.txt: clarify USE_NSEC prerequisites

Lawrence Siebert (1):
      rev-list: add --count to usage guide

Matthieu Moy (3):
      git-multimail: update to release 1.1.1
      Documentation/branch: document -d --force and -m --force
      Documentation/branch: document -M and -D in terms of --force

Michael Haggerty (1):
      strbuf: strbuf_read_file() should return ssize_t

Nguyễn Thái Ngọc Duy (3):
      checkout: don't check worktrees when not necessary
      worktree: new place for "git prune --worktrees"
      Add tests for wildcard "path vs ref" disambiguation

Richard Hansen (2):
      Revert "test-lib.sh: do tests for color support after changing HOME"
      test-lib.sh: fix color support when tput needs ~/.terminfo

Sebastian Schuberth (1):
      clone: simplify string handling in guess_dir_name()

Stefan Beller (1):
      p5310: Fix broken && chain in performance test

Torsten Bögershausen (1):
      git-checkout.txt: document "git checkout <pathspec>" better


Version v2.5.0-rc1; changes since v2.5.0-rc0:
---------------------------------------------

Joe Cridge (1):
      git-prompt.sh: document GIT_PS1_STATESEPARATOR

Junio C Hamano (1):
      Git 2.5.0-rc1

Matthieu Moy (1):
      Documentation/describe: improve one-line summary

Michael J Gruber (1):
      mergetool-lib: fix default tool selection

Mike Edgar (1):
      fetch-pack: check for shallow if depth given


Version v2.5.0-rc0; changes since v2.4.12:
------------------------------------------

Allen Hubbe (1):
      send-email: add sendmail email aliases format

Blair Holloway (1):
      git-p4: fix filetype detection on files opened exclusively

Christian Neukirchen (1):
      cvsimport: silence regex warning appearing in Perl 5.22.

Danny Lin (2):
      contrib/subtree: there's no push --squash
      contrib/subtree: portability fix for string printing

David Aguilar (2):
      mergetool--lib: set IFS for difftool and mergetool
      mergetools: add winmerge as a builtin tool

David Turner (3):
      tree-walk: learn get_tree_entry_follow_symlinks
      sha1_name: get_sha1_with_context learns to follow symlinks
      cat-file: add --follow-symlinks to --batch

Dennis Kaarsemaker (1):
      checkout: don't require a work tree when checking out into a new one

Eric Sunshine (14):
      command-list: prepare machinery for upcoming "common groups" section
      generate-cmdlist: parse common group commands
      send-email: further document missing sendmail aliases functionality
      send-email: visually distinguish sendmail aliases parser warnings
      send-email: drop noise comments which merely repeat what code says
      send-email: fix style: cuddle 'elsif' and 'else' with closing brace
      send-email: refactor sendmail aliases parser
      send-email: simplify sendmail aliases comment and blank line recognizer
      send-email: implement sendmail aliases line continuation support
      t9001: refactor sendmail aliases test infrastructure
      t9001: add sendmail aliases line continuation tests
      send-email: further warn about unsupported sendmail aliases features
      config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases
      configure: add getdelim() check

Fredrik Medley (3):
      config.txt: clarify allowTipSHA1InWant with camelCase
      upload-pack: prepare to extend allow-tip-sha1-in-want
      upload-pack: optionally allow fetching reachable sha1

Jeff King (29):
      strbuf_getwholeline: use getc macro
      git-compat-util: add fallbacks for unlocked stdio
      strbuf_getwholeline: use getc_unlocked
      config: use getc_unlocked when reading from file
      strbuf_addch: avoid calling strbuf_grow
      strbuf_getwholeline: avoid calling strbuf_grow
      strbuf_getwholeline: use getdelim if it is available
      read_packed_refs: avoid double-checking sane refs
      t1430: add another refs-escape test
      test-lib: turn on GIT_TEST_CHAIN_LINT by default
      remote.c: drop default_remote_name variable
      progress: treat "no terminal" as being in the foreground
      remote.c: refactor setup of branch->merge list
      remote.c: drop "remote" pointer from "struct branch"
      remote.c: hoist branch.*.remote lookup out of remote_get_1
      remote.c: provide per-branch pushremote name
      remote.c: hoist read_config into remote_get_1
      remote.c: introduce branch_get_upstream helper
      remote.c: report specific errors from branch_get_upstream
      remote.c: untangle error logic in branch_get_upstream
      remote.c: return upstream name from stat_tracking_info
      remote.c: add branch_get_push
      sha1_name: refactor upstream_mark
      sha1_name: refactor interpret_upstream_mark
      sha1_name: implement @{push} shorthand
      for-each-ref: use skip_prefix instead of starts_with
      for-each-ref: accept "%(push)" format
      t7063: hide stderr from setup inside prereq
      index-pack: fix truncation of off_t in comparison

Johannes Sixt (5):
      compat/mingw: stubs for getpgid() and tcgetpgrp()
      lockfile: replace random() by rand()
      help.c: wrap wait-only poll() invocation in sleep_millisec()
      lockfile: convert retry timeout computations to millisecond
      lockfile: wait using sleep_millisec() instead of select()

Jonathan Nieder (1):
      config: use error() instead of fprintf(stderr, ...)

Junio C Hamano (38):
      t2026: fix broken &&-chain
      test: validate prerequistes syntax
      merge: test the top-level merge driver
      merge: simplify code flow
      t5520: style fixes
      t5520: test pulling an octopus into an unborn branch
      merge: clarify "pulling into void" special case
      merge: do not check argc to determine number of remote heads
      merge: small leakfix and code simplification
      merge: clarify collect_parents() logic
      merge: split reduce_parents() out of collect_parents()
      merge: narrow scope of merge_names
      merge: extract prepare_merge_message() logic out
      merge: make collect_parents() auto-generate the merge message
      merge: decide if we auto-generate the message early in collect_parents()
      merge: handle FETCH_HEAD internally
      merge: deprecate 'git merge <message> HEAD <commit>' syntax
      First batch for 2.5 cycle
      Second batch for 2.5 cycle
      Third batch for 2.5 cycle
      copy.c: make copy_fd() report its status silently
      filter_buffer_or_fd(): ignore EPIPE
      Fourth batch for 2.5 cycle
      t4015: modernise style
      t4015: separate common setup and per-test expectation
      Fifth batch for 2.5 cycle
      diff.c: add emit_del_line() and emit_context_line()
      diff.c: --ws-error-highlight=<kind> option
      t9001: write $HOME/, not ~/, to help shells without tilde expansion
      apply: reject a hunk that does not do anything
      Sixth batch for 2.5 cycle
      ll-merge: pass the original path to external drivers
      The first half of the seventh batch for 2.5
      Second half of seventh batch
      Eighth batch for 2.5
      Revert "diff-lib.c: adjust position of i-t-a entries in diff"
      Ninth batch for 2.5
      Git 2.5.0-rc0

Karthik Nayak (4):
      sha1_file: support reading from a loose object of unknown type
      cat-file: make the options mutually exclusive
      cat-file: teach cat-file a '--allow-unknown-type' option
      t1006: add tests for git cat-file --allow-unknown-type

Lars Kellogg-Stedman (1):
      http: add support for specifying an SSL cipher list

Lex Spoon (1):
      git-p4: use -m when running p4 changes

Luke Diamand (11):
      git-p4: fix small bug in locked test scripts
      git-p4: small fix for locked-file-move-test
      git-p4: t9814: prevent --chain-lint failure
      git-p4: add failing tests for case-folding p4d
      git-p4: add failing test for P4EDITOR handling
      git-p4: fix handling of multi-word P4EDITOR
      git-p4: tests: use test-chmtime in place of touch
      git-p4: additional testing of --changes-block-size
      git-p4: test with limited p4 server results
      git-p4: add tests for non-numeric revision range
      git-p4: fixing --changes-block-size handling

Luke Mewburn (1):
      progress: no progress in background

Matthieu Moy (6):
      t3701-add-interactive: simplify code
      add -p: demonstrate failure when running 'edit' after a split
      t3904-stash-patch: fix test description
      t3904-stash-patch: factor PERL prereq at the top of the file
      stash -p: demonstrate failure of split with mixed y/n
      git-multimail: update to release 1.1.0

Max Kirillov (3):
      checkout: do not fail if target is an empty directory
      git-common-dir: make "modules/" per-working-directory directory
      prune --worktrees: fix expire vs worktree existence condition

Michael Haggerty (62):
      lockfile: allow file locking to be retried with a timeout
      lock_packed_refs(): allow retries when acquiring the packed-refs lock
      each_ref_fn: change to take an object_id parameter
      builtin/rev-parse: rewrite to take an object_id argument
      handle_one_ref(): rewrite to take an object_id argument
      register_ref(): rewrite to take an object_id argument
      append_ref(): rewrite to take an object_id argument
      add_pending_uninteresting_ref(): rewrite to take an object_id argument
      get_name(): rewrite to take an object_id argument
      builtin/fetch: rewrite to take an object_id argument
      grab_single_ref(): rewrite to take an object_id argument
      name_ref(): rewrite to take an object_id argument
      builtin/pack-objects: rewrite to take an object_id argument
      show_ref_cb(): rewrite to take an object_id argument
      builtin/reflog: rewrite ref functions to take an object_id argument
      add_branch_for_removal(): rewrite to take an object_id argument
      add_branch_for_removal(): don't set "util" field of string_list entries
      builtin/remote: rewrite functions to take object_id arguments
      show_reference(): rewrite to take an object_id argument
      append_matching_ref(): rewrite to take an object_id argument
      builtin/show-branch: rewrite functions to take object_id arguments
      append_one_rev(): rewrite to work with object_id
      builtin/show-branch: rewrite functions to work with object_id
      cmd_show_branch(): fix error message
      fsck: change functions to use object_id
      builtin/show-ref: rewrite to use object_id
      show_ref(): convert local variable peeled to object_id
      builtin/show-ref: rewrite to take an object_id argument
      append_similar_ref(): rewrite to take an object_id argument
      http-backend: rewrite to take an object_id argument
      show_head_ref(): convert local variable "unused" to object_id
      add_ref_decoration(): rewrite to take an object_id argument
      add_ref_decoration(): convert local variable original_sha1 to object_id
      string_list_add_one_ref(): rewrite to take an object_id argument
      add_one_ref(): rewrite to take an object_id argument
      remote: rewrite functions to take object_id arguments
      register_replace_ref(): rewrite to take an object_id argument
      handle_one_reflog(): rewrite to take an object_id argument
      add_info_ref(): rewrite to take an object_id argument
      handle_one_ref(): rewrite to take an object_id argument
      shallow: rewrite functions to take object_id arguments
      submodule: rewrite to take an object_id argument
      write_refs_to_temp_dir(): convert local variable sha1 to object_id
      write_one_ref(): rewrite to take an object_id argument
      find_symref(): rewrite to take an object_id argument
      find_symref(): convert local variable "unused" to object_id
      upload-pack: rewrite functions to take object_id arguments
      send_ref(): convert local variable "peeled" to object_id
      mark_complete(): rewrite to take an object_id argument
      clear_marks(): rewrite to take an object_id argument
      mark_complete_oid(): new function, taking an object_oid
      mark_complete(): remove unneeded arguments
      rev_list_insert_ref_oid(): new function, taking an object_oid
      rev_list_insert_ref(): remove unneeded arguments
      each_ref_fn_adapter(): remove adapter
      warn_if_dangling_symref(): convert local variable "junk" to object_id
      struct ref_lock: convert old_sha1 member to object_id
      verify_lock(): return 0/-1 rather than struct ref_lock *
      verify_lock(): on errors, let the caller unlock the lock
      verify_lock(): report errors via a strbuf
      verify_lock(): do not capitalize error messages
      ref_transaction_commit(): do not capitalize error messages

Miguel Torroja (1):
      p4: retrieve the right revision of the file in UTF-16 codepath

Mike Hommey (1):
      show-branch: show all local heads when only giving one rev along --topics

Nguyễn Thái Ngọc Duy (63):
      path.c: make get_pathname() return strbuf instead of static buffer
      path.c: make get_pathname() call sites return const char *
      git_snpath(): retire and replace with strbuf_git_path()
      path.c: rename vsnpath() to do_git_path()
      path.c: group git_path(), git_pathdup() and strbuf_git_path() together
      git_path(): be aware of file relocation in $GIT_DIR
      *.sh: respect $GIT_INDEX_FILE
      reflog: avoid constructing .lock path with git_path
      fast-import: use git_path() for accessing .git dir instead of get_git_dir()
      commit: use SEQ_DIR instead of hardcoding "sequencer"
      $GIT_COMMON_DIR: a new environment variable
      git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
      *.sh: avoid hardcoding $GIT_DIR/hooks/...
      git-stash: avoid hardcoding $GIT_DIR/logs/....
      setup.c: convert is_git_directory() to use strbuf
      setup.c: detect $GIT_COMMON_DIR in is_git_directory()
      setup.c: convert check_repository_format_gently to use strbuf
      setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
      setup.c: support multi-checkout repo setup
      wrapper.c: wrapper to open a file, fprintf then close
      use new wrapper write_file() for simple file writing
      checkout: support checking out into a new working directory
      prune: strategies for linked checkouts
      checkout: reject if the branch is already checked out elsewhere
      checkout: clean up half-prepared directories in --to mode
      gc: style change -- no SP before closing parenthesis
      gc: factor out gc.pruneexpire parsing code
      gc: support prune --worktrees
      count-objects: report unused files in $GIT_DIR/worktrees/...
      git_path(): keep "info/sparse-checkout" per work-tree
      t2025: add a test to make sure grafts is working from a linked checkout
      checkout: pass whole struct to parse_branchname_arg instead of individual flags
      checkout: add --ignore-other-wortrees
      git-checkout.txt: a note about multiple checkout support for submodules
      index-pack: reduce object_entry size to save memory
      dir.c: optionally compute sha-1 of a .gitignore file
      untracked cache: record .gitignore information and dir hierarchy
      untracked cache: initial untracked cache validation
      untracked cache: invalidate dirs recursively if .gitignore changes
      untracked cache: make a wrapper around {open,read,close}dir()
      untracked cache: record/validate dir mtime and reuse cached output
      untracked cache: mark what dirs should be recursed/saved
      untracked cache: don't open non-existent .gitignore
      ewah: add convenient wrapper ewah_serialize_strbuf()
      untracked cache: save to an index extension
      untracked cache: load from UNTR index extension
      untracked cache: invalidate at index addition or removal
      read-cache.c: split racy stat test to a separate function
      untracked cache: avoid racy timestamps
      untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
      untracked cache: mark index dirty if untracked cache is updated
      untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
      status: enable untracked cache
      update-index: manually enable or disable untracked cache
      update-index: test the system before enabling untracked cache
      t7063: tests for untracked cache
      mingw32: add uname()
      untracked cache: guard and disable on system changes
      git-status.txt: advertisement for untracked cache
      diff-lib.c: adjust position of i-t-a entries in diff
      index-pack: kill union delta_base to save memory
      pathspec: avoid the need of "--" when wildcard is used
      read-cache: fix untracked cache invalidation when split-index is used

Paul Tan (10):
      t5520: prevent field splitting in content comparisons
      t5520: test no merge candidates cases
      t5520: test for failure if index has unresolved entries
      t5520: test work tree fast-forward when fetch updates head
      t5520: test --rebase with multiple branches
      t5520: test --rebase failure on unborn branch with index
      t5521: test --dry-run does not make any changes
      t5520: check reflog action in fast-forward merge
      pull: handle git-fetch's options as well
      pull: use git-rev-parse --parseopt for option parsing

Quentin Neill (1):
      blame: add blame.showEmail configuration

Ramsay Jones (1):
      t7502-commit.sh: fix a broken and-chain

Remi Lespinet (3):
      git-am.sh: fix initialization of the threeway variable
      t4150-am: refactor am -3 tests
      git-am: add am.threeWay config variable

SZEDER Gábor (4):
      completion: remove redundant __git_compute_all_commands() call
      completion: remove credential helpers from porcelain commands
      completion: add a helper function to get config variables
      completion: simplify query for config variables

Stefan Beller (2):
      prefix_path(): unconditionally free results in the callers
      refs.c: remove lock_fd from struct ref_lock

Sébastien Guimmara (4):
      command-list.txt: fix whitespace inconsistency
      command-list.txt: add the common groups block
      command-list.txt: drop the "common" tag
      help: respect new common command grouping

Thomas Braun (1):
      completion: suggest sequencer commands for revert

Thomas Gummerer (1):
      t1501: fix test with split index

Thomas Schneider (1):
      checkout: call a single commit "it" intead of "them"

Torsten Bögershausen (4):
      t2026 needs procondition SANITY
      t0027: cleanup: rename functions; avoid non-leading TABs
      t0027: support NATIVE_CRLF platforms
      t0027: Add repoMIX and LF_nul

Vitor Antunes (2):
      t9801: check git-p4's branch detection with client spec enabled
      git-p4: improve client path detection when branches are used

brian m. carlson (11):
      define a structure for object IDs
      define utility functions for object IDs
      bisect.c: convert leaf functions to use struct object_id
      archive.c: convert to use struct object_id
      zip: use GIT_SHA1_HEXSZ for trailers
      bulk-checkin.c: convert to use struct object_id
      diff: convert struct combine_diff_path to object_id
      commit: convert parts to struct object_id
      patch-id: convert to use struct object_id
      apply: convert threeway_stage to object_id
      refs: convert struct ref_entry to use struct object_id


Version v2.4.12; changes since v2.4.11:
---------------------------------------

Jeff King (1):
      shell: disallow repo names beginning with dash

Junio C Hamano (1):
      Git 2.4.12


Version v2.4.11; changes since v2.4.10:
---------------------------------------

Jeff King (7):
      add helpers for detecting size_t overflow
      tree-diff: catch integer overflow in combine_diff_path allocation
      http-push: stop using name_path
      show_object_with_name: simplify by using path_name()
      list-objects: convert name_path to a strbuf
      list-objects: drop name_path entirely
      list-objects: pass full pathname to callbacks

Junio C Hamano (1):
      Git 2.4.11


Version v2.4.10; changes since v2.4.9:
--------------------------------------

Blake Burkhart (2):
      http: limit redirection to protocol-whitelist
      http: limit redirection depth

Jeff King (6):
      transport: add a protocol-whitelist environment variable
      submodule: allow only certain protocols for submodule fetches
      transport: refactor protocol whitelist code
      react to errors in xdi_diff
      xdiff: reject files larger than ~1GB
      merge-file: enforce MAX_XDIFF_SIZE on incoming files

Junio C Hamano (2):
      Git 2.3.10
      Git 2.4.10


Version v2.4.9; changes since v2.4.8:
-------------------------------------

Jeff King (4):
      verify_absent: allow filenames longer than PATH_MAX
      notes: use a strbuf in add_non_note
      read_info_alternates: handle paths larger than PATH_MAX
      show-branch: use a strbuf for reflog descriptions

Junio C Hamano (3):
      Git 2.2.3
      Git 2.3.9
      Git 2.4.9


Version v2.4.8; changes since v2.4.7:
-------------------------------------

Johannes Schindelin (2):
      t3404: demonstrate CHERRY_PICK_HEAD bug
      rebase -i: do not leave a CHERRY_PICK_HEAD file behind

Junio C Hamano (1):
      Git 2.4.8

Michael Haggerty (4):
      t6301: new tests of for-each-ref error handling
      for-each-ref: report broken references correctly
      read_loose_refs(): simplify function logic
      read_loose_refs(): treat NULL_SHA1 loose references as broken

Paul Tan (6):
      am --skip: revert changes introduced by failed 3way merge
      am -3: support 3way merge on unborn branch
      am --skip: support skipping while on unborn branch
      am --abort: revert changes introduced by failed 3way merge
      am --abort: support aborting to unborn branch
      am --abort: keep unrelated commits on unborn branch

SZEDER Gábor (2):
      completion: teach 'scissors' mode to 'git commit --cleanup='
      commit: cope with scissors lines in commit message

Sebastian Schuberth (1):
      clone: simplify string handling in guess_dir_name()


Version v2.4.7; changes since v2.4.6:
-------------------------------------

Clemens Buchacher (1):
      rebase: return non-zero error code if format-patch fails

Enrique Tobis (1):
      http: always use any proxy auth method available

Jeff King (4):
      index-pack: avoid excessive re-reading of pack directory
      docs: clarify that --encoding can produce invalid sequences
      rev-list: disable --use-bitmap-index when pruning commits
      check_and_freshen_file: fix reversed success-check

Junio C Hamano (3):
      fsck: it is OK for a tag and a commit to lack the body
      pager: do not leak "GIT_PAGER_IN_USE" to the pager
      Git 2.4.7

Karsten Blees (1):
      config.c: fix writing config files on Windows network shares

Lawrence Siebert (1):
      rev-list: add --count to usage guide

Matthieu Moy (2):
      Documentation/branch: document -d --force and -m --force
      Documentation/branch: document -M and -D in terms of --force

Michael Haggerty (1):
      strbuf: strbuf_read_file() should return ssize_t

Richard Hansen (2):
      Revert "test-lib.sh: do tests for color support after changing HOME"
      test-lib.sh: fix color support when tput needs ~/.terminfo

Torsten Bögershausen (1):
      git-checkout.txt: document "git checkout <pathspec>" better


Version v2.4.6; changes since v2.4.5:
-------------------------------------

Ariel Faigon (1):
      git-completion.tcsh: fix redirect with noclobber

Charles Bailey (1):
      Fix definition of ARRAY_SIZE for non-gcc builds

Eric Sunshine (2):
      ewah/bitmap: silence warning about MASK macro redefinition
      utf8: NO_ICONV: silence uninitialized variable warning

Frans Klaver (1):
      doc: format-patch: fix typo

Jeff King (2):
      ewah: use less generic macro name
      Revert "stash: require a clean index to apply"

Joe Cridge (1):
      git-prompt.sh: document GIT_PS1_STATESEPARATOR

Junio C Hamano (2):
      format-patch: do not feed tags to clear_commit_marks()
      Git 2.4.6

Matthieu Moy (1):
      Documentation/describe: improve one-line summary

Michael Haggerty (2):
      fsck_handle_reflog_sha1(): new function
      fsck: report errors if reflog entries point at invalid objects

Mike Edgar (1):
      fetch-pack: check for shallow if depth given

Panagiotis Astithas (1):
      hooks/pre-auto-gc: adjust power checking for newer OS X

Paul Tan (1):
      t0302: "unreadable" test needs SANITY prereq


Version v2.4.5; changes since v2.4.4:
-------------------------------------

Jeff King (13):
      diff: accept color.diff.context as a synonym for "plain"
      diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT
      read-cache.c: drop PROT_WRITE from mmap of index
      config.c: fix mmap leak when writing config
      config.c: avoid xmmap error messages
      config.c: rewrite ENODEV into EISDIR when mmap fails
      Makefile: drop dependency between git-instaweb and gitweb
      Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS
      Makefile: silence perl/PM.stamp recipe
      setup_git_directory: delay core.bare/core.worktree errors
      add quieter versions of parse_{tree,commit}
      silence broken link warnings with revs->ignore_missing_links
      suppress errors on missing UNINTERESTING links

Junio C Hamano (3):
      t5407: use <<- to align the expected output
      xmmap(): drop "Out of memory?"
      Git 2.4.5

Matthieu Moy (2):
      rebase -i: demonstrate incorrect behavior of post-rewrite
      rebase -i: fix post-rewrite hook with failed exec command

Paul Tan (1):
      pull: remove --tags error in no merge candidates case

SZEDER Gábor (1):
      Documentation: include 'merge.branchdesc' for merge and config as well

Stefan Beller (1):
      Documentation/technical/pack-protocol: mention http as possible protocol


Version v2.4.4; changes since v2.4.3:
-------------------------------------

Alex Henrie (1):
      blame, log: format usage strings similarly to those in documentation

David Turner (1):
      clean: only lstat files in pathspec

Elia Pinto (1):
      git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array

Jeff King (8):
      http-backend: fix die recursion with custom handler
      t5551: factor out tag creation
      stash: complain about unknown flags
      stash: recognize "--help" for subcommands
      test_bitmap_walk: free bitmap with bitmap_free
      http-backend: spool ref negotiation requests to buffer
      clone: use OPT_STRING_LIST for --reference
      clone: reorder --dissociate and --reference options

Jim Hill (1):
      sha1_file: pass empty buffer to index empty file

Junio C Hamano (1):
      Git 2.4.4

Matthieu Moy (2):
      Documentation/log: clarify what --raw means
      Documentation/log: clarify sha1 non-abbreviation in log --raw

Michael Coleman (1):
      Documentation/git-commit: grammofix

Michael J Gruber (3):
      l10n: de.po: grammar fix
      l10n: de.po: punctuation fixes
      l10n: de.po: translation fix for fall-back to 3way merge

Phillip Sz (1):
      l10n: de.po: change error message from "sagen" to "Meinten Sie"

René Scharfe (3):
      use file_exists() to check if a file exists in the worktree
      clean: remove unused variable buf
      dir: remove unused variable sb

Stefan Beller (2):
      submodule doc: reorder introductory paragraphs
      glossary: add "remote", "submodule", "superproject"


Version v2.4.3; changes since v2.4.2:
-------------------------------------

Danny Lin (1):
      branch: do not call a "remote-tracking branch" a "remote branch"

Fredrik Gustafsson (1):
      Documentation: clarify how "git commit" cleans up the edited log message

Jean-Noël Avila (1):
      doc: fix unmatched code fences

Jeff King (14):
      sha1_file: squelch "packfile cannot be accessed" warnings
      t/lib-httpd.sh: skip tests if NO_CURL is defined
      add: check return value of launch_editor
      doc: fix unmatched code fences in git-stripspace
      doc: fix misrendering due to `single quote'
      doc: fix unquoted use of "{type}"
      doc: fix hanging "+"-continuation
      doc: fix length of underlined section-title
      doc/add: reformat `--edit` option
      doc: convert \--option to --option
      doc: drop backslash quoting of some curly braces
      doc: put example URLs and emails inside literal backticks
      doc: convert AsciiDoc {?foo} to ifdef::foo[]
      rerere: exit silently on "forget" when rerere is disabled

Junio C Hamano (7):
      t0302: "unreadable" test needs POSIXPERM
      fmt-merge-msg: plug small leak of commit buffer
      ignore: info/exclude should trump core.excludesfile
      tests: skip dav http-push tests under NO_EXPAT=NoThanks
      log: decorate HEAD with branch name under --decorate=full, too
      log: do not shorten decoration names too early
      Git 2.4.3

Michael Haggerty (30):
      t1404: new tests of ref D/F conflicts within transactions
      is_refname_available(): revamp the comments
      is_refname_available(): avoid shadowing "dir" variable
      is_refname_available(): convert local variable "dirname" to strbuf
      entry_matches(): inline function
      report_refname_conflict(): inline function
      struct nonmatching_ref_data: store a refname instead of a ref_entry
      is_refname_available(): use dirname in first loop
      ref_transaction_commit(): use a string_list for detecting duplicates
      refs: check for D/F conflicts among refs created in a transaction
      verify_refname_available(): rename function
      verify_refname_available(): report errors via a "struct strbuf *err"
      lock_ref_sha1_basic(): report errors via a "struct strbuf *err"
      lock_ref_sha1_basic(): improve diagnostics for ref D/F conflicts
      rename_ref(): integrate lock_ref_sha1_basic() errors into ours
      ref_transaction_commit(): provide better error messages
      ref_transaction_commit(): delete extra "the" from error message
      reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
      write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
      commit_ref_update(): new function, extracted from write_ref_sha1()
      rename_ref(): inline calls to write_ref_sha1() from this function
      ref_transaction_commit(): inline call to write_ref_sha1()
      ref_transaction_commit(): remove the local flags variable
      ref_transaction_commit(): fix atomicity and avoid fd exhaustion
      write_ref_to_lockfile(): new function, extracted from write_ref_sha1()
      commit_ref_update(): new function, extracted from write_ref_sha1()
      rename_ref(): inline calls to write_ref_sha1() from this function
      ref_transaction_commit(): inline call to write_ref_sha1()
      ref_transaction_commit(): remove the local flags variable
      ref_transaction_commit(): fix atomicity and avoid fd exhaustion

Mike Hommey (1):
      clone: call transport_set_verbosity before anything else on the newly created transport

Patrick Steinhardt (5):
      bundle: verify arguments more strictly
      git-verify-pack.txt: fix inconsistent spelling of "packfile"
      git-unpack-objects.txt: fix inconsistent spelling of "packfile"
      pack-protocol.txt: fix insconsistent spelling of "packfile"
      doc: fix inconsistent spelling of "packfile"

Paul Tan (13):
      git-credential-store: support multiple credential files
      git-credential-store: support XDG_CONFIG_HOME
      t0302: test credential-store support for XDG_CONFIG_HOME
      path.c: implement xdg_config_home()
      attr.c: replace home_config_paths() with xdg_config_home()
      dir.c: replace home_config_paths() with xdg_config_home()
      credential-store.c: replace home_config_paths() with xdg_config_home()
      git-commit: replace use of home_config_paths()
      git-config: replace use of home_config_paths()
      path.c: remove home_config_paths()
      pull: handle --log=<n>
      pull: make pull.ff=true override merge.ff
      pull: parse pull.ff as a bool or string

Phil Hord (1):
      rebase -i: redo tasks that die during cherry-pick

René Scharfe (1):
      pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps

Stefan Beller (5):
      update-ref: test handling large transactions properly
      t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
      update-ref: test handling large transactions properly
      t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE
      subdirectory tests: code cleanup, uncomment test

Torsten Bögershausen (1):
      blame: CRLF in the working tree and LF in the repo

brian m. carlson (3):
      connect: simplify SSH connection code path
      t5601: fix quotation error leading to skipped tests
      connect: improve check for plink to reduce false positives


Version v2.4.2; changes since v2.4.1:
-------------------------------------

Eric Sunshine (3):
      git-hash-object.txt: document --literally option
      hash-object --literally: fix buffer overrun with extra-long object type
      t1007: add hash-object --literally tests

Jeff King (7):
      limit_list: avoid quadratic behavior from still_interesting
      t3903: stop hard-coding commit sha1s
      t3903: avoid applying onto dirty index
      stash: require a clean index to apply
      stop putting argv[0] dirname at front of PATH
      rebase: silence "git checkout" for noop rebase
      filter-branch: avoid passing commit message through sed

Junio C Hamano (3):
      write_sha1_file(): do not use a separate sha1[] array
      daemon: unbreak NO_IPV6 build regression
      Git 2.4.2

SZEDER Gábor (1):
      completion: fix and update 'git log --decorate=' options


Version v2.4.1; changes since v2.4.0:
-------------------------------------

Carlos Martín Nieto (1):
      dir: allow a BOM at the beginning of exclude files

Elia Pinto (1):
      test-lib-functions.sh: fix the second argument to some helper functions

Jeff King (5):
      init: don't set core.worktree when initializing /.git
      type_from_string_gently: make sure length matches
      reachable: only mark local objects as recent
      sha1_file: freshen pack objects before loose
      sha1_file: only freshen packs once per run

Junio C Hamano (10):
      diff-no-index: DWIM "diff D F" into "diff D/F F"
      diff-no-index: align D/F handling with that of normal Git
      parse_date_basic(): return early when given a bogus timestamp
      parse_date_basic(): let the system handle DST conversion
      add_excludes_from_file: clarify the bom skipping logic
      utf8-bom: introduce skip_utf8_bom() helper
      config: use utf8_bom[] from utf.[ch] in git_parse_source()
      attr: skip UTF8 BOM at the beginning of the input file
      Git 2.3.8
      Git 2.4.1

Matthieu Moy (2):
      Documentation: change -L:<regex> to -L:<funcname>
      log -L: improve error message on malformed argument

Nguyễn Thái Ngọc Duy (1):
      t1509: update prepare script to be able to run t1509 in chroot again

Ossi Herrala (1):
      config: fix settings in default_user_config template

Stefan Beller (2):
      line-log.c: fix a memleak
      pack-bitmap.c: fix a memleak


Version v2.4.0; changes since v2.4.0-rc3:
-----------------------------------------

Junio C Hamano (2):
      Git 2.3.7
      Git 2.4

Michael Haggerty (6):
      git tag: mention versionsort.prereleaseSuffix in manpage
      RelNotes: correct name of versionsort.prereleaseSuffix
      RelNotes: refer to the rebase -i "todo list", not "insn sheet"
      RelNotes: wordsmithing
      status: document the -v/--verbose option
      Update git-multimail to version 1.0.2

Michael J Gruber (1):
      rev-list-options.txt: complete sentence about notes matching


Version v2.4.0-rc3; changes since v2.4.0-rc2:
---------------------------------------------

Alexander Shopov (2):
      git-gui i18n: Updated Bulgarian translation (520t,0f,0u)
      git-gui i18n: Updated Bulgarian translation (547t,0f,0u)

Csaba Kiraly (1):
      git-gui: fix problem with gui.maxfilesdisplayed

David Turner (1):
      git-gui: Make git-gui lib dir configurable at runime

Henri GEIST (1):
      git-gui: Add a 'recursive' checkbox in the clone menu.

Junio C Hamano (6):
      push --signed: tighten what the receiving end can ask to sign
      Revert "merge: pass verbosity flag down to merge-recursive"
      Hopefully the last batch for 2.4
      RelNotes: "merge --quiet" change has been reverted
      Git 2.3.6
      Git 2.4.0-rc3

Kyle J. McKay (1):
      git-gui: reinstate support for Tcl 8.4

Michael Lutz (1):
      git-gui: add configurable tab size to the diff view

Márcio Almada (1):
      completion: fix global bash variable leak on __gitcompappend

Pat Thoyts (3):
      git-gui: align the new recursive checkbox with the radiobuttons.
      git-gui: fix verbose loading when git path contains spaces.
      git-gui: set version 0.20

Patrick Steinhardt (1):
      grep: correctly initialize help-all option

Peter Krefting (1):
      git-gui: sv.po: Update Swedish translation (547t0f0u)

Remi Rampin (2):
      git-gui: Fixes chooser not accepting gitfiles
      git-gui: Makes chooser set 'gitdir' to the resolved path

Sebastian Schuberth (1):
      git-gui/gitk: Do not depend on Cygwin's "kill" command on Windows

Torsten Bögershausen (1):
      connect.c: ignore extra colon after hostname

Trần Ngọc Quân (1):
      L10n: vi.po (543t): Init translation for Vietnamese

Vitor Antunes (3):
      t9814: fix broken shell syntax in git-p4 rename test
      git-p4: fix copy detection test
      t9814: guarantee only one source exists in git-p4 copy tests


Version v2.4.0-rc2; changes since v2.4.0-rc1:
---------------------------------------------

Alex Henrie (2):
      l10n: ca.po: update translation
      l10n: ca.po: update translation

Alexander Shopov (1):
      l10n: Updated Bulgarian translation of git (2305t,0f,0u)

Dimitriy Ryazantcev (3):
      l10n: ru: added Russian translation
      l10n: ru: updated Russian translation
      l10n: ru: updated Russian translation

Ivan Ukhov (1):
      parse-options.h: OPTION_{BIT,SET_INT} do not store pointer to defval

Jean-Noël Avila (2):
      l10n: fr.po v2.4.0-rc0 round 1
      l10n: fr.po v2.4.0 round 2

Jeff King (3):
      cherry-pick: fix docs describing handling of empty commits
      howto: document more tools for recovery corruption
      merge: pass verbosity flag down to merge-recursive

Jiang Xin (5):
      l10n: git.pot: v2.4.0 round 1 (99 new, 92 removed)
      l10n: zh_CN: translations for git v2.4.0-rc0
      l10n: git.pot: v2.4.0 round 2 (1 update)
      l10n: zh_CN: for git v2.4.0 l10n round 2
      l10n: TEAMS: Change repository URL of zh_CN

John Keeping (1):
      streaming.c: fix a memleak

Jonathan Nieder (1):
      fast-import doc: remove suggested 16-parent limit

Julian Gindi (1):
      CodingGuidelines: update 'rough' rule count

Junio C Hamano (2):
      push-to-deploy: allow pushing into an unborn branch and updating it
      Git 2.4.0-rc2

Jérôme Zago (1):
      gitweb.conf.txt: say "build-time", not "built-time"

Kyle J. McKay (1):
      diff-highlight: do not split multibyte characters

Matthias Rüster (1):
      l10n: de.po: translate 'symbolic link' as 'symbolische Verknüpfung'

Michael J Gruber (1):
      l10n: de.po: fix negation for commit -a with paths

Paul Tan (1):
      enter_repo(): fix docs to match code

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (2305t0f0u)
      l10n: sv.po: Update Swedish translation (2305t0f0u)

Phillip Sz (1):
      l10n: de.po: add space before ellipsis

Ralf Thielow (3):
      l10n: de.po: fix messages with abbreviated hashs
      l10n: de.po: translate 99 new messages
      l10n: de.po: translate one message

Stefan Beller (1):
      wt-status.c: fix a memleak

Trần Ngọc Quân (2):
      l10n: vi.po: Updated Vietnamese translation
      l10n: vi.po(2305t): Updated 1 new string


Version v2.4.0-rc1; changes since v2.4.0-rc0:
---------------------------------------------

Junio C Hamano (6):
      add_to_index(): free unused cache-entry
      Update mailmap to spell out "Alexander Kuleshov"
      Prepare for 2.3.5
      RelNotes: minor doc updates
      Git 2.3.5
      Git 2.4.0-rc1

Phil Hord (1):
      git-push.txt: clean up force-with-lease wording

Ralf Thielow (1):
      send-pack: unify error messages for unsupported capabilities

Sebastian Schuberth (2):
      docs: clarify "preserve" option wording for git-pull
      docs: clarify what git-rebase's "-p" / "--preserve-merges" does

Stefan Beller (9):
      read-cache: free cache entry in add_to_index in case of early return
      update-index: fix a memleak
      builtin/apply.c: fix a memleak
      merge-blobs.c: fix a memleak
      merge-recursive: fix memleaks
      http-push: remove unneeded cleanup
      commit.c: fix a memory leak
      read-cache: fix memleak
      http: release the memory of a http pack request as well

Thomas Ackermann (2):
      api-error-handling doc: typofix
      2.3.2 release notes: typofix


Version v2.4.0-rc0; changes since v2.3.10:
------------------------------------------

Alex Henrie (3):
      standardize usage info string format
      gitk: Remove tcl-format flag from a message that shouldn't have it
      gitk: l10n: Add Catalan translation

Alexander Kuleshov (3):
      pack-bitmap: fix typo
      t/lib-terminal.sh: fix typo
      gitk: Fix typo in Russian translation

Chris Packham (1):
      gitk: Default wrcomcmd to use --pretty=email

Christoph Junghans (2):
      log: teach --invert-grep option
      gitk: Pass --invert-grep option down to "git log"

Dave Olszewski (1):
      push: allow --follow-tags to be set by config push.followTags

Dongcan Jiang (1):
      revision: forbid combining --graph and --no-walk

Eric Wong (1):
      git-svn: lazy load some modules

Gabriele Mazzotta (1):
      gitk: Enable mouse horizontal scrolling in diff pane

Jean-Noël Avila (1):
      Add hint interactive cleaning

Jeff King (50):
      strbuf.h: integrate api-strbuf.txt documentation
      strbuf.h: drop asciidoc list formatting from API docs
      strbuf.h: format asciidoc code blocks as 4-space indent
      strbuf.h: reorganize api function grouping headers
      strbuf.h: drop boilerplate descriptions of strbuf_split_*
      strbuf.h: group documentation for trim functions
      git_push_config: drop cargo-culted wt_status pointer
      cmd_push: set "atomic" bit directly
      cmd_push: pass "flags" pointer to config callback
      gettext.c: move get_preferred_languages() from http.c
      t/test-lib: introduce --chain-lint option
      t: fix severe &&-chain breakage
      t: fix moderate &&-chain breakage
      t: fix trivial &&-chain breakage
      t: assume test_cmp produces verbose output
      t: use verbose instead of hand-rolled errors
      t: use test_must_fail instead of hand-rolled blocks
      t: fix &&-chaining issues around setup which might fail
      t: use test_might_fail for diff and grep
      t: use test_expect_code instead of hand-rolled comparison
      t: wrap complicated expect_code users in a block
      t: avoid using ":" for comments
      t3600: fix &&-chain breakage for setup commands
      t7201: fix &&-chain breakage
      t9502: fix &&-chain breakage
      t6030: use modern test_* helpers
      t0020: use modern test_* helpers
      t1301: use modern test_* helpers
      t6034: use modern test_* helpers
      t4117: use modern test_* helpers
      t9001: use test_when_finished
      t0050: appease --chain-lint
      t7004: fix embedded single-quotes
      t0005: fix broken &&-chains
      t4104: drop hand-rolled error reporting
      wt-status: don't flush before running "submodule status"
      wt_status: fix signedness mismatch in strbuf_read call
      run-command: introduce capture_command helper
      wt-status: use capture_command
      submodule: use capture_command
      trailer: use capture_command
      run-command: forbid using run_command with piped output
      perf-lib: fix ignored exit code inside loop
      t0020: fix ignored exit code inside loops
      t3305: fix ignored exit code inside loop
      t7701: fix ignored exit code inside loop
      t: fix some trivial cases of ignored exit codes in loops
      t: simplify loop exit-code status variables
      t0020: use test_* helpers instead of hand-rolled messages
      t9001: drop save_confirm helper

Jonathan Nieder (1):
      doc: document error handling functions and conventions

Junio C Hamano (33):
      receive-pack: refactor updateInstead codepath
      receive-pack: support push-to-checkout hook
      http.c: make finish_active_slot() and handle_curl_result() static
      prompt.c: remove git_getpass() nobody uses
      pack-bitmap.c: make pack_bitmap_filename() static
      line-log.c: make line_log_data_init() static
      revision.c: make save_parents() and free_saved_parents() static
      urlmatch.c: make match_urls() static
      remote.c: make clear_cas_option() static
      shallow.c: make check_shallow_file_for_update() static
      CodingGuidelines: clarify C #include rules
      "log --pretty" documentation: do not forget "tformat:"
      apply: detect and mark whitespace errors in context lines when fixing
      t4122: use test_write_lines from test-lib-functions
      run_diff_files(): clarify computation of sha1 validity
      Post 2.3 cycle (batch #1)
      xread/xwrite: clip MAX_IO_SIZE to SSIZE_MAX
      send-email: ask confirmation if given encoding name is very short
      Post 2.3 cycle (batch #2)
      Post 2.3 cycle (batch #3)
      Post 2.3 cycle (batch #4)
      Post 2.3 cyle (batch #5)
      Post 2.3 cycle (batch #6)
      Post 2.3 cycle (batch #7)
      t7508: .gitignore 'expect' and 'output' files
      Post 2.3 cycle (batch #8)
      Post 2.3 cycle (batch #9)
      log: decorate HEAD with branch name
      Post 2.3 cyce (batch #10)
      Post 2.3 cycle (batch #11)
      Post 2.3 cycle (batch #12)
      Getting ready for -rc0
      Git 2.4.0-rc0

Kevin Daudt (1):
      rev-list: refuse --first-parent combined with --bisect

Kyle J. McKay (8):
      gettext.h: add parentheses around N_ expansion if supported
      git-instaweb: allow running in a working tree subdirectory
      git-instaweb: use @SHELL_PATH@ instead of /bin/sh
      git-compat-util.h: move SHELL_PATH default into header
      help.c: use SHELL_PATH instead of hard-coded "/bin/sh"
      configure: support HAVE_BSD_SYSCTL option
      thread-utils.c: detect CPU count on older BSD-like systems
      t5528: do not fail with FreeBSD shell

Luke Diamand (2):
      git-p4: correct --prepare-p4-only instructions
      git-p4: support excluding paths on sync

Max Kirillov (3):
      gitk: Only write changed configuration variables
      gitk: Report errors in saving config file
      gitk: Synchronize config file writes

Michael Haggerty (37):
      expire_reflog(): it's not an each_ref_fn anymore
      expire_reflog(): rename "ref" parameter to "refname"
      expire_reflog(): return early if the reference has no reflog
      expire_reflog(): use a lock_file for rewriting the reflog file
      Extract function should_expire_reflog_ent()
      expire_reflog(): extract two policy-related functions
      expire_reflog(): add a "flags" argument
      expire_reflog(): move dry_run to flags argument
      expire_reflog(): move updateref to flags argument
      Rename expire_reflog_cb to expire_reflog_policy_cb
      struct expire_reflog_cb: a new callback data type
      expire_reflog(): pass flags through to expire_reflog_ent()
      expire_reflog(): move verbose to flags argument
      expire_reflog(): move rewrite to flags argument
      Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
      expire_reflog(): treat the policy callback data as opaque
      reflog_expire(): new function in the reference API
      lock_any_ref_for_update(): inline function
      refs: move REF_DELETING to refs.c
      refs: remove the gap in the REF_* constant values
      refs.c: change some "flags" to "unsigned int"
      struct ref_update: move "have_old" into "flags"
      ref_transaction_update(): remove "have_old" parameter
      ref_transaction_delete(): remove "have_old" parameter
      commit: add tests of commit races
      commit: avoid race when creating orphan commits
      ref_transaction_create(): check that new_sha1 is valid
      ref_transaction_delete(): check that old_sha1 is not null_sha1
      ref_transaction_verify(): new function to check a reference's value
      update_ref(): improve documentation
      refs.h: remove duplication in function docstrings
      write_ref_sha1(): remove check for lock == NULL
      write_ref_sha1(): move write elision test to callers
      lock_ref_sha1_basic(): do not set force_write for missing references
      reflog: improve and update documentation
      reflog_expire(): ignore --updateref for symbolic references
      reflog_expire(): never update a reference to null_sha1

Michael J Gruber (7):
      t7508: test git status -v
      commit/status: show the index-worktree diff with -v -v
      sequencer: preserve commit messages
      wt-status: refactor detached HEAD analysis
      branch: name detached HEAD analogous to status
      t9104: fix test for following larger parents
      t9158, t9161: fix broken &&-chain in git-svn tests

Mike Hommey (2):
      transport-helper: ask the helper to set progress and verbosity options after asking for its capabilities
      transport-helper: ask the helper to set the same options for import as for fetch

Nguyễn Thái Ngọc Duy (6):
      attr.c: rename arg name attr_nr to avoid shadowing the global one
      attr: do not attempt to expand when we know it's not a macro
      attr: avoid heavy work when we know the specified attr is not defined
      versionsort: support reorder prerelease suffixes
      config.txt: update versioncmp.prereleaseSuffix
      *config.txt: stick to camelCase naming convention

Paul Mackerras (1):
      gitk: Update .po files

René Scharfe (3):
      archive-zip: mark text files in archives
      daemon: use strbuf for hostname info
      daemon: deglobalize hostname information

Ronnie Sahlberg (7):
      refs.c: make ref_transaction_create a wrapper for ref_transaction_update
      refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
      refs.c: add a function to append a reflog entry to a fd
      refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
      receive-pack.c: negotiate atomic push support
      send-pack.c: add --atomic command line argument
      push.c: add an --atomic argument

Sebastian Schuberth (1):
      check-builtins: strip executable suffix $X when enumerating builtins

Stefan Beller (15):
      refs.c: don't expose the internal struct ref_lock in the header file
      refs.c: let fprintf handle the formatting
      receive-pack.c: shorten the execute_commands loop over all commands
      receive-pack.c: die instead of error in case of possible future bug
      receive-pack.c: move iterating over all commands outside execute_commands
      receive-pack.c: move transaction handling in a central place
      receive-pack.c: add execute_commands_atomic function
      send-pack: rename ref_update_to_be_sent to check_to_send_update
      t5543-atomic-push.sh: add basic tests for atomic pushes
      Document receive.advertiseatomic
      strbuf.h: unify documentation comments beginnings
      struct ref_lock: delete the force_write member
      connect.c: do not leak "conn" after showing diagnosis
      bundle.c: fix memory leak
      builtin/help.c: fix memory leak

Tom G. Christensen (1):
      http: support curl < 7.10.7

Torsten Bögershausen (1):
      t6039: fix broken && chain

Yi EungJun (1):
      http: add Accept-Language header if possible


Version v2.3.10; changes since v2.3.9:
--------------------------------------

Blake Burkhart (2):
      http: limit redirection to protocol-whitelist
      http: limit redirection depth

Jeff King (6):
      transport: add a protocol-whitelist environment variable
      submodule: allow only certain protocols for submodule fetches
      transport: refactor protocol whitelist code
      react to errors in xdi_diff
      xdiff: reject files larger than ~1GB
      merge-file: enforce MAX_XDIFF_SIZE on incoming files

Junio C Hamano (1):
      Git 2.3.10


Version v2.3.9; changes since v2.3.8:
-------------------------------------

Jeff King (4):
      verify_absent: allow filenames longer than PATH_MAX
      notes: use a strbuf in add_non_note
      read_info_alternates: handle paths larger than PATH_MAX
      show-branch: use a strbuf for reflog descriptions

Junio C Hamano (2):
      Git 2.2.3
      Git 2.3.9


Version v2.3.8; changes since v2.3.7:
-------------------------------------

Junio C Hamano (5):
      diff-no-index: DWIM "diff D F" into "diff D/F F"
      diff-no-index: align D/F handling with that of normal Git
      parse_date_basic(): return early when given a bogus timestamp
      parse_date_basic(): let the system handle DST conversion
      Git 2.3.8

Matthieu Moy (2):
      Documentation: change -L:<regex> to -L:<funcname>
      log -L: improve error message on malformed argument

Ossi Herrala (1):
      config: fix settings in default_user_config template


Version v2.3.7; changes since v2.3.6:
-------------------------------------

Junio C Hamano (2):
      push --signed: tighten what the receiving end can ask to sign
      Git 2.3.7

Márcio Almada (1):
      completion: fix global bash variable leak on __gitcompappend

Torsten Bögershausen (1):
      connect.c: ignore extra colon after hostname


Version v2.3.6; changes since v2.3.5:
-------------------------------------

Ivan Ukhov (1):
      parse-options.h: OPTION_{BIT,SET_INT} do not store pointer to defval

Jeff King (7):
      t: translate SIGINT to an exit
      t: redirect stderr GIT_TRACE to descriptor 4
      t: pass GIT_TRACE through Apache
      t5541: move run_with_cmdline_limit to test-lib.sh
      t5551: make EXPENSIVE test cheaper
      cherry-pick: fix docs describing handling of empty commits
      howto: document more tools for recovery corruption

Jonathan Nieder (1):
      fast-import doc: remove suggested 16-parent limit

Julian Gindi (1):
      CodingGuidelines: update 'rough' rule count

Junio C Hamano (1):
      Git 2.3.6

Jérôme Zago (1):
      gitweb.conf.txt: say "build-time", not "built-time"

Kyle J. McKay (1):
      diff-highlight: do not split multibyte characters

Paul Tan (1):
      enter_repo(): fix docs to match code


Version v2.3.5; changes since v2.3.4:
-------------------------------------

Cody A Taylor (1):
      git prompt: use toplevel to find untracked files

Jeff King (15):
      tag: fix some mis-organized options in "-h" listing
      upload-pack: fix transfer.hiderefs over smart-http
      upload-pack: do not check NULL return of lookup_unknown_object
      sha1fd_check: die when we cannot open the file
      clone: initialize atexit cleanup handler earlier
      clone: drop period from end of die_errno message
      filter_ref: avoid overwriting ref->old_sha1 with garbage
      filter_ref: make a copy of extra "sought" entries
      fetch_refs_via_pack: free extra copy of refs
      fetch-pack: remove dead assignment to ref->new_sha1
      t5312: test object deletion code paths in a corrupted repository
      refs: introduce a "ref paranoia" flag
      prune: turn on ref_paranoia flag
      repack: turn on "ref paranoia" when doing a destructive repack
      refs.c: drop curate_packed_refs

John Szakmeister (1):
      contrib/completion: escape the forward slash in __git_match_ctag

Junio C Hamano (5):
      SubmittingPatches: encourage users to use format-patch and send-email
      report_path_error(): move to dir.c
      Update mailmap to spell out "Alexander Kuleshov"
      Prepare for 2.3.5
      Git 2.3.5

Nguyễn Thái Ngọc Duy (1):
      git.txt: list index versions in plain English

Phil Hord (1):
      git-push.txt: clean up force-with-lease wording

SZEDER Gábor (1):
      completion: use __gitcomp_nl() for completing refs

Sebastian Schuberth (2):
      docs: clarify "preserve" option wording for git-pull
      docs: clarify what git-rebase's "-p" / "--preserve-merges" does

Thomas Ackermann (1):
      2.3.2 release notes: typofix

Thomas Gummerer (2):
      t1700: make test pass with index-v4
      read-cache: fix reading of split index

Wilhelm Schuermann (1):
      grep: fix "--quiet" overwriting current output


Version v2.3.4; changes since v2.3.3:
-------------------------------------

Alexander Kuleshov (1):
      git: make was_alias and done_help non-static

Eric Sunshine (2):
      rebase-interactive: suppress whitespace preceding item count
      rebase-interactive: re-word "item count" comment

Junio C Hamano (8):
      Documentation/config.txt: avoid unnecessary negation
      Documentation/config.txt: explain multi-valued variables once
      Documentation/config.txt: describe the structure first and then meaning
      Documentation/config.txt: have a separate "Values" section
      Documentation/config.txt: describe 'color' value type in the "Values" section
      Documentation/config.txt: simplify boolean description in the syntax section
      log --decorate: do not leak "commit" color into the next item
      Git 2.3.4

Karthik Nayak (1):
      git: treat "git -C '<path>'" as a no-op when <path> is empty

Kyle J. McKay (2):
      imap-send: use cURL automatically when NO_OPENSSL defined
      t7510: do not fail when gpg warns about insecure memory

Michael J Gruber (1):
      config,completion: add color.status.unmerged

René Scharfe (2):
      zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw}
      use isxdigit() for checking if a character is a hexadecimal digit

SZEDER Gábor (2):
      completion: add a test for __git_remotes() helper function
      completion: simplify __git_remotes()

Torsten Bögershausen (3):
      connect.c: allow ssh://user@[2001:db8::1]/repo.git
      t5601: add more test cases for IPV6
      t5500: show user name and host in diag-url


Version v2.3.3; changes since v2.3.2:
-------------------------------------

Anders Kaseorg (1):
      t5516: correct misspelled pushInsteadOf

Ben Walton (1):
      kwset: use unsigned char to store values with high-bit set

Jeff King (5):
      git_connect: let user override virtual-host we send to daemon
      t5570: test git-daemon's --interpolated-path option
      daemon: sanitize incoming virtual hostname
      diffcore-rename: split locate_rename_dst into two functions
      diffcore-rename: avoid processing duplicate destinations

Johannes Sixt (1):
      test_ln_s_add: refresh stat info of fake symbolic links

Junio C Hamano (11):
      apply: reject input that touches outside the working area
      apply: do not read from the filesystem under --index
      apply: do not read from beyond a symbolic link
      apply: do not touch a file beyond a symbolic link
      t4008: correct stale comments
      t9300: correct expected object names
      t4010: correct expected object names
      tests: do not borrow from COPYING and README from the real source
      t/diff-lib: check exact object names in compare_diff_raw
      t4008: modernise style
      Git 2.3.3

Michael J Gruber (1):
      git-remote.txt: describe behavior without --tags and --no-tags

Michal Sojka (1):
      submodule: improve documentation of update subcommand

Mikko Rapeli (1):
      Documentation/git-clean.txt: document that -f may need to be given twice

Mårten Kongstad (1):
      diff --shortstat --dirstat: remove duplicate output

Nguyễn Thái Ngọc Duy (1):
      grep: correct help string for --exclude-standard

René Scharfe (2):
      daemon: look up client-supplied hostname lazily
      daemon: use callback to build interpolated path


Version v2.3.2; changes since v2.3.1:
-------------------------------------

Aleksander Boruch-Gruszecki (1):
      merge-file: correctly open files when in a subdir

Aleksey Vasenev (1):
      wincred: fix get credential if username has "@"

Alexander Kuleshov (1):
      Git.pm: two minor typo fixes

Eric Sunshine (1):
      builtin/blame: destroy initialized commit_info only

Jeff King (8):
      t/lib-httpd: switch SANITY check for NOT_ROOT
      t/lib-gpg: include separate public keys in keyring.gpg
      t/lib-gpg: sanity-check that we can actually sign
      config: do not ungetc EOF
      decimal_width: avoid integer overflow
      config_buf_ungetc: warn when pushing back a random character
      for_each_loose_file_in_objdir: take an optional strbuf path
      fast-import: avoid running end_packfile recursively

Jonathon Mah (1):
      sha1_file: fix iterating loose alternate objects

Junio C Hamano (7):
      tests: correct misuses of POSIXPERM
      config.txt: clarify that add.ignore-errors is deprecated
      config.txt: mark deprecated variables more prominently
      Documentation/git-remote.txt: stress that set-url is not for triangular
      CodingGuidelines: describe naming rules for configuration variables
      Prepare for 2.3.2
      Git 2.3.2

Kirill A. Shutemov (1):
      rebase -i: use full object name internally throughout the script

Kyle J. McKay (3):
      git-compat-util: do not step on MAC_OS_X_VERSION_MIN_REQUIRED
      git-send-email.perl: support no- prefix with older GetOptions
      Git::SVN::*: avoid premature FileHandle closure

Matthieu Moy (2):
      Documentation/config.txt: document mailinfo.scissors
      Documentation/git-am.txt: mention mailinfo.scissors config variable

Mike Hommey (2):
      transport-helper: do not request symbolic refs to remote helpers
      transport-helper: fix typo in error message when --signed is not supported

Patrick Steinhardt (1):
      git-submodule.sh: fix '/././' path normalization

Ramsay Jones (1):
      git-compat-util.h: remove redundant code

René Scharfe (4):
      connect: use strcmp() for string comparison
      for-each-ref: use skip_prefix() to avoid duplicate string comparison
      pretty: use starts_with() to check for a prefix
      sha1_name: use strlcpy() to copy strings

Ryuichi Kokubo (1):
      git-svn: fix localtime=true on non-glibc environments

Stefan Beller (2):
      hex.c: reduce memory footprint of sha1_to_hex static buffers
      read-cache.c: free cache entry when refreshing fails

Tom G. Christensen (2):
      Makefile: handle broken curl version number in version check
      ewah: fix building with gcc < 3.4.0

Torsten Bögershausen (1):
      test-lib.sh: set prerequisite SANITY by testing what we really need

Дилян Палаузов (1):
      do not include the same header twice


Version v2.3.1; changes since v2.3.0:
-------------------------------------

Alexander Kuleshov (1):
      add -i: return from list_and_choose if there is no candidate

Doug Kelly (2):
      t4255: test am submodule with diff.submodule
      format-patch: ignore diff.submodule setting

Jeff King (7):
      git-compat-util: add xstrdup_or_null helper
      builtin/apply.c: use xstrdup_or_null instead of null_strdup
      builtin/commit.c: use xstrdup_or_null instead of envdup
      use xstrdup_or_null to replace ternary conditionals
      dumb-http: do not pass NULL path to parse_pack_index
      read_and_strip_branch: fix typo'd address-of operator
      do not check truth value of flex arrays

Jonathan Nieder (1):
      rerere: error out on autoupdate failure

Junio C Hamano (6):
      apply.c: typofix
      apply: make update_pre_post_images() sanity check the given postlen
      apply: count the size of postimage correctly
      Documentation: what does "git log --indexed-objects" even mean?
      diff-format doc: a score can follow M for rewrite
      Git 2.3.1

Lukas Fleischer (1):
      blame.c: fix garbled error message

Michael J Gruber (2):
      commit: reword --author error message
      git-push.txt: document the behavior of --repo

brian m. carlson (1):
      remote-curl: fall back to Basic auth if Negotiate fails


Version v2.3.0; changes since v2.3.0-rc2:
-----------------------------------------

Alex Henrie (1):
      l10n: ca.po: Fix trailing whitespace

Junio C Hamano (1):
      Git 2.3


Version v2.3.0-rc2; changes since v2.3.0-rc1:
---------------------------------------------

Alex Henrie (1):
      l10n: ca.po: update translation

Alexander Kuleshov (1):
      cat-file: use "type" and "size" from outer scope

Benedikt Heine (1):
      l10n: de.po: fix typo

Jean-Noël Avila (2):
      l10n: fr.po v2.3.0 round 1
      l10n: fr.po v2.3.0 round 2

Jiang Xin (5):
      l10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)
      l10n: zh_CN: translations for git v2.3.0-rc0
      l10n: git.pot: v2.3.0 round 2 (3 updated)
      l10n: zh_CN: various fixes on command arguments
      l10n: correct indentation of show-branch usage

Joan Perals (1):
      l10n: ca.po: various fixes

Johannes Sixt (1):
      t1050-large: generate large files without dd

Junio C Hamano (1):
      Git 2.3.0-rc2

Kacper Kornet (1):
      Fix unclosed here document in t3301.sh

Michael J Gruber (2):
      l10n: de.po: translate "leave behind" correctly
      l10n: de.po: correct singular form

Peter Krefting (2):
      l10n: sv.po: Update Swedish translation (2298t0f0u)
      l10n: sv.po: Update Swedish translation (2298t0f0u)

Ralf Thielow (4):
      l10n: de.po: translate "track" as "versionieren"
      l10n: de.po: fix typo
      l10n: de.po: translate 13 new messages
      l10n: de.po: translate 3 messages

Sven van Haastregt (1):
      Documentation: fix version numbering

Trần Ngọc Quân (2):
      l10n: vi.po(2298t): Updated and change Plural-Forms
      l10n: vi.po(2298t): Updated 3 new strings


Version v2.3.0-rc1; changes since v2.3.0-rc0:
---------------------------------------------

Adam Williamson (1):
      correct smtp-ssl-cert-path description

Alexander Kuleshov (4):
      show-branch: line-wrap show-branch usage
      git.c: remove unnecessary #includes
      cat-file: remove unused includes
      Documentation: list long options for -v and -n

Jeff King (4):
      t1301: set umask in reflog sharedrepository=group test
      update-server-info: create info/* with mode 0666
      http-push: trim trailing newline from remote symref
      parse_color: fix return value for numeric color values 0-8

Jess Austin (1):
      git-prompt.sh: allow to hide prompt for ignored pwd

Johannes Schindelin (2):
      git remote: allow adding remotes agreeing with url.<...>.insteadOf
      Add a regression test for 'git remote add <existing> <same-url>'

Junio C Hamano (2):
      Fifth batch for 2.3 cycle
      Git 2.3.0-rc1

Kyle J. McKay (3):
      log.c: fix translation markings
      imap-send.c: support GIT_CURL_VERBOSE
      imap-send.c: set CURLOPT_USE_SSL to CURLUSESSL_TRY

Matthieu Moy (1):
      git-completion: add --autostash for 'git rebase'

Philip Oakley (2):
      doc: core.ignoreStat clarify the --assume-unchanged effect
      doc: core.ignoreStat update, and clarify the --assume-unchanged effect

Ralf Thielow (1):
      show-branch: fix indentation of usage string

Ramkumar Ramachandra (2):
      Git::SVN: handle missing ref_id case correctly
      git-svn: make it play nicely with submodules

Raphael Kubo da Costa (1):
      for-each-ref: always check stat_tracking_info()'s return value

Reuben Hawkins (3):
      configure.ac: check 'tv_nsec' field in 'struct stat'
      configure.ac: check for clock_gettime and CLOCK_MONOTONIC
      configure.ac: check for HMAC_CTX_cleanup

Richard Hansen (3):
      git-prompt.sh: if pc mode, immediately set PS1 to a plain prompt
      test-lib: use 'test ...' instead of '[ ... ]'
      test-lib.sh: do tests for color support after changing HOME

Steffen Prohaska (1):
      subtree: fix AsciiDoc list item continuation

Tony Finch (1):
      git-prompt: preserve value of $? in all cases


Version v2.3.0-rc0; changes since v2.2.3:
-----------------------------------------

Alfred Perlstein (1):
      git-svn: support for git-svn propset

Beat Bolli (5):
      update_unicode.sh: simplify output capture
      update_unicode.sh: set UNICODE_DIR only once
      update_unicode.sh: shorten uniset invocation path
      update_unicode.sh: make the output structure visible
      update_unicode.sh: delete the command group

Ben Walton (1):
      t0090: tweak awk statement for Solaris /usr/xpg4/bin/awk

Bernhard Reiter (2):
      imap-send: use parse options API to determine verbosity
      git-imap-send: use libcurl for implementation

Christian Couder (5):
      commit: make ignore_non_trailer() non static
      trailer: reuse ignore_non_trailer() to ignore conflict lines
      trailer: add test with an old style conflict block
      bisect: parse revs before passing them to check_expected_revs()
      bisect: add test to check that revs are properly parsed

Christian Hesse (4):
      tests: create gpg homedir on the fly
      tests: skip RFC1991 tests for gnupg 2.1
      tests: replace binary GPG keyrings with ASCII-armored keys
      tests: make comment on GPG keyring match the code

Dan Wyand (1):
      git-sh-setup.sh: use dashdash with basename call

David Aguilar (4):
      mergetool--lib: remove use of $status global
      difftool--helper: add explicit exit statement
      mergetool: simplify conditionals
      mergetools: stop setting $status in merge_cmd()

David Michael (1):
      compat: convert modes to use portable file type values

Eric Sunshine (7):
      git-compat-util: suppress unavoidable Apple-specific deprecation warnings
      t2004: modernize style
      t2004: drop unnecessary write-tree/read-tree
      t2004: standardize file naming in symlink test
      t2004: demonstrate broken relative path printing
      checkout-index: fix --temp relative path mangling
      SubmittingPatches: explain rationale for using --notes with format-patch

Jeff King (13):
      parse_color: refactor color storage
      parse_color: support 24-bit RGB values
      parse_color: recognize "no$foo" to clear the $foo attribute
      diff-highlight: allow configurable colors
      credential: let helpers tell us to quit
      prompt: respect GIT_TERMINAL_PROMPT to disable terminal prompts
      fsck: properly bound "invalid tag name" error message
      parse_color: drop COLOR_BACKGROUND macro
      pkt-line: allow writing of LARGE_PACKET_MAX buffers
      t: support clang/gcc AddressSanitizer
      commit: loosen ident checks when generating template
      commit: always populate GIT_AUTHOR_* variables
      add--interactive: leave main loop on read error

Jim Hill (1):
      pre-push.sample: remove unnecessary and misleading IFS=' '

Johan Herland (9):
      builtin/notes: fix premature failure when trying to add the empty blob
      t3301: verify that 'git notes' removes empty notes by default
      builtin/notes: improve naming
      builtin/notes: refactor note file path into struct note_data
      builtin/notes: simplify early exit code in add()
      builtin/notes: split create_note() to clarify add vs. remove logic
      builtin/notes: add --allow-empty, to allow storing empty notes
      notes: empty notes should be shown by 'git log'
      t3301: modernize style

Johannes Schindelin (2):
      receive-pack: add another option for receive.denyCurrentBranch
      test-hashmap: squelch gcc compiler warning

Johannes Sixt (1):
      t5000 on Windows: do not mistake "sh.exe" as "sh"

Junio C Hamano (30):
      checkout: report upstream correctly even with loosely defined branch.*.merge
      clone: --dissociate option to mark that reference is only temporary
      diff -B -M: fix output for "copy and then rewrite" case
      builtin/merge.c: drop a parameter that is never used
      merge & sequencer: unify codepaths that write "Conflicts:" hint
      strbuf_add_commented_lines(): avoid SP-HT sequence in commented lines
      builtin/commit.c: extract ignore_non_trailer() helper function
      merge & sequencer: turn "Conflicts:" hint into a comment
      bisect: clean flags after checking merge bases
      get_merge_bases(): always clean-up object flags
      unpack_trees: plug leakage of o->result
      mergetool--lib: remove no-op assignment to $status from setup_user_tool
      SubmittingPatches: refer to t/README for tests
      t/README: justify why "! grep foo" is sufficient
      t9001: style modernisation phase #1
      t9001: style modernisation phase #2
      t9001: style modernisation phase #3
      t9001: style modernisation phase #4
      t9001: style modernisation phase #5
      system_path(): always return free'able memory to the caller
      t5516: more tests for receive.denyCurrentBranch=updateInstead
      run-command.c: retire unused run_hook_with_custom_index()
      t3102: document that ls-tree does not yet support negated pathspec
      t3102: style modernization
      First batch for 2.3 cycle
      tests: squelch noise from GPG machinery set-up
      Second batch for 2.3 cycle
      Third batch for 2.3 cycle
      Fourth batch for 2.3 cycle
      Git 2.3.0-rc0

Justin Guenther (1):
      git-prompt.sh: make $f local to __git_eread()

Karsten Blees (1):
      pack-bitmap: do not use gcc packed attribute

Luis Henriques (2):
      send-email: add --[no-]xmailer option
      test/send-email: --[no-]xmailer tests

Michael Haggerty (10):
      cmd_config(): make a copy of path obtained from git_path()
      prune_remote(): exit early if there are no stale references
      prune_remote(): initialize both delete_refs lists in a single loop
      prune_remote(): sort delete_refs_list references en masse
      repack_without_refs(): make the refnames argument a string_list
      prune_remote(): rename local variable
      prune_remote(): iterate using for_each_string_list_item()
      sort_string_list(): rename to string_list_sort()
      t1400: add some more tests of "update-ref --stdin"'s verify command
      update-ref: fix "verify" command with missing <oldvalue>

Michael J Gruber (4):
      t3200-branch: test -M
      check-ignore: clarify treatment of tracked files
      gitignore.txt: do not suggest assume-unchanged
      branch: allow -f with -m and -d

Nguyễn Thái Ngọc Duy (6):
      lockfile.c: store absolute path
      tree.c: update read_tree_recursive callback to pass strbuf as base
      ls-tree: remove path filtering logic in show_tree
      ls-tree: disable negative pathspec because it's not supported
      index-pack: terminate object buffers with NUL
      index-format.txt: add a missing closing quote

Onno Kortmann (1):
      Show number of TODO items for interactive rebase

Paolo Bonzini (4):
      git-send-email: delay creation of MIME headers
      git-send-email: add --transfer-encoding option
      git-mailinfo: add --message-id
      git-am: add --message-id/--no-message-id

Paul Smith (1):
      git-new-workdir: don't fail if the target directory is empty

Peter van der Does (1):
      Update documentation occurrences of filename .sh

Philip Oakley (1):
      doc: make clear --assume-unchanged's user contract

Ralf Thielow (3):
      builtin/push.c: fix description of --recurse-submodules option
      for-each-ref: correct spelling of Tcl in option description
      completion: add git-tag options

Ramsay Jones (2):
      git-compat-util.h: don't define _XOPEN_SOURCE on cygwin
      t0050-*.sh: mark the rename (case change) test as passing

René Scharfe (6):
      use args member of struct child_process
      use strbuf_complete_line() for adding a newline if needed
      commit-tree: simplify parsing of option -S using skip_prefix()
      merge: release strbuf after use in suggest_conflicts()
      transport: simplify duplicating a substring in transport_get() using xmemdupz()
      refs: plug strbuf leak in lock_ref_sha1_basic()

Ronnie Sahlberg (1):
      lock_ref_sha1_basic: do not die on locking errors

Slavomir Vlcek (3):
      builtin: move builtin retrieval to get_builtin()
      apply: fix typo in an error message
      Documentation/git-stripspace: add synopsis for --comment-lines

Stefan Beller (5):
      string_list: document string_list_(insert,lookup)
      mailmap: use higher level string list functions
      string_list: remove string_list_insert_at_index() from its API
      t5400: remove dead code
      Documentation/SubmittingPatches: unify whitespace/tabs for the DCO

Thomas Quinot (1):
      git_connect: set ssh shell command in GIT_SSH_COMMAND

Tony Finch (1):
      git-prompt: preserve value of $? inside shell prompt

Torsten Bögershausen (2):
      init-db: improve the filemode trustability check
      t0027: check the eol conversion warnings

brian m. carlson (3):
      Documentation: add missing article in rev-list-options.txt
      rev-list: add an option to mark fewer edges as uninteresting
      pack-objects: use --objects-edge-aggressive for shallow repos

Роман Донченко (2):
      send-email: align RFC 2047 decoding more closely with the spec
      send-email: handle adjacent RFC 2047-encoded words properly


Version v2.2.3; changes since v2.2.2:
-------------------------------------

Jeff King (4):
      verify_absent: allow filenames longer than PATH_MAX
      notes: use a strbuf in add_non_note
      read_info_alternates: handle paths larger than PATH_MAX
      show-branch: use a strbuf for reflog descriptions

Junio C Hamano (1):
      Git 2.2.3


Version v2.2.2; changes since v2.2.1:
-------------------------------------

Alexander Kuleshov (1):
      clean: typofix

Jeff King (17):
      pass TIME_DATE_NOW to approxidate future-check
      checkout $tree: do not throw away unchanged index entries
      approxidate: allow ISO-like dates far in the future
      Makefile: have perl scripts depend on NO_PERL setting
      t0090: mark add-interactive test with PERL prerequisite
      t960[34]: mark cvsimport tests as requiring perl
      gitweb: hack around CGI's list-context param() handling
      docs: describe ANSI 256-color mode
      config: fix parsing of "git config --get-color some.key -1"
      t4026: test "normal" color
      push: truly use "simple" as default, not "upstream"
      for_each_reflog_ent_reverse: fix newlines on block boundaries
      for_each_reflog_ent_reverse: turn leftover check into assertion
      read_packed_refs: use a strbuf for reading lines
      read_packed_refs: pass strbuf to parse_ref_line
      read_packed_refs: use skip_prefix instead of static array
      is_hfs_dotgit: loosen over-eager match of \u{..47}

Johannes Sixt (1):
      Windows: correct detection of EISDIR in mingw_open()

Jonathan Nieder (2):
      Makefile: simplify by using SCRIPT_{PERL,SH}_GEN macros
      Makefile: have python scripts depend on NO_PYTHON setting

Junio C Hamano (2):
      Prepare for 2.2.2
      Git 2.2.2

Michael Haggerty (1):
      create_default_files(): don't set u+x bit on $GIT_DIR/config

Michael J Gruber (1):
      add: ignore only ignored files

Mike Hommey (1):
      sha1_name: avoid unnecessary sha1 lookup in find_unique_abbrev

René Scharfe (2):
      use labs() for variables of type long instead of abs()
      use labs() for variables of type long instead of abs()

Ronald Wampler (1):
      git-am.txt: --ignore-date flag is not passed to git-apply

brian m. carlson (1):
      Documentation: change "gitlink" typo in git-push


Version v2.2.1; changes since v2.2.0:
-------------------------------------

Hartmut Henkel (1):
      l10n: de.po: fix typos

Jeff King (8):
      unpack-trees: propagate errors adding entries to the index
      read-tree: add tests for confusing paths like ".." and ".git"
      verify_dotfile(): reject .git case-insensitively
      t1450: refactor ".", "..", and ".git" fsck tests
      fsck: notice .git case-insensitively
      utf8: add is_hfs_dotgit() helper
      read-cache: optionally disallow HFS+ .git variants
      fsck: complain about HFS+ ".git" aliases in trees

Johannes Schindelin (3):
      path: add is_ntfs_dotgit() helper
      read-cache: optionally disallow NTFS .git variants
      fsck: complain about NTFS ".git" aliases in trees

Junio C Hamano (6):
      Start post 2.2 cycle
      Git 1.8.5.6
      Git 1.9.5
      Git 2.0.5
      Git 2.1.4
      Git 2.2.1


Version v2.2.0; changes since v2.2.0-rc3:
-----------------------------------------

Junio C Hamano (1):
      Git 2.2

Marc Branchaud (1):
      RelNotes: spelling & grammar tweaks


Version v2.2.0-rc3; changes since v2.2.0-rc2:
---------------------------------------------

Alex Henrie (1):
      l10n: Update Catalan translation

Christian Couder (2):
      trailer: ignore comment lines inside the trailers
      trailer: display a trailer without its trailing newline

David Aguilar (1):
      difftool: honor --trust-exit-code for builtin tools

Jiang Xin (3):
      l10n: git.pot: v2.2.0 round 2 (1 updated)
      l10n: batch updates for one trivial change
      l10n: remove a superfluous translation for push.c

Junio C Hamano (2):
      Documentation/git-commit: clarify that --only/--include records the working tree contents
      Git 2.2.0-rc3

Max Horn (1):
      doc: add some crossrefs between manual pages

Ralf Thielow (4):
      l10n: de.po: use imperative form for command options
      l10n: de.po: translate 62 new messages
      l10n: de.po: translate 2 new messages
      l10n: de.po: translate 2 messages

Slavomir Vlcek (1):
      SubmittingPatches: final submission is To: maintainer and CC: list

Stefan Beller (1):
      l10n: de.po: Fixup one translation

Stefan Naewe (1):
      gittutorial: fix output of 'git status'

Thomas Ackermann (1):
      gittutorial.txt: remove reference to ancient Git version

Torsten Bögershausen (1):
      t5705: the file:// URL should be absolute


Version v2.2.0-rc2; changes since v2.2.0-rc1:
---------------------------------------------

Alexander Shopov (1):
      l10n: Updated Bulgarian translation of git (2296t,0f,0u)

Jean-Noël Avila (1):
      l10n: fr.po (2296t) update for version 2.2.0

Jeff King (1):
      t1410: fix breakage on case-insensitive filesystems

Jiang Xin (2):
      l10n: git.pot: v2.2.0 round 1 (62 new, 23 removed)
      l10n: zh_CN: translations for git v2.2.0-rc0

John Szakmeister (1):
      diff-highlight: exit when a pipe is broken

Junio C Hamano (2):
      Update draft release notes to 2.2
      Git 2.2.0-rc2

Nicolas Dermine (1):
      config.txt: fix typo

Peter Krefting (1):
      l10n: sv.po: Update Swedish translation (2296t0f0u)

René Scharfe (2):
      trailer: use CHILD_PROCESS_INIT in apply_command()
      run-command: use void to declare that functions take no parameters

Thomas Quinot (1):
      Documentation/config.txt: fix minor typo

Trần Ngọc Quân (1):
      l10n: vi.po: Update new message strings


Version v2.2.0-rc1; changes since v2.2.0-rc0:
---------------------------------------------

Ben North (1):
      gitignore.txt: fix spelling of "backslash"

Jeff King (5):
      cache-tree: avoid infinite loop on zero-entry tree
      bundle: split out ref writing from bundle_create
      fetch: load all default config at startup
      ignore stale directories when checking reflog existence
      docs/credential-store: s/--store/--file/

Junio C Hamano (3):
      bundle: split out a helper function to create pack data
      bundle: split out a helper function to compute and write prerequisites
      Git 2.2.0-rc1

Matthieu Moy (1):
      RelNotes/2.2.0.txt: fix minor typos

René Scharfe (1):
      use child_process_init() to initialize struct child_process variables

Thomas Ackermann (1):
      Documentation: typofixes

Tzvetan Mikov (1):
      line-log: fix crash when --first-parent is used


Version v2.2.0-rc0; changes since v2.1.4:
-----------------------------------------

Alex Henrie (1):
      grammofix in user-facing messages

Arjun Sreedharan (1):
      calloc() and xcalloc() takes nmemb and then size

Beat Bolli (1):
      pretty: provide a strict ISO 8601 date format

Ben Walton (2):
      t/lib-credential: use write_script
      trace.c: do not mark getnanotime() as "inline"

Bernhard Reiter (3):
      http.c: die if curl_*_init fails
      git-imap-send: simplify tunnel construction
      imap-send.c: imap_folder -> imap_server_conf.folder

Brian Gernhardt (1):
      receive-pack::hmac_sha1(): copy the entire SHA-1 hash out

Brice Lambson (1):
      MinGW: update tests to handle a native eol of crlf

Charles Bailey (2):
      mergetool: don't require a work tree for --tool-help
      difftool: don't assume that default sh is sane

Christian Couder (11):
      trailer: add data structures and basic functions
      trailer: process trailers from input message and arguments
      trailer: read and process config information
      trailer: process command line trailer arguments
      trailer: parse trailers from file or stdin
      trailer: put all the processing together and print
      trailer: add interpret-trailers command
      trailer: add tests for "git interpret-trailers"
      trailer: execute command from 'trailer.<name>.command'
      trailer: add tests for commands in config file
      Documentation: add documentation for 'git interpret-trailers'

David Aguilar (19):
      stylefix: asterisks stick to the variable, not the type
      cleanups: ensure that git-compat-util.h is included first
      Documentation: a note about stdout for git rev-parse --verify --quiet
      t1503: use test_must_be_empty
      refs: make rev-parse --quiet actually quiet
      stash: prefer --quiet over shell redirection of the standard error stream
      completion: add --show-signature for log and show
      t7610-mergetool: use tabs instead of a mix of tabs and spaces
      t7610-mergetool: add missing && and remove commented-out code
      t7610-mergetool: prefer test_config over git config
      test-lib-functions: adjust style to match CodingGuidelines
      mergetool: use more conservative temporary filenames
      git-sh-setup: move GIT_DIR initialization into a function
      t7610-mergetool: use test_config to isolate tests
      test-lib-functions: adjust style to match CodingGuidelines
      mergetool: use more conservative temporary filenames
      mergetool: add an option for writing to a temporary directory
      t7610-mergetool: add test cases for mergetool.writeToTemp
      difftool: add support for --trust-exit-code

David Michael (3):
      git-compat-util.h: support variadic macros with the XL C compiler
      Makefile: reorder linker flags in the git executable rule
      compat/bswap.h: detect endianness from XL C compiler macros

David Turner (4):
      cache-tree: create/update cache-tree on checkout
      test-dump-cache-tree: invalid trees are not errors
      cache-tree: subdirectory tests
      cache-tree: Write updated cache-tree after commit

Eric Wong (15):
      git svn: info: correctly handle absolute path args
      git svn: find-rev allows short switches for near matches
      git-svn: delay term initialization
      git-svn: reduce check_cherry_pick cache overhead
      git-svn: cache only mergeinfo revisions
      git-svn: remove mergeinfo rev caching
      git-svn: reload RA every log-window-size
      git-svn: remove unnecessary DESTROY override
      git-svn: save a little memory as fetch progresses
      git-svn: disable _rev_list memoization
      Git.pm: add specified name to tempfile template
      git-svn: prepare SVN::Ra config pieces once
      git-svn: (cleanup) remove editor param passing
      git-svn: add space after "W:" prefix in warning
      git-svn: use SVN::Ra::get_dir2 when possible

Etienne Buira (2):
      index-pack: fix compilation with NO_PTHREADS
      Handle atexit list internaly for unthreaded builds

Harry Jeffery (1):
      pretty: add %D format specifier

Ian Liu Rodrigues (1):
      Makefile: fix some typos in the preamble

Jaime Soriano Pastor (2):
      read_index_from(): catch out of order entries when reading an index file
      read_index_unmerged(): remove unnecessary loop index adjustment

Jakob Stoklund Olesen (2):
      git-svn: only look at the new parts of svn:mergeinfo
      git-svn: only look at the root path for svn:mergeinfo

Jeff King (54):
      stash: default listing to working-tree diff
      subtree: make "all" default target of Makefile
      http: style fixes for curl_multi_init error check
      Makefile: use `find` to determine static header dependencies
      log-tree: make add_name_decoration a public function
      log-tree: make name_decoration hash static
      Makefile: drop CHECK_HEADER_DEPENDENCIES code
      log-tree: use FLEX_ARRAY in name_decoration
      commit: provide a function to find a header in a buffer
      record_author_date(): fix memory leak on malformed commit
      record_author_date(): use find_commit_header()
      date: use strbufs in date-formatting functions
      teach fast-export an --anonymize option
      docs/fast-export: explain --anonymize more completely
      determine_author_info(): reuse parsing functions
      determine_author_info(): copy getenv output
      refs: write packed_refs file using stdio
      refs: speed up is_refname_available
      prune-packed: fix minor memory leak
      make update-server-info more robust
      server-info: clean up after writing info/packs
      credential-cache: close stderr in daemon process
      branch: clean up commit flags after merge-filter walk
      t5304: use test_path_is_* instead of "test -f"
      t5304: use helper to report failure of "test foo = bar"
      test-lib.sh: support -x option for shell-tracing
      color_parse: do not mention variable name in error message
      foreach_alt_odb: propagate return value from callback
      isxdigit: cast input to unsigned char
      object_array: factor out slopbuf-freeing logic
      object_array: add a "clear" function
      clean up name allocation in prepare_revision_walk
      reachable: use traverse_commit_list instead of custom walk
      reachable: reuse revision.c "add all reflogs" code
      prune: factor out loose-object directory traversal
      reachable: mark index blobs as SEEN
      prune-packed: use for_each_loose_file_in_objdir
      count-objects: do not use xsize_t when counting object size
      count-objects: use for_each_loose_file_in_objdir
      sha1_file: add for_each iterators for loose and packed objects
      prune: keep objects reachable from recent objects
      pack-objects: refactor unpack-unreachable expiration check
      pack-objects: match prune logic for discarding objects
      write_sha1_file: freshen existing objects
      make add_object_array_with_context interface more sane
      traverse_commit_list: support pending blobs/trees with paths
      t5516: test pushing a tag of an otherwise unreferenced blob
      rev-list: document --reflog option
      rev-list: add --indexed-objects option
      reachable: use revision machinery's --indexed-objects code
      pack-objects: use argv_array
      repack: pack objects mentioned by the index
      pack-objects: double-check options before discarding objects
      drop add_object_array_with_mode

Johannes Schindelin (6):
      Refactor type_from_string() to allow continuing after detecting an error
      fsck_object(): allow passing object data separately from the object itself
      Make sure fsck_commit_buffer() does not run out of the buffer
      fsck: check tag objects' headers
      Add regression tests for stricter tag fsck'ing
      Make sure that index-pack --strict checks tag objects

Johannes Sixt (3):
      t9300: use test_cmp_bin instead of test_cmp to compare binary files
      mingw.h: add dummy functions for sigset_t operations
      difftool--helper: exit when reading a prompt answer fails

John Szakmeister (1):
      completion: silence "fatal: Not a git repository" error

Jonas 'Sortie' Termansen (3):
      git-compat-util.h: add missing semicolon after struct itimerval
      autoconf: check for struct itimerval
      autoconf: check for setitimer()

Jonathan Nieder (10):
      i18n: treat "make pot" as an explicitly-invoked target
      update-ref --stdin: narrow scope of err strbuf
      update-ref --stdin: pass transaction around explicitly
      pass config slots as pointers instead of offsets
      mv test: recreate mod/ directory instead of relying on stale copy
      branch -d: avoid repeated symref resolution
      packed-ref cache: forbid dot-components in refnames
      refs.c: do not permit err == NULL
      lockfile: remove unable_to_lock_error
      ref_transaction_commit: bail out on failure to remove a ref

Junio C Hamano (55):
      tests: drop GIT_*_TIMING_TESTS environment variable support
      lockfile: allow reopening a closed but still locked file
      test prerequisites: eradicate NOT_FOO
      test prerequisites: enumerate with commas
      config.mak.uname: add hint on uname_R for MacOS X
      Start the post-2.1 cycle
      cache-tree: do not try to use an invalidated subtree info to build a tree
      parse-options: detect attempt to add a duplicate short option name
      Update draft release notes to 2.2
      Update draft release notes to 2.2
      hash-object: reduce file-scope statics
      hash-object: pass 'write_object' as a flag
      hash-object: add --literally option
      t1450: make sure fsck detects a malformed tagger line
      receive-pack: do not overallocate command structure
      receive-pack: parse feature request a bit earlier
      receive-pack: do not reuse old_sha1[] for other things
      receive-pack: factor out queueing of command
      send-pack: move REF_STATUS_REJECT_NODELETE logic a bit higher
      send-pack: refactor decision to send update per ref
      send-pack: always send capabilities
      send-pack: factor out capability string generation
      receive-pack: factor out capability string generation
      send-pack: rename "new_refs" to "need_pack_data"
      send-pack: refactor inspecting and resetting status and sending commands
      send-pack: clarify that cmds_sent is a boolean
      gpg-interface: move parse_gpg_output() to where it should be
      gpg-interface: move parse_signature() to where it should be
      pack-protocol doc: typofix for PKT-LINE
      push: the beginning of "git push --signed"
      receive-pack: GPG-validate push certificates
      send-pack: send feature request on push-cert packet
      signed push: remove duplicated protocol info
      signed push: add "pushee" header to push certificate
      receive-pack: allow hooks to ignore its standard input stream
      signed push: fortify against replay attacks
      signed push: teach smart-HTTP to pass "git push --signed" around
      signed push: allow stale nonce in stateless mode
      Update draft release notes to 2.2
      t7004: give the test a bit more stack space
      Update draft release notes to 2.2
      Update draft release notes to 2.2
      Update draft release notes to 2.2
      completion: use "git -C $there" instead of (cd $there && git ...)
      pack-objects: set number of threads before checking and warning
      t1308: fix broken here document in test script
      Update draft release notes to 2.2
      reflog test: test interaction with detached HEAD
      Revert "archive: honor tar.umask even for pax headers"
      Update draft release notes to 2.2
      mergetool: rename bc3 to bc
      Update draft release notes to 2.2
      Update draft release notes to 2.2
      Update draft release notes to 2.2
      Git 2.2.0-rc0

Kyle J. McKay (1):
      config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems

Lawrence Velázquez (1):
      git-svn.txt: Remove mentions of repack options

Linus Arver (7):
      Documentation: git-init: typographical fixes
      Documentation: git-init: list items facelift
      Documentation: git-init: template directory: reword
      Documentation: git-init: --separate-git-dir: clarify
      Documentation: git-init: reword parenthetical statements
      Documentation: git-init: template directory: reword and cross-reference
      Documentation: git-init: flesh out example

Matthias Rüster (2):
      rerere.h: mark string for translation
      builtin/log.c: mark strings for translation

Matthieu Moy (7):
      config --global --edit: create a template file if needed
      home_config_paths(): let the caller ignore xdg path
      commit: advertise config --global --edit on guessed identity
      config.c: mark error and warnings strings for translation
      config.c: fix accuracy of line number in errors
      builtin/log.c: fix minor memory leak
      merge, pull: stop advising 'commit -a' in case of conflict

Max Kirillov (2):
      gitk: Show detached HEAD if --all is specified
      gitk: Remove boilerplate for configuration variables

Maxim Bublis (1):
      contrib/svn-fe: fix Makefile

Michael Haggerty (41):
      unable_to_lock_die(): rename function from unable_to_lock_index_die()
      api-lockfile: revise and expand the documentation
      close_lock_file(): exit (successfully) if file is already closed
      rollback_lock_file(): do not clear filename redundantly
      rollback_lock_file(): exit early if lock is not active
      rollback_lock_file(): set fd to -1
      lockfile: unlock file if lockfile permissions cannot be adjusted
      hold_lock_file_for_append(): release lock on errors
      lock_file(): always initialize and register lock_file object
      lockfile.c: document the various states of lock_file objects
      cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
      delete_ref_loose(): don't muck around in the lock_file's filename
      prepare_index(): declare return value to be (const char *)
      lock_file(): exit early if lockfile cannot be opened
      remove_lock_file(): call rollback_lock_file()
      commit_lock_file(): inline temporary variable
      commit_lock_file(): die() if called for unlocked lockfile object
      close_lock_file(): if close fails, roll back
      commit_lock_file(): rollback lock file on failure to rename
      api-lockfile: document edge cases
      dump_marks(): remove a redundant call to rollback_lock_file()
      git_config_set_multivar_in_file(): avoid call to rollback_lock_file()
      lockfile: avoid transitory invalid states
      struct lock_file: declare some fields volatile
      try_merge_strategy(): remove redundant lock_file allocation
      try_merge_strategy(): use a statically-allocated lock_file object
      commit_lock_file(): use a strbuf to manage temporary space
      lockfile: change lock_file::filename into a strbuf
      resolve_symlink(): use a strbuf for internal scratch space
      resolve_symlink(): take a strbuf parameter
      trim_last_path_component(): replace last_path_elm()
      commit_lock_file_to(): refactor a helper out of commit_lock_file()
      lockfile: rename LOCK_NODEREF to LOCK_NO_DEREF
      lockfile.c: rename static functions
      get_locked_file_path(): new function
      hold_lock_file_for_append(): restore errno before returning
      hold_locked_index(): move from lockfile.c to read-cache.c
      lockfile.h: extract new header file for the functions in lockfile.c
      fdopen_lock_file(): access a lockfile using stdio
      dump_marks(): reimplement using fdopen_lock_file()
      commit_packed_refs(): reimplement using fdopen_lock_file()

Michael J Gruber (2):
      push: heed user.signingkey for signed pushes
      t/lib-gpg: make gpghome files writable

Monard Vong (1):
      git-svn: branch: avoid systematic prompt for cert/pass

Nguyễn Thái Ngọc Duy (16):
      mv: mark strings for translations
      mv: flatten error handling code block
      utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
      wrapper.c: introduce gentle xmallocz that does not die()
      sha1_file.c: do not die failing to malloc in unpack_compressed_entry
      diff.c: allow to pass more flags to diff_populate_filespec
      diff --stat: mark any file larger than core.bigfilethreshold binary
      diff: shortcut for diff'ing two binary SHA-1 objects
      mv: split submodule move preparation code out
      mv: remove an "if" that's always true
      mv: move index search code out
      mv: unindent one level for directory move code
      mv: combine two if(s)
      mv: no SP between function name and the first opening parenthese
      archive: support filtering paths with glob
      dir.c: remove the second declaration of "stk" in prep_exclude()

Pat Thoyts (1):
      Makefile: propagate NATIVE_CRLF to C

Patrick Reynolds (2):
      use a hashmap to make remotes faster
      unblock and unignore SIGPIPE

Philip Oakley (4):
      doc: modernise everyday.txt wording and format in man page style
      doc: Makefile regularise OBSOLETE_HTML list building
      doc: add 'everyday' to 'git help'
      doc: fix 'git status --help' character quoting

Ramsay Jones (1):
      revision: remove definition of unused 'add_object' function

René Scharfe (44):
      strbuf: add strbuf_getcwd()
      unix-sockets: use strbuf_getcwd()
      init: avoid superfluous real_path() calls
      turn path macros into inline function
      run-command: introduce CHILD_PROCESS_INIT
      run-command: introduce child_process_init()
      run-command: call run_command_v_opt_cd_env() instead of duplicating it
      run-command: inline prepare_run_command_v_opt()
      sha1_name: avoid quadratic list insertion in handle_one_ref
      walker: avoid quadratic list insertion in mark_complete
      setup: convert setup_git_directory_gently_1 et al. to strbuf
      abspath: use strbuf_getcwd() to remember original working directory
      abspath: convert real_path_internal() to strbuf
      wrapper: add xgetcwd()
      use xgetcwd() to get the current directory or die
      use xgetcwd() to set $GIT_DIR
      abspath: convert absolute_path() to strbuf
      use strbuf_add_absolute_path() to add absolute paths
      connect: simplify check_ref() using skip_prefix() and starts_with()
      pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
      config: simplify git_config_include()
      http-walker: simplify process_alternates_response() using strbuf
      merge-tree: remove unused df_conflict arguments
      imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
      trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
      strbuf: export strbuf_addchars()
      strbuf: use strbuf_addchars() for adding a char multiple times
      repack: call prune_packed_objects() and update_server_info() directly
      add macro REALLOC_ARRAY
      use REALLOC_ARRAY for changing the allocation size of arrays
      graph: simplify graph_padding_line()
      remote: simplify match_name_with_pattern() using strbuf
      t0090: avoid passing empty string to printf %d
      sha1-array: add test-sha1-array and basic tests
      sha1-lookup: handle duplicates in sha1_pos()
      bundle: plug minor memory leak in is_tag_in_date_range()
      mailsplit: remove unnecessary unlink(2) call
      use skip_prefix() to avoid more magic numbers
      receive-pack: plug minor memory leak in unpack()
      run-command: add env_array, an optional argv_array for env
      use env_array member of struct child_process
      grep: add color.grep.matchcontext and color.grep.matchselected
      receive-pack: avoid minor leak in case start_async() fails
      api-run-command: add missing list item marker

Robert de Bath (1):
      config.txt: pack.windowmemory limit applies per-thread

Ronnie Sahlberg (38):
      refs.c: change ref_transaction_create to do error checking and return status
      refs.c: update ref_transaction_delete to check for error and return status
      refs.c: make ref_transaction_begin take an err argument
      refs.c: add transaction.status and track OPEN/CLOSED
      tag.c: use ref transactions when doing updates
      replace.c: use the ref transaction functions for updates
      commit.c: use ref transactions for updates
      sequencer.c: use ref transactions for all ref updates
      fast-import.c: change update_branch to use ref transactions
      branch.c: use ref transaction for all ref updates
      refs.c: change update_ref to use a transaction
      receive-pack.c: use a reference transaction for updating the refs
      fast-import.c: use a ref transaction when dumping tags
      walker.c: use ref transaction for ref updates
      refs.c: make lock_ref_sha1 static
      refs.c: remove the update_ref_lock function
      refs.c: remove the update_ref_write function
      refs.c: remove lock_ref_sha1
      refs.c: make prune_ref use a transaction to delete the ref
      refs.c: make delete_ref use a transaction
      wrapper.c: remove/unlink_or_warn: simplify, treat ENOENT as success
      refs.c: lock_ref_sha1_basic is used for all refs
      wrapper.c: add a new function unlink_or_msg
      refs.c: add an err argument to delete_ref_loose
      refs.c: pass the ref log message to _create/delete/update instead of _commit
      rename_ref: don't ask read_ref_full where the ref came from
      refs.c: refuse to lock badly named refs in lock_ref_sha1_basic
      refs.c: call lock_ref_sha1_basic directly from commit
      refs.c: pass a list of names to skip to is_refname_available
      refs.c: ref_transaction_commit: distinguish name conflicts from other errors
      fetch.c: change s_update_ref to use a ref transaction
      refs.c: make write_ref_sha1 static
      refs.c: change resolve_ref_unsafe reading argument to be a flags field
      branch -d: simplify by using RESOLVE_REF_READING
      test: put tests for handling of bad ref names in one place
      refs.c: allow listing and deleting badly named refs
      for-each-ref: skip and warn about broken ref names
      remote rm/prune: print a message when writing packed-refs fails

Sebastian Schuberth (3):
      subtree: add an install-html target
      contacts: add a Makefile to generate docs and install
      gitk: Do not depend on Cygwin's "kill" command on Windows

Sergey Organov (1):
      Documentation/git-rebase.txt: document when --fork-point is auto-enabled

Sergey Senozhatsky (1):
      compat-util: add _DEFAULT_SOURCE define

Stefan Beller (12):
      remote.c: don't leak the base branch name in format_tracking_info
      clone.c: don't leak memory in cmd_clone
      prepare_revision_walk(): check for return value in all places
      builtin/blame.c: add translation to warning about failed revision walk
      mailsplit.c: remove dead code
      help: fix the size passed to qsort
      t9300-fast-import: fix typo in test description
      t6031-test-merge-recursive: do not forget to add file to be committed
      merge-recursive: fix copy-paste mistake
      merge-recursive: remove stale commented debugging code
      transport: free leaking head in transport_print_push_status()
      .mailmap: add Stefan Bellers corporate mail address

Steffen Prohaska (8):
      convert: drop arguments other than 'path' from would_convert_to_git()
      config.c: add git_env_ulong() to parse environment variable
      memory_limit: use git_env_ulong() to parse GIT_ALLOC_LIMIT
      mmap_limit: introduce GIT_MMAP_LIMIT to allow testing expected mmap size
      copy_fd(): do not close the input file descriptor
      convert: stream from fd to required clean filter to reduce used address space
      Documentation: use single-parameter --cacheinfo in example
      sha1_file: don't convert off_t to size_t too early to avoid potential die()

Sveinung Kvilhaugsvik (1):
      git-svn.txt: advertise pushurl with dcommit

Tanay Abhra (24):
      add `config_set` API for caching config-like files
      test-config: add tests for the config_set API
      pretty.c: make git_pretty_formats_config return -1 on git_config_string failure
      add line number and file name info to `config_set`
      change `git_config()` return value to void
      config: add `git_die_config()` to the config-set API
      rewrite git_config() to use the config-set API
      add a test for semantic errors in config files
      add tests for `git_config_get_string_const()`
      daemon.c: replace `git_config()` with `git_config_get_bool()` family
      http-backend.c: replace `git_config()` with `git_config_get_bool()` family
      read-cache.c: replace `git_config()` with `git_config_get_*()` family
      archive.c: replace `git_config()` with `git_config_get_bool()` family
      fetchpack.c: replace `git_config()` with `git_config_get_*()` family
      rerere.c: replace `git_config()` with `git_config_get_*()` family
      builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
      pager.c: replace `git_config()` with `git_config_get_value()`
      imap-send.c: replace `git_config()` with `git_config_get_*()` family
      alias.c: replace `git_config()` with `git_config_get_string()`
      branch.c: replace `git_config()` with `git_config_get_string()
      fast-import.c: replace `git_config()` with `git_config_get_*()` family
      ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
      merge-recursive.c: replace `git_config()` with `git_config_get_int()`
      builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`

Thomas Braun (2):
      pretty: note that %cd respects the --date= option
      completion: Add --ignore-blank-lines for diff

Tony Finch (2):
      imap-send: clarify CRAM-MD5 vs LOGIN documentation
      imap-send: create target mailbox if it is missing

Torsten Bögershausen (2):
      t0027: Tests for core.eol=native, eol=lf, eol=crlf
      core.filemode may need manual action

W. Trevor King (2):
      pre-push.sample: Write error message to stderr
      t1304: Set LOGNAME even if USER is unset or null

brian m. carlson (8):
      archive: honor tar.umask even for pax headers
      imap-send doc: omit confusing "to use imap-send" modifier
      Documentation: adjust document title underlining
      Documentation: fix mismatched delimiters in git-imap-send
      Documentation: move some AsciiDoc parameters into variables
      Documentation: implement linkgit macro for Asciidoctor
      Documentation: refactor common operations into variables
      Documentation: remove Asciidoctor linkgit macro


Version v2.1.4; changes since v2.1.3:
-------------------------------------

Ben North (1):
      gitignore.txt: fix spelling of "backslash"

Jeff King (9):
      docs/credential-store: s/--store/--file/
      unpack-trees: propagate errors adding entries to the index
      read-tree: add tests for confusing paths like ".." and ".git"
      verify_dotfile(): reject .git case-insensitively
      t1450: refactor ".", "..", and ".git" fsck tests
      fsck: notice .git case-insensitively
      utf8: add is_hfs_dotgit() helper
      read-cache: optionally disallow HFS+ .git variants
      fsck: complain about HFS+ ".git" aliases in trees

Johannes Schindelin (3):
      path: add is_ntfs_dotgit() helper
      read-cache: optionally disallow NTFS .git variants
      fsck: complain about NTFS ".git" aliases in trees

Junio C Hamano (4):
      Git 1.8.5.6
      Git 1.9.5
      Git 2.0.5
      Git 2.1.4

Nicolas Dermine (1):
      config.txt: fix typo

René Scharfe (1):
      clean: use f(void) instead of f() to declare a pointer to a function without arguments

Thomas Quinot (1):
      Documentation/config.txt: fix minor typo


Version v2.1.3; changes since v2.1.2:
-------------------------------------

David Aguilar (1):
      mergetools/meld: make usage of `--output` configurable and more robust

Eric Sunshine (1):
      mailinfo: work around -Wstring-plus-int warning

Jeff King (2):
      mailinfo: make ">From" in-body header check more robust
      pack-objects: turn off bitmaps when we split packs

Junio C Hamano (1):
      Git 2.1.3

René Scharfe (3):
      daemon: handle gethostbyname() error
      daemon: fix error message after bind()
      daemon: remove write-only variable maxfd

Roland Mas (1):
      gitweb: use start_form, not startform that was removed in CGI.pm 4.04

Wieland Hoffmann (1):
      git-tag.txt: Add a missing hyphen to `-s`

brian m. carlson (1):
      Documentation: fix misrender of pretty-formats in Asciidoctor


Version v2.1.2; changes since v2.1.1:
-------------------------------------

Jeff King (5):
      send-pack: take refspecs over stdin
      index-pack: fix race condition with duplicate bases
      fsck: exit with non-zero status upon error from fsck_obj()
      config: avoid a funny sentinel value "a^"
      fsck: return non-zero status on missing ref tips

Junio C Hamano (1):
      Git 2.1.2

Max Kirillov (1):
      reachable.c: add HEAD to reachability starting commits

Maxim Bublis (2):
      t9300: test filedelete command
      fast-import: fix segfault in store_tree()

Phillip Sz (2):
      l10n: de.po: change Email to E-Mail
      l10n: de.po: use comma before "um"

Ralf Thielow (1):
      po/TEAMS: add new member to German translation team

Sergey Organov (2):
      Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
      Documentation/git-rebase.txt: <upstream> must be given to specify <branch>

Tanay Abhra (1):
      make config --add behave correctly for empty and NULL values


Version v2.1.1; changes since v2.1.0:
-------------------------------------

Alex Henrie (2):
      l10n: Add Catalan translation
      po/TEAMS: Add Catalan team

Alexander Shopov (3):
      l10n: Updated Bulgarian translation of git (2228t,0f,0u)
      l10n: Updated Bulgarian translation of git (2247t,0f,0u)
      l10n: Updated Bulgarian translation of git (2257t,0f,0u)

Edward Thomson (1):
      upload-pack: keep poll(2)'s timeout to -1

Jean-Noël Avila (1):
      l10n: fr.po (2257t) update for version 2.1.0

Jeff King (10):
      revision: drop useless string offset when parsing "--pretty"
      pretty: treat "--format=" as an empty userformat
      pretty: make empty userformats truly empty
      pack-objects: turn off bitmaps when we see --shallow lines
      Makefile: make perf tests optional for profile build
      intersect_paths: respect mode in git's tree-sort
      pack-refs: prune top-level refs like "refs/foo"
      fast-import: clean up pack_data pointer in end_packfile
      fast-import: fix buffer overflow in dump_tags
      git-prompt: do not look for refs/stash in $GIT_DIR

Jiang Xin (2):
      l10n: git.pot: v2.1.0 round 1 (38 new, 9 removed)
      l10n: zh_CN: translations for git v2.1.0-rc0

Jonathan Nieder (2):
      unpack-trees: use 'cuddled' style for if-else cascade
      checkout -m: attempt merge when deletion of path was staged

Junio C Hamano (5):
      config: teach "git -c" to recognize an empty string
      apply: use the right attribute for paths in non-Git patches
      apply: hoist use_patch() helper for path exclusion up
      apply: omit ws check for excluded paths
      Git 2.1.1

Lukas Fleischer (1):
      bundle: fix exclusion of annotated tags

Nguyễn Thái Ngọc Duy (2):
      fetch: convert argv_gc_auto to struct argv_array
      fetch: silence git-gc if --quiet is given

Peter Krefting (2):
      l10n: Fix more typos in the Swedish translations
      l10n: sv.po: Update Swedish translation (2257t0f0u)

Ralf Thielow (4):
      l10n: de.po: fix typo
      l10n: de.po: improve message when switching branches
      l10n: de.po: translate 38 new messages
      po/TEAMS: add new members to German translation team

René Scharfe (1):
      read-cache: check for leading symlinks when refreshing index

Shawn O. Pearce (1):
      Document LF appearing in shallow command during send-pack/receive-pack

Stefan Beller (1):
      unpack-trees: simplify 'all other failures' case

Trần Ngọc Quân (1):
      l10n: vi.po (2257t): Update translation


Version v2.1.0; changes since v2.1.0-rc2:
-----------------------------------------

Alexander Shopov (1):
      gitk: Updated Bulgarian translation (302t,0f,0u)

Johannes Sixt (1):
      tests: fix negated test_i18ngrep calls

Junio C Hamano (1):
      Git 2.1

Max Kirillov (1):
      gitk: Add keybinding to switch to parent commit


Version v2.1.0-rc2; changes since v2.1.0-rc1:
---------------------------------------------

Junio C Hamano (2):
      RelNotes: no more check_ref_format micro-optimization
      Git 2.1-rc2

Marc Branchaud (1):
      Release notes: grammatical fixes

Stefan Beller (1):
      various contrib: Fix links in man pages


Version v2.1.0-rc1; changes since v2.1.0-rc0:
---------------------------------------------

Fabian Ruch (1):
      commit --amend: test specifies authorship but forgets to check

Jeff King (14):
      receive-pack: don't copy "dir" parameter
      free ref string returned by dwim_ref
      transport: fix leaks in refs_from_alternate_cb
      fix memory leak parsing core.commentchar
      apply: avoid possible bogus pointer
      alloc: write out allocator definitions
      move setting of object->type to alloc_* functions
      parse_object_buffer: do not set object type
      add object_as_type helper for casting objects
      alloc: factor out commit index
      object_as_type: set commit index
      diff-tree: avoid lookup_unknown_object
      t1402: check for refs ending with a dot
      t4013: test diff-tree's --stdin commit formatting

Johannes Schindelin (1):
      MinGW: Skip test redirecting to fd 4

John Keeping (3):
      completion: complete "unstuck" `git push --recurse-submodules`
      completion: add some missing options to `git push`
      completion: complete `git push --force-with-lease=`

Junio C Hamano (6):
      t9814: fix misconversion from test $a -o $b to test $a || test $b
      Revert "Merge branch 'dt/refs-check-refname-component-sse-fix'"
      Revert "Merge branch 'dt/refs-check-refname-component-sse'"
      Git 2.0.4
      Update draft release notes to 2.1
      Git 2.1.0-rc1

Karsten Blees (16):
      Revert "Windows: teach getenv to do a case-sensitive search"
      Win32: Unicode environment (outgoing)
      Win32: Unicode environment (incoming)
      Win32: fix environment memory leaks
      Win32: unify environment case-sensitivity
      Win32: unify environment function names
      Win32: factor out environment block creation
      Win32: don't copy the environment twice when spawning child processes
      Win32: reduce environment array reallocations
      Win32: use low-level memory allocation during initialization
      Win32: keep the environment sorted
      Win32: patch Windows environment on startup
      Win32: enable color output in Windows cmd.exe
      t0110/MinGW: skip tests that pass arbitrary bytes on the command line
      MinGW: disable legacy encoding tests
      t800[12]: work around MSys limitation

Pat Thoyts (3):
      tests: do not pass iso8859-1 encoded parameter
      t4210: skip command-line encoding tests on mingw
      t9902: mingw-specific fix for gitfile link files

Ramsay Jones (1):
      alloc.c: remove the alloc_raw_commit_node() function

Tanay Abhra (1):
      add documentation for writing config files

Tony Finch (1):
      git-push: fix link in man page


Version v2.1.0-rc0; changes since v2.0.5:
-----------------------------------------

Anders Kaseorg (1):
      gitk: Allow displaying time zones from author and commit dates timestamps

Andi Kleen (4):
      Use BASIC_FLAGS for profile feedback
      Don't define away __attribute__ on gcc
      Run the perf test suite for profile feedback too
      Fix profile feedback with -jN and add profile-fast

Andreas Schwab (1):
      grep: add grep.fullName config variable

Brian Gesiak (2):
      strbuf: use _rtrim and _ltrim in strbuf_trim
      api-strbuf.txt: add docs for _trim and _ltrim

Cezary Zawadka (1):
      Windows: allow using UNC path for git repository

Charles Bailey (1):
      Fix contrib/subtree Makefile to patch #! line

Christian Couder (16):
      replace: make sure --edit results in a different object
      replace: refactor checking ref validity
      replace: die early if replace ref already exists
      replace: add tests for --edit
      replace: add --edit to usage string
      Documentation: replace: describe new --edit option
      commit: add for_each_mergetag()
      replace: cleanup redirection style in tests
      replace: add --graft option
      replace: add test for --graft
      Documentation: replace: add --graft option
      contrib: add convert-grafts-to-replace-refs.sh
      replace: remove signature when using --graft
      replace: add test for --graft with signed commit
      replace: check mergetags when using --graft
      replace: add test for --graft with a mergetag

Dan Albert (1):
      imap-send: use git-credential

David Aguilar (3):
      gitk: Honor TMPDIR when viewing external diffs
      gitk: Use mktemp -d to avoid predictable temporary directories
      gitk: Catch mkdtemp errors

David Kastrup (2):
      blame: large-scale performance rewrite
      Bump core.deltaBaseCacheLimit to 96m

David Turner (5):
      docs: document RUN_SETUP_GENTLY and clarify RUN_SETUP
      refs.c: optimize check_refname_component()
      refs.c: SSE2 optimizations for check_refname_component
      refs.c: handle REFNAME_REFSPEC_PATTERN at end of page
      refs: fix valgrind suppression file

Elia Pinto (61):
      t9365-continuing-queries.sh: use the $( ... ) construct for command substitution
      test-gitmw-lib.sh: use the $( ... ) construct for command substitution
      t7900-subtree.sh: use the $( ... ) construct for command substitution
      appp.sh: use the $( ... ) construct for command substitution
      git-pull.sh: use the $( ... ) construct for command substitution
      git-rebase--merge.sh: use the $( ... ) construct for command substitution
      git-rebase.sh: use the $( ... ) construct for command substitution
      git-stash.sh: use the $( ... ) construct for command substitution
      git-web--browse.sh: use the $( ... ) construct for command substitution
      lib-credential.sh: use the $( ... ) construct for command substitution
      lib-cvs.sh: use the $( ... ) construct for command substitution
      lib-gpg.sh: use the $( ... ) construct for command substitution
      p5302-pack-index.sh: use the $( ... ) construct for command substitution
      t0001-init.sh: use the $( ... ) construct for command substitution
      t0010-racy-git.sh: use the $( ... ) construct for command substitution
      t0020-crlf.sh: use the $( ... ) construct for command substitution
      t0025-crlf-auto.sh: use the $( ... ) construct for command substitution
      t0026-eol-config.sh: use the $( ... ) construct for command substitution
      t0030-stripspace.sh: use the $( ... ) construct for command substitution
      t0300-credentials.sh: use the $( ... ) construct for command substitution
      t1000-read-tree-m-3way.sh: use the $( ... ) construct for command substitution
      t1001-read-tree-m-2way.sh: use the $( ... ) construct for command substitution
      t1002-read-tree-m-u-2way.sh: use the $( ... ) construct for command substitution
      t1003-read-tree-prefix.sh: use the $( ... ) construct for command substitution
      t1004-read-tree-m-u-wf.sh: use the $( ... ) construct for command substitution
      t1020-subdirectory.sh: use the $( ... ) construct for command substitution
      t1050-large.sh: use the $( ... ) construct for command substitution
      t3905-stash-include-untracked.sh: use the $( ... ) construct for command substitution
      t3910-mac-os-precompose.sh: use the $( ... ) construct for command substitution
      t4006-diff-mode.sh: use the $( ... ) construct for command substitution
      t4010-diff-pathspec.sh: use the $( ... ) construct for command substitution
      t4012-diff-binary.sh: use the $( ... ) construct for command substitution
      t4013-diff-various.sh: use the $( ... ) construct for command substitution
      t4014-format-patch.sh: use the $( ... ) construct for command substitution
      t4036-format-patch-signer-mime.sh: use the $( ... ) construct for command substitution
      t4038-diff-combined.sh: use the $( ... ) construct for command substitution
      t4057-diff-combined-paths.sh: use the $( ... ) construct for command substitution
      t4116-apply-reverse.sh: use the $( ... ) construct for command substitution
      t4119-apply-config.sh: use the $( ... ) construct for command substitution
      t4204-patch-id.sh: use the $( ... ) construct for command substitution
      t5000-tar-tree.sh: use the $( ... ) construct for command substitution
      check_bindir: avoid "test <cond> -a/-o <cond>"
      contrib/examples/git-clone.sh: avoid "test <cond> -a/-o <cond>"
      contrib/examples/git-commit.sh: avoid "test <cond> -a/-o <cond>"
      contrib/examples/git-merge.sh: avoid "test <cond> -a/-o <cond>"
      contrib/examples/git-repack.sh: avoid "test <cond> -a/-o <cond>"
      contrib/examples/git-resolve.sh: avoid "test <cond> -a/-o <cond>"
      git-bisect.sh: avoid "test <cond> -a/-o <cond>"
      git-mergetool.sh: avoid "test <cond> -a/-o <cond>"
      git-rebase--interactive.sh: avoid "test <cond> -a/-o <cond>"
      t/lib-httpd.sh: avoid "test <cond> -a/-o <cond>"
      t/t0025-crlf-auto.sh: avoid "test <cond> -a/-o <cond>"
      t/t0026-eol-config.sh: avoid "test <cond> -a/-o <cond>"
      t/t4102-apply-rename.sh: avoid "test <cond> -a/-o <cond>"
      t/t5000-tar-tree.sh: avoid "test <cond> -a/-o <cond>"
      t/t5403-post-checkout-hook.sh: avoid "test <cond> -a/-o <cond>"
      t/t5538-push-shallow.sh: avoid "test <cond> -a/-o <cond>"
      t/t9814-git-p4-rename.sh: avoid "test <cond> -a/-o <cond>"
      t/test-lib-functions.sh: avoid "test <cond> -a/-o <cond>"
      git-submodule.sh: avoid "test <cond> -a/-o <cond>"
      submodule.c: use the ARRAY_SIZE macro

Ephrim Khong (1):
      sha1_file: do not add own object directory as alternate

Eric Wong (1):
      config: preserve config file permissions on edits

Erik Faye-Lund (1):
      send-email: recognize absolute path on Windows

Fabian Ruch (1):
      sequencer: signal failed ff as an aborted, not a conflicted merge

Felipe Contreras (12):
      fast-export: improve argument parsing
      fast-export: add new --refspec option
      transport-helper: add support for old:new refspec
      transport-helper: add support to push symbolic refs
      fast-import: add support to delete refs
      fast-export: add support to delete refs
      transport-helper: add support to delete branches
      transport-helper: remove unnecessary strbuf resets
      mergetools: add vimdiff3 mode
      mergetool: run prompt only if guessed tool
      merge: enable defaulttoupstream by default
      silence a bunch of format-zero-length warnings

Ilya Bobyr (4):
      test-lib: document short options in t/README
      test-lib: tests skipped by GIT_SKIP_TESTS say so
      test-lib: '--run' to run only specific tests
      gitk: Replace SHA1 entry field on keyboard paste

Jacob Keller (2):
      tag: fix --sort tests to use cat<<-\EOF format
      tag: support configuring --sort via .gitconfig

James Denholm (6):
      contrib/subtree/Makefile: scrap unused $(gitdir)
      contrib/subtree/Makefile: use GIT-VERSION-FILE
      contrib/subtree/Makefile: s/libexecdir/gitexecdir/
      contrib/subtree/Makefile: clean up rules to generate documentation
      contrib/subtree/Makefile: clean up rule for "clean"
      contrib/subtree: allow adding an annotated tag

Jason St. John (1):
      Documentation: use "command-line" when used as a compound adjective, and fix other minor grammatical issues

Jean-Jacques Lafay (1):
      git tag --contains: avoid stack overflow

Jeff King (97):
      run_external_diff: use an argv_array for the environment
      run_external_diff: clean up error handling
      run_external_diff: drop fflush(NULL)
      run_external_diff: hoist common bits out of conditional
      run_external_diff: refactor cmdline setup logic
      t3910: show failure of core.precomposeunicode with decomposed filenames
      replace: refactor command-mode determination
      replace: use OPT_CMDMODE to handle modes
      replace: factor object resolution out of replace_object
      replace: add --edit option
      commit: use split_ident_line to compare author/committer
      pretty: make show_ident_date public
      commit: print "Date" line when the user has set date
      commit: accept more date formats for "--date"
      inline constant return from error() function
      let clang use the constant-return error() macro
      grep: use run-command's "dir" option for --open-files-in-pager
      t/lib-httpd: require SANITY prereq
      run-command: store an optional argv_array
      run_column_filter: use argv_array
      git_connect: use argv_array
      get_helper: use run-command's internal argv_array
      get_exporter: use argv_array
      get_importer: use run-command's internal argv_array
      argv-array: drop "detach" code
      format-patch: make newline after signature conditional
      daemon/config: factor out duplicate xstrdup_tolower
      test-lib: preserve GIT_CURL_VERBOSE from the environment
      t/lib-httpd: use write_script to copy CGI scripts
      t5550: test display of remote http error messages
      strbuf: add strbuf_tolower function
      http: extract type/subtype portion of content-type
      http: optionally extract charset parameter from content-type
      strbuf: add strbuf_reencode helper
      remote-curl: reencode http error messages
      http: default text charset to iso-8859-1
      error_resolve_conflict: rewrap advice message
      error_resolve_conflict: drop quotations around operation
      pack-objects: stop respecting pack.writebitmaps
      repack: simplify handling of --write-bitmap-index
      repack: introduce repack.writeBitmaps config option
      t7700: drop explicit --no-pack-kept-objects from .keep test
      parse_diff_color_slot: drop ofs parameter
      daemon: mark some strings as const
      avoid using skip_prefix as a boolean
      strbuf: add xstrfmt helper
      use xstrfmt in favor of manual size calculations
      use xstrdup instead of xmalloc + strcpy
      use xstrfmt to replace xmalloc + sprintf
      use xstrfmt to replace xmalloc + strcpy/strcat
      setup_git_env: use git_pathdup instead of xmalloc + sprintf
      sequencer: use argv_array_pushf
      merge: use argv_array when spawning merge strategy
      walker_fetch: fix minor memory leak
      unique_path: fix unlikely heap overflow
      refactor skip_prefix to return a boolean
      apply: use skip_prefix instead of raw addition
      fast-import: fix read of uninitialized argv memory
      transport-helper: avoid reading past end-of-string
      use skip_prefix to avoid magic numbers
      use skip_prefix to avoid repeating strings
      fast-import: use skip_prefix for parsing input
      daemon: use skip_prefix to avoid magic numbers
      stat_opt: check extra strlen call
      fast-import: refactor parsing of spaces
      fetch-pack: refactor parsing in get_ack
      git: avoid magic number with skip_prefix
      use skip_prefix to avoid repeated calculations
      http-push: refactor parsing of remote object names
      setup_git_env(): introduce git_path_from_env() helper
      replace: replace spaces with tabs in indentation
      avoid double close of descriptors handed to run_command
      replace: use argv_array in export_object
      replace: add a --raw mode for --edit
      add strip_suffix function
      implement ends_with via strip_suffix
      replace has_extension with ends_with
      use strip_suffix instead of ends_with in simple cases
      index-pack: use strip_suffix to avoid magic numbers
      strbuf: implement strbuf_strip_suffix
      verify-pack: use strbuf_strip_suffix
      prepare_packed_git_one: refactor duplicate-pack check
      remote-curl: do not complain on EOF from parent git
      remote-curl: use error instead of fprintf(stderr)
      remote-curl: mark helper-protocol errors more clearly
      tag: use skip_prefix instead of magic numbers
      alloc: write out allocator definitions
      move setting of object->type to alloc_* functions
      parse_object_buffer: do not set object type
      add object_as_type helper for casting objects
      alloc: factor out commit index
      object_as_type: set commit index
      diff-tree: avoid lookup_unknown_object
      prio-queue: factor out compare and swap operations
      prio-queue: make output stable with respect to insertion
      paint_down_to_common: use prio_queue
      t5539: update a flaky test

Jens Lehmann (19):
      git-gui: show staged submodules regardless of ignore config
      git-gui: tolerate major version changes when comparing the git version
      gitk: Show staged submodules regardless of ignore config
      test-lib: add test_dir_is_empty()
      t/Makefile: check helper scripts for non-portable shell commands too
      t/Makefile: always test all lint targets when running tests
      submodules: add the lib-submodule-update.sh test library
      checkout: call the new submodule update test framework
      apply: add t4137 for submodule updates
      read-tree: add t1013 for submodule updates
      reset: add t7112 for submodule updates
      bisect: add t6041 for submodule updates
      merge: add t7613 for submodule updates
      rebase: add t3426 for submodule updates
      pull: add t5572 for submodule updates
      cherry-pick: add t3512 for submodule updates
      am: add t4255 for submodule updates
      stash: add t3906 for submodule updates
      revert: add t3513 for submodule updates

Jeremiah Mahler (4):
      format-patch: add "--signature-file=<file>" option
      t9138-git-svn-authors-prog.sh fixups
      name-hash.c: replace cache_name_compare() with memcmp(3)
      cleanup duplicate name_compare() functions

Johannes Schindelin (1):
      Win32: let mingw_execve() return an int

John Keeping (2):
      rebase--am: use --cherry-pick instead of --ignore-if-in-upstream
      rebase: omit patch-identical commits with --fork-point

Jonathan Nieder (4):
      contrib: remove vim support instructions
      contrib: remove git-diffall
      test-lint: find unportable sed, echo, test, and export usage after &&
      test doc: test_write_lines does not split its arguments

Junio C Hamano (37):
      send-email: windows drive prefix (e.g. C:) appears only at the beginning
      mergetool: document the default for --[no-]prompt
      CodingGuidelines: once it is in, it is not worth the code churn
      CodingGuidelines: give an example for case/esac statement
      CodingGuidelines: give an example for redirection
      CodingGuidelines: give an example for control statements
      CodingGuidelines: give an example for shell function preamble
      CodingGuidelines: do not call the conditional statement "if()"
      CodingGuidelines: on comparison
      CodingGuidelines: on splitting a long line
      CodingGuidelines: avoid "test <cond> -a/-o <cond>"
      fetch doc: update introductory part for clarity
      fetch doc: update note on '+' in front of the refspec
      fetch doc: remove notes on outdated "mixed layout"
      First batch for 2.1
      fetch doc: on pulling multiple refspecs
      fetch doc: update refspec format description
      fetch doc: remove "short-cut" section
      fetch doc: add a section on configured remote-tracking branches
      fetch: allow explicit --refmap to override configuration
      Second batch for 2.1
      Update draft release notes to 2.1
      test: turn EXPENSIVE into a lazy prerequisite
      test: turn USR_BIN_TIME into a lazy prerequisite
      t3302: coding style updates
      t3302: do not chdir around in the primary test process
      t3302: drop unnecessary NOT_EXPENSIVE pseudo-prerequisite
      t3419: drop unnecessary NOT_EXPENSIVE pseudo-prerequisite
      Third batch for 2.1
      git-submodule.sh: avoid "echo" path-like values
      Fourth batch for 2.1
      Fifth batch for 2.1
      Sixth batch for 2.1
      Seventh batch for 2.1
      Eighth batch for 2.1
      Ninth batch for 2.1
      Git 2.1.0-rc0

Karsten Blees (46):
      MSVC: link dynamically to the CRT
      Win32 dirent: remove unused dirent.d_ino member
      Win32 dirent: remove unused dirent.d_reclen member
      Win32 dirent: change FILENAME_MAX to MAX_PATH
      Win32 dirent: clarify #include directives
      Win32 dirent: improve dirent implementation
      Win32: move main macro to a function
      Win32: support Unicode console output
      Win32: detect console streams more reliably
      Win32: warn if the console font doesn't support Unicode
      Win32: add Unicode conversion functions
      Win32: Thread-safe windows console output
      Win32: fix broken pipe detection
      Win32: reliably detect console pipe handles
      Win32: simplify internal mingw_spawn* APIs
      Win32: fix potential multi-threading issue
      MinGW: disable CRT command line globbing
      Win32: Unicode arguments (outgoing)
      Win32: Unicode arguments (incoming)
      trace: move trace declarations from cache.h to new trace.h
      trace: consistently name the format parameter
      trace: remove redundant printf format attribute
      symlinks: remove PATH_MAX limitation
      hashmap: factor out getting a hash code from a SHA1
      hashmap: improve struct hashmap member documentation
      hashmap: add simplified hashmap_get_from_hash() API
      hashmap: add string interning API
      cache.h: rename cache_def_free to cache_def_clear
      trace: improve trace performance
      Documentation/git.txt: improve documentation of 'GIT_TRACE*' variables
      sha1_file: change GIT_TRACE_PACK_ACCESS logging to use trace API
      trace: add infrastructure to augment trace output with additional info
      trace: disable additional trace output for unit tests
      trace: add current timestamp to all trace output
      trace: move code around, in preparation to file:line output
      trace: add 'file:line' to all trace output
      trace: add high resolution timer function to debug performance issues
      trace: add trace_performance facility to debug performance issues
      git: add performance tracing for git's main() function to debug scripts
      wt-status: simplify performance measurement by using getnanotime()
      progress: simplify performance measurement by using getnanotime()
      api-trace.txt: add trace API documentation
      Win32: Unicode file name support (except dirent)
      Win32: Unicode file name support (dirent)
      MinGW: fix compile error due to missing ELOOP
      config: use chmod() instead of fchmod()

Kirill Smelkov (20):
      combine-diff: move show_log_first logic/action out of paths scanning
      combine-diff: move changed-paths scanning logic into its own function
      tree-diff: no need to manually verify that there is no mode change for a path
      tree-diff: no need to pass match to skip_uninteresting()
      tree-diff: show_tree() is not needed
      tree-diff: consolidate code for emitting diffs and recursion in one place
      tree-diff: don't assume compare_tree_entry() returns -1,0,1
      tree-diff: move all action-taking code out of compare_tree_entry()
      tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
      tree-diff: show_path prototype is not needed anymore
      tree-diff: simplify tree_entry_pathcmp
      tree-diff: remove special-case diff-emitting code for empty-tree cases
      tree-diff: diff_tree() should now be static
      tree-diff: rework diff_tree interface to be sha1 based
      tree-diff: no need to call "full" diff_tree_sha1 from show_path()
      tree-diff: reuse base str(buf) memory on sub-tree recursion
      Portable alloca for Git
      tree-diff: rework diff_tree() to generate diffs for multiparent cases as well
      combine-diff: speed it up, by using multiparent diff tree-walker directly
      mingw: activate alloca

Linus Torvalds (1):
      git log: support "auto" decorations

Luis R. Rodriguez (1):
      git.c: treat RUN_SETUP_GENTLY and RUN_SETUP as mutually exclusive

Marc Branchaud (2):
      fetch doc: move FETCH_HEAD material lower and add an example
      docs: Explain the purpose of fetch's and pull's <refspec> parameter.

Matthieu Moy (3):
      git-remote-mediawiki: allow stop/start-ing the test server
      git-remote-mediawiki: fix encoding issue for UTF-8 media files
      pager: remove 'S' from $LESS by default

Max Kirillov (4):
      gitk: Switch to patch mode when searching for line origin
      gitk: Add visiblerefs option, which lists always-shown branches
      t6023-merge-file.sh: fix and mark as broken invalid tests
      git-merge-file: do not add LF at EOF while applying unrelated change

Maxime Coste (2):
      git-p4: Do not include diff in spec file when just preparing p4
      git-p4: fix submit in non --prepare-p4-only mode

Michael Barabanov (1):
      use local cloning if insteadOf makes a local URL

Michael Haggerty (27):
      t1400: fix name and expected result of one test
      t1400: provide more usual input to the command
      parse_arg(): really test that argument is properly terminated
      t1400: add some more tests involving quoted arguments
      refs.h: rename the action_on_err constants
      update_refs(): fix constness
      update-ref --stdin: read the whole input at once
      parse_cmd_verify(): copy old_sha1 instead of evaluating <oldvalue> twice
      update-ref.c: extract a new function, parse_refname()
      update-ref --stdin: improve error messages for invalid values
      update-ref --stdin: make error messages more consistent
      update-ref --stdin: simplify error messages for missing oldvalues
      t1400: test that stdin -z update treats empty <newvalue> as zeros
      update-ref.c: extract a new function, parse_next_sha1()
      update-ref --stdin -z: deprecate interpreting the empty string as zeros
      t1400: test one mistake at a time
      update-ref --stdin: improve the error message for unexpected EOF
      update-ref --stdin: harmonize error messages
      refs: add a concept of a reference transaction
      update-ref --stdin: reimplement using reference transactions
      refs: remove API function update_refs()
      struct ref_update: rename field "ref_name" to "refname"
      struct ref_update: store refname as a FLEX_ARRAY
      ref_transaction_commit(): simplify code using temporary variables
      struct ref_update: add a lock field
      struct ref_update: add a type field
      ref_transaction_commit(): work with transaction->updates in place

Michael J Gruber (5):
      gpg-interface: provide clear helper for struct signature_check
      gpg-interface: provide access to the payload
      verify-commit: scriptable commit signature verification
      t7510: exit for loop with test result
      t7510: test verify-commit

Michael S. Tsirkin (6):
      git-send-email: two new options: to-cover, cc-cover
      test/send-email: to-cover, cc-cover tests
      rebase --keep-empty -i: add test
      test: add test_write_lines helper
      patch-id: make it stable against hunk reordering
      patch-id-test: test stable and unstable behaviour

Nguyễn Thái Ngọc Duy (38):
      ewah: fix constness of ewah_read_mmap
      ewah: delete unused ewah_read_mmap_native declaration
      sequencer: do not update/refresh index if the lock cannot be held
      config: be strict on core.commentChar
      commit: allow core.commentChar=auto for character auto selection
      git potty: restore environments after alias expansion
      read-cache: new API write_locked_index instead of write_index/write_cache
      read-cache: relocate and unexport commit_locked_index()
      read-cache: store in-memory flags in the first 12 bits of ce_flags
      read-cache: be strict about "changed" in remove_marked_cache_entries()
      read-cache: be specific what part of the index has changed
      update-index: be specific what part of the index has changed
      resolve-undo: be specific what part of the index has changed
      unpack-trees: be specific what part of the index has changed
      cache-tree: mark istate->cache_changed on cache tree invalidation
      cache-tree: mark istate->cache_changed on cache tree update
      cache-tree: mark istate->cache_changed on prime_cache_tree()
      entry.c: update cache_changed if refresh_cache is set in checkout_entry()
      read-cache: save index SHA-1 after reading
      read-cache: split-index mode
      read-cache: mark new entries for split index
      read-cache: save deleted entries in split index
      read-cache: mark updated entries for split index
      split-index: the writing part
      split-index: the reading part
      split-index: do not invalidate cache-tree at read time
      split-index: strip pathname of on-disk replaced entries
      update-index: new options to enable/disable split index mode
      update-index --split-index: do not split if $GIT_DIR is read only
      rev-parse: add --shared-index-path to get shared index path
      read-tree: force split-index mode off on --index-output
      read-tree: note about dropping split-index mode or index version
      read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
      t2104: make sure split index mode is off for the version test
      t1700: new tests for split-index mode
      dir.c: coding style fix
      dir.h: move struct exclude declaration to top level
      prep_exclude: remove the artificial PATH_MAX limit

Pat Thoyts (2):
      wincred: add install target
      wincred: avoid overwriting configured variables

Ramsay Jones (2):
      t0000-*.sh: fix the GIT_SKIP_TESTS sub-tests
      alloc.c: remove the alloc_raw_commit_node() function

René Scharfe (22):
      Use starts_with() for C strings instead of memcmp()
      blame: factor out get_next_line()
      blame: simplify prepare_lines()
      wt-status: use argv_array for environment
      wt-status: simplify building of summary limit argument
      sha1_file: replace PATH_MAX buffer with strbuf in prepare_packed_git_one()
      t5000, t5003: simplify commit
      diff-tree: call free_commit_list() instead of duplicating its code
      line-log: use commit_list_append() instead of duplicating its code
      use strbuf_addbuf for adding strbufs
      use strbuf_addch for adding single characters
      merge: simplify merge_trivial() by using commit_list_append()
      commit: use commit_list_append() instead of duplicating its code
      fsck: simplify fsck_commit_buffer() by using commit_list_count()
      strbuf: use strbuf_addstr() for adding C strings
      use commit_list_count() to count the members of commit_lists
      run-command: use internal argv_array of struct child_process in run_hook_ve()
      transport: simplify fetch_objs_via_rsync() using argv_array
      fast-import: use hashcmp() for SHA1 hash comparison
      bundle: use internal argv_array of struct child_process in create_bundle()
      remote-testsvn: use internal argv_array of struct child_process in cmd_import()
      unix-socket: remove stale socket before calling chdir()

RomanBelinsky (1):
      SVN.pm::parse_svn_date: allow timestamps with a single-digit hour

Ronnie Sahlberg (26):
      sequencer.c: check for lock failure and bail early in fast_forward_to
      commit.c: check for lock error and return early
      refs.c: add new functions reflog_exists and delete_reflog
      checkout.c: use ref_exists instead of file_exist
      refs.c: change read_ref_at to use the reflog iterators
      enums: remove trailing ',' after last item in enum
      refs.c: remove ref_transaction_rollback
      refs.c: ref_transaction_commit should not free the transaction
      refs.c: constify the sha arguments for ref_transaction_create|delete|update
      refs.c: allow passing NULL to ref_transaction_free
      refs.c: add a strbuf argument to ref_transaction_commit for error logging
      lockfile.c: add a new public function unable_to_lock_message
      lockfile.c: make lock_file return a meaningful errno on failurei
      refs.c: add an err argument to repack_without_refs
      refs.c: make sure log_ref_setup returns a meaningful errno
      refs.c: verify_lock should set errno to something meaningful
      refs.c: make remove_empty_directories always set errno to something sane
      refs.c: commit_packed_refs to return a meaningful errno on failure
      refs.c: make resolve_ref_unsafe set errno to something meaningful on error
      refs.c: log_ref_write should try to return meaningful errno
      refs.c: make ref_update_reject_duplicates take a strbuf argument for errors
      refs.c: make update_ref_write update a strbuf on failure
      update-ref: use err argument to get error from ref_transaction_commit
      refs.c: remove the onerr argument to ref_transaction_commit
      refs.c: change ref_transaction_update() to do error checking and return status
      refs.c: add a public is_branch function

Stefan Beller (1):
      .mailmap: map different names with the same email address together

Steffen Prohaska (1):
      completion: handle '!f() { ... }; f' and "!sh -c '...' -" aliases

Stepan Kasal (2):
      Revert "submodules: fix ambiguous absolute paths under Windows"
      mingw: avoid const warning

Stephen P. Smith (1):
      How to keep a project's canonical history correct.

Steve Hoelzer (1):
      environment.c: enable core.preloadindex by default

Tanay Abhra (4):
      string-list: spell all values out that are given to a string_list initializer
      imap-send: use skip_prefix instead of using magic numbers
      string-list: add string_list initializer helper function
      replace memset with string-list initializers

Theodore Leblond (1):
      compat/poll: sleep 1 millisecond to avoid busy wait

Thorsten Glaser (1):
      builtin/tag.c: show tag name to hint in the message editor

Torsten Bögershausen (7):
      utf8.c: use a table for double_width
      utf8: make it easier to auto-update git_wcwidth()
      t5551: fix the 50,000 tag test
      t9001: avoid non-portable '\n' with sed
      Update of unicode_width.h to Unicode Version 7.0
      t0025: rename the test files
      t0027: combinations of core.autocrlf, core.eol and text

Trần Ngọc Quân (1):
      l10n: Init Vietnamese translation

W. Trevor King (1):
      Documentation: mention config sources for @{upstream}

William Giokas (1):
      svn-fe: conform to pep8

Yi EungJun (1):
      http: fix charset detection of extract_content_type()

Øyvind A. Holm (1):
      .gitignore: "git-verify-commit" is a generated file


Version v2.0.5; changes since v2.0.4:
-------------------------------------

Jeff King (8):
      unpack-trees: propagate errors adding entries to the index
      read-tree: add tests for confusing paths like ".." and ".git"
      verify_dotfile(): reject .git case-insensitively
      t1450: refactor ".", "..", and ".git" fsck tests
      fsck: notice .git case-insensitively
      utf8: add is_hfs_dotgit() helper
      read-cache: optionally disallow HFS+ .git variants
      fsck: complain about HFS+ ".git" aliases in trees

Johannes Schindelin (3):
      path: add is_ntfs_dotgit() helper
      read-cache: optionally disallow NTFS .git variants
      fsck: complain about NTFS ".git" aliases in trees

Junio C Hamano (3):
      Git 1.8.5.6
      Git 1.9.5
      Git 2.0.5

Wieland Hoffmann (1):
      git-tag.txt: Add a missing hyphen to `-s`


Version v2.0.4; changes since v2.0.3:
-------------------------------------

Fabian Ruch (1):
      commit --amend: test specifies authorship but forgets to check

Jeff King (8):
      alloc: write out allocator definitions
      move setting of object->type to alloc_* functions
      parse_object_buffer: do not set object type
      add object_as_type helper for casting objects
      alloc: factor out commit index
      object_as_type: set commit index
      diff-tree: avoid lookup_unknown_object
      t4013: test diff-tree's --stdin commit formatting

Junio C Hamano (1):
      Git 2.0.4

Ramsay Jones (1):
      alloc.c: remove the alloc_raw_commit_node() function


Version v2.0.3; changes since v2.0.2:
-------------------------------------

Abbaad Haider (1):
      http-push.c: make CURLOPT_IOCTLDATA a usable pointer

Ben Walton (1):
      compat/bswap.h: fix endianness detection

Brian Gesiak (12):
      builtin/ls-remote.c: rearrange xcalloc arguments
      builtin/remote.c: rearrange xcalloc arguments
      commit.c: rearrange xcalloc arguments
      config.c: rearrange xcalloc arguments
      diff.c: rearrange xcalloc arguments
      http-push.c: rearrange xcalloc arguments
      imap-send.c: rearrange xcalloc arguments
      notes.c: rearrange xcalloc arguments
      pack-revindex.c: rearrange xcalloc arguments
      reflog-walk.c: rearrange xcalloc arguments
      remote.c: rearrange xcalloc arguments
      transport-helper.c: rearrange xcalloc arguments

Charles Bailey (2):
      compat/bswap.h: detect endianness on more platforms that don't use BYTE_ORDER
      filter-branch: eliminate duplicate mapped parents

Elia Pinto (1):
      scripts: "export VAR=VALUE" construct is not portable

Jeremiah Mahler (3):
      Documentation: wording fixes in the user manual and glossary
      t/t7810-grep.sh: remove duplicate test_config()
      api-strbuf.txt minor typos

Johannes Sixt (1):
      fix brown paper bag breakage in t5150-request-pull.sh

Jonathan McCrohan (1):
      git-instaweb: add support for Apache 2.4

Junio C Hamano (3):
      compat/bswap.h: restore preference __BIG_ENDIAN over BIG_ENDIAN
      scripts: more "export VAR=VALUE" fixes
      Git 2.0.3

Michael J Gruber (1):
      log: correctly identify mergetag signature verification status

Philip Oakley (1):
      doc: give some guidelines for error messages

René Scharfe (2):
      use xcalloc() to allocate zero-initialized memory
      use xmemdupz() to allocate copies of strings given by start and length

Stefan Beller (2):
      git.1: switch homepage for stats
      .mailmap: combine Stefan Beller's emails

Stepan Kasal (1):
      t5000, t5003: do not use test_cmp to compare binary files

Yi EungJun (1):
      http-protocol.txt: Basic Auth is defined in RFC 2617, not RFC 2616

Zoltan Klinger (1):
      log: fix indentation for --graph --show-signature

brian m. carlson (1):
      Documentation: fix missing text for rev-parse --verify


Version v2.0.2; changes since v2.0.1:
-------------------------------------

Jeff King (27):
      repack: do not accidentally pack kept objects by default
      repack: respect pack.writebitmaps
      repack: s/write_bitmap/&s/ in code
      commit_tree: take a pointer/len pair rather than a const strbuf
      replace dangerous uses of strbuf_attach
      alloc: include any-object allocations in alloc_report
      commit: push commit_index update into alloc_commit_node
      do not create "struct commit" with xcalloc
      logmsg_reencode: return const buffer
      sequencer: use logmsg_reencode in get_message
      provide a helper to free commit buffer
      provide a helper to set the commit buffer
      provide helpers to access the commit buffer
      use get_cached_commit_buffer where appropriate
      use get_commit_buffer to avoid duplicate code
      convert logmsg_reencode to get_commit_buffer
      use get_commit_buffer everywhere
      commit-slab: provide a static initializer
      commit: convert commit->buffer to a slab
      commit: record buffer length in cache
      reuse cached commit buffer when parsing signatures
      t7510: stop referring to master in later tests
      t7510: test a commit signed by an unknown key
      t7510: check %G* pretty-format output
      pretty: avoid reading past end-of-string with "%G"
      move "%G" format test from t7510 to t6006
      t7300: repair filesystem permissions with test_when_finished

Junio C Hamano (4):
      t0008: do not depend on 'echo' handling backslashes specially
      builtin/clone.c: detect a clone starting at a tag correctly
      Start preparing for 2.0.2
      Git 2.0.2

Matthew Chen (1):
      submodule: document "sync --recursive"

Michael J Gruber (1):
      t7510: use consistent &&-chains in loop

Pasha Bolokhov (1):
      dir.c:trim_trailing_spaces(): fix for " \ " sequence

René Scharfe (2):
      sha1_file: avoid overrunning alternate object base string
      annotate: use argv_array

Ronnie Sahlberg (1):
      enums: remove trailing ',' after last item in enum

brian m. carlson (1):
      rebase--merge: fix --skip with two conflicts in a row


Version v2.0.1; changes since v2.0.0:
-------------------------------------

Alexey Shumkin (5):
      t4205 (log-pretty-formats): don't hardcode SHA-1 in expected outputs
      t4041, t4205, t6006, t7102: don't hardcode tested encoding value
      t4205 (log-pretty-format): use `tformat` rather than `format`
      t4205, t6006: add tests that fail with i18n.logOutputEncoding set
      pretty.c: format string with truncate respects logOutputEncoding

David Turner (2):
      merge-recursive.c: fix case-changing merge bug
      mv: allow renaming to fix case on case insensitive filesystems

Felipe Contreras (1):
      rerere: fix for merge.conflictstyle

Jacek Konieczny (1):
      pull: do not abuse 'break' inside a shell 'case'

Jeff King (7):
      commit: do not complain of empty messages from -C
      index-pack: distinguish missing objects from type errors
      run_diff_files: do not look at uninitialized stat data
      open_sha1_file: report "most interesting" errno
      move "--follow needs one pathspec" rule to diff_setup_done
      t5537: re-drop http tests
      update-index: fix segfault with missing --cacheinfo argument

Jens Lehmann (2):
      status/commit: show staged submodules regardless of ignore config
      commit -m: commit staged submodules regardless of ignore config

Jens Lindström (3):
      remote rm: delete remote configuration as the last
      remote: repack packed-refs once when deleting multiple refs
      remote prune: optimize "dangling symref" check/warning

Jiang Xin (2):
      blame: fix broken time_buf paddings in relative timestamp
      blame: dynamic blame_date_width for different locales

Johannes Schindelin (1):
      git grep -O -i: if the pager is 'less', pass the '-I' option

John Keeping (2):
      completion: add a note that merge options are shared
      completion: add missing options for git-merge

Junio C Hamano (5):
      apply --ignore-space-change: lines with and without leading whitespaces do not match
      Git 1.9.4
      shortlog: allow --exclude=<glob> to be passed
      revision: parse "git log -<count>" more carefully
      Git 2.0.1

Jörn Engel (1):
      pager: do allow spawning pager recursively

Matthieu Moy (1):
      rebase -i: test "Nothing to do" case with autostash

Max Kirillov (1):
      git-show: fix 'git show -s' to not add extra terminator after merge commit

Michael Naumov (1):
      sideband.c: do not use ANSI control sequence on non-terminal

Nguyễn Thái Ngọc Duy (2):
      index-pack: work around thread-unsafe pread()
      gc --auto: do not lock refs in the background

Nick Alcock (1):
      t5538: move http push tests out to t5542

Ramkumar Ramachandra (1):
      rebase -i: handle "Nothing to do" case with autostash

René Scharfe (2):
      mailinfo: use strcmp() for string comparison
      pack-objects: use free()+xcalloc() instead of xrealloc()+memset()

Yiannis Marangos (2):
      wrapper.c: add xpread() similar to xread()
      read-cache.c: verify index file before we opportunistically update it

brian m. carlson (1):
      blame: correctly handle files regardless of autocrlf

Øystein Walle (1):
      config: respect '~' and '~user' in mailmap.file


Version v2.0.0; changes since v2.0.0-rc4:
-----------------------------------------

Junio C Hamano (2):
      Update draft release notes to 2.0
      Git 2.0


Version v2.0.0-rc4; changes since v2.0.0-rc3:
---------------------------------------------

Alexander Shopov (1):
      l10n: Updated Bulgarian translation of git (1307t0f921u)

Anders Kaseorg (1):
      Documentation/technical/api-hashmap: remove source highlighting

Felipe Contreras (2):
      contrib: completion: fix 'eread()' namespace
      contrib: remote-helpers: add move warnings (v2.0)

Grégoire Paris (1):
      fr: a lot of good fixups

Jason St. John (1):
      RelNotes/2.0.0.txt: Fix several grammar issues, notably a lack of hyphens, double quotes, or articles

Jens Lehmann (1):
      git-gui: tolerate major version changes when comparing the git version

Junio C Hamano (5):
      request-pull: resurrect for-linus -> tags/for-linus DWIM
      Revert "Merge branch 'fc/transport-helper-sync-error-fix'"
      remote-helpers: point at their upstream repositories
      Revert "Merge branch 'jc/graduate-remote-hg-bzr' (early part)"
      Git 2.0-rc4

Richard Hansen (1):
      git-prompt.sh: don't assume the shell expands the value of PS1


Version v2.0.0-rc3; changes since v2.0.0-rc2:
---------------------------------------------

Jonathan Nieder (1):
      shell doc: remove stray "+" in example

Junio C Hamano (4):
      Update draft release notes for 2.0
      Start preparing for 1.9.3
      Git 1.9.3
      Git 2.0-rc3

Peter Krefting (1):
      l10n: Fix a couple of typos in the Swedish translation

Tolga Ceylan (1):
      git-p4: format-patch to diff-tree change breaks binary patches

Øyvind A. Holm (1):
      RelNotes/2.0.0: Grammar and typo fixes


Version v2.0.0-rc2; changes since v2.0.0-rc1:
---------------------------------------------

Dave Borowitz (1):
      Makefile: default to -lcurl when no CURL_CONFIG or CURLDIR

Jean-Noël Avila (1):
      l10n: fr translation for v2.0.0rc0 (2228t)

Jeff King (1):
      run_external_diff: use an argv_array for the command line

Jiang Xin (2):
      l10n: git.pot: v2.0.0 round 1 (45 new, 28 removed)
      l10n: zh_CN.po: translate 46 new messages (2229t0f0u)

Junio C Hamano (2):
      Revert the whole "ask curl-config" topic for now
      Git 2.0-rc2

Kyle J. McKay (1):
      t9117: use --prefix "" instead of --prefix=""

Martin Erik Werner (1):
      setup: fix windows path buffer over-stepping

Max Kirillov (1):
      Documentation: git-gui: describe gui.displayuntracked

Peter Krefting (1):
      l10n: Update Swedish translation (2228t0f0u)

Ralf Thielow (3):
      l10n: de.po: correct translation of "completed" after resolving deltas
      l10n: de.po: translate 45 new messages
      l10n: de.po: improve hint for autocorrected command execution

Richard Hansen (1):
      git-prompt.sh: don't put unsanitized branch names in $PS1

Trần Ngọc Quân (1):
      l10n: vi.po (2228t): Update and minor fix


Version v2.0.0-rc1; changes since v2.0.0-rc0:
---------------------------------------------

Dave Borowitz (2):
      Makefile: use curl-config to determine curl flags
      Makefile: allow static linking against libcurl

Elia Pinto (14):
      howto-index.sh: use the $( ... ) construct for command substitution
      install-webdoc.sh: use the $( ... ) construct for command substitution
      git-checkout.sh: use the $( ... ) construct for command substitution
      git-clone.sh: use the $( ... ) construct for command substitution
      git-commit.sh: use the $( ... ) construct for command substitution
      git-fetch.sh: use the $( ... ) construct for command substitution
      git-ls-remote.sh: use the $( ... ) construct for command substitution
      git-merge.sh: use the $( ... ) construct for command substitution
      git-repack.sh: use the $( ... ) construct for command substitution
      git-resolve.sh: use the $( ... ) construct for command substitution
      git-revert.sh: use the $( ... ) construct for command substitution
      git-tag.sh: use the $( ... ) construct for command substitution
      t9360-mw-to-git-clone.sh: use the $( ... ) construct for command substitution
      t9362-mw-to-git-utf8.sh: use the $( ... ) construct for command substitution

Felipe Contreras (6):
      transport-helper: remove barely used xchgline()
      remote-helpers: make recvline return an error
      transport-helper: propagate recvline() error pushing
      transport-helper: trivial cleanup
      transport-helper: fix sync issue on crashes
      t5801 (remote-helpers): cleanup environment sets

Jiang Xin (3):
      i18n: fix uncatchable comments for translators in date.c
      i18n: remove obsolete comments for translators in diffstat generation
      i18n: only extract comments marked with "TRANSLATORS:"

Johan Herland (1):
      Git 2.0: git svn: Set default --prefix='origin/' if --prefix is not given

Junio C Hamano (3):
      i18n: mention "TRANSLATORS:" marker in Documentation/CodingGuidelines
      Update draft release notes to 2.0
      Git 2.0-rc1

Kyle J. McKay (3):
      rebase: avoid non-function use of "return" on FreeBSD
      Revert "rebase: fix run_specific_rebase's use of "return" on FreeBSD"
      ewah_bitmap.c: do not assume size_t and eword_t are the same size


Version v2.0.0-rc0; changes since v1.9.5:
-----------------------------------------

Adam (1):
      branch.c: install_branch_config: simplify if chain

Albert L. Lash, IV (4):
      docs/merge-strategies: remove hyphen from mis-merges
      docs/git-remote: capitalize first word of initial blurb
      docs/git-clone: clarify use of --no-hardlinks option
      docs/git-blame: explain more clearly the example pickaxe use

Andrew Keller (1):
      gitweb: Avoid overflowing page body frame with large images

Astril Hayato (1):
      Documentation/gitk: document the location of the configulation file

Benoit Sigoure (1):
      git-compat-util.h: #undef (v)snprintf before #define them

Brian Bourn (2):
      diff-no-index: rename read_directory()
      diff-no-index: replace manual "."/".." check with is_dot_or_dotdot()

Brian Gesiak (3):
      t3200-branch: test setting branch as own upstream
      branch: use skip_prefix() in install_branch_config()
      rebase: allow "-" short-hand for the previous branch

Charles Bailey (2):
      dir.c: make git_fnmatch() not inline
      tests: don't rely on strerror text when testing rmdir failure

Chris Angelico (1):
      config.txt: third-party tools may and do use their own variables

Chris Packham (2):
      Documentation/git-am: Document supported --patch-format options
      Documentation/git-am: typofix

Christian Couder (1):
      strbuf: remove prefixcmp() and suffixcmp()

David Aguilar (2):
      pull: add pull.ff configuration
      pull: add --ff-only to the help text

David Kastrup (6):
      builtin/blame.c: struct blame_entry does not need a prev link
      builtin/blame.c: eliminate same_suspect()
      builtin/blame.c::prepare_lines: fix allocation size of sb->lineno
      blame.c: prepare_lines should not call xrealloc for every line
      builtin/blame.c::find_copy_in_blob: no need to scan for region end
      skip_prefix(): scan prefix only once

David Tran (1):
      tests: use "env" to run commands with temporary env-var settings

Dirk Wallenstein (1):
      doc: status, remove leftover statement about '#' prefix

Dmitry Marakasov (1):
      configure.ac: link with -liconv for locale_charset()

Dmitry S. Dolzhenko (15):
      commit.c: use the generic "sha1_pos" function for lookup
      builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path()
      bundle.c: use ALLOC_GROW() in add_to_ref_list()
      cache-tree.c: use ALLOC_GROW() in find_subtree()
      commit.c: use ALLOC_GROW() in register_commit_graft()
      diff.c: use ALLOC_GROW()
      diffcore-rename.c: use ALLOC_GROW()
      patch-ids.c: use ALLOC_GROW() in add_commit()
      replace_object.c: use ALLOC_GROW() in register_replace_object()
      reflog-walk.c: use ALLOC_GROW()
      dir.c: use ALLOC_GROW() in create_simplify()
      attr.c: use ALLOC_GROW() in handle_attr_line()
      builtin/mktree.c: use ALLOC_GROW() in append_to_tree()
      read-cache.c: use ALLOC_GROW() in add_index_entry()
      sha1_file.c: use ALLOC_GROW() in pretend_sha1_file()

Elia Pinto (9):
      bisect.c: reduce scope of variable
      builtin/apply.c: reduce scope of variables
      builtin/blame.c: reduce scope of variables
      builtin/clean.c: reduce scope of variable
      builtin/commit.c: reduce scope of variables
      builtin/fetch.c: reduce scope of variable
      builtin/gc.c: reduce scope of variables
      check-builtins.sh: use the $(...) construct for command substitution
      git-am.sh: use the $(...) construct for command substitution

Eric Sunshine (2):
      name-hash: retire unused index_name_exists()
      sh-i18n--envsubst: retire unused string_list_member()

Fabian Ruch (1):
      add: use struct argv_array in run_add_interactive()

Felipe Contreras (10):
      transport-helper: mismerge fix
      transport-helper: don't update refs in dry-run
      transport-helper: add 'force' to 'export' helpers
      transport-helper: check for 'forced update' message
      remote-helpers: allow all tests running from any dir
      remote-hg: always normalize paths
      remote-bzr: add support for older versions
      completion: fix completing args of aliased "push", "fetch", etc.
      remote-bzr: trivial test fix
      prompt: fix missing file errors in zsh

Hiroyuki Sano (1):
      fsck: use bitwise-or assignment operator to set flag

Ilya Bobyr (1):
      rev-parse --parseopt: option argument name hints

Jacopo Notarstefano (2):
      git-bisect.sh: fix a few style issues
      branch.c: delete size check of newly tracked branch names

Jeff King (43):
      pack-objects: split add_object_entry
      repack: stop using magic number for ARRAY_SIZE(exts)
      repack: turn exts array into array-of-struct
      repack: handle optional files created by pack-objects
      t: add basic bitmap functionality tests
      t/perf: add tests for pack bitmaps
      cat-file: refactor error handling of batch_objects
      cat-file: fix a minor memory leak in batch_objects
      do not discard revindex when re-preparing packfiles
      block-sha1: factor out get_be and put_be wrappers
      read-cache: use get_be32 instead of hand-rolled ntoh_l
      tests: auto-set git-daemon port
      ewah: unconditionally ntohll ewah data
      tests: turn on network daemon tests by default
      http: never use curl_easy_perform
      config: disallow relative include paths from blobs
      docs: clarify remote restrictions for git-upload-archive
      CodingGuidelines: mention C whitespace rules
      repack: add `repack.packKeptObjects` config var
      docs: mark info/grafts as outdated
      match_explicit: hoist refspec lhs checks into their own function
      match_explicit_lhs: allow a "verify only" mode
      push: detect local refspec errors early
      cat-file: restore warn_on_object_refname_ambiguity flag
      rev-list: disable object/refname ambiguity check with --stdin
      pack-objects: show progress for reused packfiles
      pack-objects: show reused packfile objects in "Counting objects"
      pack-objects: turn off bitmaps when skipping objects
      subtree: initialize "prefix" variable
      t/Makefile: stop setting GIT_CONFIG
      t/test-lib: drop redundant unset of GIT_CONFIG
      t: drop useless sane_unset GIT_* calls
      t: stop using GIT_CONFIG to cross repo boundaries
      t: prefer "git config --file" to GIT_CONFIG with test_must_fail
      t: prefer "git config --file" to GIT_CONFIG
      t0001: make symlink reinit test more careful
      t0001: use test_path_is_*
      t0001: use test_config_global
      t0001: use test_must_fail
      t0001: drop useless subshells
      t0001: drop subshells just for "cd"
      pack-objects: do not reuse packfiles without --delta-base-offset
      config.c: mark die_bad_number as NORETURN

Jens Lehmann (2):
      submodule: don't access the .gitmodules cache entry after removing it
      submodule update: consistently document the '--checkout' option

Johan Herland (1):
      notes: disallow reusing non-blob as a note object

Johannes Sixt (11):
      t0008: skip trailing space test on Windows
      userdiff: support C++ ->* and .* operators in the word regexp
      userdiff: support unsigned and long long suffixes of integer constants
      t4018: an infrastructure to test hunk headers
      t4018: convert perl pattern tests to the new infrastructure
      t4018: convert java pattern test to the new infrastructure
      t4018: convert custom pattern test to the new infrastructure
      t4018: reduce test files for pattern compilation tests
      t4018: test cases for the built-in cpp pattern
      t4018: test cases showing that the cpp pattern misses many anchor points
      userdiff: have 'cpp' hunk header pattern catch more C++ anchor points

John Keeping (4):
      notes-utils: handle boolean notes.rewritemode correctly
      utf8: fix iconv error detection
      utf8: use correct type for values in interval table
      builtin/mv: don't use memory after free

John Marshall (1):
      stash doc: mention short form -k in save description

Jonathan Nieder (3):
      am doc: add a pointer to relevant hooks
      .gitignore: test-hashmap is a generated file
      test-hashmap.c: drop unnecessary #includes

Junio C Hamano (34):
      git add <pathspec>... defaults to "-A"
      git add: -u/-A now affects the entire working tree
      core.statinfo: remove as promised in Git 2.0
      push: switch default from "matching" to "simple"
      diff: remove "diff-files -q" in a version of Git in a distant future
      push: switch default from "matching" to "simple"
      open_istream(): do not dereference NULL in the error case
      combine-diff: simplify intersect_paths() further
      commit-tree: add and document --no-gpg-sign
      request-pull: pick up tag message as before
      request-pull: test updates
      request-pull: resurrect "pretty refname" feature
      *.sh: drop useless use of "env"
      tag: grok "--with" as synonym to "--contains"
      Start preparing for Git 2.0
      request-pull: documentation updates
      Update draft release notes to Git 2.0
      Update draft release notes to Git 2.0
      Update draft release notes to 2.0
      t1502: protect runs of SPs used in the indentation
      parse-options: multi-word argh should use dash to separate words
      update-index: teach --cacheinfo a new syntax "mode,sha1,path"
      parse-options: make sure argh string does not have SP or _
      Update draft release notes to 2.0
      Update draft release notes to 2.0
      parse-options: add cast to correct pointer type to OPT_SET_PTR
      Update draft release notes to 2.0
      Revert "Merge branch 'wt/doc-submodule-name-path-confusion-2'"
      Revert "submodule: explicit local branch creation in module_clone"
      Revert part of 384364b (Start preparing for Git 2.0, 2014-03-07)
      Update draft release notes to 2.0
      Update draft release notes to 2.0
      Update draft release notes for 2.0
      Git 2.0-rc0

Karsten Blees (14):
      add a hashtable implementation that supports O(1) removal
      buitin/describe.c: use new hash map implementation
      diffcore-rename.c: move code around to prepare for the next patch
      diffcore-rename.c: simplify finding exact renames
      diffcore-rename.c: use new hash map implementation
      name-hash.c: use new hash map implementation for directories
      name-hash.c: remove unreferenced directory entries
      name-hash.c: use new hash map implementation for cache entries
      name-hash.c: remove cache entries instead of marking them CE_UNHASHED
      remove old hash.[ch] implementation
      fix 'git update-index --verbose --again' output
      builtin/update-index.c: cleanup update_one
      read-cache.c: fix memory leaks caused by removed cache entries
      hashmap.h: use 'unsigned int' for hash-codes everywhere

Kirill A. Shutemov (3):
      builtin/config.c: rename check_blob_write() -> check_write()
      config: change git_config_with_options() interface
      config: teach "git config --file -" to read from the standard input

Kirill Smelkov (10):
      tree-diff: allow diff_tree_sha1 to accept NULL sha1
      tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL
      line-log: convert to using diff_tree_sha1()
      revision: convert to using diff_tree_sha1()
      tree-walk: finally switch over tree descriptors to contain a pre-parsed entry
      diffcore-order: export generic ordering interface
      diff test: add tests for combine-diff with orderfile
      combine-diff: optimize combine_diff_path sets intersection
      combine-diff: combine_diff_path.len is not needed anymore
      tests: add checking that combine-diff emits only correct paths

Lars Gullik Bjønnes (1):
      git-contacts: do not fail parsing of good diffs

Linus Torvalds (2):
      request-pull: more strictly match local/remote branches
      request-pull: allow "local:remote" to specify names on both ends

Marat Radchenko (5):
      MSVC: allow linking with the cURL library
      MSVC: link in invalidcontinue.obj for better POSIX compatibility
      MSVC: fix t0040-parse-options crash
      parse-options: remove unused OPT_SET_PTR
      MSVC: allow using ExtUtils::MakeMaker

Max Horn (2):
      transport-helper.c: do not overwrite forced bit
      remote-hg: do not fail on invalid bookmarks

Michael Haggerty (14):
      rename read_replace_refs to check_replace_refs
      replace_object: use struct members instead of an array
      find_pack_entry(): document last_found_pack
      sha1_file_name(): declare to return a const string
      sha1_file.c: document a bunch of functions defined in the file
      Add docstrings for lookup_replace_object() and do_lookup_replace_object()
      Document some functions defined in object.c
      cache_tree_find(): remove redundant checks
      cache_tree_find(): find the end of path component using strchrnul()
      cache_tree_find(): fix comment formatting
      cache_tree_find(): remove redundant check
      cache_tree_find(): remove early return
      cache_tree_find(): use path variable when passing over slashes
      git-multimail: update to version 1.0.0

Nguyễn Thái Ngọc Duy (24):
      count-objects: recognize .bitmap in garbage-checking
      t7101, t7014: rename test files to indicate what that file is for
      reset: support "--mixed --intent-to-add" mode
      daemon: move daemonize() to libgit.a
      gc: config option for running --auto in background
      dir: warn about trailing spaces in exclude patterns
      dir: ignore trailing spaces in exclude patterns
      wt-status.c: make cut_line[] const to shrink .data section a bit
      wt-status.c: move cut-line print code out to wt_status_add_cut_line
      use wildmatch() directly without fnmatch() wrapper
      Revert "test-wildmatch: add "perf" command to compare wildmatch and fnmatch"
      stop using fnmatch (either native or compat)
      actually remove compat fnmatch source code
      sha1_file: fix delta_stack memory leak in unpack_entry
      i18n: mark all progress lines for translation
      commit: add --cleanup=scissors
      tag: support --sort=<spec>
      strbuf: style fix -- top opening bracket on a separate line
      upload-pack: send shallow info over stdin to pack-objects
      connect.c: SP after "}", not TAB
      object.h: centralize object flag allocation
      log: add --show-linear-break to help see non-linear history
      gc --aggressive: make --depth configurable
      environment.c: fix constness for odb_pack_keep()

Nicolas Vigier (10):
      cherry-pick, revert: add the --gpg-sign option
      git-sh-setup.sh: add variable to use the stuck-long mode
      am: parse options in stuck-long mode
      am: add the --gpg-sign option
      rebase: remove useless arguments check
      rebase: don't try to match -M option
      rebase: parse options in stuck-long mode
      rebase: add the --gpg-sign option
      commit-tree: add the commit.gpgsign option to sign all commits
      test the commit.gpgsign config option

Ralf Thielow (1):
      help.c: rename function "pretty_print_string_list"

René Scharfe (13):
      t7810: add missing variables to tests in loop
      grep: support -h (no header) with --count
      t4209: set up expectations up front
      t4209: factor out helper function test_log()
      t4209: factor out helper function test_log_icase()
      t4209: use helper functions to test --grep
      t4209: use helper functions to test --author
      pickaxe: honor -i when used with -S and --pickaxe-regex
      pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe()
      pickaxe: move pickaxe() after pickaxe_match()
      pickaxe: call strlen only when necessary in diffcore_pickaxe_count()
      pickaxe: simplify kwset loop in contains()
      rev-parse: fix typo in example on manpage

Richard Hansen (2):
      test-hg.sh: tests are now expected to pass
      remote-bzr: support the new 'force' option

Richard Lowe (1):
      diffcore.h: be explicit about the signedness of is_binary

Roberto Tyley (1):
      Documentation: fix documentation AsciiDoc links for external urls

Rohit Mani (1):
      use strchrnul() in place of strchr() and strlen()

Scott J. Goldman (1):
      add uploadarchive.allowUnreachable option

Sebastian Schuberth (1):
      t5510: Do not use $(pwd) when fetching / pushing / pulling via rsync

Simon Ruderich (2):
      git-config: document interactive.singlekey requires Term::ReadKey
      git-add--interactive: warn if module for interactive.singlekey is missing

Sun He (3):
      write_pack_file: use correct variable in diagnostic
      finish_tmp_packfile():use strbuf for pathname construction
      Use hashcpy() when copying object names

Sup Yut Sum (1):
      completion: teach --recurse-submodules to fetch, pull and push

Tanay Abhra (1):
      commit.c: use skip_prefix() instead of starts_with()

Tay Ray Chuan (1):
      demonstrate git-commit --dry-run exit code behaviour

Thomas Gummerer (3):
      introduce GIT_INDEX_VERSION environment variable
      test-lib: allow setting the index format version
      read-cache: add index.version config variable

Vicent Marti (16):
      revindex: export new APIs
      pack-objects: refactor the packing list
      pack-objects: factor out name_hash
      revision: allow setting custom limiter function
      sha1_file: export `git_open_noatime`
      compat: add endianness helpers
      ewah: compressed bitmap implementation
      documentation: add documentation for the bitmap format
      pack-bitmap: add support for bitmap indexes
      pack-objects: use bitmaps when packing objects
      rev-list: add bitmap mode to speed up object lists
      pack-objects: implement bitmap writing
      repack: consider bitmaps when performing repacks
      pack-bitmap: implement optional name_hash cache
      ewah: support platforms that require aligned reads
      add `ignore_missing_links` mode to revwalk

Vlad Dogaru (1):
      git-p4: explicitly specify that HEAD is a revision

W. Trevor King (6):
      submodule: make 'checkout' update_module mode more explicit
      submodule: document module_clone arguments in comments
      submodule: explicit local branch creation in module_clone
      Documentation: describe 'submodule update --remote' use case
      doc: submodule.* config are keyed by submodule names
      doc: submodule.*.branch config is keyed by name

Yuxuan Shui (2):
      fsck.c:fsck_ident(): ident points at a const string
      fsck.c:fsck_commit(): use skip_prefix() to verify and skip constant

brian m. carlson (1):
      pull: add the --gpg-sign option.

dequis (1):
      remote-bzr: include authors field in pushed commits

Дилян Палаузов (1):
      Makefile: describe CHARSET_LIB better


Version v1.9.5; changes since v1.9.4:
-------------------------------------

Jeff King (9):
      t7300: repair filesystem permissions with test_when_finished
      unpack-trees: propagate errors adding entries to the index
      read-tree: add tests for confusing paths like ".." and ".git"
      verify_dotfile(): reject .git case-insensitively
      t1450: refactor ".", "..", and ".git" fsck tests
      fsck: notice .git case-insensitively
      utf8: add is_hfs_dotgit() helper
      read-cache: optionally disallow HFS+ .git variants
      fsck: complain about HFS+ ".git" aliases in trees

Johannes Schindelin (3):
      path: add is_ntfs_dotgit() helper
      read-cache: optionally disallow NTFS .git variants
      fsck: complain about NTFS ".git" aliases in trees

Junio C Hamano (2):
      Git 1.8.5.6
      Git 1.9.5

René Scharfe (1):
      annotate: use argv_array

Ronnie Sahlberg (1):
      enums: remove trailing ',' after last item in enum

Wieland Hoffmann (1):
      git-tag.txt: Add a missing hyphen to `-s`

brian m. carlson (1):
      Documentation: fix missing text for rev-parse --verify


Version v1.9.4; changes since v1.9.3:
-------------------------------------

Junio C Hamano (2):
      t3004: add test for ls-files on symlinks via absolute paths
      Git 1.9.4

Martin Erik Werner (6):
      t0060: add test for prefix_path on symlinks via absolute paths
      t0060: add test for prefix_path when path == work tree
      t0060: add tests for prefix_path when path begins with work tree
      setup: add abspath_part_inside_repo() function
      setup: don't dereference in-tree symlinks for absolute paths
      setup: fix windows path buffer over-stepping

Richard Hansen (1):
      git-prompt.sh: don't assume the shell expands the value of PS1


Version v1.9.3; changes since v1.9.2:
-------------------------------------

Jonathan Nieder (1):
      shell doc: remove stray "+" in example

Junio C Hamano (2):
      Start preparing for 1.9.3
      Git 1.9.3

Kyle J. McKay (4):
      test: fix t7001 cp to use POSIX options
      test: fix t5560 on FreeBSD
      rebase: avoid non-function use of "return" on FreeBSD
      Revert "rebase: fix run_specific_rebase's use of "return" on FreeBSD"

Richard Hansen (1):
      git-prompt.sh: don't put unsanitized branch names in $PS1

Tolga Ceylan (1):
      git-p4: format-patch to diff-tree change breaks binary patches

Torsten Bögershausen (1):
      utf8.c: partially update to version 6.3


Version v1.9.2; changes since v1.9.1:
-------------------------------------

Aman Gupta (1):
      update-ref: fail create operation over stdin if ref already exists

Benoit Pierre (7):
      merge hook tests: fix missing '&&' in test
      merge hook tests: use 'test_must_fail' instead of '!'
      test patch hunk editing with "commit -p -m"
      commit: fix patch hunk editing with "commit -p -m"
      merge: fix GIT_EDITOR override for commit hook
      merge hook tests: fix and update tests
      run-command: mark run_hook_with_custom_index as deprecated

Carlos Martín Nieto (2):
      fetch: add a failing test for prunning with overlapping refspecs
      fetch: handle overlaping refspecs on --prune

Jeff King (6):
      shallow: use stat_validity to check for up-to-date file
      shallow: automatically clean up shallow tempfiles
      t/lib-terminal: make TTY a lazy prerequisite
      shallow: verify shallow file after taking lock
      date: recognize bogus FreeBSD gmtime output
      t4212: loosen far-in-future test for AIX

John Keeping (1):
      builtin/mv: fix out of bounds write

Jonathan Nieder (2):
      wt-status: extract the code to compute width for labels
      wt-status: i18n of section labels

Junio C Hamano (8):
      stash pop: mention we did not drop the stash upon failing to apply
      wt-status: make full label string to be subject to l10n
      wt-status: lift the artificual "at least 20 columns" floor
      index-pack: report error using the correct variable
      diff-no-index: correctly diagnose error return from diff_opt_parse()
      Start preparing for 1.9.1
      Update draft release notes to 1.9.2
      Git 1.9.2

Justin Lebar (4):
      Documentation: fix misuses of "nor"
      contrib: fix misuses of "nor"
      comments: fix misuses of "nor"
      code and test: fix misuses of "nor"

Matthieu Moy (1):
      status: disable translation when --porcelain is used

Michael Haggerty (2):
      checkout_entry(): use the strbuf throughout the function
      entry.c: fix possible buffer overflow in remove_subtree()

Ramkumar Ramachandra (1):
      Documentation/merge-strategies: avoid hyphenated commands

Thomas Ackermann (1):
      doc/http-backend: missing accent grave in literal mark-up

Uwe Storbeck (2):
      rebase -i: do not "echo" random user-supplied strings
      test-lib.sh: do not "echo" caller-supplied strings

brian m. carlson (1):
      mv: prevent mismatched data when ignoring errors.


Version v1.9.1; changes since v1.9.0:
-------------------------------------

Brad King (4):
      t3030-merge-recursive: test known breakage with empty work tree
      read-cache.c: refactor --ignore-missing implementation
      read-cache.c: extend make_cache_entry refresh flag with options
      merge-recursive.c: tolerate missing files while refreshing index

David Aguilar (1):
      difftool: support repositories with .git-files

David Sharp (1):
      rev-parse: check i before using argv[i] against argc

Jeff King (12):
      expand_user_path: do not look at NULL path
      handle_path_include: don't look at NULL value
      tests: auto-set LIB_HTTPD_PORT from test name
      t4212: test bogus timestamps with git-log
      fsck: report integer overflow in author timestamps
      date: check date overflow against time_t
      log: handle integer overflow in timestamps
      log: do not segfault on gmtime errors
      remote: handle pushremote config in any order
      show_ident_date: fix tz range check
      clean: respect pathspecs with "-d"
      clean: simplify dir/not-dir logic

Junio C Hamano (4):
      t0003: do not chdir the whole test process
      check-attr: move to the top of working tree when in non-bare repository
      t7800: add a difftool test for .git-files
      Git 1.9.1

Nguyễn Thái Ngọc Duy (17):
      test: rename http fetch and push test files
      pack-protocol.txt: clarify 'obj-id' in the last ACK after 'done'
      protocol-capabilities.txt: refer multi_ack_detailed back to pack-protocol.txt
      protocol-capabilities.txt: document no-done
      fetch-pack: fix deepen shallow over smart http with no-done cap
      t5537: move http tests out to t5539
      reset: optionally setup worktree and refresh index on --mixed
      pathspec: convert some match_pathspec_depth() to ce_path_match()
      pathspec: convert some match_pathspec_depth() to dir_path_match()
      pathspec: rename match_pathspec_depth() to match_pathspec()
      dir.c: prepare match_pathspec_item for taking more flags
      match_pathspec: match pathspec "foo/" against directory "foo"
      pathspec: pass directory indicator to match_pathspec_item()
      clean: replace match_pathspec() with dir_path_match()
      clean: use cache_name_is_other()
      diff.c: move diffcore_skip_stat_unmatch core logic out for reuse later
      diff: do not quit early on stat-dirty files

Sandy Carter (1):
      i18n: proposed command missing leading dash

Thomas Rast (1):
      diff: do not reuse_worktree_file for submodules


Version v1.9.0; changes since v1.9.0-rc3:
-----------------------------------------

Jean-Noël Avila (1):
      l10n: fr: 1.9rc2 2211t

Jiang Xin (3):
      l10n: git.pot: v1.9 round 2 (1 new)
      l10n: zh_CN.po: translate 1 new message (2211t0f0u)
      l10n: zh_CN.po: Disambiguation for rebase

Junio C Hamano (2):
      Git 1.8.5.5
      Git 1.9.0

Michael J Gruber (1):
      release notes: typo fixes

Peter Krefting (1):
      l10n: Update Swedish translation (2211t0f0u)

Ralf Thielow (2):
      l10n: de.po: translate 28 new messages
      l10n: de.po: correct message when hiding commits by craft

Trần Ngọc Quân (1):
      l10n: vi.po (2211t): Updated one new string


Version v1.9.0-rc3; changes since v1.9-rc2:
-------------------------------------------

Adrian Johnson (1):
      userdiff: update Ada patterns

Junio C Hamano (3):
      Git 1.8.5.4
      howto/maintain-git.txt: new version numbering scheme
      Git 1.9.0-rc3

Nguyễn Thái Ngọc Duy (1):
      git-tag.txt: <commit> for --contains is optional

Torsten Bögershausen (1):
      repack.c: rename and unlink pack file if it exists

Øystein Walle (1):
      Documentation: fix typos in man pages


Version v1.9-rc2; changes since v1.9-rc1:
-----------------------------------------

Alexander Shopov (2):
      po/TEAMS: Added Bulgarian team
      l10n: Bulgarian translation of git (222t21f1967u)

Jean-Noël Avila (1):
      [fr] update french translation 2210/2210

Jiang Xin (3):
      l10n: git.pot: v1.9 round 1 (27 new, 11 removed)
      l10n: zh_CN.po: translate 27 messages (2210t0f0u)
      l10n: remove 2 blank translations on Danish, Dutch

Jonathan Nieder (1):
      pager test: make fake pager consume all its input

Junio C Hamano (1):
      Git 1.9-rc2

Peter Krefting (1):
      l10n: Update Swedish translation (2210t0f0u)

Trần Ngọc Quân (1):
      l10n: vi.po (2210t): Updated git-core translation


Version v1.9-rc1; changes since v1.9-rc0:
-----------------------------------------

Alexander Shopov (4):
      git-gui i18n: Initial glossary in Bulgarian
      git-gui l10n: Add 29 more terms to glossary
      git-gui i18n: Added Bulgarian translation
      gitk: Add Bulgarian translation (304t)

Andy Spencer (1):
      tree_entry_interesting: match against all pathspecs

Anthony Baire (1):
      subtree: fix argument validation in add/pull/push

Astril Hayato (1):
      gitk: Comply with XDG base directory specification

Erik Faye-Lund (2):
      prefer xwrite instead of write
      mingw: remove mingw_write

Jeff King (18):
      fetch-pack: do not filter out one-level refs
      interpret_branch_name: factor out upstream handling
      interpret_branch_name: rename "cp" variable to "at"
      interpret_branch_name: always respect "namelen" parameter
      interpret_branch_name: avoid @{upstream} past colon
      interpret_branch_name: find all possible @-marks
      diff_filespec: reorder dirty_submodule macro definitions
      diff_filespec: drop funcname_pattern_ident field
      diff_filespec: drop xfrm_flags field
      diff_filespec: reorder is_binary field
      diff_filespec: use only 2 bits for is_binary flag
      t/perf: time rev-list with UNINTERESTING commits
      list-objects: only look at cmdline trees with edge_hint
      repack: fix typo in max-pack-size option
      repack: make parsed string options const-correct
      repack: propagate pack-objects options as strings
      t7501: fix "empty commit" test with NO_PERL
      t7700: do not use "touch" unnecessarily

Johannes Sixt (1):
      Makefile: Fix compilation of Windows resource file

John Keeping (3):
      completion: complete merge-base options
      completion: handle --[no-]fork-point options to git-rebase
      Makefile: remove redundant object in git-http{fetch,push}

Jonathan Nieder (3):
      gitignore doc: add global gitignore to synopsis
      git-gui: chmod +x po2msg, windows/git-gui.sh
      gitk: chmod +x po2msg.sh

Junio C Hamano (6):
      Documentation: exclude irrelevant options from "git pull"
      Documentation: "git pull" does not have the "-m" option
      revision: mark contents of an uninteresting tree uninteresting
      revision: propagate flag bits from tags to pointees
      Documentation: make it easier to maintain enumerated documents
      Git 1.9-rc1

Marc Branchaud (1):
      gitk: Replace "next" and "prev" buttons with down and up arrows

Max Kirillov (2):
      git-gui: fallback right pane to packed widgets with Tk 8.4
      gitk: Fix mistype

Michael Haggerty (22):
      safe_create_leading_directories(): fix format of "if" chaining
      safe_create_leading_directories(): reduce scope of local variable
      safe_create_leading_directories(): add explicit "slash" pointer
      safe_create_leading_directories(): rename local variable
      safe_create_leading_directories(): split on first of multiple slashes
      safe_create_leading_directories(): always restore slash at end of loop
      safe_create_leading_directories(): introduce enum for return values
      cmd_init_db(): when creating directories, handle errors conservatively
      safe_create_leading_directories(): add new error value SCLD_VANISHED
      gitattributes: document more clearly where macros are allowed
      refname_match(): always use the rules in ref_rev_parse_rules
      lock_ref_sha1_basic(): on SCLD_VANISHED, retry
      lock_ref_sha1_basic(): if locking fails with ENOENT, retry
      remove_dir_recurse(): tighten condition for removing unreadable dir
      remove_dir_recurse(): handle disappearing files and directories
      rename_ref(): extract function rename_tmp_log()
      rename_tmp_log(): handle a possible mkdir/rmdir race
      rename_tmp_log(): limit the number of remote_empty_directories() attempts
      rename_tmp_log(): on SCLD_VANISHED, retry
      safe_create_leading_directories(): on Windows, \ can separate path components
      Add cross-references between docs for for-each-ref and show-ref
      doc: remote author/documentation sections from more pages

Nguyễn Thái Ngọc Duy (1):
      tree-walk.c: ignore trailing slash on submodule in tree_entry_interesting()

Pat Thoyts (1):
      git-gui 0.19

Paul Mackerras (2):
      gitk: Update copyright dates
      gitk: Indent word-wrapped lines in commit display header

Pete Wyckoff (11):
      git p4 test: wildcards are supported
      git p4 test: ensure p4 symlink parsing works
      git p4: work around p4 bug that causes empty symlinks
      git p4 test: explicitly check p4 wildcard delete
      git p4 test: is_cli_file_writeable succeeds
      git p4 test: run as user "author"
      git p4 test: do not pollute /tmp
      git p4: handle files with wildcards when doing RCS scrubbing
      git p4: fix an error message when "p4 where" fails
      git p4 test: examine behavior with locked (+l) files
      git p4 doc: use two-line style for options with multiple spellings

Ruben Kerkhof (1):
      send-email: /etc/ssl/certs/ directory may not be usable as ca_path

Thomas Ackermann (2):
      create HTML for http-protocol.txt
      http-protocol.txt: don't use uppercase for variable names in "The Negotiation Algorithm"

Thomas Rast (2):
      Documentation/gitk: document -L option
      Documentation: @{-N} can refer to a commit

lin zuojian (1):
      git-svn: memoize _rev_list and rebuild


Version v1.9-rc0; changes since v1.8.5.6:
-----------------------------------------

Anders Kaseorg (1):
      submodule foreach: skip eval for more than one argument

Antoine Pelisse (2):
      Prevent buffer overflows when path is too long
      remote-hg: test 'shared_path' in a moved clone

Benny Siegert (1):
      Add MirBSD support to the build system.

Brodie Rao (1):
      sha1_name: don't resolve refs when core.warnambiguousrefs is false

Carlos Martín Nieto (1):
      send-pack: don't send a thin pack to a server which doesn't support it

Christian Couder (15):
      environment: normalize use of prefixcmp() by removing " != 0"
      builtin/remote: remove postfixcmp() and use suffixcmp() instead
      strbuf: introduce starts_with() and ends_with()
      replace {pre,suf}fixcmp() with {starts,ends}_with()
      rename READ_SHA1_FILE_REPLACE flag to LOOKUP_REPLACE_OBJECT
      replace_object: don't check read_replace_refs twice
      sha1_file.c: add lookup_replace_object_extended() to pass flags
      sha1_object_info_extended(): add an "unsigned flags" parameter
      t6050: show that git cat-file --batch fails with replace objects
      sha1_file: perform object replacement in sha1_object_info_extended()
      builtin/replace: teach listing using short, medium or full formats
      t6050: add tests for listing with --format
      builtin/replace: unset read_replace_refs
      Documentation/git-replace: describe --format option
      replace info: rename 'full' to 'long' and clarify in-code symbols

Crestez Dan Leonard (1):
      git p4: Use git diff-tree instead of format-patch

Felipe Contreras (9):
      test-lib.sh: convert $TEST_DIRECTORY to an absolute path
      test-bzr.sh, test-hg.sh: allow running from any dir
      remote-helpers: add extra safety checks
      remote-hg: fix 'shared path' path
      remote-hg: add tests for special filenames
      abspath: trivial style fix
      t: trivial whitespace cleanups
      fetch: add missing documentation
      remote: fix status with branch...rebase=preserve

Francesco Pretto (1):
      git-submodule.sh: 'checkout' is a valid update mode

Greg Jacobson (1):
      push: enhance unspecified push default warning

Jeff King (24):
      log_tree_diff: die when we fail to parse a commit
      assume parse_commit checks commit->object.parsed
      assume parse_commit checks for NULL commit
      use parse_commit_or_die instead of segfaulting
      use parse_commit_or_die instead of custom message
      checkout: do not die when leaving broken detached HEAD
      sha1write: make buffer const-correct
      use @@PERL@@ in built scripts
      http: return curl's AUTHAVAIL via slot_results
      remote-curl: pass curl slot_results back through run_slot
      drop support for "experimental" loose objects
      t5000: simplify gzip prerequisite checks
      pack-objects: name pack files after trailer hash
      pack-objects doc: treat output filename as opaque
      diff.c: fix some recent whitespace style violations
      builtin/prune.c: use strbuf to avoid having to worry about PATH_MAX
      do not pretend sha1write returns errors
      sha1_object_info_extended: provide delta base sha1s
      cat-file: provide %(deltabase) batch format
      use distinct username/password for http auth tests
      t0000: set TEST_OUTPUT_DIRECTORY for sub-tests
      t0000: simplify HARNESS_ACTIVE hack
      t0000: drop "known breakage" test
      t5531: further "matching" fixups

Jens Lehmann (3):
      submodule update: remove unnecessary orig_flags variable
      mv: better document side effects when moving a submodule
      rm: better document side effects when removing a submodule

Johannes Sixt (1):
      document --exclude option

John Keeping (8):
      repo-config: remove deprecated alias for "git config"
      tar-tree: remove deprecated command
      lost-found: remove deprecated command
      peek-remote: remove deprecated alias of ls-remote
      pull: use merge-base --fork-point when appropriate
      rebase: use reflog to find common base with upstream
      rebase: fix fork-point with zero arguments
      pull: suppress error when no remoteref is found

John Murphy (1):
      git-gui: corrected setup of git worktree under cygwin.

John Szakmeister (1):
      contrib/git-credential-gnome-keyring.c: small stylistic cleanups

Jonathan Nieder (16):
      git-remote-mediawiki: do not remove installed files in "clean" target
      git-remote-mediawiki: honor DESTDIR in "make install"
      git-remote-mediawiki build: make 'install' command configurable
      git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR with whitespace
      Makefile: rebuild perl scripts when perl paths change
      Makefile: add PERLLIB_EXTRA variable that adds to default perl path
      mark Windows build scripts executable
      mark perl test scripts executable
      mark contributed hooks executable
      contrib: remove git-p4import
      test: make FILEMODE a lazy prereq
      test: replace shebangs with descriptions in shell libraries
      remove #!interpreter line from shell libraries
      stop installing git-tar-tree link
      pager: set LV=-c alongside LESS=FRSX
      diff test: reading a directory as a file need not error out

Junio C Hamano (17):
      revision: introduce --exclude=<glob> to tame wildcards
      merge-base: use OPT_CMDMODE and clarify the command line parsing
      merge-base: teach "--fork-point" mode
      rev-list --exclude: tests
      rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
      rev-parse: introduce --exclude=<glob> to tame wildcards
      bundle: use argv-array
      builtin/push.c: use strbuf instead of manual allocation
      push: use remote.$name.push as a refmap
      push: also use "upstream" mapping when pushing a single ref
      Start 1.9 cycle
      Update draft release notes to 1.9
      prune-packed: use strbuf to avoid having to worry about PATH_MAX
      Update draft release notes to 1.9
      Update draft release notes to 1.9
      Update draft release notes to 1.9
      Git 1.9-rc0

Karsten Blees (1):
      gitignore.txt: clarify recursive nature of excluded directories

Krzesimir Nowak (4):
      gitweb: Move check-ref-format code into separate function
      gitweb: Return 1 on validation success instead of passed input
      gitweb: Add a feature for adding more branch refs
      gitweb: Denote non-heads, non-remotes branches

Mads Dørup (1):
      git-gui: Improve font rendering on retina macbooks

Masanari Iida (1):
      git-gui: correct spelling errors in comments

Max Kirillov (2):
      git-gui: Add gui.displayuntracked option
      git-gui: right half window is paned

Michael Haggerty (26):
      t5510: use the correct tag name in test
      t5510: prepare test refs more straightforwardly
      t5510: check that "git fetch --prune --tags" does not prune branches
      api-remote.txt: correct section "struct refspec"
      get_ref_map(): rename local variables
      builtin/fetch.c: reorder function definitions
      get_expanded_map(): add docstring
      get_expanded_map(): avoid memory leak
      fetch: only opportunistically update references based on command line
      fetch --tags: fetch tags *in addition to* other stuff
      fetch --prune: prune only based on explicit refspecs
      query_refspecs(): move some constants out of the loop
      builtin/remote.c: reorder function definitions
      builtin/remote.c:update(): use struct argv_array
      fetch, remote: properly convey --no-prune options to subprocesses
      fetch-options.txt: simplify ifdef/ifndef/endif usage
      git-fetch.txt: improve description of tag auto-following
      ref_remove_duplicates(): avoid redundant bisection
      t5536: new test of refspec conflicts when fetching
      ref_remove_duplicates(): simplify loop logic
      ref_remote_duplicates(): extract a function handle_duplicate()
      handle_duplicate(): mark error message for translation
      fetch: improve the error messages emitted for conflicting refspecs
      shorten_unambiguous_ref(): introduce a new local variable
      gen_scanf_fmt(): delete function and use snprintf() instead
      shorten_unambiguous_ref(): tighten up pointer arithmetic

Nguyễn Thái Ngọc Duy (36):
      wt-status: take the alignment burden off translators
      gettext.c: detect the vsnprintf bug at runtime
      glossary-content.txt: rephrase magic signature part
      Support pathspec magic :(exclude) and its short form :!
      pathspec.c: support adding prefix magic to a pathspec with mnemonic magic
      parse-options: remove OPT_BOOLEAN
      transport.h: remove send_pack prototype, already defined in send-pack.h
      remote.h: replace struct extra_have_objects with struct sha1_array
      send-pack: forbid pushing from a shallow repository
      clone: prevent --reference to a shallow repository
      make the sender advertise shallow commits to the receiver
      connect.c: teach get_remote_heads to parse "shallow" lines
      shallow.c: extend setup_*_shallow() to accept extra shallow commits
      shallow.c: the 8 steps to select new commits for .git/shallow
      shallow.c: steps 6 and 7 to select new commits for .git/shallow
      fetch-pack.c: move shallow update code out of fetch_pack()
      fetch-pack.h: one statement per bitfield declaration
      clone: support remote shallow repository
      fetch: support fetching from a shallow repository
      upload-pack: make sure deepening preserves shallow roots
      fetch: add --update-shallow to accept refs that update .git/shallow
      receive-pack: reorder some code in unpack()
      receive/send-pack: support pushing from a shallow clone
      add GIT_SHALLOW_FILE to propagate --shallow-file to subprocesses
      connected.c: add new variant that runs with --shallow-file
      receive-pack: allow pushes that update .git/shallow
      send-pack: support pushing to a shallow clone
      remote-curl: pass ref SHA-1 to fetch-pack as well
      smart-http: support shallow fetch/clone
      receive-pack: support pushing to a shallow clone via http
      send-pack: support pushing from a shallow clone via http
      clone: use git protocol for cloning shallow repo locally
      prune: clean .git/shallow after pruning objects
      git-clone.txt: remove shallow clone limitations
      commit.c: make "tree" a const pointer in commit_tree*()
      t5537: fix incorrect expectation in test case 10

Nicolas Vigier (2):
      Use the word 'stuck' instead of 'sticked'
      rev-parse --parseopt: add the --stuck-long mode

Pat Thoyts (3):
      git-gui: added gui.maxrecentrepo to extend the number of remembered repos
      git-gui: show the maxrecentrepo config option in the preferences dialog
      git-gui: add menu item to launch a bash shell on Windows.

Paul Mackerras (1):
      gitk: Tag display improvements

Ramkumar Ramachandra (11):
      t6300 (for-each-ref): clearly demarcate setup
      t6300 (for-each-ref): don't hardcode SHA-1 hexes
      for-each-ref: introduce %(HEAD) asterisk marker
      for-each-ref: introduce %(upstream:track[short])
      for-each-ref: introduce %(color:...) for color
      for-each-ref: avoid color leakage
      zsh completion: find matching custom bash completion
      completion: introduce __gitcomp_nl_append ()
      completion: fix branch.autosetup(merge|rebase)
      completion: fix remote.pushdefault
      completion: complete format.coverLetter

Ramsay Jones (2):
      send-pack.c: mark a file-local function static
      shallow: remove unused code

Richard Hansen (6):
      test-bzr.sh, test-hg.sh: prepare for change to push.default=simple
      test-hg.sh: eliminate 'local' bashism
      test-hg.sh: avoid obsolete 'test' syntax
      test-hg.sh: fix duplicate content strings in author tests
      test-hg.sh: help user correlate verbose output with email test
      remote-bzr, remote-hg: fix email address regular expression

Roberto Tyley (1):
      docs: add filter-branch notes on The BFG

Roman Kagan (1):
      git-svn: workaround for a bug in svn serf backend

Samuel Bronson (3):
      t4056: add new tests for "git diff -O"
      diff: let "git diff -O" read orderfile from any file and fail properly
      diff: add diff.orderfile configuration variable

Sebastian Schuberth (3):
      git.c: consistently use the term "builtin" instead of "internal command"
      builtin/help.c: call load_command_list() only when it is needed
      builtin/help.c: speed up is_git_command() by checking for builtin commands first

Thomas Ackermann (1):
      user-manual: improve html and pdf formatting

Thomas Gummerer (4):
      diff: move no-index detection to builtin/diff.c
      diff: don't read index when --no-index is given
      diff: add test for --no-index executed outside repo
      diff: avoid some nesting

Thomas Rast (9):
      commit-slab: document clear_$slabname()
      commit-slab: declare functions "static inline"
      gitk: Support -G option from the command line
      gitk: Refactor per-line part of getblobdiffline and its support
      gitk: Split out diff part in $commitinfo
      gitk: Support showing the gathered inline diffs
      gitk: Recognize -L option
      commit-slab: sizeof() the right type in xrealloc
      config: arbitrary number of matches for --unset and --replace-all

Tom Miller (2):
      fetch --prune: always print header url
      fetch --prune: Run prune before fetching

Vasily Makarov (1):
      get_octopus_merge_bases(): cleanup redundant variable

Zoltan Klinger (1):
      difftool: display the number of files in the diff queue in the prompt

brian m. carlson (2):
      remote-curl: fix large pushes with GSSAPI
      Documentation: document pitfalls with 3-way merge

jcb91 (1):
      remote-hg: avoid buggy strftime()


Version v1.8.5.6; changes since v1.8.5.5:
-----------------------------------------

Jeff King (9):
      t7300: repair filesystem permissions with test_when_finished
      unpack-trees: propagate errors adding entries to the index
      read-tree: add tests for confusing paths like ".." and ".git"
      verify_dotfile(): reject .git case-insensitively
      t1450: refactor ".", "..", and ".git" fsck tests
      fsck: notice .git case-insensitively
      utf8: add is_hfs_dotgit() helper
      read-cache: optionally disallow HFS+ .git variants
      fsck: complain about HFS+ ".git" aliases in trees

Johannes Schindelin (3):
      path: add is_ntfs_dotgit() helper
      read-cache: optionally disallow NTFS .git variants
      fsck: complain about NTFS ".git" aliases in trees

Junio C Hamano (1):
      Git 1.8.5.6

René Scharfe (1):
      annotate: use argv_array

Ronnie Sahlberg (1):
      enums: remove trailing ',' after last item in enum

Wieland Hoffmann (1):
      git-tag.txt: Add a missing hyphen to `-s`

brian m. carlson (1):
      Documentation: fix missing text for rev-parse --verify


Version v1.8.5.5; changes since v1.8.5.4:
-----------------------------------------

Andy Spencer (1):
      tree_entry_interesting: match against all pathspecs

Jeff King (9):
      fetch-pack: do not filter out one-level refs
      interpret_branch_name: factor out upstream handling
      interpret_branch_name: rename "cp" variable to "at"
      interpret_branch_name: always respect "namelen" parameter
      interpret_branch_name: avoid @{upstream} past colon
      interpret_branch_name: find all possible @-marks
      repack: fix typo in max-pack-size option
      repack: make parsed string options const-correct
      repack: propagate pack-objects options as strings

Junio C Hamano (5):
      merge-base: separate "--independent" codepath into its own helper
      merge-base --octopus: reduce the result from get_octopus_merge_bases()
      revision: mark contents of an uninteresting tree uninteresting
      revision: propagate flag bits from tags to pointees
      Git 1.8.5.5

Ruben Kerkhof (1):
      send-email: /etc/ssl/certs/ directory may not be usable as ca_path


Version v1.8.5.4; changes since v1.8.5.3:
-----------------------------------------

Jens Lehmann (1):
      commit -v: strip diffs and submodule shortlogs from the commit message

Johannes Schindelin (1):
      Remove the line length limit for graft files

Johannes Sixt (2):
      git_connect: remove artificial limit of a remote command
      git_connect: factor out discovery of the protocol and its parts

Junio C Hamano (4):
      get_max_fd_limit(): fall back to OPEN_MAX upon getrlimit/sysconf failure
      Documentation: exclude irrelevant options from "git pull"
      Documentation: "git pull" does not have the "-m" option
      Git 1.8.5.4

Nguyễn Thái Ngọc Duy (2):
      clone,fetch: catch non positive --depth option value
      add: don't complain when adding empty project root

Roman Kagan (1):
      git-svn: workaround for a bug in svn serf backend

Thomas Rast (3):
      send-email: pass Debug to Net::SMTP::SSL::new
      send-email: --smtp-ssl-cert-path takes an argument
      send-email: set SSL options through IO::Socket::SSL::set_client_defaults

Torsten Bögershausen (8):
      t5601: remove clear_ssh, refactor setup_ssh_wrapper
      t5601: add tests for ssh
      git fetch-pack: add --diag-url
      t5500: add test cases for diag-url
      git fetch: support host:/~repo
      git_connect(): refactor the port handling for ssh
      connect.c: refactor url parsing
      git_connect(): use common return point

brian m. carlson (1):
      log: properly handle decorations with chained tags

Øystein Walle (1):
      stash: handle specifying stashes with $IFS


Version v1.8.5.3; changes since v1.8.5.2:
-----------------------------------------

Jeff King (5):
      rev-parse: correctly diagnose revision errors before "--"
      rev-parse: be more careful with munging arguments
      cat-file: pass expand_data to print_object_or_die
      cat-file: handle --batch format with missing type/size
      Revert "prompt: clean up strbuf usage"

Johannes Sixt (1):
      mv: let 'git mv file no-such-dir/' error out on Windows, too

Junio C Hamano (1):
      Git 1.8.5.3

Kyle J. McKay (1):
      gc: notice gc processes run by other users

Matthieu Moy (1):
      mv: let 'git mv file no-such-dir/' error out

Nguyễn Thái Ngọc Duy (1):
      daemon: be strict at parsing parameters --[no-]informative-errors

Ralf Thielow (1):
      l10n: de.po: fix translation of 'prefix'

Ramkumar Ramachandra (1):
      for-each-ref: remove unused variable

Thomas Ackermann (1):
      pack-heuristics.txt: mark up the file header properly

W. Trevor King (1):
      Documentation/gitmodules: Only 'update' and 'url' are required


Version v1.8.5.2; changes since v1.8.5.1:
-----------------------------------------

Jason St. John (6):
      Documentation/git-log: update "--log-size" description
      Documentation/git-log.txt: mark-up fix and minor rephasing
      State correct usage of literal examples in man pages in the coding standards
      Documentation/rev-list-options.txt: fix mark-up
      Documentation/rev-list-options.txt: fix some grammatical issues and typos
      Documentation/gitcli.txt: fix double quotes

Jeff King (1):
      unpack-trees: fix "read-tree -u --reset A B" with conflicted index

Johan Herland (1):
      sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs

Junio C Hamano (4):
      t1005: reindent
      t1005: add test for "read-tree --reset -u A B"
      sha1_loose_object_info(): do not return success on missing object
      Git 1.8.5.2

Masanari Iida (3):
      typofixes: fix misspelt comments
      Documentation/technical/http-protocol.txt: typofixes
      contrib: typofixes

Michael Haggerty (1):
      cmd_repack(): remove redundant local variable "nr_packs"

Nguyễn Thái Ngọc Duy (2):
      diff: restrict pathspec limitations to diff b/f case only
      glossary-content.txt: fix documentation of "**" patterns

René Scharfe (1):
      SubmittingPatches: document how to handle multiple patches

Thomas Rast (1):
      Documentation: revamp git-cherry(1)

Torsten Bögershausen (1):
      git-fetch-pack uses URLs like git-fetch


Version v1.8.5.1; changes since v1.8.5:
---------------------------------------

Junio C Hamano (3):
      submodule: do not copy unknown update mode from .gitmodules
      Git 1.8.4.5
      Git 1.8.5.1

Nick Townsend (1):
      ref-iteration doc: add_submodule_odb() returns 0 for success


Version v1.8.5; changes since v1.8.5-rc3:
-----------------------------------------

Junio C Hamano (1):
      Git 1.8.5

Richard Hansen (2):
      remote-hg: don't decode UTF-8 paths into Unicode objects
      remote-hg: don't decode UTF-8 paths into Unicode objects


Version v1.8.5-rc3; changes since v1.8.5-rc2:
---------------------------------------------

Junio C Hamano (3):
      Revert "upload-pack: send non-HEAD symbolic refs"
      Git 1.8.4.4
      Git 1.8.5-rc3

Marc Branchaud (1):
      RelNotes: spelling & grammar fixes

Nguyễn Thái Ngọc Duy (1):
      pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses

Torstein Hegge (1):
      branch: fix --verbose output column alignment


Version v1.8.5-rc2; changes since v1.8.5-rc1:
---------------------------------------------

Jason St. John (1):
      Correct word usage of "timezone" in "Documentation" directory

Jean-Noël Avila (1):
      l10n: fr.po 2194/1294 messages translated

Jiang Xin (2):
      l10n: git.pot: v1.8.5 round 1 (68 new, 9 removed)
      l10n: zh_CN.po: translate 68 messages (2194t0f0u)

Junio C Hamano (3):
      Start preparing for 1.8.4.3
      Git 1.8.4.3
      Git 1.8.5-rc2

Karsten Blees (1):
      gitignore.txt: fix documentation of "**" patterns

Peter Krefting (1):
      l10n: Update Swedish translation (2194t0f0u)

Ralf Thielow (3):
      po/TEAMS: update Thomas Rast's email address
      l10n: de.po: translate 68 new messages
      l10n: de.po: improve error message when pushing to unknown upstream

Trần Ngọc Quân (1):
      l10n: vi.po (2194t): Update and minor fix


Version v1.8.5-rc1; changes since v1.8.5-rc0:
---------------------------------------------

Anders Kaseorg (1):
      cvsserver: Determinize output to combat Perl 5.18 hash randomization

Antoine Pelisse (1):
      remote-hg: unquote C-style paths when exporting

Ben Walton (2):
      Change sed i\ usage to something Solaris' sed can handle
      Avoid difference in tr semantics between System V and BSD

Felipe Contreras (12):
      merge: simplify ff-only option
      t: replace pulls with merges
      revision: add missing include
      branch: trivial style fix
      sha1-name: trivial style cleanup
      transport-helper: trivial style fix
      describe: trivial style fixes
      pretty: trivial style fix
      revision: trivial style fixes
      diff: trivial style fix
      run-command: trivial style fixes
      setup: trivial style fixes

Jeff King (7):
      add-interactive: handle unborn branch in patch mode
      reset: pass real rev name to add--interactive
      howto: add article on recovering a corrupted object
      t: provide a perl() function which uses $PERL_PATH
      t: use perl instead of "$PERL_PATH" where applicable
      for-each-ref: avoid loading objects to print %(objectname)
      subtree: add makefile target for html docs

Jens Lehmann (1):
      mv: Fix spurious warning when moving a file in presence of submodules

Johannes Sixt (4):
      t5300-pack-object: do not compare binary data using test_cmp
      Windows: a test_cmp that is agnostic to random LF <> CRLF conversions
      tests: undo special treatment of CRLF for Windows
      t3200: do not open a HTML manual page when DEFAULT_MAN_FORMAT is html

Jonathan Nieder (1):
      t/README: tests can use perl even with NO_PERL

Junio C Hamano (5):
      doc/pull: clarify the illustrations
      Update draft release notes to 1.8.5
      t4015: simplify sed command that is not even seen by sed
      Update draft release notes to 1.8.5
      Git 1.8.5-rc1

Kacper Kornet (1):
      Fix '\%o' for printf from coreutils

Rüdiger Sonderfeld (1):
      web--browse: Add support for xdg-open

Sitaram Chamarty (1):
      doc/howto: warn about (dumb)http server document being too old

Stefan Beller (2):
      refs: remove unused function invalidate_ref_cache
      cache: remove unused function 'have_git_dir'

Vivien Didelot (2):
      Documentation: restore a space in unpack-objects usage
      Documentation: "pack-file" is not literal in unpack-objects


Version v1.8.5-rc0; changes since v1.8.4.5:
-------------------------------------------

Alexandru Juncu (1):
      git-p4: Fix occasional truncation of symlink contents.

Antoine Pelisse (1):
      remote-hg: fix path when cloning with tilde expansion

Brad King (8):
      reset: rename update_refs to reset_refs
      refs: report ref type from lock_any_ref_for_update
      refs: factor update_ref steps into helpers
      refs: factor delete_ref loose ref step into a helper
      refs: add function to repack without multiple refs
      refs: add update_refs for multiple simultaneous updates
      update-ref: support multiple simultaneous updates
      update-ref: add test cases covering --stdin signature

Brandon Casey (18):
      sha1_file: introduce close_one_pack() to close packs on fd pressure
      Don't close pack fd when free'ing pack windows
      contrib/git-credential-gnome-keyring.c: remove unnecessary pre-declarations
      contrib/git-credential-gnome-keyring.c: remove unused die() function
      contrib/git-credential-gnome-keyring.c: *style* use "if ()" not "if()" etc.
      contrib/git-credential-gnome-keyring.c: add static where applicable
      contrib/git-credential-gnome-keyring.c: exit non-zero when called incorrectly
      contrib/git-credential-gnome-keyring.c: strlen() returns size_t, not ssize_t
      contrib/git-credential-gnome-keyring.c: ensure buffer is non-empty before accessing
      contrib/git-credential-gnome-keyring.c: set Gnome application name
      contrib/git-credential-gnome-keyring.c: use gnome helpers in keyring_object()
      contrib/git-credential-gnome-keyring.c: use secure memory functions for passwds
      contrib/git-credential-gnome-keyring.c: use secure memory for reading passwords
      contrib/git-credential-gnome-keyring.c: use glib memory allocation functions
      contrib/git-credential-gnome-keyring.c: use glib messaging functions
      contrib/git-credential-gnome-keyring.c: report failure to store password
      contrib/git-credential-gnome-keyring.c: support ancient gnome-keyring
      contrib/git-credential-gnome-keyring.c: support really ancient gnome-keyring

Brian Gernhardt (3):
      Makefile: Fix APPLE_COMMON_CRYPTO with BLK_SHA1
      OS X: Fix redeclaration of die warning
      t5551: Remove header from curl cookie file

Christian Couder (7):
      replace: forbid replacing an object with one of a different type
      Documentation/replace: state that objects must be of the same type
      t6050-replace: test that objects are of the same type
      t6050-replace: add test to clean up all the replace refs
      Documentation/replace: add Creating Replacement Objects section
      replace: allow long option names
      t6050-replace: use some long option names

Dale R. Worley (2):
      t0070: test that git_mkstemps correctly checks return value of open()
      diff --no-index: clarify operation when not inside a repository

Dave Borowitz (1):
      http: add http.savecookies option to write out HTTP cookies

Dave Williams (1):
      check-ignore: Add option to ignore index contents

Eric Sunshine (36):
      t8001/t8002: blame: decompose overly-large test
      t8001/t8002: blame: demonstrate -L bounds checking bug
      t8001/t8002: blame: add empty file & partial-line tests
      blame: fix -L bounds checking bug
      t4211: log: demonstrate -L bounds checking bug
      t4211: retire soon-to-be unimplementable tests
      log: fix -L bounds checking bug
      t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
      blame: reject empty ranges -LX,+0 and -LX,-0
      t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
      blame: reject empty ranges -L,+0 and -L,-0
      git-log.txt: place each -L option variation on its own line
      line-range-format.txt: clarify -L:regex usage form
      range-set: publish API for re-use by git-blame -L
      blame: inline one-line function into its lone caller
      blame: accept multiple -L ranges
      t8001/t8002: blame: add tests of multiple -L options
      blame: document multiple -L support
      line-range: teach -L/RE/ to search relative to anchor point
      blame: teach -L/RE/ to search from end of previous -L range
      log: teach -L/RE/ to search from end of previous -L range
      line-range-format.txt: document -L/RE/ relative search
      line-range: teach -L^/RE/ to search from start of file
      line-range: teach -L:RE to search from end of previous -L range
      line-range: teach -L^:RE to search from start of file
      t8001/t8002: blame: add tests of -L line numbers less than 1
      line-range: reject -L line numbers less than 1
      contacts: validate hunk length earlier
      contacts: gather all blame sources prior to invoking git-blame
      contacts: reduce git-blame invocations
      name-hash: refactor polymorphic index_name_exists()
      employ new explicit "exists in index?" API
      name-hash: stop storing trailing '/' on paths in index_state.dir_hash
      dir: revert work-around for retired dangerous behavior
      t7508: avoid non-portable sed expression
      contacts: fix to work in subdirectories

Eric Wong (1):
      http: enable keepalive on TCP sockets

Felipe Contreras (26):
      remote-hg: ensure shared repo is initialized
      remote-hg: add shared repo upgrade
      unpack-trees: plug a memory leak
      remote-bzr: fix export of utf-8 authors
      remote-bzr: make bzr branches configurable per-repo
      remote-hg: fix test
      remote-hg: add missing &&s in the test
      remote-hg: improve basic test
      remote-helpers: trivial style fixes
      remote-helpers: cleanup more global variables
      remote-hg: use notes to keep track of Hg revisions
      reset: trivial refactoring
      branch: trivial style fix
      reset: trivial style cleanup
      add: trivial style cleanup
      sha1-name: pass len argument to interpret_branch_name()
      t: branch: trivial style fix
      t: branch: fix typo
      t: branch: fix broken && chains
      fast-export: make extra_refs global
      fast-export: refactor get_tags_and_duplicates()
      rev-parse test: modernize quoting and whitespace
      rev-parse test: use test_must_fail, not "if <command>; then false; fi"
      rev-parse test: use standard test functions for setup
      Add new @ shortcut for HEAD
      alias: have SP around arithmetic operators

Gerrit Pape (1):
      hooks/post-receive-email: set declared encoding to utf-8

Hiroshige Umino (1):
      cherry-pick: allow "-" as abbreviation of '@{-1}'

Jean-Noël Avila (1):
      l10n: fr.po: 2135/2135 messages translated

Jeff King (22):
      grep: allow to use textconv filters
      clear parsed flag when we free tree buffers
      cat-file: only split on whitespace when %(rest) is used
      test-sha1: add a binary output mode
      sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
      add tests for indexing packs with delta cycles
      test index-pack on packs with recoverable delta cycles
      write_index: optionally allow broken null sha1s
      pager: turn on "cat" optimization for DEFAULT_PAGER
      peel_onion: do not assume length of x_type globals
      t5308: check that index-pack --strict detects duplicate objects
      config: factor out integer parsing from range checks
      config: properly range-check integer values
      config: set errno in numeric git_parse_* functions
      config: make numeric parsing errors more clear
      git-config: always treat --int as 64-bit internally
      t5541: mark passing c-a-s test as success
      cherry-pick: handle "-" after parsing options
      remote: do not copy "origin" string literal
      http: use curl's tcp keepalive if available
      drop redundant semicolon in empty while
      silence gcc array-bounds warning

Jens Lehmann (6):
      mv: move submodules together with their work trees
      mv: move submodules using a gitfile
      submodule.c: add .gitmodules staging helper functions
      mv: update the path entry in .gitmodules for moved submodules
      rm: delete .gitmodules entry of submodules removed from the work tree
      Improve documentation concerning the status.submodulesummary setting

Jens Lindström (1):
      Clear fd after closing to avoid double-close error

Jeremy Huddleston (1):
      imap-send: use Apple's Security framework for base64 encoding

Jiang Xin (6):
      branch: report invalid tracking branch as gone
      status: always show tracking branch even no change
      documentation: clarify notes for clean.requireForce
      test: use unambigous leading path (/foo) for MSYS
      relative_path should honor dos-drive-prefix
      Use simpler relative_path when set_git_dir

Johan Herland (3):
      sample pre-commit hook: use --bool when retrieving config var
      Documentation/git-svn: Promote the use of --prefix in docs + examples
      git-svn: Warn about changing default for --prefix in Git v2.0

Johannes Sixt (1):
      compat/mingw.h: define PRId64

John Keeping (10):
      t9300: document fast-import empty path issues
      fast-import: set valid mode on root tree in "ls"
      fast-import: allow ls or filecopy of the root tree
      fast-import: allow moving the root tree
      rev-parse: remove restrictions on some options
      rev-parse(1): logically group options
      git_remote_helpers: remove little used Python library
      rm: re-use parse_pathspec's trailing-slash removal
      reset: handle submodule with trailing slash
      Documentation/Makefile: make AsciiDoc dblatex dir configurable

Jonathan Nieder (7):
      hooks/post-receive-email: use plumbing instead of git log/show
      hooks/post-receive-email: force log messages in UTF-8
      add -i test: use skip_all instead of repeated PERL prerequisite
      reset test: modernize style
      rev-parse test: use test_cmp instead of "test" builtin
      status test: add missing && to <<EOF blocks
      gc: remove gc.pid file at end of execution

Julien Carsique (1):
      git-prompt.sh: optionally show upstream branch name

Junio C Hamano (60):
      pack-objects: shrink struct object_entry
      diff_opt: track whether flags have been set explicitly
      setup_reflog_action: document the rules for using GIT_REFLOG_ACTION
      cache.h: move remote/connect API out of it
      builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
      check-ignore: the name of the character is NUL, not NULL
      check-attr: the name of the character is NUL, not NULL
      check-ignore -z: a single -z should apply to both input and output
      check-attr -z: a single -z should apply to both input and output
      diff: pass the whole diff_options to diffcore_apply_filter()
      diff: factor out match_filter()
      diff: preparse --diff-filter string argument
      diff: reject unknown change class given to --diff-filter
      diff: allow lowercase letter to specify what change class to exclude
      diff: deprecate -q option to diff-files
      remote.c: add command line option parser for "--force-with-lease"
      push --force-with-lease: implement logic to populate old_sha1_expect[]
      push --force-with-lease: tie it all together
      t5533: test "push --force-with-lease"
      parse-options: add OPT_CMDMODE()
      tag: use OPT_CMDMODE
      http.c: fix parsing of http.sslCertPasswordProtected variable
      config: add generic callback wrapper to parse section.<url>.key
      t5540/5541: smart-http does not support "--force-with-lease"
      send-pack: fix parsing of --force-with-lease option
      push: teach --force-with-lease to smart-http transport
      builtin/config: refactor collect_config()
      config: "git config --get-urlmatch" parses section.<url>.key
      builtin/config.c: compilation fix
      core-tutorial: trim the section on Inspecting Changes
      whatchanged: document its historical nature
      diff --no-index: describe in a separate paragraph
      config: rewrite core.pager documentation
      Start the post-1.8.4 cycle
      contrib/remote-helpers: style updates for test scripts
      contrib/remote-helpers: quote variable references in redirection targets
      Update draft release notes after merging the first batch of topics
      typofix: commit is spelled with two ems
      typofix: cherry is spelled with two ars
      Update draft release notes to 1.8.5 for the second batch of topics
      checkout: update synopsys and documentation on detaching HEAD
      Update draft release notes to 1.8.5
      mailmap: work around implementations with pure inline strcasecmp
      Update draft release notes to 1.8.5 for the third batch of topics
      Update draft release notes to 1.8.5 for the first half of the fourth batch
      Update draft release notes to 1.8.5 for the fourth batch of topics
      Update draft release notes to 1.8.5 for the fifth batch of topics
      C: have space around && and || operators
      abspath.c: have SP around arithmetic operators
      alloc.c: have SP around arithmetic operators
      archive.c: have SP around arithmetic operators
      base85.c: have SP around arithmetic operators
      block-sha1/sha1.c: have SP around arithmetic operators
      Update draft release notes to 1.8.5
      Update draft release notes to 1.8.5
      Update draft release notes to 1.8.5
      Update draft release notes to 1.8.5
      checkout_entry(): clarify the use of topath[] parameter
      Almost -rc0 for 1.8.5
      Git 1.8.5-rc0

Kacper Kornet (2):
      Make test "using invalid commit with -C" more strict
      t/t7106-reset-unborn-branch.sh: Add PERL prerequisite

Karsten Blees (3):
      MSVC: fix compile errors due to missing libintl.h
      MSVC: fix compile errors due to macro redefinitions
      MSVC: fix stat definition hell

Kazuki Saitoh (2):
      git p4 test: sanitize P4CHARSET
      git p4: implement view spec wildcards with "p4 where"

Keshav Kini (4):
      git-svn.txt: fix AsciiDoc formatting error
      git-svn.txt: reword description of gc command
      git-svn.txt: replace .git with $GIT_DIR
      git-svn.txt: elaborate on rev_map files

Kirill A. Shutemov (1):
      rebase -i: respect core.abbrev

Kyle J. McKay (2):
      config: add helper to normalize and match URLs
      config: parse http.<url>.<variable> using urlmatch

Lee Carver (1):
      Allow git-filter-branch to process large repositories with lots of branches.

Marc Branchaud (1):
      Provide some linguistic guidance for the documentation.

Mark Levedahl (1):
      t6131 - skip tests if on case-insensitive file system

Matthieu Moy (16):
      Documentation/fast-import: clarify summary for `feature` command
      Documentation/remote-helpers: document common use-case for private ref
      git-remote-mediawiki: add test and check Makefile targets
      transport-helper: add no-private-update capability
      git-remote-mediawiki: use no-private-update capability on dumb push
      git-remote-mediawiki: no need to update private ref in non-dumb push
      builtin/stripspace.c: fix broken indentation
      wt-status: use argv_array API
      submodule summary: ignore --for-status option
      status: disable display of '#' comment prefix by default
      tests: don't set status.displayCommentPrefix file-wide
      status: add missing blank line after list of "other" files
      commit: factor status configuration is a helper function
      wt-status: turn advice_status_hints into a field of wt_status
      commit: disable status hints when writing to COMMIT_EDITMSG
      RelNotes/1.8.5: direct script writers to "git status --porcelain"

Michael J Gruber (5):
      t4030: demonstrate behavior of show with textconv
      show: honor --textconv for blobs
      cat-file: do not die on --textconv without textconv filters
      t7008: demonstrate behavior of grep with textconv
      grep: honor --textconv for the case rev:path

Michael S. Tsirkin (1):
      doc: don't claim that cherry calls patch-id

Michael Schubert (1):
      fetch: make --prune configurable

Michal Nazarewicz (1):
      remove dead pastebin link from pack-heuristics document

Nazri Ramliy (2):
      git: run in a directory given with -C option
      t0056: "git -C" test updates

Nguyễn Thái Ngọc Duy (57):
      clean: remove unused variable "seen"
      move struct pathspec and related functions to pathspec.[ch]
      pathspec: i18n-ize error strings in pathspec parsing code
      pathspec: add copy_pathspec
      add parse_pathspec() that converts cmdline args to struct pathspec
      parse_pathspec: save original pathspec for reporting
      parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} flags
      convert some get_pathspec() calls to parse_pathspec()
      parse_pathspec: add special flag for max_depth feature
      parse_pathspec: support stripping submodule trailing slashes
      parse_pathspec: support stripping/checking submodule paths
      parse_pathspec: support prefixing original patterns
      guard against new pathspec magic in pathspec matching code
      clean: convert to use parse_pathspec
      commit: convert to use parse_pathspec
      status: convert to use parse_pathspec
      rerere: convert to use parse_pathspec
      checkout: convert to use parse_pathspec
      rm: convert to use parse_pathspec
      ls-files: convert to use parse_pathspec
      archive: convert to use parse_pathspec
      check-ignore: convert to use parse_pathspec
      add: convert to use parse_pathspec
      reset: convert to use parse_pathspec
      line-log: convert to use parse_pathspec
      convert read_cache_preload() to take struct pathspec
      convert run_add_interactive to use struct pathspec
      convert unmerge_cache to take struct pathspec
      checkout: convert read_tree_some to take struct pathspec
      convert report_path_error to take struct pathspec
      convert refresh_index to take struct pathspec
      convert {read,fill}_directory to take struct pathspec
      convert add_files_to_cache to take struct pathspec
      convert common_prefix() to use struct pathspec
      remove diff_tree_{setup,release}_paths
      remove init_pathspec() in favor of parse_pathspec()
      remove match_pathspec() in favor of match_pathspec_depth()
      tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
      rename field "raw" to "_raw" in struct pathspec
      parse_pathspec: make sure the prefix part is wildcard-free
      parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
      kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
      pathspec: support :(literal) syntax for noglob pathspec
      pathspec: make --literal-pathspecs disable pathspec magic
      pathspec: support :(glob) syntax
      parse_pathspec: accept :(icase)path syntax
      smart http: use the same connectivity check on cloning
      for-each-ref, quote: convert *_quote_print -> *_quote_buf
      gc: reject if another gc is running, unless --force is given
      push: respect --no-thin
      pathspec: catch prepending :(prefix) on pathspec with short magic
      add: lift the pathspec magic restriction on "add -p"
      pack-objects: no crc check when the cached version is used
      fetch-pack.c: show correct command name that fails
      clone: tighten "local paths with colons" check a bit
      Fix calling parse_pathspec with no paths nor PATHSPEC_PREFER_* flags
      entry.c: convert checkout_entry to use strbuf

Nicolas Pitre (1):
      lookup_object: remove hashtable_index() and optimize hash_obj()

Nicolas Vigier (2):
      git-svn: fix signed commit parsing
      config doc: user.signingkey is also used for signed commits

Philip Oakley (6):
      Doc: 'replace' merge and non-merge commits
      doc: command line interface (cli) dot-repository dwimmery
      config doc: update dot-repository notes
      remote doc: document long forms of set-head options
      remote set-head -h: add long options to synopsis
      doc/cli: make "dot repository" an independent bullet point

Ralf Thielow (2):
      Documentation/git-merge-file: document option "--diff3"
      status: show commit sha1 in "You are currently cherry-picking" message

Ramkumar Ramachandra (3):
      editor: use canonicalized absolute path
      tar-tree: remove dependency on sq_quote_print()
      quote: remove sq_quote_print()

Ramsay Jones (8):
      howto/setup-git-server-over-http: fix unescaped '^'s
      howto/revert-a-faulty-merge: fix unescaped '^'s
      config.c: mark file-local function static
      refs.c: spell NULL pointer as NULL
      wrapper.c: only define gitmkstemps if needed
      gitweb test: fix highlight test hang on Linux Mint
      format-patch doc: Thunderbird wraps lines unless mailnews.wraplength=0
      sparse: suppress some "using sizeof on a function" warnings

René Scharfe (1):
      pull: use $curr_branch_short more

Richard Hansen (9):
      peel_onion(): add support for <rev>^{tag}
      glossary: mention 'treeish' as an alternative to 'tree-ish'
      glossary: define commit-ish (a.k.a. committish)
      use 'tree-ish' instead of 'treeish'
      use 'commit-ish' instead of 'committish'
      glossary: more precise definition of tree-ish (a.k.a. treeish)
      revisions.txt: fix and clarify <rev>^{<type>}
      glossary: fix and clarify the definition of 'ref'
      remote-bzr: reuse bzrlib transports when possible

SZEDER Gábor (3):
      bash prompt: test the prompt with newline in repository path
      completion: improve untracked directory filtering for filename completion
      t3600: fix broken "choking git rm" test

Sebastian Schuberth (5):
      Documentation: make AsciiDoc links always point to HTML files
      MinGW: Fix stat definitions to work with MinGW runtime version 4.0
      Windows: do not redefine _WIN32_WINNT
      clone: add a period after "done" to end the sentence
      path-utils test: rename mingw_path function to print_path

Shawn O. Pearce (1):
      Document the HTTP transport protocols

Stefan Beller (22):
      rm: do not set a variable twice without intermediate reading.
      Remove deprecated OPTION_BOOLEAN for parsing arguments
      Replace deprecated OPT_BOOLEAN by OPT_BOOL
      log, format-patch: parsing uses OPT__QUIET
      checkout: remove superfluous local variable
      branch, commit, name-rev: ease up boolean conditions
      hash-object: replace stdin parsing OPT_BOOLEAN by OPT_COUNTUP
      config parsing options: allow one flag multiple times
      checkout-index: fix negations of even numbers of -n
      revert: use the OPT_CMDMODE for parsing, reducing code
      diff: remove ternary operator evaluating always to true
      diff: fix a possible null pointer dereference
      rm: remove unneeded null pointer check
      create_delta_index: simplify condition always evaluating to true
      mailmap: remove redundant check for freeing memory
      repack: rewrite the shell script in C
      repack: retain the return value of pack-objects
      repack: improve warnings about failure of renaming and removing files
      contrib: remove ciabot
      checkout test: enable test with complex relative path
      Reword repack documentation to no longer state it's a script
      git-svn docs: Use tabs consistently within the ascii doc

Stefan Saasen (2):
      mergetools/diffmerge: support DiffMerge as a git mergetool
      mergetool--lib: Fix typo in the merge/difftool help

Steffen Prohaska (1):
      git.txt: fix asciidoc syntax of --*-pathspecs

Stephen Haberman (1):
      pull: allow pull to preserve merges when rebasing

Ted Zlatanov (1):
      git-credential-netrc: fix uninitialized warning

Thomas Ackermann (11):
      Call it "Git User Manual" and remove reference to very old Git version
      Use current "detached HEAD" message
      Use current output for "git repack"
      Use "git merge" instead of "git pull ."
      Fix some typos and improve wording
      Simplify "How to make a commit"
      Improve section "Manipulating branches"
      Improve section "Merging multiple trees"
      Remove unnecessary historical note from "Object storage format"
      Remove irrelevant reference from "Tying it all together"
      "git prune" is safe

Thomas Gummerer (1):
      read-cache: use fixed width integer types

Thomas Rast (5):
      urlmatch.c: recompute pointer after append_normalized_escapes
      .mailmap: switch to Thomas Rast's personal address
      Documentation: revamp gitk(1)
      Revert "test-lib: support running tests under valgrind in parallel"
      Revert "test-lib: allow prefixing a custom string before "ok N" etc."

Tony Finch (4):
      gitweb: ensure OPML text fits inside its box
      gitweb: vertically centre contents of page footer
      gitweb: omit the repository owner when it is unset
      gitweb: make search help link less ugly

Torsten Bögershausen (1):
      Set core.precomposeunicode to true on e.g. HFS+

Uli Heller (1):
      git-svn: fix termination issues for remote svn connections

brian m. carlson (3):
      submodule: fix confusing variable name
      submodule: don't print status output with ignore=all
      CodingGuidelines: style for multi-line comments

Ævar Arnfjörð Bjarmason (1):
      gitweb: Fix the author initials in blame for non-ASCII names


Version v1.8.4.5; changes since v1.8.4.4:
-----------------------------------------

Junio C Hamano (2):
      submodule: do not copy unknown update mode from .gitmodules
      Git 1.8.4.5

Richard Hansen (1):
      remote-hg: don't decode UTF-8 paths into Unicode objects


Version v1.8.4.4; changes since v1.8.4.3:
-----------------------------------------

Junio C Hamano (2):
      Revert "upload-pack: send non-HEAD symbolic refs"
      Git 1.8.4.4


Version v1.8.4.3; changes since v1.8.4.2:
-----------------------------------------

Antoine Pelisse (1):
      remote-hg: unquote C-style paths when exporting

Brian Gernhardt (3):
      t5570: Update for symref capability
      t5570: Update for clone-progress-to-stderr branch
      t5570: Update for clone-progress-to-stderr branch

Hemmo Nieminen (1):
      graph: fix coloring around octopus merges

Jeff King (11):
      http_get_file: style fixes
      http_request: factor out curlinfo_strbuf
      http: refactor options to http_get_*
      http: hoist credential request out of handle_curl_result
      http: provide effective url to callers
      http: update base URLs when we see redirects
      remote-curl: make refs_url a strbuf
      remote-curl: store url as a strbuf
      remote-curl: rewrite base url from info/refs redirects
      split_ident: parse timestamp from end of line
      subtree: add makefile target for html docs

Jonathan Nieder (1):
      t/README: tests can use perl even with NO_PERL

Junio C Hamano (10):
      t5505: fix "set-head --auto with ambiguous HEAD" test
      upload-pack.c: do not pass confusing cb_data to mark_our_ref()
      upload-pack: send symbolic ref information as capability
      upload-pack: send non-HEAD symbolic refs
      connect.c: make parse_feature_value() static
      connect: annotate refs with their symref information in get_remote_head()
      clone: test the new HEAD detection logic
      revision: do not peel tags used in range notation
      Start preparing for 1.8.4.3
      Git 1.8.4.3

Karsten Blees (1):
      gitignore.txt: fix documentation of "**" patterns

Matthieu Moy (2):
      checkout: allow dwim for branch creation for "git checkout $branch --"
      checkout: proper error message on 'git checkout foo bar --'

Ramsay Jones (1):
      http.c: Spell the null pointer as NULL

SZEDER Gábor (1):
      bash prompt: don't use '+=' operator in show upstream code path

Sitaram Chamarty (1):
      doc/howto: warn about (dumb)http server document being too old

Vivien Didelot (2):
      Documentation: restore a space in unpack-objects usage
      Documentation: "pack-file" is not literal in unpack-objects


Version v1.8.4.2; changes since v1.8.4.1:
-----------------------------------------

Antoine Pelisse (1):
      commit: search author pattern against mailmap

Christian Couder (1):
      sha1_file: move comment about return value where it belongs

Eric Sunshine (5):
      rebase -i: fix cases ignoring core.commentchar
      dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
      t3404: make tests more self-contained
      t3404: rebase -i: demonstrate short SHA-1 collision
      t3200: fix failure on case-insensitive filesystems

Jeff King (8):
      has_sha1_file: re-check pack directory before giving up
      upload-pack: send keepalive packets during pack computation
      upload-pack: bump keepalive default to 5 seconds
      clone: send diagnostic messages to stderr
      clone: treat "checking connectivity" like other progress
      clone: always set transport options
      shortlog: ignore commits with missing authors
      format-patch: print in-body "From" only when needed

Johan Herland (4):
      t2024: Fix &&-chaining and a couple of typos
      t3200: Minor fix when preparing for tracking failure
      Refer to branch.<name>.remote/merge when documenting --track
      t3200: Add test demonstrating minor regression in 41c21f2

Johannes Sixt (1):
      add--interactive: fix external command invocation on Windows

John Keeping (1):
      merge-recursive: fix parsing of "diff-algorithm" option

Junio C Hamano (8):
      dir.c: use the cache_* macro to access the current index
      ls-files -k: a directory only can be killed if the index has a non-directory
      t3010: update to demonstrate "ls-files -k" optimization pitfalls
      rebase -i: fix short SHA-1 collision
      cvsserver: pick up the right mode bits
      Start preparing for 1.8.4.2
      Almost 1.8.4.2 ;-)
      Git 1.8.4.2

Matthijs Kooijman (1):
      Add testcase for needless objects during a shallow fetch

Nguyễn Thái Ngọc Duy (7):
      move setup_alternate_shallow and write_shallow_commits to shallow.c
      shallow: only add shallow graft points to new shallow file
      shallow: add setup_temporary_shallow()
      upload-pack: delegate rev walking in shallow fetch to pack-objects
      list-objects: reduce one argument in mark_edges_uninteresting
      list-objects: mark more commits as edges in mark_edges_uninteresting
      Make setup_git_env() resolve .git file when $GIT_DIR is not specified

Nicolas Vigier (1):
      git-merge: document the -S option

Per Cederqvist (1):
      branch.c: Relax unnecessary requirement on upstream's remote ref name

Ralf Thielow (2):
      rebase --preserve-merges: ignore "merge.log" config
      clone --branch: refuse to clone if upstream repo is empty

SZEDER Gábor (1):
      t4254: modernize tests

Steffen Prohaska (1):
      git-prune-packed.txt: fix reference to GIT_OBJECT_DIRECTORY

Torstein Hegge (1):
      test-lib: fix typo in comment

brian m. carlson (1):
      http-backend: provide Allow header for 405


Version v1.8.4.1; changes since v1.8.4:
---------------------------------------

Andreas Schwab (1):
      Documentation/git-merge.txt: fix formatting of example block

Benoit Person (1):
      git-remote-mediawiki: bugfix for pages w/ >500 revisions

Brandon Casey (3):
      git-completion.bash: use correct Bash/Zsh array length syntax
      t9902-completion.sh: old Bash still does not support array+=('') notation
      contrib/git-prompt.sh: handle missing 'printf -v' more gracefully

Jeff King (2):
      config: do not use C function names as struct members
      mailmap: handle mailmap blobs without trailing newlines

Jharrod LaFon (1):
      avoid segfault on submodule.*.path set to an empty "true"

Johannes Sixt (1):
      stream_to_pack: xread does not guarantee to read all requested bytes

Jonathan Nieder (1):
      Git 1.8.4.1

Junio C Hamano (6):
      t5802: add test for connect helper
      fetch: rename file-scope global "transport" to "gtransport"
      fetch: refactor code that prepares a transport
      fetch: refactor code that fetches leftover tags
      fetch: work around "transport-take-over" hack
      Start preparing for 1.8.4.1

Kyle J. McKay (3):
      Git.pm: add new temp_is_locked function
      git-svn: allow git-svn fetching to work using serf
      Git.pm: revert _temp_cache use of temp_is_locked

Matthieu Moy (2):
      die_with_status: use "printf '%s\n'", not "echo"
      rebase: fix run_specific_rebase's use of "return" on FreeBSD

Nguyễn Thái Ngọc Duy (1):
      fetch-pack: do not remove .git/shallow file when --depth is not specified

Ralf Thielow (1):
      l10n: de.po: use "das Tag" instead of "der Tag"

Ramsay Jones (1):
      builtin/fetch.c: Fix a sparse warning

Sebastien Helleu (1):
      l10n: fr.po: hotfix for commit 6b388fc

Steffen Prohaska (2):
      xread, xwrite: limit size of IO to 8MB
      Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"

Tay Ray Chuan (1):
      t7406-submodule-update: add missing &&

Thomas Rast (2):
      log: use true parents for diff even when rewriting
      log: use true parents for diff when walking reflogs

Thorsten Glaser (1):
      fix shell syntax error in template

brian m. carlson (1):
      send-email: don't call methods on undefined values


Version v1.8.4; changes since v1.8.4-rc4:
-----------------------------------------

Junio C Hamano (2):
      Typofix draft release notes to 1.8.4
      Git 1.8.4


Version v1.8.4-rc4; changes since v1.8.4-rc3:
---------------------------------------------

Junio C Hamano (3):
      Revert "git stash: avoid data loss when "git stash save" kills a directory"
      Revert "Add new @ shortcut for HEAD"
      Git 1.8.4-rc4


Version v1.8.4-rc3; changes since v1.8.4-rc2:
---------------------------------------------

Eric Sunshine (1):
      parse-options: fix clang opterror() -Wunused-value warning

Jean-Noël Avila (2):
      l10n: fr.po: 821/2112 messages translated
      l10n: Add reference for french translation team

Jiang Xin (2):
      l10n: git.pot: v1.8.4 round 2 (5 new, 3 removed)
      l10n: zh_CN.po: translate 5 messages (2135t0f0u)

Junio C Hamano (2):
      .mailmap: update long-lost friends with multiple defunct addresses
      Git 1.8.4-rc3

Matthieu Moy (1):
      git-remote-mediawiki: ignore generated git-mw

Peter Krefting (1):
      l10n: Update Swedish translation (2135t0f0u)

Phil Hord (1):
      t/t7407: fix two typos in submodule tests

Ralf Thielow (3):
      l10n: de.po: switch from pure German to German+English
      l10n: de.po: translate 99 new messages
      l10n: de.po: translate 5 messages

Stefan Beller (2):
      .mailmap: fixup entries
      .mailmap: Combine more (name, email) to individual persons

Trần Ngọc Quân (1):
      l10n: vi.po(2135t): v1.8.4 round 2

Wieland Hoffmann (1):
      l10n: de.po: Fix a typo


Version v1.8.4-rc2; changes since v1.8.4-rc1:
---------------------------------------------

Felix Gruber (1):
      fix typo in documentation of git-svn

Jiang Xin (2):
      l10n: git.pot: v1.8.4 round 1 (99 new, 46 removed)
      l10n: zh_CN.po: translate 99 messages (2133t0f0u)

Jonathan Nieder (1):
      log doc: the argument to --encoding is not optional

Junio C Hamano (4):
      Revert "cat-file: split --batch input lines on whitespace"
      t3900: test rejecting log message with NULs correctly
      commit: typofix for xxFFF[EF] check
      Git 1.8.4-rc2

Ramsay Jones (1):
      cygwin: Remove the Win32 l/stat() implementation

René Scharfe (1):
      t8001, t8002: fix "blame -L :literal" test on NetBSD

Stefan Beller (1):
      .mailmap: Multiple addresses of Michael S. Tsirkin

Torstein Hegge (1):
      Documentation/rev-list-options: add missing word in --*-parents

Trần Ngọc Quân (1):
      l10n: vi.po (2133t)

brian m. carlson (1):
      Add missing test file for UTF-16.


Version v1.8.4-rc1; changes since v1.8.4-rc0:
---------------------------------------------

Brandon Casey (1):
      git-completion.bash: replace zsh notation that breaks bash 3.X

Daniele Segato (1):
      docs/git-tag: explain lightweight versus annotated tags

Jeff King (6):
      docs: fix 'report-status' protocol capability thinko
      docs: note that receive-pack knows side-band-64k capability
      document 'agent' protocol capability
      document 'quiet' receive-pack capability
      commit.h: drop redundant comment
      commit: tweak empty cherry pick advice for sequencer

Jiang Xin (2):
      Documentation/git-clean: fix description for range
      git-clean: implement partial matching for selection

Junio C Hamano (2):
      builtin/rm.c: consolidate error reporting for removing submodules
      Git 1.8.4-rc1

Lukas Fleischer (1):
      Avoid using `echo -n` anywhere

Maurício C Antunes (1):
      hg-to-git: --allow-empty-message in git commit

Michael Haggerty (1):
      do_one_ref(): save and restore value of current_ref

Michal Sojka (1):
      contrib/subtree: Fix make install target

Nguyễn Thái Ngọc Duy (1):
      document 'allow-tip-sha1-in-want' capability

Ondřej Bílka (1):
      many small typofixes

Ralf Thielow (1):
      git-rebase: fix typo

Ramkumar Ramachandra (1):
      config doc: quote paths, fixing tilde-interpretation

Ramsay Jones (1):
      commit-slab.h: Fix memory allocation and addressing

Stefan Beller (1):
      .mailmap: combine more (email, name) to individual persons

Thomas Rast (1):
      Rename advice.object_name_warning to objectNameWarning


Version v1.8.4-rc0; changes since v1.8.3.4:
-------------------------------------------

Adam Spiers (6):
      t0008: remove duplicated test fixture data
      check-ignore: add -n / --non-matching option
      check-ignore: move setup into cmd_check_ignore()
      check-ignore: allow incremental streaming of queries via --stdin
      Documentation: add caveats about I/O buffering for check-{attr,ignore}
      t0008: use named pipe (FIFO) to test check-ignore streaming

Alexey Shumkin (10):
      t6006 (rev-list-format): don't hardcode SHA-1 in expected outputs
      t7102 (reset): don't hardcode SHA-1 in expected outputs
      t4205 (log-pretty-formats): don't hardcode SHA-1 in expected outputs
      pretty: Add failing tests: --format output should honor logOutputEncoding
      pretty: --format output should honor logOutputEncoding
      t4041, t4205, t6006, t7102: use iso8859-1 rather than iso-8859-1
      t4205 (log-pretty-formats): revert back single quotes
      t4205, t6006, t7102: make functions better readable
      t6006 (rev-list-format): add tests for "%b" and "%s" for the case i18n.commitEncoding is not set
      t4205 (log-pretty-formats): avoid using `sed`

Andrew Pimlott (2):
      rebase -i: handle fixup! fixup! in --autosquash
      lib-rebase: style: use write_script, <<-\EOF

Andrew Wong (1):
      git add -e: Explicitly specify that patch should have no color

Antoine Pelisse (1):
      diff: add --ignore-blank-lines option

Arnaud Fontaine (1):
      Do not ignore merge options in interactive rebase

Benoit Person (9):
      git-remote-mediawiki: use Git.pm functions for credentials
      git-remote-mediawiki: remove hardcoded version number in the test suite
      git-remote-mediawiki: introduction of Git::Mediawiki.pm
      wrap-for-bin: make bin-wrappers chainable
      git-remote-mediawiki: add a git bin-wrapper for developement
      git-remote-mediawiki: update tests to run with the new bin-wrapper
      git-remote-mediawiki: factoring code between git-remote-mediawiki and Git::Mediawiki
      git-remote-mediawiki: add git-mw command
      git-remote-mediawiki: add preview subcommand into git mw

Benoit Sigoure (1):
      Revert "compat/unsetenv.c: Fix a sparse warning"

Bo Yang (2):
      Refactor parse_loc
      Export rewrite_parents() for 'log -L'

Brandon Casey (3):
      builtin/checkout.c: don't leak memory in check_tracking_name
      t/t9802: explicitly name the upstream branch to use as a base
      remote.c: avoid O(m*n) behavior in match_push_refs

Brian Gernhardt (1):
      t4205: replace .\+ with ..* in sed commands

Chris Packham (1):
      submodule update: allow custom command to update submodule working tree

Christian Couder (1):
      Makefile: replace "echo 1>..." with "echo >..."

Célestin Matte (32):
      git-remote-mediawiki: display message when launched directly
      git-remote-mediawiki: make a regexp clearer
      git-remote-mediawiki: move "use warnings;" before any instruction
      git-remote-mediawiki: replace :utf8 by :encoding(UTF-8)
      git-remote-mediawiki: always end a subroutine with a return
      git-remote-mediawiki: move a variable declaration at the top of the code
      git-remote-mediawiki: change syntax of map calls
      git-remote-mediawiki: rewrite unclear line of instructions
      git-remote-mediawiki: remove useless regexp modifier (m)
      git-remote-mediawiki: change the behaviour of a split
      git-remote-mediawiki: change separator of some regexps
      git-remote-mediawiki: change style in a regexp
      git-remote-mediawiki: change style in a regexp
      git-remote-mediawiki: add newline in the end of die() error messages
      git-remote-mediawiki: change the name of a variable
      git-remote-mediawiki: turn double-negated expressions into simple expressions
      git-remote-mediawiki: remove unused variable $entry
      git-remote-mediawiki: rename a variable ($last) which has the name of a keyword
      git-remote-mediawiki: assign a variable as undef and make proper indentation
      git-remote-mediawiki: check return value of open
      git-remote-mediawiki: remove import of unused open2
      git-remote-mediawiki: put long code into a subroutine
      git-remote-mediawiki: modify strings for a better coding-style
      git-remote-mediawiki: brace file handles for print for more clarity
      git-remote-mediawiki: replace "unless" statements with negated "if" statements
      git-remote-mediawiki: don't use quotes for empty strings
      git-remote-mediawiki: put non-trivial numeric values in constants.
      git-remote-mediawiki: fix a typo ("mediwiki" instead of "mediawiki")
      git-remote-mediawiki: clearly rewrite double dereference
      git-remote-mediawiki: add a .perlcriticrc file
      git-remote-mediawiki: add a perlcritic rule in Makefile
      git-remote-mediawiki: make error message more precise

Dale R. Worley (1):
      git_mkstemps: correctly test return value of open()

Dirk Wallenstein (1):
      request-pull: improve error message for invalid revision args

Doug Bell (1):
      show-ref: make --head always show the HEAD ref

Eduardo R. D'Avila (5):
      t9903: add tests for git-prompt pcmode
      git-prompt.sh: refactor colored prompt code
      t9903: remove redundant tests
      git-prompt.sh: do not print duplicate clean color code
      git-prompt.sh: add missing information in comments

Eric Sunshine (27):
      t4211: fix broken test when one -L range is subset of another
      range_set: fix coalescing bug when range is a subset of another
      builtin: add git-check-mailmap command
      t4203: test check-mailmap command invocation
      t4203: demonstrate loss of single-character name in mailmap entry
      t4203: demonstrate loss of uppercase characters in canonical email
      mailmap: debug: fix out-of-order fprintf() arguments
      mailmap: debug: fix malformed fprintf() format conversion specification
      mailmap: debug: eliminate -Wformat field precision type warning
      mailmap: debug: avoid passing NULL to fprintf() '%s' conversion specification
      git-log.txt: fix typesetting of example "git-log -L" invocation
      line-range: fix "blame -L X,-N" regression
      t8001/t8002 (blame): modernize style
      t8001/t8002 (blame): add blame -L tests
      t8001/t8002 (blame): add blame -L :funcname tests
      blame-options.txt: place each -L option variation on its own line
      blame-options.txt: explain that -L <start> and <end> are optional
      contrib: add git-contacts helper
      contrib: contacts: add ability to parse from committish
      contrib: contacts: interpret committish akin to format-patch
      contrib: contacts: add mailmap support
      contrib: contacts: add documentation
      range-set: fix sort_and_merge_range_set() corner case bug
      t4211: demonstrate empty -L range crash
      t4211: demonstrate crash when first -L encountered is empty range
      range-set: satisfy non-empty ranges invariant
      line-log: fix "log -LN" crash when N is last line of file

Felipe Contreras (108):
      transport-helper: report errors properly
      transport-helper: improve push messages
      transport-helper: clarify *:* refspec
      transport-helper: update refspec documentation
      transport-helper: clarify pushing without refspecs
      transport-helper: warn when refspec is not used
      transport-helper: trivial code shuffle
      transport-helper: update remote helper namespace
      completion: add file completion tests
      completion: document tilde expansion failure in tests
      completion; remove unuseful comments
      completion: use __gitcompadd for __gitcomp_file
      completion: refactor diff_index wrappers
      completion: refactor __git_complete_index_file()
      completion: add hack to enable file mode in bash < 4
      completion: add space after completed filename
      completion: remove __git_index_file_list_filter()
      fast-export: do not parse non-commit objects while reading marks file
      fast-export: don't parse commits while reading marks file
      fast-{import,export}: use get_sha1_hex() to read from marks file
      tests: at-combinations: simplify setup
      tests: at-combinations: check ref names directly
      tests: at-combinations: improve nonsense()
      sha1_name: remove no-op
      sha1_name: remove unnecessary braces
      completion: cleanup zsh wrapper
      completion: synchronize zsh wrapper
      sha1_name: reorganize get_sha1_basic()
      sha1_name: refactor reinterpret()
      Add new @ shortcut for HEAD
      sha1_name: compare variable with constant, not constant with variable
      test: remote-helper: add missing and
      transport-helper: fix remote helper namespace regression
      transport-helper: barf when user tries old:new
      transport-helper: check if the dry-run is supported
      remote-helpers: tests: use python directly
      remote-hg: tests: fix hg merge
      build: trivial simplification
      build: cleanup using $^
      build: cleanup using $<
      build: add NO_INSTALL variable
      build: do not install git-remote-testpy
      remote-bzr: recover from failed clones
      remote-bzr: fix for files with spaces
      remote-bzr: simplify get_remote_branch()
      remote-bzr: delay cloning/pulling
      remote-bzr: change global repo
      remote-bzr: trivial cleanups
      remote-bzr: reorganize the way 'wanted' works
      remote-bzr: add fallback check for a partial clone
      remote-hg: test: be a little more quiet
      remote-hg: trivial reorganization
      remote-helpers: test: cleanup white-spaces
      remote-helpers: test: cleanup style
      remote-helpers: tests: general improvements
      remote-helpers: test: simplify remote URLs
      remote-hg: test: simplify previous branch checkout
      remote-hg: load all extensions
      remote-hg: use a shared repository store
      remote-hg: shuffle some code
      remote-hg: improve node traversing
      remote-hg: add version checks to the marks
      remote-hg: switch from revisions to SHA-1 noteids
      remote-hg: upgrade version 1 marks
      remote-hg: ensure remote rebasing works
      remote-hg: trivial cleanups
      remote-hg: improve progress calculation
      remote-hg: always point HEAD to master
      remote-hg: add tests for 'master' bookmark
      remote-bzr: simplify test checks
      remote-hg: add check_bookmark() test helper
      remote-hg: update bookmarks when using a remote
      remote-hg: add remote tests
      remote-hg: add test to push new bookmark
      remote-hg: add test for diverged push
      remote-hg: add test for bookmark diverge
      remote-hg: add test for new bookmark special
      remote-hg: add test for big push
      remote-hg: add test for failed double push
      remote-hg: reorganize bookmark handling
      remote-hg: force remote bookmark push selectively
      remote-hg: only update necessary revisions
      remote-hg: implement custom push()
      remote-hg: implement custom checkheads()
      remote-hg: pass around revision refs
      remote-hg: check diverged bookmarks
      remote-hg: simplify branch_tip()
      remote-hg: improve branch listing
      remote-hg: use remote 'default' not local one
      remote-hg: improve lightweight tag author
      remote-hg: remove files before modifications
      remote-hg: add setup_big_push() helper
      remote-hg: add check_push() helper
      remote-helpers: improve marks usage
      remote-hg: trivial cleanup
      remote-hg: check if a fetch is needed
      remote-hg: add support for --dry-run
      remote-hg: add support for --force
      remote: trivial style cleanup
      test: trivial cleanups
      test: rebase: fix --interactive test
      send-email: remove warning about unset chainreplyto
      completion: zsh: improve bash script loading
      completion: avoid ls-remote in certain scenarios
      test: fix post rewrite hook report
      build: generate and clean test scripts
      build: do not install git-remote-testgit
      Makefile: use $^ to avoid listing prerequisites on the command line

Fredrik Gustafsson (2):
      git-submodule.sh: remove duplicate call to set_rev_name
      Add --depth to submodule update/add

Grahack (1):
      French translation: copy -> copie.

Heiko Voigt (6):
      git-gui: allow "\ No newline at end of file" for linewise staging
      config: factor out config file stack management
      config: drop cf validity check in get_next_char()
      config: make parsing stack struct independent from actual data source
      teach config --blob option to parse config from database
      do not die when error in config parsing of buf occurs

Jeff King (40):
      transport-helper: mention helper name when it dies
      commit: allow associating auxiliary info on-demand
      lookup_object: prioritize recently found objects
      t5510: start tracking-ref tests from a known state
      refactor "ref->merge" flag
      fetch: opportunistically update tracking refs
      t0005: test git exit code from signal death
      contrib: drop blameview/ directory
      t5303: drop "count=1" from corruption dd
      unpack_entry: do not die when we fail to apply a delta
      get_packed_ref_cache: reload packed-refs file when it changes
      for_each_ref: load all loose refs before packed refs
      transport-helper: be quiet on read errors from helpers
      fetch-pack: avoid quadratic list insertion in mark_complete
      commit.c: make compare_commits_by_commit_date global
      fetch-pack: avoid quadratic behavior in rev_list_push
      pretty.c: drop const-ness from pretty_print_context
      teach format-patch to place other authors into in-body "From"
      zero-initialize object_info structs
      teach sha1_object_info_extended a "disk_size" query
      clone: drop connectivity check for local clones
      add missing "format" function attributes
      use "sentinel" function attribute for variadic lists
      wt-status: use "format" function attribute for status_printf
      t1006: modernize output comparisons
      cat-file: teach --batch to stream blob objects
      cat-file: refactor --batch option parsing
      cat-file: add --batch-check=<format>
      cat-file: add %(objectsize:disk) format atom
      cat-file: split --batch input lines on whitespace
      pack-revindex: use unsigned to store number of objects
      pack-revindex: radix-sort the revindex
      t0008: avoid SIGPIPE race condition on fifo
      cat-file: disable object/refname ambiguity check for batch mode
      sha1_object_info_extended: rename "status" to "type"
      sha1_loose_object_info: make type lookup optional
      packed_object_info: hoist delta type resolution to helper
      packed_object_info: make type lookup optional
      sha1_object_info_extended: make type calculation optional
      sha1_object_info_extended: pass object_info to helpers

Jiang Xin (16):
      test: add test cases for relative_path
      path.c: refactor relative_path(), not only strip prefix
      quote.c: substitute path_relative with relative_path
      quote_path_relative(): remove redundant parameter
      write_name{_quoted_relative,}(): remove redundant parameters
      git-clean: refactor git-clean into two phases
      git-clean: add support for -i/--interactive
      git-clean: show items of del_list in columns
      git-clean: add colors to interactive git-clean
      git-clean: use a git-add-interactive compatible UI
      git-clean: add filter by pattern interactive action
      git-clean: add select by numbers interactive action
      git-clean: add ask each interactive action
      git-clean: add documentation for interactive git-clean
      test: add t7301 for git-clean--interactive
      test: run testcases with POSIX absolute paths on Windows

Johan Herland (3):
      finish_copy_notes_for_rewrite(): Let caller provide commit message
      Move copy_note_for_rewrite + friends from builtin/notes.c to notes-utils.c
      Move create_notes_commit() from notes-merge.c into notes-utils.c

Johannes Schindelin (2):
      Define NO_GETTEXT for Git for Windows
      Windows resource: handle dashes in the Git version gracefully

Johannes Sixt (4):
      git-remote-testgit: avoid process substitution
      git-remote-testgit: further remove some bashisms
      t0005: skip signal death exit code test on Windows
      rebase topology tests: fix commit names on case-insensitive file systems

John Keeping (20):
      t/Makefile: fix result handling with TEST_OUTPUT_DIRECTORY
      test output: respect $TEST_OUTPUT_DIRECTORY
      t/Makefile: don't define TEST_RESULTS_DIRECTORY recursively
      fetch: don't try to update unfetched tracking refs
      git-gui: fix file name handling with non-empty prefix
      add--interactive: respect diff.algorithm
      Documentation/Makefile: fix spaces around assignments
      Documentation/Makefile: move infodir to be with other '*dir's
      mergetool--lib: refactor {diff,merge}_cmd logic
      t7401: make indentation consistent
      t7403: modernize style
      t7403: add missing && chaining
      submodule: show full path in error message
      rev-parse: add --prefix option
      submodule: drop the top-level requirement
      completion: handle unstuck form of base git options
      completion: learn about --man-path
      git-config(1): clarify precedence of multiple values
      push: avoid suggesting "merging" remote changes
      pull: change the description to "integrate" changes

Jonathan Nieder (1):
      mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE

Jonathon Mah (2):
      Documentation: remove --prune from pack-refs examples
      Documentation: fix git-prune example usage

Jorge Juan Garcia Garcia (4):
      status: introduce status.short to enable --short by default
      status: introduce status.branch to enable --branch by default
      status: introduce status.short to enable --short by default
      status: introduce status.branch to enable --branch by default

Junio C Hamano (56):
      commit-slab: avoid large realloc
      date.c: add parse_expiry_date()
      line-log: fix documentation formatting
      t5801: "VAR=VAL shell_func args" is forbidden
      prune: introduce OPT_EXPIRY_DATE() and use it
      git-remote-testgit: build it to run under $SHELL_PATH
      t6111: allow checking the parents as well
      t6012: update test for tweaked full-history traversal
      Start 1.8.4 cycle
      Update draft release notes to 1.8.4
      Update draft release notes to 1.8.4
      Update draft release notes to 1.8.4
      commit-slab: introduce a macro to define a slab for new type
      test: test_must_be_empty helper
      Update draft release notes
      toposort: rename "lifo" field
      prio-queue: priority queue of pointers to structs
      sort-in-topological-order: use prio-queue
      log: --author-date-order
      Update draft release notes to 1.8.4
      t7512: test "detached from" as well
      Update draft release notes to 1.8.4
      t/lib-t6000: style fixes
      topology tests: teach a helper to take abbreviated timestamps
      t6003: add --date-order test
      topology tests: teach a helper to set author dates as well
      t6003: add --author-date-order test
      add -i: add extra options at the right place in "diff" command line
      Update draft release notes to 1.8.4
      Revert "Merge branch 'jg/status-config'"
      status/commit: make sure --porcelain is not affected by user-facing config
      Update draft release notes to 1.8.4
      Update draft release notes to 1.8.4
      Update draft release notes to 1.8.4
      Update draft release notes to 1.8.4
      Update draft release notes to 1.8.4
      treat_directory(): do not declare submodules to be untracked
      name-ref: factor out name shortening logic from name_ref()
      name-rev: allow converting the exact object name at the tip of a ref
      describe: use argv-array
      remote-http: use argv-array
      Update draft release notes to 1.8.4
      Update draft release notes for 1.8.4
      mailmap: do not lose single-letter names
      mailmap: do not downcase mailmap entries
      mailmap: style fixes
      Revert "git-clone.txt: remove the restriction on pushing from a shallow clone"
      Update draft release notes to 1.8.4
      Update draft release notes to 1.8.4
      name-rev: differentiate between tags and commits they point at
      describe: fix --contains when a tag is given as input
      t2202: make sure "git add" (no args) stays a no-op
      Update draft release notes to 1.8.4
      t7600: fix typo in test title
      t4211: fix incorrect rebase at f8395edc (range-set: satisfy non-empty ranges invariant)
      Git 1.8.4-rc0

Kevin Bracey (14):
      decorate.c: compact table when growing
      t6019: test file dropped in -s ours merge
      t6111: new TREESAME test set
      t6111: add parents to tests
      rev-list-options.txt: correct TREESAME for P
      Documentation: avoid "uninteresting"
      revision.c: Make --full-history consider more merges
      simplify-merges: never remove all TREESAME parents
      simplify-merges: drop merge from irrelevant side branch
      revision.c: add BOTTOM flag for commits
      revision.c: discount side branches when computing TREESAME
      revision.c: don't show all merges for --parents
      revision.c: make default history consider bottom commits
      am: replace uses of --resolved with --continue

Kirill Smelkov (1):
      git-gui: Fix parsing of <rev> <path-which-not-present-in-worktree>

Mark Levedahl (6):
      test-lib.sh - cygwin does not have usable FIFOs
      test-lib.sh - define and use GREP_STRIPS_CR
      Cygwin 1.7 needs compat/regex
      Cygwin 1.7 has thread-safe pread
      Cygwin 1.7 supports mmap
      cygwin: stop forcing core.filemode=false

Martin von Zweigbergk (7):
      add simple tests of consistency across rebase types
      add tests for rebasing with patch-equivalence present
      add tests for rebasing of empty commits
      add tests for rebasing root
      add tests for rebasing merged history
      t3406: modernize style
      tests: move test for rebase messages from t3400 to t3406

Mathieu Lienard--Mayor (2):
      rm: better error message on failure for multiple files
      rm: introduce advice.rmHints to shorten messages

Matthieu Moy (10):
      config: refactor management of color.ui's default value
      git-remote-mediawiki: better error message when HTTP(S) access fails
      make color.ui default to 'auto'
      git-remote-mediawiki: un-brace file handles in binmode calls
      t4000-diff-format.sh: modernize style
      diff: allow --no-patch as synonym for -s
      diff: allow --patch & cie to override -s/--no-patch
      Documentation/git-show.txt: include common diff options, like git-log.txt
      Documentation: move description of -s, --no-patch to diff-options.txt
      Documentation/git-log.txt: capitalize section names

Matthijs Kooijman (1):
      upload-pack: remove a piece of dead code

Michael Haggerty (75):
      git-gc.txt, git-reflog.txt: document new expiry options
      api-parse-options.txt: document "no-" for non-boolean options
      refs: document flags constants REF_*
      refs: document the fields of struct ref_value
      refs: document do_for_each_ref() and do_one_ref()
      refs: document how current_ref is used
      refs: define constant PEELED_LINE_LENGTH
      do_for_each_ref_in_dirs(): remove dead code
      get_packed_ref(): return a ref_entry
      peel_ref(): use function get_packed_ref()
      repack_without_ref(): use function get_packed_ref()
      refs: extract a function ref_resolves_to_object()
      refs: extract function peel_object()
      peel_object(): give more specific information in return value
      peel_ref(): fix return value for non-peelable, not-current reference
      refs: extract a function peel_entry()
      refs: change the internal reference-iteration API
      t3210: test for spurious error messages for dangling packed refs
      repack_without_ref(): silence errors for dangling packed refs
      search_ref_dir(): return an index rather than a pointer
      refs: change how packed refs are deleted
      t3211: demonstrate loss of peeled refs if a packed ref is deleted
      repack_without_ref(): write peeled refs in the rewritten file
      refs: extract a function write_packed_entry()
      pack-refs: rename handle_one_ref() to pack_one_ref()
      pack-refs: merge code from pack-refs.{c,h} into refs.{c,h}
      pack_one_ref(): rename "path" parameter to "refname"
      refs: use same lock_file object for both ref-packing functions
      pack_refs(): change to use do_for_each_entry()
      refs: inline function do_not_prune()
      pack_one_ref(): use function peel_entry()
      pack_one_ref(): use write_packed_entry() to do the writing
      pack_one_ref(): do some cheap tests before a more expensive one
      refs: change do_for_each_*() functions to take ref_cache arguments
      refs: handle the main ref_cache specially
      describe: make own copy of refname
      fetch: make own copies of refnames
      add_rev_cmdline(): make a copy of the name argument
      builtin_diff_tree(): make it obvious that function wants two entries
      cmd_diff(): use an object_array for holding trees
      cmd_diff(): rename local variable "list" -> "entry"
      cmd_diff(): make it obvious which cases are exclusive of each other
      revision: split some overly-long lines
      object_array: add function object_array_filter()
      revision: use object_array_filter() in implementation of gc_boundary()
      object_array_remove_duplicates(): rewrite to reduce copying
      fsck: don't put a void*-shaped peg in a char*-shaped hole
      find_first_merges(): initialize merges variable using initializer
      find_first_merges(): remove unnecessary code
      object_array_entry: fix memory handling of the name field
      do_fetch(): reduce scope of peer_item
      do_fetch(): clean up existing_refs before exiting
      add_existing(): do not retain a reference to sha1
      show_head_ref(): do not shadow name of argument
      show_head_ref(): rename first parameter to "refname"
      string_list_add_one_ref(): rename first parameter to "refname"
      string_list_add_refs_by_glob(): add a comment about memory management
      exclude_existing(): set existing_refs.strdup_strings
      register_ref(): make a copy of the bad reference SHA-1
      refs: document the lifetime of the args passed to each_ref_fn
      resolve_ref_unsafe(): extract function handle_missing_loose_ref()
      resolve_ref_unsafe(): handle the case of an SHA-1 within loop
      resolve_ref_unsafe(): close race condition reading loose refs
      repack_without_ref(): split list curation and entry writing
      pack_refs(): split creation of packed refs and entry writing
      refs: wrap the packed refs cache in a level of indirection
      refs: implement simple transactions for the packed-refs file
      refs: manage lifetime of packed refs cache via reference counting
      do_for_each_entry(): increment the packed refs cache refcount
      packed_ref_cache: increment refcount when locked
      Extract a struct stat_data from cache_entry
      add a stat_validity struct
      refs: do not invalidate the packed-refs cache unnecessarily
      git-multimail: an improved replacement for post-receive-email
      post-receive-email: deprecate script in favor of git-multimail

Michael Schubert (1):
      Change "remote tracking" to "remote-tracking"

Mike Crowe (1):
      describe: Add --first-parent option

Miklos Vajna (1):
      merge: handle --ff/--no-ff/--ff-only as a tri-state option

Namhyung Kim (1):
      name-rev: allow to specify a subpath for --refs option

Nguyễn Thái Ngọc Duy (10):
      clone: allow cloning local paths with colons in them
      index-pack: remove dead code (it should never happen)
      clone: open a shortcut for connectivity check
      prune-packed: avoid implying "1" is DRY_RUN in prune_packed_objects()
      get_sha1: warn about full or short object names that look like refs
      Makefile: promote wildmatch to be the default fnmatch implementation
      core: use env variable instead of config var to turn on logging pack access
      git.txt: document GIT_TRACE_PACKET
      Convert "struct cache_entry *" to "const ..." wherever possible
      git-clone.txt: remove the restriction on pushing from a shallow clone

Ondřej Bílka (3):
      typofix: release notes
      typofix: documentation
      typofix: in-code comments

Pat Thoyts (7):
      git-gui: fix the mergetool launcher for the Beyond Compare tool.
      git-gui: change dialog button positions for Windows to suit platform.
      Provide a Windows version resource for the git executables.
      Ensure the resource file is rebuilt when the version changes.
      Set the default help format to html for msys builds.
      git-gui: avoid an error message when removing the last remote
      git-gui 0.18

Peter Krefting (1):
      commit: reject non-characters

Petr Baudis (1):
      git stash: avoid data loss when "git stash save" kills a directory

Pierre le Riche (1):
      msysgit: Add the --large-address-aware linker directive to the makefile.

Ralf Thielow (1):
      wt-status: give better advice when cherry-pick is in progress

Ramkumar Ramachandra (54):
      tests: at-combinations: increase coverage
      tests: at-combinations: @{N} versus HEAD@{N}
      sha1_name: don't waste cycles in the @-parsing loop
      sha1_name: check @{-N} errors sooner
      am: tighten a conditional that checks for $dotest
      rebase -i: don't error out if $state_dir already exists
      rebase: prepare to do generic housekeeping
      am: return control to caller, for housekeeping
      rebase -i: return control to caller, for housekeeping
      rebase --merge: return control to caller, for housekeeping
      prompt: introduce GIT_PS1_STATESEPARATOR
      prompt: factor out gitstring coloring logic
      prompt: colorize ZSH prompt
      rebase: implement --[no-]autostash and rebase.autostash
      contrib: remove continuous/ and patches/
      completion: difftool takes both revs and files
      completion: show can take both revlist and paths
      rebase: guard against missing files in read_basic_state()
      rebase: finish_rebase() in fast-forward rebase
      rebase: finish_rebase() in noop rebase
      prompt: squelch error output from cat
      t/rebase: add failing tests for a peculiar revision
      sh-setup: add new peel_committish() helper
      rebase: use peel_committish() where appropriate
      am: handle stray $dotest directory
      t/am: use test_path_is_missing() where appropriate
      stash doc: add a warning about using create
      stash doc: document short form -p in synopsis
      stash: simplify option parser for create
      wt-status: remove unused field in grab_1st_switch_cbdata
      t/t2021-checkout-last: "checkout -" should work after a rebase finishes
      status: do not depend on rebase reflog messages
      checkout: respect GIT_REFLOG_ACTION
      stash: introduce 'git stash store'
      rebase: use 'git stash store' to simplify logic
      sequencer: write useful reflog message for fast-forward
      t/t5528-push-default: remove redundant test_config lines
      t/t5505-remote: modernize style
      t/t5505-remote: test push-refspec in branches-file
      t/t5505-remote: use test_path_is_missing
      remote: remove dead code in read_branches_file()
      t/t5505-remote: test url-with-# in branches-file
      ls-remote doc: fix example invocation on git.git
      ls-remote doc: rewrite <repository> paragraph
      ls-remote doc: don't encourage use of branches-file
      t/t5505-remote: test multiple push/pull in remotes-file
      config doc: rewrite push.default section
      rebase: use a better reflog message
      rebase -i: use a better reflog message
      push: change `simple` to accommodate triangular workflows
      t/t5528-push-default: generalize test_push_*
      t/t5528-push-default: test pushdefault workflows
      commit: make it work with status.short
      send-email: be explicit with SSL certificate verification

Ramsay Jones (14):
      compat/regex/regexec.c: Fix some sparse warnings
      compat/fnmatch/fnmatch.c: Fix a sparse error
      compat/nedmalloc: Fix some sparse warnings
      compat/nedmalloc: Fix compiler warnings on linux
      compat/unsetenv.c: Fix a sparse warning
      compat/win32/pthread.c: Fix a sparse warning
      compat/poll/poll.c: Fix a sparse warning
      compat/win32mmap.c: Fix some sparse warnings
      compat/mingw.c: Fix some sparse warnings
      sparse: Fix mingw_main() argument number/type errors
      cygwin: Remove the CYGWIN_V15_WIN32API build variable
      path: Fix a sparse warning
      Fix some sparse warnings
      Add the LAST_ARG_MUST_BE_NULL macro

René Scharfe (11):
      cache: mark cache_entry pointers const
      read-cache: mark cache_entry pointers const
      unpack-trees: factor out dup_entry
      unpack-trees: create working copy of merge entry in merged_entry
      diff-lib, read-tree, unpack-trees: mark cache_entry pointers const
      diff-lib, read-tree, unpack-trees: mark cache_entry array paramters const
      unpack-trees: free cache_entry array members for merges
      match-trees: factor out fill_tree_desc_strict
      unpack-trees: don't shift conflicts left and right
      diffcore-pickaxe: simplify has_changes and contains
      .mailmap: René Scharfe has a new email address

Richard Hartmann (3):
      templates: Use heredoc in pre-commit hook
      templates: Reformat pre-commit hook's message
      templates: spell ASCII in uppercase in pre-commit hook

SZEDER Gábor (16):
      bash prompt: fix redirection coding style in tests
      bash prompt: use 'write_script' helper in interactive rebase test
      completion, bash prompt: move __gitdir() tests to completion test suite
      bash prompt: add a test for symbolic link symbolic refs
      bash prompt: print unique detached HEAD abbreviated object name
      bash prompt: return early from __git_ps1() when not in a git repository
      bash prompt: run 'git rev-parse --git-dir' directly instead of __gitdir()
      bash prompt: use bash builtins to find out rebase state
      bash prompt: use bash builtins to find out current branch
      bash prompt: combine 'git rev-parse' executions in the main code path
      bash prompt: combine 'git rev-parse' for detached head
      bash prompt: use bash builtins to check for unborn branch for dirty state
      bash prompt: use bash builtins to check stash state
      bash prompt: avoid command substitution when checking for untracked files
      bash prompt: avoid command substitution when finalizing gitstring
      bash prompt: mention that PROMPT_COMMAND mode is faster

Sebastian Schuberth (1):
      Makefile: Do not use OLD_ICONV on MINGW anymore

Slava Kardakov (1):
      Fix `git svn` `rebase` & `dcommit` if top-level HEAD directory exist

Stefan Beller (10):
      .mailmap: Map "H.Merijn Brand" to "H. Merijn Brand"
      .mailmap: Map email addresses to names
      .mailmap: Combine more (email, name) to individual persons
      daemon.c:handle: Remove unneeded check for null pointer.
      commit: Fix a memory leak in determine_author_info
      diff.c: Do not initialize a variable, which gets reassigned anyway.
      parse_object_buffer: correct freeing the buffer
      .mailmap: combine more (email, name) to individual persons
      traverse_trees(): clarify return value of the callback
      open_istream: remove unneeded check for null pointer

Stefan Haller (1):
      git-gui: bring wish process to front on Mac

Thomas Gummerer (1):
      perf-lib: fix start/stop of perf tests

Thomas Rast (25):
      Implement line-history search (git log -L)
      log -L: :pattern:file syntax to find by funcname
      Speed up log -L... -M
      log -L: check range set invariants when we look it up
      log -L: fix overlapping input ranges
      t4211: pass -M to 'git log -M -L...' test
      log -L: test merge of parallel modify/rename
      log -L: store the path instead of a diff_filespec
      log -L: improve comments in process_all_files()
      git-log(1): remove --full-line-diff description
      fetch/pull doc: untangle meaning of bare <ref>
      sha1_file: silence sha1_loose_object_info
      test-lib: enable MALLOC_* for the actual tests
      test-lib: refactor $GIT_SKIP_TESTS matching
      test-lib: rearrange start/end of test_expect_* and test_skip
      test-lib: self-test that --verbose works
      test-lib: verbose mode for only tests matching a pattern
      test-lib: valgrind for only tests matching a pattern
      test-lib: allow prefixing a custom string before "ok N" etc.
      test-lib: support running tests under valgrind in parallel
      run-command: dup_devnull(): guard against syscalls failing
      daemon/shell: refactor redirection of 0/1/2 from /dev/null
      git: ensure 0/1/2 are open in main()
      apply, entry: speak of submodules instead of subprojects
      show-branch: fix description of --date-order

Tony Finch (1):
      gitweb: allow extra breadcrumbs to prefix the trail

Torsten Bögershausen (1):
      t0000: do not use export X=Y

W. Trevor King (4):
      doc/clone: Remove the '--bare -l -s' example
      doc/clone: Pick more compelling paths for the --reference example
      Documentation: Update the NFS remote examples to use the staging repo
      Documentation: Update 'linux-2.6.git' -> 'linux.git'

Xidorn Quan (1):
      credential-osxkeychain: support more protocols

brian m. carlson (3):
      send-email: provide port separately from hostname
      commit: reject invalid UTF-8 codepoints
      commit: reject overlong UTF-8 sequences


Version v1.8.3.4; changes since v1.8.3.3:
-----------------------------------------

Dennis Kaarsemaker (2):
      tests: allow sha1's as part of the path
      GIT-VERSION-GEN: support non-standard $GIT_DIR path

Fraser Tweedale (2):
      documentation: add git:// transport security notice
      diff-options: document default similarity index

Jeff King (5):
      t/lib-httpd/apache.conf: do not use LockFile in apache >= 2.4
      t/lib-httpd/apache.conf: load extra auth modules in apache 2.4
      t/lib-httpd/apache.conf: load compat access module in apache 2.4
      t/lib-httpd/apache.conf: configure an MPM module for apache 2.4
      lib-httpd/apache.conf: check version only after mod_version loads

Johannes Sixt (10):
      test-chmtime: Fix exit code on Windows
      t3010: modernize style
      tests: introduce test_ln_s_add
      tests: use test_ln_s_add to remove SYMLINKS prerequisite (trivial cases)
      t0000: use test_ln_s_add to remove SYMLINKS prerequisite
      t3030: use test_ln_s_add to remove SYMLINKS prerequisite
      t3100: use test_ln_s_add to remove SYMLINKS prerequisite
      t3509, t4023, t4114: use test_ln_s_add to remove SYMLINKS prerequisite
      t6035: use test_ln_s_add to remove SYMLINKS prerequisite
      t4011: remove SYMLINKS prerequisite

Junio C Hamano (7):
      fetch-options.txt: prevent a wildcard refspec from getting misformatted
      diff: demote core.safecrlf=true to core.safecrlf=warn
      t1512: correct leftover constants from earlier edition
      get_short_sha1(): correctly disambiguate type-limited abbreviation
      Start preparing for 1.8.3.4
      Update draft release notes to 1.8.3.4
      Git 1.8.3.4

Kevin Bracey (1):
      Documentation: Move "git diff <blob> <blob>"

Matthieu Moy (2):
      Documentation/git-push.txt: explain better cases where --force is dangerous
      Documentation/git-merge.txt: weaken warning about uncommited changes

Michael Haggerty (1):
      lockfile: fix buffer overflow in path handling

Namhyung Kim (1):
      config: Add description of --local option

Ondřej Bílka (1):
      update URL to the marc.info mail archive

Phil Hord (1):
      fix "builtin-*" references to be "builtin/*"

Ramkumar Ramachandra (2):
      column doc: rewrite documentation for column.ui
      name-rev doc: rewrite --stdin paragraph

René Scharfe (9):
      t5000: integrate export-subst tests into regular tests
      t5000, t5003: create directories for extracted files lazily
      t5000: factor out check_tar
      t5000: use check_tar for prefix test
      t5000: simplify tar-tree tests
      t5000: test long filenames
      read-cache: add simple performance test
      read-cache: free cache in discard_index
      use logical OR (||) instead of binary OR (|) in logical context

Stefan Beller (4):
      archive-zip:write_zip_entry: Remove second reset of size variable to zero.
      Documentation: "git reset <tree-ish> <pathspec>" takes a tree-ish, not tree-sh
      http-push.c::add_send_request(): do not initialize transfer_request
      apply.c::find_name_traditional(): do not initialize len to the line's length

Thomas Rast (7):
      coverage: split build target into compile and test
      coverage: do not delete .gcno files before building
      coverage: set DEFAULT_TEST_TARGET to avoid using prove
      coverage: build coverage-untested-functions by default
      Test 'commit --only' after 'checkout --orphan'
      t9902: fix 'test A == B' to use = operator
      test-lint: detect 'export FOO=bar'

Torstein Hegge (1):
      bisect: Fix log output for multi-parent skip ranges

Veres Lajos (1):
      random typofixes (committed missing a 't', successful missing an 's')

Vitor Antunes (1):
      t9801: git-p4: check ignore files with client spec

W. Trevor King (1):
      user-manual: Update download size for Git and the kernel

Yaakov Selkowitz (1):
      web--browse: support /usr/bin/cygstart on Cygwin


Version v1.8.3.3; changes since v1.8.3.2:
-----------------------------------------

Andrew Pimlott (2):
      lib-rebase: document exec_ in FAKE_LINES
      t7500: fix flipped actual/expect

Anthony Ramine (1):
      wildmatch: properly fold case everywhere

Brandon Casey (1):
      http.c: don't rewrite the user:passwd string multiple times

Charles McGarvey (1):
      gitweb: fix problem causing erroneous project list

Chris Rorvick (1):
      git.txt: remove stale comment regarding GIT_WORK_TREE

Clemens Buchacher (1):
      fix segfault with git log -c --follow

David Aguilar (4):
      Makefile: fix default regex settings on Darwin
      Makefile: add support for Apple CommonCrypto facility
      cache.h: eliminate SHA-1 deprecation warnings on Mac OS X
      imap-send: eliminate HMAC deprecation warnings on Mac OS X

Dmitry Marakasov (1):
      contrib/git-subtree: Use /bin/sh interpreter instead of /bin/bash

Felipe Contreras (4):
      read-cache: fix wrong 'the_index' usage
      read-cache: trivial style cleanups
      sequencer: remove useless indentation
      sequencer: avoid leaking message buffer when refusing to create an empty commit

Filipe Cabecinhas (1):
      compate/clipped-write.c: large write(2) fails on Mac OS X/XNU

Fredrik Gustafsson (1):
      handle multibyte characters in name

Jeff King (1):
      pull: update unborn branch tip after index

John Keeping (1):
      git-config: update doc for --get with multiple values

Junio C Hamano (6):
      deprecate core.statinfo at Git 2.0 boundary
      t5551: do not use unportable sed '\+'
      Documentation/diff-index: mention two modes of operation
      Start preparing for 1.8.3.3
      Update draft release notes to 1.8.3.3
      Git 1.8.3.3

Michael S. Tsirkin (9):
      t/send-email.sh: add test for suppress-cc=self
      send-email: fix suppress-cc=self on cccmd
      t/send-email: test suppress-cc=self on cccmd
      send-email: make --suppress-cc=self sanitize input
      t/send-email: add test with quoted sender
      t/send-email: test suppress-cc=self with non-ascii
      test-send-email: test for pre-sanitized self name
      send-email: add test for duplicate utf8 name
      send-email: sanitize author when writing From line

Ramkumar Ramachandra (6):
      sha1_name: fix error message for @{u}
      sha1_name: fix error message for @{<N>}, @{<date>}
      diffcore-pickaxe: make error messages more consistent
      diffcore-pickaxe doc: document -S and -G properly
      check-ignore doc: fix broken link to ls-files page
      fixup-builtins: retire an old transition helper script

René Scharfe (2):
      t5004: avoid using tar for checking emptiness of archive
      t5004: resurrect original empty tar archive test

Richard Hansen (1):
      Documentation/merge-options.txt: restore `-e` option

SZEDER Gábor (1):
      test: spell 'ls-files --delete' option correctly in test descriptions

Thomas Rast (2):
      pull: merge into unborn by fast-forwarding from empty tree
      apply: carefully strdup a possibly-NULL name

Torsten Bögershausen (1):
      t7400: test of UTF-8 submodule names pass under Mac OS

Vikrant Varma (2):
      help: add help_unknown_ref()
      merge: use help_unknown_ref()


Version v1.8.3.2; changes since v1.8.3.1:
-----------------------------------------

Felipe Contreras (1):
      prompt: fix for simple rebase

Johan Herland (8):
      t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
      t2024: Show failure to use refspec when DWIMming remote branch names
      checkout: Use remote refspecs when DWIMming tracking branches
      t3200.39: tracking setup should fail if there is no matching refspec.
      t7201.24: Add refspec to keep --track working
      t9114.2: Don't use --track option against "svn-remote"-tracking branches
      branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
      glossary: Update and rephrase the definition of a remote-tracking branch

John Keeping (1):
      contrib/subtree: don't delete remote branches if split fails

Junio C Hamano (3):
      strbuf_branchname(): do not double-expand @{-1}~22
      Start preparing for 1.8.3.2
      Git 1.8.3.2

Kenichi Saita (1):
      difftool --dir-diff: allow changing any clean working tree file

Kevin Bracey (2):
      t6019: demonstrate --ancestry-path A...B breakage
      revision.c: treat A...B merge bases as if manually specified

Matthijs Kooijman (1):
      combine-diff.c: Fix output when changes are exactly 3 lines apart

Michael Heemskerk (2):
      upload-pack: ignore 'shallow' lines with unknown obj-ids
      t5500: add test for fetching with an unknown 'shallow'

Nguyễn Thái Ngọc Duy (3):
      clone: let the user know when check_everything_connected is run
      urls.txt: avoid auto converting to hyperlink
      fetch-pack: prepare updated shallow file before fetching the pack

Ramkumar Ramachandra (4):
      push: factor out the detached HEAD error message
      push: fail early with detached HEAD and current
      push: make push.default = current use resolved HEAD
      completion: complete diff --word-diff

René Scharfe (1):
      commit: don't start editor if empty message is given with -m

Stefano Lattarini (1):
      configure: fix option help message for --disable-pthreads

Thomas Gummerer (1):
      prompt: fix show upstream with svn and zsh

Thomas Rast (1):
      Document push --no-verify

Torsten Bögershausen (1):
      t0070 "mktemp to unwritable directory" needs SANITY

Wieland Hoffmann (1):
      pre-push.sample: Make the script executable


Version v1.8.3.1; changes since v1.8.3:
---------------------------------------

Erik Faye-Lund (1):
      mingw: make mingw_signal return the correct handler

Felipe Contreras (1):
      sha1_file: trivial style cleanup

Fredrik Gustafsson (1):
      Document .git/modules

Jonathan Nieder (1):
      config: allow inaccessible configuration under $HOME

Junio C Hamano (3):
      Start 1.8.3.1 maintenance track
      t/README: test_must_fail is for testing Git
      Git 1.8.3.1

Karsten Blees (1):
      dir.c: fix ignore processing within not-ignored directories

Phil Hord (1):
      trivial: Add missing period in documentation

René Scharfe (1):
      submodule: remove redundant check for the_index.initialized


Version v1.8.3; changes since v1.8.3-rc3:
-----------------------------------------

Amit Bakshi (1):
      remote-hg: set stdout to binary mode on win32

Felipe Contreras (3):
      completion: regression fix for zsh
      remote-hg: trivial configuration note cleanup
      remote-hg: fix order of configuration comments

Jonathan Nieder (1):
      git-svn: clarify explanation of --destination argument

Junio C Hamano (1):
      Git 1.8.3

Nathan Gray (1):
      git-svn: multiple fetch/branches/tags keys are supported

Tobias Schulte (1):
      git-svn: introduce --parents parameter for commands branch and tag


Version v1.8.3-rc3; changes since v1.8.3-rc2:
---------------------------------------------

Dale R. Worley (1):
      git-submodule.txt: Clarify 'init' and 'add' subcommands.

Dale Worley (1):
      CodingGuidelines: Documentation/*.txt are the sources

Felipe Contreras (13):
      remote-bzr: update old organization
      remote-hg: trivial cleanups
      remote-hg: get rid of unused exception checks
      remote-hg: enable track-branches in hg-git mode
      remote-hg: add new get_config_bool() helper
      remote-hg: fix new branch creation
      remote-hg: disable forced push by default
      remote-hg: don't push fake 'master' bookmark
      remote-hg: update bookmarks when pulling
      remote-bzr: fix cloning of non-listable repos
      Revert "remote-hg: update bookmarks when pulling"
      remote-bzr: fixes for older versions of bzr
      documentation: trivial style cleanups

John Keeping (1):
      difftool: fix dir-diff when file does not exist in working tree

Junio C Hamano (1):
      Git 1.8.3-rc3

Peter Krefting (1):
      gitk: Update Swedish translation (304t)

Sandor Bodo-Merle (1):
      remote-bzr: fix old organization destroy


Version v1.8.3-rc2; changes since v1.8.3-rc1:
---------------------------------------------

Anand Kumria (1):
      gitk: Display the date of a tag in a human-friendly way

David Aguilar (1):
      mergetools/kdiff3: do not use --auto when diffing

Felipe Contreras (25):
      remote-bzr: cleanup CustomTree
      remote-bzr: delay blob fetching until the very end
      remote-bzr: fix order of locking in CustomTree
      remote-bzr: always try to update the worktree
      remote-bzr: add support to push merges
      remote-bzr: fixes for branch diverge
      remote-bzr: fix partially pushed merge
      remote-bzr: use branch variable when appropriate
      remote-bzr: add support for bzr repos
      remote-bzr: fix branch names
      remote-bzr: add support for shared repo
      remote-bzr: improve author sanitazion
      remote-bzr: add custom method to find branches
      remote-bzr: add option to specify branches
      remote-bzr: improve progress reporting
      remote-bzr: iterate revisions properly
      remote-bzr: delay peer branch usage
      remote-bzr: access branches only when needed
      transport-helper: improve push messages
      remote-bzr: convert all unicode keys to str
      remote-bzr: avoid bad refs
      remote-bzr: fix for disappeared revisions
      remote-helpers: trivial cleanup
      transport-helper: trivial style cleanup
      gitk: Simplify file filtering

Gauthier Östervall (1):
      gitk: Move hard-coded colors to .gitk

Jiang Xin (2):
      l10n: git.pot: v1.8.3 round 2 (44 new, 12 removed)
      l10n: zh_CN.po: translate 44 messages (2080t0f0u)

John Keeping (1):
      merge-tree: handle directory/empty conflict correctly

Jonathan Nieder (1):
      Git::SVN::*: add missing "NAME" section to perldoc

Junio C Hamano (4):
      Update draft release notes for 1.8.3
      cherry-pick: picking a tag that resolves to a commit is OK
      Git 1.8.2.3
      Git 1.8.3-rc2

Knut Franke (1):
      gitk: Add menu item for reverting commits

Martin Langhoff (1):
      gitk: Add support for -G'regex' pickaxe variant

Michael Contreras (1):
      git-svn: avoid self-referencing mergeinfo

Paul Mackerras (1):
      gitk: Improve behaviour of drop-down lists

Paul Walmsley (1):
      git-svn: added an --include-path flag

Peter Krefting (1):
      l10n: Update Swedish translation (2080t0f0u)

Ralf Thielow (1):
      l10n: de.po: translate 44 new messages

René Scharfe (2):
      t5004: ignore pax global header file
      t5004: avoid using tar for checking emptiness of archive

Tair Sabirgaliev (1):
      gitk: On OSX, bring the gitk window to front

Torsten Bögershausen (1):
      test-bzr: do not use unportable sed '\+'

Trần Ngọc Quân (1):
      l10n: Update Vietnamese translation (2080t0f0u)


Version v1.8.3-rc1; changes since v1.8.3-rc0:
---------------------------------------------

Anders Granskogen Bjørnstad (1):
      Documentation/git-commit: Typo under --edit

Felipe Contreras (5):
      completion: add missing format-patch options
      documentation: trivial whitespace cleanups
      complete: zsh: trivial simplification
      complete: zsh: use zsh completion for the main cmd
      completion: zsh: don't override suffix on _detault

H. Merijn Brand (1):
      Git.pm: call tempfile from File::Temp as a regular function

John Keeping (2):
      merge-tree: fix typo in "both changed identically"
      t/Makefile: remove smoke test targets

Junio C Hamano (2):
      Update draft release notes to 1.8.3
      Git 1.8.3-rc1

Marc Branchaud (1):
      Fix grammar in the 1.8.3 release notes.

Ramkumar Ramachandra (5):
      git-completion.bash: lexical sorting for diff.statGraphWidth
      git-completion.bash: add diff.submodule to config list
      git-completion.bash: complete branch.*.rebase as boolean
      git-completion.bash: add branch.*.pushremote to config list
      git-completion.bash: add remote.pushdefault to config list

Ramsay Jones (2):
      clone: Make the 'junk_mode' symbol a file static
      pretty: Fix bug in truncation support for %>, %< and %><

René Scharfe (3):
      pretty: simplify input line length calculation in pp_user_info()
      pretty: simplify output line length calculation in pp_user_info()
      pretty: remove intermediate strbufs from pp_user_info()

Thomas Rast (4):
      remote: add a test for extra arguments, according to docs
      remote: check for superfluous arguments in 'git remote add'
      remote: 'show' and 'prune' can take more than one remote
      unpack_entry: avoid freeing objects in base cache

Zoltan Klinger (1):
      bash-prompt.sh: show where rebase is at when stopped


Version v1.8.3-rc0; changes since v1.8.2.3:
-------------------------------------------

Aaron Schrab (2):
      clone: Fix error message for reference repository
      clone: Allow repo using gitfile as a reference

Antoine Pelisse (5):
      combine-diff: coalesce lost lines optimally
      fast-export: Allow pruned-references in mark file
      strbuf: create strbuf_humanise_bytes() to show byte sizes
      count-objects: add -H option to humanize sizes
      remote-hg: activate graphlog extension for hg_log()

Brad King (1):
      commit-tree: document -S option consistently

Brandon Casey (11):
      commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
      t/test-lib-functions.sh: allow to specify the tag name to test_commit
      t/t3511: add some tests of 'cherry-pick -s' functionality
      sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
      sequencer.c: require a conforming footer to be preceded by a blank line
      sequencer.c: always separate "(cherry picked from" from commit body
      sequencer.c: teach append_signoff how to detect duplicate s-o-b
      sequencer.c: teach append_signoff to avoid adding a duplicate newline
      Unify appending signoff in format-patch, commit and sequencer
      t7502: perform commits using alternate editor in a subshell
      git-commit: populate the edit buffer with 2 blank lines before s-o-b

Brian Gernhardt (3):
      t5550: do not assume the "matching" push is the default
      t5551: do not assume the "matching" push is the default
      t5570: do not assume the "matching" push is the default

Christophe Simonis (3):
      remote-bzr: fix directory renaming
      remote-bzr: remove files before modifications
      remote-bzr: fix utf-8 support for fetching

David Aguilar (4):
      difftool: silence uninitialized variable warning
      t7800: update copyright notice
      t7800: modernize tests
      t7800: "defaults" is no longer a builtin tool name

David Engster (1):
      remote-bzr: set author if available

Dusty Phillips (3):
      remote-hg: add missing config variable in doc
      remote-hg: push to the appropriate branch
      remote-helpers: avoid has_key

Felipe Contreras (64):
      remote-bzr: avoid echo -n
      remote-helpers: fix the run of all tests
      remote-bzr: remove stale check code for tests
      remote-hg: fix hg-git test-case
      remote-bzr: only update workingtree on local repos
      remote-bzr: avoid unreferred tags
      remote-bzr: add utf-8 support for pushing
      send-email: make annotate configurable
      format-patch: improve head calculation for cover-letter
      format-patch: refactor branch name calculation
      log: update to OPT_BOOL
      format-patch: add format.coverLetter configuration variable
      format-patch: trivial cleanups
      remote-bzr: improve tag handling
      remote-hg: trivial cleanups
      remote-hg: properly report errors on bookmark pushes
      remote-hg: make sure fake bookmarks are updated
      remote-hg: trivial test cleanups
      remote-hg: redirect buggy mercurial output
      remote-hg: split bookmark handling
      remote-hg: refactor export
      remote-hg: update remote bookmarks
      remote-hg: update tags globally
      remote-hg: force remote push
      remote-hg: show more proper errors
      remote-hg: add basic author tests
      remote-hg: add simple mail test
      remote-hg: fix bad state issue
      remote-hg: fix bad file paths
      completion: add more cherry-pick options
      completion: trivial test improvement
      completion: get rid of empty COMPREPLY assignments
      rebase-am: explicitly disable cover-letter
      completion: add new __gitcompadd helper
      completion: add __gitcomp_nl tests
      completion: get rid of compgen
      completion: inline __gitcomp_1 to its sole callsite
      completion: small optimization
      branch: colour upstream branches
      remote-bzr: fix prefix of tags
      remote-hg: safer bookmark pushing
      remote-hg: use python urlparse
      remote-hg: properly mark branches up-to-date
      remote-hg: add branch_tip() helper
      remote-hg: add support for tag objects
      remote-hg: custom method to write tags
      remote-hg: write tags in the appropriate branch
      remote-hg: add custom local tag write code
      remote-hg: improve email sanitation
      remote-hg: add support for schemes extension
      remote-hg: don't update bookmarks unnecessarily
      remote-hg: allow refs with spaces
      remote-hg: small performance improvement
      remote-hg: use marks instead of inlined files
      remote-hg: strip extra newline
      remote-bzr: use proper push method
      remote-helpers: trivial cleanups
      remote-hg: remove extra check
      remote-bzr: fix bad state issue
      remote-bzr: add support to push URLs
      remote-hg: use hashlib instead of hg sha1 util
      remote-bzr: store converted URL
      remote-bzr: tell bazaar to be quiet
      remote-bzr: strip extra newline

Jacob Sarvis (1):
      log: read gpg settings for signed commit verification

Jeff King (53):
      upload-pack: use get_sha1_hex to parse "shallow" lines
      upload-pack: do not add duplicate objects to shallow list
      upload-pack: remove packet debugging harness
      fetch-pack: fix out-of-bounds buffer offset in get_ack
      send-pack: prefer prefixcmp over memcmp in receive_status
      upload-archive: do not copy repo name
      upload-archive: use argv_array to store client arguments
      write_or_die: raise SIGPIPE when we get EPIPE
      pkt-line: move a misplaced comment
      pkt-line: drop safe_write function
      pkt-line: provide a generic reading function with options
      pkt-line: teach packet_read_line to chomp newlines
      pkt-line: move LARGE_PACKET_MAX definition from sideband
      pkt-line: provide a LARGE_PACKET_MAX static buffer
      pkt-line: share buffer/descriptor reading implementation
      teach get_remote_heads to read from a memory buffer
      remote-curl: pass buffer straight to get_remote_heads
      remote-curl: move ref-parsing code up in file
      remote-curl: always parse incoming refs
      t2200: check that "add -u" limits itself to subdirectory
      fast-export: rename handle_object function
      fast-export: do not load blob objects twice
      do not use GIT_TRACE_PACKET=3 in tests
      stream_blob_to_fd: detect errors reading from stream
      check_sha1_signature: check return value from read_istream
      read_istream_filtered: propagate read error from upstream
      avoid infinite loop in read_istream_loose
      add test for streaming corrupt blobs
      streaming_write_entry: propagate streaming errors
      add tests for cloning corrupted repositories
      clone: die on errors from unpack_trees
      clone: run check_everything_connected
      t1300: document some aesthetic failures of the config editor
      clone: leave repo in place after checkout errors
      t5516 (fetch-push): drop implicit arguments from helper functions
      t3200: test --set-upstream-to with bogus refs
      branch: factor out "upstream is not a branch" error messages
      branch: improve error message for missing --set-upstream-to ref
      branch: mention start_name in set-upstream error messages
      branch: give advice when tracking start-point is missing
      rm: do not complain about d/f conflicts during deletion
      t3600: test behavior of reverse-d/f conflict
      t3600: document failure of rm across symbolic links
      http: add HTTP_KEEP_ERROR option
      remote-curl: show server content on http errors
      remote-curl: let servers override http 404 advice
      remote-curl: always show friendlier 404 message
      remote-curl: consistently report repo url for http errors
      http: simplify http_error helper function
      http: re-word http error message
      remote-curl: die directly with http error messages
      http: drop http_error function
      http: set curl FAILONERROR each time we select a handle

Jens Lehmann (2):
      submodule: add 'deinit' command
      submodule deinit: clarify work tree removal message

Jiang Xin (3):
      l10n: git.pot: v1.8.3 round 1 (54 new, 15 removed)
      l10n: zh_CN.po: translate 54 messages (2048t0f0u)
      i18n: branch: mark strings for translation

John Keeping (16):
      Makefile: make mandir, htmldir and infodir absolute
      git-difftool(1): fix formatting of --symlink description
      difftool: avoid double slashes in symlink targets
      difftool --dir-diff: symlink all files matching the working tree
      refs.c: fix fread error handling
      t7800: move '--symlinks' specific test to the end
      difftool: don't overwrite modified files
      t7800: don't hide grep output
      t7800: fix tests when difftool uses --no-symlinks
      t7800: run --dir-diff tests with and without symlinks
      submodule: print graph output next to submodule log
      gitremote-helpers(1): clarify refspec behaviour
      merge-tree: don't print entries that match "local"
      fast-export: add --signed-tags=warn-strip mode
      transport-helper: pass --signed-tags=warn-strip to fast-export
      transport-helper: add 'signed-tags' capability

John Koleszar (1):
      http-backend: respect GIT_NAMESPACE with dumb clients

John Szakmeister (1):
      git-web--browse: recognize any TERM_PROGRAM as a GUI terminal on OS X

Jonathan Nieder (11):
      sequencer.c: rework search for start of footer to improve clarity
      shell doc: emphasize purpose and security model
      shell: new no-interactive-login command to print a custom message
      push test: use test_config when appropriate
      push test: simplify check of push result
      push test: rely on &&-chaining instead of 'if bad; then echo Oops; fi'
      add: make pathless 'add [-u|-A]' warning a file-global function
      add: make warn_pathless_add() a no-op after first call
      add -u: only show pathless 'add -u' warning when changes exist outside cwd
      add -A: only show pathless 'add -A' warning when changes exist outside cwd
      convert: The native line-ending is \r\n on MinGW

Jonathon Mah (1):
      branch: give better message when no names specified for rename

Junio C Hamano (53):
      t5404: do not assume the "matching" push is the default
      t5505: do not assume the "matching" push is the default
      t5516: do not assume the "matching" push is the default
      t5517: do not assume the "matching" push is the default
      t5519: do not assume the "matching" push is the default
      t5531: do not assume the "matching" push is the default
      t7406: do not assume the "matching" push is the default
      t9400: do not assume the "matching" push is the default
      t9401: do not assume the "matching" push is the default
      simplify-merges: drop merge from irrelevant side branch
      config.mak.in: remove unused definitions
      parse_fetch_refspec(): clarify the codeflow a bit
      fetch: use struct ref to represent refs to be fetched
      upload-pack: optionally allow fetching from the tips of hidden refs
      fetch: fetch objects by their exact SHA-1 object names
      Makefile: do not export mandir/htmldir/infodir
      match_push_refs(): nobody sets src->peer_ref anymore
      commit.c: add clear_commit_marks_many()
      commit.c: add in_merge_bases_many()
      commit.c: use clear_commit_marks_many() in in_merge_bases_many()
      push: --follow-tags
      for_each_reflog_ent(): extract a helper to process a single entry
      for_each_recent_reflog_ent(): simplify opening of a reflog file
      reflog: add for_each_reflog_ent_reverse() API
      builtin/add.c: simplify boolean variables
      git add: start preparing for "git add <pathspec>..." to default to "-A"
      Start the post 1.8.2 cycle
      The first wave of topics for 1.8.3
      Update draft release notes to 1.8.3
      merge-one-file: remove stale comment
      merge-one-file: force content conflict for "both sides added" case
      Second wave of topics toward 1.8.3
      More topics from the second batch for 1.8.3
      peel_onion: disambiguate to favor tree-ish when we know we want a tree-ish
      peel_onion(): teach $foo^{object} peeler
      Update draft release notes to 1.8.3
      Update draft release notes to 1.8.3
      Update draft release notes to 1.8.3
      Update draft release notes to 1.8.3
      Update draft release notes to 1.8.3
      Revert 4b7f53da7618 (simplify-merges: drop merge from irrelevant side branch, 2013-01-17)
      Update dtaft release notes to 1.8.3
      Update draft release notes to 1.8.3
      git add: rework the logic to warn "git add <pathspec>..." default change
      Update draft release notes to 1.8.3
      Update draft release notes to 1.8.3
      git add: rephrase the "removal will cease to be ignored" warning
      Update draft release notes to 1.8.3
      git add: --ignore-removal is a better named --no-all
      git add: rephrase -A/--no-all warning
      Update draft release notes to 1.8.3
      git add: avoid "-u/-A without pathspec" warning on stat-dirty paths
      Git 1.8.3-rc0

Karsten Blees (14):
      dir.c: git-status --ignored: don't drop ignored directories
      dir.c: git-status --ignored: don't list files in ignored directories
      dir.c: git-status --ignored: don't list empty ignored directories
      dir.c: git-ls-files --directories: don't hide empty directories
      dir.c: git-status --ignored: don't list empty directories as ignored
      dir.c: make 'git-status --ignored' work within leading directories
      dir.c: git-clean -d -X: don't delete tracked directories
      dir.c: factor out parts of last_exclude_matching for later reuse
      dir.c: move prep_exclude
      dir.c: unify is_excluded and is_path_excluded APIs
      dir.c: replace is_path_excluded with now equivalent is_excluded API
      dir.c: git-status: avoid is_excluded checks for tracked files
      dir.c: git-status --ignored: don't scan the work tree three times
      dir.c: git-status --ignored: don't scan the work tree twice

Kevin Bracey (5):
      mergetools/p4merge: swap LOCAL and REMOTE
      mergetools/p4merge: create a base if none available
      git-merge-one-file: style cleanup
      git-merge-one-file: send "ERROR:" messages to stderr
      checkout: abbreviate hash in suggest_reattach

Kirill Smelkov (1):
      Fix `make install` when configured with autoconf

Lukas Fleischer (3):
      attr.c: extract read_index_data() as read_blob_data_from_index()
      read_blob_data_from_index(): optionally return the size of blob data
      convert.c: remove duplicate code

Matthieu Moy (3):
      status: show 'revert' state and status hint
      status: show commit sha1 in "You are currently reverting" message
      add: add a blank line at the end of pathless 'add [-u|-A]' warning

Michael Haggerty (1):
      rev-parse: clarify documentation for the --verify option

Michal Nazarewicz (6):
      Git.pm: allow command_close_bidi_pipe to be called as method
      Git.pm: fix example in command_close_bidi_pipe documentation
      Git.pm: refactor command_close_bidi_pipe to use _cmd_close
      Git.pm: allow pipes to be closed prior to calling command_close_bidi_pipe
      Git.pm: add interface for git credential command
      git-send-email: use git credential to obtain password

Mike Gorchak (2):
      date.c: fix unsigned time_t comparison
      Fix time offset calculation in case of unsigned time_t

Miklos Vajna (1):
      cherry-pick: make sure all input objects are commits

Miklós Fazekas (1):
      git p4: avoid expanding client paths in chdir

Modestas Vainius (1):
      Support FTP-over-SSL/TLS for regular FTP

Nguyễn Thái Ngọc Duy (28):
      git-count-objects.txt: describe each line in -v output
      t4014: more tests about appending s-o-b lines
      format-patch: update append_signoff prototype
      sha1_file: reorder code in prepare_packed_git_one()
      count-objects: report garbage files in pack directory too
      count-objects: report how much disk space taken by garbage files
      wt-status: move strbuf into read_and_strip_branch()
      wt-status: split wt_status_state parsing function out
      wt-status: move wt_status_get_state() out to wt_status_print()
      status: show more info than "currently not on any branch"
      branch: show more information when HEAD is detached
      Preallocate hash tables when the number of inserts are known in advance
      status, branch: fix the misleading "bisecting" message
      checkout: avoid unnecessary match_pathspec calls
      checkout: add --ignore-skip-worktree-bits in sparse checkout mode
      pretty: save commit encoding from logmsg_reencode if the caller needs it
      pretty: get the correct encoding for --pretty:format=%e
      pretty-formats.txt: wrap long lines
      pretty: share code between format_decoration and show_decorations
      utf8.c: move display_mode_esc_sequence_len() for use by other functions
      utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences
      utf8.c: add reencode_string_len() that can handle NULs in string
      pretty: two phase conversion for non utf-8 commits
      pretty: split color parsing into a separate function
      pretty: add %C(auto) for auto-coloring
      pretty: support padding placeholders, %< %> and %><
      pretty: support truncating in %>, %< and %><
      pretty: support %>> that steal trailing spaces

Pete Wyckoff (2):
      git p4 test: make sure P4CONFIG relative path works
      git p4 test: should honor symlink in p4 client root

Peter Krefting (1):
      l10n: Update Swedish translation (2048t0f0u)

Peter van Zetten (1):
      remote-hg: fix for files with spaces

Phil Hord (1):
      rebase: find orig_head unambiguously

Philip Oakley (5):
      builtin/help.c: split "-a" processing into two
      builtin/help.c: add --guide option
      builtin/help.c: add list_common_guides_help() function
      help: mention -a and -g option, and 'git help <concept>' usage.
      doc: include --guide option description for "git help"

Ralf Thielow (1):
      l10n: de.po: translate 54 new messages

Ramkumar Ramachandra (14):
      t5520: use test_config to set/unset git config variables (leftover bits)
      remote.c: simplify a bit of code using git_config_string()
      t5516 (fetch-push): update test description
      remote.c: introduce a way to have different remotes for fetch/push
      remote.c: introduce remote.pushdefault
      remote.c: introduce branch.<name>.pushremote
      git-shortlog.txt: remove (-h|--help) from OPTIONS
      revisions.txt: clarify the .. and ... syntax
      git-log.txt: order OPTIONS properly; move <since>..<until>
      git-log.txt: generalize <since>..<until>
      git-log.txt: rewrite note on why "--" may be required
      git-shortlog.txt: make SYNOPSIS match log, update OPTIONS
      builtin/log.c: make usage string consistent with doc
      builtin/shortlog.c: make usage string consistent with log

Ramsay Jones (5):
      msvc: Fix compilation errors caused by poll.h emulation
      msvc: git-daemon: Fix linker "unresolved external" errors
      msvc: Fix build by adding missing symbol defines
      msvc: test-svn-fe: Fix linker "unresolved external" error
      msvc: avoid collisions between "tags" and "TAGS"

René Scharfe (1):
      archive-zip: use deflateInit2() to ask for raw compressed data

Sebastian Götte (5):
      Move commit GPG signature verification to commit.c
      commit.c/GPG signature verification: Also look at the first GPG status line
      merge/pull: verify GPG signatures of commits being merged
      merge/pull Check for untrusted good GPG signatures
      pretty printing: extend %G? to include 'N' and 'U'

Sebastian Schuberth (1):
      git-svn: Support custom tunnel schemes instead of SSH only

Simon Ruderich (4):
      git-am: show the final log message on "Applying:" indicator
      remote-hg: add 'insecure' option
      remote-hg: document location of stored hg repository
      help: mark common_guides[] as translatable

Stefano Lattarini (1):
      zlib: fix compilation failures with Sun C Compilaer

Steven Walter (1):
      safe_create_leading_directories: fix race that could give a false negative

Ted Zlatanov (1):
      Add contrib/credentials/netrc with GPG support

Thomas Rast (8):
      sha1_file: remove recursion in packed_object_info
      Refactor parts of in_delta_base_cache/cache_or_unpack_entry
      sha1_file: remove recursion in unpack_entry
      Avoid loading commits twice in log with diffs
      t/README: --valgrind already implies -v
      tests: parameterize --valgrind option
      tests --valgrind: provide a mode without --track-origins
      tests: notice valgrind error in test_must_fail

Timotheus Pokorra (1):
      remote-bzr: add utf-8 support for fetching

Torstein Hegge (3):
      t9903: Don't fail when run from path accessed through symlink
      bisect: Store first bad commit as comment in log file
      bisect: Log possibly bad, skipped commits at bisection end

Torsten Bögershausen (4):
      Make core.sharedRepository work under cygwin 1.7
      path.c: simplify adjust_shared_perm()
      path.c: optimize adjust_shared_perm()
      test-bzr: portable shell and utf-8 strings for Mac OS

Trần Ngọc Quân (1):
      l10n: vi.po: Update translation (2048t0u0f)

Yann Droneaud (12):
      t3400: use test_config to set/unset git config variables
      t4304: use test_config to set/unset git config variables
      t4034: use test_config/test_unconfig to set/unset git config variables
      t4202: use test_config/test_unconfig to set/unset git config variables
      t5520: use test_config to set/unset git config variables
      t5541: use test_config to set/unset git config variables
      t7500: use test_config to set/unset git config variables
      t7508: use test_config to set/unset git config variables
      t9500: use test_config to set/unset git config variables
      t7502: use test_config to set/unset git config variables
      t7502: remove clear_config
      t7600: use test_config to set/unset git config variables


Version v1.8.2.3; changes since v1.8.2.2:
-----------------------------------------

Anders Granskogen Bjørnstad (1):
      Documentation/git-commit: Typo under --edit

David Aguilar (1):
      mergetools/kdiff3: do not use --auto when diffing

Felipe Contreras (5):
      documentation: trivial whitespace cleanups
      complete: zsh: trivial simplification
      complete: zsh: use zsh completion for the main cmd
      completion: zsh: don't override suffix on _detault
      transport-helper: trivial style cleanup

John Keeping (1):
      t/Makefile: remove smoke test targets

Jonathan Nieder (1):
      glossary: a revision is just a commit

Junio C Hamano (1):
      Git 1.8.2.3

Ramkumar Ramachandra (3):
      git-completion.bash: lexical sorting for diff.statGraphWidth
      git-completion.bash: add diff.submodule to config list
      git-completion.bash: complete branch.*.rebase as boolean

René Scharfe (2):
      t5004: ignore pax global header file
      t5004: avoid using tar for checking emptiness of archive

Thomas Rast (4):
      read_revisions_from_stdin: make copies for handle_revision_arg
      remote: add a test for extra arguments, according to docs
      remote: check for superfluous arguments in 'git remote add'
      remote: 'show' and 'prune' can take more than one remote


Version v1.8.2.2; changes since v1.8.2.1:
-----------------------------------------

Adam Spiers (1):
      t: make PIPE a standard test prerequisite

Antoine Pelisse (2):
      fix clang -Wtautological-compare with unsigned enum
      Allow combined diff to ignore white-spaces

Benoit Bourbie (1):
      Typo fix: replacing it's -> its

Carlos Martín Nieto (1):
      Documentation/git-commit: reword the --amend explanation

David Aguilar (1):
      help.c: add a compatibility comment to cmd_version()

Felipe Contreras (2):
      remote-hg: fix commit messages
      prompt: fix untracked files for zsh

Jakub Narębski (1):
      gitweb/INSTALL: Simplify description of GITWEB_CONFIG_SYSTEM

Jeff King (13):
      submodule: clarify logic in show_submodule_summary
      filter-branch: return to original dir after filtering
      diffcore-pickaxe: remove fill_one()
      diffcore-pickaxe: unify code for log -S/-G
      show-branch: use strbuf instead of static buffer
      doc/http-backend: clarify "half-auth" repo configuration
      doc/http-backend: give some lighttpd config examples
      doc/http-backend: match query-string in apache half-auth example
      t/test-lib.sh: drop "$test" variable
      usage: allow pluggable die-recursion checks
      run-command: use thread-aware die_is_recursing routine
      cat-file: print tags raw for "cat-file -p"
      receive-pack: close sideband fd on early pack errors

Jiang Xin (1):
      i18n: make the translation of -u advice in one go

Johannes Sixt (3):
      rerere forget: grok files containing NUL
      rerere forget: do not segfault if not all stages are present
      t6200: avoid path mangling issue on Windows

John Keeping (5):
      diffcore-break: don't divide by zero
      bisect: avoid signed integer overflow
      git-merge(1): document diff-algorithm option to merge-recursive
      diff: allow unstuck arguments with --diff-algorithm
      t/test-lib.sh: fix TRASH_DIRECTORY handling

Jonathan Nieder (1):
      gitweb/INSTALL: GITWEB_CONFIG_SYSTEM is for backward compatibility

Junio C Hamano (13):
      merge: a random object may not necssarily be a commit
      apply --whitespace=fix: avoid running over the postimage buffer
      t5516: test interaction between pushURL and pushInsteadOf correctly
      test: resurrect q_to_tab
      t6200: use test_config/test_unconfig
      t6200: test message for merging of an annotated tag
      diffcore-pickaxe: port optimization from has_changes() to diff_grep()
      diffcore-pickaxe: fix leaks in "log -S<block>" and "log -G<pattern>"
      glossary: extend "detached HEAD" description
      doc: clarify that "git daemon --user=<user>" option does not export HOME=~user
      Start preparing for 1.8.2.2
      Update draft release notes to 1.8.2.2
      Git 1.8.2.2

Kevin Bracey (1):
      cherry-pick/revert: make usage say '<commit-ish>...'

Lukas Fleischer (1):
      bundle: Accept prerequisites without commit messages

Martin von Gagern (1):
      Documentation: Strip texinfo anchors to avoid duplicates

Mårten Kongstad (1):
      completion: remove duplicate block for "git commit -c"

Paul Price (1):
      fast-export: fix argument name in error messages

Peter Eisentraut (1):
      pull: Apply -q and -v options to rebase mode as well

Ralf Thielow (2):
      fmt-merge-msg: respect core.commentchar in people credits
      fmt-merge-msg: use core.commentchar in tag signatures completely

Ramkumar Ramachandra (4):
      t3200 (branch): modernize style
      send-email: use "return;" not "return undef;" on error codepaths
      send-email: drop misleading function prototype
      send-email: use the three-arg form of open in recipients_cmd

René Scharfe (5):
      match-trees: simplify score_trees() using tree_entry()
      t5004: fix issue with empty archive test and bsdtar
      archive: clarify explanation of --worktree-attributes
      pretty: handle broken commit headers gracefully
      blame: handle broken commit headers gracefully

Robin Rosenberg (1):
      bash: teach __git_ps1 about REVERT_HEAD

Simon Ruderich (3):
      diffcore-pickaxe: remove unnecessary call to get_textconv()
      diffcore-pickaxe: respect --no-textconv
      t/README: --immediate skips cleanup commands for failed tests

Stefan Saasen (1):
      Documentation: distinguish between ref and offset deltas in pack-format

Stefano Lattarini (9):
      doc: various spelling fixes
      git-remote-mediawiki: spelling fixes
      contrib/subtree: fix spelling of accidentally
      obstack: fix spelling of similar
      compat/regex: fix spelling and grammar in comments
      compat/nedmalloc: fix spelling in comments
      precompose-utf8: fix spelling of "want" in error message
      kwset: fix spelling in comments
      Correct common spelling mistakes in comments and tests

Thomas Ackermann (4):
      glossary: remove outdated/misleading/irrelevant entries
      glossary: improve description of SHA-1 related topics
      The name of the hash function is "SHA-1", not "SHA1"
      glossary: improve definitions of refspec and pathspec

Thomas Rast (2):
      perl: redirect stderr to /dev/null instead of closing
      t9700: do not close STDERR

Torsten Bögershausen (5):
      t9020: do not use export X=Y
      t9501: do not use export X=Y
      test-hg-bidi.sh: do not use export X=Y
      test-hg-hg-git.sh: do not use export X=Y
      t7409: do not use export X=Y


Version v1.8.2.1; changes since v1.8.2:
---------------------------------------

Andrew Wong (2):
      setup.c: stop prefix_pathspec() from looping past the end of string
      setup.c: check that the pathspec magic ends with ")"

Antoine Pelisse (3):
      update-index: allow "-h" to also display options
      diff: Fix rename pretty-print when suffix and prefix overlap
      tests: make sure rename pretty print works

Brandon Casey (4):
      t/t7502: compare entire commit message with what was expected
      t7502: demonstrate breakage with a commit message with trailing newlines
      git-commit: only append a newline to -m mesg if necessary
      Documentation/git-commit.txt: rework the --cleanup section

Christian Helmuth (1):
      git-commit doc: describe use of multiple `-m` options

Dan Bornstein (1):
      Correct the docs about GIT_SSH.

David Aguilar (20):
      git-sh-setup: use a lowercase "usage:" string
      git-svn: use a lowercase "usage:" string
      git-relink: use a lowercase "usage:" string
      git-merge-one-file: use a lowercase "usage:" string
      git-archimport: use a lowercase "usage:" string
      git-cvsexportcommit: use a lowercase "usage:" string
      git-cvsimport: use a lowercase "usage:" string
      git-cvsimport: use a lowercase "usage:" string
      contrib/credential: use a lowercase "usage:" string
      contrib/fast-import: use a lowercase "usage:" string
      contrib/fast-import/import-zips.py: fix broken error message
      contrib/fast-import/import-zips.py: use spaces instead of tabs
      contrib/examples: use a lowercase "usage:" string
      contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
      templates/hooks--update.sample: use a lowercase "usage:" string
      Documentation/user-manual.txt: use a lowercase "usage:" string
      git-svn: use a lowercase "usage:" string
      tests: use a lowercase "usage:" string
      contrib/examples/git-remote.perl: use a lowercase "usage:" string
      contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string

David Michael (1):
      git-compat-util.h: Provide missing netdb.h definitions

Greg Price (2):
      Fix ".git/refs" stragglers
      describe: Document --match pattern format

Jeff King (23):
      utf8: accept alternate spellings of UTF-8
      mailsplit: sort maildir filenames more cleverly
      cache.h: drop LOCAL_REPO_ENV_SIZE
      environment: add GIT_PREFIX to local_repo_env
      setup: suppress implicit "." work-tree for bare repos
      test-lib: factor out $GIT_UNZIP setup
      archive: handle commits with an empty tree
      upload-pack: drop lookup-before-parse optimization
      upload-pack: make sure "want" objects are parsed
      upload-pack: load non-tip "want" objects from disk
      avoid segfaults on parse_object failure
      use parse_object_or_die instead of die("bad object")
      pack-refs: write peeled entry for non-tags
      index-pack: always zero-initialize object_entry list
      fast-import: use pointer-to-pointer to keep list tail
      drop some obsolete "x = x" compiler warning hacks
      transport: drop "int cmp = cmp" hack
      run-command: always set failed_errno in start_command
      fast-import: clarify "inline" logic in file_change_m
      wt-status: fix possible use of uninitialized variable
      dir.c::match_pathname(): adjust patternlen when shifting pattern
      dir.c::match_pathname(): pay attention to the length of string parameters
      t: check that a pattern without trailing slash matches a directory

Johannes Sixt (1):
      t2003: work around path mangling issue on Windows

John Keeping (4):
      Revert "graph.c: mark private file-scope symbols as static"
      t2003: modernize style
      entry: fix filter lookup
      merge-tree: fix typo in merge-tree.c::unresolved

Joshua Clayton (1):
      Git.pm: fix cat_blob crashes on large files

Junio C Hamano (21):
      imap-send: support Server Name Indication (RFC4366)
      diff-options: unconfuse description of --color
      describe: --match=<pattern> must limit the refs even when used with --all
      reflog: fix typo in "reflog expire" clean-up codepath
      Documentation/git-push: clarify the description of defaults
      git status: document trade-offs in choosing parameters to the -u option
      CodingGuidelines: our documents are in AsciiDoc
      Documentation: merging a tag is a special case
      transport.c: help gcc 4.6.3 users by squelching compiler warning
      Start preparing for 1.8.2.1
      attr.c::path_matches(): the basename is part of the pathname
      More corrections for 1.8.2.1
      More fixes for 1.8.2.1
      attr.c::path_matches(): special case paths that end with a slash
      dir.c::match_basename(): pay attention to the length of string parameters
      Update draft release notes to 1.8.2.1
      Start preparing for 1.8.1.6
      Update draft release notes to 1.8.2.1
      mailmap: update Pasky's address
      Git 1.8.1.6
      Git 1.8.2.1

Kacper Kornet (3):
      rev-parse: clarify documentation of $name@{upstream} syntax
      t1507: Test that branchname@{upstream} is interpreted as branch
      Fix revision walk for commits with the same dates

Karsten Blees (1):
      name-hash.c: fix endless loop with core.ignorecase=true

Kirill Smelkov (1):
      format-patch: RFC 2047 says multi-octet character may not be split

Lukas Fleischer (2):
      bundle: Fix "verify" output if history is complete
      bundle: Add colons to list headings in "verify"

Matthias Krüger (1):
      git help config: s/insn/instruction/

Matthieu Moy (1):
      git-remote-mediawiki: new wiki URL in documentation

Max Nanasy (1):
      diff.c: diff.renamelimit => diff.renameLimit in message

Michael Haggerty (1):
      pack-refs: add fully-peeled trait

Michael J Gruber (5):
      gpg-interface: check good signature in a reliable way
      log-tree: rely upon the check in the gpg_interface
      gpg_interface: allow to request status return
      pretty: parse the gpg status lines rather than the output
      pretty: make %GK output the signing key for signed commits

Mihai Capotă (1):
      git-pull doc: fix grammo ("conflicts" is plural)

Nguyễn Thái Ngọc Duy (7):
      index-format.txt: mention of v4 is missing in some places
      read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
      branch: segfault fixes and validation
      update-index: list supported idx versions and their features
      status: advise to consider use of -u when read_directory takes too long
      index-pack: fix buffer overflow caused by translations
      index-pack: protect deepest_delta in multithread code

Phil Hord (1):
      tag: --force does not have to warn when creating tags

Ramkumar Ramachandra (1):
      t4018,7810,7811: remove test_config() redefinition

Ramsay Jones (2):
      fast-import: Fix an gcc -Wuninitialized warning
      cat-file: Fix an gcc -Wuninitialized warning

René Scharfe (4):
      archive-zip: fix compressed size for stored export-subst files
      Makefile: keep LIB_H entries together and sorted
      sha1_name: pass object name length to diagnose_invalid_sha1_path()
      submodule summary: support --summary-limit=<n>

Tadeusz Andrzej Kadłubowski (2):
      git-filter-branch.txt: clarify ident variables usage
      Documentation: filter-branch env-filter example

Thomas Rast (3):
      diff: prevent pprint_rename from underrunning input
      index-pack: guard nr_resolved_deltas reads by lock
      git-tag(1): we tag HEAD by default

Torsten Bögershausen (1):
      remote-helpers/test-bzr.sh: do not use "grep '\s'"

W. Trevor King (2):
      Documentation/githooks: Explain pre-rebase parameters
      user-manual: Standardize backtick quoting

William Entriken (1):
      submodule update: when using recursion, show full path


Version v1.8.2; changes since v1.8.2-rc3:
-----------------------------------------

Antoine Pelisse (1):
      perf: update documentation of GIT_PERF_REPEAT_COUNT

Eric Wong (1):
      git svn: consistent spacing after "W:" in warnings

Greg Price (1):
      add: Clarify documentation of -A and -u

Jan Pešta (1):
      git svn: ignore partial svn:mergeinfo

Junio C Hamano (2):
      Update draft release notes to 1.8.2
      Git 1.8.2

Kevin Bracey (2):
      Translate git_more_info_string consistently
      git.c: make usage match manual page

Matthieu Moy (2):
      add: update pathless 'add [-u|-A]' warning to reflect change of plan
      git-completion.bash: zsh does not implement function redirection correctly


Version v1.8.2-rc3; changes since v1.8.2-rc2:
---------------------------------------------

Fredrik Gustafsson (1):
      gitweb/README: remove reference to git.kernel.org

Jiang Xin (2):
      l10n: git.pot: v1.8.2 round 4 (1 changed)
      l10n: zh_CN.po: translate 1 new message

Junio C Hamano (1):
      Git 1.8.2-rc3

Matthieu Moy (1):
      git-completion.zsh: define __gitcomp_file compatibility function

Peter Krefting (1):
      l10n: Update Swedish translation (2009t0f0u)

Ralf Thielow (4):
      l10n: de.po: translate 35 new messages
      l10n: de.po: translate 5 new messages
      l10n: de.po: correct translation of "bisect" messages
      l10n: de.po: translate 1 new message

Trần Ngọc Quân (1):
      l10n: vi.po: Update translation (2009t0f0u)


Version v1.8.2-rc2; changes since v1.8.2-rc1:
---------------------------------------------

Andrew Wong (1):
      Documentation/githooks: Fix linkgit

Brad King (1):
      Documentation/submodule: Add --force to update synopsis

Erik Faye-Lund (1):
      Revert "compat: add strtok_r()"

Junio C Hamano (3):
      Update draft release notes to 1.8.1.5
      Git 1.8.1.5
      Git 1.8.2-rc2

Karsten Blees (2):
      wincred: accept CRLF on stdin to simplify console usage
      wincred: improve compatibility with windows versions

Michael Haggerty (1):
      Provide a mechanism to turn off symlink resolution in ceiling paths

Thomas Rast (1):
      Make !pattern in .gitattributes non-fatal


Version v1.8.2-rc1; changes since v1.8.2-rc0:
---------------------------------------------

Adam Spiers (1):
      t0008: document test_expect_success_multi

Greg Price (1):
      Documentation: "advice" is uncountable

Jeff King (1):
      Makefile: avoid infinite loop on configure.ac change

Jiang Xin (5):
      l10n: Update git.pot (35 new, 14 removed messages)
      l10n: zh_CN.po: translate 35 new messages
      l10n: git.pot: v1.8.2 round 3 (5 new)
      l10n: zh_CN.po: translate 5 new messages
      Bugfix: undefined htmldir in config.mak.autogen

Junio C Hamano (8):
      doc: mention tracking for pull.default
      user-manual: typofix (ofthe->of the)
      RelNotes 1.8.2: push-simple will not be in effect in this release
      imap-send: move #ifdef around
      name-hash: allow hashing an empty string
      Git 1.8.1.4
      Prepare for 1.8.1.5
      Git 1.8.2-rc1

Martin Erik Werner (1):
      shell-prompt: clean up nested if-then

Matthieu Moy (1):
      git.txt: update description of the configuration mechanism

Oswald Buddenhagen (2):
      imap-send: the subject of SSL certificate must match the host
      imap-send: support subjectAltName as well

Peter Krefting (2):
      l10n: Update Swedish translation (2004t0f0u)
      l10n: Update Swedish translation (2009t0f0u)

Trần Ngọc Quân (2):
      l10n: vi.po: update new strings (2004t0u0f)
      l10n: vi.po: Updated 5 new messages (2009t0f0u)

W. Trevor King (8):
      user-manual: use 'remote add' to setup push URLs
      user-manual: give 'git push -f' as an alternative to +master
      user-manual: mention 'git remote add' for remote branch config
      user-manual: use 'git config --global user.*' for setup
      user-manual: use -o latest.tar.gz to create a gzipped tarball
      user-manual: Reorganize the reroll sections, adding 'git rebase -i'
      user-manual: Use request-pull to generate "please pull" text
      user-manual: Flesh out uncommitted changes and submodule updates


Version v1.8.2-rc0; changes since v1.8.1.6:
-------------------------------------------

Aaron Schrab (3):
      hooks: Add function to check if a hook exists
      push: Add support for pre-push hooks
      Add sample pre-push hook script

Adam Spiers (29):
      tests: test number comes first in 'not ok $count - $message'
      tests: paint known breakages in yellow
      tests: paint skipped tests in blue
      tests: change info messages from yellow/brown to cyan
      tests: refactor mechanics of testing in a sub test-lib
      tests: test the test framework more thoroughly
      tests: paint unexpectedly fixed known breakages in bold red
      api-directory-listing.txt: update to match code
      Improve documentation and comments regarding directory traversal API
      dir.c: rename cryptic 'which' variable to more consistent name
      dir.c: rename path_excluded() to is_path_excluded()
      dir.c: rename excluded_from_list() to is_excluded_from_list()
      dir.c: rename excluded() to is_excluded()
      dir.c: refactor is_excluded_from_list()
      dir.c: refactor is_excluded()
      dir.c: refactor is_path_excluded()
      dir.c: rename free_excludes() to clear_exclude_list()
      dir.c: use a single struct exclude_list per source of excludes
      dir.c: keep track of where patterns came from
      dir.c: provide clear_directory() for reclaiming dir_struct memory
      dir.c: improve docs for match_pathspec() and match_pathspec_depth()
      add.c: remove unused argument from validate_pathspec()
      add.c: move pathspec matchers into new pathspec.c for reuse
      pathspec.c: rename newly public functions for clarity
      add.c: extract check_path_for_gitlink() from treat_gitlinks() for reuse
      add.c: extract new die_if_path_beyond_symlink() for reuse
      setup.c: document get_pathspec()
      add git-check-ignore sub-command
      clean.c, ls-files.c: respect encapsulation of exclude_list_groups

Adam Tkac (1):
      contrib/subtree: honor DESTDIR

Alexey Shumkin (1):
      t7102 (reset): don't hardcode SHA-1 in expected outputs

Andrew Wong (3):
      rebase: Handle cases where format-patch fails
      gitk: Refactor code for binding modified function keys
      gitk: Use bindshiftfunctionkey to bind Shift-F5

Antoine Pelisse (8):
      Use split_ident_line to parse author and committer
      mailmap: simplify map_user() interface
      mailmap: add mailmap structure to rev_info and pp
      pretty: use mailmap to display username and email
      log: add --use-mailmap option
      test: add test for --use-mailmap option
      log: grep author/committer using mailmap
      log: add log.mailmap configuration option

Barry Wardell (1):
      git-svn: Simplify calculation of GIT_DIR

Chris Hiestand (1):
      Add Auto-Submitted header to post-receive-email

Chris Rorvick (10):
      push: return reject reasons as a bitset
      push: add advice for rejected tag reference
      push: keep track of "update" state separately
      push: flag updates that require force
      push: require force for refs under refs/tags/
      push: require force for annotated tags
      push: clarify rejection of update to non-commit-ish
      push: cleanup push rules comment
      push: rename config variable for more general use
      push: allow already-exists advice to be disabled

Christian Couder (4):
      Makefile: remove tracking of TCLTK_PATH
      Makefile: detect when PYTHON_PATH changes
      Makefile: replace "echo 1>..." with "echo >..."
      gitk: Ignore gitk-wish buildproduct

Christoph J. Thompson (1):
      Honor configure's htmldir switch

David A. Greene (3):
      contrib/subtree: remove test number comments
      contrib/subtree: better error handling for 'subtree add'
      contrib/subtree: fix synopsis

David Aguilar (7):
      mergetools/vim: remove redundant diff command
      mergetool--lib: improve show_tool_help() output
      mergetools: simplify how we handle "vim" and "defaults"
      mergetool--lib: simplify command expressions
      mergetool--lib: improve the help text in guess_merge_tool()
      mergetool--lib: add functions for finding available tools
      doc: generate a list of valid merge tools

David Michael (3):
      Support builds when sys/param.h is missing
      Detect when the passwd struct is missing pw_gecos
      Generalize the inclusion of strings.h

Eric S. Raymond (1):
      Add checks to Python scripts for version dependencies.

Eric Wong (1):
      git-svn: cleanup sprintf usage for uppercasing hex

Felipe Contreras (26):
      remote-testgit: properly check for errors
      fast-export: avoid importing blob marks
      remote-testgit: fix direction of marks
      remote-helpers: fix failure message
      Add new remote-bzr transport helper
      remote-bzr: add support for pushing
      remote-bzr: add support for remote repositories
      Rename git-remote-testgit to git-remote-testpy
      Add new simplified git-remote-testgit
      remote-testgit: remove non-local functionality
      remote-testgit: remove irrelevant test
      remote-testgit: cleanup tests
      remote-testgit: exercise more features
      remote-testgit: report success after an import
      remote-testgit: implement the "done" feature manually
      fast-export: trivial cleanup
      fast-export: fix comparison in tests
      fast-export: don't handle uninteresting refs
      fast-export: make sure updated refs get updated
      remote-bzr: update working tree upon pushing
      remote-bzr: add simple tests
      remote-bzr: add support for fecthing special modes
      remote-bzr: add support to push special modes
      remote-bzr: add support for older versions of bzr
      remote-bzr: detect local repositories
      remote-hg: store converted URL

Jeff King (28):
      fsck: warn about '.' and '..' in trees
      fsck: warn about ".git" in trees
      mailmap: refactor mailmap parsing for non-file sources
      mailmap: support reading mailmap from blobs
      mailmap: clean up read_mailmap error handling
      mailmap: fix some documentation loose-ends for mailmap.blob
      mailmap: default mailmap.blob in bare repositories
      make error()'s constant return value more visible
      silence some -Wuninitialized false positives
      add global --literal-pathspecs option
      Makefile: hoist uname autodetection to config.mak.uname
      config: add helper function for parsing key names
      archive-tar: use parse_config_key when parsing config
      convert some config callbacks to parse_config_key
      userdiff: drop parse_driver function
      submodule: use parse_config_key when parsing config
      submodule: simplify memory handling in config parsing
      help: use parse_config_key for man config
      reflog: use parse_config_key in config callback
      commit: drop useless xstrdup of commit message
      logmsg_reencode: never return NULL
      logmsg_reencode: lazily load missing commit buffers
      fetch: run gc --auto after fetching
      fetch-pack: avoid repeatedly re-scanning pack directory
      docs: clarify git-branch --list behavior
      branch: let branch filters imply --list
      Documentation/Makefile: clean up MAN*_TXT lists
      log: re-encode commit messages before grepping

Jesper L. Nielsen (1):
      contrib/subtree: make the manual directory if needed

Jiang Xin (1):
      l10n: Update git.pot (11 new, 7 removed messages)

Johannes Sixt (1):
      t6130-pathspec-noglob: Windows does not allow a file named "f*"

John Keeping (24):
      git-svn: teach find-rev to find near matches
      git_remote_helpers: allow building with Python 3
      git_remote_helpers: fix input when running under Python 3
      git_remote_helpers: force rebuild if python version changes
      git_remote_helpers: use 2to3 if building with Python 3
      svn-fe: allow svnrdump_sim.py to run with Python 3
      git-remote-testpy: hash bytes explicitly
      git-remote-testpy: don't do unbuffered text I/O
      git-remote-testpy: call print as a function
      git-mergetool: move show_tool_help to mergetool--lib
      git-mergetool: remove redundant assignment
      git-mergetool: don't hardcode 'mergetool' in show_tool_help
      git-difftool: use git-mergetool--lib for "--tool-help"
      mergetool--lib: don't call "exit" in setup_tool
      git-remote-testpy: fix path hashing on Python 3
      CodingGuidelines: add Python coding guidelines
      mergetool--lib: list user configured tools in '--tool-help'
      graph: output padding for merge subsequent parents
      diff: write prefix to the correct file
      diff.c: make constant string arguments const
      diff: add diff_line_prefix function
      diff.c: use diff_line_prefix() where applicable
      combine-diff.c: teach combined diffs about line prefix
      rebase -i: respect core.commentchar

Jonathan Nieder (2):
      Git::SVN::Editor::T: pass $deletions to ->A and ->D
      git svn: do not overescape URLs (fallback case)

Junio C Hamano (52):
      diff: accept --no-follow option
      blame: pay attention to --no-follow
      t6006: clean up whitespace
      log --format: teach %C(auto,black) to respect color config
      git-compat-util.h: do not #include <sys/param.h> by default
      builtin/log.c: drop unused "numbered" parameter from make_cover_letter()
      builtin/log.c: drop redundant "numbered_files" parameter from make_cover_letter()
      builtin/log.c: stop using global patch_suffix
      get_patch_filename(): simplify function signature
      get_patch_filename(): drop "just-numbers" hack
      get_patch_filename(): split into two functions
      format-patch: add --reroll-count=$N option
      Start 1.8.2 cycle
      format-patch: document and test --reroll-count
      Update draft release notes to 1.8.2
      format-patch: give --reroll-count a short synonym -v
      Update draft release notes to 1.8.2
      string-list: allow case-insensitive string list
      Update draft release notes to 1.8.2
      mailmap: remove email copy and length limitation
      log --use-mailmap: optimize for cases without --author/--committer search
      Update draft release notes to 1.8.2
      clone: do not export and unexport GIT_CONFIG
      Update draft release notes to 1.8.2
      Makefile: add description on PERL/PYTHON_PATH
      Update draft release notes to 1.8.2
      Allow custom "comment char"
      push: fix "refs/tags/ hierarchy cannot be updated without --force"
      Update draft release notes to 1.8.2
      upload-pack: share more code
      Update draft release notes to 1.8.2
      Update draft release notes to 1.8.2
      push: further clean up fields of "struct ref"
      push: further simplify the logic to assign rejection reason
      push: introduce REJECT_FETCH_FIRST and REJECT_NEEDS_FORCE
      push: finishing touches to explain REJECT_ALREADY_EXISTS better
      Update draft release notes to 1.8.2
      Update draft release notes to 1.8.2
      upload-pack: simplify request validation
      git_remote_helpers: remove GIT-PYTHON-VERSION upon "clean"
      Update draft release notes to 1.8.2
      Documentation: describe the "repository" in repository-layout
      Update draft release notes to 1.8.2
      apply: verify submodule commit object name better
      Update draft release notes to 1.8.2
      upload/receive-pack: allow hiding ref hierarchies
      Update draft release notes to 1.8.2
      Update draft release notes to 1.8.2
      Update draft release notes to 1.8.2
      Documentation/git-add: kill remaining <filepattern>
      Update draft release notes to 1.8.2
      Git 1.8.2-rc0

Manlio Perillo (1):
      git-completion.bash: add support for path completion

Marc Khouzam (1):
      completion: handle path completion and colon for tcsh script

Marcus Karlsson (1):
      gitk: Fix crash when not using themed widgets

Martin Erik Werner (3):
      shell prompt: add bash.showUntrackedFiles option
      t9903: add tests for bash.showUntrackedFiles
      t9903: add extra tests for bash.showDirtyState

Martin von Zweigbergk (21):
      oneway_merge(): only lstat() when told to update worktree
      reset $pathspec: no need to discard index
      reset $pathspec: exit with code 0 if successful
      reset.c: pass pathspec around instead of (prefix, argv) pair
      reset: don't allow "git reset -- $pathspec" in bare repo
      reset.c: extract function for parsing arguments
      reset.c: remove unnecessary variable 'i'
      reset.c: extract function for updating {ORIG_,}HEAD
      reset.c: share call to die_if_unmerged_cache()
      reset --keep: only write index file once
      reset: avoid redundant error message
      reset.c: replace switch by if-else
      reset.c: move update_index_refresh() call out of read_from_tree()
      reset.c: move lock, write and commit out of update_index_refresh()
      reset [--mixed]: only write index file once
      reset.c: finish entire cmd_reset() whether or not pathspec is given
      reset.c: inline update_index_refresh()
      reset $sha1 $pathspec: require $sha1 only to be treeish
      reset: allow reset on unborn branch
      reset [--mixed]: use diff-based reset whether or not pathspec was given
      reset: update documentation to require only tree-ish with paths

Matt Kraai (5):
      Make lock local to fetch_pack
      Port to QNX
      Use __VA_ARGS__ for all of error's arguments
      Allow building with xmlparse.h
      Makefile: don't run "rm" without any files

Matthew Ogilvie (10):
      cvsserver: factor out git-log parsing logic
      cvsserver: cleanup extra slashes in filename arguments
      cvsserver: define a tag name character escape mechanism
      cvsserver: add misc commit lookup, file meta data, and file listing functions
      cvsserver: implement req_Sticky and related utilities
      cvsserver: generalize getmeta() to recognize commit refs
      cvsserver: Add version awareness to argsfromdir
      cvsserver: support -r and sticky tags for most operations
      cvsserver: add t9402 to test branch and tag refs
      cvsserver Documentation: new cvs ... -r support

Matthieu Moy (4):
      add: warn when -u or -A is used without pathspec
      Makefile: make script-related rules usable from subdirectories
      git-remote-mediawiki: use toplevel's Makefile
      completion: support 'git config --local'

Max Horn (2):
      remote-hg: fix handling of file perms when pushing
      fix clang -Wunused-value warnings for error functions

Michael Haggerty (22):
      Add new function strbuf_add_xml_quoted()
      xml_entities(): use function strbuf_addstr_xml_quoted()
      lf_to_crlf(): NUL-terminate msg_data::data
      imap-send: store all_msgs as a strbuf
      imap-send: correctly report errors reading from stdin
      imap-send: change msg_data from storing (ptr, len) to storing strbuf
      wrap_in_html(): use strbuf_addstr_xml_quoted()
      wrap_in_html(): process message in bulk rather than line-by-line
      imap-send.c: remove msg_data::flags, which was always zero
      imap-send.c: remove struct msg_data
      iamp-send.c: remove unused struct imap_store_conf
      imap-send.c: remove struct store_conf
      imap-send.c: remove struct message
      imap-send.c: remove some unused fields from struct store
      imap-send.c: inline parse_imap_list() in parse_list()
      imap-send.c: remove struct imap argument to parse_imap_list_l()
      imap-send.c: remove namespace fields from struct imap
      imap-send.c: remove unused field imap_store::trashnc
      imap-send.c: use struct imap_store instead of struct store
      imap-send.c: remove unused field imap_store::uidvalidity
      imap-send.c: fold struct store into struct imap_store
      imap-send.c: simplify logic in lf_to_crlf()

Michal Privoznik (3):
      git-completion.bash: Autocomplete --minimal and --histogram for git-diff
      config: Introduce diff.algorithm variable
      diff: Introduce --diff-algorithm command line option

Nguyễn Thái Ngọc Duy (43):
      ctype: make sane_ctype[] const array
      ctype: support iscntrl, ispunct, isxdigit and isprint
      Import wildmatch from rsync
      wildmatch: remove unnecessary functions
      wildmatch: follow Git's coding convention
      Integrate wildmatch to git
      t3070: disable unreliable fnmatch tests
      wildmatch: make wildmatch's return value compatible with fnmatch
      wildmatch: remove static variable force_lower_case
      wildmatch: fix case-insensitive matching
      wildmatch: adjust "**" behavior
      wildmatch: make /**/ match zero or more directories
      Support "**" wildcard in .gitignore and .gitattributes
      pathspec: save the non-wildcard length part
      test-wildmatch: avoid Windows path mangling
      pathspec: do exact comparison on the leading non-wildcard part
      pathspec: apply "*.c" optimization from exclude
      tree_entry_interesting: do basedir compare on wildcard patterns when possible
      config.txt: a few lines about branch.<name>.description
      wildmatch: fix "**" special case
      wildmatch: rename constants and update prototype
      compat/fnmatch: respect NO_FNMATCH* even on glibc
      wildmatch: make dowild() take arbitrary flags
      wildmatch: replace variable 'special' with better named ones
      wildmatch: support "no FNM_PATHNAME" mode
      test-wildmatch: add "perf" command to compare wildmatch and fnmatch
      wildmatch: make a special case for "*/" with FNM_PATHNAME
      wildmatch: advance faster in <asterisk> + <literal> patterns
      Makefile: add USE_WILDMATCH to use wildmatch as fnmatch
      branch: delete branch description if it's empty
      t4014: a few more tests on cover letter using branch description
      format-patch: pick up correct branch name from symbolic ref
      format-patch: pick up branch description when no ref is specified
      upload-pack: only accept commits from "shallow" line
      fetch: add --unshallow for turning shallow repo into complete one
      upload-pack: fix off-by-one depth calculation in shallow clone
      fetch: elaborate --depth action
      Update :/abc ambiguity check
      grep: avoid accepting ambiguous revision
      branch: reject -D/-d without branch name
      branch: give a more helpful message on redundant arguments
      branch: mark more strings for translation
      status: show the branch name if possible in in-progress info

Paul Mackerras (3):
      gitk: Fix display of branch names on some commits
      gitk: Improve display of list of nearby tags and heads
      gitk: Display important heads even when there are many

Pete Wyckoff (35):
      git p4: test sync/clone --branch behavior
      git p4: rearrange and simplify hasOrigin handling
      git p4: add comments to p4BranchesInGit
      git p4: inline listExistingP4GitBranches
      git p4: create p4/HEAD on initial clone
      git p4: verify expected refs in clone --bare test
      git p4: clone --branch should checkout master
      git p4 doc: fix branch detection example
      git p4: allow short ref names to --branch
      git p4: rearrange self.initialParent use
      git p4: fail gracefully on sync with no master branch
      git p4: fix sync --branch when no master branch
      git p4 test: keep P4CLIENT changes inside subshells
      git p4: fix submit when no master branch
      git p4: temp branch name should use / even on windows
      git p4: remove unused imports
      git p4: generate better error message for bad depot path
      git p4 test: use client_view to build the initial client
      git p4 test: avoid loop in client_view
      git p4 test: use client_view in t9806
      git p4 test: start p4d inside its db dir
      git p4 test: translate windows paths for cygwin
      git p4: remove unreachable windows \r\n conversion code
      git p4: scrub crlf for utf16 files on windows
      git p4 test: newline handling
      git p4 test: use LineEnd unix in windows tests too
      git p4 test: avoid wildcard * in windows
      git p4: cygwin p4 client does not mark read-only
      git p4 test: use test_chmod for cygwin
      git p4: disable read-only attribute before deleting
      git p4: avoid shell when mapping users
      git p4: avoid shell when invoking git rev-list
      git p4: avoid shell when invoking git config --get-all
      git p4: avoid shell when calling git config
      git p4: introduce gitConfigBool

Peter Krefting (2):
      gitk: Update Swedish translation (296t)
      l10n: Update Swedish translation (1983t0f0u)

Peter Wu (1):
      git-svn: do not escape certain characters in paths

Ralf Thielow (6):
      l10n: de.po: address the user formally
      commit: make default of "cleanup" option configurable
      l10n: de.po: fix some minor issues
      l10n: de.po: translate 11 new messages
      l10n: de.po: translate "revision" consistently as "Revision"
      l10n: de.po: translate "reset" as "neu setzen"

Ramsay Jones (1):
      t3070: Disable some failing fnmatch tests

René Scharfe (3):
      t0008: avoid brace expansion
      pretty: use prefixcmp instead of memcmp on NUL-terminated strings
      refs: use strncmp() instead of strlen() and memcmp()

Robin Rosenberg (1):
      Enable minimal stat checking

Stefan Haller (6):
      gitk: Synchronize highlighting in file view when scrolling diff
      gitk: Highlight current search hit in orange
      gitk: Highlight first search result immediately on incremental search
      gitk: Work around empty back and forward images when buttons are disabled
      gitk: Fix error message when clicking on a connecting line
      gitk: When searching, only highlight files when in Patch mode

Stephen Boyd (2):
      gpg: allow translation of more error messages
      run-command: be more informative about what failed

Sven Strickroth (2):
      mergetools: support TortoiseGitMerge
      mergetools: teach tortoisemerge to handle filenames with SP correctly

Techlive Zheng (1):
      contrib/subtree: use %B for split subject/body

Ted Zlatanov (1):
      Update CodingGuidelines for Perl

Thomas Ackermann (5):
      Documentation: avoid poor-man's small caps GIT
      Documentation: the name of the system is 'Git', not 'git'
      Documentation: do not use undefined terms git-dir and git-file
      Documentation: add a description for 'gitfile' to glossary
      Documentation: StGit is the right spelling, not StGIT

Torsten Bögershausen (9):
      t9402: sed -i is not portable
      t9402: improve check_end_tree() and check_end_full_tree()
      t9402: Dont use test_must_fail cvs
      t9402: No space after IO-redirection
      t9402: Add missing &&; Code style
      t9402: Simplify git ls-tree
      t9402: Rename check.cvsCount and check.list
      t9402: Use TABs for indentation
      test: Add check-non-portable-shell.pl

Trần Ngọc Quân (1):
      l10n: vi.po: updated Vietnamese translation

W. Trevor King (3):
      submodule: add get_submodule_config helper funtion
      submodule update: add --remote for submodule's upstream changes
      submodule add: If --branch is given, record it in .gitmodules

Wang Sheng (1):
      l10n: zh_CN.po: 800+ new translations on command usages


Version v1.8.1.6; changes since v1.8.1.5:
-----------------------------------------

Antoine Pelisse (4):
      update-index: allow "-h" to also display options
      diff: Fix rename pretty-print when suffix and prefix overlap
      tests: make sure rename pretty print works
      perf: update documentation of GIT_PERF_REPEAT_COUNT

Christian Helmuth (1):
      git-commit doc: describe use of multiple `-m` options

Dan Bornstein (1):
      Correct the docs about GIT_SSH.

David Michael (1):
      git-compat-util.h: Provide missing netdb.h definitions

Fredrik Gustafsson (1):
      gitweb/README: remove reference to git.kernel.org

Greg Price (1):
      describe: Document --match pattern format

Jeff King (6):
      avoid segfaults on parse_object failure
      use parse_object_or_die instead of die("bad object")
      pack-refs: write peeled entry for non-tags
      dir.c::match_pathname(): adjust patternlen when shifting pattern
      dir.c::match_pathname(): pay attention to the length of string parameters
      t: check that a pattern without trailing slash matches a directory

Johannes Sixt (1):
      t2003: work around path mangling issue on Windows

John Keeping (3):
      t2003: modernize style
      entry: fix filter lookup
      merge-tree: fix typo in merge-tree.c::unresolved

Joshua Clayton (1):
      Git.pm: fix cat_blob crashes on large files

Junio C Hamano (8):
      imap-send: support Server Name Indication (RFC4366)
      diff-options: unconfuse description of --color
      Documentation: merging a tag is a special case
      attr.c::path_matches(): the basename is part of the pathname
      attr.c::path_matches(): special case paths that end with a slash
      dir.c::match_basename(): pay attention to the length of string parameters
      Start preparing for 1.8.1.6
      Git 1.8.1.6

Kacper Kornet (3):
      rev-parse: clarify documentation of $name@{upstream} syntax
      t1507: Test that branchname@{upstream} is interpreted as branch
      Fix revision walk for commits with the same dates

Karsten Blees (1):
      name-hash.c: fix endless loop with core.ignorecase=true

Kevin Bracey (2):
      Translate git_more_info_string consistently
      git.c: make usage match manual page

Lukas Fleischer (2):
      bundle: Fix "verify" output if history is complete
      bundle: Add colons to list headings in "verify"

Matthias Krüger (1):
      git help config: s/insn/instruction/

Michael Haggerty (2):
      Provide a mechanism to turn off symlink resolution in ceiling paths
      pack-refs: add fully-peeled trait

Mihai Capotă (1):
      git-pull doc: fix grammo ("conflicts" is plural)

Nguyễn Thái Ngọc Duy (4):
      index-format.txt: mention of v4 is missing in some places
      read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
      update-index: list supported idx versions and their features
      index-pack: fix buffer overflow caused by translations

René Scharfe (2):
      Makefile: keep LIB_H entries together and sorted
      sha1_name: pass object name length to diagnose_invalid_sha1_path()

Tadeusz Andrzej Kadłubowski (2):
      git-filter-branch.txt: clarify ident variables usage
      Documentation: filter-branch env-filter example

Thomas Rast (2):
      diff: prevent pprint_rename from underrunning input
      git-tag(1): we tag HEAD by default

Torsten Bögershausen (1):
      remote-helpers/test-bzr.sh: do not use "grep '\s'"

W. Trevor King (1):
      Documentation/githooks: Explain pre-rebase parameters


Version v1.8.1.5; changes since v1.8.1.4:
-----------------------------------------

Andrej E Baranov (1):
      gitweb: refer to picon/gravatar images over the same scheme

Andrew Wong (1):
      Documentation/githooks: Fix linkgit

Asheesh Laroia (1):
      git-mergetool: print filename when it contains %

Ben Walton (3):
      Move Git::SVN::get_tz to Git::get_tz_offset
      perl/Git.pm: fix get_tz_offset to properly handle DST boundary cases
      cvsimport: format commit timestamp ourselves without using strftime

Brad King (1):
      Documentation/submodule: Add --force to update synopsis

David Aguilar (3):
      mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder
      difftool--helper: fix printf usage
      p4merge: fix printf usage

Erik Faye-Lund (1):
      parse-options: report uncorrupted multi-byte options

Greg Price (1):
      Documentation: "advice" is uncountable

Jeff King (2):
      http_request: reset "type" strbuf before adding
      Makefile: avoid infinite loop on configure.ac change

Jiang Xin (1):
      Add utf8_fprintf helper that returns correct number of columns

John Keeping (3):
      Rename {git- => git}remote-helpers.txt
      builtin/apply: tighten (dis)similarity index parsing
      t4038: add tests for "diff --cc --raw <trees>"

Junio C Hamano (7):
      doc: mention tracking for pull.default
      combine-diff: lift 32-way limit of combined diff
      t5551: fix expected error output
      user-manual: typofix (ofthe->of the)
      Prepare for 1.8.1.5
      Update draft release notes to 1.8.1.5
      Git 1.8.1.5

Matthieu Moy (1):
      git.txt: update description of the configuration mechanism

Michael J Gruber (1):
      git-bisect.txt: clarify that reset quits bisect

Nguyễn Thái Ngọc Duy (1):
      clone: forbid --bare --separate-git-dir <dir>

Shawn O. Pearce (1):
      Verify Content-Type from smart HTTP servers

Thomas Rast (1):
      Make !pattern in .gitattributes non-fatal

W. Trevor King (4):
      user-manual: Update for receive.denyCurrentBranch=refuse
      user-manual: Reorganize the reroll sections, adding 'git rebase -i'
      user-manual: Use request-pull to generate "please pull" text
      user-manual: Flesh out uncommitted changes and submodule updates

Zoltan Klinger (1):
      git-clean: Display more accurate delete messages


Version v1.8.1.4; changes since v1.8.1.3:
-----------------------------------------

Junio C Hamano (2):
      imap-send: move #ifdef around
      Git 1.8.1.4

Matthieu Moy (1):
      Replace filepattern with pathspec for consistency

Oswald Buddenhagen (2):
      imap-send: the subject of SSL certificate must match the host
      imap-send: support subjectAltName as well

W. Trevor King (9):
      user-manual: Fix 'both: so' -> 'both; so' typo
      user-manual: Fix 'http' -> 'HTTP' typos
      user-manual: Fix 'you - Git' -> 'you--Git' typo
      user-manual: Rewrite git-gc section for automatic packing
      user-manual: use 'remote add' to setup push URLs
      user-manual: give 'git push -f' as an alternative to +master
      user-manual: mention 'git remote add' for remote branch config
      user-manual: use 'git config --global user.*' for setup
      user-manual: use -o latest.tar.gz to create a gzipped tarball


Version v1.8.1.3; changes since v1.8.1.2:
-----------------------------------------

Brandon Casey (3):
      git-completion.bash: replace zsh notation that breaks bash 3.X
      git-p4.py: support Python 2.5
      git-p4.py: support Python 2.4

Dmitry V. Levin (1):
      am: invoke perl's strftime in C locale

Fraser Tweedale (1):
      push: fix segfault when HEAD points nowhere

John Keeping (1):
      git-cvsimport.txt: cvsps-2 is deprecated

Jonathan Nieder (2):
      ident: do not drop username when reading from /etc/mailname
      Makefile: explicitly set target name for autogenerated dependencies

Junio C Hamano (17):
      Which merge_file() function do you mean?
      merge-tree: lose unused "flags" from merge_list
      merge-tree: lose unused "resolve_directories"
      merge-tree: add comments to clarify what these functions are doing
      merge-tree: fix d/f conflicts
      Documentation: update "howto maintain git"
      howto/maintain: mark titles for asciidoc
      help: include <common-cmds.h> only in one file
      t9902: protect test from stray build artifacts
      howto/maintain: document "### match next" convention in jch/pu branch
      README: update stale and/or incorrect information
      INSTALL: git-p4 does not support Python 3
      git-am: record full index line in the patch used while rebasing
      apply: simplify build_fake_ancestor()
      apply: diagnose incomplete submodule object name better
      Start preparing for 1.8.1.3
      Git 1.8.1.3

Martin von Zweigbergk (2):
      tests: move test_cmp_rev to test-lib-functions
      learn to pick/revert into unborn branch

Nguyễn Thái Ngọc Duy (4):
      attr: fix off-by-one directory component length calculation
      test-lib.sh: unfilter GIT_PERF_*
      attr: avoid calling find_basename() twice per path
      branch: no detached HEAD check when editing another branch's description

Phil Hord (1):
      rebase --preserve-merges: keep all merge commits including empty ones

Ramsay Jones (1):
      Makefile: Replace merge-file.h with merge-blobs.h in LIB_H

Stephen Boyd (1):
      gpg: close stderr once finished with it in verify_signed_buffer()

Torsten Bögershausen (3):
      t0050: known breakage vanished in merge (case change)
      t0050: honor CASE_INSENSITIVE_FS in add (with different case)
      t0050: Use TAB for indentation


Version v1.8.1.2; changes since v1.8.1.1:
-----------------------------------------

Antoine Pelisse (3):
      dir.c: Make git-status --ignored more consistent
      git-status: Test --ignored behavior
      status: always report ignored tracked directories

Dylan Smith (1):
      git-completion.bash: silence "not a valid object" errors

Eric S. Raymond (1):
      Remove the suggestion to use parsecvs, which is currently broken.

John Keeping (1):
      git-for-each-ref.txt: 'raw' is a supported date format

Jonathan Nieder (1):
      contrib/vim: simplify instructions for old vim support

Junio C Hamano (2):
      Start preparing for 1.8.1.2
      Git 1.8.1.2

Marc Khouzam (1):
      Prevent space after directories in tcsh completion

Michael Haggerty (8):
      Introduce new static function real_path_internal()
      real_path_internal(): add comment explaining use of cwd
      Introduce new function real_path_if_valid()
      longest_ancestor_length(): use string_list_split()
      longest_ancestor_length(): take a string_list argument for prefixes
      longest_ancestor_length(): require prefix list entries to be normalized
      setup_git_directory_gently_1(): resolve symlinks in ceiling paths
      string_list_longest_prefix(): remove function

Nguyễn Thái Ngọc Duy (1):
      attr: make it build with DEBUG_ATTR again

Nickolai Zeldovich (1):
      git-send-email: treat field names as case-insensitively

Peter Eisentraut (1):
      git-commit-tree(1): correct description of defaults

René Scharfe (5):
      archive-zip: write uncompressed size into header even with streaming
      t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead
      t0024, t5000: use test_lazy_prereq for UNZIP
      t5000, t5003: move ZIP tests into their own script
      t5003: check if unzip supports symlinks

Sebastian Staudt (1):
      config.txt: Document help.htmlpath config parameter


Version v1.8.1.1; changes since v1.8.1:
---------------------------------------

Aaron Schrab (1):
      Use longer alias names in subdirectory tests

Adam Spiers (1):
      api-allocation-growing.txt: encourage better variable naming

Antoine Pelisse (1):
      merge: Honor prepare-commit-msg return code

Christian Couder (1):
      Makefile: detect when PYTHON_PATH changes

Jean-Noël AVILA (1):
      Add directory pattern matching to attributes

Jeff King (9):
      run-command: drop silent_exec_failure arg from wait_or_whine
      launch_editor: refactor to use start/finish_command
      run-command: do not warn about child death from terminal
      launch_editor: propagate signals from editor to git
      completion: complete refs for "git commit -c"
      refs: do not use cached refs in repack_without_ref
      tests: turn on test-lint by default
      fix compilation with NO_PTHREADS
      run-command: encode signal death as a positive integer

Jens Lehmann (1):
      clone: support atomic operation with --separate-git-dir

John Keeping (4):
      git-fast-import(1): remove duplicate '--done' option
      git-shortlog(1): document behaviour of zero-width wrap
      git-fast-import(1): combine documentation of --[no-]relative-marks
      git-fast-import(1): reorganise options

Jonathan Nieder (6):
      config, gitignore: failure to access with ENOTDIR is ok
      config: treat user and xdg config permission problems as errors
      doc: advertise GIT_CONFIG_NOSYSTEM
      config: exit on error accessing any config file
      build: do not automatically reconfigure unless configure.ac changed
      docs: manpage XML depends on asciidoc.conf

Junio C Hamano (20):
      apply.c:update_pre_post_images(): the preimage can be truncated
      format_commit_message(): simplify calls to logmsg_reencode()
      sh-setup: work around "unset IFS" bug in some shells
      fetch: ignore wildcarded refspecs that update local symbolic refs
      xmkstemp(): avoid showing truncated template more carefully
      t0200: "locale" may not exist
      t9502: do not assume GNU tar
      t4014: fix arguments to grep
      t3600: Avoid "cp -a", which is a GNUism
      t9020: use configured Python to run the test helper
      compat/fnmatch: update old-style definition to ANSI
      t9200: let "cvs init" create the test repository
      merge --no-edit: do not credit people involved in the side branch
      SubmittingPatches: who am I and who cares?
      SubmittingPatches: mention subsystems with dedicated repositories
      Documentation: full-ness of a bundle is significant for cloning
      SubmittingPatches: remove overlong checklist
      SubmittingPatches: give list and maintainer addresses
      Prepare for 1.8.1.1
      Git 1.8.1.1

Kirill Brilliantov (1):
      Documentation: correct example restore from bundle

Mark Levedahl (1):
      Makefile: add comment on CYGWIN_V15_WIN32API

Matthew Daley (1):
      gitweb: Sort projects with undefined ages last

Max Horn (1):
      configure.ac: fix pthreads detection on Mac OS X

Michael Schubert (2):
      git-subtree: ignore git-subtree executable
      git-subtree: fix typo in manpage

Michał Kiedrowicz (1):
      graph.c: infinite loop in git whatchanged --graph -m

Nguyễn Thái Ngọc Duy (4):
      cache-tree: remove dead i-t-a code in verify_cache()
      cache-tree: replace "for" loops in update_one with "while" loops
      cache-tree: fix writing cache-tree when CE_REMOVE is present
      cache-tree: invalidate i-t-a paths after generating trees

Orgad Shaneh (1):
      gitweb: fix error in sanitize when highlight is enabled

Paul Fox (1):
      launch_editor: ignore terminal signals while editor has control

Rene Bredlau (1):
      http.c: Avoid username prompt for certifcate credentials

René Scharfe (2):
      archive-tar: split long paths more carefully
      t1402: work around shell quoting issue on NetBSD

Sebastian Schuberth (1):
      nedmalloc: Fix a compile warning (exposed as error) with GCC 4.7.2

Steffen Prohaska (2):
      shortlog: fix wrapping lines of wraplen
      strbuf_add_wrapped*(): Remove unused return value

Sven Strickroth (3):
      git-svn, perl/Git.pm: add central method for prompting passwords
      perl/Git.pm: Honor SSH_ASKPASS as fallback if GIT_ASKPASS is not set
      git-svn, perl/Git.pm: extend and use Git->prompt method for querying users

Thomas Ackermann (1):
      Remove Documentation/pt_BR/gittutorial.txt

Torsten Bögershausen (2):
      t9810: Do not use sed -i
      t9020: which is not portable

W. Trevor King (1):
      remote-hg: Fix biridectionality -> bidirectionality typos


Version v1.8.1; changes since v1.8.1-rc3:
-----------------------------------------

Junio C Hamano (3):
      git(1): show link to contributor summary page
      Git 1.8.0.3
      Git 1.8.1

Max Horn (1):
      git-remote-helpers.txt: document invocation before input format

Ramkumar Ramachandra (1):
      Documentation: move diff.wordRegex from config.txt to diff-config.txt

Sebastian Leske (4):
      git-svn: Document branches with at-sign(@).
      git-svn: Recommend use of structure options.
      git-svn: Expand documentation for --follow-parent
      git-svn: Note about tags.

Simon Oosthoek (1):
      make __git_ps1 accept a third parameter in pcmode

Thomas Ackermann (1):
      Sort howto documents in howto-index.txt


Version v1.8.1-rc3; changes since v1.8.1-rc2:
---------------------------------------------

Adam Spiers (2):
      SubmittingPatches: add convention of prefixing commit messages
      Documentation: move support for old compilers to CodingGuidelines

Chris Rorvick (2):
      Documentation/git-checkout.txt: clarify usage
      Documentation/git-checkout.txt: document 70c9ac2 behavior

Jeff King (5):
      .mailmap: match up some obvious names/emails
      .mailmap: fix broken entry for Martin Langhoff
      .mailmap: normalize emails for Jeff King
      .mailmap: normalize emails for Linus Torvalds
      contrib: update stats/mailmap script

John Keeping (1):
      Documentation: don't link to example mail addresses

Junio C Hamano (5):
      fetch --tags: clarify documentation
      README: it does not matter who the current maintainer is
      t7004: do not create unneeded gpghome/gpg.conf when GPG is not used
      Documentation: Describe "git diff <blob> <blob>" separately
      Git 1.8.1-rc3

Nguyễn Thái Ngọc Duy (1):
      index-format.txt: clarify what is "invalid"

Sebastian Leske (4):
      git-svn: Document branches with at-sign(@).
      git-svn: Recommend use of structure options.
      git-svn: Expand documentation for --follow-parent
      git-svn: Note about tags.

Sitaram Chamarty (1):
      clarify -M without % symbol in diff-options

Stefano Lattarini (1):
      README: Git is released under the GPLv2, not just "the GPL"

Thomas Ackermann (3):
      Remove misleading date from api-index-skel.txt
      Remove duplicate entry in ./Documentation/Makefile
      Move ./technical/api-command.txt to ./howto/new-command.txt


Version v1.8.1-rc2; changes since v1.8.1-rc1:
---------------------------------------------

Anders Kaseorg (1):
      git-prompt: Document GIT_PS1_DESCRIBE_STYLE

Erik Faye-Lund (7):
      mingw: correct exit-code for SIGALRM's SIG_DFL
      mingw: make fgetc raise SIGINT if apropriate
      compat/terminal: factor out echo-disabling
      compat/terminal: separate input and output handles
      mingw: reuse tty-version of git_terminal_prompt
      mingw: get rid of getpass implementation
      mingw_rmdir: do not prompt for retry when non-empty

Jeff King (1):
      remote-testsvn: fix unitialized variable

Junio C Hamano (5):
      git(1): remove a defunct link to "list of authors"
      Git 1.8.0.2
      git-prompt.sh: update PROMPT_COMMAND documentation
      git(1): show link to contributor summary page
      Git 1.8.1-rc2

Manlio Perillo (1):
      git.txt: add missing info about --git-dir command-line option

Marc Khouzam (1):
      Add file completion to tcsh git completion.

Matthew Daley (1):
      Fix sizeof usage in get_permutations

Max Horn (6):
      git-remote-helpers.txt: document invocation before input format
      git-remote-helpers.txt: document missing capabilities
      git-remote-helpers.txt: minor grammar fix
      git-remote-helpers.txt: rearrange description of capabilities
      git-remote-helpers.txt: clarify command <-> capability correspondences
      git-remote-helpers.txt: clarify options & ref list attributes

Stefano Lattarini (1):
      Makefile: whitespace style fixes in macro definitions

Sébastien Loriot (1):
      Documentation/git-stash.txt: add a missing verb

Thomas Ackermann (1):
      Renumber list in api-command.txt


Version v1.8.1-rc1; changes since v1.8.1-rc0:
---------------------------------------------

Jiang Xin (1):
      l10n: Update git.pot (5 new, 1 removed messages)

Junio C Hamano (3):
      Update draft release notes to 1.8.0.2
      Documentation/diff-config: work around AsciiDoc misfortune
      Git 1.8.1-rc1

Matthieu Moy (1):
      document that statusHints affects git checkout

Peter Krefting (1):
      l10n: Update Swedish translation (1979t0f0u)

Ralf Thielow (2):
      l10n: de.po: translate 825 new messages
      l10n: de.po: translate 22 new messages

Ramkumar Ramachandra (4):
      t4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs
      t4041 (diff-submodule-option): parse digests sensibly
      t4041 (diff-submodule-option): rewrite add_file() routine
      t4041 (diff-submodule-option): modernize style

Trần Ngọc Quân (1):
      l10n: vi.po: update to git-v1.8.0.1-347-gf94c3


Version v1.8.1-rc0; changes since v1.8.0.3:
-------------------------------------------

Ben Walton (1):
      Use character class for sed expression instead of \s

Brandon Casey (1):
      usage.c: detect recursion in die routines and bail out immediately

Chris Rorvick (1):
      git-cvsimport: allow author-specific timezones

Dmitry Ivankov (1):
      vcs-svn: add fast_export_note to create notes

Enrico Scholz (1):
      emacs: make 'git-status' work with separate git dirs

Eric S. Raymond (1):
      Documentation: how to add a new command

Felipe Contreras (32):
      completion: add format-patch options to send-email
      Add new remote-hg transport helper
      remote-hg: add support for pushing
      remote-hg: add support for remote pushing
      remote-hg: add support to push URLs
      remote-hg: make sure the encoding is correct
      remote-hg: match hg merge behavior
      remote-hg: add support for hg-git compat mode
      remote-hg: add compat for hg-git author fixes
      remote-hg: fake bookmark when there's none
      remote-hg: add basic tests
      test-lib: avoid full path to store test results
      remote-hg: add bidirectional tests
      remote-hg: add tests to compare with hg-git
      remote-hg: add extra author test
      remote-hg: add option to not track branches
      remote-hg: the author email can be null
      remote-hg: fix compatibility with older versions of hg
      remote-hg: try the 'tip' if no checkout present
      remote-hg: avoid bad refs
      completion: add comment for test_completion()
      completion: standardize final space marker in tests
      completion: simplify tests using test_completion_long()
      completion: consolidate test_completion*() tests
      completion: refactor __gitcomp related tests
      completion: simplify __gitcomp() test helper
      completion: add new zsh completion
      completion: start moving to the new zsh completion
      send-email: avoid questions when user has an ident
      remote-hg: fix for files with spaces
      remote-hg: fix for older versions of python
      completion: fix warning for zsh

Florian Achleitner (15):
      Implement a remote helper for svn in C
      Add git-remote-testsvn to Makefile
      Add svndump_init_fd to allow reading dumps from arbitrary FDs
      Add argv_array_detach and argv_array_free_detached
      Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability
      Add documentation for the 'bidi-import' capability of remote-helpers
      When debug==1, start fast-import with "--stats" instead of "--quiet"
      remote-svn, vcs-svn: Enable fetching to private refs
      Allow reading svn dumps from files via file:// urls
      Create a note for every imported commit containing svn metadata
      remote-svn: Activate import/export-marks for fast-import
      remote-svn: add incremental import
      Add a svnrdump-simulator replaying a dump file for testing
      remote-svn: add marks-file regeneration
      Add a test script for remote-svn

Jeff King (30):
      pager: drop "wait for output to run less" hack
      peel_ref: use faster deref_tag_noverify
      peel_ref: do not return a null sha1
      peel_ref: check object type before loading
      upload-pack: use peel_ref for ref advertisements
      remote-curl: do not call run_slot repeatedly
      http: do not set up curl auth after a 401
      strbuf: always return a non-NULL value from strbuf_detach
      status: add --long output format option
      git-sh-setup: refactor ident-parsing functions
      filter-branch: use git-sh-setup's ident parsing functions
      t1300: style updates
      t1300: remove redundant test
      t1300: test "git config --get-all" more thoroughly
      git-config: remove memory leak of key regexp
      git-config: fix regexp memory leaks on error conditions
      git-config: collect values instead of immediately printing
      git-config: do not complain about duplicate entries
      git-config: use git_config_with_options
      remote-curl: hoist gzip buffer size to top of post_rpc
      remote-curl: retry failed requests for auth even with gzip
      cvsimport: work around perl tzset issue
      test-lib: allow negation of prerequisites
      t7502: factor out autoident prerequisite
      ident: make user_ident_explicitly_given static
      ident: keep separate "explicit" flags for author and committer
      diff: rename "set" variable
      t: add tests for "git var"
      t9001: check send-email behavior with implicit sender
      status: respect advice.statusHints for ahead/behind advice

Jeff Muizelaar (1):
      diff: diff.context configuration gives default to -U

Jens Lehmann (5):
      submodule: teach rm to remove submodules unless they contain a git directory
      Teach "git submodule add" the --name option
      submodule add: Fail when .git/modules/<name> already exists unless forced
      submodule status: remove unused orig_* variables
      Teach rm to remove submodules when given with a trailing '/'

Jiang Xin (1):
      l10n: Update git.pot (14 new, 3 removed messages)

Joachim Schmitz (1):
      fix 'make test' for HP NonStop

Johan Herland (1):
      git symbolic-ref --delete $symref

Johannes Sixt (1):
      maybe_flush_or_die: move a too-loose Windows specific error

Junio C Hamano (20):
      t4055: avoid use of sed 'a' command
      log --grep: accept --basic-regexp and --perl-regexp
      log: honor grep.* configuration
      coloured git-prompt: paint detached HEAD marker in red
      pretty: remove reencode_commit_message()
      format_note(): simplify API
      pretty: prepare notes message at a centralized place
      pretty_print_commit(): do not append notes message
      format-patch: append --signature after notes
      format-patch --notes: show notes after three-dashes
      Documentation: decribe format-patch --notes
      get_fetch_map(): tighten checks on dest refs
      format-patch: add a blank line between notes and diffstat
      Start 1.8.1 cycle
      Sixth batch for 1.8.1
      Update draft release notes for 1.8.1
      Update draft release notes to 1.8.1
      Update draft release notes to 1.8.1
      Update draft release notes to 1.8.1
      Git 1.8.1-rc0

Karsten Blees (1):
      update-index/diff-index: use core.preloadindex to improve performance

Krzysztof Mazur (10):
      git-send-email: introduce compose-encoding
      git-send-email: use compose-encoding for Subject
      git-send-email: skip RFC2047 quoting for ASCII subjects
      git-send-email: introduce quote_subject()
      git-send-email: add rfc2047 quoting for "=?"
      git-send-email: remove garbage after email address
      git-send-email: fix fallback code in extract_valid_address()
      git-send-email: remove invalid addresses earlier
      git-send-email: ask what to do with an invalid email address
      git-send-email: allow edit invalid email address

Marc Khouzam (2):
      tcsh-completion re-using git-completion.bash
      Support for git aliasing for tcsh completion

Mark Levedahl (2):
      Update cygwin.c for new mingw-64 win32 api headers
      USE CGYWIN_V15_WIN32API as macro to select api for cygwin

Matt Kraai (1):
      docs: move submodule section

Matthew Ogilvie (10):
      cvsserver t9400: add basic 'cvs log' test
      cvsserver: removed unused sha1Or-k mode from kopts_from_path
      cvsserver: add comments about database schema/usage
      cvsserver update: comment about how we shouldn't remove a user-modified file
      cvsserver: remove unused functions _headrev and gethistory
      cvsserver: clean up client request handler map comments
      cvsserver: split up long lines in req_{status,diff,log}
      cvsserver: use whole CVS rev number in-process; don't strip "1." prefix
      cvsserver: cvs add: do not expand directory arguments
      cvsserver status: provide real sticky info

Matthieu Moy (1):
      status: add advice on how to push/pull to tracking branch

Michael Haggerty (12):
      parse_dirstat_params(): use string_list to split comma-separated string
      strbuf_split_buf(): use ALLOC_GROW()
      strbuf_split_buf(): simplify iteration
      strbuf_split*(): rename "delim" parameter to "terminator"
      strbuf_split*(): document functions
      string_list: add a function string_list_remove_empty_items()
      Initialize sort_uniq_list using named constant
      combine_notes_cat_sort_uniq(): sort and dedup lines all at once
      notes: fix handling of colon-separated values
      string_list_add_refs_from_colon_sep(): use string_list_split()
      link_alt_odb_entries(): use string_list_split_in_place()
      link_alt_odb_entries(): take (char *, len) rather than two pointers

Michael J Gruber (1):
      replace: parse revision argument for -d

Nguyễn Thái Ngọc Duy (16):
      attr: avoid strlen() on every match
      attr: avoid searching for basename on every match
      exclude: stricten a length check in EXC_FLAG_ENDSWITH case
      exclude: split basename matching code into a separate function
      exclude: fix a bug in prefix compare optimization
      exclude: split pathname matching code into a separate function
      gitignore: make pattern parsing code a separate function
      attr: more matching optimizations from .gitignore
      tree-walk: use enum interesting instead of integer
      Move try_merge_command and checkout_fast_forward to libgit.a
      Move estimate_bisect_steps to libgit.a
      Move print_commit_list to libgit.a
      Move setup_diff_pager to libgit.a
      send-pack: move core code to libgit.a
      fetch-pack: remove global (static) configuration variable "args"
      fetch-pack: move core code to libgit.a

Patrick Palka (1):
      Documentation: improve the example of overriding LESS via core.pager

Pete Wyckoff (6):
      git p4: catch p4 describe errors
      git p4: handle servers without move support
      git p4: catch p4 errors when streaming file contents
      git p4 test: display unresolvable host error
      git p4: fix labelDetails typo in exception
      git p4: remove unneeded cmd initialization

Peter Krefting (1):
      l10n: Update Swedish translation (1975t0f0u)

Phil Hord (3):
      t7407: Fix recursive submodule test
      Teach --recursive to submodule sync
      Add tests for submodule sync --recursive

Phil Pennock (1):
      gitweb: make remote_heads config setting work

Philip Oakley (4):
      Doc SubmittingPatches: Mention --notes option after "cover letter"
      Doc notes: Include the format-patch --notes option
      Doc format-patch: clarify --notes use case
      Doc User-Manual: Patch cover letter, three dashes, and --notes

Ramkumar Ramachandra (4):
      remote-hg: add missing config for basic tests
      Documentation: move diff.wordRegex from config.txt to diff-config.txt
      diff: introduce diff.submodule configuration variable
      submodule: display summary header in bold

Ramsay Jones (2):
      builtin/config.c: Fix a sparse warning
      remote-curl.c: Fix a compiler warning

SZEDER Gábor (1):
      completion: remove 'help' duplicate from porcelain commands

Simon Oosthoek (3):
      Allow __git_ps1 to be used in PROMPT_COMMAND
      show color hints based on state of the git tree
      Fix up colored git-prompt

Stefan Zager (1):
      submodule add: fix handling of --reference=<repo> option

Stefano Lattarini (1):
      configure: fix some output message

Torsten Bögershausen (1):
      Fix t9200 on case insensitive file systems

Trần Ngọc Quân (2):
      l10n: vi.po: update to git-v1.7.12-437-g1084f
      l10n: vi.po: Update follow git-v1.8.0-273-g2d242


Version v1.8.0.3; changes since v1.8.0.2:
-----------------------------------------

Adam Spiers (2):
      SubmittingPatches: add convention of prefixing commit messages
      Documentation: move support for old compilers to CodingGuidelines

Anders Kaseorg (1):
      git-prompt: Document GIT_PS1_DESCRIBE_STYLE

Chris Rorvick (2):
      Documentation/git-checkout.txt: clarify usage
      Documentation/git-checkout.txt: document 70c9ac2 behavior

Gunnlaugur Þór Briem (1):
      Document git-svn fetch --log-window-size parameter

Jeff King (7):
      pickaxe: hoist empty needle check
      pickaxe: use textconv for -S counting
      .mailmap: match up some obvious names/emails
      .mailmap: fix broken entry for Martin Langhoff
      .mailmap: normalize emails for Jeff King
      .mailmap: normalize emails for Linus Torvalds
      contrib: update stats/mailmap script

John Keeping (1):
      Documentation: don't link to example mail addresses

Junio C Hamano (6):
      fetch --tags: clarify documentation
      README: it does not matter who the current maintainer is
      t7004: do not create unneeded gpghome/gpg.conf when GPG is not used
      Documentation: Describe "git diff <blob> <blob>" separately
      git(1): show link to contributor summary page
      Git 1.8.0.3

Krzysztof Mazur (1):
      doc: git-reset: make "<mode>" optional

Manlio Perillo (1):
      git.txt: add missing info about --git-dir command-line option

Matthew Daley (1):
      Fix sizeof usage in get_permutations

Max Horn (1):
      git-remote-helpers.txt: document invocation before input format

Nguyễn Thái Ngọc Duy (1):
      index-format.txt: clarify what is "invalid"

Ramkumar Ramachandra (1):
      Documentation: move diff.wordRegex from config.txt to diff-config.txt

Sebastian Leske (4):
      git-svn: Document branches with at-sign(@).
      git-svn: Recommend use of structure options.
      git-svn: Expand documentation for --follow-parent
      git-svn: Note about tags.

Sitaram Chamarty (1):
      clarify -M without % symbol in diff-options

Stefano Lattarini (1):
      README: Git is released under the GPLv2, not just "the GPL"

Thomas Ackermann (8):
      Split over-long synopsis in git-fetch-pack.txt into several lines
      Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1
      Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt
      Documentation/technical: convert plain text files to asciidoc
      Documentation/howto: convert plain text files to asciidoc
      Documentation: build html for all files in technical and howto
      Remove misleading date from api-index-skel.txt
      Sort howto documents in howto-index.txt

Tom Jones (1):
      Add -S, --gpg-sign option to manpage of "git commit"


Version v1.8.0.2; changes since v1.8.0.1:
-----------------------------------------

Antoine Pelisse (1):
      Fix typo in remote set-head usage

Eric S. Raymond (1):
      doc/fast-import: clarify how content states are built

Johan Herland (2):
      t1400-update-ref: Add test verifying bug with symrefs in delete_ref()
      Fix failure to delete a packed ref through a symref

Junio C Hamano (13):
      reencode_string(): introduce and use same_encoding()
      test: add failing tests for "diff --stat" to t4049
      diff --stat: status of unmodified pair in diff-q is not zero
      diff --stat: use "file" temporary variable to refer to data->files[i]
      diff --stat: move the "total count" logic to the last loop
      diff --stat: do not count "unmerged" entries
      diff --shortstat: do not count "unmerged" entries
      Documentation/git-push.txt: clarify the "push from satellite" workflow
      Start preparing for 1.8.0.2
      t4049: refocus tests
      Update draft release notes to 1.8.0.2
      git(1): remove a defunct link to "list of authors"
      Git 1.8.0.2

Linus Torvalds (1):
      Fix "git diff --stat" for interesting - but empty - file changes

Mark Szepieniec (1):
      Documentation: improve phrasing in git-push.txt

Matthieu Moy (2):
      git-remote-mediawiki: escape ", \, and LF in file names
      git-fast-import.txt: improve documentation for quoted paths

Nguyễn Thái Ngọc Duy (1):
      compat/fnmatch: fix off-by-one character class's length check

Paul Gortmaker (1):
      Makefile: hide stderr of curl-config test

Pete Wyckoff (1):
      git p4: RCS expansion should not span newlines

Ralf Thielow (1):
      completion: add options --single-branch and --branch to "git clone"

Richard Hubbell (1):
      gitweb.perl: fix %highlight_ext mappings

Sébastien Loriot (1):
      Documentation/git-stash.txt: add a missing verb

W. Trevor King (1):
      git-submodule: wrap branch option with "<>" in usage strings.


Version v1.8.0.1; changes since v1.8.0:
---------------------------------------

Andreas Schwab (1):
      commit: fixup misplacement of --no-post-rewrite description

Ben Walton (1):
      Remove the hard coded length limit on variable names in config files

Carlos Martín Nieto (1):
      config: don't segfault when given --path with a missing value

David Aguilar (1):
      mergetools/p4merge: Handle "/dev/null"

Jan H. Schönherr (7):
      utf8: fix off-by-one wrapping of text
      format-patch: do not wrap non-rfc2047 headers too early
      format-patch: do not wrap rfc2047 encoded headers too late
      format-patch: introduce helper function last_line_length()
      format-patch: make rfc2047 encoding more strict
      format-patch: fix rfc2047 address encoding with respect to rfc822 specials
      format-patch tests: check quoting/encoding in To: and Cc: headers

Jeff King (3):
      diff_grep: use textconv buffers for add/deleted files
      gitweb: escape html in rss title
      checkout: print a message when switching unborn branches

Junio C Hamano (9):
      builtin/grep.c: make configuration callback more reusable
      grep: move the configuration parsing logic to grep.[ch]
      grep: move pattern-type bits support to top-level grep.[ch]
      revisions: initialize revs->grep_filter using grep_init()
      log --grep: use the same helper to set -E/-F options as "git grep"
      test-lib: Fix say_color () not to interpret \a\b\c in the message
      Start preparing for 1.8.0.1
      Further preparation for 1.8.0.1
      Git 1.8.0.1

Marc Khouzam (1):
      Completion must sort before using uniq

Matthieu Moy (2):
      Documentation: remote tracking branch -> remote-tracking branch
      Document 'git commit --no-edit' explicitly

Michael J Gruber (1):
      push/pull: adjust missing upstream help text to changed interface

Nguyễn Thái Ngọc Duy (1):
      grep: stop looking at random places for .gitattributes

Phil Hord (1):
      git-pull: Avoid merge-base on detached head

Philip Oakley (1):
      Doc repository-layout: Show refs/replace

René Scharfe (6):
      refs: lock symref that is to be deleted, not its target
      branch: factor out check_branch_commit()
      branch: factor out delete_branch_config()
      branch: delete symref branch, not its target
      branch: skip commit checks when deleting symref branches
      branch: show targets of deleted symrefs, not sha1s

Romain Francoise (1):
      mailmap: avoid out-of-bounds memory access

Stefan Zager (1):
      Fix potential hang in https handshake


Version v1.8.0; changes since v1.8.0-rc3:
-----------------------------------------

Andrew Wong (2):
      git-gui: Detect full path when parsing arguments
      git-gui: Don't prepend the prefix if value looks like a full path

Beat Bolli (2):
      git-gui: Fix a loose/lose mistake
      git-gui: remove .git/CHERRY_PICK_HEAD after committing

Benjamin Kerensa (1):
      git-gui: fix a typo in po/ files

Clemens Buchacher (1):
      git-gui: fix git-gui crash due to uninitialized variable

Heiko Voigt (1):
      git-gui: open console when using --trace on windows

Junio C Hamano (1):
      Git 1.8.0

Marcus Karlsson (1):
      git-gui: Use PWD if it exists on Mac OS X

Pat Thoyts (2):
      git-gui: preserve commit messages in utf-8
      git-gui 0.17

Ralf Thielow (3):
      git-gui: de.po: consistently add untranslated hook names within braces
      git-gui: de.po: translate "bare" as "bloß"
      git-gui: de.po: translate "remote" as "extern"

Vitaly "_Vi" Shukela (1):
      git-gui: Fix semi-working shortcuts for unstage and revert


Version v1.8.0-rc3; changes since v1.8.0-rc2:
---------------------------------------------

Dylan Alex Simon (1):
      gitweb.cgi: fix "comitter_tz" typo in feed

Jeff King (1):
      http: fix segfault in handle_curl_result

Jiang Xin (1):
      l10n: Update git.pot (3 new, 6 removed messages)

Junio C Hamano (3):
      Update draft release notes to 1.8.0
      Git 1.7.12.4
      Git 1.8.0-rc3

Peter Krefting (1):
      l10n: Update Swedish translation (1964t0f0u)

Richard Fearn (1):
      Fix spelling error in post-receive-email hook

Thomas Ackermann (1):
      Documentation/RelNotes: remove "updated up to this revision" markers

Trần Ngọc Quân (2):
      l10n: vi.po: update translation upto cc76011
      l10n: vi.po: update from v1.8.0-rc2-4-g42e55


Version v1.8.0-rc2; changes since v1.8.0-rc1:
---------------------------------------------

Ben Walton (1):
      tests: "cp -a" is a GNUism

Jonathan Nieder (2):
      git svn: work around SVN 1.7 mishandling of svn:special changes
      svn test: escape peg revision separator using empty peg rev

Junio C Hamano (2):
      gitcli: parse-options lets you omit tail of long options
      Git 1.8.0-rc2

Nguyễn Thái Ngọc Duy (2):
      gitignore.txt: suggestions how to get literal # or ! at the beginning
      attr: a note about the order of .gitattributes lookup

Ramkumar Ramachandra (1):
      Git url doc: mark ftp/ftps as read-only and deprecate them

Ramsay Jones (1):
      MALLOC_CHECK: Allow checking to be disabled from config.mak

Simon Ruderich (1):
      l10n: de.po: fix a few minor typos

Øyvind A. Holm (1):
      configure.ac: Add missing comma to CC_LD_DYNPATH


Version v1.8.0-rc1; changes since v1.8.0-rc0:
---------------------------------------------

Ammon Riley (1):
      Make git-svn branch patterns match complete URL

Eric Wong (1):
      git-svn: use path accessor for Git::SVN objects

Jonathan Nieder (2):
      Git::SVN: rename private path field
      git-svn: keep leading slash when canonicalizing paths (fallback case)

Junio C Hamano (7):
      log --grep-reflog: reject the option without -g
      Start preparing for 1.7.12.3
      t1450: the order the objects are checked is undefined
      Update draft release notes to 1.8.0
      paint_down_to_common(): parse commit before relying on its timestamp
      Git 1.7.12.3
      Git 1.8.0-rc1

Linus Torvalds (1):
      mailinfo: don't require "text" mime type for attachments

Michael J Gruber (1):
      RelNotes/1.8.0: various typo and style fixes

Nguyễn Thái Ngọc Duy (3):
      grep: prepare for new header field filter
      revision: add --grep-reflog to filter commits by reflog messages
      revision: make --grep search in notes too if shown

Peter Krefting (1):
      l10n: Fix to Swedish translation

Ramkumar Ramachandra (1):
      Documentation: mention `push.default` in git-push.txt

Robert Luberda (1):
      t9164: Add missing quotes in test

Steven Walter (2):
      git-svn.perl: consider all ranges for a given merge, instead of only tip-by-tip
      git-svn.perl: keep processing all commits in parents_exclude

Tobias Ulmer (1):
      silence git gc --auto --quiet output


Version v1.8.0-rc0; changes since v1.7.12.4:
--------------------------------------------

Adrian Johnson (1):
      Add userdiff patterns for Ada

Andrew Wong (3):
      rebase -i: Refactor help messages for todo file
      rebase -i: Teach "--edit-todo" action
      rebase -i: Add tests for "--edit-todo"

Aske Olsson (1):
      gitk: Fix GIT_TRACE issues

Carlos Martín Nieto (4):
      branch: introduce --set-upstream-to
      branch: add --unset-upstream option
      branch: deprecate --set-upstream and show help if we detect possible mistaken use
      completion: add --set-upstream-to and --unset-upstream

Chris Webb (1):
      cherry-pick: add --allow-empty-message option

David Aguilar (12):
      difftool: Simplify print_tool_help()
      difftool: Eliminate global variables
      difftool: Move option values into a hash
      difftool: Call the temp directory "git-difftool"
      difftool: Use symlinks when diffing against the worktree
      difftool: Handle finding mergetools/ in a path with spaces
      difftool: Check all return codes from compare()
      difftool: Wrap long lines for readability
      difftool: Handle compare() returning -1
      difftool: Disable --symlinks on cygwin
      mergetool,difftool: Document --tool-help consistently
      mergetool--lib: Allow custom commands to override built-ins

Elia Pinto (1):
      Add MALLOC_CHECK_ and MALLOC_PERTURB_ libc env to the test suite for detecting heap corruption

Erik Faye-Lund (1):
      contrib: add win32 credential-helper

J Smith (1):
      grep: add a grep.patternType configuration setting

Jeff King (4):
      remote-curl: rename is_http variable
      remote-curl: let users turn off smart http
      t9902: add a few basic completion tests
      t9902: add completion tests for "odd" filenames

Jiang Xin (11):
      Fix tests under GETTEXT_POISON on relative dates
      Fix tests under GETTEXT_POISON on git-stash
      Fix tests under GETTEXT_POISON on diffstat
      Fix tests under GETTEXT_POISON on git-apply
      Fix tests under GETTEXT_POISON on pack-object
      Fix tests under GETTEXT_POISON on git-remote
      Fix tests under GETTEXT_POISON on parseopt
      l10n: Update git.pot (2 new, 4 removed messages)
      l10n: zh_CN.po: translate 2 new messages
      l10n: Update git.pot (825 new, 24 removed messages)
      l10n: zh.CN.po: msgmerge git.pot (1142t195f630u)

Joachim Schmitz (8):
      compat: some mkdir() do not like a slash at the end
      Add a no-op setitimer() wrapper
      Document MKDIR_WO_TRAILING_SLASH in Makefile
      make poll available for other platforms lacking it
      fix some win32 specific dependencies in poll.c
      poll() exits too early with EFAULT if 1st arg is NULL
      make poll() work on platforms that can't recv() on a non-socket
      Port to HP NonStop

Johannes Sixt (3):
      t0060: split absolute path test in two to exercise some of it on Windows
      rebase -i: fix misleading error message after 'exec no-such' instruction
      rebase -i: suggest using --edit-todo to fix an unknown instruction

Junio C Hamano (42):
      daemon: --access-hook option
      Kick off cycle towards 1.8.0
      First half of the second batch for 1.8.0
      in_merge_bases(): support only one "other" commit
      receive-pack: use in_merge_bases() for fast-forward check
      http-push: use in_merge_bases() for fast-forward check
      Latter half of the second batch for 1.8.0
      merge_bases_many(): split out the logic to paint history
      in_merge_bases(): use paint_down_to_common()
      get_merge_bases_many(): walk from many tips in parallel
      merge-base: "--is-ancestor A B"
      reduce_heads(): reimplement on top of remove_redundant()
      The third batch for 1.8.0
      Update mailmap for a handful of folks
      The fourth batch for 1.8.0
      Cull items fixed in maintenance branches
      First half of the fifth batch for 1.8.0
      Second half of the fifth batch for 1.8.0
      Start merging the sixth batch for 1.8.0
      The sixth batch for 1.8.0
      Draft release notes to 1.8.0
      builtin/notes.c: mark file-scope private symbols as static
      commit.c: mark a file-scope private symbol as static
      diff.c: mark a private file-scope symbol as static
      graph.c: mark private file-scope symbols as static
      rerere.c: mark private file-scope symbols as static
      notes.c: mark a private file-scope symbol as static
      symlinks.c: mark private file-scope symbols as static
      sha1-array.c: mark a private file-scope symbol as static
      strbuf.c: mark a private file-scope symbol as static
      read-cache.c: mark a private file-scope symbol as static
      wt-status.c: mark a private file-scope symbol as static
      trace.c: mark a private file-scope symbol as static
      ident.c: mark private file-scope symbols as static
      sequencer.c: mark a private file-scope symbol as static
      The seventh batch for 1.8.0
      MALLOC_CHECK: various clean-ups
      Revert "archive-zip: support UTF-8 paths"
      Update draft release notes to 1.8.0
      Update draft release notes to 1.8.0
      Update draft release notes to 1.8.0
      Git 1.8.0-rc0

Ken Dreyer (1):
      cvsimport: strip all inappropriate tag strings

Linus Torvalds (1):
      commit/commit-tree: correct latin1 to utf-8

Martin von Zweigbergk (4):
      remove unnecessary parameter from get_patch_ids()
      cherry: don't set ignored rev_info options
      cherry: remove redundant check for merge commit
      rebase usage: subcommands can not be combined with -i

Matthieu Moy (1):
      push: start warning upcoming default change for push.default

Michael G. Schwern (20):
      Git::SVN: use accessors internally for path
      Git::SVN: use accessor for URLs internally
      Git::SVN::Ra: use accessor for URLs
      use Git::SVN->path accessor globally
      use Git::SVN{,::RA}->url accessor globally
      git-svn: move canonicalization to Git::SVN::Utils
      git-svn: use SVN 1.7 to canonicalize when possible
      git-svn: factor out _collapse_dotdot function
      git-svn: add join_paths() to safely concatenate paths
      Git::SVN::Utils: remove irrelevant comment
      git-svn: path canonicalization uses SVN API
      Git::SVN{,::Ra}: canonicalize earlier
      t9118: workaround inconsistency between SVN versions
      t9107: fix typo
      git-svn: attempt to mimic SVN 1.7 URL canonicalization
      git-svn: replace URL escapes with canonicalization
      git-svn: canonicalize earlier
      git-svn: introduce add_path_to_url function
      git-svn: canonicalize newly-minted URLs
      git-svn: remove ad-hoc canonicalizations

Michael Haggerty (29):
      t0060: move tests of real_path() from t0000 to here
      t0060: verify that absolute_path() fails if passed the empty string
      absolute_path(): reject the empty string
      t0060: verify that real_path() fails if passed the empty string
      real_path(): reject the empty string
      t0060: verify that real_path() works correctly with absolute paths
      real_path(): properly handle nonexistent top-level paths
      t0060: verify that real_path() removes extra slashes
      string_list: add function string_list_append_nodup()
      string_list: add two new functions for splitting strings
      string_list: add a new function, filter_string_list()
      string_list: add a new function, string_list_remove_duplicates()
      string_list: add a function string_list_longest_prefix()
      api-string-list.txt: initialize the string_list the easy way
      t5500: add tests of error output for missing refs
      t5500: add tests of fetch-pack --all --depth=N $URL $REF
      Rename static function fetch_pack() to http_fetch_pack()
      fetch_pack(): reindent function decl and defn
      Change fetch_pack() and friends to take string_list arguments
      filter_refs(): do not check the same sought_pos twice
      fetch_pack(): update sought->nr to reflect number of unique entries
      filter_refs(): delete matched refs from sought list
      filter_refs(): build refs list as we go
      filter_refs(): simplify logic
      cmd_fetch_pack(): return early if finish_connect() fails
      fetch-pack: report missing refs even if no existing refs were received
      cmd_fetch_pack(): simplify computation of return value
      fetch-pack: eliminate spurious error messages
      string_list API: document what "sorted" means

Michael J Gruber (1):
      completion: complete branch name for "branch --set-upstream-to="

Miklos Vajna (1):
      cherry-pick: don't forget -s on failure

Nguyễn Thái Ngọc Duy (74):
      i18n: mark "style" in OPT_COLUMN() for translation
      i18n: archive: mark parseopt strings for translation
      i18n: bisect--helper: mark parseopt strings for translation
      i18n: add: mark parseopt strings for translation
      i18n: blame: mark parseopt strings for translation
      i18n: branch: mark parseopt strings for translation
      i18n: cat-file: mark parseopt strings for translation
      i18n: check-attr: mark parseopt strings for translation
      i18n: checkout-index: mark parseopt strings for translation
      i18n: checkout: mark parseopt strings for translation
      i18n: cherry: mark parseopt strings for translation
      i18n: clean: mark parseopt strings for translation
      i18n: clone: mark parseopt strings for translation
      i18n: column: mark parseopt strings for translation
      i18n: commit: mark parseopt strings for translation
      i18n: count-objects: mark parseopt strings for translation
      i18n: config: mark parseopt strings for translation
      i18n: describe: mark parseopt strings for translation
      i18n: fast-export: mark parseopt strings for translation
      i18n: fetch: mark parseopt strings for translation
      i18n: fmt-merge-msg: mark parseopt strings for translation
      i18n: for-each-ref: mark parseopt strings for translation
      i18n: format-patch: mark parseopt strings for translation
      i18n: fsck: mark parseopt strings for translation
      i18n: gc: mark parseopt strings for translation
      i18n: grep: mark parseopt strings for translation
      i18n: hash-object: mark parseopt strings for translation
      i18n: help: mark parseopt strings for translation
      i18n: init-db: mark parseopt strings for translation
      i18n: log: mark parseopt strings for translation
      i18n: ls-files: mark parseopt strings for translation
      i18n: ls-tree: mark parseopt strings for translation
      i18n: merge-base: mark parseopt strings for translation
      i18n: merge-file: mark parseopt strings for translation
      i18n: merge: mark parseopt strings for translation
      i18n: mktree: mark parseopt strings for translation
      i18n: mv: mark parseopt strings for translation
      i18n: name-rev: mark parseopt strings for translation
      i18n: notes: mark parseopt strings for translation
      i18n: pack-objects: mark parseopt strings for translation
      i18n: pack-refs: mark parseopt strings for translation
      i18n: prune-packed: mark parseopt strings for translation
      i18n: prune: mark parseopt strings for translation
      i18n: push: mark parseopt strings for translation
      i18n: read-tree: mark parseopt strings for translation
      i18n: remote: mark parseopt strings for translation
      i18n: replace: mark parseopt strings for translation
      i18n: status: mark parseopt strings for translation
      i18n: rerere: mark parseopt strings for translation
      i18n: reset: mark parseopt strings for translation
      i18n: rev-parse: mark parseopt strings for translation
      i18n: revert, cherry-pick: mark parseopt strings for translation
      i18n: rm: mark parseopt strings for translation
      i18n: shortlog: mark parseopt strings for translation
      am: quote string for translation before passing to eval_gettextln
      i18n: show-branch: mark parseopt strings for translation
      i18n: show-ref: mark parseopt strings for translation
      i18n: symbolic-ref: mark parseopt strings for translation
      i18n: tag: mark parseopt strings for translation
      i18n: update-index: mark parseopt strings for translation
      i18n: update-ref: mark parseopt strings for translation
      i18n: update-server-info: mark parseopt strings for translation
      i18n: verify-pack: mark parseopt strings for translation
      i18n: verify-tag: mark parseopt strings for translation
      i18n: write-tree: mark parseopt strings for translation
      Reduce translations by using same terminologies
      Use imperative form in help usage to describe an action
      branch -v: align even when branch names are in UTF-8
      checkout: pass "struct checkout_opts *" as const pointer
      checkout: move more parameters to struct checkout_opts
      i18n: mark more index-pack strings for translation
      status: remove i18n legos
      checkout: reorder option handling
      fetch: align per-ref summary report in UTF-8 locales

Pete Wyckoff (17):
      git p4 test: move client_view() function to library
      git p4 test: add broken --use-client-spec --detect-branches tests
      git p4: set self.branchPrefixes in initialization
      git p4: do wildcard decoding in stripRepoPath
      git p4: make branch detection work with --use-client-spec
      git p4 test: remove bash-ism of combined export/assignment
      git p4: gracefully fail if some commits could not be applied
      git p4: remove submit failure options [a]pply and [w]rite
      git p4: move conflict prompt into run, add [q]uit input
      git p4: standardize submit cancel due to unchanged template
      git p4: test clean-up after failed submit, fix added files
      git p4: rearrange submit template construction
      git p4: revert deleted files after submit cancel
      git p4: accept -v for --verbose
      git p4: add submit --dry-run option
      git p4: add submit --prepare-p4-only option
      git-p4: add submit --conflict option and config varaiable

Peter Krefting (3):
      l10n: Update Swedish translation (1166t0f0u)
      Update Swedish translation (1967t0f0u)
      l10n: Fixes to Swedish translation

Philipp A. Hartmann (1):
      contrib: add credential helper for GnomeKeyring

Ralf Thielow (1):
      l10n: de.po: translate 2 new messages

Ramsay Jones (12):
      t3300-*.sh: Fix a TAP parse error
      t3902-*.sh: Skip all tests rather than each test
      t4016-*.sh: Skip all tests rather than each test
      test-lib.sh: Fix some shell coding style violations
      test-lib.sh: Add check for invalid use of 'skip_all' facility
      test-lib.sh: Suppress the "passed all ..." message if no tests run
      path.c: Remove the 'git_' prefix from a file scope function
      path.c: Don't discard the return value of vsnpath()
      path.c: Use vsnpath() in the implementation of git_path()
      Call git_pathdup() rather than xstrdup(git_path("..."))
      Call mkpathdup() rather than xstrdup(mkpath(...))
      test-string-list.c: Fix some sparse warnings

René Scharfe (4):
      archive-zip: support UTF-8 paths
      archive-zip: support UTF-8 paths
      archive-zip: write extended timestamp
      MALLOC_CHECK: enable it, unless disabled explicitly

Ross Lagerwall (1):
      difftool: silence warning

Sebastian Schuberth (1):
      Add Code Compare v2.80.4 as a merge / diff tool for Windows

Stefano Lattarini (2):
      build: improve GIT_CONF_SUBST signature
      build: don't duplicate substitution of make variables

Thomas Rast (2):
      gettext: do not translate empty string
      in_merge_bases(): omit unnecessary redundant common ancestor reduction

Trần Ngọc Quân (2):
      l10n: vi.po & TEAMS: review Vietnamese translation
      l10n: vi.po: update to v1.7.12-146-g16d26


Version v1.7.12.4; changes since v1.7.12.3:
-------------------------------------------

Ben Walton (1):
      tests: "cp -a" is a GNUism

Dave Borowitz (1):
      Documentation/Makefile: Allow custom XMLTO binary

Dylan Alex Simon (1):
      gitweb.cgi: fix "comitter_tz" typo in feed

Jeff King (1):
      http: fix segfault in handle_curl_result

Junio C Hamano (6):
      merge: teach -Xours/-Xtheirs to binary ll-merge driver
      attr: "binary" attribute should choose built-in "binary" merge driver
      ll-merge: warn about inability to merge binary files only when we can't
      t1450: the order the objects are checked is undefined
      gitcli: parse-options lets you omit tail of long options
      Git 1.7.12.4

Nguyễn Thái Ngọc Duy (2):
      gitignore.txt: suggestions how to get literal # or ! at the beginning
      attr: a note about the order of .gitattributes lookup

Philip Oakley (5):
      Doc: shallow clone deepens _to_ new depth
      Doc: separate gitignore pattern sources
      Doc add: link gitignore
      Doc clean: add See Also link
      Doc branch: show -vv option and alternative

Ramkumar Ramachandra (3):
      t/test-lib: make sure Git has already been built
      test-lib: use $SHELL_PATH, not $SHELL
      Git url doc: mark ftp/ftps as read-only and deprecate them

Richard Fearn (1):
      Fix spelling error in post-receive-email hook

Simon Ruderich (1):
      l10n: de.po: fix a few minor typos


Version v1.7.12.3; changes since v1.7.12.2:
-------------------------------------------

Jeff King (3):
      receive-pack: redirect unpack-objects stdout to /dev/null
      receive-pack: send pack-processing stderr over sideband
      receive-pack: drop "n/a" on unpacker errors

Junio C Hamano (3):
      git blame: document that it always follows origin across whole-file renames
      Start preparing for 1.7.12.3
      Git 1.7.12.3

Linus Torvalds (1):
      mailinfo: don't require "text" mime type for attachments

Orgad Shaneh (1):
      commit: pay attention to submodule.$name.ignore in .gitmodules

Peter Krefting (1):
      l10n: Fix to Swedish translation

Ralf Thielow (1):
      clone --single: limit the fetch refspec to fetched branch

Ramkumar Ramachandra (1):
      submodule: if $command was not matched, don't parse other args

Shawn O. Pearce (2):
      Revert "retry request without query when info/refs?query fails"
      Enable info/refs gzip decompression in HTTP client


Version v1.7.12.2; changes since v1.7.12.1:
-------------------------------------------

Dan Johnson (1):
      fetch --all: pass --tags/--no-tags through to each remote

David Gould (1):
      run-command.c: fix broken list iteration in clear_child_for_cleanup

Felipe Contreras (1):
      completion: fix shell expansion of items

Jeff King (4):
      argv-array: add pop function
      argv-array: fix bogus cast when freeing array
      fetch: use argv_array instead of hand-building arrays
      Revert "completion: fix shell expansion of items"

Jens Lehmann (1):
      submodule: use argv_array instead of hand-building arrays

Jeremy White (1):
      Documentation: describe subject more precisely

Jonathan "Duke" Leto (1):
      Improve the description of GIT_PS1_SHOWUPSTREAM

Junio C Hamano (11):
      mailinfo: strip "RE: " prefix
      blame $path: avoid getting fooled by case insensitive filesystems
      blame: allow "blame file" in the middle of a conflicted merge
      grep: teach --debug option to dump the parse tree
      log --grep/--author: honor --all-match honored for multiple --grep patterns
      log: document use of multiple commit limiting options
      grep.c: mark private file-scope symbols as static
      mailinfo: do not concatenate charset= attribute values from mime headers
      grep.c: make two symbols really file-scope static this time
      Start preparation for 1.7.12.2
      Git 1.7.12.2

Michael J Gruber (6):
      grep: show --debug output only once
      t7810-grep: bring log --grep tests in common form
      t7810-grep: test multiple --grep with and without --all-match
      t7810-grep: test multiple --author with --all-match
      t7810-grep: test interaction of multiple --grep and --author options
      t7810-grep: test --all-match with multiple --grep and --author options

Nguyễn Thái Ngọc Duy (3):
      remote: prefer subcommand name 'remove' to 'rm'
      doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt
      Revert diffstat back to English

Ralf Thielow (1):
      l10n: de.po: correct translation of a 'rebase' message

Stefan Naewe (1):
      ls-remote: document the '--get-url' option

Stephen Boyd (1):
      Documentation: Document signature showing options

Thynson (2):
      l10n: Unify the translation for '(un)expected'
      l10n: Improve many translation for zh_CN


Version v1.7.12.1; changes since v1.7.12:
-----------------------------------------

Adam Butcher (1):
      Fix '\ No newline...' annotation in rewrite diffs

Adam Spiers (1):
      Add missing -z to git check-attr usage text for consistency with man page

Andreas Schwab (1):
      Documentation/git-filter-branch: Move note about effect of removing commits

Brandon Casey (2):
      t/t5400: demonstrate breakage caused by informational message from prune
      prune.c: only print informational message in show_only or verbose mode

David Aguilar (2):
      gitk: Teach "Reread references" to reload tags
      gitk: Rename 'tagcontents' to 'cached_tagcontent'

Eric S. Raymond (4):
      fast-import: document the --done option
      contrib/ciabot: Get ciabot configuration from git variables
      Improved documentation for the ciabot scripts.
      Make the ciabot scripts completely self-configuring in the normal case.

Felipe Contreras (1):
      gitk: Avoid Meta1-F5

Heiko Voigt (2):
      Let submodule command exit with error status if path does not exist
      Documentation/CodingGuidelines: spell out more shell guidelines

Jay Soffian (1):
      gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO

Jeff King (29):
      diff: do not use null sha1 as a sentinel value
      do not write null sha1s to on-disk index
      fsck: detect null sha1 in tree entries
      include agent identifier in capability string
      docs: monospace listings in docbook output
      check-docs: mention gitweb specially
      check-docs: update non-command documentation list
      command-list: add git-sh-i18n
      command-list: mention git-credential-* helpers
      check-docs: factor out command-list
      check-docs: list git-gui as a command
      check-docs: drop git-help special-case
      check-docs: get documented command list from Makefile
      send-pack: fix capability-sending logic
      do not send client agent unless server does first
      parse_feature_request: make it easier to see feature values
      fetch-pack: mention server version with verbose output
      config: warn on inaccessible files
      gitignore: report access errors of exclude files
      attr: warn on inaccessible attribute files
      t5550: put auth-required repo in auth/dumb
      t5550: factor out http auth setup
      t/lib-httpd: only route auth/dumb to dumb repos
      t/lib-httpd: recognize */smart/* repos as smart-http
      t: test basic smart-http authentication
      t: test http access to "half-auth" repositories
      http: factor out http error code handling
      http: prompt for credentials on failed POST
      log: fix --quiet synonym for -s

Joachim Schmitz (2):
      http.c: don't use curl_easy_strerror prior to curl-7.12.0
      sha1_file.c: introduce get_max_fd_limit() helper

Junio C Hamano (34):
      test: rename $satisfied to $satisfied_prereq
      test: allow prerequisite to be evaluated lazily
      config: "git config baa" should exit with status 1
      t7406: fix misleading "rev-parse --max-count=1 HEAD"
      sane_execvp(): ignore non-directory on $PATH
      Documentation: do not mention .git/refs/* directories
      receive-pack: do not leak output from auto-gc to standard output
      sh-setup: protect from exported IFS
      fetch-pack: do not ask for unadvertised capabilities
      send-email: validate & reconfirm interactive responses
      rev-list docs: clarify --topo-order description
      gitcli: describe abbreviation of long options
      Documentation: update the introductory section
      git-config doc: unconfuse an example
      precompose-utf8: do not call checks for non-ascii "utf8"
      warn_on_inaccessible(): a helper to warn on inaccessible paths
      specifying ranges: we did not mean to make ".." an empty set
      mergetool: style fixes
      Prepare for 1.7.11.6
      apply: compute patch->def_name correctly under -p0
      doc: "git checkout -b/-B/--orphan" always takes a branch name
      split_ident_line(): make best effort when parsing author/committer line
      Document file-glob for "git checkout -- '*.c'"
      gitcli: formatting fix
      gitcli: contrast wildcard given to shell and to git
      Almost 1.7.11.6
      Start preparing for 1.7.12.1
      Git 1.7.11.6
      Further merging down for 1.7.12.1
      Further merging in preparation for 1.7.12.1
      attr: failure to open a .gitattributes file is OK with ENOTDIR
      Git 1.7.11.7
      Draft release notes to 1.7.12.1
      Git 1.7.12.1

Kacper Kornet (2):
      t6300: test sort with multiple keys
      for-each-ref: Fix sort with multiple keys

Martin von Zweigbergk (4):
      add tests for 'git rebase --keep-empty'
      teach log --no-walk=unsorted, which avoids sorting
      demonstrate broken 'git cherry-pick three one two'
      cherry-pick/revert: respect order of revisions to pick

Matthieu Moy (1):
      setup: clarify error messages for file/revisions ambiguity

Michael Haggerty (1):
      git-config.txt: fix example

Michael J Gruber (6):
      test-lib: provide case insensitivity as a prerequisite
      t0050: use the CASE_INSENSITIVE_FS test prereq
      t0050: use the SYMLINKS test prereq
      test-lib: provide UTF8 behaviour as a prerequisite
      rebase -i: use full onto sha1 in reflog
      t3910: use the UTF8_NFD_TO_NFC test prereq

Michał Kiedrowicz (1):
      tests: Introduce test_seq

Miklos Vajna (1):
      man: git pull -r is a short for --rebase

Mischa POSLAWSKY (1):
      git-jump: ignore (custom) prefix in diff mode

Nguyễn Thái Ngọc Duy (1):
      read_index_from: remove bogus errno assignments

Paul Gortmaker (1):
      apply: delete unused deflate_origlen from patch struct

Phil Hord (2):
      test: git-stash conflict sets up rerere
      stash: invoke rerere in case of conflict

Philip Oakley (1):
      Doc: Improve shallow depth wording

Ramkumar Ramachandra (1):
      t/perf: add "trash directory" to .gitignore

Ramsay Jones (1):
      test-regex: Add a test to check for a bug in the regex routines

Robin Rosenberg (1):
      cleanup precompose_utf8

Stefan Zager (1):
      Make 'git submodule update --force' always check out submodules.

Stephen Boyd (1):
      send-email: initial_to and initial_reply_to are both optional

Thomas Rast (3):
      send-email: improve RFC2047 quote parsing
      diff_setup_done(): return void
      merge-recursive: eliminate flush_buffer() in favor of write_in_full()

Wesley J. Landaker (1):
      Documentation: indent-with-non-tab uses "equivalent tabs" not 8

Yacine Belkadi (1):
      completion: add --no-edit to git-commit


Version v1.7.12; changes since v1.7.12-rc3:
-------------------------------------------

Junio C Hamano (2):
      Documentation: update URL for formatted pages
      Git 1.7.12

Peter Krefting (1):
      l10n: Fixes to Swedish translation


Version v1.7.12-rc3; changes since v1.7.12-rc2:
-----------------------------------------------

Ben Walton (1):
      Enable HAVE_DEV_TTY for Solaris

Jeff King (1):
      terminal: seek when switching between reading and writing

Jiang Xin (2):
      l10n: Update one message in git.pot
      l10n: zh_CN.po: update one translation

Junio C Hamano (2):
      Git 1.7.11.5
      Git 1.7.12-rc3

Matthieu Moy (1):
      Documentation: list git-credential in plumbing commands

Peter Baumann (1):
      git svn: reset invalidates the memoized mergeinfo caches

Peter Krefting (1):
      l10n: Update Swedish translation (1168t0f0u)

Ralf Thielow (1):
      l10n: de.po: translate 77 new messages

Robert Luberda (1):
      git svn: handle errors and concurrent commits in dcommit

Trần Ngọc Quân (1):
      l10n: vi.po: update one message


Version v1.7.12-rc2; changes since v1.7.12-rc1:
-----------------------------------------------

Jiang Xin (11):
      i18n: New keywords for xgettext extraction from sh
      i18n: rebase: mark messages for translation
      i18n: Rewrite gettext messages start with dash
      rebase: remove obsolete and unused LONG_USAGE which breaks xgettext
      i18n: am: mark more strings for translation
      Remove dead code which contains bad gettext block
      i18n: merge-recursive: mark strings for translation
      l10n: Update git.pot (4 new, 3 removed messages)
      l10n: zh_CN.po: translate 4 new messages
      l10n: Update git.pot (76 new, 4 removed messages)
      l10n: zh_CN.po: translate 76 new messages

Johannes Sixt (1):
      Makefile: use overridable $(FIND) instead of hard-coded 'find'

Junio C Hamano (3):
      Prepare for 1.7.11.5
      Drop 1.7.11.x items from 1.7.12 release notes
      Git 1.7.12-rc2

Matthieu Moy (1):
      git-remote-mediawiki: replace TODO-list in comment by appropriate link

Nguyễn Thái Ngọc Duy (1):
      i18n: leave \n out of translated diffstat

Ralf Thielow (3):
      l10n: de.po: translate 4 new messages
      git-rebase.sh: fix typo in an error message
      merge-recursive: separate message for common ancestors

Trần Ngọc Quân (2):
      l10n: vi.po: translate 4 new messages
      l10n: vi.po update to follow POT in 3b613

Štěpán Němec (1):
      doc: A few minor copy edits.


Version v1.7.12-rc1; changes since v1.7.12-rc0:
-----------------------------------------------

Chris Webb (1):
      rebase -i: handle fixup of root commit correctly

Daniel Graña (2):
      git-submodule: work with GIT_DIR/GIT_WORK_TREE
      t7409: make sure submodule is initialized and updated in more detail

Florian Achleitner (1):
      Add explanatory comment for transport-helpers refs mapping.

Heiko Voigt (1):
      link_alt_odb_entry: fix read over array bounds reported by valgrind

Jeff King (16):
      advice: pass varargs to strbuf_vaddf, not strbuf_addf
      commit: check committer identity more strictly
      commit: document the temporary commit message file
      test-lib.sh: unset XDG_CONFIG_HOME
      attr: make sure we have an xdg path before using it
      t1306: check that XDG_CONFIG_HOME works
      t/lib-httpd: handle running under --valgrind
      help.c::uniq: plug a leak
      checkout: don't confuse ref and object flags
      t7502: clean up fake_editor tests
      t7502: properly quote GIT_EDITOR
      t7502: narrow checks for author/committer name in template
      t7502: drop confusing test_might_fail call
      t7502: handle systems where auto-identity is broken
      t7502: test early quit from commit with bad ident
      t: add missing executable bit to t7409

Junio C Hamano (9):
      test-lib: reorder and include GIT-BUILD-OPTIONS a lot earlier
      mergetool: support --tool-help option like difftool does
      Update draft release notes to 1.7.12
      Enumerate revision range specifiers in the documentation
      help.c::exclude_cmds(): plug a leak
      perl: detect new files in MakeMaker builds
      Update draft release notes to 1.7.12
      Git 1.7.11.4
      Git 1.7.12-rc1

Matthieu Moy (1):
      ignore: make sure we have an xdg path before using it

Max Horn (1):
      Make <refname> documentation more consistent.

Michael G. Schwern (14):
      Quiet warning if Makefile.PL is run with -w and no --localedir
      Don't lose Error.pm if $@ gets clobbered.
      The Makefile.PL will now find .pm files itself.
      Extract some utilities from git-svn to allow extracting Git::SVN.
      Prepare Git::SVN for extraction into its own file.
      Extract Git::SVN from git-svn into its own .pm file.
      Move initialization of Git::SVN variables into Git::SVN.
      Prepare Git::SVN::Log for extraction from git-svn.
      Extract Git::SVN::Log from git-svn.
      Prepare Git::SVN::Migration for extraction from git-svn.
      Extract Git::SVN::Migration from git-svn.
      Load all the modules in one place and before running code.
      Move Git::IndexInfo into its own file.
      Extract Git::SVN::GlobSpec from git-svn.

Ramsay Jones (2):
      t1100-*.sh: Fix an intermittent test failure
      t7810-*.sh: Remove redundant test


Version v1.7.12-rc0; changes since v1.7.11.7:
---------------------------------------------

Alexander Strasser (7):
      t4012: modernize style for quoting
      t4012: Unquote git command fragment in test title
      t4012: Actually quote the sed script
      t4012: Break up pipe into serial redirections
      t4012: Make --shortstat test more robust
      t4012: Re-indent test snippets
      t4012: Use test_must_fail instead of if-else

Andreas Schwab (1):
      Fix formatting in git-config(1)

Chris Webb (4):
      rebase -i: support --root without --onto
      Add tests for rebase -i --root without --onto
      Add config variable to set HTML path for git-help --web
      Allow help.htmlpath to be a URL prefix

David Barr (7):
      vcs-svn: drop no-op reset methods
      vcs-svn: avoid self-assignment in dummy initialization of pre_off
      vcs-svn: simplify cleanup in apply_one_window
      vcs-svn: use constcmp instead of prefixcmp
      vcs-svn: use strstr instead of memmem
      vcs-svn: suppress signed/unsigned comparison warnings
      vcs-svn: suppress a signed/unsigned comparison warning

Felipe Contreras (2):
      completion: remove executable mode
      completion: split __git_ps1 into a separate script

Gary Gibbons (2):
      git p4: refactor diffOpts calculation
      git p4: add support for 'p4 move' in P4Submit

Guillaume Sasdy (4):
      git-remote-mediawiki: scripts to install, delete and clear a MediaWiki
      git-remote-mediawiki: test environment of git-remote-mediawiki
      git-remote-mediawiki (t9360): test git-remote-mediawiki clone
      git-remote-mediawiki (t9361): test git-remote-mediawiki pull and push

Heiko Voigt (1):
      remove the impression of unexpectedness when access is denied

Huynh Khoi Nguyen Nguyen (4):
      config: read (but not write) from $XDG_CONFIG_HOME/git/config file
      Let core.excludesfile default to $XDG_CONFIG_HOME/git/ignore
      Let core.attributesfile default to $XDG_CONFIG_HOME/git/attributes
      config: write to $XDG_CONFIG_HOME/git/config file when appropriate

Javier Roucher Iglesias (1):
      add 'git credential' plumbing command

Jeff King (26):
      docs: drop asciidoc7compatible flag
      docs: drop antique comment from Makefile
      docs/clone: mention that --local may be ignored
      clone: allow --no-local to turn off local optimizations
      move git_version_string into version.c
      version: add git_user_agent function
      http: get default user-agent from git_user_agent
      t1304: improve setfacl prerequisite setup
      Makefile: sort LIB_H list
      Makefile: fold MISC_H into LIB_H
      Makefile: do not have git.o depend on common-cmds.h
      Makefile: apply dependencies consistently to sparse/asm targets
      Makefile: do not replace @@GIT_USER_AGENT@@ in scripts
      Makefile: split GIT_USER_AGENT from GIT-CFLAGS
      Makefile: split prefix flags from GIT-CFLAGS
      Makefile: do not replace @@GIT_VERSION@@ in shell scripts
      Makefile: update scripts when build-time parameters change
      Makefile: build instaweb similar to other scripts
      Makefile: move GIT-VERSION-FILE dependencies closer to use
      index-pack: loop while inflating objects in unpack_data
      revision: avoid work after --max-count is reached
      status: color in-progress message like other header messages
      docs/credential: minor clarity fixups
      mw-to-git: check blank credential attributes via length
      credential: convert "url" attribute into its parsed subparts
      mw-to-git: use git-credential's URL parser

Jiang Xin (2):
      l10n: Update git.pot (29 new messages)
      l10n: zh_CN.po: translate 29 new messages

Johannes Sixt (3):
      t7400: avoid path mangling issues
      perl/Makefile: Fix a missing double-quote
      t4012: use 'printf' instead of 'dd' to generate a binary file

Jon Seymour (4):
      submodule: additional regression tests for relative URLs
      submodule: document failure to handle relative superproject origin URLs
      submodule: fix sync handling of some relative superproject origin URLs
      submodule: fix handling of superproject origin URLs like foo, ./foo and ./foo/bar

Jonathan Nieder (8):
      vcs-svn: allow import of > 4GiB files
      vcs-svn: suppress -Wtype-limits warning
      perl/Makefile: move "mkdir -p" to module installation loop for maintainability
      vcs-svn: suppress a signed/unsigned comparison warning
      vcs-svn: allow 64-bit Prop-Content-Length
      Makefile: fold XDIFF_H and VCSSVN_H into LIB_H
      Makefile: be silent when only GIT_USER_AGENT changes
      Makefile: document ground rules for target-specific dependencies

Junio C Hamano (58):
      completion: warn people about duplicated function
      sha1_name.c: indentation fix
      Kick off post 1.7.11 cycle
      The first batch for 1.7.12
      Second batch for 1.7.12
      Third batch for 1.7.12
      sha1_name.c: hide get_sha1_with_context_1() ugliness
      sha1_name.c: get rid of get_sha1_with_mode_1()
      sha1_name.c: get rid of get_sha1_with_mode()
      sha1_name.c: clarify what "fake" is for in find_short_object_filename()
      sha1_name.c: rename "now" to "current"
      sha1_name.c: refactor find_short_packed_object()
      sha1_name.c: correct misnamed "canonical" and "res"
      sha1_name.c: restructure disambiguation of short names
      get_sha1(): fix error status regression
      sha1_name.c: allow get_short_sha1() to take other flags
      sha1_name.c: teach get_short_sha1() a commit-only option
      Fourth batch for 1.7.12
      Fifth batch for 1.7.12
      apply: fix an incomplete comment in check_patch()
      apply: a bit more comments on PATH_TO_BE_DELETED
      apply: clear_image() clears things a bit more
      apply: refactor read_file_or_gitlink()
      apply: factor out checkout_target() helper function
      apply: split load_preimage() helper function out
      apply: refactor "previous patch" logic
      apply: further split load_preimage()
      apply: move check_to_create_blob() closer to its sole caller
      apply: move "already exists" logic to check_to_create()
      apply: accept -3/--3way command line option
      apply: fall back on three-way merge
      apply: plug the three-way merge logic in
      apply: move verify_index_match() higher
      apply: --3way with add/add conflict
      apply: register conflicted stages to the index
      apply: allow rerere() to work on --3way results
      apply: document --3way option
      sha1_name.c: get_describe_name() by definition groks only commits
      sha1_name.c: get_sha1_1() takes lookup flags
      sha1_name.c: many short names can only be committish
      sha1_name.c: teach lookup context to get_sha1_with_context()
      sha1_name.c: introduce get_sha1_committish()
      revision.c: allow handle_revision_arg() to take other flags
      revision.c: the "log" family, except for "show", takes committish
      sha1_name.c: add support for disambiguating other types
      apply: --build-fake-ancestor expects blobs
      commit-tree: the command wants a tree and commits
      reset: the command takes committish
      rev-parse: A and B in "rev-parse A..B" refer to committish
      rev-parse --disambiguate=<prefix>
      apply: tests for the --3way option
      Reduce draft release notes to 1.7.12
      t1512: ignore whitespaces in wc -l output
      t1512: match the "other" object names
      Sixth batch for 1.7.12
      Update draft release notes for 7th batch
      Update draft release notes to 1.7.12
      Git 1.7.12-rc0

Lucien Kong (5):
      rebase -i: teach "--exec <cmd>"
      wt-status.*: better advices for git status added
      t7512-status-help.sh: better advices for git status
      status: don't suggest "git rm" or "git add" if not appropriate
      status: better advices when splitting a commit (during rebase -i)

Marcin Owsiany (1):
      git-svn: don't create master if another head exists

Martin von Zweigbergk (4):
      rebase: don't source git-sh-setup twice
      rebase --root: print usage on too many args
      am --rebasing: get patch body from commit, not from mailbox
      am: don't call mailinfo if $rebasing

Matthieu Moy (24):
      git credential fill: output the whole 'struct credential'
      git-remote-mediawiki: add credential support
      git-remote-mediawiki: don't compute the diff when getting commit message
      git-remote-mediawiki: don't "use encoding 'utf8';"
      git-remote-mediawiki: split get_mw_pages into smaller functions
      git-remote-mediawiki: improve support for non-English Wikis
      git-remote-mediawiki: support for uploading file in test environment
      git-remote-mediawiki: change return type of get_mw_pages
      git-remote-mediawiki: refactor loop over revision ids
      git-remote-mediawiki: extract revision-importing loop to a function
      git-remote-mediawiki: more efficient 'pull' in the best case
      git-remote-mediawiki: be more defensive when requests fail
      git-remote-mediawiki: update comments to reflect credential support
      config: fix several access(NULL) calls
      git-remote-mediawiki: don't split namespaces with spaces
      git-remote-mediawiki: actually send empty comment when they're empty
      git-remote-mediawiki: make mediafiles export optional
      git-remote-mediawiki: get rid of O(N^2) loop
      git-remote-mediawiki: use --force when adding notes
      git-remote-mediawiki: show progress information when listing pages
      git-remote-mediawiki: show progress information when getting last remote revision
      git-remote-mediawiki: properly deal with invalid remote revisions
      git-remote-mediawiki: fix incorrect test usage in test
      git-remote-mediawiki: allow page names with a ':'

Michael J Gruber (1):
      t3404: make test 57 work with dash and others

NGUYEN Kim Thuat (2):
      git-remote-mediawiki: send "File:" attachments to a remote wiki
      git-remote-mediawiki (t9363): test 'File:' import and export

Namhyung Kim (3):
      gitweb: Cleanup git_print_log()
      gitweb: Handle other types of tag in git_print_log
      gitweb: Add support to Link: tag

Nguyễn Thái Ngọc Duy (12):
      index-pack: hash non-delta objects while reading from stream
      index-pack: use streaming interface on large blobs (most of the time)
      index-pack: factor out unpack core from get_data_from_pack
      index-pack: use streaming interface for collision test on large blobs
      pack-objects: use streaming interface for reading large loose blobs
      Unindent excluded_from_list()
      dir.c: get rid of the wildcard symbol set in no_wildcard()
      exclude: do strcmp as much as possible before fnmatch
      Remove i18n legos in notifying new branch tracking setup
      reflog: remove i18n legos in pruning message
      notes-merge: remove i18n legos in merge result message
      rerere: remove i18n legos in result message

Pat Thoyts (1):
      Restore use of 'help.format' configuration property in 'git help'

Pavel Volek (1):
      git-remote-mediawiki: import "File:" attachments

Pete Wyckoff (13):
      git p4 test: wait longer for p4d to start and test its pid
      git p4 test: use real_path to resolve p4 client symlinks
      git p4 test: simplify quoting involving TRASH_DIRECTORY
      git p4 test: never create default test repo
      git p4 test: rename some "git-p4 command" strings
      git p4 test: check for error message in failed test
      git p4 test: copy source indeterminate
      git p4 test: cleanup_git should make a new $git
      git p4 test: split up big t9800 test
      git p4 test: fix badp4dir test
      git p4: remove unused P4Submit interactive setting
      git p4 test: refactor marshal_dump
      git p4: notice Jobs lines in git commit messages

Peter Krefting (1):
      Update Swedish translation (1095t0f0u)

Ralf Thielow (1):
      l10n: de.po: translate 29 new messages

Ramsay Jones (1):
      vcs-svn: rename check_overflow and its arguments for clarity

SZEDER Gábor (3):
      tests: move code to run tests under bash into a helper library
      tests: add tests for the bash prompt functions in the completion script
      completion: respect $GIT_DIR

Simon Cathebras (1):
      git-remote-mediawiki (t9362): test git-remote-mediawiki with UTF8 characters

Stefano Lattarini (7):
      autoconf: GIT_CONF_APPEND_LINE: change signature
      autoconf: GIT_CONF_APPEND_LINE -> GIT_CONF_SUBST
      autoconf: remove some redundant shell indirections
      autoconf: remove few redundant semicolons
      autoconf: use AC_CONFIG_COMMANDS instead of ad-hoc 'config.mak.append'
      build: "make clean" should not remove configure-generated files
      build: reconfigure automatically if configure.ac changes

Thomas Gummerer (2):
      Replace strlen() with ce_namelen()
      Strip namelen out of ce_flags into a ce_namelen field

Tim Henigan (1):
      difftool: only copy back files modified during directory diff

Torsten Bögershausen (1):
      git on Mac OS and precomposed unicode

Trần Ngọc Quân (1):
      l10n: Update translation for Vietnamese

Vincent van Ravesteijn (1):
      help: use HTML as the default help format on Windows

Štěpán Němec (1):
      doc: A few minor copy edits.


Version v1.7.11.7; changes since v1.7.11.6:
-------------------------------------------

David Aguilar (2):
      gitk: Teach "Reread references" to reload tags
      gitk: Rename 'tagcontents' to 'cached_tagcontent'

Felipe Contreras (1):
      gitk: Avoid Meta1-F5

Jeff King (9):
      t5550: put auth-required repo in auth/dumb
      t5550: factor out http auth setup
      t/lib-httpd: only route auth/dumb to dumb repos
      t/lib-httpd: recognize */smart/* repos as smart-http
      t: test basic smart-http authentication
      t: test http access to "half-auth" repositories
      http: factor out http error code handling
      http: prompt for credentials on failed POST
      log: fix --quiet synonym for -s

Junio C Hamano (8):
      specifying ranges: we did not mean to make ".." an empty set
      apply: compute patch->def_name correctly under -p0
      doc: "git checkout -b/-B/--orphan" always takes a branch name
      split_ident_line(): make best effort when parsing author/committer line
      Document file-glob for "git checkout -- '*.c'"
      gitcli: formatting fix
      gitcli: contrast wildcard given to shell and to git
      Git 1.7.11.7

Kacper Kornet (2):
      t6300: test sort with multiple keys
      for-each-ref: Fix sort with multiple keys

Ramsay Jones (1):
      test-regex: Add a test to check for a bug in the regex routines


Version v1.7.11.6; changes since v1.7.11.5:
-------------------------------------------

Adam Butcher (1):
      Fix '\ No newline...' annotation in rewrite diffs

Ben Walton (1):
      Enable HAVE_DEV_TTY for Solaris

Brandon Casey (1):
      t/t5400: demonstrate breakage caused by informational message from prune

Eric S. Raymond (3):
      contrib/ciabot: Get ciabot configuration from git variables
      Improved documentation for the ciabot scripts.
      Make the ciabot scripts completely self-configuring in the normal case.

Heiko Voigt (2):
      Let submodule command exit with error status if path does not exist
      Documentation/CodingGuidelines: spell out more shell guidelines

Jay Soffian (1):
      gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO

Jeff King (6):
      commit: check committer identity more strictly
      diff: do not use null sha1 as a sentinel value
      do not write null sha1s to on-disk index
      fsck: detect null sha1 in tree entries
      terminal: seek when switching between reading and writing
      docs: monospace listings in docbook output

Junio C Hamano (13):
      config: "git config baa" should exit with status 1
      t7406: fix misleading "rev-parse --max-count=1 HEAD"
      sane_execvp(): ignore non-directory on $PATH
      Documentation: do not mention .git/refs/* directories
      receive-pack: do not leak output from auto-gc to standard output
      sh-setup: protect from exported IFS
      rev-list docs: clarify --topo-order description
      gitcli: describe abbreviation of long options
      git-config doc: unconfuse an example
      mergetool: style fixes
      Prepare for 1.7.11.6
      Almost 1.7.11.6
      Git 1.7.11.6

Luka Perkov (1):
      builtin.h: remove unused cmd_<foo> declarations

Martin von Zweigbergk (1):
      add tests for 'git rebase --keep-empty'

Matthieu Moy (1):
      setup: clarify error messages for file/revisions ambiguity

Michael Haggerty (1):
      git-config.txt: fix example

Michael J Gruber (1):
      rebase -i: use full onto sha1 in reflog

Michał Kiedrowicz (1):
      tests: Introduce test_seq

Miklos Vajna (1):
      man: git pull -r is a short for --rebase

Nguyễn Thái Ngọc Duy (1):
      read_index_from: remove bogus errno assignments

Paul Gortmaker (1):
      apply: delete unused deflate_origlen from patch struct

Phil Hord (2):
      test: git-stash conflict sets up rerere
      stash: invoke rerere in case of conflict

Stefan Zager (1):
      Make 'git submodule update --force' always check out submodules.

Thomas Rast (3):
      send-email: improve RFC2047 quote parsing
      diff_setup_done(): return void
      merge-recursive: eliminate flush_buffer() in favor of write_in_full()


Version v1.7.11.5; changes since v1.7.11.4:
-------------------------------------------

Heiko Voigt (1):
      link_alt_odb_entry: fix read over array bounds reported by valgrind

Jeff King (1):
      checkout: don't confuse ref and object flags

Jonathan Nieder (4):
      block-sha1: avoid pointer conversion that violates alignment constraints
      block-sha1: put expanded macro parameters in parentheses
      Makefile: fix location of listing produced by "make subdir/foo.s"
      Makefile: BLK_SHA1 does not require fast htonl() and unaligned loads

Junio C Hamano (4):
      mergetool: support --tool-help option like difftool does
      Enumerate revision range specifiers in the documentation
      Prepare for 1.7.11.5
      Git 1.7.11.5

Lawrence Mitchell (2):
      git-blame.el: Use with-current-buffer where appropriate
      git-blame.el: Do not use bare 0 to mean (point-min)

Max Horn (1):
      Make <refname> documentation more consistent.

Michael Schubert (1):
      Documentation/git-daemon: add missing word

Ramkumar Ramachandra (1):
      commit: document a couple of options

Ramsay Jones (1):
      t7810-*.sh: Remove redundant test

René Scharfe (1):
      git: Wrong parsing of ssh urls with IPv6 literals ignores port

Rüdiger Sonderfeld (2):
      git-blame.el: use mapc instead of mapcar
      git-blame.el: Do not use goto-line in lisp code

Štěpán Němec (1):
      doc: A few minor copy edits.


Version v1.7.11.4; changes since v1.7.11.3:
-------------------------------------------

Jeff King (3):
      diff: test precedence of external diff drivers
      advice: pass varargs to strbuf_vaddf, not strbuf_addf
      commit: document the temporary commit message file

Jens Lehmann (1):
      submodules: don't stumble over symbolic links when cloning recursively

Junio C Hamano (7):
      filter-branch: do not forget the '@' prefix to force git-timestamp
      date.c: Fix off by one error in object-header date parsing
      t7003: add test to filter a branch with a commit at epoch
      commit-tree: resurrect command line parsing updates
      Revert "git-commit-tree(1): update synopsis"
      diff: correctly disable external_diff with --no-ext-diff
      Git 1.7.11.4

Paul Gortmaker (1):
      am: indicate where a failed patch is to be found


Version v1.7.11.3; changes since v1.7.11.2:
-------------------------------------------

Alex Riesen (1):
      Restore umasks influence on the permissions of work tree created by clone

Chris Webb (2):
      git-checkout: disallow --detach on unborn branch
      Allow edit of empty message with commit --amend

Jay Soffian (1):
      fast-export: quote paths with spaces

Jeff King (3):
      push: don't guess at qualifying remote refs on deletion
      add: create ADD_EDIT.patch with mode 0666
      commit: fix "--amend --only" with no pathspec

Junio C Hamano (10):
      show: fix "range implies walking"
      t/test-lib.sh: export PERL_PATH for use in scripts
      tests: enclose $PERL_PATH in double quotes
      t/README: add a bit more Don'ts
      diff-index.c: do not pretend paths are pathspecs
      diff-index.c: unify handling of command line paths
      diff-index.c: "git diff" has no need to read blob from the standard input
      rerere: make rr-cache fanout directory honor umask
      cache_name_compare(): do not truncate while comparing paths
      Git 1.7.11.3

Martin von Zweigbergk (1):
      add test case for rebase of empty commit

Thomas Rast (1):
      Demonstrate git-show is broken with ranges

Vincent van Ravesteijn (1):
      t: Replace 'perl' by $PERL_PATH


Version v1.7.11.2; changes since v1.7.11.1:
-------------------------------------------

Carlos Martín Nieto (2):
      Documentation: --no-walk is no-op if range is specified
      git-cherry-pick.txt: clarify the use of revision range notation

Heiko Voigt (1):
      update-index: allow overwriting existing submodule index entries

Jeff King (3):
      fix pager.diff with diff --no-index
      do not run pager with diff --no-index --quiet
      diff: handle relative paths in no-index

Junio C Hamano (15):
      request-pull: really favor a matching tag
      ls-files -i: pay attention to exclusion of leading paths
      ls-files -i: micro-optimize path_excluded()
      tweak "bundle verify" of a complete history
      path_excluded(): update API to less cache-entry centric
      builtin/add.c: use path_excluded()
      unpack-trees.c: use path_excluded() in check_ok_to_remove()
      dir.c: make excluded() file scope static
      revision: "simplify" options imply topo-order sort
      revision: note the lack of free() in simplify_merges()
      archive: ustar header checksum is computed unsigned
      revision: ignore side parents while running simplify-merges
      index-pack: Disable threading on cygwin
      blame: compute abbreviation width that ensures uniqueness
      Git 1.7.11.2

Leila Muhtasib (1):
      Documentation: Fix misspellings

Matthieu Moy (2):
      sha1_name: do not trigger detailed diagnosis for file arguments
      verify_filename(): ask the caller to chose the kind of diagnosis

Michał Górny (1):
      git-submodule.sh: fix filename in comment.

Nguyễn Thái Ngọc Duy (1):
      clone: fix ref selection in --single-branch --branch=xxx

Peter Krefting (1):
      Update Swedish translation (1066t0f0u)

Thomas Badie (1):
      git-add--interactive.perl: Remove two unused variables

Tim Henigan (1):
      diff-no-index: exit(1) if 'diff --quiet <repo file> <external file>' finds changes


Version v1.7.11.1; changes since v1.7.11:
-----------------------------------------

Jeff King (1):
      docs: always define git-relative-html-prefix attribute

Junio C Hamano (2):
      git-commit-tree(1): update synopsis
      Git 1.7.11.1

Miklos Vajna (1):
      Documentation: spelling fixes


Version v1.7.11; changes since v1.7.11-rc3:
-------------------------------------------

Alexander Strasser (1):
      diff: Only count lines in show_shortstats

Jonathan Nieder (2):
      perl/Makefile.PL: warn about duplicate module list in perl/Makefile
      perl/Makefile: install Git::SVN::* when NO_PERL_MAKEMAKER=yes, too

Junio C Hamano (2):
      Git 1.7.10.5
      Git 1.7.11

Marco Paolone (1):
      l10n: it.po: translate 212 new messages

Ramsay Jones (1):
      gitweb: Skip 'modification times' tests when no date parser available

SZEDER Gábor (2):
      completion: put main git and gitk completion functions back into git namespace
      completion: remove credential helpers from porcelain commands

Vincent van Ravesteijn (1):
      Do not autosquash in case of an implied interactive rebase


Version v1.7.11-rc3; changes since v1.7.11-rc2:
-----------------------------------------------

Jeff King (1):
      docs: fix cross-directory linkgit references

Jiang Xin (2):
      l10n: Update git.pot (27 new, 1 removed messages)
      l10n: zh_CN.po: translate 27 new messages

Johannes Schindelin (1):
      fast-export: report SHA-1 instead of gibberish when marks exist already

Jonathan Nieder (3):
      git-svn: make Git::SVN::Editor a separate file
      git-svn: make Git::SVN::RA a separate file
      git-svn: use YAML format for mergeinfo cache when possible

Junio C Hamano (2):
      fmt-merge-msg: make attribution into comment lines
      Git 1.7.11-rc3

Matthieu Moy (1):
      api-credential.txt: document that helpers field is filled-in automatically

Ralf Thielow (1):
      l10n: de.po: translate 27 new messages

Trần Ngọc Quân (1):
      l10n: Update  po/vi.po to v1.7.11.rc2.2.gb694fbb


Version v1.7.11-rc2; changes since v1.7.11-rc1:
-----------------------------------------------

Colby Ranger (1):
      Add persistent-https to contrib

Jiang Xin (2):
      l10n: Update git.pot (5 new, 3 removed messages)
      l10n: zh_CN.po: translate 2 new, 3 fuzzy messages

Junio C Hamano (3):
      git-svn: platform auth providers are working only on 1.6.15 or newer
      doc: fix xref link from api docs to manual pages
      Git 1.7.11-rc2

Matthieu Moy (3):
      api-credentials.txt: show the big picture first
      api-credentials.txt: mention credential.helper explicitly
      api-credentials.txt: add "see also" section

Ralf Thielow (4):
      l10n: de.po: translate 265 new messages
      l10n: de.po: translate 41 new messages
      l10n: de.po: translate 2 new, 3 fuzzy messages
      l10n: de.po: add additional newline

Ramkumar Ramachandra (1):
      t3510 (cherry-pick-sequence): add missing '&&'

Trần Ngọc Quân (1):
      l10n: Update translation for Vietnamese


Version v1.7.11-rc1; changes since v1.7.11-rc0:
-----------------------------------------------

Erik Faye-Lund (2):
      rebase: report invalid commit correctly
      Makefile: add missing GIT-VERSION-FILE dependency

Jeff King (30):
      ident: split setup_ident into separate functions
      http-push: do not access git_default_email directly
      fmt-merge-msg: don't use static buffer in record_person
      move identity config parsing to ident.c
      move git_default_* variables to ident.c
      ident: trim trailing newline from /etc/mailname
      format-patch: use default email for generating message ids
      fmt_ident: drop IDENT_WARN_ON_NO_NAME code
      ident: don't write fallback username into git_default_name
      drop length limitations on gecos-derived names and emails
      ident: report passwd errors with a more friendly message
      ident: use full dns names to generate email addresses
      ident: use a dynamic strbuf in fmt_ident
      ident: trim whitespace from default name/email
      format-patch: refactor get_patch_filename
      fetch-pack: sort incoming heads
      fetch-pack: avoid quadratic behavior in remove_duplicates
      add sorting infrastructure for list refs
      fetch-pack: sort the list of incoming refs
      fetch-pack: avoid quadratic loop in filter_refs
      fetch-pack: sort incoming heads list earlier
      ident: reword empty ident error message
      ident: refactor NO_DATE flag in fmt_ident
      ident: let callers omit name with fmt_indent
      format-patch: use GIT_COMMITTER_EMAIL in message ids
      ident: rename IDENT_ERROR_ON_NO_NAME to IDENT_STRICT
      ident: reject bogus email addresses with IDENT_STRICT
      format-patch: do not use bogus email addresses in message ids
      t5701: modernize style
      INSTALL: update asciidoc recommendation

Jens Lehmann (1):
      submodules: print "registered for path" message only once

Jiang Xin (5):
      l10n: Update git.pot (41 new messages)
      l10n: zh.CN.po: update by msgmerge git.pot
      l10n: zh_CN.po: translate 323 new messages
      l10n: Set nplurals of zh_CN.po from 1 to 2
      i18n: apply: split to fix a partial i18n message

Jonathan Nieder (3):
      git-svn: move Git::SVN::Prompt into its own file
      git-svn: rename SVN::Git::* packages to Git::SVN::*
      git-svn: make Git::SVN::Fetcher a separate file

Junio C Hamano (6):
      refs: do not create ref_entry when searching
      cherry-pick: regression fix for empty commits
      Start preparing for 1.7.10.4
      Update draft release notes to 1.7.11
      Git 1.7.10.4
      Git 1.7.11-rc1

Marco Paolone (1):
      l10n: New it.po file with 504 translations

Matthieu Moy (1):
      Reduce cost of deletion in levenstein distance (4 -> 3)

Michael Haggerty (5):
      free_ref_entry(): do not trigger reading of loose refs
      cmd_fetch_pack(): declare dest to be const
      cmd_fetch_pack(): handle non-option arguments outside of the loop
      cmd_fetch_pack(): combine the loop termination conditions
      cmd_fetch_pack(): respect constness of argv parameter

Nguyễn Thái Ngọc Duy (2):
      pack-objects, streaming: turn "xx >= big_file_threshold" to ".. > .."
      pack-objects: refactor write_object() into helper functions

Peter Krefting (1):
      Update Swedish translation (728t0f0u)

René Scharfe (3):
      refs: convert parameter of search_ref_dir() to length-limited string
      refs: convert parameter of create_dir_entry() to length-limited string
      refs: use strings directly in find_containing_dir()

Trần Ngọc Quân (2):
      Init translation for Vietnamese
      First release translation for Vietnamese

Vincent van Ravesteijn (1):
      Do not autosquash in case of an implied interactive rebase

Vitor Antunes (3):
      git-p4: Test changelists touching two branches
      git-p4: Verify detection of "empty" branch creation
      git-p4: Clean up branch test cases


Version v1.7.11-rc0; changes since v1.7.10.5:
---------------------------------------------

Amiel Martin (2):
      fixed order of assertion in tests
      sort assertion to make it more generic

Arlen Cuss (1):
      Fix refspecs in given example for git subtree pull.

Avery Pennarun (72):
      basic options parsing and whatnot.
      'git subtree split' now basically works.
      We now copy the other stuff about a commit (changelog, author, etc).
      Print out the newly created commitid at the end, for use in other scripts.
      Add a new --rejoin option.
      Use information about prior splits to make sure merges work right.
      Added a --onto option, but it's so complicated I can't tell if it works.
      Hmm... can't actually filter rev-list on the subdir name.
      Skip over empty commits.
      Quick test script for generating reasonably complex merge scenarios.
      Prune out some extra merge commits by comparing their parents correctly.
      Even more aggressive commit trimming.
      Okay, that was a little too aggressive.
      Pass the path using the --prefix option instead of on the command line.
      Add a new 'git subtree add' command for adding subtrees from a given rev.
      Add 'git subtree merge' and 'git subtree pull'.
      Handle it successfully if a given parent commit has no parents.
      Change test.sh to test the new add, merge, and pull commands.
      todo list
      Add --annotate option, and create recognizable file content during tests.
      Typo when searching for existing splits.
      Clarify why we can't do 'git rev-list' with a path.
      Add a 'create' helper function in test.sh.
      Add some basic assertions to test.sh.
      test.sh tweak
      Trim some extra merge commits that don't need to go into the split tree.
      Only copy a commit if it has at least one nonidentical parent.
      test.sh: make sure no commit changes more than one file at a time.
      Simplify merges even more aggressively.
      test.sh: oops, never intended to count the raw number of commits.
      debug messages are off by default; use -d to enable.
      Abort if --rejoin fails.
      More to-do items based on feedback
      typo in comment
      New --branch option to split command.
      slightly rearrange help message for split.
      FIXME help for --squash option
      merge_msg() is really more like rejoin_msg().
      Basic "subtree merge --squash" support.
      Don't squash-merge if the old and new commits are the same.
      Fix splitting after using a squash merge.
      Make --squash work with the 'add' command too.
      Add basic git-subtree manpage in asciidoc format.
      man page: add an EXAMPLES section.
      update todo
      Some todo items reported by pmccurdy
      todo
      Docs: when pushing to github, the repo path needs to end in .git
      todo
      todo^
      todo
      todo: idea for a 'git subtree grafts' command
      Improve patch to use git --exec-path: add to PATH instead.
      Fix behaviour if you have a branch named the same as your --prefix
      Add a README that says to email me instead of using github mail.
      If someone provides a --prefix that ends with slash, strip the slash.
      Fix a minor problem in identifying squashes vs. normal splits.
      cmd_pull didn't support --squash correctly.
      Add some tips for how to install.
      Oops, forgot a COPYING file.  It's GPLv2.
      Weird, I forgot to have 'make test' call test.sh.
      Jakub's changes broke the progress message slightly.
      Make tests pass with recent git (1.7.0 and up).
      Improve checking for existence of the --prefix directory.
      Oops.  Apparently I didn't run 'make test' after most recent change.
      Some recent tests accidentally depended on very new versions of git.
      (Hopefully) fix PATH setting for msysgit.
      Another fix for PATH and msysgit.
      Fix typo: an -> a
      Fix a few typos/grammar-o's in the preceding commit.
      It's also okay if an expected tree object is actually a commit.
      Skip commit objects that should be trees, rather than copying them.

Avishay Lavie (1):
      git-svn: support rebase --preserve-merges

Ben Walton (3):
      add installation support to Makefile
      make git version dynamic when building documentation
      Use SHELL_PATH from build system in run_command.c:prepare_shell_cmd

Bryan Larsen (1):
      docs: simplify example 1

Clemens Buchacher (2):
      merge overwrites unstaged changes in renamed file
      t5570: use explicit push refspec

Cole Stanfield (1):
      Fixing eval syntax error.

Dan Sabath (2):
      docs: add simple 'add' case to clarify setup.
      Docs: cleaning up example textual redundancy

David A. Greene (11):
      Move Tests Into Subdirectory
      Rename Test
      Use Test Harness
      Set TEST_DIRECTORY
      Remove unnecessary git-subtree files
      Use project config files
      Use configure settings for git-subtree
      Install git-subtree from contrib
      Add subtree test Makefile
      Use git-subtree test Makefile
      Fix git-subtree install instructions

David Aguilar (1):
      t7800: Test difftool passing arguments to diff

Felipe Contreras (8):
      tests: add initial bash completion tests
      completion: simplify __gitcomp_1
      completion: simplify by using $prev
      completion: add missing general options
      completion: simplify __git_complete_revlist_file
      completion: add new __git_complete helper
      completion: rename internal helpers _git and _gitk
      completion: add support for backwards compatibility

Heiko Voigt (3):
      Teach revision walking machinery to walk multiple times sequencially
      Refactor submodule push check to use string list instead of integer
      push: teach --recurse-submodules the on-demand option

Jakub Narębski (1):
      gitweb: Pass esc_html_hl_regions() options to esc_html()

Jakub Suder (9):
      added -p alias for --prefix
      added -m/--message option for setting merge commit message
      allow using --branch with existing branches if it makes sense
      fix for subtree split not finding proper base for new commits
      changed alias for --prefix from -p to -P
      fixed bug in commit message for split
      added tests for recent changes
      added temporary test dirs to gitignore
      improved rev_is_descendant_of_branch() function

Jared Hance (1):
      apply: do not leak patches and fragments

Jeff King (4):
      checkout: suppress tracking message with "-q"
      teach "git branch" a --quiet option
      doc/config: fix inline literals
      status: refactor colopts handling

Jesse Greenwald (2):
      Split cmd now processes commits in topo order.
      Added check to order of processed commits.

Jiang Xin (4):
      l10n: Update git.pot (33 new, 24 deleted messages)
      l10n: Update Simplified Chinese translation
      l10n: Update git.pot (275 new, 15 removed messages)
      l10n: Update git.pot (8 new, 4 removed messages)

Johannes Berg (1):
      am: support --include option

Johannes Sixt (3):
      Do not use SHELL_PATH from build system in prepare_shell_cmd on Windows
      t4006: Windows do not have /dev/zero
      Fix t3411.3 to actually rebase something

John Yani (1):
      docs: Description, synopsys, options and examples changes.

Jon Seymour (2):
      git-svn: clarify the referent of dcommit's optional argument
      rev-parse doc: --git-dir does not always show a relative path

Jonathan Nieder (15):
      test: use test_i18ncmp when checking --stat output
      test: use numstat instead of diffstat in funny-names test
      test: modernize funny-names test style
      test: test cherry-pick functionality and output separately
      test: use --numstat instead of --stat in "git stash show" tests
      test: use numstat instead of diffstat in binary-diff test
      diffstat summary line varies by locale: miscellany
      var doc: default editor and pager are configurable at build time
      var doc: advertise current DEFAULT_PAGER and DEFAULT_EDITOR settings
      test: do not rely on US English tracking-info messages
      test: use test_i18ncmp for "Patch format detection failed" message
      test: am of empty patch should not succeed
      fast-import doc: cat-blob and ls responses need to be consumed quickly
      completion: avoid trailing space for --exec-path
      i18n: mark relative dates for translation

Junio C Hamano (45):
      streaming: make streaming-write-entry to be more reusable
      fmt-merge-msg: show those involved in a merged series
      apply: rename free_patch() to free_patch_list()
      apply: free patch->{def,old,new}_name fields
      apply: release memory for fn_table
      apply: free patch->result
      am -3: list the paths that needed 3-way fallback
      apply: free unused fragments for submodule patch
      varint: make it available outside the context of pack
      cache.h: hide on-disk index details
      read-cache.c: allow unaligned mapping of the index file
      read-cache.c: make create_from_disk() report number of bytes it consumed
      read-cache.c: report the header version we do not understand
      read-cache.c: move code to copy ondisk to incore cache to a helper function
      read-cache.c: move code to copy incore to ondisk cache to a helper function
      read-cache.c: read prefix-compressed names in index on-disk version v4
      read-cache.c: write prefix-compressed names in the index
      update-index: upgrade/downgrade on-disk index version
      Kick off post 1.7.10 cycle
      apply: drop unused macro
      apply: tighten constness of line buffer
      apply: document buffer ownership rules across functions
      RelNotes: the first batch of topics graduated to 'master'
      RelNotes: the second batch of topics graduated to 'master'
      mergesort: rename it to llist_mergesort()
      RelNotes: the third batch
      RelNotes: the fourth batch of topics graduated to 'master'
      The fifth batch of topics graduated to 'master'
      push.default doc: explain simple after upstream
      Update draft release notes to 1.7.11
      The sixth batch of topics graduated to 'master'
      unpack-trees: preserve the index file version of original
      index-v4: document the entry format
      The seventh batch of topics graduated to 'master'
      git-svn: introduce SVN version comparison function
      The eighth batch of topics graduated to 'master'
      refs: fix find_containing_dir() regression
      Makefile: NO_INSTALL_HARDLINKS
      The ninth batch of topics graduated to 'master'
      The tenth batch of topics
      Update draft release notes to 1.7.11 (11th batch)
      Update draft release notes for 12th batch
      git-sh-setup: define workaround wrappers before they are used
      Update draft release notes to 1.7.11
      Git 1.7.11-rc0

Kacper Kornet (3):
      gitweb: Don't set owner if got empty value from projects.list
      gitweb: Option to omit column with time of the last change
      gitweb: Option to not display information about owner

Luke Diamand (10):
      git p4: Fixing script editor checks
      git p4: import/export of labels to/from p4
      git p4: fix-up "import/export of labels to/from p4"
      git p4: Squash P4EDITOR in test harness
      git p4: Ignore P4EDITOR if it is empty
      git p4: move verbose to base class
      git p4: fix unit tests
      git p4: add test for tag import/export enabled via config
      git p4: fix bug when verbose enabled with tag export
      git p4: fix bug when enabling tag import/export via config variables

Marco Sousa (1):
      l10n: pt_PT.po translate new messages

Matthieu Moy (5):
      Documentation: explain push.default option a bit more
      Undocument deprecated alias 'push.default=tracking'
      t5528-push-default.sh: add helper functions
      push: introduce new push.default mode "simple"
      push: document the future default change for push.default (matching -> simple)

Matthijs Kooijman (1):
      git-svn: use platform specific auth providers

Michael Haggerty (32):
      refs.c: reorder definitions more logically
      refs: manage current_ref within do_one_ref()
      do_for_each_ref_in_array(): new function
      do_for_each_ref_in_arrays(): new function
      repack_without_ref(): reimplement using do_for_each_ref_in_array()
      names_conflict(): simplify implementation
      free_ref_entry(): new function
      check_refname_component(): return 0 for zero-length components
      struct ref_entry: nest the value part in a union
      refs.c: rename ref_array -> ref_dir
      sort_ref_dir(): simplify logic
      refs: store references hierarchically
      do_for_each_ref(): only iterate over the subtree that was requested
      get_ref_dir(): return early if directory cannot be read
      get_ref_dir(): use a strbuf to hold refname
      get_ref_dir(): rename "base" parameter to "dirname"
      get_ref_dir(): require that the dirname argument ends in '/'
      refs.c: extract function search_for_subdir()
      get_ref_dir(): take the containing directory as argument
      do_for_each_reflog(): return early on error
      do_for_each_reflog(): use a strbuf to hold logfile name
      bisect: copy filename string obtained from git_path()
      find_containing_dir(): use strbuf in implementation of this function
      refs: wrap top-level ref_dirs in ref_entries
      read_loose_refs(): rename function from get_ref_dir()
      get_ref_dir(): add function for getting a ref_dir from a ref_entry
      search_for_subdir(): return (ref_dir *) instead of (ref_entry *)
      struct ref_dir: store a reference to the enclosing ref_cache
      read_loose_refs(): eliminate ref_cache argument
      refs: read loose references lazily
      t/Makefile: retain cache t/.prove across prove runs
      Avoid sorting if references are added to ref_cache in order

Michael Schubert (1):
      remote: update builtin usage

Michał Kiedrowicz (7):
      gitweb: Use descriptive names in esc_html_hl_regions()
      gitweb: esc_html_hl_regions(): Don't create empty <span> elements
      gitweb: Extract print_sidebyside_diff_lines()
      gitweb: Use print_diff_chunk() for both side-by-side and inline diffs
      gitweb: Push formatting diff lines to print_diff_chunk()
      gitweb: Highlight interesting parts of diff
      gitweb: Refinement highlightning in combined diffs

Neil Horman (5):
      git-cherry-pick: add allow-empty option
      git-cherry-pick: Add keep-redundant-commits option
      git-cherry-pick: Add test to validate new options
      git-rebase: add keep_empty flag
      git cherry-pick: do not dereference a potential NULL pointer

Nguyễn Thái Ngọc Duy (37):
      Add more large blob test cases
      cat-file: use streaming API to print blobs
      parse_object: avoid putting whole blob in core
      show: use streaming API for showing blobs
      fsck: use streaming API for writing lost-found blobs
      update-server-info: respect core.bigfilethreshold
      Makefile: feed all header files to xgettext
      strbuf: convenience format functions with \n automatically appended
      i18n: help: mark strings for translation
      i18n: make warn_dangling_symref() automatically append \n
      i18n: remote: mark strings for translation
      i18n: apply: mark strings for translation
      i18n: apply: update say_patch_name to give translators complete sentence
      i18n: index-pack: mark strings for translation
      i18n: bundle: mark strings for translation
      help: replace underlining "help -a" headers using hyphens with a blank line
      Add column layout skeleton and git-column
      Stop starting pager recursively
      column: add columnar layout
      column: add dense layout support
      help: reuse print_columns() for help -a
      branch: add --column
      status: add --column
      column: support piping stdout to external git-column process
      tag: add --column
      archive-tar: turn write_tar_entry into blob-writing only
      archive-tar: unindent write_tar_entry by one level
      archive: delegate blob reading to backend
      archive-tar: stream large blobs to tar file
      branch: remove lego in i18n tracking info strings
      Makefile: keep many variable list sorted
      index-pack: restructure pack processing into three main functions
      index-pack: support multithreaded delta resolving
      index-pack: disable threading if NO_PREAD is defined
      apply: remove lego in i18n string in gitdiff_verify_name
      i18n: parseopt: lookup help and argument translations when showing usage
      i18n: apply: mark parseopt strings for translation

Pelle Wessman (3):
      Check that the type of the tree really is a tree and not a commit as it seems to sometimes become when eg. a submodule has existed in the same position previously.
      Use 'git merge -Xsubtree' when git version >= 1.7.0.
      Fixed regression with splitting out new subtree

Pete Wyckoff (9):
      git-p4: move to toplevel
      git p4: update name in script
      git p4: use "git p4" directly in tests
      remove superfluous newlines in error messages
      remove blank filename in error message
      git p4: bring back files in deleted client directory
      git p4: test submit
      git p4: fix writable file after rename or copy
      git p4: submit files with wildcards

Ralf Thielow (2):
      l10n: Update German translation
      remote: fix typo

Ramsay Jones (5):
      compat/win32/pthread.h: Add an pthread_key_delete() implementation
      compat/mingw.h: Set S_ISUID to prevent a fast-import test failure
      git-submodule.sh: Don't use $path variable in eval_gettext string
      git-sh-setup.sh: Add an pwd() function for MinGW
      builtin/blame.c: Fix a "Using plain integer as NULL pointer" warning

René Scharfe (26):
      add mergesort() for linked lists
      commit: use mergesort() in commit_list_sort_by_date()
      revision: insert unsorted, then sort in prepare_revision_walk()
      sequencer: export commit_list_append()
      revision: append to list instead of insert and reverse
      commit: remove commit_list_reverse()
      streaming: void pointer instead of char pointer
      archive-zip: remove uncompressed_size
      archive-zip: factor out helpers for writing sizes and CRC
      archive-zip: streaming for stored files
      archive-zip: streaming for deflated files
      t5000: rationalize unzip tests
      dir: convert to strbuf
      xdiff: add hunk_func()
      blame: use hunk_func(), part 1
      blame: use hunk_func(), part 2
      blame: factor out helper for calling xdi_diff()
      xdiff: remove emit_func() and xdi_diff_hunks()
      xdiff: remove unused functions
      dir: respect string length argument of read_directory_recursive()
      dir: simplify fill_directory()
      archive: simplify refname handling
      archive-tar: keep const in checksum calculation
      xdiff: avoid compiler warnings with XDL_FAST_HASH on 32-bit machines
      xdiff: avoid more compiler warnings with XDL_FAST_HASH on 32-bit machines
      xdiff: import new 32-bit version of count_masked_bytes()

Roman Kagan (3):
      git-svn: use POSIX::sigprocmask to block signals
      git-svn: ignore SIGPIPE
      git-svn: drop redundant blocking of SIGPIPE

SZEDER Gábor (2):
      tests: add tests for the __gitcomp() completion helper function
      completion: fix completion after 'git --option <TAB>'

Sebastian Pipping (1):
      gitweb: Fix unintended "--no-merges" for regular Atom feed

Stefano Lattarini (3):
      configure: move definitions of private m4 macros before AC_INIT invocation
      configure: avoid some code repetitions thanks to m4_{push,pop}def
      configure: be more idiomatic

Thomas Rast (2):
      xdiff: load full words in the inner loop of xdl_hash_record
      xdiff: choose XDL_FAST_HASH code on sizeof(long) instead of __WORDSIZE

Tim Henigan (8):
      difftool: parse options using Getopt::Long
      difftool: add '--no-gui' option
      difftool: exit(0) when usage is printed
      difftool: remove explicit change of PATH
      difftool: stop appending '.exe' to git
      difftool: eliminate setup_environment function
      difftool: teach difftool to handle directory diffs
      difftool: print list of valid tools with '--tool-help'

W. Trevor King (3):
      gitweb: add `status` headers to git_feed() responses.
      gitweb: refactor If-Modified-Since handling
      gitweb: add If-Modified-Since handling to git_snapshot().

Wayne Walter (1):
      Added new 'push' command and 2-parameter form of 'add'.

Win Treese (2):
      git-subtree.txt: add another example.
      Make sure that <prefix> exists when splitting.

Zbigniew Jędrzejewski-Szmek (13):
      t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER
      t0303: resurrect commit message as test documentation
      t1507: add tests to document @{upstream} behaviour
      Provide branch name in error message when using @{u}
      Provide better message for barnhc_wiht_tpyo@{u}
      Be more specific if upstream branch is not tracked
      i18n: mark @{upstream} error messages for translation
      t9002: work around shells that are unable to set COLUMNS to 1
      diff --stat: use less columns for change counts
      test: modernize style of t4006
      tests: check --[short]stat output after chmod
      diff --stat: report mode-only changes for binary files like text files
      diff --stat: do not run diff on indentical files

kTln2 (1):
      Add explicit path of git installation by 'git --exec-path'.

Ævar Arnfjörð Bjarmason (3):
      git-branch: remove lego in i18n messages
      git-commit: remove lego in i18n messages
      git-commit: remove lego in i18n messages


Version v1.7.10.5; changes since v1.7.10.4:
-------------------------------------------

Johannes Schindelin (1):
      fast-export: report SHA-1 instead of gibberish when marks exist already

Junio C Hamano (1):
      Git 1.7.10.5

Vincent van Ravesteijn (1):
      Do not autosquash in case of an implied interactive rebase


Version v1.7.10.4; changes since v1.7.10.3:
-------------------------------------------

Avery Pennarun (1):
      checkout: no progress messages if !isatty(2).

Erik Faye-Lund (2):
      rebase: report invalid commit correctly
      Makefile: add missing GIT-VERSION-FILE dependency

Jeff King (3):
      fix off-by-one error in split_ident_line
      pretty: avoid buffer overflow in format_person_part
      avoid segfault when reading header of malformed commits

Junio C Hamano (2):
      Start preparing for 1.7.10.4
      Git 1.7.10.4

Peter Krefting (1):
      Update Swedish translation (728t0f0u)

René Scharfe (4):
      grep: factor out create_grep_pat()
      grep: factor out do_append_grep_pat()
      grep: support newline separated pattern list
      grep: stop leaking line strings with -f


Version v1.7.10.3; changes since v1.7.10.2:
-------------------------------------------

Bobby Powers (2):
      diff --no-index: reset temporary buffer lengths on directory iteration
      diff --no-index: don't leak buffers in queue_diff

Carlos Martín Nieto (1):
      pack-protocol: fix first-want separator in the examples

Erik Faye-Lund (2):
      clone: fix progress-regression
      checkout: do not corrupt HEAD on empty repo

Heiko Voigt (2):
      link to gitmodules page at the beginning of git-submodule documentation
      teach add_submodule_odb() to look for alternates

Jan Krüger (1):
      log-tree: use custom line terminator in line termination mode

Jeff King (10):
      docs: stop using asciidoc no-inline-literal
      t1411: add more selector index/date tests
      log: respect date_mode_explicit with --format:%gd
      reflog-walk: clean up "flag" field of commit_reflog struct
      reflog-walk: always make HEAD@{0} show indexed selectors
      commit: refactor option parsing
      status: refactor null_termination option
      status: fix null termination with "-b"
      status: respect "-b" for porcelain format
      osxkeychain: pull make config from top-level directory

Jens Lehmann (1):
      Consistently use "superproject" instead of "supermodule"

Jiang Xin (4):
      l10n: Update git.pot (1 new messages)
      l10n: zh_CN.po: translate 1 new message
      l10n: Update git.pot (3 new, 2 removed messages)
      l10n: zh_CN.po: translate 3 new messages

Johannes Sixt (3):
      t2020-checkout-detach: check for the number of orphaned commits
      checkout (detached): truncate list of orphaned commits at the new HEAD
      t3404: begin "exchange commits with -p" test with correct preconditions

Jonathan Nieder (1):
      config doc: remove confusion about relative GIT_DIR from FILES section

Junio C Hamano (5):
      log-tree: the previous one is still not quite right
      reflog-walk: tell explicit --date=default from not having --date at all
      Start preparing for 1.7.10.3
      Update draft release notes to 1.7.10.3
      Git 1.7.10.3

Linus Torvalds (1):
      fmt-merge-message: add empty line between tag and signature verification

Ralf Thielow (7):
      l10n: add new members to German translation team
      l10n: de.po: translate "track" as "beobachten"
      l10n: de.po: translate "remote" as "extern"
      l10n: de.po: collection of improvements
      l10n: de.po: unify translation of "ahead" and "behind"
      l10n: de.po: translate one new message
      l10n: de.po: translate 3 new messages

Thomas Rast (4):
      l10n: de.po: translate "bare" as "bloß"
      l10n: de.po: hopefully uncontroversial fixes
      l10n: de.po: translate "bad" as "ungültig" ("invalid")
      l10n: de.po: collection of suggestions


Version v1.7.10.2; changes since v1.7.10.1:
-------------------------------------------

Angus Hammond (1):
      grep.c: remove redundant line of code

Ben Walton (1):
      Avoid bug in Solaris xpg4/sed as used in submodule

Christian Couder (1):
      revert: add missing va_end

Christopher Tiwald (2):
      push: Provide situational hints for non-fast-forward errors
      Fix httpd tests that broke when non-ff push advice changed

Clemens Buchacher (3):
      http auth fails with multiple curl handles
      properly keep track of current working directory
      cherry-pick: do not expect file arguments

Florian Achleitner (1):
      Documentation/git-config: describe and clarify "--local <file>" option

Heiko Voigt (1):
      document submdule.$name.update=none option for gitmodules

Jeff King (15):
      clean up struct ref's nonfastforward field
      http-backend: respect existing GIT_COMMITTER_* variables
      fix http auth with multiple curl handles
      gc: do not explode objects which will be immediately pruned
      http: clean up leak in init_curl_http_auth
      http: use newer curl options for setting credentials
      argv-array: refactor empty_argv initialization
      argv-array: add a new "pushl" method
      gc: use argv-array for sub-commands
      config: reject bogus section names for --rename-section
      config: expand tildes in include.path variable
      send-pack: show progress when isatty(2)
      teach send-pack about --[no-]progress
      t5541: test more combinations of --progress
      t/gitweb-lib: use $PERL_PATH to run gitweb

Jim Meyering (1):
      diff: avoid stack-buffer-read-overrun for very long name

Johannes Sixt (2):
      t9300-fast-import: avoid 'exit' in test_expect_success snippets
      t5570: fix forwarding of git-daemon messages via cat

Junio C Hamano (13):
      xdiff: remove XDL_PATCH_* macros
      xdiff: PATIENCE/HISTOGRAM are not independent option bits
      rebase -i: remind that the lines are top-to-bottom
      builtin/merge.c: remove "remoteheads" global variable
      builtin/merge.c: collect other parents early
      builtin/merge.c: reduce parents early
      fmt-merge-msg: discard needless merge parents
      t9400: fix gnuism in grep
      diff --no-index: use strbuf for temporary pathnames
      contrib/rerere-train: use installed git-sh-setup
      Start preparing for 1.7.10.2
      Update draft release notes to 1.7.10.2
      Git 1.7.10.2

Lucian Poston (5):
      Add output_prefix_length to diff_options
      Adjust stat width calculations to take --graph output into account
      t4052: Adjust --graph --stat output for prefixes
      t4052: Test diff-stat output with minimum columns
      Prevent graph_width of stat width from falling below min

Marc Branchaud (2):
      fetch: Give remote_ref to update_local_ref() as well
      fetch: describe new refs based on where it came from

Michał Kiedrowicz (1):
      merge tests: octopus with redundant parents

Pete Wyckoff (2):
      git-remote-testgit: fix race when spawning fast-import
      git p4 doc: fix formatting

Ralf Thielow (1):
      sequencer: remove additional blank line

René Scharfe (2):
      unpack-trees: don't perform any index operation if we're not merging
      unpack-trees: plug minor memory leak

Ross Lagerwall (2):
      rev-parse --show-prefix: add in trailing newline
      stash: use eval_gettextln correctly

Stefano Lattarini (1):
      tests: modernise style: more uses of test_line_count

Zbigniew Jędrzejewski-Szmek (4):
      t4052: test --stat output with --graph
      test-lib: skip test with COLUMNS=1 under mksh
      t4052: work around shells unable to set COLUMNS to 1
      Consistently use perl from /usr/bin/ for scripts


Version v1.7.10.1; changes since v1.7.10:
-----------------------------------------

Adam Monsen (1):
      git-commit.txt: clarify -t requires editing message

Byrial Jensen (2):
      l10n: New da.po file with 0 translations
      l10n: Add Danish team (da) to list of teams

Ivan Todoroski (4):
      fetch-pack: new --stdin option to read refs from stdin
      remote-curl: send the refs to fetch-pack on stdin
      fetch-pack: test cases for the new --stdin option
      remote-curl: main test case for the OS command line overflow

Jeff King (6):
      drop casts from users EMPTY_TREE_SHA1_BIN
      make is_empty_blob_sha1 available everywhere
      teach diffcore-rename to optionally ignore empty content
      merge-recursive: don't detect renames of empty files
      add--interactive: ignore unmerged entries in patch mode
      run-command: treat inaccessible directories as ENOENT

Jens Lehmann (1):
      submodules: recursive fetch also checks new tags for submodule commits

Jiang Xin (2):
      l10n: Update git.pot (2 new messages)
      l10n: Update Simplified Chinese translation

Johan Herland (3):
      t3310: illustrate failure to "notes merge --commit" inside $GIT_DIR/
      notes-merge: use opendir/readdir instead of using read_directory()
      notes-merge: Don't remove .git/NOTES_MERGE_WORKTREE; it may be the user's cwd

Johannes Sixt (1):
      t4034: diff.*.wordregex should not be "sticky" in --word-diff

John Keeping (1):
      rebase -i continue: don't skip commits that only change submodules

Jonathan Nieder (1):
      bundle: remove stray single-quote from error message

Junio C Hamano (16):
      ident.c: add split_ident_line() to parse formatted ident line
      t7503: does pre-commit-hook learn authorship?
      commit: pass author/committer info to hooks
      remove_dir_recursively(): Add flag for skipping removal of toplevel dir
      clean: preserve nested git worktree in subdirectories
      t7501: test the right kind of breakage
      commit: do not trigger bogus "has templated message edited" check
      commit: rephrase the error when user did not touch templated log message
      Documentation/git-commit: rephrase the "initial-ness" of templates
      push: error out when the "upstream" semantics does not make sense
      blame: accept --need-minimal
      Git 1.7.7.7
      Git 1.7.8.6
      Git 1.7.9.7
      Start preparing for 1.7.10.1
      Git 1.7.10.1

Lucian Poston (3):
      log --graph --stat: three-dash separator should come after graph lines
      log --graph: fix break in graph lines
      t4202: add test for "log --graph --stat -p" separator lines

Marco Sousa (1):
      l10n: Updated pt_PT language

Pete Wyckoff (1):
      fast-import: tighten parsing of datarefs

Ralf Thielow (2):
      l10n: Add the German translation team and initialize de.po
      l10n: Initial German translation

Ramsay Jones (1):
      compat/mingw.[ch]: Change return type of exec functions to int

René Scharfe (3):
      combine-diff: fix loop index underflow
      submodule: fix prototype of gitmodules_config
      test-subprocess: fix segfault without arguments

Thomas Rast (2):
      diff: refactor the word-diff setup from builtin_diff_cmd
      diff: tweak a _copy_ of diff_options with word-diff


Version v1.7.10; changes since v1.7.10-rc4:
-------------------------------------------

Felipe Contreras (1):
      spec: add missing build dependency

Junio C Hamano (1):
      Git 1.7.10


Version v1.7.10-rc4; changes since v1.7.10-rc3:
-----------------------------------------------

Heiko Voigt (1):
      string-list: document that string_list_insert() inserts unique strings

Jiang Xin (1):
      l10n: Improve zh_CN translation for Git 1.7.10-rc3

Junio C Hamano (3):
      merge: backport GIT_MERGE_AUTOEDIT support
      Git 1.7.9.6
      Git 1.7.10-rc4

Marco Sousa (1):
      l10n: Inital Portuguese Portugal language (pt_PT)

Pat Thoyts (2):
      gitk: fix tabbed preferences construction when using tcl 8.4
      gitk: fix setting font display with new tabbed dialog layout.

René Scharfe (1):
      config: remove useless assignment

Vincent van Ravesteijn (1):
      l10n: Add the Dutch translation team and initialize nl.po


Version v1.7.10-rc3; changes since v1.7.10-rc2:
-----------------------------------------------

Frédéric Brière (1):
      gitk: Skip over AUTHOR/COMMIT_DATE when searching all fields

Jiang Xin (4):
      l10n: Update git.pot (1 new message)
      l10n: Update zh_CN translation for Git 1.7.10-rc1
      l10n: Review zh_CN translation for Git 1.7.10-rc1
      Add url of Swedish l10n team in TEAMS file

Jim Meyering (3):
      gitk: Make "git describe" output clickable, too
      correct spelling: an URL -> a URL
      correct a few doubled-word nits in comments and documentation

Jonathan Nieder (1):
      gitk: Use symbolic font names "sans" and "monospace" when available

Junio C Hamano (3):
      Git 1.7.9.5
      Update draft release notes to 1.7.10
      Git 1.7.10-rc3

Marcus Karlsson (1):
      gitk: Teach gitk to respect log.showroot

Mark Lodato (1):
      grep doc: add --break / --heading / -W to synopsis

Nelson Benitez Leon (1):
      documentation: fix alphabetic ordered list for git-rebase man page

Pat Thoyts (2):
      gitk: Use a tabbed dialog to edit preferences
      gitk: Fix the display of files when filtered by path

Paul Mackerras (2):
      gitk: Speed up resolution of short SHA1 ids
      gitk: Add menu items for comparing a commit with the marked commit

Peter Krefting (1):
      Update Swedish translation (724t0f0u).

Rodrigo Silva (MestreLion) (1):
      Documentation: improve description of GIT_EDITOR and preference order

Zbigniew Jędrzejewski-Szmek (2):
      gitk: Use "gitk: repo-top-level-dir" as window title
      tests: unset COLUMNS inherited from environment


Version v1.7.10-rc2; changes since v1.7.10-rc1:
-----------------------------------------------

Alex Merry (1):
      contrib/completion: "local var=()" is misinterpreted as func-decl by zsh

D Waitzman (1):
      Documentation/gitweb: trivial English fixes

Jonathan Nieder (2):
      fast-import: leakfix for 'ls' of dirty trees
      fast-import: don't allow 'ls' of path with empty components

Junio C Hamano (4):
      fetch/receive: remove over-pessimistic connectivity check
      Update draft release notes to 1.7.10
      .mailmap: unify various old mail addresses of gitster
      Git 1.7.10-rc2

Stefano Lattarini (1):
      configure: allow user to prevent $PATH "sanitization" on Solaris

Tim Henigan (7):
      Documentation/diff-options: reword description of --submodule option
      contrib/diffall: comment actual reason for 'cdup'
      contrib/diffall: create tmp dirs without mktemp
      contrib/diffall: eliminate use of tar
      contrib/diffall: eliminate duplicate while loops
      contrib/diffall: fix cleanup trap on Windows
      Documentation/difftool: add deltawalker to list of valid diff tools

Ævar Arnfjörð Bjarmason (2):
      Git::I18N: compatibility with perl <5.8.3
      perl/Makefile: install Git::I18N under NO_PERL_MAKEMAKER


Version v1.7.10-rc1; changes since v1.7.10-rc0:
-----------------------------------------------

Alex Zepeda (1):
      verify-tag: Parse GPG configuration options.

Jakub Narębski (1):
      gitweb: Fix fixed string (non-regexp) project search

Jens Lehmann (3):
      submodules: always use a relative path to gitdir
      submodules: always use a relative path from gitdir to work tree
      submodules: refactor computation of relative gitdir path

Jiang Xin (3):
      l10n: Update zh_CN translation for 1.7.9.2
      l10n: Update git.pot (1 new message)
      l10n: Update zh_CN translation for 1.7.10-rc0

Johannes Sixt (1):
      submodules: fix ambiguous absolute paths under Windows

Junio C Hamano (7):
      Update draft release notes to 1.7.10
      t0204: clarify the "observe undefined behaviour" test
      i18n: fix auto detection of gettext scheme for shell scripts
      Git 1.7.9.4
      Update draft release notes to 1.7.10 before -rc1
      am: officially deprecate -b/--binary option
      Git 1.7.10-rc1

Karsten Blees (1):
      fix deletion of .git/objects sub-directories in git-prune/repack

Martin Stenberg (1):
      config: report errors at the EOL with correct line number

Peter Krefting (2):
      po/sv.po: add Swedish translation
      Update Swedish translation (732t0f0u).

Phil Hord (1):
      rerere: Document 'rerere remaining'

Thomas Rast (4):
      perf: load test-lib-functions from the correct directory
      perf: export some important test-lib variables
      p4000: use -3000 when promising -3000
      git-am: error out when seeing -b/--binary

Thynson (7):
      l10n: Improve zh_CN translation for lines insertion and deletion.
      l10n: Improve zh_CN translation for msg about branch deletion deny
      l10n: Improve zh_CN translation for empty cherry-pick msg.
      l10n: Improve zh_CN translation for msg that make empty commit when amend.
      l10n: Improve commit msg for zh_CN translation
      l10n: Improve zh_CN trans for msg that cannot fast-forward
      l10n: Improve zh_CN translation for msg "not something we can merge"

Vincent van Ravesteijn (3):
      Documentation/git-branch: cleanups
      Documentation/git-branch: fix a typo
      Documentation/git-branch: add default for --contains


Version v1.7.10-rc0; changes since v1.7.9.7:
--------------------------------------------

Adrian Weimann (1):
      completion: --edit and --no-edit for git-merge

Alex Riesen (1):
      add a Makefile switch to avoid gettext translation in shell scripts

Bernhard R. Link (6):
      gitweb: move hard coded .git suffix out of git_get_projects_list
      gitweb: prepare git_get_projects_list for use outside 'forks'.
      gitweb: add project_filter to limit project list to a subdirectory
      gitweb: limit links to alternate forms of project_list to active project_filter
      gitweb: show active project_filter in project_list page header
      gitweb: place links to parent directories in page header

Carlos Martín Nieto (1):
      Make git-{pull,rebase} message without tracking information friendlier

Clemens Buchacher (3):
      git-daemon: add tests
      git-daemon: produce output when ready
      git-daemon tests: wait until daemon is ready

David Barr (9):
      vcs-svn: set up channel to read fast-import cat-blob response
      vcs-svn: quote paths correctly for ls command
      vcs-svn: use mark from previous import for parent commit
      vcs-svn: pass paths through to fast-import
      vcs-svn: drop string_pool
      vcs-svn: drop treap
      vcs-svn: drop obj_pool
      vcs-svn: avoid using ls command twice
      vcs-svn: implement text-delta handling

Dmitry Ivankov (2):
      vcs-svn: do not initialize report_buffer twice
      vcs-svn: reset first_commit_done in fast_export_init

Felipe Contreras (4):
      remote: use a local variable in match_push_refs()
      remote: reorganize check_pattern_match()
      remote: refactor code into alloc_delete_ref()
      push: add '--prune' option

Frédéric Heitzmann (1):
      completion: add --interactive option to git svn dcommit

Jakub Narębski (11):
      gitweb: improve usability of projects search form
      gitweb: Make project search respect project_filter
      gitweb: Harden and improve $project_filter page title
      gitweb: Refactor checking if part of project info need filling
      gitweb: Option for filling only specified info in fill_project_list_info
      gitweb: Faster project search
      gitweb: Introduce esc_html_match_hl and esc_html_hl_regions
      gitweb: Highlight matched part of project name when searching projects
      gitweb: Highlight matched part of project description when searching projects
      gitweb: Highlight matched part of shortened project description
      gitweb: Fix passing parameters to git_project_search_form

Jan Krüger (1):
      symbolic-ref --short: abbreviate the output unambiguously

Jared Hance (1):
      Add threaded versions of functions in symlinks.c.

Jeff King (20):
      parse_object: try internal cache before reading object db
      upload-pack: avoid parsing objects during ref advertisement
      upload-pack: avoid parsing tag destinations
      t0300: use write_script helper
      docs: add a basic description of the config API
      drop odd return value semantics from userdiff_config
      diff-highlight: make perl strict and warnings fatal
      diff-highlight: don't highlight whole lines
      diff-highlight: refactor to prepare for multi-line hunks
      diff-highlight: match multi-line hunks
      diff-highlight: document some non-optimal cases
      docs/api-config: minor clarifications
      t1300: add missing &&-chaining
      config: copy the return value of prefix_filename
      config: teach git_config_set_multivar_in_file a default path
      config: teach git_config_rename_section a file argument
      config: provide a version of git_config with more options
      config: stop using config_exclusive_filename
      config: eliminate config_exclusive_filename
      config: add include directive

Jehan Bing (1):
      Add a setting to require a filter to be successful

Jens Lehmann (1):
      test-lib: add the test_pause convenience function

Jiang Xin (5):
      l10n: initial git.pot for 1.7.10 upcoming release
      l10n: po for zh_CN
      l10n: Update git.pot (12 new messages)
      l10n: update Chinese translation to the new git.po
      Update l10n guide: change the repository URL, etc

Jonathan Nieder (23):
      vcs-svn: use higher mark numbers for blobs
      vcs-svn: save marks for imported commits
      vcs-svn: add a comment before each commit
      vcs-svn: eliminate repo_tree structure
      vcs-svn: handle filenames with dq correctly
      Makefile: list one vcs-svn/xdiff object or header per line
      vcs-svn: learn to maintain a sliding view of a file
      vcs-svn: make buffer_read_binary API more convenient
      vcs-svn: skeleton of an svn delta parser
      vcs-svn: parse svndiff0 window header
      vcs-svn: read the preimage when applying deltas
      vcs-svn: read inline data from deltas
      vcs-svn: read instructions from deltas
      vcs-svn: implement copyfrom_data delta instruction
      vcs-svn: verify that deltas consume all inline data
      vcs-svn: let deltas use data from postimage
      vcs-svn: let deltas use data from preimage
      test-svn-fe: split off "test-svn-fe -d" into a separate function
      vcs-svn: cap number of bytes read from sliding view
      vcs-svn: guard against overflow when computing preimage length
      vcs-svn: avoid hangs from corrupt deltas
      vcs-svn: allow import of > 4GiB files
      vcs-svn: suppress a -Wtype-limits warning

Junio C Hamano (28):
      git-sh-i18n: restructure the logic to compute gettext.sh scheme
      i18n: Make NO_GETTEXT imply fallthrough scheme in shell l10n
      merge: use editor by default in interactive sessions
      push: do not let configured foreign-vcs permanently clobbered
      t9801: do not overuse test_must_fail
      i18n: Do not force USE_GETTEXT_SCHEME=fallthrough on NO_GETTEXT
      vcs-svn/svndiff.c: squelch false "unused" warning from gcc
      Kick off the post 1.7.9 cycle
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      t9100: remove bogus " || test" after each test scriptlet
      merge: do not trust fstat(2) too much when checking interactiveness
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      grep: use static trans-case table
      fsck: --no-dangling omits "dangling object" information
      pickaxe: allow -i to search in patch case-insensitively
      Update l10n guide
      diff --stat: tests for long filenames and big change counts
      Update draft release notes to 1.7.10
      Update draft release notes to 1.7.10
      fsck doc: a minor typofix
      Git 1.7.10-rc0

Linus Torvalds (1):
      "git pull" doesn't know "--edit"

Luke Diamand (6):
      git-p4: handle p4 branches and labels containing shell chars
      git-p4: cope with labels with empty descriptions
      git-p4: importing labels should cope with missing owner
      git-p4: add test for p4 labels
      git-p4: label import fails with multiple labels at the same changelist
      git-p4: add initial support for RCS keywords

Michael Haggerty (11):
      pack_refs(): remove redundant check
      ref_array: keep track of whether references are sorted
      add_packed_ref(): new function in the refs API.
      write_remote_refs(): create packed (rather than extra) refs
      t5700: document a failure of alternates to affect fetch
      clone.c: move more code into the "if (refs)" conditional
      fetch-pack.c: rename some parameters from "path" to "refname"
      fetch-pack.c: inline insert_alternate_refs()
      everything_local(): mark alternate refs as complete
      clone: do not add alternate references to extra_refs
      refs: remove the extra_refs API

Michał Kiedrowicz (2):
      pack-objects: Fix compilation with NO_PTHREDS
      grep -P: add tests for matching ^ and $

Nelson Benitez Leon (1):
      http: support proxies that require authentication

Nguyễn Thái Ngọc Duy (20):
      clone: add --single-branch to fetch only one branch
      Fix incorrect ref namespace check
      Eliminate recursion in setting/clearing marks in commit list
      index-pack: eliminate recursion in find_unresolved_deltas
      index-pack: eliminate unlimited recursion in get_base_data()
      t5601: add missing && cascade
      clone: write detached HEAD in bare repositories
      clone: factor out checkout code
      clone: factor out HEAD update code
      clone: factor out remote ref writing
      clone: delay cloning until after remote HEAD checking
      clone: --branch=<branch> always means refs/heads/<branch>
      clone: refuse to clone if --branch points to bogus ref
      clone: allow --branch to take a tag
      clone: print advice on checking out detached HEAD
      clone: fix up delay cloning conditions
      pack-objects: do not accept "--index-version=version,"
      pack-objects: remove bogus comment
      pack-objects: convert to use parse_options()
      cache-tree: update API to take abitrary flags

Pete Wyckoff (6):
      git-p4: only a single ... wildcard is supported
      git-p4: fix verbose comment typo
      git-p4: clarify comment
      git-p4: adjust test to adhere to stricter useClientSpec
      git-p4: add tests demonstrating spec overlay ambiguities
      git-p4: Change p4 command invocation

Phil Hord (1):
      cherry-pick: No advice to commit if --no-commit

Philip Jägenstedt (2):
      completion: remote set-* <name> and <branch>
      completion: normalize increment/decrement style

Ramkumar Ramachandra (2):
      revert: prepare to move replay_action to header
      sequencer: factor code out of revert builtin

Ramsay Jones (3):
      vcs-svn: rename check_overflow arguments for clarity
      builtin/tag.c: Fix a sparse warning
      ctype.c: Fix a sparse warning

René Scharfe (5):
      xdiff: print post-image for common records instead of pre-image
      test-parse-options: convert to OPT_BOOL()
      parse-options: allow positivation of options starting, with no-
      parse-options: remove PARSE_OPT_NEGHELP
      parse-options: typo check for unknown switches

Riku (1):
      l10n: update zh_CN translation for "Fetching %s"

Russell Myers (1):
      git-p4: the option to specify 'host' is -H, not -h

Stefano Lattarini (1):
      t0000: modernise style

Steven Walter (2):
      git-svn.perl: perform deletions before anything else
      git-svn.perl: fix a false-positive in the "already exists" test

Thomas Rast (6):
      am: learn passing -b to mailinfo
      mailinfo: with -b, keep space after [foo]
      Move the user-facing test library to test-lib-functions.sh
      Introduce a performance testing framework
      Add a performance test for git-grep
      perf: compare diff algorithms

Tim Henigan (2):
      contrib: add git-diffall script
      mergetools: add a plug-in to support DeltaWalker

Tom Grennan (1):
      tag: add --points-at list option

Vitor Antunes (2):
      git-p4: Search for parent commit on branch creation
      git-p4: Add test case for complex branch import

Wei-Yin Chen (陳威尹) (1):
      git-svn: Fix time zone in --localtime

Yichao Yu (1):
      l10n: fast-forward here is ff-only merge, not push

Zbigniew Jędrzejewski-Szmek (11):
      make lineno_width() from blame reusable for others
      send-email: document the --smtp-debug option
      git-p4: missing she-bang line in t9804 confuses prove
      diff --stat: use the full terminal width
      show --stat: use the full terminal width
      log --stat: use the full terminal width
      merge --stat: use the full terminal width
      diff --stat: use a maximum of 5/8 for the filename part
      diff --stat: add a test for output with COLUMNS=40
      diff --stat: enable limiting of the graph part
      diff --stat: add config option to limit graph width

ws3389 (1):
      l10n: leave leading space unchanged for zh_CN.po

Ævar Arnfjörð Bjarmason (2):
      git-svn: remove redundant porcelain option to rev-list
      git-svn: un-break "git svn rebase" when log.abbrevCommit=true


Version v1.7.9.7; changes since v1.7.9.6:
-----------------------------------------

D Waitzman (1):
      Documentation/gitweb: trivial English fixes

Jonathan Nieder (1):
      bundle: remove stray single-quote from error message

Junio C Hamano (4):
      fetch/receive: remove over-pessimistic connectivity check
      Git 1.7.7.7
      Git 1.7.8.6
      Git 1.7.9.7


Version v1.7.9.6; changes since v1.7.9.5:
-----------------------------------------

Heiko Voigt (1):
      string-list: document that string_list_insert() inserts unique strings

Junio C Hamano (2):
      merge: backport GIT_MERGE_AUTOEDIT support
      Git 1.7.9.6


Version v1.7.9.5; changes since v1.7.9.4:
-----------------------------------------

Jakub Narębski (1):
      gitweb: Fix actionless dispatch for non-existent objects

Jonathan Nieder (2):
      fast-import: leakfix for 'ls' of dirty trees
      fast-import: don't allow 'ls' of path with empty components

Junio C Hamano (2):
      i18n of multi-line advice messages
      Git 1.7.9.5

Kirill Smelkov (1):
      t/Makefile: Use $(sort ...) explicitly where needed

Mark Lodato (1):
      grep doc: add --break / --heading / -W to synopsis

Martin Stenberg (1):
      config: report errors at the EOL with correct line number

Nelson Benitez Leon (1):
      documentation: fix alphabetic ordered list for git-rebase man page

Phil Hord (1):
      rerere: Document 'rerere remaining'

Rodrigo Silva (MestreLion) (1):
      Documentation: improve description of GIT_EDITOR and preference order


Version v1.7.9.4; changes since v1.7.9.3:
-----------------------------------------

Jakub Narębski (1):
      gitweb: Fix fixed string (non-regexp) project search

Junio C Hamano (6):
      am -3: allow nonstandard -p<num> option
      test: "am -3" can accept non-standard -p<num>
      t4011: modernise style
      t4011: illustrate "diff-index -p" on stat-dirty paths
      diff -p: squelch "diff --git" header for stat-dirty paths
      Git 1.7.9.4

Thomas Rast (5):
      t5510: refactor bundle->pack conversion
      t5510: ensure we stay in the toplevel test dir
      bundle: keep around names passed to add_pending_object()
      Document the --histogram diff option
      t5704: fix nonportable sed/grep usages


Version v1.7.9.3; changes since v1.7.9.2:
-----------------------------------------

Andrew Wong (1):
      rebase -m: only call "notes copy" when rewritten exists and is non-empty

Carlos Martín Nieto (2):
      branch: don't assume the merge filter ref exists
      Documentation: use {asterisk} in rev-list-options.txt when needed

Clemens Buchacher (1):
      http.proxy: also mention https_proxy and all_proxy

Dmitry V. Levin (1):
      Makefile: add thread-utils.h to LIB_H

Jakub Narębski (2):
      gitweb: Fix "heads" view when there is no current branch
      gitweb: Handle invalid regexp in regexp search

Jeff King (4):
      disconnect from remote helpers more gently
      teach convert_to_git a "dry run" mode
      teach dry-run convert_to_git not to require a src buffer
      do not stream large files to pack when filters are in use

Jehan Bing (1):
      Ignore SIGPIPE when running a filter driver

Jim Meyering (1):
      am: don't infloop for an empty input file

John Szakmeister (1):
      configure: don't use -lintl when there is no gettext support

Jonathan Nieder (1):
      mergetools/meld: Use --help output to detect --output support

Junio C Hamano (9):
      refresh_index: do not show unmerged path that is outside pathspec
      Documentation/merge-options.txt: group "ff" related options together
      Document merge.branchdesc configuration variable
      Git 1.7.8.5
      Document accumulated fixes since 1.7.9.2
      Update draft release notes to 1.7.9.3
      Documentation: do not assume that n > 1 in <rev>~$n
      Update draft release notes to 1.7.9.3 for the last time
      Git 1.7.9.3

Libor Pechacek (1):
      Documentation fixes in git-config

Matthieu Moy (1):
      README: point to Documentation/SubmittingPatches

Michael Haggerty (2):
      post-receive-email: remove unused variable
      post-receive-email: match up $LOGBEGIN..$LOGEND pairs correctly

Michael J Gruber (1):
      t0300: work around bug in dash 0.5.6

Michał Kiedrowicz (1):
      grep -P: Fix matching ^ and $

Nguyễn Thái Ngọc Duy (2):
      rev-list: remove BISECT_SHOW_TRIED flag
      rev-list: fix --verify-objects --quiet becoming --objects

Pete Wyckoff (4):
      git-p4: set useClientSpec variable on initial clone
      git-p4: fix submit regression with clientSpec and subdir clone
      git-p4: remove bash-ism in t9809
      git-p4: remove bash-ism in t9800

Philip Jägenstedt (1):
      remote: fix set-branches usage and documentation

Stefano Lattarini (1):
      tests: fix spurious error when run directly with Solaris /usr/xpg4/bin/sh

Thomas Rast (6):
      merge: add instructions to the commit message when editing
      bundle: put strbuf_readline_fd in strbuf.c with adjustments
      bundle: use a strbuf to scan the log for boundary commits
      strbuf: improve strbuf_get*line documentation
      t5704: match tests to modern style
      fast-import: zero all of 'struct tag' to silence valgrind

Tim Henigan (2):
      CodingGuidelines: Add a note about spaces after redirection
      CodingGuidelines: do not use 'which' in shell scripts

Tom Grennan (1):
      t5512 (ls-remote): modernize style


Version v1.7.9.2; changes since v1.7.9.1:
-----------------------------------------

Christian Hammerl (1):
      completion: Allow dash as the first character for __git_ps1

Clemens Buchacher (4):
      git rev-list: fix invalid typecast
      push/fetch/clone --no-progress suppresses progress output
      t5541: check error message against the real port number used
      do not override receive-pack errors

Felipe Contreras (3):
      completion: work around zsh option propagation bug
      completion: use ls -1 instead of rolling a loop to do that ourselves
      completion: simplify __gitcomp and __gitcomp_nl implementations

Jakub Narębski (2):
      gitweb: Allow UTF-8 encoded CGI query parameters and path_info
      gitweb: Fix 'grep' search for multiple matches in file

Jeff King (12):
      grep: make locking flag global
      grep: move sha1-reading mutex into low-level code
      grep: refactor the concept of "grep source" into an object
      convert git-grep to use grep_source interface
      grep: drop grep_buffer's "name" parameter
      grep: cache userdiff_driver in grep_source
      grep: respect diff attributes for binary-ness
      grep: load file data after checking binary-ness
      grep: pre-load userdiff drivers when threaded
      standardize and improve lookup rules for external local repos
      prompt: clean up strbuf usage
      prompt: fall back to terminal if askpass fails

Jiang Xin (2):
      i18n: git-commit whence_s "merge/cherry-pick" message
      i18n: format_tracking_info "Your branch is behind" message

Johannes Sixt (1):
      Makefile: fix syntax for older make

Junio C Hamano (8):
      mailmap: always return a plain mail address from map_user()
      git checkout -b: allow switching out of an unborn branch
      commit: ignore intent-to-add entries instead of refusing
      diff --stat: show bars of same length for paths with same amount of changes
      Update draft release notes to 1.7.9.2
      Update draft release notes to 1.7.9.2
      Update draft release notes to 1.7.9.2
      Git 1.7.9.2

Matthieu Moy (1):
      fsck: give accurate error message on empty loose object files

Namhyung Kim (2):
      ctype.c only wants git-compat-util.h
      ctype: implement islower/isupper macro

Nguyễn Thái Ngọc Duy (3):
      sha1_file.c: move the core logic of find_pack_entry() into fill_pack_entry()
      find_pack_entry(): do not keep packed_git pointer locally
      Use correct grammar in diffstat summary line

Philip Jägenstedt (2):
      completion: remove stale "to submit patches" documentation
      completion: use tabs for indentation

Ralf Thielow (2):
      completion: --edit-description option for git-branch
      completion: --list option for git-branch

Theodore Ts'o (1):
      Fix build problems related to profile-directed optimization

Zbigniew Jędrzejewski-Szmek (2):
      pager: find out the terminal width before spawning the pager
      man: rearrange git synopsis to fit in 80 lines

Дилян Палаузов (1):
      Makefile: introduce CHARSET_LIB to link with -lcharset


Version v1.7.9.1; changes since v1.7.9:
---------------------------------------

Adrian Weimann (1):
      completion: --edit and --no-edit for git-merge

Albert Yale (1):
      grep: fix -l/-L interaction with decoration lines

Ben Walton (1):
      Drop system includes from inet_pton/inet_ntop compatibility wrappers

Clemens Buchacher (2):
      fix push --quiet: add 'quiet' capability to receive-pack
      dashed externals: kill children on exit

David Aguilar (1):
      mergetool: Provide an empty file when needed

Jakub Narębski (1):
      git.spec: Workaround localized messages not put in any RPM

Jeff King (4):
      run-command: optionally kill children on exit
      imap-send: remove dead code
      tag: fix output of "tag -n" when errors occur
      tag: die when listing missing or corrupt objects

Jens Lehmann (1):
      submodule add: fix breakage when re-adding a deep submodule

Johannes Schindelin (1):
      add -e: do not show difference in a submodule that is merely dirty

Junio C Hamano (15):
      server_supports(): parse feature list more carefully
      Making pathspec limited log play nicer with --first-parent
      request-pull: explicitly ask tags/$name to be pulled
      tests: add write_script helper function
      parse_date(): allow ancient git-timestamp
      parse_date(): '@' prefix forces git-timestamp
      merge: do not create a signed tag merge under --ff-only option
      branch --edit-description: protect against mistyped branch name
      Git 1.7.6.6
      Prepare for 1.7.9.1
      tag: do not show non-tag contents with "-n"
      merge: do not launch an editor on "--no-edit $tag"
      Update draft release notes to 1.7.9.1
      Update draft release notes to 1.7.9.1
      Git 1.7.9.1

Michael J Gruber (1):
      t5541: avoid TAP test miscounting

Michael Palimaka (1):
      Explicitly set X to avoid potential build breakage

Shawn O. Pearce (1):
      remote-curl: Fix push status report when all branches fail

Ævar Arnfjörð Bjarmason (3):
      Makefile: Change the default compiler from "gcc" to "cc"
      Remove Git's support for smoke testing
      t: use sane_unset instead of unset


Version v1.7.9; changes since v1.7.9-rc2:
-----------------------------------------

Felipe Contreras (1):
      git-completion: workaround zsh COMPREPLY bug

Jeff King (1):
      docs: minor grammar fixes for v1.7.9 release notes

Junio C Hamano (2):
      INSTALL: warn about recent Fedora breakage
      Git 1.7.9

Michael Haggerty (1):
      Fix typo in 1.7.9 release notes


Version v1.7.9-rc2; changes since v1.7.9-rc1:
---------------------------------------------

Jakub Narębski (2):
      gitweb: Fix file links in "grep" search
      gitweb: Harden "grep" search against filenames with ':'

Jeff King (3):
      unix-socket: handle long socket pathnames
      credential-cache: report more daemon connection errors
      credential-cache: ignore "connection refused" errors

Jonathan Nieder (1):
      unix-socket: do not let close() or chdir() clobber errno during cleanup

Junio C Hamano (4):
      pulling signed tag: add howto document
      Git 1.7.7.6
      Git 1.7.8.4
      Git 1.7.9-rc2

Michael Haggerty (2):
      git-show-ref: fix escaping in asciidoc source
      git-show-ref doc: typeset regexp in fixed width font

Nguyễn Thái Ngọc Duy (3):
      Document limited recursion pathspec matching with wildcards
      diff-index: enable recursive pathspec matching in unpack_trees
      diff-index: enable recursive pathspec matching in unpack_trees

Thomas Rast (1):
      word-diff: ignore '\ No newline at eof' marker


Version v1.7.9-rc1; changes since v1.7.9-rc0:
---------------------------------------------

Ben Walton (1):
      Use perl instead of sed for t8006-blame-textconv test

Carlos Martín Nieto (1):
      archive: re-allow HEAD:Documentation on a remote invocation

Clemens Buchacher (1):
      credentials: unable to connect to cache daemon

Jeff King (5):
      send-email: multiedit is a boolean config option
      attr: don't confuse prefixes with leading directories
      attr: drop misguided defensive coding
      attr: fix leak in free_attr_elem
      thin-pack: try harder to use preferred base objects as base

Junio C Hamano (11):
      attr.c: make bootstrap_attr_stack() leave early
      attr.c: clarify the logic to pop attr_stack
      Documentation: rerere's rr-cache auto-creation and rerere.enabled
      Prepare for 1.7.6.6
      Prepare for 1.7.7.6
      Prepare for 1.7.8.4
      request-pull: use the real fork point when preparing the message
      Update draft release notes to 1.7.6.6
      Update draft release notes to 1.7.7.6
      Update draft release notes to 1.7.8.4
      Git 1.7.9-rc1

Matthieu Moy (1):
      gitweb: accept trailing "/" in $project_list

Michael Haggerty (3):
      receive-pack: move more work into write_head_info()
      show_ref(): remove unused "flag" and "cb_data" arguments
      write_head_info(): handle "extra refs" locally

Nguyễn Thái Ngọc Duy (1):
      t2203: fix wrong commit command

Sebastian Schuberth (2):
      t9200: On MSYS, do not pass Windows-style paths to CVS
      git-cvsexportcommit: Fix calling Perl's rel2abs() on MSYS

Thomas Rast (1):
      mailinfo documentation: accurately describe non -k case


Version v1.7.9-rc0; changes since v1.7.8.6:
-------------------------------------------

Anders Kaseorg (2):
      gitk: Remove unused $cdate array
      gitk: Remember time zones from author and commit timestamps

Bert Wesarg (14):
      git-gui: fix multi selected file operation
      git-gui: handle config booleans without value
      git-gui: add smart case search mode in searchbar
      git-gui: add regexp search mode to the searchbar
      git-gui: add search history to searchbar
      git-gui: fix unintended line break in message string
      git-gui: use "untracked" for files which are not known to git
      git-gui: new config to control staging of untracked files
      git-gui: fix display of path in browser title
      git-gui: use a tristate to control the case mode in the searchbar
      git-gui: span widgets over the full file output area in the blame view
      git-gui: include the file path in guitools confirmation dialog
      git-gui: make config gui.warndetachedcommit a boolean
      git-gui: don't warn for detached head when rebasing

Dejan Ribič (1):
      git-gui: fix spelling error in sshkey.tcl

Gary Gibbons (5):
      git-p4: ensure submit clientPath exists before chdir
      git-p4: use absolute directory for PWD env var
      git-p4: fix test for unsupported P4 Client Views
      git-p4: sort client views by reverse View number
      git-p4: support single file p4 client view maps

Gustaf Hendeby (1):
      Add built-in diff patterns for MATLAB code

Jakub Narębski (6):
      gitweb: Refactor diff body line classification
      gitweb: Extract formatting of diff chunk header
      gitweb: Give side-by-side diff extra CSS styling
      t9500: Add test for handling incomplete lines in diff by gitweb
      t9500: Add basic sanity tests for side-by-side diff in gitweb
      gitweb: Use href(-replay=>1,...) for formats links in "commitdiff"

Jeff King (28):
      prune: handle --progress/no-progress
      reachable: per-object progress
      upload-archive: use start_command instead of fork
      test-lib: add test_config_global variant
      t5550: fix typo
      introduce credentials API
      credential: add function for parsing url components
      http: use credential API to get passwords
      credential: apply helper config
      credential: add credential.*.username
      credential: make relevance of http path configurable
      docs: end-user documentation for the credential subsystem
      credentials: add "cache" helper
      strbuf: add strbuf_add*_urlencode
      imap-send: avoid buffer overflow
      imap-send: don't check return value of git_getpass
      move git_getpass to its own source file
      refactor git_getpass into generic prompt function
      add generic terminal prompt function
      credentials: add "store" helper
      prompt: use git_terminal_prompt
      t: add test harness for external credential helpers
      credential: use git_prompt instead of git_getpass
      Makefile: linux has /dev/tty
      Makefile: OS X has /dev/tty
      contrib: add credential helper for OS X Keychain
      test-lib: redirect stdin of tests
      pretty: give placeholders to reflog identity

Joey Hess (1):
      write first for-merge ref to FETCH_HEAD first

Johannes Sixt (1):
      Makefile: unix sockets may not available on some platforms

Jonathan Nieder (6):
      gitk: Make vi-style keybindings more vi-like
      test: add missing "&&" after echo command
      test: remove a porcelain test that hard-codes commit names
      t7501 (commit): modernize style
      test: commit --amend should honor --no-edit
      test: errors preparing for a test are not special

Jonathon Mah (1):
      stash: Don't fail if work dir contains file named 'HEAD'

Junio C Hamano (50):
      branch: add read_branch_desc() helper function
      format-patch: use branch description in cover letter
      branch: teach --edit-description option
      request-pull: modernize style
      request-pull: state what commit to expect
      request-pull: use the branch description
      fmt-merge-msg: use branch.$name.description
      write_pack_header(): a helper function
      create_tmp_packfile(): a helper function
      finish_tmp_packfile(): a helper function
      Split GPG interface into its own helper library
      merge: notice local merging of tags and keep it unwrapped
      fetch: allow "git fetch $there v1.0" to fetch a tag
      refs DWIMmery: use the same rule for both "git fetch" and others
      fmt-merge-msg: avoid early returns
      fmt-merge-msg: package options into a structure
      fmt-merge-msg: Add contents of merged tag in the merge message
      merge: make usage of commit->util more extensible
      merge: record tag objects without peeling in MERGE_HEAD
      request-pull: use the annotated tag contents
      commit: copy merged signed tags to headers of merge commit
      merge: force edit and no-ff mode when merging a tag object
      commit: teach --amend to carry forward extra headers
      commit-tree: update the command line parsing
      commit-tree: teach -m/-F options to read logs from elsewhere
      commit: teach --gpg-sign option
      log: --show-signature
      test "commit -S" and "log --show-signature"
      pretty: %G[?GS] placeholders
      gpg-interface: allow use of a custom GPG binary
      csum-file: introduce sha1file_checkpoint
      bulk-checkin: replace fast-import based implementation
      Kick-off the 1.7.9 cycle
      commit: honour --no-edit
      Update draft release notes for 1.7.9
      Update draft release notes to 1.7.9
      request-pull: update the "pull" command generation logic
      Update draft release notes to 1.7.9
      request-pull: do not emit "tag" before the tagname
      Update draft release notes to 1.7.9
      commit: do not lose mergetag header when not amending
      Update draft release notes to 1.7.9
      Update draft release notes in preparation for 1.7.9-rc0
      Update draft release notes to 1.7.9
      verify_signed_buffer: fix stale comment
      commit --amend -S: strip existing gpgsig headers
      log-tree.c: small refactor in show_signature()
      log-tree: show mergetag in log --show-signature output
      log --show-signature: reword the common two-head merge case
      Git 1.7.9-rc0

Kato Kazuyoshi (2):
      gitweb: Add a feature to show side-by-side diff
      gitweb: Add navigation to select side-by-side diff

Kirill A. Shutemov (1):
      git-tag: introduce --cleanup option

Linus Torvalds (1):
      fetch: do not store peeled tag object names in FETCH_HEAD

Martin von Zweigbergk (10):
      gitk: Fix file highlight when run in subdirectory
      gitk: Fix "show origin of this line" with separate work tree
      gitk: Fix "blame parent commit" with separate work tree
      gitk: Fix "External diff" with separate work tree
      gitk: Put temporary directory inside .git
      gitk: Run 'git rev-parse --git-dir' only once
      gitk: Simplify calculation of gitdir
      gitk: Show modified files with separate work tree
      t3401: modernize style
      t3401: use test_commit in setup

Michael Haggerty (16):
      struct ref_entry: document name member
      refs: rename "refname" variables
      refs: rename parameters result -> sha1
      clear_ref_array(): rename from free_ref_array()
      is_refname_available(): remove the "quiet" argument
      parse_ref_line(): add docstring
      add_ref(): add docstring
      is_dup_ref(): extract function from sort_ref_array()
      refs: change signatures of get_packed_refs() and get_loose_refs()
      get_ref_dir(): change signature
      resolve_gitlink_ref(): improve docstring
      Pass a (ref_cache *) to the resolve_gitlink_*() helper functions
      resolve_gitlink_ref_recursive(): change to work with struct ref_cache
      repack_without_ref(): remove temporary
      create_ref_entry(): extract function from add_ref()
      add_ref(): take a (struct ref_entry *) parameter

Nguyễn Thái Ngọc Duy (14):
      fsck: return error code when verify_pack() goes wrong
      verify_packfile(): check as many object as possible in a pack
      fsck: avoid reading every object twice
      fsck: print progress
      prune: show progress while marking reachable objects
      Convert many resolve_ref() calls to read_ref*() and ref_exists()
      checkout,merge: disallow overwriting ignored files with --no-overwrite-ignore
      Copy resolve_ref() return value for longer use
      revert: convert resolve_ref() to read_ref_full()
      Convert resolve_ref+xstrdup to new resolve_refdup function
      Rename resolve_ref() to resolve_ref_unsafe()
      merge: abort if fails to commit
      Convert commit_tree() to take strbuf as message
      commit_tree(): refuse commit messages that contain NULs

Pat Thoyts (11):
      git-gui: include the number of untracked files to stage when asking the user
      git-gui: theme the search and line-number entry fields on blame screen
      git-gui: catch invalid or complete regular expressions and treat as no match.
      git-gui: enable the smart case sensitive search only if gui.search.smartcase is true
      git-gui: set suitable extended window manager hints.
      git-gui: support underline style when parsing diff output
      git-gui: sort the numeric ansi codes
      git-gui: set whitespace warnings appropriate to this project
      git-gui: added config gui.gcwarning to disable the gc hint message
      git-gui: handle shell script text filters when loading for blame.
      git-gui 0.16

Paul Mackerras (1):
      gitk: Update copyright

Pete Wyckoff (18):
      git-p4: introduce skipSubmitEdit
      git-p4: submit test for auto-creating clientPath
      git-p4: test for absolute PWD problem
      git-p4: fix skipSubmitEdit regression
      rename git-p4 tests
      git-p4: introduce asciidoc documentation
      git-p4: clone does not use --git-dir
      git-p4: test cloning with two dirs, clarify doc
      git-p4: document and test clone --branch
      git-p4: honor --changesfile option and test
      git-p4: document and test --import-local
      git-p4: test --max-changes
      git-p4: test --keep-path
      git-p4: test and document --use-client-spec
      git-p4: document and test submit options
      git-p4: test client view handling
      git-p4: rewrite view handling
      git-p4: view spec documentation

Ramkumar Ramachandra (11):
      t3200 (branch): fix '&&' chaining
      test: fix '&&' chaining
      t3030 (merge-recursive): use test_expect_code
      t1510 (worktree): fix '&&' chaining
      t3040 (subprojects-basic): fix '&&' chaining, modernize style
      revert: free msg in format_todo()
      revert: make commit subjects in insn sheet optional
      revert: tolerate extra spaces, tabs in insn sheet
      revert: simplify getting commit subject in format_todo()
      t3510 (cherry-pick-sequencer): use exit status
      t3502, t3510: clarify cherry-pick -m failure

Ramsay Jones (3):
      builtin/log.c: Fix an "Using plain integer as NULL pointer" warning
      environment.c: Fix an sparse "symbol not declared" warning
      fmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error

Raphael Zimmerer (1):
      gitk: When a commit contains a note, mark it with a yellow box

René Scharfe (5):
      read-cache.c: allocate index entries individually
      cache.h: put single NUL at end of struct cache_entry
      use struct sha1_array in diff_tree_combined()
      pass struct commit to diff_tree_combined_merge()
      submodule: use diff_tree_combined_merge() instead of diff_tree_combined()

SZEDER Gábor (9):
      completion: document __gitcomp()
      completion: optimize refs completion
      completion: make refs completion consistent for local and remote repos
      completion: improve ls-remote output filtering in __git_refs()
      completion: support full refs from remote repositories
      completion: query only refs/heads/ in __git_refs_remotes()
      completion: improve ls-remote output filtering in __git_refs_remotes()
      completion: fast initial completion for config 'remote.*.fetch' value
      completion: remove broken dead code from __git_heads() and __git_tags()

Samuel Bronson (1):
      git-gui: Set both 16x16 and 32x32 icons on X to pacify Xming.

Steven Walter (1):
      git-svn.perl: close the edit for propedits even with no mods

Thomas Rast (5):
      grep: load funcname patterns for -W
      grep: enable threading with -p and -W using lazy attribute lookup
      grep: disable threading in non-worktree case
      test-terminal: set output terminals to raw mode
      bash completion: use read -r everywhere

Tilman Vogel (1):
      git-gui: add config value gui.diffopts for passing additional diff options

Vincent van Ravesteijn (4):
      Compile fix for MSVC: Do not include sys/resources.h
      Compile fix for MSVC: Include <io.h>
      MSVC: Remove unneeded header stubs
      Show error for 'git merge' with unset merge.defaultToUpstream

Yggy King (1):
      gitk: Make "touching paths" search support backslashes

Ævar Arnfjörð Bjarmason (5):
      pull: introduce a pull.rebase option to enable --rebase
      i18n: add infrastructure for translating Git with gettext
      Fix an enum assignment issue spotted by Sun Studio
      Fix a bitwise negation assignment issue spotted by Sun Studio
      Appease Sun Studio by renaming "tmpfile"


Version v1.7.8.6; changes since v1.7.8.5:
-----------------------------------------

Carlos Martín Nieto (1):
      Documentation: use {asterisk} in rev-list-options.txt when needed

Clemens Buchacher (1):
      t5541: check error message against the real port number used

D Waitzman (1):
      Documentation/gitweb: trivial English fixes

Jakub Narębski (1):
      gitweb: Fix actionless dispatch for non-existent objects

Johannes Sixt (1):
      t0090: be prepared that 'wc -l' writes leading blanks

Jonathan Nieder (1):
      bundle: remove stray single-quote from error message

Junio C Hamano (4):
      i18n of multi-line advice messages
      fetch/receive: remove over-pessimistic connectivity check
      Git 1.7.7.7
      Git 1.7.8.6

Kirill Smelkov (1):
      t/Makefile: Use $(sort ...) explicitly where needed

Phil Hord (1):
      rerere: Document 'rerere remaining'

Shawn O. Pearce (1):
      remote-curl: Fix push status report when all branches fail

Thomas Rast (13):
      Add test-scrap-cache-tree
      Test the current state of the cache-tree optimization
      Refactor cache_tree_update idiom from commit
      commit: write cache-tree data when writing index anyway
      reset: update cache-tree data when appropriate
      bundle: put strbuf_readline_fd in strbuf.c with adjustments
      bundle: use a strbuf to scan the log for boundary commits
      strbuf: improve strbuf_get*line documentation
      t5704: match tests to modern style
      t5510: refactor bundle->pack conversion
      t5510: ensure we stay in the toplevel test dir
      bundle: keep around names passed to add_pending_object()
      Document the --histogram diff option


Version v1.7.8.5; changes since v1.7.8.4:
-----------------------------------------

Andrew Wong (1):
      rebase -m: only call "notes copy" when rewritten exists and is non-empty

Dmitry V. Levin (1):
      Makefile: add thread-utils.h to LIB_H

Jeff King (1):
      imap-send: remove dead code

Jim Meyering (1):
      am: don't infloop for an empty input file

Junio C Hamano (2):
      Git 1.7.6.6
      Git 1.7.8.5

Michał Kiedrowicz (1):
      grep -P: Fix matching ^ and $


Version v1.7.8.4; changes since v1.7.8.3:
-----------------------------------------

Jeff King (5):
      send-email: multiedit is a boolean config option
      attr: don't confuse prefixes with leading directories
      attr: drop misguided defensive coding
      attr: fix leak in free_attr_elem
      thin-pack: try harder to use preferred base objects as base

Junio C Hamano (11):
      attr.c: make bootstrap_attr_stack() leave early
      attr.c: clarify the logic to pop attr_stack
      Documentation: rerere's rr-cache auto-creation and rerere.enabled
      Prepare for 1.7.6.6
      Prepare for 1.7.7.6
      Prepare for 1.7.8.4
      Update draft release notes to 1.7.6.6
      Update draft release notes to 1.7.7.6
      Update draft release notes to 1.7.8.4
      Git 1.7.7.6
      Git 1.7.8.4

Nguyễn Thái Ngọc Duy (2):
      t2203: fix wrong commit command
      diff-index: enable recursive pathspec matching in unpack_trees


Version v1.7.8.3; changes since v1.7.8.2:
-----------------------------------------

Brian Harring (1):
      fix hang in git fetch if pointed at a 0 length bundle

Clemens Buchacher (2):
      Documentation: read-tree --prefix works with existing subtrees
      t5550: repack everything into one file

Jack Nagel (1):
      Add MYMETA.json to perl/.gitignore

Jakub Narębski (1):
      gitweb: Fix fallback mode of to_utf8 subroutine

Jens Lehmann (1):
      docs: describe behavior of relative submodule URLs

Junio C Hamano (1):
      Git 1.7.8.3

Jürgen Kreileder (3):
      gitweb: Call to_utf8() on input string in chop_and_escape_str()
      gitweb: esc_html() site name for title in OPML
      gitweb: Output valid utf8 in git_blame_common('data')

Nguyễn Thái Ngọc Duy (1):
      Catch invalid --depth option passed to clone or fetch

Thomas Rast (1):
      Documentation: rerere.enabled is the primary way to configure rerere


Version v1.7.8.2; changes since v1.7.8.1:
-----------------------------------------

Andrew Wong (1):
      rebase -i: interrupt rebase when "commit --amend" failed during "reword"

Conrad Irwin (1):
      Update documentation for stripspace

Eric Wong (1):
      enable SO_KEEPALIVE for connected TCP sockets

Erik Faye-Lund (2):
      compat/setenv.c: update errno when erroring out
      compat/setenv.c: error if name contains '='

Jeff King (20):
      read-cache: let refresh_cache_ent pass up changed flags
      refresh_index: rename format variables
      refresh_index: make porcelain output more specific
      compat/snprintf: don't look at va_list twice
      docs: mention "-k" for both forms of "git mv"
      mv: honor --verbose flag
      mv: make non-directory destination error more clear
      mv: improve overwrite warning
      mv: be quiet about overwriting
      drop "match" parameter from get_remote_heads
      t5500: give fully-qualified refs to fetch-pack
      fetch-pack: match refs exactly
      connect.c: drop path_match function
      t5540: test DAV push with authentication
      http-push: enable "proactive auth"
      use custom rename score during --follow
      docs: brush up obsolete bits of git-fsck manpage
      make "git push -v" actually verbose
      commit, merge: initialize static strbuf
      remote-curl: don't pass back fake refs

Jelmer Vernooij (1):
      Fix an incorrect reference to --set-all.

Johan Herland (3):
      t9301: Fix testcase covering up a bug in fast-import's notes fanout handling
      t9301: Add 2nd testcase exposing bugs in fast-import's notes fanout handling
      fast-import: Fix incorrect fanout level when modifying existing notes refs

Johannes Sixt (1):
      Compatibility: declare strtoimax() under NO_STRTOUMAX

Jonathan Nieder (9):
      branch: allow a no-op "branch -M <current-branch> HEAD"
      Allow checkout -B <current-branch> to update the current branch
      revert: give --continue handling its own function
      revert: allow cherry-pick --continue to commit before resuming
      revert: pass around rev-list args in already-parsed form
      revert: allow single-pick in the middle of cherry-pick sequence
      revert: do not remove state until sequence is finished
      Revert "reset: Make reset remove the sequencer state"
      revert: stop creating and removing sequencer-old directory

Junio C Hamano (5):
      checkout -m: no need to insist on having all 3 stages
      checkout_merged(): squelch false warning from some gcc
      lf_to_crlf_filter(): resurrect CRLF->CRLF hack
      advice: Document that they all default to true
      Git 1.7.8.2

Nick Alcock (2):
      Add strtoimax() compatibility function.
      Support sizes >=2G in various config options accepting 'g' sizes.

Pete Harlan (1):
      Test 'checkout -m -- path'

Thomas Jarosch (1):
      imap-send: Remove unused 'use_namespace' variable

Thomas Rast (1):
      git-sh-setup: make require_clean_work_tree part of the interface

Ævar Arnfjörð Bjarmason (1):
      t/t2023-checkout-m.sh: fix use of test_must_fail


Version v1.7.8.1; changes since v1.7.8:
---------------------------------------

Brandon Casey (2):
      t/t4131-apply-fake-ancestor.sh: fix broken test
      builtin/apply.c: report error on failure to recognize input

Carlos Martín Nieto (2):
      convert: track state in LF-to-CRLF filter
      clone: the -o option has nothing to do with <branch>

Erik Faye-Lund (1):
      mingw: give waitpid the correct signature

Jack Nagel (1):
      Documentation: fix formatting error in merge-options.txt

Jeff King (5):
      http: drop "local" member from request struct
      archive: don't let remote clients get unreachable commits
      stripspace: fix outdated comment
      fetch: create status table using strbuf
      blame: don't overflow time buffer

Jens Lehmann (1):
      diff/status: print submodule path when looking for changes fails

Junio C Hamano (9):
      get_tree_entry(): do not call find_tree_entry() on an empty tree
      unpack_object_header_buffer(): clear the size field upon error
      receive-pack, fetch-pack: reject bogus pack that records objects twice
      pack-object: tolerate broken packs that have duplicated objects
      Git 1.7.6.5
      Git 1.7.7.5
      Update draft release notes for 1.7.8.1
      lf_to_crlf_filter(): tell the caller we added "\n" when draining
      Git 1.7.8.1

Martin von Zweigbergk (1):
      am: don't persist keepcr flag

Michael Haggerty (1):
      git symbolic-ref: documentation fix

Michael Schubert (2):
      builtin/commit: add missing '/' in help message
      builtin/log: remove redundant initialization

Mika Fischer (3):
      http.c: Use curl_multi_fdset to select on curl fds instead of just sleeping
      http.c: Use timeout suggested by curl instead of fixed 50ms timeout
      http.c: Rely on select instead of tracking whether data was received

Nguyễn Thái Ngọc Duy (5):
      tree-walk.c: do not leak internal structure in tree_entry_len()
      read_directory_recursive: reduce one indentation level
      tree_entry_interesting(): give meaningful names to return values
      tree_entry_interesting: make use of local pointer "item"
      checkout,merge: loosen overwriting untracked file check based on info/exclude

Sebastian Morr (1):
      Add MYMETA.yml to perl/.gitignore

Thomas Rast (1):
      userdiff: allow * between cpp funcname words

Ævar Arnfjörð Bjarmason (3):
      apply: get rid of useless x < 0 comparison on a size_t type
      cast variable in call to free() in builtin/diff.c and submodule.c
      builtin/init-db.c: eliminate -Wformat warning on Solaris


Version v1.7.8; changes since v1.7.8-rc4:
-----------------------------------------

Junio C Hamano (1):
      Git 1.7.8


Version v1.7.8-rc4; changes since v1.7.8-rc3:
---------------------------------------------

Johannes Sixt (1):
      Fix revert --abort on Windows

Jonathan Nieder (11):
      do not let git_path clobber errno when reporting errors
      notes merge: eliminate OUTPUT macro
      Makefile: add missing header file dependencies
      Makefile: add option to disable automatic dependency generation
      revert: rename --reset option to --quit
      revert: rearrange pick_revisions() for clarity
      revert: improve error message for cherry-pick during cherry-pick
      revert: write REVERT_HEAD pseudoref during conflicted revert
      revert: introduce --abort to cancel a failed cherry-pick
      revert: remove --reset compatibility option
      revert --abort: do not leave behind useless sequencer-old directory

Junio C Hamano (5):
      name-rev --all: do not even attempt to describe non-commit object
      Git 1.7.7.4
      Hopefully final update of release notes before 1.7.8 final
      Update 1.7.8 draft release notes in preparation for rc4
      Git 1.7.8-rc4

Marc-André Lureau (1):
      mailmap: xcalloc mailmap_info

Nguyễn Thái Ngọc Duy (1):
      revert: do not pass non-literal string as format to git_path()

Ramkumar Ramachandra (4):
      http: remove unused function hex()
      convert: don't mix enum with int
      sha1_file: don't mix enum with int
      git-compat-util: don't assume value for undefined variable

Ramsay Jones (3):
      t5501-*.sh: Fix url passed to clone in setup test
      config.c: Fix a static buffer overwrite bug by avoiding mkpath()
      convert.c: Fix return type of git_path_check_eol()

Thomas Hochstein (1):
      documentation fix: git difftool uses diff tools, not merge tools.

Vincent van Ravesteijn (2):
      builtin-branch: Fix crash on invalid use of --force
      builtin-reset: Documentation update


Version v1.7.8-rc3; changes since v1.7.8-rc2:
---------------------------------------------

Junio C Hamano (3):
      Revert "upload-archive: use start_command instead of fork"
      refs: loosen over-strict "format" check
      Git 1.7.8-rc3

Ramkumar Ramachandra (1):
      revert: prettify fatal messages


Version v1.7.8-rc2; changes since v1.7.8-rc1:
---------------------------------------------

Felipe Contreras (1):
      remote: fix remote set-url usage

Jeff King (1):
      docs: don't mention --quiet or --exit-code in git-log(1)

Junio C Hamano (5):
      remote: fix set-branches usage
      docs: Update install-doc-quick
      Git 1.7.7.3
      Update draft release notes to 1.7.8
      Git 1.7.8-rc2

Liu Yuan (1):
      mktree: fix a memory leak in write_tree()

SZEDER Gábor (1):
      completion: don't leak variable from the prompt into environment


Version v1.7.8-rc1; changes since v1.7.8-rc0:
---------------------------------------------

Dan McGee (4):
      pack-objects: mark add_to_write_order() as inline
      pack-objects: use unsigned int for counter and offset values
      pack-objects: rewrite add_descendants_to_write_order() iteratively
      pack-objects: don't traverse objects unnecessarily

Erik Faye-Lund (4):
      mingw: move poll out of sys-folder
      compat/win32/poll.c: upgrade from upstream
      upload-archive: use start_command instead of fork
      mingw: poll.h is no longer in sys/

Johannes Sixt (1):
      name-hash.c: always initialize dir_next pointer

Junio C Hamano (5):
      (squash) test for previous
      Git 1.7.7.2
      Update draft release notes to 1.7.8
      receive-pack: do not expect object 0{40} to exist
      Git 1.7.8-rc1

Nguyễn Thái Ngọc Duy (2):
      pretty.c: free get_header() return value
      pretty.c: use original commit message if reencoding fails

Pat Thoyts (1):
      t7511: avoid use of reserved filename on Windows.

Pete Wyckoff (1):
      git-p4: ignore apple filetype

Sebastian Schuberth (2):
      blame.c: Properly initialize strbuf after calling, textconv_object()
      blame.c: Properly initialize strbuf after calling textconv_object(), again

Stefan Naewe (2):
      t3200: add test case for 'branch -m'
      http: don't always prompt for password

Tay Ray Chuan (1):
      branch -m: handle no arg properly

Ted Percival (1):
      svn: Quote repository root in regex match

Ævar Arnfjörð Bjarmason (2):
      t/t6030-bisect-porcelain.sh: use test_i18ngrep
      t/t7508-status.sh: use test_i18ncmp


Version v1.7.8-rc0; changes since v1.7.7.7:
-------------------------------------------

Bert Wesarg (7):
      grep: do not use --index in the short usage output
      grep --no-index: don't use git standard exclusions
      git-gui: search and linenumber input are mutual exclusive in the blame view
      git-gui: only accept numbers in the goto-line input
      git-gui: clear the goto line input when hiding
      git-gui: incremental goto line in blame view
      grep: fix the error message that mentions --exclude

Brad King (2):
      submodule: Demonstrate known breakage during recursive merge
      submodule: Search for merges only at end of recursive merge

Brandon Casey (8):
      t/t3905: use the name 'actual' for test output, swap arguments to test_cmp
      git-stash.sh: fix typo in error message
      t/t3905: add missing '&&' linkage
      git-stash: remove untracked/ignored directories when stashed
      refs.c: ensure struct whose member may be passed to realloc is initialized
      refs.c: abort ref search if ref array is empty
      refs.c: free duplicate entries in the ref array instead of leaking them
      t/t3000-ls-files-others.sh: use $SHELL_PATH to run git-new-workdir script

Carlos Martín Nieto (1):
      Documentation: update [section.subsection] to reflect what git does

Chris Packham (1):
      git-web--browse: avoid the use of eval

Christoffer Pettersson (1):
      git-gui: Corrected a typo in the Swedish translation of 'Continue'

Clemens Buchacher (5):
      remove prefix argument from pathspec_prefix
      rename pathspec_prefix() to common_prefix() and move to dir.[ch]
      send-email: add option -h
      use -h for synopsis and --help for manpage consistently
      use test number as port number

Cord Seele (3):
      Add Git::config_path()
      use new Git::config_path() for aliasesfile
      send-email: Fix %config_path_settings handling

Dan McGee (2):
      tree-walk: drop unused parameter from match_dir_prefix
      tree-walk: micro-optimization in tree_entry_interesting

David Aguilar (1):
      Makefile: Improve compiler header dependency check

David Fries (2):
      git-gui: Enable jumping to a specific line number in blame view.
      git-gui: Add keyboard shortcuts for search and goto commands in blame view.

Dmitry Ivankov (3):
      Fix typo: existant->existent
      fast-import: don't allow to tag empty branch
      fast-import: don't allow to note on empty branch

Drew Northup (1):
      gitweb: Add gitweb.conf(5) manpage for gitweb configuration files

Erik Faye-Lund (2):
      enter_repo: do not modify input
      mingw: avoid using strbuf in syslog

Fredrik Gustafsson (2):
      rev-parse: add option --resolve-git-dir <path>
      Move git-dir for submodules

Fredrik Kuivinen (1):
      Makefile: Use computed header dependencies if the compiler supports it

Frédéric Heitzmann (1):
      git svn dcommit: new option --interactive.

Giuseppe Bilotta (1):
      am: preliminary support for hg patches

Heiko Voigt (4):
      git-gui: warn when trying to commit on a detached head
      submodule: move update configuration variable further up
      add update 'none' flag to disable update of submodule by default
      git-gui: deal with unknown files when pressing the "Stage Changed" button

Hui Wang (1):
      sha1_file: normalize alt_odb path before comparing and storing

Jakub Narębski (5):
      gitweb: Add gitweb(1) manpage for gitweb itself
      Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages
      Documentation: Add gitweb config variables to git-config(1)
      gitweb: Add gitweb manpages to 'gitweb' package in git.spec
      Add simple test for Git::config_path() in t/t9700-perl-git.sh

Jay Soffian (5):
      Teach '--cached' option to check-attr
      log --children
      revert.c: defer writing CHERRY_PICK_HEAD till it is safe to do so
      cherry-pick: do not give irrelevant advice when cherry-pick punted
      Teach merge the '[-e|--edit]' option

Jeff King (20):
      url: decode buffers that are not NUL-terminated
      improve httpd auth tests
      remote-curl: don't retry auth failures with dumb protocol
      http: retry authentication failures for all http requests
      t7004: factor out gpg setup
      t6300: add more body-parsing tests
      for-each-ref: refactor subject and body placeholder parsing
      for-each-ref: handle multiline subjects like --pretty
      t3200: clean up checks for file existence
      fix phantom untracked files when core.ignorecase is set
      t1300: put git invocations inside test function
      t1300: test mixed-case variable retrieval
      pack-objects: protect against disappearing packs
      downgrade "packfile cannot be accessed" errors to warnings
      daemon: give friendlier error messages to clients
      http_init: accept separate URL parameter
      contrib: add diff highlight script
      tests: add missing executable bits
      contrib: add git-jump script
      completion: match ctags symbol names in grep patterns

Jeremie Nikaes (1):
      Add a remote helper to interact with mediawiki (fetch & push)

Johannes Schindelin (5):
      Fix is_gitfile() for files too small or larger than PATH_MAX to be a gitfile
      t1020: disable the pwd test on MinGW
      t9001: do not fail only due to CR/LF issues
      t9300: do not run --cat-blob-fd related tests on MinGW
      git grep: be careful to use mutexes only when they are initialized

Johannes Sixt (2):
      t1402-check-ref-format: skip tests of refs beginning with slash on Windows
      t1300: attempting to remove a non-existent .git/config is not an error

Jonathan Nieder (3):
      ident: check /etc/mailname if email is unknown
      ident: do not retrieve default ident when unnecessary
      Makefile: fix permissions of mergetools/ checked out with permissive umask

Julian Phillips (2):
      Don't sort ref_list too early
      refs: Use binary search to lookup refs faster

Junio C Hamano (47):
      rev-list: fix finish_object() call
      revision.c: add show_object_with_name() helper function
      revision.c: update show_object_with_name() without using malloc()
      list-objects: pass callback data to show_objects()
      rev-list --verify-object
      fetch: verify we have everything we need before updating our ref
      fetch.fsckobjects: verify downloaded objects
      transfer.fsckobjects: unify fetch/receive.fsckobjects
      test: fetch/receive with fsckobjects
      consolidate pathspec_prefix and common_prefix
      fetch: verify we have everything we need before updating our ref
      check_everything_connected(): refactor to use an iterator
      check_everything_connected(): libify
      receive-pack: check connectivity before concluding "git push"
      builtin/revert.c: make commit_list_append() static
      refs.c: make create_cached_refs() static
      send-pack: typofix error message
      rename "match_refs()" to "match_push_refs()"
      Allow git merge ":/<pattern>"
      ls-remote: a lone "-h" is asking for help
      t0003: remove extra whitespaces
      parse-options: deprecate OPT_BOOLEAN
      archive.c: use OPT_BOOL()
      url.c: simplify is_url()
      grep: teach --untracked and --exclude-standard options
      Post 1.7.7 first wave
      Update draft release notes to 1.7.8
      refs.c: move dwim_ref()/dwim_log() from sha1_name.c
      Update draft release notes to 1.7.8
      bundle: allowing to read from an unseekable fd
      bundle: add parse_bundle_header() helper function
      Update draft release notes to 1.7.8
      t7800: avoid arithmetic expansion notation
      Update draft release notes to 1.7.8
      resolve_gitlink_packed_ref(): fix mismerge
      Update draft release notes to 1.7.8
      Makefile: ask "ls-files" to list source files if available
      libperl-git: refactor Git::config_*
      Update draft release notes to 1.7.8
      resolve_ref(): expose REF_ISBROKEN flag
      resolve_ref(): report breakage to the caller without warning
      Update draft release notes to 1.7.8
      builtin/grep: make lock/unlock into static inline functions
      builtin/grep: simplify lock_and_read_sha1_file()
      Update draft release notes to 1.7.8
      Update draft release notes to 1.7.8
      Git 1.7.8-rc0

Luke Diamand (1):
      git-p4: handle files with shell metacharacters

Lénaïc Huard (1):
      gitweb: provide a way to customize html headers

Matthieu Moy (6):
      git-remote-mediawiki: allow push to set MediaWiki metadata
      git-remote-mediawiki: trivial fixes
      git-remote-mediawiki: set 'basetimestamp' to let the wiki handle conflicts
      git-remote-mediawiki: obey advice.pushNonFastForward
      git-remote-mediawiki: allow a domain to be set for authentication
      git-remote-mediawiki: don't include HTTP login/password in author

Michael Haggerty (36):
      Extract a function clear_cached_refs()
      Access reference caches only through new function get_cached_refs()
      Change the signature of read_packed_refs()
      Allocate cached_refs objects dynamically
      Store the submodule name in struct cached_refs
      Retain caches of submodule refs
      get_sha1_hex(): do not read past a NUL character
      t1402: add some more tests
      git check-ref-format: add options --allow-onelevel and --refspec-pattern
      Change bad_ref_char() to return a boolean value
      Change check_ref_format() to take a flags argument
      Refactor check_refname_format()
      Do not allow ".lock" at the end of any refname component
      Make collapse_slashes() allocate memory for its result
      Inline function refname_format_print()
      Change check_refname_format() to reject unnormalized refnames
      resolve_ref(): explicitly fail if a symlink is not readable
      resolve_ref(): use prefixcmp()
      resolve_ref(): only follow a symlink that contains a valid, normalized refname
      resolve_ref(): turn buffer into a proper string as soon as possible
      resolve_ref(): extract a function get_packed_ref()
      resolve_ref(): do not follow incorrectly-formatted symbolic refs
      remote: use xstrdup() instead of strdup()
      remote: avoid passing NULL to read_ref()
      resolve_ref(): verify that the input refname has the right format
      resolve_ref(): emit warnings for improperly-formatted references
      resolve_ref(): also treat a too-long SHA1 as invalid
      resolve_ref(): expand documentation
      add_ref(): verify that the refname is formatted correctly
      invalidate_ref_cache(): rename function from invalidate_cached_refs()
      invalidate_ref_cache(): take the submodule as parameter
      invalidate_ref_cache(): expose this function in the refs API
      clear_ref_cache(): rename parameter
      clear_ref_cache(): extract two new functions
      write_ref_sha1(): only invalidate the loose ref cache
      clear_ref_cache(): inline function

Michael J Gruber (7):
      t6040: test branch -vv
      git-tag: introduce long forms for the options
      git-branch: introduce missing long forms for the options
      branch: introduce --list option
      branch: allow pattern arguments
      branch: -v does not automatically imply --list
      http: use hostname in credential description

Michael W. Olson (1):
      git-svn: Allow certain refs to be ignored

Michał Górny (1):
      for-each-ref: add split message parts to %(contents:*).

Nguyễn Thái Ngọc Duy (6):
      sparse checkout: show error messages when worktree shaping fails
      Add explanation why we do not allow to sparse checkout to empty working tree
      pack-protocol: document "ERR" line
      daemon: return "access denied" if a service is not allowed
      daemon: log errors if we could not use some sockets
      t5403: convert leading spaces to tabs

Pang Yan Han (1):
      receive-pack: don't pass non-existent refs to post-{receive,update} hooks

Pat Thoyts (6):
      git-gui: updated translator README for current procedures.
      Fix tooltip display with multiple monitors on windows.
      git-gui: drop the 'n' and 'Shift-n' bindings from the last patch.
      mergetools: use the correct tool for Beyond Compare 3 on Windows
      mingw: ensure sockets are initialized before calling gethostname
      t9901: fix line-ending dependency on windows

Pete Wyckoff (5):
      git-p4 tests: refactor and cleanup
      git-p4: handle utf16 filetype properly
      git-p4: recognize all p4 filetypes
      git-p4: stop ignoring apple filetype
      git-p4: keyword flattening fixes

Peter Oberndorfer (1):
      "rebase -i": support special-purpose editor to edit insn sheet

Phil Hord (3):
      Learn to handle gitfiles in enter_repo
      Teach transport about the gitfile mechanism
      Add test showing git-fetch groks gitfiles

Ramkumar Ramachandra (18):
      advice: Introduce error_resolve_conflict
      config: Introduce functions to write non-standard file
      revert: Simplify and inline add_message_to_msg
      revert: Don't check lone argument in get_encoding
      revert: Rename no_replay to record_origin
      revert: Eliminate global "commit" variable
      revert: Introduce struct to keep command-line options
      revert: Separate cmdline parsing from functional code
      revert: Don't create invalid replay_opts in parse_args
      revert: Save data for continuing after conflict resolution
      revert: Save command-line options for continuing operation
      revert: Make pick_commits functionally act on a commit list
      revert: Introduce --reset to remove sequencer state
      reset: Make reset remove the sequencer state
      revert: Remove sequencer state when no commits are pending
      revert: Don't implicitly stomp pending sequencer operation
      revert: Introduce --continue to continue the operation
      revert: Propagate errors upwards from do_pick_commit

Ramsay Jones (5):
      Makefile: Make dependency directory creation less noisy
      sparse: Fix an "Using plain integer as NULL pointer" warning
      obstack.c: Fix some sparse warnings
      Fix some "variable might be used uninitialized" warnings
      gitweb/Makefile: Remove static/gitweb.js in the clean target

René Scharfe (23):
      parseopt: add OPT_NOOP_NOARG
      revert: use OPT_NOOP_NOARG
      apply: use OPT_NOOP_NOARG
      checkout: check for "Previous HEAD" notice in t2020
      revision: factor out add_pending_sha1
      checkout: use add_pending_{object,sha1} in orphan check
      revision: add leak_pending flag
      bisect: use leak_pending flag
      bundle: use leak_pending flag
      checkout: use leak_pending flag
      commit: factor out clear_commit_marks_for_object_array
      test-ctype: macrofy
      test-ctype: add test for is_pathspec_magic
      name-rev: split usage string
      pickaxe: plug diff filespec leak with empty needle
      pickaxe: plug regex leak
      pickaxe: plug regex/kws leak
      pickaxe: factor out has_changes
      pickaxe: pass diff_options to contains and has_changes
      pickaxe: give diff_grep the same signature as has_changes
      pickaxe: factor out pickaxe
      xdiff: factor out get_func_line()
      diff: add option to show whole functions as context

SZEDER Gábor (2):
      completion: unite --reuse-message and --reedit-message for 'notes'
      completion: unite --format and --pretty for 'log' and 'show'

Sebastian Schuberth (2):
      git-svn: On MSYS, escape and quote SVN_SSH also if set by the user
      inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables

Sitaram Chamarty (1):
      git-difftool: allow skipping file by typing 'n' at prompt

Stefan Naewe (1):
      completion: fix issue with process substitution not working on Git for Windows

Tay Ray Chuan (3):
      fetch: plug two leaks on error exit in store_updated_refs
      submodule: whitespace fix
      submodule::module_clone(): silence die() message from module_name()

Teemu Matilainen (3):
      completion: unite --reuse-message and --reedit-message handling
      completion: commit --fixup and --squash
      completion: push --set-upstream

Zbigniew Jędrzejewski-Szmek (1):
      send-email: auth plain/login fix


Version v1.7.7.7; changes since v1.7.7.6:
-----------------------------------------

Jeff King (1):
      imap-send: remove dead code

Jonathan Nieder (1):
      bundle: remove stray single-quote from error message

Junio C Hamano (2):
      Git 1.7.6.6
      Git 1.7.7.7

Thomas Rast (1):
      Document the --histogram diff option


Version v1.7.7.6; changes since v1.7.7.5:
-----------------------------------------

Clemens Buchacher (1):
      Documentation: read-tree --prefix works with existing subtrees

Jack Nagel (1):
      Add MYMETA.json to perl/.gitignore

Jeff King (4):
      attr: don't confuse prefixes with leading directories
      attr: drop misguided defensive coding
      attr: fix leak in free_attr_elem
      thin-pack: try harder to use preferred base objects as base

Jens Lehmann (1):
      docs: describe behavior of relative submodule URLs

Junio C Hamano (8):
      attr.c: make bootstrap_attr_stack() leave early
      attr.c: clarify the logic to pop attr_stack
      Documentation: rerere's rr-cache auto-creation and rerere.enabled
      Prepare for 1.7.6.6
      Prepare for 1.7.7.6
      Update draft release notes to 1.7.6.6
      Update draft release notes to 1.7.7.6
      Git 1.7.7.6

Nguyễn Thái Ngọc Duy (2):
      t2203: fix wrong commit command
      diff-index: enable recursive pathspec matching in unpack_trees

Thomas Rast (1):
      Documentation: rerere.enabled is the primary way to configure rerere


Version v1.7.7.5; changes since v1.7.7.4:
-----------------------------------------

Erik Faye-Lund (1):
      mingw: give waitpid the correct signature

Jeff King (3):
      stripspace: fix outdated comment
      fetch: create status table using strbuf
      blame: don't overflow time buffer

Junio C Hamano (2):
      Git 1.7.6.5
      Git 1.7.7.5

Martin von Zweigbergk (1):
      am: don't persist keepcr flag

Michael Haggerty (1):
      git symbolic-ref: documentation fix

Nguyễn Thái Ngọc Duy (1):
      checkout,merge: loosen overwriting untracked file check based on info/exclude

Sebastian Morr (1):
      Add MYMETA.yml to perl/.gitignore

Thomas Hochstein (1):
      documentation fix: git difftool uses diff tools, not merge tools.

Ævar Arnfjörð Bjarmason (2):
      apply: get rid of useless x < 0 comparison on a size_t type
      cast variable in call to free() in builtin/diff.c and submodule.c


Version v1.7.7.4; changes since v1.7.7.3:
-----------------------------------------

Jonathan Nieder (2):
      notes merge: eliminate OUTPUT macro
      Makefile: add missing header file dependencies

Junio C Hamano (2):
      name-rev --all: do not even attempt to describe non-commit object
      Git 1.7.7.4

Marc-André Lureau (1):
      mailmap: xcalloc mailmap_info


Version v1.7.7.3; changes since v1.7.7.2:
-----------------------------------------

Dan McGee (4):
      pack-objects: mark add_to_write_order() as inline
      pack-objects: use unsigned int for counter and offset values
      pack-objects: rewrite add_descendants_to_write_order() iteratively
      pack-objects: don't traverse objects unnecessarily

Jeff King (1):
      docs: don't mention --quiet or --exit-code in git-log(1)

Julien Muchembled (1):
      gitweb: fix regression when filtering out forks

Junio C Hamano (3):
      branch -m/-M: remove undocumented RENAMED-REF
      docs: Update install-doc-quick
      Git 1.7.7.3


Version v1.7.7.2; changes since v1.7.7.1:
-----------------------------------------

Brandon Casey (4):
      attr.c: avoid inappropriate access to strbuf "buf" member
      cleanup: use internal memory allocation wrapper functions everywhere
      builtin/mv.c: plug miniscule memory leak
      attr.c: respect core.ignorecase when matching attribute patterns

Carlos Martín Nieto (6):
      Remove 'working copy' from the documentation and C code
      fetch: free all the additional refspecs
      t5510: add tests for fetch --prune
      remote: separate out the remote_find_tracking logic into query_refspecs
      fetch: honor the user-provided refspecs when pruning refs
      fetch: treat --tags like refs/tags/*:refs/tags/* when pruning

Christian Couder (1):
      bisect: fix exiting when checkout failed in bisect_start()

Haitao Li (1):
      date.c: Support iso8601 timezone formats

Jakub Narębski (1):
      gitweb: Strip non-printable characters from syntax highlighter output

Jeff King (8):
      add sha1_array API docs
      quote.h: fix bogus comment
      refactor argv_array into generic code
      quote: provide sq_dequote_to_argv_array
      bisect: use argv_array API
      checkout: use argv_array API
      run_hook: use argv_array API
      pull,rebase: handle GIT_WORK_TREE better

Jim Meyering (1):
      make the sample pre-commit hook script reject names with newlines, too

Jonathan Nieder (2):
      http: remove extra newline in error message
      http: avoid empty error messages for some curl errors

Jonathon Mah (1):
      mergetool: Use args as pathspec to unmerged files

Junio C Hamano (5):
      refactor run_receive_hook()
      diff: teach --stat/--numstat to honor -U$num
      mergetool: no longer need to save standard input
      attr: read core.attributesfile from git_default_core_config
      Git 1.7.7.2

Martin von Zweigbergk (4):
      remote: write correct fetch spec when renaming remote 'remote'
      remote: "rename o foo" should not rename ref "origin/bar"
      remote rename: warn when refspec was not updated
      remote: only update remote-tracking branch if updating refspec

Matthew Daley (1):
      send-email: Honour SMTP domain when using TLS

Michael Haggerty (1):
      notes_merge_commit(): do not pass temporary buffer to other function

Michael J Gruber (3):
      unpack-trees: print "Aborting" to stderr
      git-read-tree.txt: language and typography fixes
      git-read-tree.txt: correct sparse-checkout and skip-worktree description

Nguyễn Thái Ngọc Duy (2):
      git-read-tree.txt: update sparse checkout examples
      Reindent closing bracket using tab instead of spaces

Pat Thoyts (1):
      t7511: avoid use of reserved filename on Windows.

Peter Stuge (1):
      gitweb: Fix links to lines in blobs when javascript-actions are enabled

Ramsay Jones (1):
      t9159-*.sh: skip for mergeinfo test for svn <= 1.4

René Scharfe (1):
      read-cache.c: fix index memory allocation

Richard Hartmann (1):
      clone: Quote user supplied path in a single quote pair

Shawn O. Pearce (1):
      remote-curl: Fix warning after HTTP failure

Stefan Naewe (1):
      Documentation/git-update-index: refer to 'ls-files'

Thomas Rast (1):
      Documentation: basic configuration of notes.rewriteRef


Version v1.7.7.1; changes since v1.7.7:
---------------------------------------

Brad King (1):
      rev-list: Demonstrate breakage with --ancestry-path --all

Brandon Casey (1):
      strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()

Ilari Liusvaara (1):
      Support ERR in remote archive like in fetch/push

Jay Soffian (1):
      merge-one-file: fix "expr: non-numeric argument"

Jeff King (2):
      fetch: avoid quadratic loop checking for updated submodules
      filter-branch: use require_clean_work_tree

Jim Meyering (1):
      fix "git apply --index ..." not to deref NULL

Jonathan Nieder (2):
      Makefile: do not set setgid bit on directories on GNU/kFreeBSD
      RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting

Junio C Hamano (14):
      revision: keep track of the end-user input from the command line
      revision: do not include sibling history in --ancestry-path output
      rebase -i: notice and warn if "exec $cmd" modifies the index or the working tree
      traverse_trees(): allow pruning with pathspec
      unpack-trees: allow pruning with pathspec
      diff-index: pass pathspec down to unpack-trees machinery
      fsck: do not abort upon finding an empty blob
      Teach progress eye-candy to fetch_refs_from_bundle()
      apply --whitespace=error: correctly report new blank lines at end
      checkout $tree $path: do not clobber local changes in $path not in $tree
      diff: resurrect XDF_NEED_MINIMAL with --minimal
      Prepare for 1.7.7.1
      Almost ready for 1.7.7.1
      Git 1.7.7.1

Matthieu Moy (2):
      rebase -i: clean error message for --continue after failed exec
      config: display key_delim for config --bool --get-regexp

Michael Schubert (1):
      patch-id.c: use strbuf instead of a fixed buffer

Nguyễn Thái Ngọc Duy (4):
      merge: keep stash[] a local variable
      merge: use return value of resolve_ref() to determine if HEAD is invalid
      merge: remove global variable head[]
      Accept tags in HEAD or MERGE_HEAD

Nicolas Morey-Chaisemartin (1):
      grep: Fix race condition in delta_base_cache

René Scharfe (2):
      Revert removal of multi-match discard heuristic in 27af01
      t1304: fall back to $USER if $LOGNAME is not defined

Thomas Rast (2):
      Symlink mergetools scriptlets into valgrind wrappers
      t6019: avoid refname collision on case-insensitive systems


Version v1.7.7; changes since v1.7.7-rc3:
-----------------------------------------

Gerrit Pape (2):
      contrib/hooks: adapt comment about Debian install location for contrib hooks
      templates/hooks--*: remove sample hooks without any functionality

Junio C Hamano (2):
      Documentation/gitnamespaces.txt: cater to older asciidoc
      Git 1.7.7


Version v1.7.7-rc3; changes since v1.7.7-rc2:
---------------------------------------------

Allan Caffee (1):
      describe: Refresh the index when run with --dirty

Jay Soffian (1):
      git-mergetool: check return value from read

Jeff King (1):
      t4014: clean up format.thread config after each test

Junio C Hamano (3):
      Git 1.7.6.4
      merge-recursive: Do not look at working tree during a virtual ancestor merge
      Git 1.7.7-rc3


Version v1.7.7-rc2; changes since v1.7.7-rc1:
---------------------------------------------

Bryan Jacobs (1):
      git-svn: teach git-svn to populate svn:mergeinfo

Frédéric Heitzmann (1):
      Disambiguate duplicate t9160* tests

Junio C Hamano (2):
      branch --set-upstream: regression fix
      Git 1.7.7-rc2

Pang Yan Han (1):
      format-patch: ignore ui.color


Version v1.7.7-rc1; changes since v1.7.7-rc0:
---------------------------------------------

Ben Walton (2):
      Documentation: Grammar correction, wording fixes and cleanup
      Mark http-fetch without -a as deprecated

Brandon Casey (1):
      t6030: use $SHELL_PATH to invoke user's preferred shell instead of bare sh

Brian Gernhardt (1):
      t5540-http-test: shorten grep pattern

Bryan Jacobs (1):
      git-svn: Teach dcommit --mergeinfo to handle multiple lines

Conrad Irwin (2):
      Prevent force-updating of the current branch
      Show interpreted branch name in error messages

Dmitry Ivankov (11):
      fast-import: add input format tests
      fast-import: don't fail on omitted committer name
      fast-import: check committer name more strictly
      fsck: add a few committer name tests
      fsck: improve committer/author check
      fast-import: add a test for tree delta base corruption
      fast-import: prevent producing bad delta
      fast-import: count and report # of calls to diff_delta in stats
      fast-import: treat cat-blob as a delta base hint for next blob
      fast-import: add tests for tagging blobs
      fast-import: allow to tag newly created objects

Elijah Newren (55):
      t6042: Add a testcase where git deletes an untracked file
      t6042: Add failing testcase for rename/modify/add-source conflict
      t6042: Add a pair of cases where undetected renames cause issues
      t6042: Add a testcase where undetected rename causes silent file deletion
      t6042: Add tests for content issues with modify/rename/directory conflicts
      t6042: Ensure rename/rename conflicts leave index and workdir in sane state
      t6042: Add failing testcases for rename/rename/add-{source,dest} conflicts
      t6036: Add differently resolved modify/delete conflict in criss-cross test
      t6036: criss-cross with weird content can fool git into clean merge
      t6036: tests for criss-cross merges with various directory/file conflicts
      t6036: criss-cross w/ rename/rename(1to2)/modify+rename/rename(2to1)/modify
      t6036: criss-cross + rename/rename(1to2)/add-source + modify/modify
      t6022: Remove unnecessary untracked files to make test cleaner
      t6022: New tests checking for unnecessary updates of files
      t6022: Add testcase for merging a renamed file with a simple change
      merge-recursive: Make BUG message more legible by adding a newline
      merge-recursive: Correct a comment
      merge-recursive: Mark some diff_filespec struct arguments const
      merge-recursive: Consolidate different update_stages functions
      merge-recursive: Remember to free generated unique path names
      merge-recursive: Avoid working directory changes during recursive case
      merge-recursive: Fix recursive case with D/F conflict via add/add conflict
      merge-recursive: Fix sorting order and directory change assumptions
      merge-recursive: Fix code checking for D/F conflicts still being present
      merge-recursive: Save D/F conflict filenames instead of unlinking them
      merge-recursive: Split was_tracked() out of would_lose_untracked()
      merge-recursive: Allow make_room_for_path() to remove D/F entries
      merge-recursive: Split update_stages_and_entry; only update stages at end
      merge-recursive: Fix deletion of untracked file in rename/delete conflicts
      merge-recursive: Make dead code for rename/rename(2to1) conflicts undead
      merge-recursive: Add comments about handling rename/add-source cases
      merge-recursive: Improve handling of rename target vs. directory addition
      merge-recursive: Consolidate process_entry() and process_df_entry()
      merge-recursive: Cleanup and consolidation of rename_conflict_info
      merge-recursive: Provide more info in conflict markers with file renames
      merge-recursive: When we detect we can skip an update, actually skip it
      merge-recursive: Fix modify/delete resolution in the recursive case
      merge-recursive: Introduce a merge_file convenience function
      merge-recursive: Fix rename/rename(1to2) resolution for virtual merge base
      merge-recursive: Small cleanups for conflict_rename_rename_1to2
      merge-recursive: Defer rename/rename(2to1) handling until process_entry
      merge-recursive: Record more data needed for merging with dual renames
      merge-recursive: Create function for merging with branchname:file markers
      merge-recursive: Consider modifications in rename/rename(2to1) conflicts
      merge-recursive: Make modify/delete handling code reusable
      merge-recursive: Have conflict_rename_delete reuse modify/delete code
      merge-recursive: add handling for rename/rename/add-dest/add-dest
      merge-recursive: Fix working copy handling for rename/rename/add/add
      t6022: Add testcase for spurious "refusing to lose untracked" messages
      merge-recursive: Fix spurious 'refusing to lose untracked file...' messages
      t6022: Additional tests checking for unnecessary updates of files
      merge-recursive: Avoid unnecessary file rewrites
      t6036: criss-cross + rename/rename(1to2)/add-dest + simple modify
      merge-recursive: Fix virtual merge base for rename/rename(1to2)/add-dest
      merge-recursive: Don't re-sort a list whose order we depend upon

Eric Wong (1):
      git-svn: fix fetch with moved path when using rewriteRoot

Fredrik Gustafsson (1):
      push: Don't push a repository with unpushed submodules

Fredrik Kuivinen (6):
      Add obstack.[ch] from EGLIBC 2.10
      Add string search routines from GNU grep
      Adapt the kwset code to Git
      Use kwset in pickaxe
      Use kwset in grep
      obstack: Fix portability issues

Giuseppe Bilotta (2):
      am: format is in $patch_format, not parse_patch
      am: fix stgit patch mangling

Jeff King (12):
      t3030: fix accidental success in symlink rename
      t7006: modernize calls to unset
      test-lib: add helper functions for config
      t7006: use test_config helpers
      setup_pager: set GIT_PAGER_IN_USE
      diff: refactor COLOR_DIFF from a flag into an int
      git_config_colorbool: refactor stdout_is_tty handling
      color: delay auto-color decision until point of use
      config: refactor get_colorbool function
      diff: don't load color config in plumbing
      want_color: automatically fallback to color.ui
      support pager.* for external commands

Jens Lehmann (1):
      fetch: skip on-demand checking when no submodules are configured

Johannes Sixt (2):
      string-list: Add API to remove an item from an unsorted list
      t3005: do not assume a particular order of stdout and stderr of git-ls-files

Jon Seymour (1):
      bisect: take advantage of gettextln, eval_gettextln.

Jonathan Nieder (1):
      Documentation/remote-helpers: explain capabilities first

Junio C Hamano (14):
      combine-diff: support format_callback
      read_gitfile_gently(): rename misnamed function to read_gitfile()
      clone: allow more than one --reference
      clone: clone from a repository with relative alternates
      Update draft release notes to 1.7.7
      Documentation: clarify "git clean -e <pattern>"
      Update draft release notes to 1.7.7
      Revert "Merge branch 'cb/maint-quiet-push' into maint"
      Git 1.7.6.2
      Update draft release notes to 1.7.7
      Minor update to how-to maintain git
      Prepare for 1.7.6.3 maintenance release
      Git 1.7.6.3
      Git 1.7.7-rc1

Matthieu Moy (2):
      Documentation/git-remote-helpers: explain how import works with multiple refs
      (short) documentation for the testgit remote helper

Michael Haggerty (9):
      Add a file comment
      Document struct match_attr
      Increment num_attr in parse_attr_line(), not parse_attr()
      Change parse_attr() to take a pointer to struct attr_state
      Determine the start of the states outside of the pass loop
      Change while loop into for loop
      Unroll the loop over passes
      check-ref-format --print: Normalize refnames that start with slashes
      Forbid DEL characters in reference names

Michael J Gruber (3):
      git-notes.txt: clarify -C vs. copy and -F
      log: Do not decorate replacements with --no-replace-objects
      RelNotes/1.7.7: minor fixes

Michael Stapelberg (1):
      git-daemon.txt: specify --timeout in seconds

Namhyung Kim (1):
      branch -v: honor core.abbrev

Nguyễn Thái Ngọc Duy (6):
      decoration: do not mis-decorate refs with same prefix
      Add for_each_commit_graft() to iterate all grafts
      Move write_shallow_commits to fetch-pack.c
      log: decorate grafted commits with "grafted"
      log: decorate "replaced" on to replaced commits
      clone: allow to clone from .git file

Pete Wyckoff (1):
      git-p4: simple branch tests edits

Ray Chen (1):
      git-svn: New flag to emulate empty directories

Sverre Rabbelier (1):
      SubmittingPathces: remove Cogito reference

Tay Ray Chuan (2):
      xdiff/xprepare: improve O(n*m) performance in xdl_cleanup_records()
      xdiff/xprepare: initialise xdlclassifier_t cf in xdl_prepare_env()

Thomas Rast (8):
      Use memmove in ident_to_git
      t4014: check for empty files from git format-patch --stdout
      t4014: invoke format-patch with --stdout where intended
      t4014: "no-add-headers" is actually called "no-add-header"
      Document negated forms of format-patch --to --cc --add-headers
      strbuf_grow(): maintain nul-termination even for new buffer
      Documentation: clarify effects of -- <path> arguments
      t3903: fix misquoted rev-parse invocation

Vitor Antunes (9):
      git-p4: Allow setting rename/copy detection threshold
      git-p4: Add description of rename/copy detection options
      git-p4: Add test case for rename detection
      git-p4: Add test case for copy detection
      git-p4: Process detectCopiesHarder with --bool
      git-p4: Correct branch base depot path detection
      git-p4: Allow filtering Perforce branches by user
      git-p4: Allow branch definition with git config
      git-p4: Add simple test case for branch import


Version v1.7.7-rc0; changes since v1.7.6.6:
-------------------------------------------

Allan Caffee (1):
      describe: Refresh the index when run with --dirty

Andi Kleen (2):
      Add profile feedback build to git
      Add explanation of the profile feedback build to the README

Clemens Buchacher (1):
      commit: allow partial commits with relative paths

David Aguilar (8):
      setup: Provide GIT_PREFIX to built-ins
      git: Remove handling for GIT_PREFIX
      git-mergetool--lib: Make vimdiff retain the current directory
      t/t7503-pre-commit-hook.sh: Add GIT_PREFIX tests
      difftool--helper: Make style consistent with git
      mergetool--lib: Make style consistent with git
      mergetool--lib: Refactor tools into separate files
      mergetools/meld: Use '--output' when available

David Barr (1):
      am: ignore leading whitespace before patch

David Caldwell (1):
      stash: Add --include-untracked option to stash and remove all untracked files

Dmitry Ivankov (4):
      remote-helpers: export GIT_DIR variable to helpers
      parse-options: export opterr, optbug
      Reduce parse-options.o dependencies
      doc/fast-import: document feature import-marks-if-exists

Duncan Brown (1):
      http: pass http.cookiefile using CURLOPT_COOKIEFILE

Erik Faye-Lund (2):
      verify_path: consider dos drive prefix
      connect: only log if all attempts failed (ipv4)

Fredrik Gustafsson (2):
      git-sh-setup: add die_with_status
      submodule update: continue when a checkout fails

Jakub Narębski (14):
      gitweb.js: No need for inProgress in blame_incremental.js
      gitweb.js: No need for loop in blame_incremental's handleResponse()
      gitweb.js: use setTimeout rather than setInterval in blame_incremental.js
      gitweb: Check permissions first in git_search
      gitweb: Split body of git_search into subroutines
      gitweb: Clean up code in git_search_* subroutines
      gitweb: Make git_search_* subroutines render whole pages
      gitweb: Refactor git_header_html
      git-instaweb: Extract configuring web server into configure_httpd
      git-instaweb: Use $conf, not $fqgitdir/gitweb/httpd.conf
      git-instaweb: Move all actions at the end of script
      git-instaweb: Check that correct config file exists for (re)start
      gitweb: Introduce common system-wide settings for convenience
      gitweb: Git config keys are case insensitive, make config search too

Jeff King (28):
      t: add tests for cloning remotes with detached HEAD
      consider only branches in guess_remote_head
      make copy_ref globally available
      clone: always fetch remote HEAD
      limit "contains" traversals based on commit timestamp
      default core.clockskew variable to one day
      archive: reorder option parsing and config reading
      archive-tar: don't reload default config options
      archive: refactor list of archive formats
      archive: pass archiver struct to write_archive callback
      archive: move file extension format-guessing lower
      archive: refactor file extension format-guessing
      archive: implement configurable tar filters
      archive: provide builtin .tar.gz filter
      upload-archive: allow user to turn off filters
      parse-options: add OPT_STRING_LIST helper
      remote: use new OPT_STRING_LIST
      config: make git_config_parse_parameter a public function
      clone: accept config options on the command line
      git skew: a tool to find how big a clock skew exists in the history
      transport-helper: fix minor leak in push_refs_with_export
      t5800: factor out some ref tests
      t5800: document some non-functional parts of remote helpers
      git-remote-testgit: import non-HEAD refs
      transport-helper: don't feed bogus refs to export push
      git_remote_helpers: push all refs during a non-local export
      streaming: free git_istream upon closing
      docs: put listed example commands in backticks

Jens Lehmann (1):
      Documentation/submodule: add command references and update options

Jim Meyering (1):
      sha1_file: use the correct type (ssize_t, not size_t) for read-style function

Johannes Sixt (7):
      sh-i18n--envsubst: do not crash when no arguments are given
      mingw.c: move definition of mingw_getenv down
      Windows: teach getenv to do a case-sensitive search
      rebase: do not print lots of usage hints after an obvious error message
      Make test number unique
      Skip archive --remote tests on Windows
      t3900: do not reference numbered arguments from the test script

Jon Jensen (1):
      Add option hooks.diffopts to customize change summary in post-receive-email

Jon Seymour (16):
      bisect: move argument parsing before state modification.
      bisect: use && to connect statements that are deferred with eval.
      bisect: add tests to document expected behaviour in presence of broken trees.
      bisect: introduce support for --no-checkout option.
      bisect: introduce --no-checkout support into porcelain.
      bisect: add tests for the --no-checkout option.
      bisect: add documentation for --no-checkout option.
      bisect: cleanup whitespace errors in git-bisect.sh.
      bisect: replace "; then" with "\n<tab>*then"
      misc-sh: fix up whitespace in some other .sh files.
      gettext: add gettextln, eval_gettextln to encode common idiom
      git-am: take advantage of gettextln and eval_gettextln.
      pull: take advantage of eval_gettextln
      stash: take advantage of eval_gettextln
      submodule: take advantage of gettextln and eval_gettextln.
      bisect: add support for bisecting bare repositories

Jonathan Nieder (4):
      test: simplify return value of test_run_
      test: cope better with use of return for errors
      revert: plug memory leak in "cherry-pick root commit" codepath
      merge-recursive: take advantage of hardcoded empty tree

Josh Triplett (5):
      Fix prefix handling in ref iteration functions
      ref namespaces: infrastructure
      ref namespaces: Support remote repositories via upload-pack and receive-pack
      ref namespaces: documentation
      ref namespaces: tests

Junio C Hamano (52):
      index-pack: group the delta-base array entries also by type
      write_idx_file: introduce a struct to hold idx customization options
      index-pack: --verify
      write_idx_file: need_large_offset() helper function
      index-pack --verify: read anomalous offsets from v2 idx file
      packed_object_info_detail(): do not return a string
      sha1_object_info_extended(): expose a bit more info
      sha1_object_info_extended(): hint about objects in delta-base cache
      unpack_object_header(): make it public
      write_entry(): separate two helper functions out
      streaming: a new API to read from the object store
      streaming_write_entry(): use streaming API in write_entry()
      convert: CRLF_INPUT is a no-op in the output codepath
      streaming_write_entry(): support files with holes
      streaming: read non-delta incrementally from a pack
      sha1_file.c: expose helpers to read loose objects
      streaming: read loose objects incrementally
      checkout: make advice when reattaching the HEAD less loud
      merge: reword the final message
      convert.h: move declarations for conversion from cache.h
      Add streaming filter API
      stream filter: add "no more input" to the filters
      Add LF-to-CRLF streaming conversion
      streaming filter: ident filter
      streaming: filter cascading
      t0021: test application of both crlf and ident
      diff --stat-count: finishing touches
      index-pack: a miniscule refactor
      index-pack: start learning to emulate "verify-pack -v"
      index-pack: show histogram when emulating "verify-pack -v"
      verify-pack: use index-pack --verify
      verify_path(): simplify check at the directory boundary
      git-submodule.sh: clarify the "should we die now" logic
      Add option to disable NORETURN
      Start 1.7.7 cycle
      core: log offset pack data accesses happened
      pack-objects: optimize "recency order"
      diff-lib: simplify do_diff_cache()
      diff-lib: refactor run_diff_index() and do_diff_cache()
      Revert clock-skew based attempt to optimize tag --contains traversal
      Update draft release notes to 1.7.7
      Update draft release notes to 1.7.7
      bisect: further style nitpicks
      filter-branch.sh: de-dent usage string
      Update draft release notes to 1.7.7
      test: consolidate definition of $LF
      Sync with "maint"
      Update draft release notes to 1.7.7
      Update draft release notes to 1.7.7
      commit: reduce use of redundant global variables
      Update draft release notes to 1.7.7
      Git 1.7.7-rc0

Ludwig Nussel (1):
      gitweb: allow space as delimiter in mime.types

Markus Duft (1):
      Update the Interix default build configuration.

Michael Haggerty (29):
      doc: Add a link from gitattributes(5) to git-check-attr(1)
      doc: Correct git_attr() calls in example code
      Remove anachronism from comment
      Disallow the empty string as an attribute name
      git-check-attr: Add missing "&&"
      git-check-attr: Add tests of command-line parsing
      Provide access to the name attribute of git_attr
      git-check-attr: Use git_attr_name()
      Teach prepare_attr_stack() to figure out dirlen itself
      Extract a function collect_all_attrs()
      Remove redundant call to bootstrap_attr_stack()
      Remove redundant check
      Allow querying all attributes on a file
      git-check-attr: Extract a function output_attr()
      git-check-attr: Introduce a new variable
      git-check-attr: Extract a function error_with_usage()
      git-check-attr: Handle each error separately
      git-check-attr: Process command-line args more systematically
      git-check-attr: Error out if no pathnames are specified
      git-check-attr: Add an --all option to show all attributes
      git-check-attr: Drive two tests using the same raw data
      git-check-attr: Fix command-line handling to match docs
      Rename git_checkattr() to git_check_attr()
      git-check-attr: test that no output is written to stderr
      git-check-attr: Demonstrate problems with unnormalized paths
      git-check-attr: Demonstrate problems with relative paths
      git-check-attr: Normalize paths
      test-path-utils: Add subcommand "absolute_path"
      test-path-utils: Add subcommand "prefix_path"

Michael J Gruber (3):
      diff.c: omit hidden entries from namelen calculation with --stat
      diff: introduce --stat-lines to limit the stat lines
      diff-options.txt: describe --stat-{width,name-width,count}

Pete Wyckoff (4):
      git-p4: use test_when_finished in tests
      git-p4: add missing && in test
      git-p4: one test missing config git-p4.skipSubmitEditCheck
      git-p4: commit time should be most recent p4 change time

Ramsay Jones (3):
      help.c: Fix detection of custom merge strategy on cygwin
      t1301-*.sh: Fix the 'forced modes' test on cygwin
      config.c: Make git_config() work correctly when called recursively

René Scharfe (6):
      t0021-conversion.sh: fix NoTerminatingSymbolAtEOF test
      grep: fix coloring of hunk marks between files
      grep: add --break
      grep: add --heading
      grep: add option to show whole function as context
      grep: long context options

Roberto Tyley (1):
      Tolerate zlib deflation with window size < 32Kb

Sverre Rabbelier (14):
      t5800: use skip_all instead of prereq
      remote-curl: accept empty line as terminator
      git-remote-testgit: only push for non-local repositories
      git-remote-testgit: fix error handling
      fast-import: introduce 'done' command
      fast-export: support done feature
      transport-helper: factor out push_update_refs_status
      transport-helper: check status code of finish_command
      transport-helper: use the new done feature where possible
      transport-helper: update ref status after push with export
      transport-helper: change import semantics
      transport-helper: Use capname for refspec capability too
      transport-helper: implement marks location as capability
      transport-helper: die early on encountering deleted refs

Tay Ray Chuan (13):
      xdiff/xprepare: use memset()
      xdiff/xprepare: refactor abort cleanups
      xdiff/xpatience: factor out fall-back-diff function
      t4033-diff-patience: factor out tests
      teach --histogram to diff
      xdiff/xprepare: skip classification
      xdiff/xprepare: use a smaller sample size for histogram diff
      xdiff: do away with xdl_mmfile_next()
      http.c: fix an invalid free()
      Makefile: some changes for http-related flag documentation
      xdiff/xhistogram: rework handling of recursed results
      xdiff/xhistogram: rely on xdl_trim_ends()
      xdiff/xhistogram: drop need for additional variable

Theo Niessink (3):
      A Windows path starting with a backslash is absolute
      real_path: do not assume '/' is the path seperator
      verify_dotfile(): do not assume '/' is the path seperator

Thomas Cort (1):
      Makefile: add Minix configuration options.

maximilian attems (2):
      am: pass exclude down to apply
      am: Document new --exclude=<path> option

Ævar Arnfjörð Bjarmason (48):
      i18n: git-am add git-sh-i18n
      i18n: git-am one-line gettext $msg; echo
      i18n: git-am multi-line getttext $msg; echo
      i18n: git-am eval_gettext messages
      i18n: git-am gettext + gettext to stderr message
      i18n: git-am die messages
      i18n: git-am cannot_fallback messages
      i18n: git-am clean_abort messages
      i18n: git-am "Apply?" message
      i18n: git-am "Falling back" say message
      i18n: git-am core say messages
      i18n: git-am printf(1) message to eval_gettext
      i18n: git-pull add git-sh-i18n
      i18n: git-pull die messages
      i18n: git-pull eval_gettext + die message
      i18n: git-pull eval_gettext + warning message
      i18n: git-submodule add git-sh-i18n
      i18n: git-submodule echo + eval_gettext messages
      i18n: git-submodule say + eval_gettext messages
      i18n: git-submodule die + eval_gettext messages
      i18n: git-submodule $update_module say + die messages
      i18n: git-submodule "cached cannot be used" message
      i18n: git-submodule "Submodule change[...]" messages
      i18n: git-submodule $errmsg messages
      i18n: git-submodule "Entering [...]" message
      i18n: git-submodule "[...] path is ignored" message
      i18n: git-submodule "path not initialized" message
      i18n: git-submodule "blob" and "submodule" messages
      i18n: git-stash add git-sh-i18n
      i18n: git-stash echo + gettext message
      i18n: git-stash say + gettext messages
      i18n: git-stash die + gettext messages
      i18n: git-stash die + eval_gettext messages
      i18n: git-stash die + eval_gettext $* messages
      i18n: git-stash die + eval_gettext $1 messages
      i18n: git-stash "unknown option" message
      i18n: git-stash drop_stash say/die messages
      i18n: git-bisect add git-sh-i18n
      i18n: git-bisect gettext + echo message
      i18n: git-bisect echo + gettext messages
      i18n: git-bisect echo + eval_gettext message
      i18n: git-bisect die + gettext messages
      i18n: git-bisect die + eval_gettext messages
      i18n: git-bisect bisect_run + $@ messages
      i18n: git-bisect bisect_reset + $1 messages
      i18n: git-bisect bisect_replay + $1 messages
      i18n: git-bisect [Y/n] messages
      i18n: git-bisect bisect_next_check "You need to" message

张忠山 (1):
      gitweb: pass string after encoding in utf-8 to syntax highlighter


Version v1.7.6.6; changes since v1.7.6.5:
-----------------------------------------

Clemens Buchacher (1):
      Documentation: read-tree --prefix works with existing subtrees

Jack Nagel (1):
      Add MYMETA.json to perl/.gitignore

Jeff King (5):
      attr: don't confuse prefixes with leading directories
      attr: drop misguided defensive coding
      attr: fix leak in free_attr_elem
      thin-pack: try harder to use preferred base objects as base
      imap-send: remove dead code

Junio C Hamano (6):
      attr.c: make bootstrap_attr_stack() leave early
      attr.c: clarify the logic to pop attr_stack
      Documentation: rerere's rr-cache auto-creation and rerere.enabled
      Prepare for 1.7.6.6
      Update draft release notes to 1.7.6.6
      Git 1.7.6.6

Nguyễn Thái Ngọc Duy (1):
      t2203: fix wrong commit command

Thomas Rast (1):
      Documentation: rerere.enabled is the primary way to configure rerere


Version v1.7.6.5; changes since v1.7.6.4:
-----------------------------------------

Haitao Li (1):
      date.c: Support iso8601 timezone formats

Jeff King (3):
      stripspace: fix outdated comment
      fetch: create status table using strbuf
      blame: don't overflow time buffer

Jim Meyering (1):
      make the sample pre-commit hook script reject names with newlines, too

Jonathon Mah (1):
      mergetool: Use args as pathspec to unmerged files

Junio C Hamano (3):
      mergetool: no longer need to save standard input
      name-rev --all: do not even attempt to describe non-commit object
      Git 1.7.6.5

Marc-André Lureau (1):
      mailmap: xcalloc mailmap_info

Martin von Zweigbergk (4):
      remote: write correct fetch spec when renaming remote 'remote'
      remote: "rename o foo" should not rename ref "origin/bar"
      remote rename: warn when refspec was not updated
      remote: only update remote-tracking branch if updating refspec

Michael Haggerty (1):
      notes_merge_commit(): do not pass temporary buffer to other function

Michael J Gruber (3):
      unpack-trees: print "Aborting" to stderr
      git-read-tree.txt: language and typography fixes
      git-read-tree.txt: correct sparse-checkout and skip-worktree description

Nguyễn Thái Ngọc Duy (2):
      git-read-tree.txt: update sparse checkout examples
      Reindent closing bracket using tab instead of spaces

Peter Stuge (1):
      gitweb: Fix links to lines in blobs when javascript-actions are enabled

Ramsay Jones (1):
      t9159-*.sh: skip for mergeinfo test for svn <= 1.4

Sebastian Morr (1):
      Add MYMETA.yml to perl/.gitignore

Stefan Naewe (1):
      Documentation/git-update-index: refer to 'ls-files'

Thomas Rast (1):
      Documentation: basic configuration of notes.rewriteRef


Version v1.7.6.4; changes since v1.7.6.3:
-----------------------------------------

Allan Caffee (1):
      describe: Refresh the index when run with --dirty

Clemens Buchacher (1):
      ls-files: fix pathspec display on error

Giuseppe Bilotta (1):
      am: format is in $patch_format, not parse_patch

Jay Soffian (1):
      git-mergetool: check return value from read

Johannes Sixt (1):
      t3005: do not assume a particular order of stdout and stderr of git-ls-files

Junio C Hamano (4):
      read_gitfile_gently(): rename misnamed function to read_gitfile()
      clone: allow more than one --reference
      clone: clone from a repository with relative alternates
      Git 1.7.6.4

Michael Haggerty (2):
      check-ref-format --print: Normalize refnames that start with slashes
      Forbid DEL characters in reference names

Michael J Gruber (1):
      branch.c: use the parsed branch name

Nguyễn Thái Ngọc Duy (1):
      clone: allow to clone from .git file


Version v1.7.6.3; changes since v1.7.6.2:
-----------------------------------------

Dave Zarzycki (1):
      Do not log unless all connect() attempts fail

Jeff King (9):
      status: fix bug with missing --ignore files
      tag: speed up --contains calculation
      strbuf_split: add a max parameter
      fix "git -c" parsing of values with equals signs
      config: die on error in command-line config
      config: avoid segfault when parsing command-line config
      strbuf: allow strbuf_split to work on non-strbufs
      config: use strbuf_split_str instead of a temporary strbuf
      reset: give better reflog messages

Jens Lehmann (1):
      fetch: skip on-demand checking when no submodules are configured

Jonathan Nieder (2):
      Documentation: quote double-dash for AsciiDoc
      Documentation/i18n: quote double-dash for AsciiDoc

Junio C Hamano (4):
      git status --ignored: tests and docs
      mergetool: check return value from read
      Prepare for 1.7.6.3 maintenance release
      Git 1.7.6.3

Michael Schubert (1):
      reflog: actually default to subcommand 'show'

Sverre Rabbelier (1):
      SubmittingPathces: remove Cogito reference

Vitaliy Ivanov (1):
      tests: cleanup binary test vector files


Version v1.7.6.2; changes since v1.7.6.1:
-----------------------------------------

Junio C Hamano (3):
      whitespace: have SP on both sides of an assignment "="
      Revert "Merge branch 'cb/maint-quiet-push' into maint"
      Git 1.7.6.2

Pang Yan Han (1):
      update-ref: whitespace fix

Thomas Rast (1):
      Documentation: clarify effects of -- <path> arguments


Version v1.7.6.1; changes since v1.7.6:
---------------------------------------

Alex Neronskiy (2):
      Fix documentation of fetch-pack that implies that the client can disconnect after sending wants.
      Document the underlying protocol used by shallow repositories and --depth commands.

Andrew Wong (1):
      rebase -i -p: include non-first-parent commits in todo list

Bert Wesarg (1):
      Documentation: clearly specify what refs are honored by core.logAllRefUpdates

Brandon Casey (2):
      t/t7407: demonstrate that the command called by 'submodule foreach' loses stdin
      git-submodule.sh: preserve stdin for the command spawned by foreach

Brian Harring (1):
      get_indexed_object can return NULL if nothing is in that slot; check for it

Carlos Martín Nieto (1):
      Documentation: clarify the invalidated tree entry format

Clemens Buchacher (3):
      error_routine: use parent's stderr if exec fails
      propagate --quiet to send-pack/receive-pack
      notice error exit from pager

Dmitry Ivankov (1):
      doc/fast-import: clarify notemodify command

Emilio G. Cota (2):
      Documentation: ignore *.pdf files
      Documentation/Makefile: add *.pdf to `clean' target

Erik Faye-Lund (1):
      connect: correctly number ipv6 network adapter

Fredrik Kuivinen (1):
      Makefile: Track changes to LDFLAGS and relink when necessary

Heiko Voigt (2):
      add gitignore entry to description about how to write a builtin
      add technical documentation about ref iteration

Jack Nagel (1):
      Documentation: minor grammatical fix in rev-list-options.txt

Jakub Narębski (2):
      gitweb: Serve text/* 'blob_plain' as text/plain with $prevent_xss
      gitweb: Serve */*+xml 'blob_plain' as text/plain with $prevent_xss

Jeff King (10):
      combine-diff: split header printing into its own function
      combine-diff: calculate mode_differs earlier
      combine-diff: handle binary files as binary
      refactor get_textconv to not require diff_filespec
      combine-diff: respect textconv attributes
      tag: accept multiple patterns for --list
      docs: document --textconv diff option
      t7400: fix bogus test failure with symlinked trash
      fast-export: quote paths in output
      am: refresh the index at start and --resolved

Jens Lehmann (7):
      submodule add: test failure when url is not configured in superproject
      submodule add: allow relative repository path even when no url is set
      submodule add: clean up duplicated code
      fetch: Also fetch submodules in subdirectories in on-demand mode
      submodule add: always initialize .git/config entry
      tests: print failed test numbers at the end of the test run
      submodule: update and add must honor --quiet flag

Johannes Schindelin (1):
      get_pwd_cwd(): Do not trust st_dev/st_ino blindly

Jon Seymour (2):
      Add a test to check that git ls-tree sets non-zero exit code on error.
      Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails.

Julian Phillips (1):
      remote-curl: Add a format check to parsing of info/refs

Junio C Hamano (29):
      diff-index --quiet: learn the "stop feeding the backend early" logic
      checkout -b <name>: correctly detect existing branch
      sha1_file.c: "legacy" is really the current format
      zlib wrapper: refactor error message formatter
      zlib: wrap remaining calls to direct inflate/inflateEnd
      zlib: wrap inflateInit2 used to accept only for gzip format
      zlib: wrap deflate side of the API
      zlib: wrap deflateBound() too
      zlib: zlib can only process 4GB at a time
      zlib: allow feeding more than 4GB in one go
      t/gitweb-lib.sh: skip gitweb tests when perl dependencies are not met
      cygwin: trust executable bit by default
      git-remote.txt: avoid sounding as if loose refs are the only ones in the world
      check-ref-format doc: de-emphasize the implementation detail of a ref
      git.txt: de-emphasize the implementation detail of a ref
      glossary: update description of "tag"
      glossary: update description of head and ref
      glossary: clarify description of HEAD
      submodule sync: do not auto-vivify uninteresting submodule
      "branch -d" can remove more than one branches
      test: skip clean-up when running under --immediate mode
      checkout: do not write bogus reflog entry out
      reset [<commit>] paths...: do not mishandle unmerged paths
      diff -c/--cc: do not mistake "resolved as deletion" as "use working tree"
      receive-pack: do not overstep command line argument array
      helping smart-http/stateless-rpc fetch race
      Prepare for 1.7.6.1
      Update draft release notes for 1.7.6.1
      Git 1.7.6.1

Martin von Zweigbergk (2):
      Documentation: use [verse] for SYNOPSIS sections
      rebase: clarify "restore the original branch"

Michael Haggerty (6):
      git-svn: Demonstrate a bug with root commits in mergeinfo ranges
      git-svn: Disambiguate rev-list arguments to improve error message
      git-svn: Correctly handle root commits in mergeinfo ranges
      gitattributes: Clarify discussion of attribute macros
      gitattributes: Reword "attribute macro" to "macro attribute"
      Do not use C++-style comments

Michael Schubert (1):
      help_unknown_cmd: do not propose an "unknown" cmd

Michael Witten (1):
      filter-branch: Export variable `workdir' for --commit-filter

Namhyung Kim (1):
      git-remote.txt: fix wrong remote refspec

Nguyễn Thái Ngọc Duy (3):
      Break down no-lstat() condition checks in verify_uptodate()
      checkout-index: remove obsolete comment
      fetch-pack: check for valid commit from server

Ori Avtalion (1):
      pull: remove extra space from reflog message

Pavan Kumar Sunkara (1):
      git-config: Remove extra whitespaces

Peter Collingbourne (1):
      Documentation: git-filter-branch honors replacement refs


Version v1.7.6; changes since v1.7.6-rc3:
-----------------------------------------

Junio C Hamano (1):
      Git 1.7.6

Namhyung Kim (1):
      completion: replace core.abbrevguard to core.abbrev


Version v1.7.6-rc3; changes since v1.7.6-rc2:
---------------------------------------------

Andreas Schwab (1):
      builtin/gc.c: add missing newline in message

Brandon Casey (1):
      sh-i18n--envsubst.c: do not #include getopt.h

Christof Krüger (1):
      Documentation: git diff --check respects core.whitespace

Dmitry Ivankov (1):
      Fix typo: existant->existent

Jakub Narębski (1):
      gitweb: 'pickaxe' and 'grep' features requires 'search' to be enabled

Jeff King (2):
      t/Makefile: pass test opts to valgrind target properly
      tests: link shell libraries into valgrind directory

Jim Meyering (1):
      plug a few coverity-spotted leaks

Junio C Hamano (2):
      t7810: avoid unportable use of "echo"
      Git 1.7.6-rc3


Version v1.7.6-rc2; changes since v1.7.6-rc1:
---------------------------------------------

Jonathan Nieder (1):
      gitweb: do not misparse nonnumeric content tag files that contain a digit

Junio C Hamano (1):
      Git 1.7.6-rc2


Version v1.7.6-rc1; changes since v1.7.6-rc0:
---------------------------------------------

Alex Riesen (1):
      t3703: skip more tests using colons in file names on Windows

Brandon Casey (2):
      t7508: demonstrate status's failure to use --porcelain format with -z
      builtin/commit.c: set status_format _after_ option parsing

Jakub Narębski (4):
      gitweb: Move information about installation from README to INSTALL
      gitweb: Describe CSSMIN and JSMIN in gitweb/INSTALL
      gitweb: Move "Requirements" up in gitweb/INSTALL
      gitweb: Fix usability of $prevent_xss

Jeff King (1):
      diff_tree: disable QUICK optimization with diff filter

Jim Meyering (1):
      fetch: do not leak a refspec

Junio C Hamano (2):
      diff: futureproof "stop feeding the backend early" logic
      Git 1.7.6-rc1


Version v1.7.6-rc0; changes since v1.7.5.4:
-------------------------------------------

Boris Faure (1):
      Do not strip empty lines / trailing spaces from a commit message template

Carlos Martín Nieto (1):
      log: convert to parse-options

Conrad Irwin (5):
      Use a temporary index for git commit --interactive
      Allow git commit --interactive with paths
      Add support for -p/--patch to git-commit
      Add commit to list of config.singlekey commands
      Test atomic git-commit --interactive

Csaba Henk (1):
      rebase: create HEAD reflog entry when aborting

Dan McGee (4):
      Share color list between graph and show-branch
      http: make curl callbacks match contracts from curl header
      http-push: use const for strings in signatures
      http-push: refactor curl_easy_setup madness

Elijah Newren (3):
      t6022: New test checking for unnecessary updates of renamed+modified files
      t6022: New test checking for unnecessary updates of files in D/F conflicts
      merge-recursive: When we detect we can skip an update, actually skip it

Erik Faye-Lund (2):
      strbuf: make sure buffer is zero-terminated
      config: support values longer than 1023 bytes

Heiko Voigt (1):
      test that git status works with merge conflict in, .gitmodules

Ingo Molnar (1):
      hashcmp(): inline memcmp() by hand to optimize

Jakub Narębski (13):
      gitweb: Restructure projects list generation
      gitweb: Change the way "content tags" ('ctags') are handled
      gitweb: Mark matched 'ctag' / contents tag (?by_tag=foo)
      gitweb: Split JavaScript for maintability, combining on build
      gitweb.js: Update and improve comments in JavaScript files
      gitweb.js: Provide default values for padding in padLeftStr and padLeft
      gitweb.js: Extract and improve datetime handling
      gitweb.js: Introduce code to handle cookies from JavaScript
      gitweb.js: Provide getElementsByClassName method (if it not exists)
      gitweb: Refactor generating of long dates into format_timestamp_html
      gitweb: Unify the way long timestamp is displayed
      gitweb: Make JavaScript ability to adjust timezones configurable
      gitweb: Refactor reading and parsing config file into read_config_file

Jay Soffian (2):
      "git log -h": typofix misspelled 'suppress'
      Add log.abbrevCommit config variable

Jeff King (26):
      notes: make expand_notes_ref globally accessible
      revision.c: refactor notes ref expansion
      notes: refactor display notes extra refs field
      notes: refactor display notes default handling
      revision.c: support --notes command-line option
      revision.c: make --no-notes reset --notes list
      format-patch: wrap email addresses after long names
      add tests for various blame formats
      blame: refactor porcelain output
      blame: add --line-porcelain output format
      t7501.8: feed a meaningful command
      fetch: avoid repeated commits in mark_complete
      Makefile: sort TEST_PROGRAMS list
      refactor refs_from_alternate_cb to allow passing extra data
      bisect: refactor sha1_array into a generic sha1 list
      receive-pack: eliminate duplicate .have refs
      doc: discuss textconv versus external diff drivers
      remote: allow "-t" with fetch mirrors
      read_in_full: always report errors
      t: test subject handling in format-patch / am pipeline
      mailinfo: always clean up rfc822 header folding
      pretty: add pp_commit_easy function for simple callers
      clean up calling conventions for pretty.c functions
      format-patch: preserve subject newlines with -k
      rebase: write a reflog entry when finishing
      format-patch: make zero-length subject prefixes prettier

Jens Lehmann (3):
      Submodules: Don't parse .gitmodules when it contains, merge conflicts
      unpack-trees: add the dry_run flag to unpack_trees_options
      Teach read-tree the -n|--dry-run option

Jim Meyering (2):
      diffcore-rename.c: avoid set-but-not-used warning
      plug a DIR buffer leak in rerere.c

Johan Herland (10):
      log/pretty-options: Document --[no-]notes and deprecate old notes options
      Make "git notes add" more user-friendly when there are existing notes
      Add several testcases for --dirstat and friends
      Make --dirstat=0 output directories that contribute < 0.1% of changes
      Refactor --dirstat parsing; deprecate --cumulative and --dirstat-by-file
      Add config variable for specifying default --dirstat behavior
      Allow specifying --dirstat cut-off percentage as a floating point number
      New --dirstat=lines mode, doing dirstat analysis based on diffstat
      Improve error handling when parsing dirstat parameters
      Mark dirstat error messages for translation

Johannes Sixt (3):
      t3703: Skip tests using directory name ":" on Windows
      Tweak t3102-ls-tree-wildcards to run on Windows
      Windows: add a wrapper for the shutdown() system call

John 'Warthog9' Hawley (2):
      gitweb: JavaScript ability to adjust time based on timezone
      gitweb.js: Add UI for selecting common timezone to display dates

Jon Seymour (1):
      git: add --info-path and --man-path options

Jonathan Nieder (15):
      revisions: split out handle_revision_pseudo_opt function
      revisions: allow --glob and friends in parse_options-enabled commands
      Documentation: clarify meaning of --html-path, --man-path, and --info-path
      tests: eliminate unnecessary setup test assertions
      tests: teach verify_parents to check for extra parents
      tests: check git does not barf on merge.ff values for future versions of git
      completion: move private shopt shim for zsh to __git_ namespace
      t4018 (funcname patterns): make .gitattributes state easier to track
      t4018 (funcname patterns): make configuration easier to track
      t4018 (funcname patterns): minor cleanups
      userdiff/perl: anchor "sub" and "package" patterns on the left
      userdiff/perl: match full line of POD headers
      userdiff/perl: catch sub with brace on second line
      tests: make test_expect_code quieter on success
      userdiff/perl: tighten BEGIN/END block pattern to reject here-doc delimiters

Junio C Hamano (53):
      merge-recursive: tweak magic band-aid
      git diff -D: omit the preimage of deletes
      pathspec: rename per-item field has_wildcard to use_wildcard
      magic pathspec: add tentative ":/path/from/top/level" pathspec support
      merge: allow "-" as a short-hand for "previous branch"
      magic pathspec: futureproof shorthand form
      magic pathspec: add ":(icase)path" to match case insensitively
      Start 1.7.6 cycle
      Update draft release notes to 1.7.6
      Update draft release notes to 1.7.6
      Update draft release notes to 1.7.6
      Update draft release notes to 1.7.6
      merge: introduce merge.ff configuration variable
      rerere: libify rerere_clear() and rerere_gc()
      index_fd(): turn write_object and format_check arguments into one flag
      index_fd(): split into two helper functions
      convert: rename the "eol" global variable to "core_eol"
      convert: give saner names to crlf/eol variables, types and functions
      convert: make it safer to add conversion attributes
      convert: make it harder to screw up adding a conversion attribute
      git-grep: do not die upon -F/-P when grep.extendedRegexp is set.
      Revert "magic pathspec: add ":(icase)path" to match case insensitively"
      pathspec: drop "lone : means no pathspec" from get_pathspec()
      grep: use get_pathspec() correctly
      fix overstrict :<path> diagnosis
      fix overslow :/no-such-string-ever-existed diagnostics
      rev/path disambiguation: further restrict "misspelled index entry" diag
      Revert "completion: don't declare 'local words' to make zsh happy"
      Update draft release notes to 1.7.6
      revision.c: leave a note for "a lone :" enhancement
      Update draft release notes to 1.7.6
      Bigfile: teach "git add" to send a large file straight to a pack
      Declare lookup_replace_object() in cache.h, not in commit.h
      t6050: make sure we test not just commit replacement
      read_sha1_file(): get rid of read_sha1_file_repl() madness
      inline lookup_replace_object() calls
      read_sha1_file(): allow selective bypassing of replacement mechanism
      Sync release notes for 1.7.6 to exclude what are in maintenance track
      git-grep: update tests now regexp type is "last one wins"
      Makefile: Pass USE_LIBPCRE down in GIT-BUILD-OPTIONS
      Update release notes to 1.7.6
      notes remove: allow removing more than one
      notes remove: --ignore-missing
      notes remove: --stdin reads from the standard input
      show: --ignore-missing
      Revert "Merge branch 'en/merge-recursive'"
      Update draft release notes to 1.7.6
      Update 1.7.6 draft release notes
      require-work-tree wants more than what its name says
      compat/fnmatch/fnmatch.c: give a fall-back definition for NULL
      Update 1.7.6 draft release notes
      log: --quiet should serve as synonym to -s
      Update draft release notes to 1.7.6

Luke Diamand (3):
      git-p4: add option to preserve user names
      git-p4: small improvements to user-preservation
      git-p4: warn if git authorship won't be retained

Marius Storm-Olsen (1):
      Automatically autoload bashcompinit for ZSH, when needed

Martin von Zweigbergk (34):
      rebase: clearer names for directory variables
      rebase: refactor reading of state
      rebase: read state outside loop
      rebase: remove unused rebase state 'prev_head'
      rebase: improve detection of rebase in progress
      rebase: act on command line outside parsing loop
      rebase: stricter check of standalone sub command
      rebase: align variable names
      rebase: align variable content
      rebase: factor out command line option processing
      rebase -i: remove now unnecessary directory checks
      rebase: reorder validation steps
      rebase: factor out reference parsing
      rebase: factor out clean work tree check
      rebase: factor out call to pre-rebase hook
      rebase -i: support --stat
      rebase: remove $branch as synonym for $orig_head
      rebase: extract merge code to new source file
      rebase: extract am code to new source file
      rebase: show consistent conflict resolution hint
      rebase -i: align variable names
      rebase: make -v a tiny bit more verbose
      rebase: factor out sub command handling
      rebase: extract code for writing basic state
      rebase: remember verbose option
      rebase: remember strategy and strategy options
      rebase -m: remember allow_rerere_autoupdate option
      rebase -m: don't print exit code 2 when merge fails
      git-rebase--am: remove unnecessary --3way option
      rebase -i: don't read unused variable preserve_merges
      rebase -i: remove unnecessary state rebase-root
      rebase: use @{upstream} if no upstream specified
      Makefile: do not install sourced rebase scripts
      rebase: define options in OPTIONS_SPEC

Mathias Lafeldt (1):
      t/test-lib.sh: minor readability improvements

Michael Haggerty (1):
      git-svn: add an option to skip the creation of empty directories

Michael J Gruber (7):
      contrib/completion: --notes, --no-notes
      rev-list --count: separate count for --cherry-mark
      t1020: test !alias in subdirectory
      handle_alias: provide GIT_PREFIX to !alias
      config: define and document exit codes
      config: Give error message when not changing a multivar
      sh-18n: quell "unused variable" warning

Michael Schubert (2):
      tag: disallow '-' as tag name
      ls-remote: the --exit-code option reports "no matching refs"

Michał Kiedrowicz (11):
      Documentation: Add --line-number to git-grep synopsis
      contrib/completion: --line-number to git grep
      grep: Put calls to fixmatch() and regmatch() into patmatch()
      grep: Fix a typo in a comment
      grep: Extract compile_regexp_failed() from compile_regexp()
      git-grep: Learn PCRE
      configure: Check for libpcre
      grep: Add basic tests
      git-grep: Bail out when -P is used with -F or -E
      git-grep: Update tests (mainly for -P)
      git-grep: Fix problems with recently added tests

Namhyung Kim (1):
      blame: add --abbrev command line option and make it honor core.abbrev

Nguyễn Thái Ngọc Duy (8):
      Reimplement read_tree_recursive() using tree_entry_interesting()
      Convert read_tree{,_recursive} to support struct pathspec
      Improve tree_entry_interesting() handling code
      setup: return correct prefix if worktree is '/'
      Kill off get_relative_cwd()
      t1011: fix sparse-checkout initialization and add new file
      sparse checkout: do not eagerly decide the fate for whole directory
      t3703, t4208: add test cases for magic pathspec

Nicolas Morey-Chaisemartin (1):
      submodule: Add --force option for git submodule update

Rafael Gieschke (1):
      ident: add NO_GECOS_IN_PWENT for systems without pw_gecos in struct passwd

Ramsay Jones (9):
      Makefile: Use cgcc rather than sparse in the check target
      sparse: Fix an "symbol 'cmd_index_pack' not declared" warning
      sparse: Fix some "Using plain integer as NULL pointer" warnings
      sparse: Fix an "symbol 'format_subject' not declared" warning
      sparse: Fix an "symbol 'merge_file' not decared" warning
      sparse: Fix errors due to missing target-specific variables
      sparse: Fix some "symbol not declared" warnings
      setup.c: Fix some "symbol not declared" sparse warnings
      config.c: Remove unused git_config_global() function

René Scharfe (1):
      strbuf: clarify assertion in strbuf_setlen()

SZEDER Gábor (3):
      completion: don't modify the $cur variable in completion functions
      completion: remove unnecessary _get_comp_words_by_ref() invocations
      completion: don't declare 'local words' to make zsh happy

Sebastien Cevey (3):
      gitweb: Split git_project_list_body in two functions
      gitweb: Modularized git_get_project_description to be more generic
      gitweb: Optional grouping of projects by category

Tay Ray Chuan (1):
      t5541-http-push: add test for chunked

Ævar Arnfjörð Bjarmason (5):
      git-sh-i18n--envsubst: our own envsubst(1) for eval_gettext()
      git-sh-i18n.sh: add no-op gettext() and eval_gettext() wrappers
      git-sh-i18n.sh: add GIT_GETTEXT_POISON support
      Makefile: add xgettext target for *.sh files
      git-sh-i18n--envsubst: add SYNOPSIS section to the documentation


Version v1.7.5.4; changes since v1.7.5.3:
-----------------------------------------

Brandon Casey (2):
      Documentation/technical/api-diff.txt: correct name of diff_unmerge()
      git-submodule.sh: separate parens by a space to avoid confusing some shells

Jeff King (8):
      config: make environment parsing routines static
      git_config: don't peek at global config_parameters
      config: always parse GIT_CONFIG_PARAMETERS during git_config
      read_gitfile_gently: use ssize_t to hold read result
      docs: minor grammar fixes to git-status
      docs: update status --porcelain format
      docs: make sure literal "->" isn't converted to arrow
      docs: fix some antique example output

Jim Meyering (3):
      rerere.c: diagnose a corrupt MERGE_RR when hitting EOF between TAB and '\0'
      remove tests of always-false condition
      diffcore-rename.c: avoid set-but-not-used warning

Jonathan Nieder (3):
      tests: check error message from run_command
      run-command: handle short writes and EINTR in die_child
      Documentation: do not misinterpret refspecs as bold text

Junio C Hamano (26):
      builtin/diff.c: remove duplicated call to diff_result_code()
      diffcore-rename: refactor "too many candidates" logic
      diffcore-rename: record filepair for rename src
      diffcore-rename: fall back to -C when -C -C busts the rename limit
      i18n: do not overuse C_LOCALE_OUTPUT
      i18n: .git file is not a human readable message (t5601)
      i18n: use test_i18ncmp in t1200 and t2200
      i18n: do not overuse C_LOCALE_OUTPUT (grep)
      i18n: use test_i18ngrep in lib-httpd and t2019
      i18n: use test_i18ngrep in t2020, t2204, t3030, and t3200
      i18n: use test_i18ncmp and test_i18ngrep in t3203, t3501 and t3507
      i18n: use test_i18ncmp and test_i18ngrep in t3700, t4001 and t4014
      i18n: use test_i18ncmp and test_i18ngrep in t5541, t6040, t6120, t7004, t7012 and t7060
      i18n: use test_i18ncmp and test_i18ngrep in t7102 and t7110
      i18n: use test_i18ngrep in t7201
      i18n: use test_i18ncmp in t7500
      i18n: use test_i18ngrep in t7501
      i18n: use test_i18ngrep and test_i18ncmp in t7502
      i18n: use test_i18ngrep in t7506
      i18n: use test_i18n{grep,cmp} in t7508
      i18n: use test_i18n{cmp,grep} in t7600, t7607, t7611 and t7811
      handle_options(): do not miscount how many arguments were used
      userformat_find_requirements(): find requirement for the correct format
      config.mak.in: allow "configure --sysconfdir=/else/where"
      Start 1.7.5.4 draft release notes
      Git 1.7.5.4

Mathias Lafeldt (1):
      t/README: unify documentation of test function args

Ramkumar Ramachandra (4):
      Documentation: Add filter.<driver>.* to config
      Documentation: Move diff.<driver>.* from config.txt to diff-config.txt
      Documentation: Add diff.<driver>.* to config
      Documentation: Allow custom diff tools to be specified in 'diff.tool'

Thomas Rast (1):
      add -i: ignore terminal escape sequences

Valentin Haenel (5):
      config.txt: 'interactive.singlekey; is used by...
      git-add.txt: document 'interactive.singlekey'
      git-stash.txt: better docs for '--patch'
      git-checkout.txt: better docs for '--patch'
      git-reset.txt: better docs for '--patch'

Ævar Arnfjörð Bjarmason (7):
      i18n: mark merge "Could not read from" message for translation
      i18n: mark merge "upstream" messages for translation
      i18n: mark merge CHERRY_PICK_HEAD messages for translation
      i18n: mark clone nonexistent repository message for translation
      i18n: mark checkout --detach messages for translation
      i18n: mark checkout plural warning for translation
      i18n: mark init-db messages for translation


Version v1.7.5.3; changes since v1.7.5.2:
-----------------------------------------

Felipe Contreras (1):
      git-completion: fix regression in zsh support

Fraser Tweedale (1):
      gitweb: supply '-n' to gzip for identical output

Jeff King (8):
      send-pack: unbreak push over stateless rpc
      cherry-pick: handle root commits with external strategies
      revert: allow reverting a root commit
      t3503: test cherry picking and reverting root commits
      connect: treat generic proxy processes like ssh processes
      connect: let callers know if connection is a socket
      send-pack: avoid deadlock on git:// push with failed pack-objects
      test core.gitproxy configuration

Jim Meyering (1):
      do not read beyond end of malloc'd buffer

Johannes Sixt (3):
      Documentation/format-patch: suggest Toggle Word Wrap add-on for Thunderbird
      send-pack: avoid deadlock when pack-object dies early
      Honor $(prefix) set in config.mak* when defining ETC_GIT*

Jonathan Nieder (5):
      Revert "t0081 (line-buffer): add buffering tests"
      Documentation: explain how to check for patch corruption
      Documentation: hints for sending patches inline with Thunderbird
      Documentation: publicize KMail hints for sending patches inline
      Documentation: publicize hints for sending patches with GMail

Junio C Hamano (4):
      Revert "Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir"
      setup_revisions(): take pathspec from command line and --stdin correctly
      sideband_demux(): fix decl-after-stmt
      Git 1.7.5.3

Kacper Kornet (1):
      Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir

Michael J Gruber (2):
      config.txt,diff-options.txt: porcelain vs. plumbing for color.diff
      git-svn: Fix git svn log --show-commit

Nguyễn Thái Ngọc Duy (1):
      init/clone: remove short option -L and document --separate-git-dir

Rafael Gieschke (1):
      copy_gecos: fix not adding nlen to len when processing "&"

Stefan Sperling (1):
      remove noise and inaccuracies from git-svn docs


Version v1.7.5.2; changes since v1.7.5.1:
-----------------------------------------

Andrew Wong (1):
      git-rebase--interactive.sh: preserve-merges fails on merges created with no-ff

Brian Gernhardt (1):
      t/annotate-tests: Use echo & cat instead of sed

Carlos Martín Nieto (2):
      format-patch: don't pass on the --quiet flag
      format-patch: document --quiet option

Ciaran Jessup (1):
      Pass empty file to p4merge where no base is suitable.

Dima Sharov (1):
      shell: add missing initialization of argv0_path

Guy Rouillier (1):
      Look for password in both CVS and CVSNT password files.

Jakub Narębski (2):
      git-instaweb: Simplify build dependency on gitweb
      Remove gitweb/gitweb.cgi and other legacy targets from main Makefile

Jeff King (3):
      pretty: quote rfc822 specials in email addresses
      add tests for merge-index / merge-one-file
      merge-one-file: fix broken merges with alternate work trees

Jim Meyering (1):
      Documentation/git-fsck.txt: fix typo: unreadable -> unreachable

Johan Herland (1):
      t5400: Fix a couple of typos

Jonathan Nieder (4):
      Restructure documentation for git-merge-base.
      Documentation: describe the format of messages with inline patches
      add, merge, diff: do not use strcasecmp to compare config variable names
      provide a copy of the LGPLv2.1

Jonathon Mah (1):
      mergetool: Teach about submodules

Josh Stone (1):
      blame: tolerate bogus e-mail addresses a bit better

João Britto (1):
      Remove duplicated "is a"

Junio C Hamano (19):
      test: use $_z40 from test-lib
      diff.c: return filepair from diff_unmerge()
      diff: remove often unused parameters from diff_unmerge()
      diff-files: show unmerged entries correctly
      Fix "add -u" that sometimes fails to resolve unmerged paths
      add -p: 'q' should really quit
      t3701: Editing a split hunk in an "add -p" session
      add--interactive.perl: factor out repeated --recount option
      "add -p": work-around an old laziness that does not coalesce hunks
      t3701: fix here document
      merge: make branch.<name>.mergeoptions correctly override merge.<option>
      t3701: add-p-fix makes the last test to pass
      t1507: avoid "${parameter<op>'word'}" inside double-quotes
      Prepare for 1.7.5.2
      sha1_file: typofix
      git_open_noatime(): drop unused parameter
      Update draft release notes to 1.7.5.2
      Update draft release notes to 1.7.5.2
      Git 1.7.5.2

Martin von Zweigbergk (1):
      diffcore-rename: don't consider unmerged path as source

Michael J Gruber (1):
      git-fast-import.txt: --relative-marks takes no parameter

Sebastian Schuberth (1):
      doc: Clarify that "cherry-pick -x" does not use "git notes"

Sverre Rabbelier (1):
      fast-import: fix option parser for no-arg options

Valentin Haenel (3):
      git-svn.txt: fix usage of --add-author-from
      git-svn.txt: move option descriptions
      git-svn.txt: small typeface improvements

Vincent van Ravesteijn (1):
      Documentation: update to git-merge-base --octopus


Version v1.7.5.1; changes since v1.7.5:
---------------------------------------

Alex Riesen (1):
      clean: unreadable directory may still be rmdir-able if it is empty

Dan McGee (2):
      stash: add two more tests for --no-keep-index
      stash: ensure --no-keep-index and --patch can be used in any order

Jeff King (3):
      stash: fix accidental apply of non-existent stashes
      stash: drop dirty worktree check on apply
      upload-pack: start pack-objects before async rev-list

Johan Herland (4):
      --dirstat: Describe non-obvious differences relative to --stat or regular diff
      --dirstat-by-file: Make it faster and more correct
      Teach --dirstat not to completely ignore rearranged lines within a file
      --dirstat: In case of renames, use target filename instead of source filename

Jon Seymour (1):
      stash: fix false positive in the invalid ref test.

Junio C Hamano (4):
      Teach core.bigfilethreashold to pack-objects
      http: clear POSTFIELDS when initializing a slot
      Start 1.7.5.1 maintenance track
      Git 1.7.5.1

Michael J Gruber (6):
      builtin/log.c: separate default and setup of cmd_log_init()
      t/t1411: test reflog with formats
      reflog: fix overriding of command line options
      t1506: factor out test for "Did you mean..."
      sha1_name: Suggest commit:./file for path in subdir
      date: avoid "X years, 12 months" in relative dates

Sylvain Rabot (1):
      git-send-email: fix missing space in error message

Valentin Haenel (1):
      git-add.txt: document 'add.ignoreErrors'


Version v1.7.5; changes since v1.7.5-rc3:
-----------------------------------------

Junio C Hamano (1):
      Git 1.7.5


Version v1.7.5-rc3; changes since v1.7.5-rc2:
---------------------------------------------

Junio C Hamano (3):
      Revert "run-command: prettify -D_FORTIFY_SOURCE workaround"
      Git 1.7.4.5
      Git 1.7.5-rc3

Michael J Gruber (3):
      git.txt: fix list continuation
      t3306,t5304: avoid clock skew issues
      git-svn.txt: Document --mergeinfo

René Scharfe (1):
      archive: document limitation of tar.umask config setting


Version v1.7.5-rc2; changes since v1.7.5-rc1:
---------------------------------------------

Alejandro R. Sedeño (1):
      git-svn: Add a svn-remote.<name>.pushurl config key

Anders Kaseorg (2):
      gitk: Take only numeric version components when computing $git_version
      gitk: Update cherry-pick error message parsing

Andrew Garber (1):
      git-p4: replace each tab with 8 spaces for consistency

James Y Knight (1):
      git-svn: Cache results of running the executable "git config"

Jim Meyering (1):
      remove doubled words, e.g., s/to to/to/, and fix related typos

Johannes Sixt (2):
      t0001: guard a new test with SYMLINKS prerequisite
      t2021: mark a test as fixed

Junio C Hamano (1):
      Git 1.7.5-rc2

Pat Thoyts (1):
      gitk: Quote tag names in event bindings to avoid problems with % chars

Paul Mackerras (1):
      gitk: Allow user to control how much of the SHA1 ID gets auto-selected

Ramkumar Ramachandra (1):
      revert: Hide '-r' option in default usage

Ramsay Jones (1):
      i18n: avoid parenthesized string as array initializer

Skip (1):
      gitk: spelling fixes in Russian translation

Ævar Arnfjörð Bjarmason (1):
      Makefile: extract Q_() source strings as ngettext()


Version v1.7.5-rc1; changes since v1.7.5-rc0:
---------------------------------------------

Dan McGee (2):
      Remove old binaries from .gitignore
      Fix two unused variable warnings in gcc 4.6

Jakub Narębski (1):
      gitweb: Fix parsing of negative fractional timezones in JavaScript

Jared Hance (1):
      merge: match the help text with the documentation

Jeff King (7):
      merge: merge unborn index before setting ref
      pull: do not clobber untracked files on initial pull
      remote: disallow some nonsensical option combinations
      remote: separate the concept of push and fetch mirrors
      remote: deprecate --mirror
      docs: fix filter-branch subdir example for exotic repo names
      pull: do not clobber untracked files on initial pull

Jens Lehmann (7):
      fetch/pull: recurse into submodules when necessary
      fetch/pull: Add the 'on-demand' value to the --recurse-submodules option
      config: teach the fetch.recurseSubmodules option the 'on-demand' value
      Submodules: Add 'on-demand' value for the 'fetchRecurseSubmodule' option
      fetch/pull: Don't recurse into a submodule when commits are already present
      submodule update: Don't fetch when the submodule commit is already present
      fetch/pull: Describe --recurse-submodule restrictions in the BUGS section

Joe Ratterman (1):
      grep: allow -E and -n to be turned on by default via configuration

Jonathan Nieder (1):
      compat: add missing #include <sys/resource.h>

Junio C Hamano (8):
      merge: merge with the default upstream branch without argument
      "log --cherry-pick" documentation regression fix
      Doc: mention --delta-base-offset is the default for Porcelain commands
      Git 1.7.4.3
      Update release notes
      Start preparing for 1.7.4.4
      Git 1.7.4.4
      Git 1.7.5-rc1

Lawrence Mitchell (1):
      git.el: Don't use font-lock-compile-keywords

Michael J Gruber (3):
      revisions.txt: consistent use of quotes
      revisions.txt: structure with a labelled list
      revisions.txt: language improvements

Nguyễn Thái Ngọc Duy (2):
      git-init.txt: move description section up
      init, clone: support --separate-git-dir for .git file

Nicolas Morey-Chaisemartin (1):
      submodule: process conflicting submodules only once

SZEDER Gábor (1):
      Documentation: trivial grammar fix in core.worktree description

Stephen Boyd (2):
      Makefile: Cover more files with make check
      sparse: Fix errors and silence warnings

Ævar Arnfjörð Bjarmason (70):
      i18n: git-init basic messages
      i18n: git-init "Initialized [...] repository" message
      i18n: git-clone basic messages
      i18n: git-clone "Cloning into" message
      i18n: git-clone "Cloning into" message
      i18n: git-add basic messages
      i18n: git-add "The following paths are ignored" message
      i18n: git-add "did not match any files" message
      i18n: git-add "remove '%s'" message
      i18n: git-add "Unstaged changes" message
      i18n: git-branch basic messages
      i18n: git-branch "remote branch '%s' not found" message
      i18n: git-branch "Deleted branch [...]" message
      i18n: git-branch "git branch -v" messages
      i18n: git-branch "(no branch)" message
      i18n: git-checkout basic messages
      i18n: git-checkout: our/their version message
      i18n: git-checkout describe_detached_head messages
      i18n: git-checkout "HEAD is now at" message
      i18n: git-checkout "Switched to a .. branch" message
      i18n: git-commit basic messages
      i18n: git-commit "middle of a merge" message
      i18n: git-commit formatting messages
      i18n: git-commit print_summary messages
      i18n: git-commit "enter the commit message" message
      i18n: git-commit advice messages
      i18n: git-diff basic messages
      i18n: git-fetch basic messages
      i18n: git-fetch formatting messages
      i18n: git-fetch update_local_ref messages
      i18n: git-fetch split up "(non-fast-forward)" message
      i18n: git-grep basic messages
      i18n: git-grep "--open-files-in-pager" message
      i18n: git-log basic messages
      i18n: git-log "--OPT does not make sense" messages
      i18n: git-merge basic messages
      i18n: git-merge "Updating %s..%s" message
      i18n: git-merge "You have not concluded your merge" messages
      i18n: git-merge "Wonderful" message
      i18n: git-mv basic messages
      i18n: git-mv "bad" messages
      i18n: git-rm basic messages
      i18n: git-reset basic messages
      i18n: git-reset reset_type_names messages
      i18n: git-reset "Unstaged changes after reset" message
      i18n: git-tag basic messages
      i18n: git-tag tag_template message
      i18n: git-push basic messages
      i18n: git-push "prevent you from losing" message
      i18n: git-status basic messages
      i18n: git-status "nothing to commit" messages
      i18n: git-status shortstatus messages
      i18n: git-status "Changes to be committed" message
      i18n: git-status "Initial commit" message
      i18n: git-status "renamed: " message
      i18n: git-archive basic messages
      i18n: git-bundle basic messages
      i18n: git-clean basic messages
      i18n: git-clean clean.requireForce messages
      i18n: git-describe basic messages
      i18n: git-gc basic messages
      i18n: git-gc "Auto packing the repository" message
      i18n: git-notes basic commands
      i18n: git-notes GIT_NOTES_REWRITE_MODE error message
      i18n: git-revert basic messages
      i18n: git-revert "Your local changes" message
      i18n: git-revert literal "me" messages
      i18n: git-revert split up "could not revert/apply" message
      i18n: git-shortlog basic messages
      t2019-checkout-ambiguous-ref.sh: depend on C_LOCALE_OUTPUT


Version v1.7.5-rc0; changes since v1.7.4.5:
-------------------------------------------

Alex Riesen (2):
      git-gui: update russian translation
      git-gui: update russian translation

Alexandre Erwin Ittner (1):
      git-gui: add Brazilian Portuguese (pt-BR) translation

Bert Wesarg (16):
      git-gui: fix ANSI-color parsing
      git-gui: respect conflict marker size
      git-gui: fix browsers [Up To Parent] in sub-sub-directories.
      git-gui: Fix use of renamed tag.
      git-gui: Fix use of hunk tag for non-hunk content.
      git-gui: fix typo in image data
      git-gui: remove 'no such variable' for s error when encounter unknown file states
      git-gui: learn more type change states
      git-gui: rework handling of diff header
      git-gui: handle index lines only in the diff header
      git-gui: name also new symlinks so
      git-gui: there is no "mode *" diff header line
      git-gui: move 3way diff autodetect up
      git-gui: always reset the current tag
      git-gui: handle special content lines only in the diff header section
      git-gui: handle meta diff header lines only in the header section

Carlo Marcelo Arenas Belon (1):
      setup: translate symlinks in filename when using absolute paths

Carlos Martín Nieto (1):
      Name make_*_path functions more accurately

David Barr (8):
      vcs-svn: Allow simple v3 dumps (no deltas yet)
      vcs-svn: Implement Prop-delta handling
      fast-import: add 'ls' command
      vcs-svn: use strbuf for revision log
      vcs-svn: use strbuf for author, UUID, and URL
      vcs-svn: implement perfect hash for node-prop keys
      vcs-svn: implement perfect hash for top-level keys
      vcs-svn: use strchr to find RFC822 delimiter

Drew Northup (1):
      Documentation: "rebase <onto> <that>" stays on <that> branch upon exit

Elijah Newren (2):
      Make rev-list --objects work together with pathspecs
      Add testcases showing how pathspecs are handled with rev-list --objects

Erik Faye-Lund (1):
      alias: use run_command api to execute aliases

Giuseppe Bilotta (1):
      Improve test for pthreads flag

Heiko Voigt (13):
      git gui: keep selected branch when remote is changed in push dialog
      git-gui: scroll down to default selection for push dialog
      git-gui: instead of defaulting to home directory use working directory
      mingw: move unlink wrapper to mingw.c
      mingw: work around irregular failures of unlink on windows
      mingw: make failures to unlink or move raise a question
      mingw: add fallback for rmdir in case directory is in use
      git-gui: fix deleting item from all_remotes variable
      git-gui: always default to the last merged branch in remote delete
      git-gui: refactor remote submenu creation into subroutine
      git-gui: teach fetch/prune menu to do it for all remotes
      git-gui: fetch/prune all entry only for more than one entry
      git-gui: fetch/prune all entry appears last

Ian Wienand (1):
      Obey p4 views when using client spec

Jakob Pfender (2):
      object.h: Remove obsolete struct object_refs
      git-completion: Add git help completion for aliases

Jakub Narębski (1):
      gitweb: Make i18n (encoding) tests in t9500 leave clean state

Jay Soffian (4):
      git-checkout.txt: improve detached HEAD documentation
      Introduce CHERRY_PICK_HEAD
      bash: teach __git_ps1 about CHERRY_PICK_HEAD
      Teach commit about CHERRY_PICK_HEAD

Jeff King (23):
      merge: improve inexact rename limit warning
      bump rename limit defaults (again)
      commit: stop setting rename limit
      add inexact rename detection progress infrastructure
      merge: enable progress reporting for rename detection
      pull: propagate --progress to merge
      compat: provide a fallback va_copy definition
      strbuf: add strbuf_vaddf
      trace: add trace_vprintf
      trace: refactor to support multiple env variables
      trace: factor out "do we want to trace" logic
      trace: add trace_strbuf
      add packet tracing debug code
      trace: give repo_setup trace its own key
      doc: drop author/documentation sections from most pages
      doc: add missing git footers
      docs: point git.txt author credits to git-scm.com
      checkout: add basic tests for detached-orphan warning
      checkout: clear commit marks after detached-orphan check
      checkout: tweak detached-orphan warning format
      t7607: mark known breakage in test 11 as fixed
      t7607: clean up stray untracked file
      tests: kill backgrounded processes more robustly

Jens Lehmann (1):
      tests: fix overeager scrubbing of environment variables

Johannes Schindelin (2):
      mingw_rmdir: set errno=ENOTEMPTY when appropriate
      Remove unused variables

Johannes Sixt (1):
      rerere forget: deprecate invocation without pathspec

Jonathan Nieder (75):
      vcs-svn: Check for errors from open()
      vcs-svn: Eliminate node_ctx.srcRev global
      vcs-svn: Eliminate node_ctx.mark global
      vcs-svn: Unclutter handle_node by introducing have_props var
      vcs-svn: Use mark to indicate nodes with included text
      vcs-svn: handle_node: Handle deletion case early
      vcs-svn: Replace = Delete + Add
      vcs-svn: Combine repo_replace and repo_modify functions
      vcs-svn: Delay read of per-path properties
      vcs-svn: Reject path nodes without Node-action
      vcs-svn: More dump format sanity checks
      vcs-svn: Make source easier to read on small screens
      vcs-svn: Split off function for handling of individual properties
      vcs-svn: Sharpen parsing of property lines
      vcs-svn: Allow change nodes for root of tree (/)
      cherry-pick/revert: add support for -X/--strategy-option
      unpack-trees: handle lstat failure for existing directory
      unpack-trees: handle lstat failure for existing file
      userdiff: simplify word-diff safeguard
      t4034 (diff --word-diff): style suggestions
      glossary: define pathspec
      checkout: split off a function to peel away branchname arg
      checkout: rearrange update_refs_for_switch for clarity
      t3507: introduce pristine-detach helper
      checkout: add missing const to describe_detached_head
      update-index --refresh --porcelain: add missing const
      vcs-svn: eliminate global byte_buffer
      vcs-svn: replace buffer_read_string memory pool with a strbuf
      vcs-svn: collect line_buffer data in a struct
      vcs-svn: teach line_buffer to handle multiple input files
      vcs-svn: make test-line-buffer input format more flexible
      tests: give vcs-svn/line_buffer its own test script
      vcs-svn: tweak test-line-buffer to not assume line-oriented input
      t0081 (line-buffer): add buffering tests
      vcs-svn: add binary-safe read function
      vcs-svn: allow character-oriented input
      vcs-svn: allow input from file descriptor
      vcs-svn: teach line_buffer about temporary files
      fast-import: make code "-Wpointer-arith" clean
      vcs-svn: introduce repo_read_path to check the content at a path
      vcs-svn: handle_node: use repo_read_path
      vcs-svn: simplify repo_modify_path and repo_copy
      vcs-svn: allow input errors to be detected promptly
      compat: fall back on __va_copy if available
      wt-status: add helpers for printing wt-status lines
      commit: refer to commit template as s->fp
      commit, status: use status_printf{,_ln,_more} helpers
      i18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set
      wt-status: add helpers for printing wt-status lines
      commit: refer to commit template as s->fp
      commit, status: use status_printf{,_ln,_more} helpers
      i18n: add stub Q_() wrapper for ngettext
      i18n: "make distclean" should clean up after "make pot"
      tests: stop worrying about obsolete environment variables
      tests: suppress system gitattributes
      gitattributes: drop support for GIT_ATTR_NOGLOBAL
      config: drop support for GIT_CONFIG_NOGLOBAL
      tests: scrub environment of GIT_* variables
      declare 1-bit bitfields to be unsigned
      vcs-svn: remove spurious semicolons
      mktag: avoid %td in format string
      unbreak and eliminate NO_C99_FORMAT
      run-command: prettify -D_FORTIFY_SOURCE workaround
      vcs-svn: improve support for reading large files
      vcs-svn: make buffer_skip_bytes return length read
      vcs-svn: make buffer_copy_bytes return length read
      vcs-svn: improve reporting of input errors
      tests: avoid nonportable {foo,bar} glob
      vcs-svn: make reading of properties binary-safe
      vcs-svn: remove buffer_read_string
      vcs-svn: avoid unnecessary copying of log message and author
      vcs-svn: handle log message with embedded NUL
      vcs-svn: add missing cast to printf argument
      vcs-svn: add missing cast to printf argument
      tests: make sure input to sed is newline terminated

Junio C Hamano (29):
      unpack-trees.c: cosmetic fix
      unpack_trees(): skip trees that are the same in all input
      t4034 (diff --word-diff): add a minimum Perl drier test vector
      t6004: add pathspec globbing test for log family
      checkout: introduce --detach synonym for "git checkout foo^{commit}"
      Rename t2019 with typo "amiguous" that meant "ambiguous"
      Revert "unpack_trees(): skip trees that are the same in all input"
      grep --no-index: honor pathspecs correctly
      rev-list: --left/right-only are mutually exclusive
      commit: give final warning when reattaching HEAD to leave commits behind
      Start preparing release notes to 1.7.5
      Update Release Notes to 1.7.5
      Update draft release notes to 1.7.5
      refs_from_alternate: helper to use refs from alternates
      fetch-pack: objects in our alternates are available to us
      fetch-pack: factor out hardcoded handshake window size
      fetch-pack: progressively use larger handshake windows
      fetch-pack: use smaller handshake window for initial request
      Update drart release notes to 1.7.5
      Update draft release notes to 1.7.5
      rerere: make sure it works even in a workdir attached to a young repository
      Update draft release note to 1.7.5
      Revert "upload-pack: Implement no-done capability"
      Revert "fetch-pack: Implement no-done capability"
      enable "no-done" extension only when fetching over smart-http
      Fix potential local deadlock during fetch-pack
      enable "no-done" extension only when serving over smart-http
      Revert two "no-done" reverts
      Git 1.7.5-rc0

Kevin Cernekee (1):
      gitweb: fix #patchNN anchors when path_info is enabled

Martin von Zweigbergk (2):
      rerere "remaining"
      mergetool: don't skip modify/remove conflicts

Matthieu Moy (2):
      push: better error messages when push.default = tracking
      push: better error message when no remote configured

Michael Horowitz (1):
      git-p4 submit: prevent 'Jobs' section from being removed from p4 change log

Michael J Gruber (14):
      revlist.c: introduce --left/right-only for unsymmetric picking
      t6007: Make sure we test --cherry-pick
      rev-list: documentation and test for --left/right-only
      git-add: make -A description clearer vs. -u
      rev-list/log: factor out revision mark generation
      revision.c: introduce --cherry-mark
      rev-list: documentation and test for --cherry-mark
      log --cherry: a synonym
      t6007: test rev-list --cherry
      git-log: put space after commit mark
      RelNotes/1.7.5.txt: typo and language fixes
      t6009: use test_commit() from test-lib.sh
      revision.c: introduce --min-parents and --max-parents options
      rev-list --min-parents,--max-parents: doc, test and completion

Michael Witten (1):
      vcs-svn: a void function shouldn't try to return something

Nguyễn Thái Ngọc Duy (22):
      Add struct pathspec
      diff-no-index: use diff_tree_setup_paths()
      Convert struct diff_options to use struct pathspec
      tree_entry_interesting(): remove dependency on struct diff_options
      Move tree_entry_interesting() to tree-walk.c and export it
      diff-tree: convert base+baselen to writable strbuf
      tree_entry_interesting(): refactor into separate smaller functions
      tree_entry_interesting(): support depth limit
      tree_entry_interesting(): fix depth limit with overlapping pathspecs
      tree_entry_interesting(): support wildcard matching
      tree_entry_interesting(): optimize wildcard matching when base is matched
      pathspec: add match_pathspec_depth()
      struct rev_info: convert prune_data to struct pathspec
      Convert ce_path_match() to use struct pathspec
      Convert ce_path_match() to use match_pathspec_depth()
      grep: convert to use struct pathspec
      grep: use match_pathspec_depth() for cache/worktree grepping
      grep: use writable strbuf from caller for grep_tree()
      grep: drop pathspec_matches() in favor of tree_entry_interesting()
      t7810: overlapping pathspecs and depth limit
      Make hash-object more robust against malformed objects
      git.c: reorder builtin command list

Nicolas Kaiser (1):
      transport-helper.c: fix check for (size_t < 0)

Pat Thoyts (2):
      git-gui: Include version check and test for tearoff menu entry
      git-gui: detect the use of MUI langauge packs on Windows

Pete Wyckoff (12):
      git-p4: test script
      git-p4: fix key error for p4 problem
      git-p4: add missing newline in initial import message
      git-p4: accommodate new move/delete type in p4
      git-p4: reinterpret confusing p4 message
      git-p4: better message for "git-p4 sync" when not cloned
      git-p4: decode p4 wildcard characters
      git-p4: support clone --bare
      git-p4: fix clone @all regression
      git-p4: test clone @all
      git-p4: fix sync new branch regression
      git-p4: test sync new branch

Piotr Krukowiecki (1):
      Documentation: running test with --debug keeps "trash" directory

Ramkumar Ramachandra (1):
      fast-import: Introduce --import-marks-if-exists

René Scharfe (2):
      repo-config: add deprecation warning
      grep: read patterns from stdin with -f -

SZEDER Gábor (2):
      bash: fix misindented esac statement in __git_complete_file()
      bash: complete 'git diff ...branc<TAB>'

Sebastian Schuberth (4):
      mergetool--lib: Sort tools alphabetically for easier lookup
      mergetool--lib: Add Beyond Compare 3 as a tool
      mergetool--lib: Sort tools alphabetically for easier lookup
      mergetool--lib: Add Beyond Compare 3 as a tool

Serge Ziryukin (1):
      git-gui: fix russian translation typos

Shawn O. Pearce (6):
      smart-http: Don't use Expect: 100-Continue
      smart-http: Really never use Expect: 100-continue
      fetch-pack: Finish negotation if remote replies "ACK %s ready"
      upload-pack: More aggressively send 'ACK %s ready'
      fetch-pack: Implement no-done capability
      upload-pack: Implement no-done capability

Skip (1):
      git-gui: spelling fixes in russian translation

Stefan Naewe (1):
      git-gui: use --exclude-standard to check for untracked files

Stephen Boyd (1):
      Fix sparse warnings

Thomas Rast (2):
      Exhibit merge bug that clobbers index&WT
      t4034: bulk verify builtin word regex sanity

Tor Arvid Lund (3):
      git-p4: Teach gitConfig method about arguments.
      Teach git-p4 to ignore case in perforce filenames if configured.
      git-p4: Fix error message crash in P4Sync.commit.

Uwe Kleine-König (2):
      get_remote_url(): use the same data source as ls-remote to get remote urls
      git-request-pull: open-code the only invocation of get_remote_url

Vitor Antunes (2):
      git-p4: Improve rename detection support
      git-p4: Add copy detection support

Ævar Arnfjörð Bjarmason (4):
      gitignore: add test-mktemp to ignore list
      i18n: add no-op _() and N_() wrappers
      i18n: add GETTEXT_POISON to simulate unfriendly translator
      i18n: Makefile: "pot" target to extract messages marked for translation


Version v1.7.4.5; changes since v1.7.4.4:
-----------------------------------------

Johannes Sixt (1):
      t2021: mark a test as fixed

Junio C Hamano (2):
      "log --cherry-pick" documentation regression fix
      Git 1.7.4.5

Michael J Gruber (3):
      git.txt: fix list continuation
      t3306,t5304: avoid clock skew issues
      git-svn.txt: Document --mergeinfo

René Scharfe (1):
      archive: document limitation of tar.umask config setting


Version v1.7.4.4; changes since v1.7.4.3:
-----------------------------------------

Jakub Narębski (2):
      git-instaweb: Change how gitweb.psgi is made runnable as standalone app
      gitweb: Fix parsing of negative fractional timezones in JavaScript

Jeff King (4):
      strbuf: add fixed-length version of add_wrapped_text
      format-patch: wrap long header lines
      format-patch: rfc2047-encode newlines in headers
      pull: do not clobber untracked files on initial pull

Jonathan Nieder (1):
      compat: add missing #include <sys/resource.h>

Junio C Hamano (6):
      list-objects.c: don't add an unparsed NULL as a pending tree
      Rename core.abbrevlength back to core.abbrev
      diff/status: refactor opportunistic index update
      update $GIT_INDEX_FILE when there are racily clean entries
      Start preparing for 1.7.4.4
      Git 1.7.4.4

Libor Pechacek (2):
      Sanity-check config variable names
      Disallow empty section and variable names

Linus Torvalds (1):
      Make the default abbrev length configurable

Matthieu Moy (1):
      log: fix --max-count when used together with -S or -G

Michael J Gruber (2):
      git-log.txt,rev-list-options.txt: -n/--max-count is commit limiting
      git-log.txt,rev-list-options.txt: put option blocks in proper order

Nicolas Morey-Chaisemartin (1):
      submodule: process conflicting submodules only once

SZEDER Gábor (1):
      Documentation: trivial grammar fix in core.worktree description


Version v1.7.4.3; changes since v1.7.4.2:
-----------------------------------------

Alex Riesen (1):
      HOME must be set before calling git-init when creating test repositories

Carlos Martín Nieto (1):
      Documentation/config.txt: make truth value of numbers more explicit

Clemens Buchacher (1):
      do not overwrite untracked symlinks

Fabian Keil (1):
      git-cvsimport.perl: Bail out right away when reading from the server fails

Jeff King (1):
      docs: fix filter-branch subdir example for exotic repo names

Joe Ratterman (1):
      grep: Add the option '--line-number'

Johan Herland (1):
      branch/checkout --track: Ensure that upstream branch is indeed a branch

Johannes Sixt (3):
      Demonstrate breakage: checkout overwrites untracked symlink with directory
      stash: fix incorrect quoting in cleanup of temporary files
      stash: copy the index using --index-output instead of cp -p

Junio C Hamano (9):
      checkout: fix bug with ambiguous refs
      apply: do not patch lines that were already patched
      apply -v: show offset count when patch did not apply exactly
      diff --quiet: disable optimization when --diff-filter=X is used
      doc: technical details about the index file format
      t8001: check the exit status of the command being tested
      parse-remote: typofix
      Doc: mention --delta-base-offset is the default for Porcelain commands
      Git 1.7.4.3

Maxin john (1):
      contrib/thunderbird-patch-inline: do not require bash to run the script

Michael J Gruber (2):
      git-bisect.txt: streamline run presentation
      git-bisect.txt: example for bisecting with hot-fix

Michael Witten (3):
      git tag documentation grammar fixes and readability updates
      Typos: t/README
      strbuf.h: remove a tad stale docs-in-comment and reference api-doc instead

Nguyễn Thái Ngọc Duy (1):
      doc: technical details about the index file format

Piotr Krukowiecki (2):
      git stash: show status relative to current directory
      Add test: git stash shows status relative to current dir

Stephen Boyd (2):
      parse-remote: replace unnecessary sed invocation
      git-pack-objects.txt: fix grammatical errors


Version v1.7.4.2; changes since v1.7.4.1:
-----------------------------------------

Adam Monsen (1):
      diff format documentation: clarify --cc and -c

Alexei Sholik (3):
      Documentation: remove redundant colons in git-for-each-ref.txt
      Add Author and Documentation sections to git-for-each-ref.txt
      docs: fix grammar in gitattributes.txt

Arnout Engelen (1):
      Improve error messages when temporary file creation fails

Ben Walton (1):
      Work around broken ln on solaris as used in t8006

Carlos Martín Nieto (3):
      valgrind: ignore SSE-based strlen invalid reads
      make_absolute_path: return the input path if it points to our buffer
      t/README: Add a note about running commands under valgrind

Clemens Buchacher (1):
      Documentation: clarify -u<mode> option defaults

Eric Hanchrow (1):
      branch_merged: fix grammar in warning

Erik Faye-Lund (1):
      mingw: add minimum getrlimit() compatibility stub

Jakub Narębski (2):
      gitweb: Always call parse_date with timezone parameter
      gitweb: Fix handling of fractional timezones in parse_date

Jay Soffian (1):
      merge: honor prepare-commit-msg hook

Jeff King (5):
      string_list_append: always set util pointer to NULL
      clone: die when trying to clone missing local path
      diff: handle diffstat of rewritten binary files
      diff: don't retrieve binary blobs for diffstat
      bisect: visualize with git-log if gitk is unavailable

Johan Herland (1):
      push.default: Rename 'tracking' to 'upstream'

Jonathan Nieder (9):
      correct type of EMPTY_TREE_SHA1_BIN
      tests: skip terminal output tests on OS X
      commit: error out for missing commit message template
      enums: omit trailing comma for portability
      compat: make gcc bswap an inline function
      standardize brace placement in struct definitions
      branch: split off function that writes tracking info and commit subject
      cherry: split off function to print output lines
      diff --submodule: split into bite-sized pieces

Junio C Hamano (8):
      CodingGuidelines: downcase placeholders in usage messages
      verify-pack: add --stat-only to the synopsis section
      SubmittingPatches: clarify the expected commit log description
      Revert "core.abbrevguard: Ensure short object names stay unique a bit longer"
      Prepare draft release notes to 1.7.4.2
      bisect: explain the rationale behind 125
      Update draft release notes to 1.7.4.2
      Git 1.7.4.2

Kevin Cernekee (1):
      gitweb: highlight: replace tabs with spaces

Linus Torvalds (3):
      for_each_hash: allow passing a 'void *data' pointer to callback
      diffcore-rename: properly honor the difference between -M and -C
      diffcore-rename: improve estimate_similarity() heuristics

Masatake Osanai (1):
      perl: command_bidi_pipe() method should set-up git environmens

Mathias Lafeldt (1):
      Fix typo in t/README

Michael J Gruber (16):
      commit,tag: use same wording for -F
      commit,status: describe --porcelain just like push
      clone,init: describe --template using the same wording
      commit,merge,tag: describe -m likewise
      add: describe --patch like checkout, reset
      commit,status: describe -u likewise
      git-tag.txt: list all modes in the description
      pull: do not display fetch usage on --help-all
      Make <identifier> lowercase as per CodingGuidelines
      Make <identifier> lowercase as per CodingGuidelines
      Make <identifier> lowercase as per CodingGuidelines
      Make <identifier> lowercase in Documentation
      git-patch-id: test for "no newline" markers
      git-patch-id: do not trip over "no newline" markers
      mergetool-lib: call vim in readonly mode for diffs
      rev-list-options.txt: typo fix

Michal Rokos (2):
      Makefile: add NO_FNMATCH_CASEFOLD to HP-UX section
      git-compat-util.h: Honor HP C's noreturn attribute

Michał Kiedrowicz (1):
      Documentation: fix a typo in git-apply.txt

Nguyễn Thái Ngọc Duy (2):
      parse_tag_buffer(): do not prefixcmp() out of range
      init: remove unnecessary check

Piotr Krukowiecki (1):
      ls-remote documentation: <refs> argument is optional

Ralf Wildenhues (1):
      configure: use AC_LANG_PROGRAM consistently

SZEDER Gábor (1):
      git-am.txt: advertise 'git am --abort' instead of 'rm .git/rebase-apply'

Shawn O. Pearce (2):
      Limit file descriptors used by packs
      sha1_file.c: Don't retain open fds on small packs

Spencer E. Olson (2):
      submodule: no [--merge|--rebase] when newly cloned
      t7406: "git submodule update {--merge|--rebase]" with new submodules

Ævar Arnfjörð Bjarmason (4):
      gitweb/gitweb.perl: remove use of qw(...) as parentheses
      gitweb/gitweb.perl: don't call S_ISREG() with undef
      t/gitweb-lib.sh: Ensure that errors are shown for --debug --immediate
      t/t7500-commit.sh: use test_cmp instead of test


Version v1.7.4.1; changes since v1.7.4:
---------------------------------------

Chris Packham (1):
      clone: fixup recurse_submodules option

Jakub Narębski (1):
      gitweb: Mention optional Perl modules in INSTALL

Jens Lehmann (2):
      t5526: Fix wrong argument order in "git config"
      pull: Document the "--[no-]recurse-submodules" options

Johannes Sixt (2):
      start_command: flush buffers in the WIN32 code path as well
      t4120-apply-popt: help systems with core.filemode=false

Jonathan Nieder (5):
      quote.h: simplify the inclusion
      fast-import: clarify documentation of "feature" command
      fast-import: introduce "feature notes" command
      compat: helper for detecting unsigned overflow
      svn-fe: warn about experimental status

Junio C Hamano (3):
      fsck: drop unused parameter from traverse_one_object()
      fsck: do not give up too early in fsck_dir()
      Git 1.7.4.1

Nguyễn Thái Ngọc Duy (4):
      diff: support --cached on unborn branches
      Add const to parse_{commit,tag}_buffer()
      sha1_file.c: move find_cached_object up so sha1_object_info can use it
      sha1_object_info: examine cached_object store too

Pat Thoyts (2):
      t3509: use unconstrained initial test to setup repository.
      t7407: fix line endings for mingw build

Shawn O. Pearce (1):
      bundle: Use OFS_DELTA in bundle files

Sitaram Chamarty (1):
      post-receive-email: suppress error if description file missing

Uwe Kleine-König (1):
      Documentation/merge subtree How-To: fix typo


Version v1.7.4; changes since v1.7.4-rc3:
-----------------------------------------

Adam Tkac (1):
      Don't pass "--xhtml" to hightlight in gitweb.perl script.

Jeff King (3):
      rebase: use explicit "--" with checkout
      rebase: give a better error message for bogus branch
      tests: sanitize more git environment variables

Jonathan Nieder (2):
      fast-import: treat filemodify with empty tree as delete
      rebase -i: clarify in-editor documentation of "exec"

Junio C Hamano (1):
      Git 1.7.4


Version v1.7.4-rc3; changes since v1.7.4-rc2:
---------------------------------------------

Alexey Shumkin (1):
      userdiff: match Pascal class methods

Björn Steinbrink (1):
      Correctly report corrupted objects

Erik Faye-Lund (1):
      exec_cmd: remove unused extern

Johannes Sixt (2):
      Fix expected values of setup tests on Windows
      t/README: hint about using $(pwd) rather than $PWD in tests

Jonathan Nieder (9):
      ll-merge: simplify opts == NULL case
      Documentation/fast-import: capitalize beginning of sentence
      remote-ext: do not segfault for blank lines
      Documentation/fast-import: put explanation of M 040000 <dataref> "" in context
      tests: cosmetic improvements to the repo-setup test
      tests: compress the setup tests
      Documentation: do not treat reset --keep as a special case
      Subject: setup: officially support --work-tree without --git-dir
      t1510: fix typo in the comment of a test

Junio C Hamano (2):
      Documentation updates for 'GIT_WORK_TREE without GIT_DIR' historical usecase
      Git 1.7.4-rc3

Ramsay Jones (1):
      svndump.c: Fix a printf format compiler warning


Version v1.7.4-rc2; changes since v1.7.4-rc1:
---------------------------------------------

Anders Kaseorg (1):
      Mark gitk script executable

Brandon Casey (3):
      trace.c: ensure NULL is not passed to printf
      t0001,t1510,t3301: use sane_unset which always returns with status 0
      t3032: limit sed branch labels to 8 characters

Jeff King (1):
      docs: explain diff.*.binary option

Jonathan Nieder (3):
      diff: funcname and word patterns for perl
      gitweb: make logo optional
      t9010: svnadmin can fail even if available

Junio C Hamano (2):
      userdiff/perl: catch BEGIN/END/... and POD as headers
      Git 1.7.4-rc2

Matthieu Moy (1):
      commit: suggest --amend --reset-author to fix commiter identity

Michael J Gruber (1):
      RelNotes/1.7.4: minor fixes

Ramsay Jones (7):
      lib-git-svn.sh: Move web-server handling code into separate function
      t9157-*.sh: Add an svn version check
      t6038-*.sh: Pass the -b (--binary) option to sed on cygwin
      t3032-*.sh: Pass the -b (--binary) option to sed on cygwin
      t3032-*.sh: Do not strip CR from line-endings while grepping on MinGW
      t4135-*.sh: Skip the "backslash" tests on cygwin
      t9157-*.sh: Make the svn version check more precise

StephenB (1):
      git svn: fix the final example in man page

Sylvain Rabot (2):
      gitweb: add extensions to highlight feature map
      gitweb: remove unnecessary test when closing file descriptor

Thomas Rast (4):
      Documentation/git-archive: spell --worktree-attributes correctly
      Documentation/githooks: post-rewrite-copy-notes never existed
      submodule: fix relative url parsing for scp-style origin
      t0000: quote TAP snippets in test code


Version v1.7.4-rc1; changes since v1.7.4-rc0:
---------------------------------------------

Antonio Ospite (1):
      t/t9001-send-email.sh: fix '&&' chain in some tests

Jonathan Nieder (3):
      vcs-svn: Error out for v3 dumps
      gitweb: skip logo in atom feed when there is none
      daemon: support <directory> arguments again

Junio C Hamano (3):
      t0021: avoid getting filter killed with SIGPIPE
      Git 1.7.3.5
      Git 1.7.4-rc1

Michael J Gruber (2):
      cvsimport: partial whitespace cleanup
      cvsimport: handle the parsing of uppercase config options

Pete Wyckoff (1):
      convert filter: supply path to external driver

Ralf Wildenhues (1):
      Fix typos in the documentation

Robin H. Johnson (1):
      t9001: Fix test prerequisites


Version v1.7.4-rc0; changes since v1.7.3.5:
-------------------------------------------

Aleksi Aalto (1):
      status: show branchname with a configurable color

Alexander Sulfrian (2):
      daemon: add helper function named_sock_setup
      daemon: allow more than one host address given via --listen

Alexandre Erwin Ittner (1):
      gitk: Add Brazilian Portuguese (pt-BR) translation

Anders Kaseorg (4):
      describe: Use for_each_rawref
      describe: Do not use a flex array in struct commit_name
      describe: Store commit_names in a hash table by commit SHA1
      describe: Delay looking up commits until searching for an inexact match

Antonio Ospite (1):
      git-send-email.perl: make initial In-Reply-To apply only to first email

Brandon Casey (3):
      diffcore-pickaxe.c: a void function shouldn't try to return something
      Makefile: add NO_FNMATCH_CASEFOLD to IRIX sections
      t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'

Brian Gernhardt (1):
      t6022: Use -eq not = to test output of wc -l

Christopher Wilson (1):
      Enable highlight executable path as a configuration option

Clemens Buchacher (6):
      t7607: use test-lib functions and check MERGE_HEAD
      t7607: add leading-path tests
      add function check_ok_to_remove()
      lstat_cache: optionally return match_len
      do not overwrite files in leading path
      use persistent memory for rejected paths

Dan McGee (3):
      mergetool-lib: combine vimdiff and gvimdiff run blocks
      mergetool-lib: add a three-way diff view for vim/gvim
      mergetool-lib: make the three-way diff the default for vim/gvim

David Barr (3):
      fast-import: Allow filemodify to set the root
      fast-import: insert new object entries at start of hash bucket
      fast-import: let importers retrieve blobs

Elijah Newren (53):
      Document pre-condition for tree_entry_interesting
      tree-walk: Correct bitrotted comment about tree_entry()
      tree_entry_interesting(): Make return value more specific
      diff_tree(): Skip skip_uninteresting() when all remaining paths interesting
      t3509: Add rename + D/F conflict testcase that recursive strategy fails
      merge-recursive: D/F conflicts where was_a_dir/file -> was_a_dir
      t6032: Add a test checking for excessive output from merge
      t6022: Add test combinations of {content conflict?, D/F conflict remains?}
      t6022: Add tests for reversing order of merges when D/F conflicts present
      t6022: Add tests with both rename source & dest involved in D/F conflicts
      t6022: Add paired rename+D/F conflict: (two/file, one/file) -> (one, two)
      t6022: Add tests for rename/rename combined with D/F conflicts
      t6020: Modernize style a bit
      t6020: Add a testcase for modify/delete + directory/file conflict
      t6036: Test index and worktree state, not just that merge fails
      t6036: Add a second testcase similar to the first but with content changes
      t6036: Add testcase for undetected conflict
      merge-recursive: Small code clarification -- variable name and comments
      merge-recursive: Rename conflict_rename_rename*() for clarity
      merge-recursive: Nuke rename/directory conflict detection
      merge-recursive: Move rename/delete handling into dedicated function
      merge-recursive: Move delete/modify handling into dedicated function
      merge-recursive: Move process_entry's content merging into a function
      merge-recursive: New data structures for deferring of D/F conflicts
      merge-recursive: New function to assist resolving renames in-core only
      merge-recursive: Have process_entry() skip D/F or rename entries
      merge-recursive: Structure process_df_entry() to handle more cases
      merge-recursive: Update conflict_rename_rename_1to2() call signature
      merge-recursive: Update merge_content() call signature
      merge-recursive: Avoid doubly merging rename/add conflict contents
      merge-recursive: Move handling of double rename of one file to two
      merge-recursive: Move handling of double rename of one file to other file
      merge-recursive: Delay handling of rename/delete conflicts
      merge-recursive: Delay content merging for renames
      merge-recursive: Delay modify/delete conflicts if D/F conflict present
      conflict_rename_delete(): Check whether D/F conflicts are still present
      conflict_rename_rename_1to2(): Fix checks for presence of D/F conflicts
      merge_content(): Check whether D/F conflicts are still present
      handle_delete_modify(): Check whether D/F conflicts are still present
      merge-recursive: Make room for directories in D/F conflicts
      merge-recursive: Remove redundant path clearing for D/F conflicts
      t4017 (diff-retval): replace manual exit code check with test_expect_code
      t100[12] (read-tree-m-2way, read_tree_m_u_2way): add missing &&
      t4002 (diff-basic): use test_might_fail for commands that might fail
      t4202 (log): Replace '<git-command> || :' with test_might_fail
      t4019 (diff-wserror): add lots of missing &&
      t4026 (color): remove unneeded and unchained command
      t5602 (clone-remote-exec): add missing &&
      t6016 (rev-list-graph-simplify-history): add missing &&
      t7001 (mv): add missing &&
      t7601 (merge-pull-config): add missing &&
      t7800 (difftool): add missing &&
      Introduce sane_unset and use it to ensure proper && chaining

Eric Sunshine (5):
      Side-step sed line-ending "corruption" leading to t6038 failure.
      Side-step MSYS-specific path "corruption" leading to t5560 failure.
      Fix 'clone' failure at DOS root directory.
      Fix Windows-specific macro redefinition warning.
      Add MinGW-specific execv() override.

Erik Faye-Lund (20):
      mingw: do not crash on open(NULL, ...)
      inet_ntop: fix a couple of old-style decls
      mingw: use real pid
      mingw: support waitpid with pid > 0 and WNOHANG
      mingw: add kill emulation
      daemon: use run-command api for async serving
      daemon: use full buffered mode for stderr
      daemon: get remote host address from root-process
      mingw: import poll-emulation from gnulib
      mingw: use poll-emulation from gnulib
      daemon: use socklen_t
      daemon: make --inetd and --detach incompatible
      daemon: opt-out on features that require posix
      msvc: opendir: fix malloc-failure
      msvc: opendir: allocate enough memory
      msvc: opendir: do not start the search
      win32: dirent: handle errors
      msvc: opendir: handle paths ending with a slash
      win32: use our own dirent.h
      help: always suggest common-cmds if prefix of cmd

Giuseppe Bilotta (15):
      gitweb: use fullname as hash_base in heads link
      gitweb: introduce remote_heads feature
      gitweb: git_get_heads_list accepts an optional list of refs
      gitweb: separate heads and remotes lists
      gitweb: nagivation menu for tags, heads and remotes
      gitweb: allow action specialization in page header
      gitweb: remotes view for a single remote
      gitweb: refactor repository URL printing
      gitweb: provide a routine to display (sub)sections
      gitweb: group remote heads by remote
      git instaweb: enable remote_heads
      web--browse: coding style
      web--browse: split valid_tool list
      web--browse: support opera, seamonkey and elinks
      web--browse: better support for chromium

Greg Brockman (4):
      Allow creation of arbitrary git-shell commands
      Add interactive mode to git-shell for user-friendliness
      Add sample commands for git-shell
      shell: Display errors from improperly-formatted command lines

Ilari Liusvaara (4):
      Add bidirectional_transfer_loop()
      git-remote-fd
      git-remote-ext
      remote-fd/ext: finishing touches after code review

Jakub Narębski (12):
      t/gitweb-lib.sh: Use GIT_BUILD_DIR
      t/gitweb-lib.sh: Use tabs for indent consistently
      gitweb: Move call to evaluate_git_version after evaluate_gitweb_config
      t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED
      gitweb/Makefile: Add 'test' and 'test-installed' targets
      gitweb/Makefile: Include gitweb/config.mak
      gitweb: Fix test of highlighting support in t9500
      gitweb: Fix bug in evaluate_path_info
      gitweb: Improve behavior for actionless path_info gitweb URLs
      gitweb: Time::HiRes is in core for Perl 5.8
      gitweb: selectable configurations that change with each request
      gitweb: Fix handling of whitespace in generated links

Jan Krüger (1):
      read-tree: deprecate syntax without tree-ish args

Jeff King (13):
      tests: factor out terminal handling from t7006
      tests: test terminal output to both stdout and stderr
      push: pass --progress down to git-pack-objects
      config: treat non-existent config files as empty
      diff: report bogus input to -C/-M/-B
      docs: clarify git diff modes of operation
      allow command-specific pagers in pager.<cmd>
      docs: default to more modern toolset
      default color.status.branch to "same as header"
      tests: add some script lint checks
      tests: flip executable bit on t9158
      handle arbitrary ints in git_config_maybe_bool
      t2107: mark passing test as success

Jens Lehmann (5):
      clone: Add the --recurse-submodules option as alias for --recursive
      fetch/pull: Add the --recurse-submodules option
      Add the 'fetch.recurseSubmodules' config setting
      Submodules: Add the "fetchRecurseSubmodules" config option
      git submodule: Remove now obsolete tests before cloning a repo

Joe Perches (1):
      git-send-email.perl: Add --to-cmd

Johan Herland (23):
      notes.c: Hexify SHA1 in die() message from init_notes()
      (trivial) notes.h: Minor documentation fixes to copy_notes()
      notes.h: Make default_notes_ref() available in notes API
      notes.c: Reorder functions in preparation for next commit
      notes.h/c: Allow combine_notes functions to remove notes
      notes.h/c: Propagate combine_notes_fn return value to add_note() and beyond
      (trivial) t3303: Indent with tabs instead of spaces for consistency
      notes.c: Use two newlines (instead of one) when concatenating notes
      builtin/notes.c: Split notes ref DWIMmery into a separate function
      git notes merge: Initial implementation handling trivial merges only
      builtin/notes.c: Refactor creation of notes commits.
      git notes merge: Handle real, non-conflicting notes merges
      git notes merge: Add automatic conflict resolvers (ours, theirs, union)
      Documentation: Preliminary docs on 'git notes merge'
      git notes merge: Manual conflict resolution, part 1/2
      git notes merge: Manual conflict resolution, part 2/2
      git notes merge: List conflicting notes in notes merge commit message
      git notes merge: --commit should fail if underlying notes ref has moved
      git notes merge: Add another auto-resolving strategy: "cat_sort_uniq"
      git notes merge: Add testcases for merging notes trees at different fanouts
      Provide 'git notes get-ref' to easily retrieve current notes ref
      cmd_merge(): Parse options before checking MERGE_HEAD
      Provide 'git merge --abort' as a synonym to 'git reset --merge'

Johannes Schindelin (1):
      merge-octopus: Work around environment issue on Windows

Johannes Sixt (4):
      t7300: add a missing SYMLINKS prerequisite
      apply --whitespace=fix: fix tab-in-indent
      Make the tab width used for whitespace checks configurable
      Avoid duplicate test number t7609

Jonathan Nieder (52):
      merge-recursive: expose merge options for builtin merge
      ll-merge: replace flag argument with options struct
      commit-tree: free commit message before exiting
      test-lib: allow test code to check the list of declared prerequisites
      test_terminal: catch use without TTY prerequisite
      test_terminal: ensure redirections work reliably
      fast-import: filemodify after M 040000 <tree> "" crashes
      fast-import: tighten M 040000 syntax
      t9300 (fast-import): another test for the "replace root" feature
      fast-import: do not clear notes in do_change_note_fanout()
      user-manual: remote-tracking can be checked out, with detached HEAD
      tests: add missing &&
      tests: add missing &&, batch 2
      test-lib: introduce test_line_count to measure files
      t6022 (renaming merge): chain test commands with &&
      t1502 (rev-parse --parseopt): test exit code from "-h"
      t1400 (update-ref): use test_must_fail
      t3301 (notes): use test_expect_code for clarity
      t3404 (rebase -i): unroll test_commit loops
      t3404 (rebase -i): move comment to description
      t3404 (rebase -i): introduce helper to check position of HEAD
      t4124 (apply --whitespace): use test_might_fail
      wrapper: move xmmap() to sha1_file.c
      wrapper: move odb_* to environment.c
      path helpers: move git_mkstemp* to wrapper.c
      strbuf: move strbuf_branchname to sha1_name.c
      wrapper: give zlib wrappers their own translation unit
      pack-objects: mark file-local variable static
      Remove pack file handling dependency from wrapper.o
      Describe various forms of "be quiet" using OPT__QUIET
      fast-import: treat SIGUSR1 as a request to access objects early
      git-rev-parse.txt: clarify --git-dir
      gitweb: document $per_request_config better
      fast-import: stricter parsing of integer options
      fast-import: clarify documentation of "feature" command
      fast-import: Allow cat-blob requests at arbitrary points in stream
      git submodule -b ... of current HEAD fails
      Makefile: dependencies for vcs-svn tests
      parse-options: clearer reporting of API misuse
      parse-options: move NODASH sanity checks to parse_options_check
      parse-options: sanity check PARSE_OPT_NOARG flag
      parse-options: never suppress arghelp if LITERAL_ARGHELP is set
      parse-options: allow git commands to invent new option types
      parse-options: make resuming easier after PARSE_OPT_STOP_AT_NON_OPTION
      update-index: migrate to parse-options API
      treap: make treap_insert return inserted node
      vcs-svn: fix intermittent repo_tree corruption
      Makefile: transport-helper uses thread-utils.h
      t9300: avoid short reads from dd
      bash: simple reimplementation of _get_comp_words_by_ref
      t9300: use perl "head -c" clone in place of "dd bs=1 count=16000" kluge
      t0001: test git init when run via an alias

Joshua Jensen (6):
      Add string comparison functions that respect the ignore_case variable.
      Case insensitivity support for .gitignore via core.ignorecase
      Add case insensitivity support for directories when using git status
      Add case insensitivity support when using git ls-files
      Support case folding for git add when core.ignorecase=true
      Support case folding in git fast-import when core.ignorecase=true

Junio C Hamano (31):
      gitdiffcore doc: update pickaxe description
      diff: pass the entire diff-options to diffcore_pickaxe()
      git log/diff: add -G<regexp> that greps in the patch text
      diff/log -G<pattern>: tests
      grep: move logic to compile header pattern into a separate helper
      log --author: take union of multiple "author" requests
      disallow branch names that start with a hyphen
      Start 1.7.4 cycle
      merge-recursive: Restructure showing how to chain more process_* functions
      Martin Langhoff has a new e-mail address
      Make test script t9157 executable
      merge-recursive:make_room_for_directories - work around dumb compilers
      core.abbrevguard: Ensure short object names stay unique a bit longer
      read_sha1_file(): report correct name of packfile with a corrupt object
      A loose object is not corrupt if it cannot be read due to EMFILE
      t9001: send-email interation with --in-reply-to and --chain-reply-to
      t3404: do not use 'describe' to implement test_cmp_rev
      Update draft release notes to 1.7.4
      Update draft release notes to 1.7.4
      t9300: remove unnecessary use of /dev/stdin
      t9119: do not compare "Text Last Updated" line from "svn info"
      t9010 fails when no svn is available
      get_sha1: teach ":$n:<path>" the same relative path logic
      Documentation/git.txt: update list of maintenance releases
      fetch_populated_submodules(): document dynamic allocation
      thread-utils.h: simplify the inclusion
      Relnotes: remove items fixed on 'maint'
      get_sha1_oneline: fix lifespan rule of temp_commit_buffer variable
      Update draft release notes to 1.7.4
      set_try_to_free_routine(NULL) means "do nothing special"
      Git 1.7.4-rc0

Justin Frankel (2):
      merge-recursive --patience
      merge-recursive: options to ignore whitespace changes

Kevin Ballard (9):
      merge-recursive: option to specify rename threshold
      diff: add synonyms for -M, -C, -B
      completion: Support the DWIM mode for git checkout
      blame: Add option to show author email instead of name
      submodule: preserve all arguments exactly when recursing
      submodule: only preserve flags across recursive status/update invocations
      rebase: better rearranging of fixup!/squash! lines with --autosquash
      rebase: teach --autosquash to match on sha1 in addition to message
      diff: add --detect-copies-harder as a synonym for --find-copies-harder

Kirill Smelkov (1):
      gitk: Show notes by default (like git log does)

Mark Lodato (2):
      completion: make compatible with zsh
      completion: fix zsh check under bash with 'set -u'

Markus Duft (2):
      add support for the SUA layer (interix; windows)
      Interix: add configure checks

Martin Storsjö (1):
      Improve the mingw getaddrinfo stub to handle more use cases

Martin von Zweigbergk (3):
      rebase: support --verify
      Use reflog in 'pull --rebase . foo'
      completion: add missing configuration variables

Matthieu Moy (9):
      Better "Changed but not updated" message in git-status
      Replace "remote tracking" with "remote-tracking"
      Change remote tracking to remote-tracking in non-trivial places
      everyday.txt: change "tracking branch" to "remote-tracking branch"
      Change "tracking branch" to "remote-tracking branch"
      Change incorrect uses of "remote branch" meaning "remote-tracking"
      Change incorrect "remote branch" to "remote tracking branch" in C code
      user-manual.txt: explain better the remote(-tracking) branch terms
      git-branch.txt: mention --set-upstream as a way to change upstream configuration

Michael J Gruber (4):
      t5503: fix typo
      test: allow running the tests under "prove"
      t800?-blame.sh: retitle uniquely
      t1020-subdirectory: test alias expansion in a subdirectory

Mike Pape (3):
      mingw: add network-wrappers for daemon
      mingw: implement syslog
      compat: add inet_pton and inet_ntop prototypes

Nguyễn Thái Ngọc Duy (64):
      branch -h: show usage even in an invalid repository
      checkout-index -h: show usage even in an invalid repository
      commit/status -h: show usage even with broken configuration
      gc -h: show usage even with broken configuration
      ls-files -h: show usage even with corrupt index
      merge -h: show usage even with corrupt index
      update-index -h: show usage even with corrupt index
      add: do not rely on dtype being NULL behavior
      get_cwd_relative(): do not misinterpret root path
      builtins: print setup info if repo is found
      Add t1510 and basic rules that run repo setup
      t1510: setup case #0
      t1510: setup case #1
      t1510: setup case #2
      t1510: setup case #3
      t1510: setup case #4
      t1510: setup case #5
      t1510: setup case #6
      t1510: setup case #7
      t1510: setup case #8
      t1510: setup case #9
      t1510: setup case #10
      t1510: setup case #11
      t1510: setup case #12
      t1510: setup case #13
      t1510: setup case #14
      t1510: setup case #15
      t1510: setup case #16
      t1510: setup case #17
      t1510: setup case #18
      t1510: setup case #19
      t1510: setup case #20
      t1510: setup case #21
      t1510: setup case #22
      t1510: setup case #23
      t1510: setup case #24
      t1510: setup case #25
      t1510: setup case #26
      t1510: setup case #27
      t1510: setup case #28
      t1510: setup case #29
      t1510: setup case #30
      t1510: setup case #31
      cache.h: realign and use (1 << x) form for CE_* constants
      dir.c: add free_excludes()
      unpack-trees: move all skip-worktree checks back to unpack_trees()
      unpack-trees: fix sparse checkout's "unable to match directories"
      Revert "excluded_1(): support exclude files in index"
      setup: save prefix (original cwd relative to toplevel) in startup_info
      Make prefix_path() return char* without const
      get_sha1: support relative path ":path" syntax
      get_sha1_oneline: make callers prepare the commit list to traverse
      get_sha1: support $commit^{/regex} syntax
      get_sha1: handle special case $commit^{/}
      Add git_config_early()
      Use git_config_early() instead of git_config() during repo setup
      setup: limit get_git_work_tree()'s to explicit setup case only
      setup: clean up setup_bare_git_dir()
      setup: clean up setup_discovered_git_dir()
      setup: rework setup_explicit_git_dir()
      Remove all logic from get_git_work_tree()
      Revert "Documentation: always respect core.worktree if set"
      git.txt: correct where --work-tree path is relative to
      setup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd

Pascal Obry (3):
      Minor indentation fix.
      Remove @smtp_host_parts variable as not used.
      New send-email option smtpserveroption.

Pat Notz (6):
      commit: helper methods to reduce redundant blocks of code
      pretty.c: teach format_commit_message() to reencode the output
      commit: --fixup option for use with rebase --autosquash
      add tests of commit --fixup
      commit: --squash option for use with rebase --autosquash
      add tests of commit --squash

Pat Thoyts (13):
      MinGW: fix stat() and lstat() implementations for handling symlinks
      MinGW: Report errors when failing to launch the html browser.
      Skip t1300.70 and 71 on msysGit.
      Do not strip CR when grepping HTTP headers.
      Skip 'git archive --remote' test on msysGit
      git-am: fix detection of absolute paths for windows
      git-gui: show command-line errors in a messagebox on Windows
      git-gui: enable the Tk console when tracing/debugging on Windows
      git-gui: generic version trimming
      git-gui: use full dialog width for old name when renaming branch
      git-gui: correct assignment of work-tree
      git-gui: use wordprocessor tab style to ensure tabs work as expected
      git-gui: apply color information from git diff output

Peter Krefting (1):
      gitk: Update Swedish translation (290t)

Peter van der Does (1):
      bash: get --pretty=m<tab> completion to work with bash v4

Petr Onderka (1):
      Add global and system-wide gitattributes

Ralf Thielow (1):
      commit.c: Remove backward goto in read_craft_line()

Ramkumar Ramachandra (10):
      shell: Rewrite documentation and improve error message
      t4014-format-patch: Call test_tick before committing
      format-patch: Don't go over merge commits
      fmt_merge_msg: Change fmt_merge_msg API to accept shortlog_len
      merge: Make '--log' an integer option for number of shortlog entries
      merge: Make 'merge.log' an integer or boolean option
      t6200-fmt-merge-msg: Exercise 'merge.log' to configure shortlog length
      t6200-fmt-merge-msg: Exercise '--log' to configure shortlog length
      Porcelain scripts: Rewrite cryptic "needs update" error message
      t9010 (svn-fe): Eliminate dependency on svn perl bindings

Ramsay Jones (10):
      msvc: Fix compilation errors in compat/win32/sys/poll.c
      msvc: git-daemon.exe: Fix linker "unresolved externals" error
      msvc: Fix build by adding missing INTMAX_MAX define
      msvc: Fix macro redefinition warnings
      t3600-rm.sh: Don't pass a non-existent prereq to test #15
      t9142: Move call to start_httpd into the setup test
      lib-git-svn.sh: Avoid setting web server variables unnecessarily
      lib-git-svn.sh: Add check for mis-configured web server variables
      t9501-*.sh: Fix a test failure on Cygwin
      difftool: Fix failure on Cygwin

René Scharfe (7):
      add description parameter to OPT__VERBOSE
      add description parameter to OPT__DRY_RUN
      add description parameter to OPT__QUIET
      add OPT__FORCE
      archive: improve --verbose description
      branch: improve --verbose description
      verify-tag: document --verbose

SZEDER Gábor (7):
      bisect: improve error message of 'bisect log' while not bisecting
      bisect: improve error msg of 'bisect reset' when original HEAD is deleted
      bisect: check for mandatory argument of 'bisect replay'
      bash: offer refs for 'git bisect start'
      bash: not all 'git bisect' subcommands make sense when not bisecting
      bash: support more 'git notes' subcommands and their options
      bash: support pretty format aliases

Santi Béjar (1):
      parse-remote: handle detached HEAD

Schalk, Ken (1):
      t3030: Add a testcase for resolvable rename/add conflict with symlinks

Sebastian Schuberth (3):
      MinGW: Use pid_t more consequently, introduce uid_t for greater compatibility
      MinGW: Add missing file mode bit defines
      On Windows, avoid git-gui to call Cygwin's nice utility

Shawn O. Pearce (2):
      Use git_open_noatime when accessing pack data
      Work around EMFILE when there are too many pack files

Stefan Haller (2):
      gitk: Prevent the text pane from becoming editable
      gitk: Make text selectable on Mac

Stephen Boyd (4):
      send-email: Use To: headers in patch files
      send-email: Don't leak To: headers between patches
      parse-options: Don't call parse_options_check() so much
      parse-options: do not infer PARSE_OPT_NOARG from option type

Steven Walter (1):
      git-svn: allow the mergeinfo property to be set

Sven Eckelmann (1):
      contrib/ciabot: git-describe commit instead of HEAD

Tay Ray Chuan (4):
      t5523-push-upstream: add function to ensure fresh upstream repo
      t5523-push-upstream: test progress messages
      format-patch: page output with --stdout
      bash completion: add basic support for git-reflog

Thiago Farina (3):
      commit: Add commit_list prefix in two function names.
      builtin/branch.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.
      builtin/rm.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.

Thomas Rast (3):
      {cvs,svn}import: use the new 'git read-tree --empty'
      t0003: properly quote $HOME
      gitk: Add the equivalent of diff --color-words

Torsten Bögershausen (1):
      t9143: do not fail when unhandled.log.gz is not created

Yann Dirson (1):
      diff: use "find" instead of "detect" as prefix for long forms of -M and -C

Ævar Arnfjörð Bjarmason (22):
      send-email: use catfile() to concatenate files
      send-email: use lexical filehandle for opendir
      send-email: use lexical filehandles for $compose
      send-email: use lexical filehandles during sending
      send-email: get_patch_subject doesn't need a prototype
      send-email: file_declares_8bit_cte doesn't need a prototype
      send-email: unique_email_list doesn't need a prototype
      send-email: cleanup_compose_files doesn't need a prototype
      send-email: use \E***\Q instead of \*\*\*
      send-email: sanitize_address use $foo, not "$foo"
      send-email: sanitize_address use qq["foo"], not "\"foo\""
      send-email: use (?:) instead of () if no match variables are needed
      send-email: send_message die on $!, not $?
      send-email: make_message_id use "require" instead of "use"
      send-email: use Perl idioms in while loop
      send-email: is_rfc2047_quoted use qr// regexes
      send-email: extract_valid_address use qr// regexes
      Makefile & configure: add a NO_FNMATCH flag
      Makefile & configure: add a NO_FNMATCH_CASEFOLD flag
      test-lib: make test_expect_code a test command
      t7004-tag.sh: re-arrange git tag comment for clarity
      tests: use test_cmp instead of piping to diff(1)

Štěpán Němec (2):
      CodingGuidelines: Add a section on writing documentation
      diff,difftool: Don't use the {0,2} notation in usage strings


Version v1.7.3.5; changes since v1.7.3.4:
-----------------------------------------

Brandon Casey (1):
      test-lib.sh/test_decode_color(): use octal not hex in awk script

Jakub Narębski (1):
      gitweb: Include links to feeds in HTML header only for '200 OK' response

Jeff King (1):
      ident: die on bogus date format

Jiang Xin (1):
      Fix typo in git-gc document.

Jonathan Nieder (2):
      t0050: fix printf format strings for portability
      gitweb: skip logo in atom feed when there is none

Junio C Hamano (5):
      commit: die before asking to edit the log message
      am --abort: keep unrelated commits since the last failure and warn
      rebase --skip: correctly wrap-up when skipping the last patch
      Prepare for 1.7.3.5
      Git 1.7.3.5

Kevin Ballard (1):
      status: Quote paths with spaces in short format

Kirill Smelkov (2):
      t/t8006: Demonstrate blame is broken when cachetextconv is on
      fill_textconv(): Don't get/put cache if sha1 is not valid

Mark Lodato (1):
      fsck docs: remove outdated and useless diagnostic

Michael J Gruber (2):
      git-difftool.txt: correct the description of $BASE and describe $MERGED
      difftool: provide basename to external tools

Ramsay Jones (1):
      t3419-*.sh: Fix arithmetic expansion syntax error

René Scharfe (1):
      close file on error in read_mmfile()

Robin H. Johnson (2):
      Fix false positives in t3404 due to SHELL=/bin/false
      t9001: Fix test prerequisites

Thomas Rast (1):
      userdiff: fix typo in ruby and python word regexes

Vasyl' Vavrychuk (1):
      trace.c: mark file-local function static


Version v1.7.3.4; changes since v1.7.3.3:
-----------------------------------------

Alan Raison (1):
      contrib/hooks/post-receive-email: fix return values from prep_for_email

Alejandro R. Sedeño (1):
      Add --force to git-send-email documentation

Anders Kaseorg (1):
      apply: Recognize epoch timestamps with : in the timezone

Christoph Mallon (1):
      diff --check: correct line numbers of new blank lines at EOF

Clemens Buchacher (6):
      t7607: use test-lib functions and check MERGE_HEAD
      t7607: add leading-path tests
      add function check_ok_to_remove()
      lstat_cache: optionally return match_len
      do not overwrite files in leading path
      use persistent memory for rejected paths

Federico Cuello (1):
      Fix git-apply with -p greater than 1

Gabriel Corona (2):
      t5550: test HTTP authentication and userinfo decoding
      Fix username and password extraction from HTTP URLs

Jakub Narębski (1):
      gitweb: Introduce esc_attr to escape attributes of HTML elements

Jari Aalto (1):
      git-pull.txt: Mention branch.autosetuprebase

Jeff King (2):
      log.decorate: accept 0/1 bool values
      reflogs: clear flags properly in corner case

Jonathan "Duke" Leto (1):
      Correct help blurb in checkout -p and friends

Jonathan Nieder (4):
      apply: handle patches with funny filename and colon in timezone
      cherry-pick/revert: transparently refresh index
      Documentation: split gitignore page into sections
      Documentation: point to related commands from gitignore

Junio C Hamano (5):
      test: git-apply -p2 rename/chmod only
      Do not link with -lcrypto under NO_OPENSSL
      Prepare for 1.7.3.4
      Prepare for 1.7.3.4
      Git 1.6.4.5

Kirill Smelkov (1):
      setup: make sure git_dir path is in a permanent buffer, getenv(3) case

Martin von Zweigbergk (2):
      rebase --abort: do not update branch ref
      rebase: only show stat if configured to true

Michael J Gruber (6):
      t/t7004-tag: test handling of rfc1991 signatures
      verify-tag: factor out signature detection
      tag: factor out sig detection for body edits
      tag: factor out sig detection for tag display
      tag: recognize rfc1991 signatures
      git-rm.txt: Fix quoting

Nguyễn Thái Ngọc Duy (1):
      entry.c: remove "checkout-index" from error messages

Nicolas Pitre (2):
      diff: don't presume empty file when corresponding object is missing
      make pack-objects a bit more resilient to repo corruption

Tay Ray Chuan (10):
      smart-http: Don't change POST to GET when following redirect
      t5550-http-fetch: add missing '&&'
      t5550-http-fetch: add test for http-fetch
      shift end_url_with_slash() from http.[ch] to url.[ch]
      url: add str wrapper for end_url_with_slash()
      http-backend: use end_url_with_slash()
      http-push: Normalise directory names when pushing to some WebDAV servers
      http-push: check path length before using it
      http-push: add trailing slash at arg-parse time, instead of later on
      http-fetch: rework url handling

Ævar Arnfjörð Bjarmason (2):
      perl: bump the required Perl version to 5.8 from 5.6.[21]
      perl: use "use warnings" instead of -w


Version v1.7.3.3; changes since v1.7.3.2:
-----------------------------------------

Andreas Köhler (1):
      submodule sync: Update "submodule.<name>.url" for empty directories

Andrew Waters (1):
      Fix handling of git-p4 on deleted files

Brandon Casey (2):
      userdiff.c: add builtin fortran regex patterns
      builtin/revert.c: don't dereference a NULL pointer

Brian Gernhardt (1):
      t/gitweb-lib: Don't pass constant to decode_utf8

Clemens Buchacher (3):
      add rebase patch id tests
      do not search functions for patch ID
      do not overwrite untracked during merge from unborn branch

Daniel Knittl-Frank (1):
      bash: Match lightweight tags in prompt

David Kågedal (1):
      git-blame.el: Add (require 'format-spec)

Diego Elio Pettenò (1):
      imap-send: link against libcrypto for HMAC and others

Erik Faye-Lund (1):
      mingw: do not set errno to 0 on success

Giuseppe Bilotta (1):
      CodingGuidelines: mention whitespace preferences for shell scripts

Jan Krüger (2):
      repack: add -F flag to let user choose between --no-reuse-delta/object
      Documentation: pack.compression: explain how to recompress

Jari Aalto (1):
      git-commit.txt: (synopsis): move -i and -o before "--"

Jeff King (6):
      diff: don't use pathname-based diff drivers for symlinks
      rev-list: handle %x00 NUL in user format
      docs: give more hints about how "add -e" works
      apply: don't segfault on binary files with missing data
      docs: give more hints about how "add -e" works
      document sigchain api

Jens Lehmann (1):
      pull: Remove --tags option from manpage

Jim Meyering (1):
      mailmap: fix use of freed memory

Joe Perches (1):
      git-send-email.perl: Deduplicate "to:" and "cc:" entries with names

Jonathan Nieder (5):
      t4203 (mailmap): stop hardcoding commit ids and dates
      send-pack: avoid redundant "pack-objects died with strange error"
      Documentation: document show -s
      add: introduce add.ignoreerrors synonym for add.ignore-errors
      Documentation: do not misinterpret pull refspec as bold text

Junio C Hamano (5):
      t4203: do not let "git shortlog" DWIM based on tty
      t3402: test "rebase -s<strategy> -X<opt>"
      Documentation: Fix mark-up of lines with more than one tilde
      Git 1.7.0.8
      Git 1.7.3.3

Kevin Ballard (2):
      test-lib: extend test_decode_color to handle more color codes
      diff: handle lines containing only whitespace and tabs better

Kevin P. Fleming (1):
      post-receive-email: ensure sent messages are not empty

Kirill Smelkov (3):
      blame,cat-file: Prepare --textconv tests for correctly-failing conversion program
      blame,cat-file: Demonstrate --textconv is wrongly running converter on symlinks
      blame,cat-file --textconv: Don't assume mode is ``S_IFREF | 0664''

Martin von Zweigbergk (2):
      rebase -X: do not clobber strategy
      Documentation/git-pull: clarify configuration

Michael J Gruber (6):
      git-reset.txt: clarify branch vs. branch head
      git-reset.txt: reset does not change files in target
      git-reset.txt: reset --soft is not a no-op
      git-reset.txt: use "working tree" consistently
      git-reset.txt: point to git-checkout
      git-reset.txt: make modes description more consistent

Nathan W. Panike (1):
      Fix a formatting error in git-merge.txt

Nguyễn Thái Ngọc Duy (3):
      dir.c: fix EXC_FLAG_MUSTBEDIR match in sparse checkout
      clean: avoid quoting twice
      clean: remove redundant variable baselen

René Scharfe (1):
      diff: avoid repeated scanning while looking for funcname

Thomas Rast (4):
      send-email: Refuse to send cover-letter template subject
      prefix_filename(): safely handle the case where pfx_len=0
      merge-file: correctly find files when called in subdir
      repack: place temporary packs under .git/objects/pack/

Uwe Kleine-König (1):
      get_author_ident_from_commit(): remove useless quoting

Yann Dirson (3):
      Fix copy-pasted comments related to tree diff handling.
      Keep together options controlling the behaviour of diffcore-rename.
      Document that rev-list --graph triggers parent rewriting.

Ævar Arnfjörð Bjarmason (1):
      Makefile: add CC to TRACK_CFLAGS


Version v1.7.3.2; changes since v1.7.3.1:
-----------------------------------------

Andreas Gruenbacher (1):
      Clarify and extend the "git diff" format documentation

Antonio Ospite (1):
      t/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'

Bert Wesarg (1):
      Documentation: update-index: -z applies also to --index-info

Brandon Casey (1):
      diffcore-pickaxe.c: remove unnecessary curly braces

Cliff Frey (1):
      documentation: git-config minor cleanups

Elijah Newren (1):
      t3020 (ls-files-error-unmatch): remove stray '1' from end of file

Eric Wong (1):
      Documentation/git-svn: discourage "noMetadata"

Erik Faye-Lund (1):
      do not depend on signed integer overflow

Johannes Schindelin (2):
      Make sure that git_getpass() never returns NULL
      Fix typo in pack-objects' usage

Jon Seymour (1):
      stash: simplify parsing fixes

Jonathan Nieder (10):
      t0004 (unwritable files): simplify error handling
      environment.c: remove unused variable
      setup: make sure git dir path is in a permanent buffer
      init: plug tiny one-time memory leak
      xdiff: cast arguments for ctype functions to unsigned char
      Documentation: No argument of ALLOC_GROW should have side-effects
      Documentation: gitrevisions is in section 7
      Documentation: diff can compare blobs
      Documentation: expand 'git diff' SEE ALSO section
      Documentation: update implicit "--no-index" behavior in "git diff"

Junio C Hamano (4):
      MinGW: avoid collisions between "tags" and "TAGS"
      CodingGuidelines: reword parameter expansion section
      shell portability: no "export VAR=VAL"
      Git 1.7.3.2

Kevin Ballard (1):
      Update test script annotate-tests.sh to handle missing/extra authors

Kirill Smelkov (1):
      user-manual: be consistent in illustrations to 'git rebase'

Mathias Lafeldt (1):
      git-svn: fix processing of decorated commit hashes

Matthieu Moy (1):
      diff: trivial fix for --output file error message

Michael J Gruber (4):
      remote-helpers: build in platform independent directory
      user-manual: fix anchor name Finding-comments-With-given-Content
      rev-list-options: clarify --parents and --children
      git-show-ref.txt: clarify the pattern matching

Ramkumar Ramachandra (1):
      SubmittingPatches: Document some extra tags used in commit messages

René Scharfe (1):
      work around buggy S_ISxxx(m) implementations

Steven Walter (1):
      git-svn: check_cherry_pick should exclude commits already in our history

Tony Luck (1):
      Better advice on using topic branches for kernel development

Uwe Kleine-König (1):
      Documentation/git-clone: describe --mirror more verbosely

Yann Dirson (1):
      t/t3415: use && where applicable.

Štěpán Němec (6):
      Use angles for placeholders consistently
      Fix odd markup in --diff-filter documentation
      Use parentheses and `...' where appropriate
      Remove stray quotes in --pretty and --format documentation
      Put a space between `<' and argument in pack-objects usage string
      Fix {update,checkout}-index usage strings


Version v1.7.3.1; changes since v1.7.3:
---------------------------------------

Brandon Casey (3):
      t/t3903-stash: improve testing of git-stash show
      wt-status.c: don't leak directory entries when processing untracked,ignored
      git-send-email.perl: ensure $domain is defined before using it

Brian Gernhardt (1):
      git-stash: fix flag parsing

Christian Couder (1):
      t6050 (replace): fix bogus "fetch branch with replacement" test

Daniel Knittl-Frank (1):
      Improvements to `git checkout -h`

Jeff King (1):
      prefer test -h over test -L in shell scripts

Jon Seymour (1):
      stash: fix git stash branch regression when branch creation fails

Junio C Hamano (2):
      CodingGuidelines: spell Arithmetic Expansion with $(($var))
      Git 1.7.3.1

Linus Torvalds (1):
      Fix missing 'does' in man-page for 'git checkout'

Matthieu Moy (1):
      update comment and documentation for :/foo syntax

Michael J Gruber (1):
      contrib/completion: --no-index option to git diff

Pat Notz (2):
      strbuf.h: fix comment typo
      dir.c: squelch false uninitialized memory warning

Ramsay Jones (1):
      t1503: Fix arithmetic expansion syntax error when using dash

Tomas Carnecky (1):
      stash drops the stash even if creating the branch fails because it already exists

Wesley J. Landaker (1):
      Documentation: Refer to git-commit-tree in git-filter-branch help


Version v1.7.3; changes since v1.7.3-rc2:
-----------------------------------------

Brandon Casey (1):
      t/t7300: workaround ancient touch by rearranging arguments

Brian Gernhardt (1):
      t7003: Use test_commit instead of custom function

Chris Johnsen (1):
      git-rebase--interactive.sh: replace cut with ${v%% *}

Jay Soffian (1):
      git-ls-files.txt: clarify -x/--exclude option

Junio C Hamano (2):
      ls-files documentation: reword for consistency
      Git 1.7.3


Version v1.7.3-rc2; changes since v1.7.3-rc1:
---------------------------------------------

Csaba Henk (2):
      bundle: detect if bundle file cannot be created
      filter-branch: retire --remap-to-ancestor

Jens Lehmann (2):
      Several tests: cd inside subshell instead of around
      t1020: Get rid of 'cd "$HERE"' at the start of each test

Jonathan Nieder (5):
      tests: subshell indentation stylefix
      t1450 (fsck): remove dangling objects
      t2105 (gitfile): add missing &&
      t1302 (core.repositoryversion): style tweaks
      t2016 (checkout -p): add missing &&

Junio C Hamano (3):
      t3101: modernise style
      ls-tree $di $dir: do not mistakenly recurse into directories
      Git 1.7.3 rc2

Matthieu Moy (1):
      git-gui: use shell to launch textconv filter in "blame"

Oded Shimon (1):
      Add --src/dst-prefix to git-formt-patch in git-rebase.sh

Pat Thoyts (6):
      git-gui: Make usage statement visible on Windows.
      git-gui: display error launching blame as a message box.
      git-gui: handle textconv filter on Windows and in development
      git-gui: ensure correct application termination in git-gui--askpass
      git-gui: avoid mis-encoding the copyright message on Windows.
      git-gui 0.13

Peter Krefting (1):
      git-gui: Update Swedish translation (521t).

Ramsay Jones (1):
      vcs-svn: Fix some printf format compiler warnings

René Scharfe (1):
      compat/nedmalloc: don't force NDEBUG on the rest of git

Schalk, Ken (1):
      RE: [PATCH] Avoid rename/add conflict when contents are identical


Version v1.7.3-rc1; changes since v1.7.3-rc0:
---------------------------------------------

Anselm Kruis (1):
      Add a new option 'core.askpass'.

Brandon Casey (10):
      t/t5510: demonstrate failure to fetch when current branch has merge ref
      builtin/fetch.c: ignore merge config when not fetching from branch's remote
      t/t7008: workaround broken handling of \000 by printf on IRIX
      Makefile: use compat regex on IRIX 6.5
      builtin/fetch.c: comment that branch->remote_name is usable when has_merge
      t/t5510-fetch.sh: improve testing with explicit URL and merge spec
      diff.c: call regfree to free memory allocated by regcomp when necessary
      xdiff-interface.c: always trim trailing space from xfuncname matches
      t/t4018: test whether the word_regex patterns compile
      t/t4018: avoid two unnecessary sub-shell invocations

Elijah Newren (2):
      cache_tree_free: Fix small memory leak
      revert: Fix trivial comment style issue

Jeff King (3):
      pass "git -c foo=bar" params through environment
      tests: make test_must_fail more verbose
      tests: make test_must_fail fail on missing commands

Jens Lehmann (1):
      t3404 & t7508: cd inside subshell instead of around

Johan Herland (1):
      notes: Don't create (empty) commit when removing non-existing notes

Johannes Sixt (1):
      fast-export: ensure that a renamed file is printed after all references

Jonathan Nieder (3):
      do not pass "git -c foo=bar" params to transport helpers
      tests: make test_might_fail more verbose
      tests: make test_might_fail fail on missing commands

Junio C Hamano (3):
      install-webdoc: keep installed RelNotes-*.txt
      Prepare for 1.7.3 rc1
      Git 1.7.3 rc1

Knut Franke (2):
      Allow core.askpass to override SSH_ASKPASS.
      Extend documentation of core.askpass and GIT_ASKPASS.

Mark Lodato (1):
      config.txt: fix placement of diff.noprefix

Nicolas Pitre (1):
      Documentation: move RelNotes into a directory of their own

Thiago Farina (2):
      builtin.h: Move two functions definitions to help.h.
      builtin/clean.c: Use STRING_LIST_INIT_NODUP.


Version v1.7.3-rc0; changes since v1.7.2.5:
-------------------------------------------

Alejandro R. Sedeño (1):
      gitweb: move highlight config out of guess_file_syntax()

Alex Riesen (2):
      Add a for_each_string_list_item macro
      Convert the users of for_each_string_list to for_each_string_list_item macro

Alexander Gladysh (1):
      Add a rename + D/F conflict testcase

Anders Kaseorg (1):
      gitweb: Don't die_error in git_tag after already printing headers

Brandon Casey (2):
      git-rebase--interactive.sh: rework skip_unnecessary_picks
      git-rebase--interactive.sh: use printf instead of echo to print commit message

Brian Gernhardt (2):
      t7610: cd inside subshell instead of around
      t7606: Avoid using head as a file name

Charles Bailey (1):
      mergetool: Remove explicit references to /dev/tty

Christian Couder (11):
      revert: report success when using option --strategy
      revert: refactor commit code into a new run_git_commit() function
      revert: don't print "Finished one cherry-pick." if commit failed
      revert: improve success message by adding abbreviated commit sha1
      t3508: add check_head_differs_from() helper function and use it
      revert: fix off by one read when searching the end of a commit subject
      revert: refactor code to find commit subject in find_commit_subject()
      revert: rename variables related to subject in get_message()
      bisect: use find_commit_subject() instead of custom code
      merge-recursive: use find_commit_subject() instead of custom code
      blame: use find_commit_subject() instead of custom code

Clemens Buchacher (1):
      hash binary sha1 into patch id

David Aguilar (1):
      mergetool: Skip autoresolved paths

David Barr (5):
      Add memory pool library
      Add string-specific memory pool
      Add stream helper library
      Infrastructure to write revisions in fast-export format
      SVN dump parser

David D. Kilzer (3):
      git svn: fix dcommit to work with touched files
      git-svn: fix regex to remove "tail" from svn tags
      git-svn: fix fetch with deleted tag

Diane Gasselin (2):
      merge-recursive: porcelain messages for checkout
      t7609: test merge and checkout error messages

Dmitry Statyvka (1):
      git svn: add an option to recode pathnames

Elijah Newren (13):
      Add additional testcases for D/F conflicts
      merge-recursive: Fix D/F conflicts
      merge_recursive: Fix renames across paths below D/F conflicts
      fast-export: Fix output order of D/F changes
      fast-import: Improve robustness when D->F changes provided in wrong order
      fast-export: Fix dropping of files with --import-marks and path limiting
      fast-export: Add a --full-tree option
      upload-pack: Improve error message when bad ref requested
      Mark tests that use symlinks as needing SYMLINKS prerequisite
      merge-recursive: Fix typo
      t6031: Add a testcase covering multiple renames across a D/F conflict
      merge-recursive: Fix multiple file rename across D/F conflict
      merge-recursive: Avoid excessive output for and reprocessing of renames

Eric Wong (4):
      instaweb: fix WEBrick server support
      instaweb: minimize moving parts for WEBrick
      instaweb: add access+error logging for WEBrick
      t9155: fix compatibility with older SVN

Eyvind Bernhardsen (3):
      Avoid conflicts when merging branches with mixed normalization
      Try normalizing files to avoid delete/modify conflicts when merging
      Don't expand CRLFs when normalizing text during merge

Frank Li (1):
      Change regerror() declaration from K&R style to ANSI C (C89)

Greg Brockman (1):
      split_cmdline: Allow caller to access error string

Heiko Voigt (4):
      Teach ref iteration module about submodules
      setup_revisions(): Allow walking history in a submodule
      Implement automatic fast-forward merge for submodules
      add configuration variable for --autosquash option of interactive rebase

Jakub Narębski (1):
      gitweb: Fix typo in run() subroutine

Jared Hance (5):
      Convert "! git" to "test_must_fail git"
      Add -e/--exclude to git-clean.
      Add test for git clean -e.
      builtin/push.c: remove useless temporary variable
      Document git-instaweb start/stop/restart

Jason Evans (1):
      Add treap implementation

Jeff King (1):
      docs: fix Makefile dependency for user manual

Jens Lehmann (7):
      Submodules: Add the new "ignore" config option for diff and status
      Submodules: Use "ignore" settings from .gitmodules too for diff and status
      Add tests for the diff.ignoreSubmodules config option
      checkout: Add test for diff.ignoreSubmodules
      checkout: Use submodule.*.ignore settings from .git/config and .gitmodules
      t7405: cd inside subshell instead of around
      t7406 & t7407: add missing && at end of lines

Johan Herland (2):
      Make graph_next_line() available in the graph.h API
      Enable custom schemes for column colors in the graph API

Johannes Schindelin (2):
      Add the 'diff.ignoreSubmodules' config setting
      checkout: respect diff.ignoreSubmodules setting

Johannes Sixt (1):
      Fix compat/regex ANSIfication on MinGW

Jon Seymour (14):
      detached-stash: introduce parse_flags_and_revs function
      detached-stash: work around git rev-parse failure to detect bad log refs
      detached-stash: simplify stash_apply
      detached-stash: simplify stash_drop
      detached-stash: refactor git stash pop implementation
      detached-stash: simplify git stash branch
      detached-stash: simplify git stash show
      detached-stash: tests of git stash with stash-like arguments
      detached-stash: update Documentation
      rev-parse: exit with non-zero status if ref@{n} is not valid.
      sha1_name.c: use warning in preference to fprintf(stderr
      rev-parse: tests git rev-parse --verify master@{n}, for various n
      t1503: fix broken test_must_fail calls
      t3903: fix broken test_must_fail calls

Jonathan Nieder (89):
      Teach fast-import to import subtrees named by tree id
      Export parse_date_basic() to convert a date string to timestamp
      t1501 (rev-parse): clarify
      tests: try git apply from subdir of toplevel
      setup: split off $GIT_DIR-set case from setup_git_directory_gently
      setup: split off a function to checks working dir for .git file
      setup: split off code to handle stumbling upon a repository
      setup: split off a function to handle hitting ceiling in repo search
      setup: split off get_device_or_die helper
      t1011 (sparse checkout): style nitpicks
      gitweb: allow configurations that change with each request
      t4111 (apply): refresh index before applying patches to it
      diff: split off a function for --stat-* option parsing
      t6038 (merge.renormalize): style nitpicks
      t6038 (merge.renormalize): try checkout -m and cherry-pick
      t6038 (merge.renormalize): check that it can be turned off
      merge-trees: push choice to renormalize away from low level
      merge-trees: let caller decide whether to renormalize
      Documentation/technical: document ll_merge
      ll-merge: make flag easier to populate
      ll-merge: let caller decide whether to renormalize
      t4200 (rerere): modernize style
      rerere: migrate to parse-options API
      rerere: never renormalize
      merge-recursive --renormalize
      Introduce vcs-svn lib
      Update svn-fe manual
      svn-fe manual: Clarify warning about deltas in dump files
      vcs-svn: remove build artifacts on "make clean"
      treap: style fix
      compat: add strtok_r()
      vcs-svn: Rename dirent pool to build on Windows
      vcs-svn: Avoid %z in format string
      t9010 (svn-fe): use Unix-style path in URI
      t9010 (svn-fe): avoid symlinks in test
      Eliminate “Finished cherry-pick/revert” message
      Introduce advise() to print hints
      cherry-pick/revert: Use error() for failure message
      cherry-pick/revert: Use advise() for hints
      t7606 (merge-theirs): modernize style
      merge: let custom strategies intervene in trivial merges
      t7006 (pager): add missing TTY prerequisites
      merge: do not mistake (ancestor of) tag for branch
      t7600 (merge): modernize style
      t7600 (merge): do not launch gitk for --debug
      t7600 (merge): check reflog entry
      t7600 (merge): test merge from branch yet to be born
      t6010 (merge-base): modernize style
      t6200 (fmt-merge-msg): style nitpicks
      Documentation: add a SEE ALSO section for merge-base
      merge-base --octopus to mimic show-branch --merge-base
      merge-base --independent to print reduced parent list in a merge
      fmt-merge-msg -m to override merge title
      merge script: --squash, --ff from unborn branch are errors
      merge script: tweak unmerged files message to match builtin
      merge script: refuse to merge during merge
      merge script: improve log message subject
      merge script: merge -X<option>
      merge script: allow custom strategies
      merge script: forbid merge -s index
      merge script: handle -m --log correctly
      merge script: handle many-way octopus
      merge script: --ff-only to disallow true merge
      merge script: handle --no-ff --no-commit correctly
      merge script: notice @{-1} shorthand
      merge script: learn --[no-]rerere-autoupdate
      autoconf: don't use platform regex if it lacks REG_STARTEND
      Documentation: set a !DOCTYPE for user manual
      Documentation: tweak description of log.date
      Documentation: quoting trouble in "git rm" discussion
      Documentation: unbreak regex in show-ref manual
      Documentation: clarify quoting in "git add" example
      Documentation: add missing quotes to "git grep" examples
      Documentation: clarify quoting in "git rm" example
      Documentation: clarify quoting in gitignore docs
      Documentation: remove backslashes in manpage synopses
      Documentation/technical: avoid stray backslash in parse-options API docs
      Documentation: remove stray backslash from "git bundle" manual
      Documentation: remove backslash before ~ in fast-import manual
      Documentation: remove stray backslashes in rev-parse manual
      Documentation: avoid stray backslashes in core tutorial
      Documentation: avoid stray backslash in user manual
      Documentation: do not convert ... operator to ellipses
      Documentation: remove stray backslashes from "Fighting regressions" article
      Documentation: remove stray backslash in show-branch discussion
      apply: split quoted filename handling into new function
      tests: exercise "git apply" with weird filenames
      apply: handle traditional patches with space in filename
      tests: simplify "missing PREREQ" message

Junio C Hamano (6):
      cvs tests: do not touch test CVS repositories shipped with source
      compat/regex: get rid of old-style definition
      autoconf: regex library detection typofix
      Work around em-dash handling in newer AsciiDoc
      install-webdoc: filter timestamp-only changes correctly
      Prepare for 1.7.3

Kevin P. Fleming (1):
      post-receive-email: optional message line count limit

Matthieu Moy (14):
      diff: parse separate options like -S foo
      diff: parse separate options --stat-width n, --stat-name-width n
      log: parse separate options like git log --grep foo
      log: parse separate option for --glob
      rebase -i: add exec command to launch a shell command
      test-lib: user-friendly alternatives to test [-d|-f|-e]
      Turn unpack_trees_options.msgs into an array + enum
      merge-recursive: distinguish "removed" and "overwritten" messages
      unpack_trees: group error messages by type
      tests: factor HOME=$(pwd) in test-lib.sh
      Move set_porcelain_error_msgs to unpack-trees.c and rename it
      setup_unpack_trees_porcelain: take the whole options struct as parameter
      Move "show_all_errors = 1" to setup_unpack_trees_porcelain()
      t7609-merge-co-error-msgs: test non-fast forward case too.

Michael J Gruber (3):
      git-bundle.txt: Cleanup
      git-bundle.txt: whitespace cleanup
      git-bundle.txt: Clarify rev-list-args restrictions

Mike Lundy (1):
      rebase: support -X to pass through strategy options

Nguyễn Thái Ngọc Duy (22):
      upload-pack: remove unused "create_full_pack" code in do_rev_list
      setup: do not forget working dir from subdir of gitdir
      Revert "rehabilitate 'git index-pack' inside the object store"
      setup: split off a function to handle ordinary .git directories
      unpack-trees: only clear CE_UPDATE|CE_REMOVE when skip-worktree is always set
      unpack-trees: let read-tree -u remove index entries outside sparse area
      unpack-trees: do not check for conflict entries too early
      unpack-trees: mark new entries skip-worktree appropriately
      git wrapper: introduce startup_info struct
      setup: remember whether repository was found
      git wrapper: allow setup_git_directory_gently() be called earlier
      shortlog: run setup_git_directory_gently() sooner
      grep: run setup_git_directory_gently() sooner
      apply: run setup_git_directory_gently() sooner
      bundle: run setup_git_directory_gently() sooner
      config: run setup_git_directory_gently() sooner
      index-pack: run setup_git_directory_gently() sooner
      ls-remote: run setup_git_directory_gently() sooner
      var: run setup_git_directory_gently() sooner
      merge-file: run setup_git_directory_gently() sooner
      clone: warn users --depth is ignored in local clones
      parse_object: pass on the original sha1, not the replaced one

Petr Onderka (1):
      Userdiff patterns for C#

Ralf Wildenhues (1):
      Typos in code comments, an error message, documentation

Ramkumar Ramachandra (1):
      builtin/checkout: Fix message when switching to an existing branch

Spencer E. Olson (1):
      Allow HTTP user agent string to be modified.

Steven Walter (1):
      git svn: URL-decode left-hand side of svn refspec

Sverre Rabbelier (1):
      config: add --local option

Tay Ray Chuan (4):
      add tests for checkout -b
      builtin/checkout: reword hint for -b
      builtin/checkout: learn -B
      builtin/checkout: handle -B from detached HEAD correctly

Thiago Farina (2):
      string_list: Add STRING_LIST_INIT macro and make use of it.
      object.h: Add OBJECT_ARRAY_INIT macro and make use of it.

Thomas Rast (4):
      Do not unquote + into ' ' in URLs
      ls-files: learn a debugging dump format
      Makefile: make gcov invocation configurable
      test: Introduce $GIT_BUILD_DIR

Ævar Arnfjörð Bjarmason (59):
      sha1_file: Show the the type and path to corrupt objects
      tests: Ignore the Test::Harness .prove file
      t/t6035-merge-dir-to-symlink.sh: Remove TODO on passing test
      SubmittingPatches: Clarify the Signed-off-by rules
      SubmittingPatches: Cite the 50 char subject limit
      perl/Makefile: Unset INSTALL_BASE when making perl.mak
      test-lib: Don't write test-results when HARNESS_ACTIVE
      test-lib: Add support for multiple test prerequisites
      test-lib: Print missing prerequisites in test output
      t/README: Document the predefined test prerequisites
      tests: A SANITY test prereq for testing if we're root
      test-lib: Multi-prereq support only checked the last prereq
      tests: Infrastructure for Git smoke testing
      t/README: Document the Smoke testing
      t/Makefile: Can't include GIT-BUILD-OPTIONS, it's a .sh
      t/README: Add SMOKE_{COMMENT,TAGS}= to smoke_report target
      gitignore: Ignore files generated by "make coverage"
      Makefile: Include subdirectories in "make cover" reports
      Makefile: Split out the untested functions target
      Makefile: Add cover_db target
      Makefile: Add cover_db_html target
      t/README: A new section about test coverage
      t/README: Add a note about the dangers of coverage chasing
      tests: implicitly skip SYMLINKS tests using <prereq>
      t/t4004-diff-rename-symlink.sh: use three-arg <prereq>
      t/t5800-remote-helpers.sh: Skip with prereq on python <2.4
      t/t7800-difftool.sh: Skip with prereq on no PERL
      t/README: Update "Skipping tests" to align with best practices
      t/t1304-default-acl: change from skip_all=* to prereq skip
      t/t5705-clone-2gb: change from skip_all=* to prereq skip
      t/t7005-editor: change from skip_all=* to prereq skip
      t/t5503-tagfollow: change from skip_all=* to prereq skip
      t/t4016-diff-quote: change from skip_all=* to prereq skip
      t/t3902-quoted: change from skip_all=* to prereq skip
      t/t3300-funny-names: change from skip_all=* to prereq skip
      git-notes: Run partial expensive test everywhere
      t/Makefile: Create test-results dir for smoke target
      tests: Move FILEMODE prerequisite to lib-prereq-FILEMODE.sh
      t/t3701-add-interactive.sh: change from skip_all=* to prereq skip
      lib-patch-mode tests: change from skip_all=* to prereq skip
      t/t9600-cvsimport.sh: change from skip_all=* to prereq skip
      t/t9001-send-email.sh: Remove needless PROG=* assignment
      t/t9001-send-email.sh: change from skip_all=* to prereq skip
      t/t9001-send-email.sh: convert setup code to tests
      t/t7105-reset-patch.sh: Add a PERL prerequisite
      t/t9601-cvsimport-vendor-branch.sh: Add a PERL prerequisite
      t/t9602-cvsimport-branches-tags.sh: Add a PERL prerequisite
      tests: fix syntax error in "Use advise() for hints" test
      compat/regex: use the regex engine from gawk for compat
      compat/regex: get the gawk regex engine to compile within git
      compat/regex: define out variables only used under RE_ENABLE_I18N
      t/t9010-svn-fe.sh: add an +x bit to this test
      t/t7008-grep-binary.sh: un-TODO a test that needs REG_STARTEND
      reset: suggest what to do upon "git reset --mixed <paths>"
      test-lib: Use $TEST_DIRECTORY or $GIT_BUILD_DIR instead of $(pwd) and ../
      test-lib: Use "$GIT_BUILD_DIR" instead of "$TEST_DIRECTORY"/../
      test-lib: Allow overriding of TEST_DIRECTORY
      t/t0000-basic.sh: Run the passing TODO test inside its own test-lib
      test-lib: use subshell instead of cd $new && .. && cd $old


Version v1.7.2.5; changes since v1.7.2.4:
-----------------------------------------

Jakub Narębski (1):
      gitweb: Introduce esc_attr to escape attributes of HTML elements

Junio C Hamano (1):
      Git 1.6.4.5


Version v1.7.2.4; changes since v1.7.2.3:
-----------------------------------------

Brandon Casey (2):
      diff.c: call regfree to free memory allocated by regcomp when necessary
      xdiff-interface.c: always trim trailing space from xfuncname matches

Daniel Knittl-Frank (1):
      bash: Match lightweight tags in prompt

Elijah Newren (2):
      cache_tree_free: Fix small memory leak
      revert: Fix trivial comment style issue

Jared Hance (1):
      Fix whitespace issue in object.c

Jari Aalto (1):
      git-commit.txt: (synopsis): move -i and -o before "--"

Jens Lehmann (1):
      t5505: add missing &&

Jonathan Nieder (1):
      add: introduce add.ignoreerrors synonym for add.ignore-errors

Junio C Hamano (3):
      tag.c: whitespace breakages fix
      t3101: modernise style
      Git 1.7.0.8

Mark Lodato (1):
      config.txt: fix placement of diff.noprefix

René Scharfe (1):
      compat/nedmalloc: don't force NDEBUG on the rest of git


Version v1.7.2.3; changes since v1.7.2.2:
-----------------------------------------

Brandon Casey (2):
      Makefile: link builtins residing in bin directory to main git binary too
      Makefile: make hard/symbolic links for non-builtins too

Dan Johnson (1):
      fetch: allow command line --tags to override config

David Aguilar (1):
      submodule sync: Update "submodule.<name>.url"

Elijah Newren (3):
      t5520-pull: Add testcases showing spurious conflicts from git pull --rebase
      pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches
      tree-walk: Correct bitrotted comment about tree_entry()

Greg Price (1):
      pack-refs: remove newly empty directories

Jay Soffian (1):
      for-each-ref: fix objectname:short bug

Jens Lehmann (1):
      t7403: add missing &&'s

Jonathan Nieder (12):
      t4150 (am): style fix
      t4150 (am): futureproof against failing tests
      t3400 (rebase): whitespace cleanup
      archive: abbreviate substituted commit ids again
      checkout, commit: remove confusing assignments to rev.abbrev
      examples/commit: use --abbrev for commit summary
      Documentation: flesh out “git pull” description
      core: Stop leaking ondisk_cache_entrys
      read-tree: stop leaking tree objects
      write-tree: Avoid leak when index refers to an invalid object
      t3302 (notes): Port to Solaris
      parse-options: clarify PARSE_OPT_NOARG description

Junio C Hamano (6):
      Teach "apply --index-info" to handle rename patches
      rebase: protect against diff.renames configuration
      diff --follow: do not waste cycles while recursing
      diff --follow: do call diffcore_std() as necessary
      Prepare for 1.7.2.3
      Git 1.7.2.3

Linus Torvalds (1):
      Fix 'git log' early pager startup error case

Mark Rada (1):
      Tell ignore file about generate files in /gitweb/static

Matthieu Moy (2):
      xmalloc: include size in the failure message
      t0003: add missing && at end of lines

Nicolas Pitre (1):
      fix >4GiB source delta assertion failure

Ralf Wildenhues (1):
      Typos in code comments, an error message, documentation

SZEDER Gábor (2):
      mingw_utime(): handle NULL times parameter
      rerere: fix overeager gc

Thiago Farina (1):
      builtin/merge_recursive.c: Add an usage string and make use of it.

Thomas Rast (5):
      Documentation/git-reset: reorder modes for soft-mixed-hard progression
      Documentation/reset: separate options by mode
      Documentation/reset: promote 'examples' one section up
      Documentation/reset: reorder examples to match description
      Documentation/reset: move "undo permanently" example behind "make topic"

Ville Skyttä (1):
      Documentation: spelling fixes

Ævar Arnfjörð Bjarmason (1):
      log: test for regression introduced in v1.7.2-rc0~103^2~2


Version v1.7.2.2; changes since v1.7.2.1:
-----------------------------------------

Brad King (1):
      Documentation: cite git-am from git-apply

Brandon Casey (1):
      t/t7003: replace \t with literal tab in sed expression

Clément Poulain (1):
      git-gui: use textconv filter for diff and blame

David D. Kilzer (1):
      Fix git rebase --continue to work with touched files

Heiko Voigt (5):
      git-gui: check whether systems nice command works or disable it
      git-gui: fix usage of themed widgets variable
      git-gui: fix usage of _gitworktree when creating shortcut for windows
      git-gui: fix PATH environment for mingw development environment
      git-gui: fix shortcut creation on cygwin

Jakub Narębski (1):
      diff: strip extra "/" when stripping prefix

Jonathan Nieder (7):
      check-ref-format: handle subcommands in separate functions
      Allow "check-ref-format --branch" from subdirectory
      Makefile: add missing dependencies on url.h
      Makefile: add missing dependency on http.h
      Documentation: add a FILES section for show-ref
      gitweb: clarify search results page when no matching commit found
      Standardize do { ... } while (0) style

Junio C Hamano (4):
      Fix DIFF_QUEUE_CLEAR refactoring
      Documentation: reporting bugs
      sha1_name.c: fix parsing of ":/token" syntax
      Git 1.7.2.2

Markus Heidelberg (1):
      git-gui: fix "Explore Working Copy" for Windows again

Matthieu Moy (5):
      Document ls-files -t as semi-obsolete.
      pretty-options.txt: match --format's documentation with implementation.
      Document -B<n>[/<m>], -M<n> and -C<n> variants of -B, -M and -C
      post-receive-email: remove spurious commas in email subject
      push: mention "git pull" in error message for non-fast forwards

Michael J Gruber (1):
      Documentation/git-log: Clarify --full-diff

Nelson Elhage (1):
      index-pack: Don't follow replace refs.

Pat Thoyts (4):
      git-gui: Handle failure of core.worktree to identify the working directory.
      git-gui: Avoid using the <<Copy>> binding as a menu accelerator on win32
      git-gui: mc cannot be used before msgcat has been loaded
      git-gui: fix size and position of window panes on startup

Raja R Harinath (1):
      fast-import: export correctly marks larger than 2^20-1

Ramkumar Ramachandra (2):
      contrib/svn-fe: Fix IncludePath
      contrib/svn-fe: Add the svn-fe target to .gitignore

René Scharfe (2):
      notes: allow --dry-run for -n and --verbose for -v
      prune: allow --dry-run for -n and --verbose for -v

Shawn O. Pearce (1):
      smart-http: Don't deadlock on server failure

Thomas Rast (3):
      xsize_t: check whether we lose bits
      Documentation/rev-parse: quoting is required with --parseopt
      t7003: fix subdirectory-filter test

Willy Tarreau (1):
      git-rebase: fix typo when parsing --force-rebase

Ævar Arnfjörð Bjarmason (4):
      test-lib: Ignore --quiet under a TAP harness
      test-lib: Remove 3 year old no-op --no-python option
      imap-send: Fix sprintf usage
      t/lib-git-svn.sh: use $PERL_PATH for perl, not perl from $PATH


Version v1.7.2.1; changes since v1.7.2:
---------------------------------------

Brandon Casey (1):
      git-rebase--interactive.sh: use printf instead of echo to print commit message

Dan McGee (3):
      git-instaweb: Fix custom apache log placement
      git-instaweb: Fix Apache environment variable passing
      git-instaweb: Don't assume Apache executable is named apache2

Greg Brockman (1):
      Check size of path buffer before writing into it

Johannes Sixt (1):
      t3700-add: fix dependence on stdout and stderr buffering

Jon Seymour (1):
      INSTALL: configure /etc/xml/catalog to build docs on Cygwin

Jonathan Nieder (1):
      config --get --path: check for unset $HOME

Junio C Hamano (3):
      Git 1.7.0.7
      Git 1.7.1.2
      Git 1.7.2.1

Matthieu Moy (1):
      Clarify help message when no remote is specified in fetch/pull.

Nathan W. Panike (1):
      Add a google-chrome option for web--browse

Nguyễn Thái Ngọc Duy (1):
      git-read-tree.txt: acknowledge the directory matching bug in sparse checkout

Stephen Boyd (2):
      request-pull.txt: Document -p option
      commit: remove full stop from usage help for -u

Thomas Rast (5):
      Cast execl*() NULL sentinels to (char *)
      Document receive.denyDeleteCurrent
      Documentation/git-push: Explain status output in more detail
      Fix 'git' wrapper usage string
      Makefile: add check-docs exception for gitrevisions


Version v1.7.2; changes since v1.7.2-rc3:
-----------------------------------------

Brandon Casey (6):
      Makefile: remove some unnecessary curly braces
      Makefile: work around ksh's failure to handle missing list argument to for loop
      t/README: clarify test_must_fail description
      t/t3700: convert two uses of negation operator '!' to use test_must_fail
      t/{t5541,lib-httpd}: replace problematic '!()' notation with test_must_fail
      t/: work around one-shot variable assignment with test_must_fail

David Aguilar (1):
      Documentation: Explain git-mergetool's use of temporary files

Eli Barzilay (1):
      Reorganize `git-log' man page to clarify common diff options.

Greg Brockman (1):
      Check size of path buffer before writing into it

Jay Soffian (1):
      MERGE_RR is in .git, not .git/rr-cache

Jens Lehmann (2):
      git add: Add the "--ignore-missing" option for the dry run
      git submodule add: Require the new --force option to add ignored paths

Jonathan Nieder (9):
      t7006 (pager): introduce helper for parameterized tests
      t7006: test pager configuration for several git commands
      tests: local config file should be honored from subdirs of toplevel
      t3000 (ls-files -o): modernize style
      git --paginate: paginate external commands again
      gitmodules.5: url can be a relative path
      Documentation: add submodule.* to the big configuration variable list
      Add a sample user for the svndump library
      t/README: correct an exception when breaking a && chain in tests

Junio C Hamano (7):
      rebase-i: style fix
      rebase-i: do not get fooled by a log message ending with backslash
      do not write out index when status does not have to
      diff A...B: give one possible diff when there are more than one merge-base
      diff A...B: do not limit the syntax too narrowly
      tests: correct "does reflog exist?" tests
      Git 1.7.2

Michael J Gruber (3):
      Documentation: split off rev doc into include file
      Documentation: gitrevisions
      Documentation: link to gitrevisions rather than git-rev-parse

Nazri Ramliy (1):
      grep -O: Do not pass color sequences as filenames to pager

Nguyễn Thái Ngọc Duy (1):
      git --paginate: do not commit pager choice too early

Nicolas Sebrecht (1):
      merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency

Pavan Kumar Sunkara (1):
      gitweb: fix esc_url

Ralf Thielow (1):
      update-server-info: Shorten read_pack_info_file()

Sergey Vlasov (1):
      git-svn: write memoized data explicitly to avoid Storable bug

Thomas Rast (1):
      Only run aggregate-results over actual counts

Will Palmer (2):
      add basic tests for merge-tree
      merge-tree: fix where two branches share no changes

Ævar Arnfjörð Bjarmason (3):
      git submodule: add submodules with git add -f <path>
      git submodule add: Remove old docs about implicit -f
      git add: Add --ignore-missing to SYNOPSIS


Version v1.7.2-rc3; changes since v1.7.2-rc2:
---------------------------------------------

Bo Yang (1):
      diff.c: fix a graph output bug

Fredrik Skolmli (1):
      Documentation: Spelling fix in protocol-capabilities.txt

Johannes Sixt (1):
      t0005: work around strange $? in ksh when program terminated by a signal

Jonathan Nieder (1):
      t9118 (git-svn): prevent early failure from taking down later tests

Junio C Hamano (2):
      Fix "read-tree -m A B" priming the cache-tree
      Git 1.7.2-rc3

Michael J Gruber (3):
      t9118: avoid PEG revision identifier in tests
      test-lib: simplify GIT_SKIP_TESTS loop
      test-lib: TAP compliance for skipping tests on request

Miklos Vajna (1):
      format-patch: document the format.to configuration setting

Nicolas Sebrecht (1):
      checkout: accord documentation to what git does

Oren Held (1):
      git fetch documentation: describe short '-p' synonym to '--prune' option

Raja R Harinath (1):
      Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()

Ævar Arnfjörð Bjarmason (1):
      tests: Use skip_all=* to skip tests


Version v1.7.2-rc2; changes since v1.7.2-rc1:
---------------------------------------------

Brandon Casey (2):
      t/t9700/test.pl: don't access private object members, use public access methods
      t/t0006: specify timezone as EST5 not EST to comply with POSIX

Chris Packham (1):
      Documentation/git-gc.txt: add reference to githooks

Dylan Reid (1):
      xdiff: optimise for no whitespace difference when ignoring whitespace.

Heiko Voigt (1):
      add missing && to submodule-merge testcase

Jakub Narębski (1):
      gitweb: Move evaluate_gitweb_config out of run_request

Jeff King (3):
      t0006: test timezone parsing
      parse_date: fix signedness in timezone calculation
      test-date: fix sscanf type conversion

Jonathan Nieder (1):
      t/README: document more test helpers

Junio C Hamano (4):
      Updates from the list to 1.7.2 Release Notes
      t/README: proposed rewording...
      backmerge a few more fixes to 1.7.1.X series
      Git 1.7.2-rc2

Michael J Gruber (1):
      rerere.txt: Document forget subcommand

Pierre Habouzit (1):
      fix git branch -m in presence of cross devices

Uwe Kleine-König (1):
      rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option

Ævar Arnfjörð Bjarmason (13):
      test-lib: Adjust output to be valid TAP format
      test-lib: Make the test_external_* functions TAP-aware
      test-lib: output a newline before "ok" under a TAP harness
      tests: Skip tests in a way that makes sense under TAP
      tests: Say "pass" rather than "ok" on empty lines for TAP
      t9700: Use Test::More->builder, not $Test::Builder::Test
      t/README: The trash is in 't/trash directory.$name'
      t/README: Typo: paralell -> parallel
      t/README: Document the prereq functions, and 3-arg test_*
      t/README: Document test_external*
      t/README: Document test_expect_code
      t/README: Add a section about skipping tests
      t/README: Document the do's and don'ts of tests


Version v1.7.2-rc1; changes since v1.7.2-rc0:
---------------------------------------------

Andrew Sayers (2):
      bash-completion: Fix __git_ps1 to work with "set -u"
      bash completion: Support "divergence from upstream" messages in __git_ps1

Brandon Casey (4):
      t/lib-pager.sh: remove unnecessary '^' from 'expr' regular expression
      t/t7811-grep-open.sh: ensure fake "less" is made executable
      t/t7811-grep-open.sh: remove broken/redundant creation of fake "less" script
      t/t9001: use egrep when regular expressions are involved

Brian Gernhardt (1):
      t4027,4041: Use test -s to test for an empty file

Christian Couder (1):
      revert: accept arbitrary rev-list options

Jeff King (1):
      notes: check number of parameters to "git notes copy"

Jens Lehmann (4):
      git diff: rename test that had a conflicting name
      Add optional parameters to the diff option "--ignore-submodules"
      git submodule: ignore dirty submodules for summary and status
      Add the option "--ignore-submodules" to "git status"

Johannes Schindelin (3):
      Unify code paths of threaded greps
      grep: Add the option '--open-files-in-pager'
      grep -O: allow optional argument specifying the pager (or editor)

Jonathan Nieder (3):
      grep: refactor grep_objects loop into its own function
      t3508 (cherry-pick): futureproof against unmerged files
      revert: do not rebuild argv on heap

Julian Phillips (6):
      string_list: Fix argument order for print_string_list
      string_list: Fix argument order for for_each_string_list
      string_list: Fix argument order for string_list_insert
      string_list: Fix argument order for string_list_insert_at_index
      string_list: Fix argument order for string_list_lookup
      string_list: Fix argument order for string_list_append

Junio C Hamano (5):
      url_decode: URL scheme ends with a colon and does not require a slash
      Update draft release notes to 1.7.1.1
      Git 1.7.1.1
      git.spec.in: Add gitweb subpackage
      Git 1.7.2-rc1

Michael J Gruber (4):
      t6018: add tests for rev-list's --branches and --tags
      t6018: make sure all tested symbolic names are different revs
      git-rev-parse.txt: Document ":path" specifier
      git-rev-parse.txt: Add more examples for caret and colon

Nazri Ramliy (5):
      commit.h: add 'type' to struct name_decoration
      log-tree.c: Use struct name_decoration's type for classifying decoration
      log --decorate: Colorize commit decorations
      Allow customizable commit decorations colors
      Add test for correct coloring of git log --decoration

Ramsay Jones (2):
      msvc: Select the "fast" definition of the {get,put}_be32() macros
      notes: Initialise variable to appease gcc

Thomas Rast (1):
      rev-list: introduce --count option


Version v1.7.2-rc0; changes since v1.7.1.4:
-------------------------------------------

Alex Riesen (2):
      Allow passing of configuration parameters in the command line
      Use strbufs instead of open-coded string manipulation

Axel Bonnet (3):
      textconv: make the API public
      textconv: support for blame
      t/t8006: test textconv support for blame

Bo Yang (9):
      Add a macro DIFF_QUEUE_CLEAR.
      Make diffcore_std only can run once before a diff_flush
      Make git log --follow find copies among unmodified files.
      Add a prefix output callback to diff output
      Output the graph columns at the end of the commit message
      diff.c: Output the text graph padding before each diff line
      Emit a whole line in one go
      graph.c: register a callback for graph output
      Make --color-words work well with --graph

Brandon Casey (7):
      t/t5800: skip if python version is older than 2.5
      git-request-pull.sh: remove -e switch to shell interpreter which breaks ksh
      t/t5150: remove space from sed script
      t/t7006: ignore return status of shell's unset builtin
      t/aggregate-results: accomodate systems with small max argument list length
      Makefile: add PYTHON_PATH to GIT-BUILD-OPTIONS
      Remove python 2.5'isms

Brian Gernhardt (1):
      Makefile: Simplify handling of python scripts

Chris Webb (5):
      whitespace: add tab-in-indent error class
      whitespace: tests for git-diff --check with tab-in-indent error class
      whitespace: replumb ws_fix_copy to take a strbuf *dst instead of char *dst
      whitespace: add tab-in-indent support for --whitespace=fix
      whitespace: tests for git-apply --whitespace=fix with tab-in-indent

Christian Couder (13):
      revert: use strbuf to refactor the code that writes the merge message
      revert: refactor merge recursive code into its own function
      merge: refactor code that calls "git merge-STRATEGY"
      merge: make function try_merge_command non static
      revert: add "--strategy" option to choose merge strategy
      revert: cleanup code for -x option
      revert: use run_command_v_opt() instead of execv_git_cmd()
      revert: refactor code into a do_pick_commit() function
      revert: change help_msg() to take no argument
      revert: allow cherry-picking more than one commit
      revert: add tests to check cherry-picking many commits
      Documentation/cherry-pick: describe passing more than one commit
      Documentation/revert: describe passing more than one commit

Clément Poulain (3):
      sha1_name: add get_sha1_with_context()
      textconv: support for cat_file
      t/t8007: test textconv support for cat-file

Daniel Knittl-Frank (1):
      Show branch information in short output of git status

Eli Barzilay (1):
      Add `%B' in format strings for raw commit body in `git log' and friends

Eli Collins (1):
      diff: add configuration option for disabling diff prefixes.

Eric Wong (1):
      git svn: avoid unnecessary '/' in paths for SVN

Erick Mattos (6):
      git checkout: create unparented branch by --orphan
      Documentation: alter checkout --orphan description
      refs: split log_ref_write logic into log_ref_setup
      checkout --orphan: respect -l option always
      t3200: test -l with core.logAllRefUpdates options
      bash completion: add --orphan to 'git checkout'

Erik Faye-Lund (1):
      mingw: use _commit to implement fsync

Eyvind Bernhardsen (4):
      Add tests for per-repository eol normalization
      Add per-repository eol normalization
      Rename the "crlf" attribute "text"
      Add "core.eol" config variable

Finn Arne Gangstad (1):
      autocrlf: Make it work also for un-normalized repositories

Gary V. Vaughan (17):
      Makefile: pass CPPFLAGS through to fllow customization
      Rewrite dynamic structure initializations to runtime assignment
      Makefile: -lpthread may still be necessary when libc has only pthread stubs
      enums: omit trailing comma for portability
      Do not use "diff" found on PATH while building and installing
      tests: use "test_cmp", not "diff", when verifying the result
      test_cmp: do not use "diff -u" on platforms that lack one
      git-compat-util.h: some platforms with mmap() lack MAP_FAILED definition
      Makefile: some platforms do not have hstrerror anywhere
      Make NO_{INET_NTOP,INET_PTON} configured independently
      Some platforms lack socklen_t type
      Allow disabling "inline"
      inline declaration does not work on AIX
      Makefile: SunOS 5.6 portability fix
      Makefile: HPUX11 portability fixes
      Makefile: HP-UX 10.20 portability fixes
      Makefile: Tru64 portability fix

Giuseppe Scrivano (1):
      print the usage string on stdout instead of stderr

Henrik Grubbström (2):
      convert: Safer handling of $Id$ contraction.
      convert: Keep foreign $Id$ on checkout.

Jakub Narębski (16):
      Export more test-related variables when running external tests
      gitweb: href(..., -path_info => 0|1)
      gitweb: Use nonlocal jump instead of 'exit' in die_error
      gitweb: Add custom error handler using die_error
      gitweb: Move generating page title to separate subroutine
      gitweb: Silence 'Variable VAR may be unavailable' warnings
      gitweb: Improve installation instructions in gitweb/INSTALL
      gitweb: Create install target for gitweb in Makefile
      gitweb: Refactor syntax highlighting support
      gitweb: Put all per-connection code in run() subroutine
      git-instaweb: Remove pidfile after stopping web server
      git-instaweb: Wait for server to start before running web browser
      git-instaweb: Add support for running gitweb via 'plackup'
      gitweb: Run in FastCGI mode if gitweb script has .fcgi extension
      gitweb: Fix typo in hash key name in %opts in git_header_html
      gitweb: Return or exit after done serving request

Jan Krüger (1):
      git-am: suggest what to do with superfluous patches

Jay Soffian (1):
      t5516-fetch-push.sh: style cleanup

Jeff King (11):
      make commit_tree a library function
      introduce notes-cache interface
      textconv: refactor calls to run_textconv
      diff: cache textconv output
      diff: avoid useless filespec population
      script with rev-list instead of log
      tests: rename duplicate t4205
      tests: chmod +x t5150
      make url-related functions reusable
      decode file:// and ssh:// URLs
      Makefile: default pager on AIX to "more"

Johan Herland (5):
      diff.c: Ensure "index $from..$to" line contains unambiguous SHA1s
      Documentation/rev-list-options.txt: Fix missing line in example history graph
      Documentation/rev-list-options.txt: Explain --ancestry-path
      revision: Fix typo in --ancestry-path error message
      revision: Turn off history simplification in --ancestry-path mode

Johannes Schindelin (1):
      gitweb: Syntax highlighting support

Johannes Sixt (11):
      Modernize t5530-upload-pack-error.
      Make report() from usage.c public as vreportf() and use it.
      Fix signature of fcntl() compatibility dummy
      Windows: more pthreads functions
      Reimplement async procedures using pthreads
      Dying in an async procedure should only exit the thread, not the process.
      Enable threaded async procedures whenever pthreads is available
      Have set_try_to_free_routine return the previous routine
      Do not call release_pack_memory in malloc wrappers when GIT_TRACE is used
      Recent MinGW has a C99 implementation of snprintf functions
      merge-recursive: demonstrate an incorrect conflict with submodule

Jonathan Nieder (17):
      t7400: split setup into multiple tests
      t7400: clarify 'submodule add' tests
      t7400: clarify submodule update tests
      t5800: testgit helper requires Python support
      tests for request-pull
      request-pull: protect against OPTIONS_KEEPDASHDASH from environment
      fsck: check ident lines in commit objects
      adapt request-pull tests for new pull request format
      pretty: initialize new cmt_fmt_map to 0
      Makefile: fix header dependency checker to allow NO_CURL builds
      Makefile: let header dependency checker override COMPUTE_HEADER_DEPENDENCIES
      git svn: avoid uninitialized var in 'reset'
      Add git remote set-branches
      fsck: fix bogus commit header check
      rebase: improve error message when upstream argument is missing
      DWIM 'git show -5' to 'git show --do-walk -5'
      git-svn: strip off leading slashes on --trunk argument

Junio C Hamano (31):
      git_config_maybe_bool()
      log.decorate: usability fixes
      whitespace: we cannot "catch all errors known to git" anymore
      GIT_ONE_FILESYSTEM: flip the default to stop at filesystem boundaries
      Rename ONE_FILESYSTEM to DISCOVERY_ACROSS_FILESYSTEM
      log --pretty/--oneline: ignore log.decorate
      war on "sleep" in tests
      reflog --expire-unreachable: avoid merge-base computation
      log.decorate: only ignore it under "log --pretty=raw"
      wt-status: remove unused workdir_untracked member
      wt-status: plug memory leak while collecting untracked files
      wt-status: collect ignored files
      wt-status: rename and restructure status-print-untracked
      status: --ignored option shows ignored files
      Document gc.<pattern>.reflogexpire variables
      more war on "sleep" in tests
      reflog --expire-unreachable: special case entries in "HEAD" reflog
      revision: --ancestry-path
      wt-status: fix 'fprintf' compilation warning
      t5150: protect backslash with backslash in shell
      Start 1.7.2 cycle
      fixup: do not unconditionally disable "diff -u"
      build: propagate $DIFF to scripts
      test-lib: use DIFF definition from GIT-BUILD-OPTIONS
      Update draft release notes to 1.7.2
      Update draft release notes to 1.7.2
      Update draft release notes to 1.7.2
      Drop items that are 1.7.1.1 fixes from the 1.7.1 release notes
      Update draft release notes to 1.7.2
      url.c: "<scheme>://" part at the beginning should not be URL decoded
      Git 1.7.2-rc0

Lars R. Damerow (3):
      config.c: remove static keyword from git_env_bool()
      truncate cwd string before printing error message
      Add support for GIT_ONE_FILESYSTEM

Linus Torvalds (1):
      Make :/ accept a regex rather than a fixed pattern

Michael J Gruber (5):
      for-each-ref: Field with abbreviated objectname
      notes: dry-run and verbose options for prune
      Documentation+t5708: document and test status -s -b
      pretty: Introduce ' ' modifier to add space if non-empty
      git-cat-file.txt: Document --textconv

Michael J. Kiwala (1):
      git svn: fix empty directory creation

Paolo Bonzini (2):
      patch-id: extract parsing one diff out of generate_id_list
      patch-id: Add support for mbox format

Pavan Kumar Sunkara (6):
      gitweb: Use @diff_opts while using format-patch
      gitweb: Move static files into seperate subdirectory
      gitweb: Set default destination directory for installing gitweb in Makefile
      git-instaweb: Put httpd logs in a "$httpd_only" subdirectory
      git-instaweb: Configure it to work with new gitweb structure
      git-web--browse: Add support for google chrome and chromium

Ramkumar Ramachandra (4):
      git am: Set cmdline globally
      git am: Display some help text when patch is empty
      git am: Remove stray error message from sed
      Refactor parse_date for approxidate functions

René Scharfe (8):
      grep: add test script for binary file handling
      grep: grep: refactor handling of binary mode options
      grep: --count over binary
      grep: --name-only over binary
      grep: use memmem() for fixed string search
      grep: continue case insensitive fixed string search after NUL chars
      grep: use REG_STARTEND for all matching if available
      grep: support NUL chars in search strings for -F

Sam Vilain (2):
      gitweb: Add support for FastCGI, using CGI::Fast
      git-cvsserver: use a password file cvsserver pserver

Samuel Tardieu (2):
      Honor "tagopt = --tags" configuration option
      remote add: add a --[no-]tags option

Simo Melenius (2):
      branch: exit status now reflects if branch listing finds an error
      branch: don't fail listing branches if one of the commits wasn't found

Stephen Boyd (2):
      format-patch: Add a signature option (--signature)
      completion: Add --signature and format.signature

Steven Drake (1):
      Add `log.decorate' configuration variable.

Sverre Rabbelier (7):
      clone: pass the remote name to remote_get
      clone: also configure url for bare clones
      fast-import: always create marks_file directories
      remote-helpers: allow requesing the path to the .git directory
      remote-helpers: add support for an export command
      remote-helpers: add testgit helper
      remote-helpers: add tests for testgit helper

Tay Ray Chuan (2):
      ls-remote: fall-back to default remotes when no remote specified
      ls-remote: print URL when no repo is specified

Thomas Rast (5):
      diff: add --word-diff option that generalizes --color-words
      Complete prototype of git_config_from_parameters()
      fast-import: die_nicely() back to vsnprintf (reverts part of ebaa79f)
      log_ref_setup: don't return stack-allocated array
      parseopt: wrap rev-parse --parseopt usage for eval consumption

Torsten Schmutzler (1):
      git-svn: mangle refnames forbidden in git

Will Palmer (4):
      pretty: make it easier to add new formats
      pretty: add infrastructure for commit format aliases
      pretty: add aliases for pretty formats
      diff-options: make --patch a synonym for -p

Ævar Arnfjörð Bjarmason (12):
      Add option to git-commit to allow empty log messages
      git-svn documentation: minor grammar fix
      git-svn: Remove unused use of File::Temp
      git-cvsserver: authentication support for pserver
      git-cvsserver: indent & clean up authdb code
      git-cvsserver: Improved error handling for pserver
      git-cvsserver: document making a password without htpasswd
      git-cvsserver: test for pserver authentication support
      git-submodule foreach: Add $toplevel variable
      Makefile: remove redundant munging of @@INSTLIBDIR@@
      git-cvsserver: typo in a comment: bas -> has
      git-cvsserver: fix error for invalid password formats


Version v1.7.1.4; changes since v1.7.1.3:
-----------------------------------------

Jakub Narębski (1):
      gitweb: Introduce esc_attr to escape attributes of HTML elements

Junio C Hamano (1):
      Git 1.6.4.5


Version v1.7.1.3; changes since v1.7.1.2:
-----------------------------------------

Jonathan Nieder (1):
      add: introduce add.ignoreerrors synonym for add.ignore-errors

Junio C Hamano (1):
      Git 1.7.0.8

Matthieu Moy (1):
      t0003: add missing && at end of lines


Version v1.7.1.2; changes since v1.7.1.1:
-----------------------------------------

Brandon Casey (1):
      t/README: clarify test_must_fail description

Chris Packham (1):
      Documentation/git-gc.txt: add reference to githooks

David Aguilar (1):
      Documentation: Explain git-mergetool's use of temporary files

Dylan Reid (1):
      xdiff: optimise for no whitespace difference when ignoring whitespace.

Fredrik Skolmli (1):
      Documentation: Spelling fix in protocol-capabilities.txt

Greg Brockman (2):
      Check size of path buffer before writing into it
      Check size of path buffer before writing into it

Heiko Voigt (1):
      add missing && to submodule-merge testcase

Jay Soffian (2):
      receive-pack: switch global variable 'commands' to a parameter
      receive-pack: detect aliased updates which can occur with symrefs

Jeff King (2):
      t0006: test timezone parsing
      test-date: fix sscanf type conversion

Johannes Sixt (1):
      t0005: work around strange $? in ksh when program terminated by a signal

Jonathan Nieder (3):
      gitmodules.5: url can be a relative path
      Documentation: add submodule.* to the big configuration variable list
      config --get --path: check for unset $HOME

Junio C Hamano (3):
      backmerge a few more fixes to 1.7.1.X series
      Git 1.7.0.7
      Git 1.7.1.2

Michael J Gruber (3):
      git-rev-parse.txt: Document ":path" specifier
      git-rev-parse.txt: Add more examples for caret and colon
      rerere.txt: Document forget subcommand

Miklos Vajna (1):
      format-patch: document the format.to configuration setting

Nicolas Sebrecht (1):
      checkout: accord documentation to what git does

Oren Held (1):
      git fetch documentation: describe short '-p' synonym to '--prune' option

Pavan Kumar Sunkara (1):
      gitweb: fix esc_url

Pierre Habouzit (1):
      fix git branch -m in presence of cross devices

Ralf Thielow (1):
      update-server-info: Shorten read_pack_info_file()

Stephen Boyd (1):
      request-pull.txt: Document -p option

Thomas Rast (1):
      check_aliased_update: strcpy() instead of strcat() to copy

Uwe Kleine-König (1):
      rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option


Version v1.7.1.1; changes since v1.7.1:
---------------------------------------

Alexey Mahotkin (1):
      xdiff/xmerge.c: use memset() instead of explicit for-loop

Bert Wesarg (1):
      diff: fix coloring of extended diff headers

Björn Gustavsson (1):
      apply: Allow blank *trailing* context lines to match beyond EOF

Björn Steinbrink (1):
      diff: Support visibility modifiers in the PHP hunk header regexp

Bo Yang (1):
      blame-options.txt: Add default value for `-M/-C` options.

Brandon Casey (1):
      t/t9001: use egrep when regular expressions are involved

Brian Downing (1):
      unpack-trees: Make index lookahead less pessimal

Brian Gernhardt (4):
      send-email: Cleanup { style
      send-email: Don't use FQDNs without a '.'
      Document send-email --smtp-domain
      send-email: Cleanup smtp-domain and add config

Charles Bailey (2):
      stash: Don't overwrite files that have gone from the index
      stash tests: stash can lose data in a file removed from the index

Chris Webb (1):
      exec_cmd.c: replace hard-coded path list with one from <paths.h>

Christian Couder (3):
      diff: fix "git show -C -C" output when renaming a binary file
      commit: use value of GIT_REFLOG_ACTION env variable as reflog message
      Documentation: grep: fix asciidoc problem with --

Clemens Buchacher (7):
      do not overwrite files marked "assume unchanged"
      Documentation: git-add does not update files marked "assume unchanged"
      test get_git_work_tree() return value for NULL
      get_cwd_relative(): do not misinterpret suffix as subdirectory
      setup: document prefix
      quote.c: separate quoting and relative path generation
      ls-files: allow relative pathspec

Dmitry Potapov (1):
      hash_object: correction for zero length file

Gary V. Vaughan (1):
      git-compat-util.h: use apparently more common __sgi macro to detect SGI IRIX

Gerrit Pape (1):
      git-submodule.sh: properly initialize shell variables

Henrik Grubbström (3):
      attr: Fixed debug output for macro expansion.
      attr: Allow multiple changes to an attribute on the same line.
      attr: Expand macros immediately when encountered.

Ian McLean (1):
      Fix "Out of memory? mmap failed" for files larger than 4GB on Windows

Ian Ward Comfort (1):
      rebase -i: Abort cleanly if new base cannot be checked out

Jakub Narębski (1):
      autoconf: Check if <paths.h> exists and set HAVE_PATHS_H

Jay Soffian (3):
      commit.txt: clarify how --author argument is used
      am: use get_author_ident_from_commit instead of mailinfo when rebasing
      gitweb/Makefile: fix typo in gitweb.min.css rule

Jeff King (7):
      handle "git --bare init <dir>" properly
      docs: clarify meaning of -M for git-log
      remove over-eager caching in sha1_file_name
      pull: do nothing on --dry-run
      commit: give advice on empty amend
      Makefile: default pager on AIX to "more"
      notes: check number of parameters to "git notes copy"

Johannes Sixt (1):
      Thread-safe xmalloc and xrealloc needs a recursive mutex

Jonathan Nieder (25):
      t7006: guard cleanup with test_expect_success
      t5704 (bundle): add tests for bundle --stdin
      fix "bundle --stdin" segfault
      test-lib: Let tests specify commands to be run at end of test
      commit --amend: cope with missing display name
      Documentation/shortlog: scripted users should not rely on implicit HEAD
      t4201 (shortlog): guard setup with test_expect_success
      t4201 (shortlog): Test output format with multiple authors
      shortlog: Document and test --format option
      test-lib: some shells do not let $? propagate into an eval
      cherry-pick: do not dump core when iconv fails
      Documentation/notes: document format of notes trees
      Documentation/notes: describe content of notes blobs
      Documentation/notes: add configuration section
      Documentation/notes: simplify treatment of default notes ref
      Documentation/log: add a CONFIGURATION section
      Documentation/notes: simplify treatment of default display refs
      Documentation/notes: clean up description of rewriting configuration
      Documentation/notes: nitpicks
      post-receive-email: document command-line mode
      Documentation/checkout: clarify description
      gitignore.5: Clarify matching rules
      rebase -i -p: document shortcomings
      Documentation/checkout: clarify description
      add-interactive: Clarify “remaining hunks in the file”

Junio C Hamano (10):
      am -3: recover the diagnostic messages for corrupt patches
      clone: quell the progress report from init and report on clone
      t9129: fix UTF-8 locale detection
      common_prefix: simplify and fix scanning for prefixes
      Prepare draft release notes to 1.7.1.1
      Update draft release notes to 1.7.1.1
      tests: remove unnecessary '^' from 'expr' regular expression
      Update draft release notes to 1.7.1.1
      Update draft release notes to 1.7.1.1
      Git 1.7.1.1

Leif Arne Storset (1):
      Documentation/config.txt: GIT_NOTES_REWRITE_REF overrides notes.rewriteRef

Marcus Comstedt (1):
      Add "Z" as an alias for the timezone "UTC"

Markus Heidelberg (4):
      t7508: add test for "git status" refreshing the index
      git status: refresh the index if possible
      t7508: add a test for "git status" in a read-only repository
      Documentation: rebase -i ignores options passed to "git am"

Michael J Gruber (10):
      index-pack: fix trivial typo in usage string
      t7508: test advice.statusHints
      wt-status: take advice.statusHints seriously
      Documentation: fix minor inconsistency
      Documentation/gitdiffcore: fix order in pickaxe description
      Documentation/SubmittingPatches: clarify GMail section and SMTP
      completion: --set-upstream option for git-branch
      Makefile: reenable install with NO_CURL
      Documentation/config: describe status.submodulesummary
      Documentation: A...B shortcut for checkout and rebase

Michal Sojka (1):
      test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

Nazri Ramliy (1):
      Documentation/pretty-{formats,options}: better reference for "format:<string>"

Nicolas Pitre (4):
      Make xmalloc and xrealloc thread-safe
      index-pack: smarter memory usage when resolving deltas
      index-pack: rationalize unpack_entry_data()
      index-pack: smarter memory usage when appending objects

Pete Harlan (1):
      clone: reword messages to match the end-user perception

Peter Collingbourne (4):
      Generalise the unlink_or_warn function
      Implement the rmdir_or_warn function
      Introduce remove_or_warn function
      Remove a redundant errno test in a usage of remove_path

Philippe Bruhat (1):
      Git.pm: better error message

Ping Yin (1):
      Documentation/git-send-email: Add "Use gmail as the smtp server"

Ramkumar Ramachandra (1):
      SubmittingPatches: Add new section about what to base work on

Ramsay Jones (4):
      Makefile: Fix 'clean' target to remove all gitweb build files
      msvc: Fix some "expr evaluates to function" compiler warnings
      msvc: Fix some compiler warnings
      notes: Initialise variable to appease gcc

René Scharfe (3):
      git diff too slow for a file
      remove ecb parameter from xdi_diff_outf()
      Fix checkout of large files to network shares on Windows XP

Scott Chacon (1):
      Prompt for a username when an HTTP request 401s

Shawn O. Pearce (16):
      tag.c: Correct indentation
      tag.h: Remove unused signature field
      tag.c: Refactor parse_tag_buffer to be saner to program
      tag.c: Parse tagger date (if present)
      describe: Break annotated tag ties by tagger date
      http.c: Remove bad free of static block
      t5550-http-fetch: Use subshell for repository operations
      http.c: Tiny refactoring of finish_http_pack_request
      http.c: Drop useless != NULL test in finish_http_pack_request
      http.c: Don't store destination name in request structures
      http.c: Remove unnecessary strdup of sha1_to_hex result
      Introduce close_pack_index to permit replacement
      Extract verify_pack_index for reuse from verify_pack
      Allow parse_pack_index on temporary files
      http-fetch: Use index-pack rather than verify-pack to check packs
      http-fetch: Use temporary files for pack-*.idx until verified

Sverre Rabbelier (1):
      Gitweb: ignore built file

Tay Ray Chuan (18):
      t5541-http-push: add test for URLs with trailing slash
      http: make end_url_with_slash() public
      remote-curl: ensure that URLs have a trailing slash
      http.c::new_http_pack_request: do away with the temp variable filename
      t7604-merge-custom-message: shift expected output creation
      t7604-merge-custom-message: show that --log doesn't append to -m
      merge: update comment
      merge: rename variable
      fmt-merge-msg: minor refactor of fmt_merge_msg()
      fmt-merge-msg: refactor merge title formatting
      fmt-merge-msg: add function to append shortlog only
      merge: --log appends shortlog to message if specified
      GIT-VERSION-GEN: restrict tags used
      t7502-commit: fix spelling
      show-branch: use DEFAULT_ABBREV instead of 7
      t7502-commit: add tests for summary output
      t7502-commit: add summary output tests for empty and merge commits
      commit::print_summary(): don't use format_commit_message()

Thomas Rast (2):
      t/README: document --root option
      send-email: ask about and declare 8bit mails

Tim Henigan (1):
      Documentation/SubmittingPatches: Fix typo in GMail section

Tor Arntsen (1):
      Change C99 comments to old-style C comments

Will Palmer (1):
      pretty: Respect --abbrev option

Zhang Le (1):
      git-mailinfo documentation: clarify -u/--encoding

bert Dvornik (1):
      start_command: close cmd->err descriptor when fork/spawn fails

Ævar Arnfjörð Bjarmason (3):
      Move t6000lib.sh to lib-*
      Turn setup code in t2007-checkout-symlink.sh into a test
      notes: Initialize variable to appease Sun Studio


Version v1.7.1; changes since v1.7.1-rc2:
-----------------------------------------

Eric Raymond (1):
      Documentation improvements for the description of short format.

Johannes Sixt (1):
      MSVC: Fix build by adding missing termios.h dummy

Jonathan Nieder (1):
      Documentation/Makefile: fix interrupted builds of user-manual.xml

Junio C Hamano (2):
      Git 1.7.0.6
      Git 1.7.1

Michael J Gruber (1):
      t7012: Mark missing tests as TODO

SZEDER Gábor (1):
      reflog: remove 'show' from 'expire's usage string


Version v1.7.1-rc2; changes since v1.7.1-rc1:
---------------------------------------------

Charles Bailey (1):
      Documentation: Describe other situations where -z affects git diff

Chris Webb (1):
      git-instaweb: pass through invoking user's path to gitweb CGI scripts

Jay Soffian (1):
      Documentation/config.txt: default gc.aggressiveWindow is 250, not 10

Jeff King (2):
      diff: use large integers for diffstat calculations
      rebase-interactive: silence warning when no commits rewritten

Jens Lehmann (2):
      gitk: Add Ctrl-W shortcut for closing the active window
      gitk: Display dirty submodules correctly

Johannes Gilger (1):
      pretty: Initialize notes if %N is used

Johannes Sixt (1):
      Windows: start_command: Support non-NULL dir in struct child_process

Jonathan Nieder (5):
      gitk: Add comments to explain encode_view_opts and decode_view_opts
      gitk: Don't clobber "Remember this view" setting
      Add .depend directories to .gitignore
      Document new "already-merged" rule for branch -d
      tag -v: use RUN_GIT_CMD to run verify-tag

Junio C Hamano (6):
      SubmittingPatches: update GMail section
      blame documentation: -M/-C notice copied lines as well as moved ones
      Git 1.7.0.5
      gitweb: simplify gitweb.min.* generation and clean-up rules
      t3301: add tests to use --format="%N"
      Git 1.7.1-rc2

Marc Branchaud (1):
      Docs: Add -X option to git-merge's synopsis.

Mark Hills (4):
      gitk: Remove forced use of sans-serif font
      gitk: Set the font for all spinbox widgets
      gitk: Set the font for all listbox widgets
      gitk: Use consistent font for all text input fields

Matthew Ogilvie (1):
      t6006: do not write to /tmp

Michael J Gruber (1):
      t1010-mktree: Adjust expected result to code and documentation

Pat Thoyts (3):
      gitk: Avoid calling tk_setPalette on Windows
      gitk: Add emacs editor variable block
      gitk: Fix display of copyright symbol

Ramkumar Ramachandra (5):
      Documentation/remote-helpers: Rewrite description
      Documentation/urls: Rewrite to accomodate <transport>::<address>
      Documentation/remote-helpers: Add invocation section
      Fixup: Second argument may be any arbitrary string
      Documentation/remote-helpers: Fix typos and improve language

Stephen Boyd (1):
      t3507: Make test executable

Thomas Rast (1):
      combined diff: correctly handle truncated file

Will Palmer (1):
      documentation: clarify direction of core.autocrlf


Version v1.7.1-rc1; changes since v1.7.1-rc0:
---------------------------------------------

Brandon Casey (1):
      notes.h: declare bit field as unsigned to silence compiler complaints

Jeff King (4):
      fix const-correctness of write_sha1_file
      fix textconv leak in emit_rewrite_diff
      fix typos and grammar in 1.7.1 draft release notes
      docs: clarify "branch -l"

Jens Lehmann (2):
      Let check_preimage() use memset() to initialize "struct checkout"
      Teach diff --submodule and status to handle .git files in submodules

Jonathan Nieder (1):
      Teach mailinfo %< as an alternative scissors mark

Junio C Hamano (2):
      diff.c: work around pointer constness warnings
      Git 1.7.1-rc1

Mark Rada (6):
      Gitweb: add ignore and clean rules for minified files
      Gitweb: add support for minifying gitweb.css
      Gitweb: add autoconfigure support for minifiers
      instaweb: add minification awareness
      gitweb: add documentation to INSTALL regarding gitweb.js
      gitweb: update INSTALL to use shorter make target

Michael J Gruber (2):
      t3301-notes: Test the creation of reflog entries
      refs.c: Write reflogs for notes just like for branch heads

Tay Ray Chuan (2):
      branch: say "Reset to" in reflog entries for 'git branch -f' operations
      fetch/push: fix usage strings


Version v1.7.1-rc0; changes since v1.7.0.9:
-------------------------------------------

Aaron Crane (1):
      cvsimport: new -R option: generate .git/cvs-revisions mapping

Anders Kaseorg (1):
      everyday: fsck and gc are not everyday operations

Ben Walton (2):
      Make templates honour SHELL_PATH and PERL_PATH
      Modernize git calling conventions in hook templates

Benjamin C Meyer (1):
      Fix a spelling mistake in a git-p4 console message

Bert Wesarg (4):
      make union merge an xdl merge favor
      refactor merge flags into xmparam_t
      merge-file: add option to specify the marker size
      merge-file: add option to select union merge favor

Brandon Casey (9):
      t/t1304: avoid -d option to setfacl
      t/t1304: set the Default ACL base entries
      t/t1304: use 'test -r' to test readability rather than looking at mode bits
      t/t1304: set the ACL effective rights mask
      t/t1304: make a second colon optional in the mask ACL check
      notes.c: remove inappropriate call to return
      t5505: remove unnecessary subshell invocations
      t5505: add missing &&
      t/t5505-remote.sh: escape * to prevent interpretation by shell as glob

Brian Gernhardt (1):
      Use test_expect_success for test setups

Chris Webb (1):
      imap-send: suppress warning about cleartext password with CRAM-MD5

Christian Couder (8):
      reset: add option "--keep" to "git reset"
      reset: add test cases for "--keep" option
      Documentation: reset: describe new "--keep" option
      reset: disallow "reset --keep" outside a work tree
      reset: disallow using --keep when there are unmerged entries
      cherry-pick: add tests for new --ff option
      Documentation: describe new cherry-pick --ff option
      rebase -i: use new --ff cherry-pick option

Dave Olszewski (1):
      rebase--interactive: don't require what's rebased to be a branch

Eric Blake (1):
      Makefile: update defaults for modern Cygwin

Eric S. Raymond (1):
      Integrate version 3 ciabot scripts into contrib/.

Erik Faye-Lund (5):
      hash-object: support --stdin-paths with --no-filters
      git-svn: support fetch with autocrlf on
      Revert "git-svn: always initialize with core.autocrlf=false"
      cherry: support --abbrev option
      ls: remove redundant logic

Frank Li (3):
      fallback SSH_ASKPASS when GIT_ASKPASS not set
      git-svn: Support retrieving passwords with GIT_ASKPASS
      git-core: Support retrieving passwords with GIT_ASKPASS

Hitoshi Mitake (1):
      imap-send: support CRAM-MD5 authentication

Ian Ward Comfort (1):
      RPM spec: include bash completion support

Ilari Liusvaara (1):
      Allow '+', '-' and '.' in remote helper names

Jakub Narębski (2):
      gitweb: esc_html (short) error message in die_error
      gitweb: Protect escaping functions against calling on undef

Jari Aalto (3):
      git-send-email.perl: improve error message in send_message()
      git-send-email.perl: add option --smtp-debug
      git-send-email.perl - try to give real name of the calling host to HELO/EHLO

Jeff King (1):
      submodule summary: do not shift a non-existent positional variable

Jens Lehmann (6):
      git diff --submodule: Show detailed dirty status of submodules
      git status: Show detailed dirty status of submodules in long format
      git submodule summary: Handle HEAD as argument when on an unborn branch
      Refactor dirty submodule detection in diff-lib.c
      git status: Fix false positive "new commits" output for dirty submodules
      git status: ignoring untracked files must apply to submodules too

Johan Herland (32):
      Minor cosmetic fixes to notes.c
      Notes API: get_commit_notes() -> format_note() + remove the commit restriction
      Add tests for checking correct handling of $GIT_NOTES_REF and core.notesRef
      Notes API: init_notes(): Initialize the notes tree from the given notes ref
      Notes API: add_note(): Add note objects to the internal notes tree structure
      Notes API: remove_note(): Remove note objects from the notes tree structure
      Notes API: get_note(): Return the note annotating the given object
      Notes API: for_each_note(): Traverse the entire notes tree with a callback
      Notes API: write_notes_tree(): Store the notes tree in the database
      Notes API: Allow multiple concurrent notes trees with new struct notes_tree
      Refactor notes concatenation into a flexible interface for combining notes
      Builtin-ify git-notes
      t3301: Verify successful annotation of non-commits
      t3305: Verify that adding many notes with git-notes triggers increased fanout
      Teach notes code to properly preserve non-notes in the notes tree
      Teach builtin-notes to remove empty notes
      builtin-notes: Add "remove" subcommand for removing existing notes
      t3305: Verify that removing notes triggers automatic fanout consolidation
      Notes API: prune_notes(): Prune notes that belong to non-existing objects
      builtin-notes: Add "prune" subcommand for removing notes for missing objects
      Documentation: Generalize git-notes docs to 'objects' instead of 'commits'
      builtin-notes: Add "list" subcommand for listing note objects
      builtin-notes: Add --message/--file aliases for -m/-F options
      builtin-notes: Add "add" subcommand for adding notes to objects
      builtin-notes: Add "append" subcommand for appending to note objects
      builtin-notes: Deprecate the -m/-F options for "git notes edit"
      builtin-notes: Refactor handling of -F option to allow combining -m and -F
      builtin-notes: Add -c/-C options for reusing notes
      builtin-notes: Misc. refactoring of argc and exit value handling
      builtin-notes: Add "copy" subcommand for copying notes between objects
      submodule summary: Don't barf when invoked in an empty repo
      builtin-notes: Minor (mostly parse_options-related) fixes

Johannes Sixt (2):
      Print RUNTIME_PREFIX warning only when GIT_TRACE is set
      Windows: redirect f[re]open("/dev/null") to f[re]open("nul")

Jonathan Nieder (33):
      Makefile: add missing header file dependencies
      Makefile: make sure test helpers are rebuilt when headers change
      Makefile: remove wt-status.h from LIB_H
      Makefile: clean up http-walker.o dependency rules
      Makefile: drop dependency on $(wildcard */*.h)
      Makefile: transport.o depends on branch.h now
      Makefile: rearrange dependency rules
      Makefile: disable default implicit rules
      Makefile: list generated object files in OBJECTS
      Makefile: lazily compute header dependencies
      Makefile: list standalone program object files in PROGRAM_OBJS
      Teach Makefile to check header dependencies
      Do not install shell libraries executable
      Makefile: tuck away generated makefile fragments in .depend
      Makefile: always remove .depend directories on 'make clean'
      Makefile: clarify definition of TEST_OBJS
      Makefile: Fix occasional GIT-CFLAGS breakage
      revert: fix tiny memory leak in cherry-pick --ff
      tests: document format of conflicts from checkout -m
      tests: document cherry-pick behavior in face of conflicts
      xdl_merge(): add optional ancestor label to diff3-style output
      xdl_merge(): move file1 and file2 labels to xmparam structure
      merge-file --diff3: add a label for ancestor
      ll_merge(): add ancestor label parameter for diff3-style output
      checkout --conflict=diff3: add a label for ancestor
      merge_file(): add comment explaining behavior wrt conflict style
      merge_trees(): add ancestor label parameter for diff3-style output
      checkout -m --conflict=diff3: add a label for ancestor
      compat: add mempcpy()
      revert: clarify label on conflict hunks
      cherry-pick, revert: add a label for ancestor
      merge-recursive: add a label for ancestor
      Makefile: future-proof Cygwin version check

Junio C Hamano (25):
      builtin-for-each-ref.c: comment fixes
      builtin-for-each-ref.c: check if we need to peel onion while parsing the format
      for-each-ref --format='%(symref) %(symref:short)'
      for-each-ref --format='%(flag)'
      Start 1.7.1 cycle
      Resurrect "git grep --no-index"
      Update draft release notes to 1.7.1
      notes: fix malformed tree entry
      wrap-for-bin: do not export an empty GIT_TEMPLATE_DIR
      submodule summary: do not fail before the first commit
      parse-options: add parse_options_concat() to concat options
      builtin/merge: make checkout_fast_forward() non static
      revert: add --ff option to allow fast forward when cherry-picking
      Update draft release notes to 1.7.1
      Documentation: improve description of "git reset --keep"
      t4013: add tests for log -p -m --first-parent
      revision: introduce setup_revision_opt
      show -c: show patch text
      show --first-parent/-m: do not default to --cc
      Makefile: update check-docs target
      t5516: Use test_cmp when appropriate
      Update draft release notes to 1.7.1
      Update draft release notes to 1.7.1
      Revert "Link against libiconv on IRIX"
      Git 1.7.1-rc0

Larry D'Anna (4):
      git-push: fix an advice message so it goes to stderr
      git-push: send "To <remoteurl>" messages to the standard output in --porcelain mode
      git-push: make git push --porcelain print "Done"
      git-push: add tests for git push --porcelain

Linus Torvalds (1):
      Move 'builtin-*' into a 'builtin/' subdirectory

Marc Branchaud (1):
      Teach rebase the --no-ff option.

Mark Lodato (4):
      Add an optional argument for --color options
      Add GIT_COLOR_BOLD_* and GIT_COLOR_BG_*
      grep: Colorize filename, line number, and separator
      grep: Colorize selected, context, and function lines

Markus Heidelberg (2):
      builtin/commit: fix duplicated sentence in a comment
      builtin/commit: remove unnecessary variable definition

Michael J Gruber (4):
      git-svn: req_svn when needed
      t9119-git-svn-info.sh: test with svn 1.6.* as well
      Documentation: fix a few typos in git-notes.txt
      git-svn: make git svn --version work again

Michael Lukashov (4):
      connect.c: move duplicated code to a new function 'get_host_and_port'
      refactor duplicated code in builtin-send-pack.c and transport.c
      refactor duplicated fill_mm() in checkout and merge-recursive
      refactor duplicated encode_header in pack-objects and fast-import

Michele Ballabio (1):
      shortlog: warn the user when there is no input

Miklos Vajna (1):
      request-pull: avoid mentioning that the start point is a single commit

Nguyễn Thái Ngọc Duy (5):
      make_absolute_path(): Do not append redundant slash
      init-db, rev-parse --git-dir: do not append redundant slash
      Move offset_1st_component() to path.c
      Support working directory located at root
      Add test for using Git at root of file system

Nicolas Pitre (1):
      move encode_in_pack_object_header() to a better place

Petr Baudis (1):
      git log -p -m: document -m and honor --first-parent

René Scharfe (2):
      setenv(GIT_DIR) clean-up
      grep: enable threading for context line printing

SZEDER Gábor (4):
      bash: improve aliased command recognition
      bash: support user-supplied completion scripts for user's git commands
      bash: support user-supplied completion scripts for aliases
      bash: completion for gitk aliases

Stefan-W. Hahn (4):
      documentation: 'git-mailsplit --keep-cr' is not hidden anymore
      git-am: Add command line parameter `--keep-cr` passing it to git-mailsplit
      git-am: Add am.keepcr and --no-keep-cr to override it
      git-am: Add tests for `--keep-cr`, `--no-keep-cr` and `am.keepcr`

Stephen Boyd (11):
      format-patch: use a string_list for headers
      format-patch: add --no-cc, --no-to, and --no-add-headers
      send-email: add --no-cc, --no-to, and --no-bcc
      notes: rework subcommands and parse options
      fmt-merge-msg: be quiet if nothing to merge
      t6200: modernize with test_tick
      t6200: test fmt-merge-msg more
      fmt-merge-msg: use pretty.c routines
      string-list: add unsorted_string_list_lookup()
      fmt-merge-msg: remove custom string_list implementation
      fmt-merge-msg: hide summary option

Steven Drake (5):
      Add `init.templatedir` configuration variable.
      Add a "TEMPLATE DIRECTORY" section to git-init[1].
      init: having keywords without value is not a global error.
      t/t0001-init.sh: add test for 'init with init.templatedir set'
      Add 'git format-patch --to=' option and 'format.to' configuration variable.

Tay Ray Chuan (17):
      Documentation/git-clone: mention progress in -v
      Documentation/git-pull: put verbosity options before merge/fetch ones
      Documentation/git-push: put --quiet before --verbose
      fetch: refactor verbosity option handling into transport.[ch]
      push: support multiple levels of verbosity
      clone: support multiple levels of verbosity
      transport->progress: use flag authoritatively
      push: learn --progress
      fetch and pull: learn --progress
      transport: update flags to be in running order
      t5541-http-push: check that ref is unchanged for non-ff test
      t554[01]-http-push: refactor, add non-ff tests
      http-push: remove "|| 1" to enable verbose check
      http-walker: cleanup more thoroughly
      http: init and cleanup separately from http-walker
      remote-curl: use http_fetch_ref() instead of walker wrapper
      remote-curl: init walker only when needed

Thomas Rast (14):
      test-lib: unset GIT_NOTES_REF to stop it from influencing tests
      Support showing notes from more than one notes tree
      Documentation: document post-rewrite hook
      commit --amend: invoke post-rewrite hook
      rebase: invoke post-rewrite hook
      rebase -i: invoke post-rewrite hook
      notes: implement 'git notes copy --stdin'
      notes: implement helpers needed for note copying during rewrite
      rebase: support automatic notes copying
      commit --amend: copy notes to the new commit
      notes: add shorthand --ref to override GIT_NOTES_REF
      notes: track whether notes_trees were changed at all
      git-notes(1): add a section about the meaning of history
      rebase -i: make post-rewrite work for 'edit'

Tuomas Suutari (5):
      t9151: Fix a few commits in the SVN dump
      t9151: Add two new svn:mergeinfo test cases
      git-svn: Fix discarding of extra parents from svn:mergeinfo
      git-svn: Fix merge detecting with rewrite-root
      t9150,t9151: Add rewrite-root option to init

YONETANI Tomokazu (1):
      Fix _XOPEN_SOURCE problem on DragonFly

josh robb (1):
      git svn: delay importing SVN::Base until it is needed


Version v1.7.0.9; changes since v1.7.0.8:
-----------------------------------------

Jakub Narębski (1):
      gitweb: Introduce esc_attr to escape attributes of HTML elements

Junio C Hamano (1):
      Git 1.6.4.5


Version v1.7.0.8; changes since v1.7.0.7:
-----------------------------------------

Jonathan Nieder (1):
      add: introduce add.ignoreerrors synonym for add.ignore-errors

Junio C Hamano (1):
      Git 1.7.0.8


Version v1.7.0.7; changes since v1.7.0.6:
-----------------------------------------

Eric Raymond (1):
      Documentation improvements for the description of short format.

Gerrit Pape (1):
      git-submodule.sh: properly initialize shell variables

Greg Brockman (1):
      Check size of path buffer before writing into it

Jonathan Nieder (1):
      config --get --path: check for unset $HOME

Junio C Hamano (1):
      Git 1.7.0.7

Michael J Gruber (3):
      index-pack: fix trivial typo in usage string
      Makefile: reenable install with NO_CURL
      Documentation/config: describe status.submodulesummary

René Scharfe (1):
      remove ecb parameter from xdi_diff_outf()

Stephen Boyd (1):
      request-pull.txt: Document -p option

Uwe Kleine-König (1):
      rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option


Version v1.7.0.6; changes since v1.7.0.5:
-----------------------------------------

Charles Bailey (1):
      Documentation: Describe other situations where -z affects git diff

David Aguilar (1):
      Makefile: Remove usage of deprecated Python "has_key" method

Jay Soffian (1):
      Documentation/config.txt: default gc.aggressiveWindow is 250, not 10

Jeff King (1):
      diff: use large integers for diffstat calculations

Johannes Sixt (1):
      MSVC: Fix build by adding missing termios.h dummy

Jonathan Nieder (2):
      Document new "already-merged" rule for branch -d
      Documentation/Makefile: fix interrupted builds of user-manual.xml

Junio C Hamano (1):
      Git 1.7.0.6

Marc Branchaud (1):
      Docs: Add -X option to git-merge's synopsis.

Michael J Gruber (3):
      rev-list: use default abbrev length when abbrev-commit is in effect
      t1010-mktree: Adjust expected result to code and documentation
      t7012: Mark missing tests as TODO

SZEDER Gábor (1):
      reflog: remove 'show' from 'expire's usage string

Thomas Rast (1):
      combined diff: correctly handle truncated file

Will Palmer (1):
      documentation: clarify direction of core.autocrlf


Version v1.7.0.5; changes since v1.7.0.4:
-----------------------------------------

Brandon Casey (1):
      daemon.c: avoid accessing ss_family member of struct sockaddr_storage

Erik Faye-Lund (1):
      rev-list: fix --pretty=oneline with empty message

Gustaf Hendeby (1):
      Improve error messages from 'git stash show'

Jeff King (1):
      docs: clarify "branch -l"

Jens Lehmann (1):
      Let check_preimage() use memset() to initialize "struct checkout"

Junio C Hamano (3):
      diff --check: honor conflict-marker-size attribute
      blame documentation: -M/-C notice copied lines as well as moved ones
      Git 1.7.0.5

Michael J Gruber (2):
      .mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela
      send-email: lazily assign editor variable

R. Tyler Ballance (1):
      Correct references to /usr/bin/python which does not exist on FreeBSD

Ramkumar Ramachandra (1):
      imap-send: Remove limitation on message body

Shawn O. Pearce (1):
      http-backend: Don't infinite loop during die()

Tay Ray Chuan (4):
      pack-protocol.txt: fix spelling
      pack-protocol.txt: fix pkt-line lengths
      branch: say "Reset to" in reflog entries for 'git branch -f' operations
      fetch/push: fix usage strings


Version v1.7.0.4; changes since v1.7.0.3:
-----------------------------------------

Björn Gustavsson (5):
      apply: Don't unnecessarily update line lengths in the preimage
      apply: Remove the quick rejection test
      apply: Allow blank context lines to match beyond EOF
      t4124: Add additional tests of --whitespace=fix
      t3417: Add test cases for "rebase --whitespace=fix"

Chris Packham (1):
      test for add with non-existent pathspec

David Aguilar (1):
      difftool: Fix '--gui' when diff.guitool is unconfigured

Greg Bacon (1):
      Documentation: Clarify support for smart HTTP backend

Holger Weiß (3):
      Don't redefine htonl and ntohl on big-endian
      Link against libiconv on IRIX
      Documentation: show-ref <pattern>s are optional

Jakub Narębski (1):
      gitweb: git_get_project_config requires only $git_dir, not also $project

Jan Stępień (1):
      Updated the usage string of git reset

Jeff King (1):
      dir: fix COLLECT_IGNORED on excluded prefixes

Johannes Sixt (2):
      diff: fix textconv error zombies
      Windows: fix utime() for read-only files

Junio C Hamano (8):
      git add -u: die on unmatched pathspec
      color: allow multiple attributes
      t0050: mark non-working test as such
      tests for "git add ignored-dir/file" without -f
      refs: ref entry with NULL sha1 is can be a dangling symref
      t9350: fix careless use of "cd"
      Prepare for 1.7.0.4
      Git 1.7.0.4

Kevin Ballard (1):
      format-patch: Squelch 'fatal: Not a range." error

Markus Heidelberg (1):
      Documentation: explain the meaning of "-g" in git-describe output

Sverre Rabbelier (1):
      fast-export: don't segfault when marks file cannot be opened


Version v1.7.0.3; changes since v1.7.0.2:
-----------------------------------------

Adam Simpkins (2):
      prune: honor --expire=never
      reflog: honor gc.reflogexpire=never

Andreas Gruenbacher (3):
      fetch: Check for a "^{}" suffix with suffixcmp()
      fetch: Future-proof initialization of a refspec on stack
      fetch: Fix minor memory leak

Dave Olszewski (1):
      don't use default revision if a rev was specified

Filippo Negroni (1):
      Fix gitmkdtemp: correct test for mktemp() return value

Giuseppe Bilotta (5):
      Refactor list of of repo-local env vars
      rev-parse: --local-env-vars option
      shell setup: clear_local_git_env() function
      submodules: ensure clean environment when operating in a submodule
      is_submodule_modified(): clear environment properly

Ian Ward Comfort (1):
      bash: complete *_HEAD refs if present

Imre Deak (1):
      daemon: parse_host_and_port SIGSEGV if port is specified

Jeff King (2):
      add-interactive: fix bogus diff header line ordering
      push: fix segfault for odd config

Jonathan Nieder (1):
      Makefile: Fix CDPATH problem

Junio C Hamano (12):
      "log --author=me --grep=it" should find intersection, not union
      Reword "detached HEAD" notification
      mailinfo: do not strip leading spaces even for a header line
      t5521: fix and modernize
      builtin-fetch --all/--multi: propagate options correctly
      fetch --all/--multiple: keep all the fetched branch information
      pack-objects documentation: reword "objects that appear in the standard input"
      Merge accumulated fixes to prepare for 1.7.0.3
      t9400: Use test_cmp when appropriate
      t/Makefile: remove test artifacts upon "make clean"
      Update draft release notes to 1.7.0.3
      Git 1.7.0.3

Mark Lodato (4):
      grep docs: pluralize "Example" section
      grep docs: use AsciiDoc literals consistently
      grep docs: --cached and <tree>... are incompatible
      grep docs: document --no-index option

Matthieu Moy (6):
      Add a testcase for ACL with restrictive umask.
      Move gitmkstemps to path.c
      git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.
      Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.
      git_mkstemps_mode: don't set errno to EINVAL on exit.
      Use git_mkstemp_mode instead of plain mkstemp to create object files

Michael J Gruber (7):
      Documentation/git-read-tree: fix table layout
      Documentation/git-read-tree: clarify 2-tree merge
      Documentation/git-reflog: Fix formatting of command lists
      Documentation/gitdiffcore: Remove misleading date in heading
      Documentation/urls: Remove spurious example markers
      Documentation/git-clone: Transform description list into item list
      .mailmap: Map the the first submissions of MJG by e-mail

Michael Wookey (1):
      run-command.c: fix build warnings on Ubuntu

Nelson Elhage (2):
      Documentation: pack-objects: Clarify --local's semantics.
      pack-objects documentation: Fix --honor-pack-keep as well.

René Scharfe (2):
      blame: fix indent of line numbers
      for_each_recent_reflog_ent(): use strbuf, fix offset handling

Stephen Boyd (1):
      pull: replace unnecessary sed invocation

Thomas Rast (1):
      Documentation: receive.denyCurrentBranch defaults to 'refuse'


Version v1.7.0.2; changes since v1.7.0.1:
-----------------------------------------

Bert Wesarg (1):
      unset GREP_OPTIONS in test-lib.sh

Christian Couder (1):
      bisect: error out when passing bad path parameters

Dmitry Potapov (1):
      hash-object: don't use mmap() for small files

Erik Faye-Lund (1):
      run-command: support custom fd-set in async

Gabriel Filion (1):
      require_work_tree broken with NONGIT_OK

Hitoshi Mitake (1):
      git-imap-send: Convert LF to CRLF before storing patch to draft box

Jakub Narębski (2):
      gitweb: Die if there are parsing errors in config file
      gitweb: Fix project-specific feature override behavior

Jonathan Nieder (8):
      Fix 'git var' usage synopsis
      Make 'git var GIT_PAGER' always print the configured pager
      git.1: Clarify the behavior of the --paginate option
      git svn: Fix launching of pager
      am: Fix launching of pager
      tests: Add tests for automatic use of pager
      t7006-pager: if stdout is not a terminal, make a new one
      tests: Fix race condition in t7006-pager

Junio C Hamano (6):
      t6000lib: Fix permission
      lib-patch-mode.sh: Fix permission
      status: preload index to optimize lstat(2) calls
      Start preparing for 1.7.0.2
      Update draft release notes to 1.7.0.2
      Git 1.7.0.2

Larry D'Anna (2):
      git diff --quiet -w: check and report the status
      git-diff: add a test for git diff --quiet -w

Matthieu Moy (1):
      stash: suggest the correct command line for unknown options.

Michal Sojka (1):
      Remove extra '-' from git-am(1)

Nicolas Pitre (8):
      fast-import: start using struct pack_idx_entry
      fast-import: use sha1write() for pack data
      fast-import: use write_idx_file() instead of custom code
      fast-import: make default pack size unlimited
      fast-import: honor pack.indexversion and pack.packsizelimit config vars
      fast-import: use the diff_delta() max_delta_size argument
      sha1_file: don't malloc the whole compressed result when writing out objects
      sha1_file: be paranoid when creating loose objects

René Scharfe (4):
      utf8.c: remove print_wrapped_text()
      utf8.c: remove print_spaces()
      utf8.c: remove strbuf_write()
      utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()

Shawn O. Pearce (7):
      run-command: Allow stderr to be a caller supplied pipe
      send-pack: demultiplex a sideband stream with status data
      receive-pack: Refactor how capabilities are shown to the client
      receive-pack: Wrap status reports inside side-band-64k
      receive-pack: Send hook output over side band #2
      t5401: Use a bare repository for the remote peer
      receive-pack: Send internal errors over side-band #2

Stephen Boyd (1):
      t7406: Fix submodule init config tests

Sylvain Rabot (1):
      gitweb multiple project roots documentation

Tay Ray Chuan (1):
      transport: add got_remote_refs flag

Thomas Rast (1):
      cherry_pick_list: quit early if one side is empty


Version v1.7.0.1; changes since v1.7.0:
---------------------------------------

Bert Wesarg (2):
      Documentation: mention conflict marker size argument (%L) for merge driver
      rerere: fix memory leak if rerere images can't be read

Evan Powers (1):
      git-p4: fix bug in symlink handling

Jacob Helwig (1):
      Documentation: Fix indentation problem in git-commit(1)

Jeff King (9):
      accept "git grep -- pattern"
      cherry-pick: rewrap advice message
      cherry-pick: refactor commit parsing code
      cherry-pick: format help message as strbuf
      cherry-pick: show commit name instead of sha1
      cherry-pick: prettify the advice message
      dwim_ref: fix dangling symref warning
      docs: don't talk about $GIT_DIR/refs/ everywhere
      rm: fix bug in recursive subdirectory removal

Johannes Sixt (1):
      t3301-notes: insert a shbang line in ./fake_editor.sh

Jonathan Nieder (1):
      am: remove rebase-apply directory before gc

Junio C Hamano (6):
      Typofixes outside documentation area
      Start 1.7.0 maintenance track
      Fix use of mutex in threaded grep
      Prepare 1.7.0.1 release notes
      Update 1.7.0.1 release notes
      Git 1.7.0.1

Larry D'Anna (1):
      diff: make sure --output=/bad/path is caught

Mark Lodato (2):
      grep documentation: clarify what files match
      Remove reference to GREP_COLORS from documentation

Markus Heidelberg (1):
      sha1_name: fix segfault caused by invalid index access

Matt Kraai (1):
      commit: quote the user name in the example

Pete Harlan (1):
      Remove hyphen from "git-command" in two error messages

René Scharfe (1):
      fix minor memory leak in get_tree_entry()

Stephen Boyd (1):
      Documentation: describe --thin more accurately

Thomas Rast (2):
      stash pop: remove 'apply' options during 'drop' invocation
      t1450: fix testcases that were wrongly expecting failure


Version v1.7.0; changes since v1.7.0-rc2:
-----------------------------------------

Brian Gernhardt (1):
      t3902: Protect against OS X normalization

Jacob Helwig (1):
      filter-branch: Fix error message for --prune-empty --commit-filter

Jay Soffian (1):
      blame: prevent a segv when -L given start > EOF

Jeff King (1):
      am: switch --resolved to --continue

Junio C Hamano (11):
      git-add documentation: Fix shell quoting example
      Fix parsing of imap.preformattedHTML and imap.sslverify
      git-push: document all the status flags used in the output
      check-ref-format documentation: fix enumeration mark-up
      t8003: check exit code of command and error message separately
      Git 1.6.6.2
      Update draft release notes to 1.7.0 one more time
      archive documentation: attributes are taken from the tree by default
      Re-fix check-ref-format documentation mark-up
      Fix typo in 1.6.6.2 release notes
      Git 1.7.0

Michael J Gruber (1):
      Documentation: minor fixes to RelNotes-1.7.0

Nicolas Pitre (1):
      Revert "pack-objects: fix pack generation when using pack_size_limit"

SZEDER Gábor (1):
      bash: support 'git am's new '--continue' option

Thomas Rast (1):
      Documentation: quote braces in {upstream} notation


Version v1.7.0-rc2; changes since v1.7.0-rc1:
---------------------------------------------

Andrew Myrick (1):
      git-svn: persistent memoization

Ben Walton (2):
      configure: Allow GIT_ARG_SET_PATH to handle --without-PROGRAM
      configure: Allow --without-python

Björn Gustavsson (1):
      bash: support the --autosquash option for rebase

Brian Gernhardt (2):
      t9501: Skip testing load if we can't detect it
      t9501: Re-fix max load test

Christian Stimming (1):
      git-gui: Update German translation (12 new or changed strings).

Dan McGee (1):
      Make NO_PTHREADS the sole thread configuration variable

Emmanuel Trillaud (1):
      git-gui: update french translation

Giuseppe Bilotta (4):
      git-gui: handle non-standard worktree locations
      git-gui: handle bare repos correctly
      git-gui: update shortcut tools to use _gitworktree
      git-gui: set GIT_DIR and GIT_WORK_TREE after setup

Heiko Voigt (1):
      git-gui: fix shortcut for menu "Commit/Revert Changes"

Jakub Narębski (1):
      gitweb: Make running t9501 test with '--debug' reliable and usable

Jeff Epler (1):
      git-gui: Support applying a range of changes at once

Jeff King (3):
      mention new shell execution behavior in release notes
      docs: fix filter-branch example for quoted paths
      Fix invalid read in quote_c_style_counted

Jens Lehmann (5):
      git-gui: Use git diff --submodule when available
      git-gui: Add a special diff popup menu for submodules
      git-gui: Quote git path when starting another gui in a submodule
      Fix memory leak in submodule.c
      Updates for dirty submodules in release notes and user manual

John 'Warthog9' Hawley (7):
      gitweb: Load checking
      gitweb: Makefile improvements
      gitweb: Check that $site_header etc. are defined before using them
      gitweb: add a "string" variant of print_local_time
      gitweb: add a "string" variant of print_sort_th
      gitweb: Add optional extra parameter to die_error, for extended explanation
      gitweb: Simplify (and fix) chop_str

Junio C Hamano (7):
      RPM packaging: use %global inside %{!?...}
      Update draft release notes to 1.7.0
      build: make code "-Wpointer-arith" clean
      fast-import.c: Fix big-file-threshold parsing bug
      fast-import: count --max-pack-size in bytes
      Revert 30816237 and 7e62265
      Update draft release notes to 1.7.0

Michael J Gruber (1):
      git-clean: fix the description of the default behavior

Michal Sojka (2):
      filter-branch: Fix to allow replacing submodules with another content
      filter-branch: Add tests for submodules in tree-filter

Michele Ballabio (1):
      git-gui: update Italian translation

Nanako Shiraishi (1):
      git-gui: update Japanese translation

Nicolas Pitre (4):
      fix multiple issues with t5300
      pack-objects: fix pack generation when using pack_size_limit
      make --max-pack-size argument to 'git pack-object' count in bytes
      update git-repack documentation wrt repack.UseDeltaBaseOffset

Pal-Kristian Engstad (1):
      git-p4: Fix sync errors due to new server version

Pat Thoyts (1):
      git-gui: use themed tk widgets with Tk 8.5

Paul Mackerras (1):
      gitk: Fix copyright symbol in About box message

Peter Krefting (1):
      git-gui: Update Swedish translation (520t0f0u)

Peter Oberndorfer (1):
      git-gui: use different icon for new and modified files in the index

Ralf Wildenhues (1):
      Fix typos in technical documentation.

René Scharfe (2):
      grep: simplify assignment of ->fixed
      archive: simplify archive format guessing

Shawn O. Pearce (4):
      git-gui: Remove unused icon file_parttick
      git-gui: Update translation template
      fast-import: Stream very large blobs directly to pack
      Correct spelling of 'REUC' extension

Wesley J. Landaker (1):
      Update git fsck --full short description to mention packs


Version v1.7.0-rc1; changes since v1.7.0-rc0:
---------------------------------------------

Alejandro Riveira Fernández (1):
      Add test-run-command to .gitignore

Benjamin Kramer (1):
      grep: use REG_STARTEND (if available) to speed up regexec

Christian Couder (1):
      gitk: Add "--no-replace-objects" option

Christian Stimming (1):
      gitk: Update German translation

Dan McGee (1):
      grep: Fix two memory leaks

Dave Dulson (2):
      gitk: Enable gitk to create tags with messages
      gitk: Fix display of newly-created tags

Emmanuel Trillaud (1):
      gitk: Add French translation

Fredrik Kuivinen (1):
      Threaded grep

Gerrit Pape (1):
      git-cvsserver: allow regex metacharacters in CVSROOT

Ilari Liusvaara (7):
      Support addresses with ':' in git-daemon
      Allow use of []-wrapped addresses in git://
      Add xmallocz()
      Fix integer overflow in patch_delta()
      Fix integer overflow in unpack_sha1_rest()
      Fix integer overflow in unpack_compressed_entry()
      Fix remote.<remote>.vcs

Jeff King (8):
      t0101: use absolute date
      rerere: fix too-short initialization
      test combinations of @{} syntax
      fix parsing of @{-1}@{u} combination
      reject @{-1} not at beginning of object name
      fix memcpy of overlapping area
      fix off-by-one allocation error
      add shebang line to git-mergetool--lib.sh

Jens Lehmann (2):
      git diff: Don't test submodule dirtiness with --ignore-submodules
      Teach diff --submodule that modified submodule directory is dirty

Johan Herland (1):
      builtin-config: Fix crash when using "-f <relative path>" from non-root dir

Johannes Sixt (2):
      git_connect: use use_shell instead of explicit "sh", "-c"
      Implement pthread_cond_broadcast on Windows

Junio C Hamano (13):
      Make ce_uptodate() trustworthy again
      grep: expose "status-only" feature via -q
      Fix log -g this@{upstream}
      approxidate_careful() reports errorneous date string
      work around an obnoxious bash "safety feature" on OpenBSD
      Update @{bogus.timestamp} fix not to die()
      t0101: use a fixed timestamp when searching in the reflog
      transport_get(): drop unnecessary check for !remote
      tests: update tests that used to fail
      grep --quiet: finishing touches
      Update draft release notes to 1.7.0
      RPM packaging: don't include foreign-scm-helper bits yet
      is_submodule_modified(): fix breakage with external GIT_INDEX_FILE

Kirill Smelkov (1):
      gitk: Display submodule diffs with appropriate encoding

Laszlo Papp (1):
      gitk: Add Hungarian translation

Markus Heidelberg (2):
      gitk: Adjust two equal strings which differed in whitespace
      rebase: don't invoke the pager for each commit summary

Michele Ballabio (1):
      gitk: update Italian translation

Miklos Vajna (1):
      gitk: Update Hungarian translation

Peter Krefting (1):
      gitk: Update Swedish translation

SZEDER Gábor (2):
      bash: don't offer remote transport helpers as subcommands
      bash: support 'git notes' and its subcommands

Sebastian Schuberth (1):
      If deriving SVN_SSH from GIT_SSH on msys, also add quotes

Stephen Boyd (6):
      rebase: replace antiquated sed invocation
      commit-tree: remove unused #define
      tests: consolidate CR removal/addition functions
      t0022: replace non-portable literal CR
      am: fix patch format detection for Thunderbird "Save As" emails
      fix portability issues with $ in double quotes

Tay Ray Chuan (1):
      t5541-http-push: make grep expression check for one line only


Version v1.7.0-rc0; changes since v1.6.6.3:
-------------------------------------------

Andreas Gruenbacher (2):
      builtin-apply.c: Skip filenames without enough components
      builtin-apply.c: fix the --- and +++ header filename consistency check

Andrew Myrick (3):
      git-svn: ignore changeless commits when checking for a cherry-pick
      git-svn: handle merge-base failures
      git-svn: update svn mergeinfo test suite

Andrzej K. Haczewski (1):
      MSVC: Windows-native implementation for subset of Pthreads API

Avery Pennarun (3):
      git merge -X<option>
      Teach git-pull to pass -X<option> to git-merge
      Extend merge-subtree tests to test -Xsubtree=dir.

Bart Trojanowski (1):
      hg-to-git: fix COMMITTER type-o

Ben Walton (3):
      cvsimport: modernize callouts to git subcommands
      cvsimport: standarize open() calls to external git tools
      cvsimport: standarize system() calls to external git tools

Brad King (2):
      Test update-index for a gitlink to a .git file
      Handle relative paths in submodule .git files

Christian Couder (8):
      reset: improve mixed reset error message when in a bare repo
      Documentation: reset: add some tables to describe the different options
      reset: add a few tests for "git reset --merge"
      Documentation: reset: add some missing tables
      t7111: check that reset options work as described in the tables
      help: fix configured help format taking over command line one
      t7111: fix bad HEAD in tests with unmerged entries
      Documentation: rev-list: fix synopsys for --tags and and --remotes

Daniel Barkalow (9):
      Fix memory leak in helper method for disconnect
      Allow programs to not depend on remotes having urls
      Use a function to determine whether a remote is valid
      Allow fetch to modify refs
      Add a config option for remotes to specify a foreign vcs
      Add support for "import" helper command
      Allow helper to map private ref names into normal names
      Allow helpers to report in "list" command that the ref is unchanged
      Replace parse_blob() with an explanatory comment

David Aguilar (11):
      t7800-difftool: Set a bogus tool for use by tests
      git-difftool: Add '--gui' for selecting a GUI tool
      difftool--helper: Update copyright and remove distracting comments
      difftool--helper: Remove use of the GIT_MERGE_TOOL variable
      difftool: Allow specifying unconfigured commands with --extcmd
      git-diff.txt: Link to git-difftool
      t7800-difftool.sh: Simplify the --extcmd test
      difftool: Add '-x' and as an alias for '--extcmd'
      difftool: Use eval to expand '--extcmd' expressions
      difftool: Update copyright notices to list each year separately
      t7800-difftool.sh: Test mergetool.prompt fallback

Erik Faye-Lund (2):
      daemon: consider only address in kill_some_child()
      Windows: disable Python

Felipe Contreras (1):
      General --quiet improvements

Greg Bacon (1):
      No diff -b/-w output for all-whitespace changes

Horst H. von Brand (1):
      git-rebase.txt: Fix spelling

Igor Mironov (4):
      git-svn: fix mismatched src/dst errors for branch/tag
      git-svn: respect commiturl option for branch/tag
      git-svn: add --username/commit-url options for branch/tag
      git-svn: document --username/commit-url for branch/tag

Ilari Liusvaara (15):
      Add remote helper debug mode
      Support mandatory capabilities
      Pass unknown protocols to external protocol handlers
      Refactor git transport options parsing
      Support taking over transports
      Support remote helpers implementing smart transports
      Support remote archive from all smart transports
      Remove special casing of http, https and ftp
      Reset possible helper before reusing remote structure
      Improve error message when a transport helper was not found
      Add push --set-upstream
      Add git remote set-url
      Add branch --set-upstream
      rev-parse --glob
      rev-parse --branches/--tags/--remotes=pattern

Jakub Narębski (1):
      gitweb.js: Workaround for IE8 bug

James P. Howard, II (1):
      commit: support commit.status, --status, and --no-status

Jan Krüger (1):
      builtin-push: add --delete as syntactic sugar for :foo

Jay Soffian (2):
      git-svn: allow UUID to be manually remapped via rewriteUUID
      git-svn: allow subset of branches/tags to be specified in glob spec

Jeff King (20):
      status: typo fix in usage
      status: refactor short-mode printing to its own function
      status: refactor format option parsing
      status: add --porcelain output format
      commit: support alternate status formats
      docs: note that status configuration affects only long format
      tests: rename duplicate t1009
      status: disable color for porcelain format
      status: reduce duplicated setup code
      tests: handle NO_PYTHON setting
      run-command: add "use shell" option
      run-command: convert simple callsites to use_shell
      run-command: optimize out useless shell calls
      editor: use run_command's shell feature
      textconv: use shell to run helper
      diff: run external diff helper with shell
      strbuf_expand: convert "%%" to "%"
      strbuf: add strbuf_addbuf_percentquote
      commit: show interesting ident information in summary
      commit: allow suppression of implicit identity advice

Jens Lehmann (3):
      Show submodules as modified when they contain a dirty work tree
      git status: Show uncommitted submodule changes too when enabled
      Performance optimization for detection of modified submodules

Jim Meyering (1):
      diff.c: fix typoes in comments

Johan Herland (4):
      Basic build infrastructure for Python scripts
      fast-import: Proper notes tree manipulation
      Rename t9301 to t9350, to make room for more fast-import tests
      Add more testcases to test fast-import of notes

Johannes Schindelin (2):
      Allow specifying the remote helper in the url
      Introduce <branch>@{upstream} notation

Johannes Sixt (16):
      Make test case number unique
      filter-branch: remove an unnecessary use of 'git read-tree'
      t0021: use $SHELL_PATH for the filter script
      t4030, t4031: work around bogus MSYS bash path conversion
      start_command: report child process setup errors to the parent's stderr
      run-command: move wait_or_whine earlier
      start_command: detect execvp failures early
      Windows: boost startup by avoiding a static dependency on shell32.dll
      Windows: simplify the pipe(2) implementation
      Windows: avoid the "dup dance" when spawning a child process
      Do not use date.c:tm_to_time_t() from compat/mingw.c
      Makefile: honor NO_CURL when setting REMOTE_CURL_* variables
      Make test case numbers unique
      Make 'rerere forget' work from a subdirectory.
      merge-tree: remove unnecessary call of git_extract_argv0_path
      Make test numbers unique

Jonathan Nieder (15):
      Makefile: make ppc/sha1ppc.o depend on GIT-CFLAGS
      Makefile: regenerate assembler listings when asked
      Makefile: use target-specific variable to pass flags to cc
      Makefile: learn to generate listings for targets requiring special flags
      Makefile: consolidate .FORCE-* targets
      Documentation: git gc packs refs by default now
      Documentation: tiny git config manual tweaks
      Documentation: merge: move configuration section to end
      Documentation: suggest `reset --merge` in How Merge Works section
      Documentation: merge: move merge strategy list to end
      Documentation: merge: add an overview
      Documentation: emphasize when git merge terminates early
      Documentation: merge: add a section about fast-forward
      Documentation: simplify How Merge Works
      Documentation: merge: use MERGE_HEAD to refer to the remote branch

Junio C Hamano (96):
      Refuse updating the current branch in a non-bare repository via push
      Refuse deleting the current branch via push
      diff: change semantics of "ignore whitespace" options
      diff: Rename QUIET internal option to QUICK
      git stat: the beginning of "status that is not a dry-run of commit"
      git stat -s: short status output
      git status: not "commit --dry-run" anymore
      send-email: make --no-chain-reply-to the default
      "checkout A...B" switches to the merge base between A and B
      "rebase --onto A...B" replays history on the merge base between A and B
      git-merge-file --ours, --theirs
      Teach --[no-]rerere-autoupdate option to merge, revert and friends
      commit/status: check $GIT_DIR/MERGE_HEAD only once
      commit/status: "git add <path>" is not necessarily how to resolve
      status/commit: do not suggest "reset HEAD <path>" while merging
      builtin-merge.c: use standard active_cache macros
      resolve-undo: record resolved conflicts in a new index extension section
      resolve-undo: basic tests
      resolve-undo: allow plumbing to clear the information
      resolve-undo: "checkout -m path" uses resolve-undo information
      resolve-undo: teach "update-index --unresolve" to use resolve-undo info
      rerere: remove silly 1024-byte line limit
      Kick off 1.7.0 cycle
      Remove http.authAny
      branch -d: base the "already-merged" safety on the branch it merges with
      "reset --merge": fix unmerged case
      tests: move convenience regexp to match object names to test-lib.sh
      more D/F conflict tests
      traverse_trees(): handle D/F conflict case sanely
      Aggressive three-way merge: fix D/F case
      Fix bit assignment for CE_CONFLICTED
      .gitattributes: detect 8-space indent in shell scripts
      unpack-trees.c: prepare for looking ahead in the index
      unpack-trees.c: look ahead in the index
      read-tree --debug-unpack
      Describe second batch for 1.7.0 in draft release notes
      ident.c: remove unused variables
      t3001: test ls-files -o ignored/dir
      read_directory_recursive(): refactor handling of a single path into a separate function
      read_directory(): further split treat_path()
      ls-files: fix overeager pathspec optimization
      ident.c: check explicit identity for name and email separately
      ident.c: treat $EMAIL as giving user.email identity explicitly
      rerere: refactor rerere logic to make it independent from I/O
      rerere forget path: forget recorded resolution
      bisect.c: mark file-local function static
      builtin-rev-list.c: mark file-local function static
      pretty.c: mark file-local function static
      grep: optimize built-in grep by skipping lines that do not hit
      http.c: mark file-local functions static
      entry.c: mark file-local function static
      parse-options.c: mark file-local function static
      read-cache.c: mark file-local functions static
      remote-curl.c: mark file-local function static
      quote.c: mark file-local function static
      submodule.c: mark file-local function static
      utf8.c: mark file-local function static
      mailmap.c: remove unused function
      sha1_file.c: remove unused function
      strbuf.c: remove unused function
      grep: rip out support for external grep
      grep: rip out pessimization to use fixmatch()
      t7502: test commit.status, --status and --no-status
      strbuf_addbuf(): allow passing the same buf to dst and src
      grep: prepare to run outside of a work tree
      grep --no-index: allow use of "git grep" outside a git repository
      Teach diff that modified submodule directory is dirty
      git_attr(): fix function signature
      xdl_merge(): introduce xmparam_t for merge specific parameters
      xdl_merge(): allow passing down marker_size in xmparam_t
      merge-tree: use ll_merge() not xdl_merge()
      rerere: use ll_merge() instead of using xdl_merge()
      conflict-marker-size: new attribute
      commit.c::print_summary: do not release the format string too early
      rerere: prepare for customizable conflict marker length
      rerere: honor conflict-marker-size attribute
      user_ident_sufficiently_given(): refactor the logic to be usable from elsewhere
      user_ident_sufficiently_given(): refactor the logic to be usable from elsewhere
      Update COPYING with GPLv2 with new FSF address
      Update draft release notes to 1.7.0
      pull: Fix parsing of -X<option>
      Make "subtree" part more orthogonal to the rest of merge-recursive.
      Document that merge strategies can now take their own options
      object.c: remove unused functions
      symlinks.c: remove unused functions
      Update draft release notes to 1.7.0
      Fix "checkout A..." synonym for "checkout A...HEAD" on Windows
      t1506: more test for @{upstream} syntax
      Teach @{upstream} syntax to strbuf_branchanme()
      date.c: mark file-local function static
      Update draft release notes to 1.7.0
      conflict-marker-size: add test and docs
      git-mv: fix moving more than one source to a single destination
      Update draft release notes to 1.7.0
      rebase -i: Export GIT_AUTHOR_* variables explicitly
      pull: re-fix command line generation

Linus Torvalds (11):
      Remove diff machinery dependency from read-cache
      slim down "git show-index"
      make "git merge-tree" a built-in
      make "git hash-object" a built-in
      make "git var" a built-in
      make "git patch-id" a built-in
      make "merge-index" a built-in
      make "mktag" a built-in
      make "git unpack-file" a built-in
      make "git pack-redundant" a built-in
      make "index-pack" a built-in

Martin Storsjö (2):
      Add an option for using any HTTP authentication scheme, not only basic
      Allow curl to rewind the RPC read buffer

Matthew Ogilvie (3):
      build dashless "bin-wrappers" directory similar to installed bindir
      run test suite without dashed git-commands in PATH
      INSTALL: document a simpler way to run uninstalled builds

Matthieu Moy (6):
      Detailed diagnosis when parsing an object name fails.
      builtin-config: add --path option doing ~ and ~user expansion.
      push: spell 'Note about fast-forwards' section name correctly in error message.
      Be more user-friendly when refusing to do something because of conflict.
      lockfile: show absolute filename in unable_to_lock_message
      branch: warn and refuse to set a branch as a tracking branch of itself.

Michael Haggerty (25):
      t3404: Use test_commit to set up test repository
      Add a command "fixup" to rebase --interactive
      lib-rebase: Provide clearer debugging info about what the editor did
      lib-rebase: Allow comments and blank lines to be added to the rebase script
      rebase-i: Ignore comments and blank lines in peek_next_command
      rebase -i: Make the condition for an "if" more transparent
      rebase -i: Remove dead code
      rebase -i: Inline expression
      rebase -i: Use "test -n" instead of "test ! -z"
      rebase -i: Use symbolic constant $MSG consistently
      rebase -i: Document how temporary files are used
      rebase -i: Introduce a constant AUTHOR_SCRIPT
      rebase -i: Introduce a constant AMEND
      t3404: Test the commit count in commit messages generated by "rebase -i"
      rebase -i: Improve consistency of commit count in generated commit messages
      rebase -i: Simplify commit counting for generated commit messages
      rebase -i: Extract a function "commit_message"
      rebase -i: Handle the author script all in one place in do_next
      rebase -i: Extract function do_with_author
      rebase -i: Change function make_squash_message into update_squash_message
      rebase -i: For fixup commands without squashes, do not start editor
      t3404: Set up more of the test repo in the "setup" step
      rebase -i: Retain user-edited commit messages after squash/fixup conflicts
      rebase -i: Avoid non-portable "test X -a Y"
      rebase -i: Enclose sed command substitution in quotes

Michael J Gruber (7):
      status -s: respect the status.relativePaths option
      t7508-status.sh: Add tests for status -s
      builtin-commit: refactor short-status code into wt-status.c
      status -s: obey color.status
      t7508-status: status --porcelain ignores relative paths setting
      t7508-status: test all modes with color
      tag -d: print sha1 of deleted tag

Michael Lukashov (1):
      Windows: Remove dependency on pthreadGC2.dll

Miklos Vajna (2):
      builtin-commit: add --date option
      Document date formats accepted by parse_date()

Nanako Shiraishi (3):
      rebase -i --autosquash: auto-squash commits
      rebase: fix --onto A...B parsing and add tests
      rebase -i: teach --onto A...B syntax

Nguyễn Thái Ngọc Duy (27):
      update-index: refactor mark_valid() in preparation for new options
      Add test-index-version
      Introduce "skip-worktree" bit in index, teach Git to get/set this bit
      Teach Git to respect skip-worktree bit (reading part)
      Teach Git to respect skip-worktree bit (writing part)
      Avoid writing to buffer in add_excludes_from_file_1()
      Read .gitignore from index if it is skip-worktree
      unpack-trees(): carry skip-worktree bit over in merged_entry()
      excluded_1(): support exclude files in index
      dir.c: export excluded_1() and add_excludes_from_file_1()
      Introduce "sparse checkout"
      unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
      unpack-trees.c: generalize verify_* functions
      unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
      unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
      unpack-trees(): ignore worktree check outside checkout area
      read-tree: add --no-sparse-checkout to disable sparse checkout support
      Add tests for sparse checkout
      sparse checkout: inhibit empty worktree
      ie_match_stat(): do not ignore skip-worktree bit with CE_MATCH_IGNORE_VALID
      commit: correctly respect skip-worktree bit
      grep: do not do external grep on skip-worktree entries
      t7002: set test prerequisite "external-grep" if supported
      t7002: test for not using external grep on skip-worktree paths
      status: only touch path we may need to check
      rm: only refresh entries that we may touch
      Fix memory corruption when .gitignore does not end by \n

Nicolas Pitre (1):
      fix git-p4 editor invocation

Peter Collingbourne (1):
      Remove empty directories when checking out a commit with fewer submodules

Phil Miller (1):
      CVS Server: Support reading base and roots from environment

Ramkumar Ramachandra (1):
      Documentation: Update git core tutorial clarifying reference to scripts

Ramsay Jones (5):
      MSVC: Fix an "incompatible pointer types" compiler warning
      engine.pl: Fix a recent breakage of the buildsystem generator
      msvc: Fix an "unrecognized option" linker warning
      msvc: Fix a compiler warning due to an incorrect pointer cast
      msvc: Add a definition of NORETURN compatible with msvc compiler

Robert Zeh (1):
      Add completion for git-svn mkdirs,reset,and gc

Sebastian Schuberth (1):
      Make difftool.prompt fall back to mergetool.prompt

Sergei Organov (1):
      cvsserver: make the output of 'update' more compatible with cvs.

Shawn O. Pearce (1):
      bash completion: add space between branch name and status flags

Stephan Beyer (1):
      reset: use "unpack_trees()" directly instead of "git read-tree"

Steven Drake (2):
      Add 'git rev-parse --show-toplevel' option.
      Use $(git rev-parse --show-toplevel) in cd_to_toplevel().

Sverre Rabbelier (9):
      Fix various memory leaks in transport-helper.c
      Add Python support library for remote helpers
      fast-import: put option parsing code in separate functions
      fast-import: put marks reading in its own function
      fast-import: add feature command
      fast-import: add option command
      fast-import: test the new option command
      fast-import: allow for multiple --import-marks= arguments
      fast-import: add (non-)relative-marks feature

Tarmigan Casebolt (7):
      t/lib-http.sh: Restructure finding of default httpd location
      Smart-http: check if repository is OK to export before serving it
      Smart-http tests: Improve coverage in test t5560
      Smart-http tests: Break test t5560-http-backend into pieces
      Smart-http tests: Test http-backend without curl or a webserver
      Test t5560: Fix test when run with dash
      ident.c: replace fprintf with fputs to suppress compiler warning

Tay Ray Chuan (12):
      http: maintain curl sessions
      builtin-push: don't access freed transport->url
      check stderr with isatty() instead of stdout when deciding to show progress
      git-clone.txt: reword description of progress behaviour
      clone: set transport->verbose when -v/--verbose is used
      clone: use --progress to force progress reporting
      t5541-http-push.sh: add tests for non-fast-forward pushes
      t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs
      refactor ref status logic for pushing
      transport.c::transport_push(): make ref status affect return value
      transport-helper.c::push_refs(): ignore helper-reported status if ref is not to be pushed
      transport-helper.c::push_refs(): emit "no refs" error message

Thiago Farina (2):
      Use warning function instead of fprintf(stderr, "Warning: ...").
      string-list: rename the include guard to STRING_LIST_H

Thomas Rast (9):
      Documentation/git-merge: reword references to "remote" and "pull"
      Documentation: warn prominently against merging with dirty trees
      Documentation: format full commands in typewriter font
      Documentation: spell 'git cmd' without dash throughout
      Documentation: show-files is now called git-ls-files
      Documentation: emphasise 'git shortlog' in its synopsis
      Documentation: improve description of --glob=pattern and friends
      Documentation: add missing :: in config.txt
      Documentation: move away misplaced 'push --upstream' description


Version v1.6.6.3; changes since v1.6.6.2:
-----------------------------------------

Christian Couder (1):
      bisect: error out when passing bad path parameters

Erik Faye-Lund (1):
      run-command: support custom fd-set in async

Gabriel Filion (1):
      require_work_tree broken with NONGIT_OK

Greg Brockman (1):
      Check size of path buffer before writing into it

Hitoshi Mitake (1):
      git-imap-send: Convert LF to CRLF before storing patch to draft box

Jacob Helwig (1):
      filter-branch: Fix error message for --prune-empty --commit-filter

Jakub Narębski (1):
      gitweb: Introduce esc_attr to escape attributes of HTML elements

Jeff King (2):
      dwim_ref: fix dangling symref warning
      rm: fix bug in recursive subdirectory removal

Johannes Sixt (2):
      t3301-notes: insert a shbang line in ./fake_editor.sh
      MSVC: Fix build by adding missing termios.h dummy

Junio C Hamano (5):
      t6000lib: Fix permission
      lib-patch-mode.sh: Fix permission
      Re-fix check-ref-format documentation mark-up
      Fix typo in 1.6.6.2 release notes
      Git 1.6.4.5

Larry D'Anna (1):
      diff: make sure --output=/bad/path is caught

Michael J Gruber (4):
      Documentation/git-reflog: Fix formatting of command lists
      Documentation/gitdiffcore: Remove misleading date in heading
      Documentation/urls: Remove spurious example markers
      Documentation/git-clone: Transform description list into item list

Michal Sojka (1):
      Remove extra '-' from git-am(1)

Pete Harlan (1):
      Remove hyphen from "git-command" in two error messages

René Scharfe (5):
      fix minor memory leak in get_tree_entry()
      utf8.c: remove print_wrapped_text()
      utf8.c: remove print_spaces()
      utf8.c: remove strbuf_write()
      utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()

Shawn O. Pearce (7):
      run-command: Allow stderr to be a caller supplied pipe
      send-pack: demultiplex a sideband stream with status data
      receive-pack: Refactor how capabilities are shown to the client
      receive-pack: Wrap status reports inside side-band-64k
      receive-pack: Send hook output over side band #2
      t5401: Use a bare repository for the remote peer
      receive-pack: Send internal errors over side-band #2

Stephen Boyd (1):
      request-pull.txt: Document -p option

Thomas Rast (2):
      stash pop: remove 'apply' options during 'drop' invocation
      cherry_pick_list: quit early if one side is empty

Uwe Kleine-König (1):
      rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option


Version v1.6.6.2; changes since v1.6.6.1:
-----------------------------------------

Christopher Beelby (1):
      git-gui: Keep repo_config(gui.recentrepos) and .gitconfig in sync

Gerrit Pape (1):
      git-cvsserver: allow regex metacharacters in CVSROOT

Giuseppe Bilotta (1):
      git-gui: work from the .git dir

Ilari Liusvaara (4):
      Add xmallocz()
      Fix integer overflow in patch_delta()
      Fix integer overflow in unpack_sha1_rest()
      Fix integer overflow in unpack_compressed_entry()

Jay Soffian (1):
      blame: prevent a segv when -L given start > EOF

Jeff Epler (1):
      git-gui: Fix applying a line when all following lines are deletions

Jeff King (1):
      fix memcpy of overlapping area

Jens Lehmann (1):
      git-gui: Correct file_states when unstaging partly staged entry

Johan Herland (1):
      builtin-config: Fix crash when using "-f <relative path>" from non-root dir

Jonathan Nieder (1):
      git-gui: Makefile: consolidate .FORCE-* targets

Junio C Hamano (15):
      checkout -m path: fix recreating conflicts
      status: don't require the repository to be writable
      Fix "log" family not to be too agressive about showing notes
      Fix "log --oneline" not to show notes
      merge-recursive: do not return NULL only to cause segfault
      ignore duplicated slashes in make_relative_path()
      approxidate_careful() reports errorneous date string
      Update @{bogus.timestamp} fix not to die()
      t0101: use a fixed timestamp when searching in the reflog
      git-add documentation: Fix shell quoting example
      Fix parsing of imap.preformattedHTML and imap.sslverify
      git-push: document all the status flags used in the output
      check-ref-format documentation: fix enumeration mark-up
      t8003: check exit code of command and error message separately
      Git 1.6.6.2

Nguyễn Thái Ngọc Duy (1):
      Add missing #include to support TIOCGWINSZ on Solaris

Pat Thoyts (1):
      git-gui: handle really long error messages in updateindex.

Peter Krefting (1):
      git-gui: Fix gitk for branch whose name matches local file

René Scharfe (2):
      archive: complain about path specs that don't match anything
      archive: simplify archive format guessing

SZEDER Gábor (1):
      bash: don't offer remote transport helpers as subcommands

Shawn O. Pearce (1):
      fast-import: Stream very large blobs directly to pack

Tay Ray Chuan (1):
      retry request without query when info/refs?query fails

Vitaly "_Vi" Shukela (1):
      git-gui: Add hotkeys for "Unstage from commit" and "Revert changes"

Wesley J. Landaker (1):
      Update git fsck --full short description to mention packs


Version v1.6.6.1; changes since v1.6.6:
---------------------------------------

Andreas Gruenbacher (3):
      base85 debug code: Fix length byte calculation
      base85: encode_85() does not use the decode table
      base85: Make the code more obvious instead of explaining the non-obvious

Andreas Schwab (1):
      git count-objects: handle packs bigger than 4G

Björn Gustavsson (4):
      Documentation: 'git add -A' can remove files
      git-add/rm doc: Consistently back-quote
      Fix "git remote update" with remotes.defalt set
      git-rm doc: Describe how to sync index & work tree

David Ripton (1):
      bisect: fix singular/plural grammar nit

Dmitry Potapov (1):
      fast-import: tag may point to any object type

Greg Price (1):
      commit: --cleanup is a message option

Jeff King (2):
      reset: unbreak hard resets with GIT_WORK_TREE
      textconv: stop leaking file descriptors

Jim Meyering (1):
      grep: NUL terminate input from a file

Jonathan Nieder (2):
      Documentation: git gc packs refs by default now
      Documentation: tiny git config manual tweaks

Junio C Hamano (10):
      t1200: work around a bug in some implementations of "find"
      t4019 "grep" portability fix
      Start 1.6.6.X maintenance track
      Makefile: FreeBSD (both 7 and 8) needs OLD_ICONV
      checkout -m: do not try to fall back to --merge from an unborn branch
      grep: -L should show empty files
      Update draft release notes to 1.6.6.1
      Fix mis-backport of t7002
      Git 1.6.5.8
      Git 1.6.6.1

Matthieu Moy (3):
      SubmittingPatches: hints to know the status of a submitted patch.
      branch: die explicitly why when calling "git branch [-a|-r] branchname".
      stash: mention --patch in usage string.

Michael Haggerty (1):
      rebase--interactive: Ignore comments and blank lines in peek_next_command

Nathaniel W Filardo (1):
      read_index(): fix reading extension size on BE 64-bit archs

Nguyễn Thái Ngọc Duy (2):
      Documentation: always respect core.worktree if set
      t7102: make the test fail if one of its check fails

Ramkumar Ramachandra (1):
      Document git-blame triple -C option

Richard Weinberger (1):
      Fix uninitialized variable in get_refs_via_rsync().

Shawn O. Pearce (2):
      fast-import: Document author/committer/tagger name is optional
      remote-curl: Fix Accept header for smart HTTP connections

Stephen Boyd (3):
      octopus: make merge process simpler to follow
      octopus: reenable fast-forward merges
      octopus: remove dead code

Tarmigan Casebolt (1):
      Add git-http-backend to command-list.

Thomas Rast (1):
      bash completion: factor submodules into dirty state


Version v1.6.6; changes since v1.6.6-rc4:
-----------------------------------------

Andrew Myrick (1):
      git-svn: Remove obsolete MAXPARENT check

David Reiss (1):
      Prevent git blame from segfaulting on a missing author name

Eric Wong (4):
      git svn: fix --revision when fetching deleted paths
      update release notes for git svn in 1.6.6
      git svn: lookup new parents correctly from svn:mergeinfo
      git svn: branch/tag commands detect username in URLs

Junio C Hamano (1):
      Git 1.6.6

Robert Zeh (1):
      git svn: add test for a git svn gc followed by a git svn mkdirs

Sam Vilain (5):
      git-svn: expand the svn mergeinfo test suite, highlighting some failures
      git-svn: memoize conversion of SVN merge ticket info to git commit ranges
      git-svn: fix some mistakes with interpreting SVN mergeinfo commit ranges
      git-svn: exclude already merged tips using one rev-list call
      git-svn: detect cherry-picks correctly.


Version v1.6.6-rc4; changes since v1.6.6-rc3:
---------------------------------------------

Björn Gustavsson (1):
      rebase -i: abort cleanly if the editor fails to launch

Eric Wong (2):
      git svn: make empty directory creation gc-aware
      t9146: use 'svn_cmd' wrapper

Junio C Hamano (1):
      Git 1.6.6-rc4

Stephen Boyd (2):
      api-strbuf.txt: fix typos and document launch_editor()
      technical-docs: document hash API


Version v1.6.6-rc3; changes since v1.6.6-rc2:
---------------------------------------------

Björn Gustavsson (1):
      bash: Support new 'git fetch' options

Jeff King (1):
      ignore unknown color configuration

Johannes Sixt (1):
      help.autocorrect: do not run a command if the command given is junk

Junio C Hamano (7):
      Remove post-upload-hook
      Fix archive format with -- on the command line
      Git 1.6.5.6
      Update Release Notes for 1.6.6 to remove old bugfixes
      worktree: don't segfault with an absolute pathspec without a work tree
      Git 1.6.5.7
      Git 1.6.6-rc3

Nanako Shiraishi (1):
      Illustrate "filter" attribute with an example


Version v1.6.6-rc2; changes since v1.6.6-rc1:
---------------------------------------------

Alex Vandiver (3):
      git-svn: sort svk merge tickets to account for minimal parents
      git-svn: Set svn.authorsfile to an absolute path when cloning
      git-svn: set svn.authorsfile earlier when cloning

Alexander Gavrilov (1):
      git-gui: Increase blame viewer usability on MacOS.

Bernt Hansen (1):
      gitk: Skip translation of "wrong Tcl version" message

Brandon Casey (2):
      t4201: use ISO8859-1 rather than ISO-8859-1
      t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'

Clemens Buchacher (1):
      git-gui: search 4 directories to improve statistic of gc hint

Eric Wong (1):
      git svn: log removals of empty directories

Greg Price (1):
      git svn: Don't create empty directories whose parents were deleted

Guillermo S. Romero (1):
      gitk: Add configuration for UI colour scheme

Heiko Voigt (1):
      git gui: make current branch default in "remote delete branch" merge check

Jakub Narębski (1):
      gitweb: Describe (possible) gitweb.js minification in gitweb/README

Jan Krüger (1):
      pull: clarify advice for the unconfigured error case

Jeff King (3):
      rerere: don't segfault on failure to open rr-cache
      reset: improve worktree safety valves
      add-interactive: fix deletion of non-empty files

Jens Lehmann (2):
      gitk: Fix diffing committed -> staged (typo in diffcmd)
      gitk: Use the --submodule option for displaying diffs when available

Jindrich Makovicka (1):
      git-gui: suppress RenderBadPicture X error caused by Tk bug

Johan Herland (1):
      Fix crasher on encountering SHA1-like non-note in notes tree

Junio C Hamano (9):
      Documentation/Makefile: allow man.base.url.for.relative.link to be set from Make
      Unconditionally set man.base.url.for.relative.links
      Git 1.6.5.4
      Documentation: xmlto 0.0.18 does not know --stringparam
      Prepare for 1.6.5.5
      Git 1.6.5.5
      Revert recent "git merge <msg> HEAD <commit>..." deprecation
      Update draft release notes to 1.6.6 before -rc2
      Git 1.6.6-rc2

Linus Torvalds (1):
      Fix diff -B/--dirstat miscounting of newly added contents

Markus Heidelberg (1):
      gitk: Fix "git gui blame" invocation when called from top-level directory

Mizar (2):
      gitk: Add Japanese translation
      gitk: Update Japanese translation

Pat Thoyts (4):
      gitk: Use themed tk widgets
      gitk: Fix errors in the theme patch
      gitk: Default to the system colours on Windows
      gitk: Fix selection of tags

Paul Mackerras (5):
      gitk: Restore scrolling position of diff pane on back/forward in history
      gitk: Add a user preference to enable/disable use of themed widgets
      gitk: Show diff of commits at end of compare-commits output
      gitk: Don't compare fake children when comparing commits
      gitk: Improve appearance of radiobuttons and checkbuttons

René Scharfe (1):
      archive: clarify description of path parameter

SZEDER Gábor (1):
      bash: update 'git commit' completion

Sitaram Chamarty (1):
      gitk: Disable checkout of remote branches

Todd Zullinger (1):
      Documentation: Avoid use of xmlto --stringparam


Version v1.6.6-rc1; changes since v1.6.6-rc0:
---------------------------------------------

Avery Pennarun (1):
      builtin-merge.c: call exclude_cmds() correctly.

Benjamin Kramer (1):
      Explicitly truncate bswap operand to uint32_t

Bert Wesarg (2):
      Give the hunk comment its own color
      get_ref_states: strdup entries and free util in stale list

Björn Gustavsson (11):
      Teach the --all option to 'git fetch'
      Teach the --multiple option to 'git fetch'
      Add the configuration option skipFetchAll
      Add missing test for 'git remote update --prune'
      Re-implement 'git remote update' using 'git fetch'
      Clarify and correct -z
      apply: apply works outside a repository
      apply: Format all options using back-quotes
      apply: Use the term "working tree" consistently
      Fix over-simplified documentation for 'git log -z'
      gitworkflows: Consistently back-quote git commands

Brian Gernhardt (1):
      t/gitweb-lib: Split HTTP response with non-GNU sed

Christian Couder (6):
      Documentation: add "Fighting regressions with git bisect" article
      replace: use a GIT_NO_REPLACE_OBJECTS env variable
      Documentation: fix typos and spelling in replace documentation
      Documentation: talk a little bit about GIT_NO_REPLACE_OBJECTS
      bisect: simplify calling visualizer using '--bisect' option
      Documentation: update descriptions of revision options related to '--bisect'

David Aguilar (1):
      help: Do not unnecessarily look for a repository

David Soria Parra (1):
      Documentation: Document --branch option in git clone synopsis

Erick Mattos (1):
      commit -c/-C/--amend: reset timestamp and authorship to committer with --reset-author

Felipe Contreras (3):
      format-patch: fix parsing of "--" on the command line
      format-patch: add test for parsing of "--"
      send-email: automatic envelope sender

Horst H. von Brand (1):
      git-pull.sh: Fix call to git-merge for new command format

Jakub Narębski (10):
      gitweb: Add optional "time to generate page" info in footer
      gitweb: Incremental blame (using JavaScript)
      gitweb: Colorize 'blame_incremental' view during processing
      gitweb: Create links leading to 'blame_incremental' using JavaScript
      gitweb: Minify gitweb.js if JSMIN is defined
      t/gitweb-lib.sh: Split gitweb output into headers and body
      gitweb: Document current snapshot rules via new tests
      gitweb.js: Harden setting blamed commit info in incremental blame
      gitweb: Make linking to actions requiring JavaScript a feature
      gitweb: Add link to other blame implementation in blame views

Jay Soffian (4):
      remote: refactor some logic into get_stale_heads()
      teach warn_dangling_symref to take a FILE argument
      builtin-fetch: add --prune option
      builtin-fetch: add --dry-run option

Jeff King (1):
      prune-packed: only show progress when stderr is a tty

Johannes Sixt (2):
      t4014-format-patch: do not assume 'test' is available as non-builtin
      Add a notice that only certain functions can print color escape codes

Jonathan Nieder (1):
      Makefile: do not clean arm directory

Junio C Hamano (19):
      mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker
      Pretty-format: %[+-]x to tweak inter-item newlines
      read_revision_from_stdin(): use strbuf
      Teach --stdin option to "log" family
      setup_revisions(): do not call get_pathspec() too early
      Make --stdin option to "log" family read also pathspecs
      t9001: test --envelope-sender option of send-email
      Add trivial tests for --stdin option to log family
      Protect scripted Porcelains from GREP_OPTIONS insanity
      builtin-apply.c: pay attention to -p<n> when determining the name
      Remove dead code from "git am"
      emit_line(): don't emit an empty <SET><RESET> followed by a newline
      Update draft release notes to 1.6.6 before merging topics for -rc1
      git-merge: a deprecation notice of the ancient command line syntax
      Update draft release notes to 1.6.6 before -rc1
      Do not misidentify "git merge foo HEAD" as an old-style invocation
      merge: do not add standard message when message is given with -m option
      Prepare for 1.6.5.4
      Git 1.6.6-rc1

Mark Rada (2):
      gitweb: check given hash before trying to create snapshot
      gitweb: Smarter snapshot names

Martin Storsjö (3):
      Disable CURLOPT_NOBODY before enabling CURLOPT_PUT and CURLOPT_POST
      Refactor winsock initialization into a separate function
      Enable support for IPv6 on MinGW

Matthew Ogilvie (5):
      cvsserver doc: database generally can not be reproduced consistently
      config documentation: some configs are auto-set by git-init
      t2300: use documented technique to invoke git-sh-setup
      t3409 t4107 t7406 t9150: use dashless commands
      t/README: Document GIT_TEST_INSTALLED and GIT_TEST_EXEC_PATH

Matthieu Moy (4):
      merge-recursive: point the user to commit when file would be overwritten.
      user-manual: Document that "git merge" doesn't like uncommited changes.
      merge-recursive: make the error-message generation an extern function
      builtin-merge: show user-friendly error messages for fast-forward too.

Michael J Gruber (1):
      Documentation: Fix a few i.e./e.g. mix-ups

Nanako Shiraishi (2):
      t1200: fix a timing dependent error
      prepare send-email for smoother change of --chain-reply-to default

Nicolas Pitre (1):
      pack-objects: split implications of --all-progress from progress activation

Ramsay Jones (1):
      git-count-objects: Fix a disk-space under-estimate on Cygwin

René Scharfe (2):
      strbuf_add_wrapped_text(): skip over colour codes
      mergetool--lib: simplify guess_merge_tool()

Stephen Boyd (3):
      gitweb.js: fix null object exception in initials calculation
      instaweb: restart server if already running
      gitweb.js: fix padLeftStr() and its usage

Tay Ray Chuan (1):
      remote-curl.c: fix rpc_out()

Uwe Kleine-König (1):
      shortlog: respect commit encoding


Version v1.6.6-rc0; changes since v1.6.5.9:
-------------------------------------------

Alex Riesen (1):
      git-gui: Update russian translation

Alexey Borzenkov (1):
      git-gui: store wm state and fix wm geometry

Anders Kaseorg (1):
      bisect reset: Allow resetting to any commit, not just a branch

Ben Walton (2):
      configure: add macro to set arbitrary make variables
      configure: add settings for gitconfig, editor and pager

Björn Gustavsson (10):
      Teach 'rebase -i' the command "reword"
      bash: complete more options for 'git rebase'
      Teach 'git merge' and 'git pull' the option --ff-only
      format-patch: Always generate a patch
      format-patch documentation: Remove diff options that are not useful
      format-patch documentation: Fix formatting
      format-patch: Add "--no-stat" as a synonym for "-p"
      bash: add the merge option --ff-only
      Fix truncated usage messages
      User Manual: Write "Git" instead of "GIT"

Christian Couder (1):
      git: add --no-replace-objects option to disable replacing

Clemens Buchacher (2):
      remote-helpers: return successfully if everything up-to-date
      set httpd port before sourcing lib-httpd

Dan Zwell (1):
      git-gui: Limit display to a maximum number of files

David Aguilar (1):
      submodule.c: Squelch a "use before assignment" warning

David Brown (1):
      commit: More generous accepting of RFC-2822 footer lines.

David Kågedal (1):
      git-blame.el: Change how blame information is shown.

Eric Wong (6):
      git svn: fix fetch where glob is on the top-level URL
      git svn: read global+system config for clone+init
      git svn: add authorsfile test case for ~/.gitconfig
      git svn: attempt to create empty dirs on clone+rebase
      git svn: always reuse existing remotes on fetch
      git svn: strip leading path when making empty dirs

Erik Faye-Lund (6):
      imap-send: use separate read and write fds
      imap-send: use run-command API for tunneling
      imap-send: fix compilation-error on Windows
      imap-send: build imap-send on Windows
      mingw: wrap SSL_set_(w|r)fd to call _get_osfhandle
      mingw: enable OpenSSL

Felipe Contreras (2):
      diff.c: stylefix
      Use 'fast-forward' all over the place

Heiko Voigt (1):
      git-gui: remove warning when deleting correctly merged remote branch

Ingmar Vanhassel (1):
      import-tars: Add support for tarballs compressed with lzma, xz

Jakub Narębski (4):
      gitweb: Add 'show-sizes' feature to show blob sizes in tree view
      gitweb: Refactor 'log' action generation, adding git_log_body()
      gitweb: Refactor common parts of 'log' and 'shortlog' views
      gitweb: Make 'history' view (re)use git_log_generic()

Jean Privat (1):
      Teach "git describe" --dirty option

Jeff King (3):
      imap-send: remove useless uid code
      gitignore: root most patterns at the top-level directory
      t915{0,1}: use $TEST_DIRECTORY

Jens Lehmann (5):
      git-gui: display summary when showing diff of a submodule
      git-gui: fix diff for partially staged submodule changes
      git submodule add: make the <path> parameter optional
      git-gui: fix use of uninitialized variable
      add tests for git diff --submodule

Jimmy Angelakos (1):
      git-gui: Added Greek translation & glossary

Johan Herland (9):
      Teach "-m <msg>" and "-F <file>" to "git notes edit"
      fast-import: Add support for importing commit notes
      t3302-notes-index-expensive: Speed up create_repo()
      Add flags to get_commit_notes() to control the format of the note string
      Teach notes code to free its internal data structures on request
      Teach the notes lookup code to parse notes trees with various fanout schemes
      Add selftests verifying that we can parse notes trees with various fanouts
      Refactor notes code to concatenate multiple notes annotating the same object
      Add selftests verifying concatenation of multiple notes for the same commit

Johannes Schindelin (8):
      print_wrapped_text(): allow hard newlines
      Add strbuf_add_wrapped_text() to utf8.[ch]
      Introduce commit notes
      Add a script to edit/inspect notes
      Speed up git notes lookup
      Add an expensive test for git-notes
      Add '%N'-format for pretty-printing commit notes
      Add the --submodule option to the diff option family

Johannes Sixt (1):
      Windows: use BLK_SHA1 again

Jonathan Nieder (34):
      Add tests for git check-ref-format
      check-ref-format: simplify --print implementation
      Handle more shell metacharacters in editor names
      Retire fetch--tool helper to contrib/examples
      Show usage string for 'git grep -h'
      Show usage string for 'git cherry -h'
      Show usage string for 'git commit-tree -h'
      Show usage string for 'git merge-ours -h'
      Show usage string for 'git show-ref -h'
      http-fetch: add missing initialization of argv0_path
      Show usage string for 'git check-ref-format -h'
      Show usage string for 'git fast-import -h'
      Show usage string for 'git get-tar-commit-id -h'
      Show usage string for 'git imap-send -h'
      Show usage string for 'git mailsplit -h'
      Show usage string for 'git merge-one-file -h'
      Show usage string for 'git rev-parse -h'
      Show usage string for 'git show-index -h'
      Show usage string for 'git unpack-file -h'
      Show usage string for 'git stripspace -h'
      Let 'git http-fetch -h' show usage outside any git repository
      Show usage string for 'git http-push -h'
      Let 'git <command> -h' show usage without a git dir
      Introduce usagef() that takes a printf-style format
      merge-{recursive,subtree}: use usagef() to print usage
      diff --no-index: make the usage string less scary
      Do not use VISUAL editor on dumb terminals
      Suppress warnings from "git var -l"
      Teach git var about GIT_EDITOR
      Teach git var about GIT_PAGER
      add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR"
      am -i, git-svn: use "git var GIT_PAGER"
      Provide a build time default-editor setting
      Speed up bash completion loading

Julian Phillips (4):
      fetch: Speed up fetch by rewriting find_non_local_tags
      remote: Make ref_remove_duplicates faster for large numbers of refs
      fetch: Speed up fetch of large numbers of refs
      remote: fix use-after-free error detected by glibc in ref_remove_duplicates

Junio C Hamano (20):
      diff-lib.c: fix misleading comments on oneway_diff()
      unpack-trees: typofix
      unpack_callback(): use unpack_failed() consistently
      git check-ref-format --print
      Start 1.6.6 cycle
      check_filename(): make verify_filename() callable without dying
      DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz"
      format_commit_message(): fix function signature
      fsck: default to "git fsck --full"
      git checkout --no-guess
      Teach --wrap to only indent without wrapping
      Update draft release notes to 1.6.6
      Revert "Don't create the $GIT_DIR/branches directory on init"
      t1200: further modernize test script style
      t1200: prepare for merging with Fast-forward bikeshedding
      builtin-commit.c: fix logic to omit empty line before existing footers
      git-describe.txt: formatting fix
      Provide a build time default-pager setting
      Update draft release notes to 1.6.6
      Git v1.6.6-rc0

Linus Torvalds (1):
      Add '--bisect' revision machinery argument

Marius Storm-Olsen (1):
      MSVC: Enable OpenSSL, and translate -lcrypto

Mark Lodato (5):
      http-backend: add GIT_PROJECT_ROOT environment var
      http-backend: reword some documentation
      http-backend: use mod_alias instead of mod_rewrite
      http-backend: add example for gitweb on same URL
      http-backend: more explict LocationMatch

Mark Rada (1):
      instaweb: support mod_cgid for apache2

Markus Heidelberg (1):
      bash completion: difftool accepts the same options as diff

Michael J Gruber (1):
      Make t9150 and t9151 test scripts executable

Nicolas Pitre (1):
      pack-objects: move thread autodetection closer to relevant code

Ramsay Jones (2):
      Makefile: keep MSVC and Cygwin configuration separate
      MSVC: Add support for building with NO_MMAP

René Scharfe (6):
      describe: load refnames before calling describe()
      Implement wrap format %w() as if it is a mode switch
      log --format: don't ignore %w() at the start of format string
      grep: unset GREP_OPTIONS before spawning external grep
      strbuf_add_wrapped_text(): factor out strbuf_add_indented_text()
      log --format: document %w

Robin Rosenberg (1):
      Don't create the $GIT_DIR/branches directory on init

SZEDER Gábor (1):
      Documentation: add 'git replace' to main git manpage

Sam Vilain (5):
      git-svn: add test data for SVK merge, with script.
      git-svn: allow test setup script to support PERL env. var
      git-svn: convert SVK merge tickets to extra parents
      git-svn: add test data for SVN 1.5+ merge, with script.
      git-svn: convert SVN 1.5+ / svnmerge.py svn:mergeinfo props to parents

Scott Chacon (2):
      mergetool--lib: add p4merge as a pre-configured mergetool option
      Update packfile transfer protocol documentation

Sebastian Schuberth (2):
      Use faster byte swapping when compiling with MSVC
      Make the MSVC projects use PDB/IDB files named after the project

Shawn O. Pearce (27):
      git-gui: Ensure submodule path is quoted properly
      pkt-line: Add strbuf based functions
      pkt-line: Make packet_read_line easier to debug
      fetch-pack: Use a strbuf to compose the want list
      Move "get_ack()" back to fetch-pack
      Add multi_ack_detailed capability to fetch-pack/upload-pack
      remote-curl: Refactor walker initialization
      fetch: Allow transport -v -v -v to set verbosity to 3
      remote-helpers: Fetch more than one ref in a batch
      remote-helpers: Support custom transport options
      Move WebDAV HTTP push under remote-curl
      Git-aware CGI to provide dumb HTTP transport
      Add stateless RPC options to upload-pack, receive-pack
      Smart fetch and push over HTTP: server side
      Discover refs via smart HTTP server when available
      Smart push over HTTP: client side
      Smart fetch over HTTP: client side
      Smart HTTP fetch: gzip requests
      http tests: use /dumb/ URL prefix
      test smart http fetch and push
      http-backend: Use http.getanyfile to disable dumb HTTP serving
      http-backend: Test configuration options
      Git-aware CGI to provide dumb HTTP transport
      http-backend: Protect GIT_PROJECT_ROOT from /../ requests
      t5551-http-fetch: Work around some libcurl versions
      t5551-http-fetch: Work around broken Accept header in libcurl
      http-backend: Fix bad treatment of uintmax_t in Content-Length

Stephen Boyd (7):
      rebase -i: fix reword when using a terminal editor
      gitweb: linkify author/committer names with search
      t1402: Make test executable
      t1200: cleanup and modernize test style
      t1200: Make documentation and test agree
      t3101: test more ls-tree options
      ls-tree: migrate to parse-options

Tarmigan Casebolt (3):
      Check the format of more printf-type functions
      http-backend: Fix access beyond end of string.
      http-backend: Let gcc check the format of more printf-type functions.

Tay Ray Chuan (2):
      http-push: fix check condition on http.c::finish_http_pack_request()
      t5540-http-push: remove redundant fetches

Thiago Farina (1):
      Documentation: update pt-BR

Thomas Rast (14):
      bash completion: complete refs for git-grep
      Let --decorate show HEAD position
      Refactor pretty_print_commit arguments into a struct
      reflog-walk: refactor the branch@{num} formatting
      Introduce new pretty formats %g[sdD] for reflog information
      stash list: use new %g formats instead of sed
      stash list: drop the default limit of 10 stashes
      describe: when failing, tell the user about options that work
      filter-branch: stop special-casing $filter_subdir argument
      filter-branch: nearest-ancestor rewriting outside subdir filter
      Documentation: clarify 'ours' merge strategy
      rebase docs: clarify --merge and --strategy
      Document git-svn's first-parent rule
      describe: do not use unannotated tag even if exact match

Toby Allsopp (1):
      git svn: handle SVN merges from revisions past the tip of the branch

Vietor Liu (1):
      git-gui: adjust the minimum height of diff pane for shorter screen height

Štěpán Němec (1):
      git-update-index.txt: Document the --really-refresh option.


Version v1.6.5.9; changes since v1.6.5.8:
-----------------------------------------

Björn Gustavsson (3):
      Documentation: 'git add -A' can remove files
      git-add/rm doc: Consistently back-quote
      git-rm doc: Describe how to sync index & work tree

Greg Brockman (1):
      Check size of path buffer before writing into it

Jakub Narębski (1):
      gitweb: Introduce esc_attr to escape attributes of HTML elements

Jay Soffian (1):
      blame: prevent a segv when -L given start > EOF

Jeff King (2):
      fix memcpy of overlapping area
      dwim_ref: fix dangling symref warning

Junio C Hamano (2):
      t8003: check exit code of command and error message separately
      Git 1.6.4.5

Larry D'Anna (1):
      diff: make sure --output=/bad/path is caught

Michal Sojka (1):
      Remove extra '-' from git-am(1)

Stephen Boyd (4):
      octopus: make merge process simpler to follow
      octopus: reenable fast-forward merges
      octopus: remove dead code
      request-pull.txt: Document -p option

Thomas Rast (1):
      stash pop: remove 'apply' options during 'drop' invocation

Uwe Kleine-König (1):
      rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option


Version v1.6.5.8; changes since v1.6.5.7:
-----------------------------------------

Andreas Gruenbacher (3):
      base85 debug code: Fix length byte calculation
      base85: encode_85() does not use the decode table
      base85: Make the code more obvious instead of explaining the non-obvious

Andreas Schwab (1):
      git count-objects: handle packs bigger than 4G

Björn Gustavsson (1):
      rebase -i: abort cleanly if the editor fails to launch

David Reiss (1):
      Prevent git blame from segfaulting on a missing author name

Dmitry Potapov (1):
      fast-import: tag may point to any object type

Greg Price (1):
      commit: --cleanup is a message option

Jeff King (2):
      reset: unbreak hard resets with GIT_WORK_TREE
      textconv: stop leaking file descriptors

Jim Meyering (1):
      grep: NUL terminate input from a file

Junio C Hamano (3):
      checkout -m: do not try to fall back to --merge from an unborn branch
      Fix mis-backport of t7002
      Git 1.6.5.8

Matthieu Moy (1):
      branch: die explicitly why when calling "git branch [-a|-r] branchname".

Nguyễn Thái Ngọc Duy (1):
      t7102: make the test fail if one of its check fails

Stephen Boyd (2):
      api-strbuf.txt: fix typos and document launch_editor()
      technical-docs: document hash API

Thomas Rast (1):
      bash completion: factor submodules into dirty state


Version v1.6.5.7; changes since v1.6.5.6:
-----------------------------------------

Jeff King (1):
      ignore unknown color configuration

Johannes Sixt (1):
      help.autocorrect: do not run a command if the command given is junk

Junio C Hamano (2):
      worktree: don't segfault with an absolute pathspec without a work tree
      Git 1.6.5.7

Nanako Shiraishi (1):
      Illustrate "filter" attribute with an example


Version v1.6.5.6; changes since v1.6.5.5:
-----------------------------------------

Jan Krüger (1):
      pull: clarify advice for the unconfigured error case

Jeff King (1):
      add-interactive: fix deletion of non-empty files

Junio C Hamano (3):
      Remove post-upload-hook
      Fix archive format with -- on the command line
      Git 1.6.5.6

Matthieu Moy (2):
      merge-recursive: make the error-message generation an extern function
      builtin-merge: show user-friendly error messages for fast-forward too.


Version v1.6.5.5; changes since v1.6.5.4:
-----------------------------------------

Avery Pennarun (1):
      builtin-merge.c: call exclude_cmds() correctly.

Brandon Casey (1):
      t4201: use ISO8859-1 rather than ISO-8859-1

Brian Collins (1):
      grep: Allow case insensitive search of fixed-strings

Felipe Contreras (2):
      format-patch: fix parsing of "--" on the command line
      format-patch: add test for parsing of "--"

Jeff King (4):
      diffcore-break: free filespec data as we go
      diffcore-break: save cnt_data for other phases
      rerere: don't segfault on failure to open rr-cache
      reset: improve worktree safety valves

Junio C Hamano (7):
      diffcore-rename: reduce memory footprint by freeing blob data early
      Documentation: avoid xmlto input error
      Protect scripted Porcelains from GREP_OPTIONS insanity
      Remove dead code from "git am"
      Documentation: xmlto 0.0.18 does not know --stringparam
      Prepare for 1.6.5.5
      Git 1.6.5.5

Linus Torvalds (1):
      Fix diff -B/--dirstat miscounting of newly added contents

Lukas Sandström (1):
      git am/mailinfo: Don't look at in-body headers when rebasing

Matthew Ogilvie (1):
      core.autocrlf documentation: mention the crlf attribute

Matthieu Moy (4):
      Expand ~ and ~user in core.excludesfile, commit.template
      expand_user_path: expand ~ to $HOME, not to the actual homedir.
      merge-recursive: point the user to commit when file would be overwritten.
      user-manual: Document that "git merge" doesn't like uncommited changes.

Nicolas Pitre (1):
      give priority to progress messages

Philippe Bruhat (1):
      Make sure $PERL_PATH is defined when the test suite is run.

Raman Gupta (1):
      Add branch management for releases to gitworkflows

Ramsay Jones (3):
      Makefile: merge two Cygwin configuration sections into one
      t9700-perl-git.sh: Fix a test failure on Cygwin
      git-count-objects: Fix a disk-space under-estimate on Cygwin

René Scharfe (2):
      mergetool--lib: simplify guess_merge_tool()
      archive: clarify description of path parameter

Tim Henigan (2):
      Update 'git remote update' usage string to match man page.
      git remote: Separate usage strings for subcommands

Todd Zullinger (1):
      Documentation: Avoid use of xmlto --stringparam

Uwe Kleine-König (1):
      shortlog: respect commit encoding


Version v1.6.5.4; changes since v1.6.5.3:
-----------------------------------------

David Aguilar (1):
      help: Do not unnecessarily look for a repository

David Soria Parra (1):
      Documentation: Document --branch option in git clone synopsis

Greg Price (1):
      Documentation: undocument gc'd function graph_release()

Jeff King (1):
      prune-packed: only show progress when stderr is a tty

Junio C Hamano (7):
      builtin-apply.c: pay attention to -p<n> when determining the name
      Do not misidentify "git merge foo HEAD" as an old-style invocation
      merge: do not add standard message when message is given with -m option
      Prepare for 1.6.5.4
      Documentation/Makefile: allow man.base.url.for.relative.link to be set from Make
      Unconditionally set man.base.url.for.relative.links
      Git 1.6.5.4

Michael J Gruber (1):
      Documentation: Fix a few i.e./e.g. mix-ups

Nicolas Pitre (1):
      pack-objects: split implications of --all-progress from progress activation

Stephen Boyd (1):
      instaweb: restart server if already running


Version v1.6.5.3; changes since v1.6.5.2:
-----------------------------------------

Björn Gustavsson (1):
      git-clone.txt: Fix grammar and formatting

Björn Steinbrink (1):
      pre-commit.sample: Diff against the empty tree when HEAD is invalid

Clemens Buchacher (1):
      modernize fetch/merge/pull examples

Daniel Barkalow (2):
      Require a struct remote in transport_get()
      Allow curl helper to work without a local repository

Dmitry V. Levin (1):
      Makefile: add compat/bswap.h to LIB_H

Gerrit Pape (1):
      help -i: properly error out if no info viewer can be found

Gisle Aas (2):
      More precise description of 'git describe --abbrev'
      Fix documentation grammar typo

Giuseppe Bilotta (1):
      gitweb: fix esc_param

Jakub Narębski (1):
      gitweb: Do not show 'patch' link for merge commits

Jan Krüger (1):
      rebase -i: more graceful handling of invalid commands

Jari Aalto (3):
      Documentation/fetch-options.txt: order options alphabetically
      Documentation/git-pull.txt: Add subtitles above included option files
      Documentation/merge-options.txt: order options in alphabetical groups

Jeff King (6):
      cvsimport: fix relative argument filenames
      push: always load default config
      add-interactive: handle deletion of empty files
      ls-files: unbreak "ls-files -i"
      push: fix typo in usage
      format-patch: make "-p" suppress diffstat

Johannes Schindelin (3):
      blame: make sure that the last line ends in an LF
      help -a: do not unnecessarily look for a repository
      diff --color-words -U0: fix the location of hunk headers

Jonathan Nieder (4):
      clone: detect extra arguments
      Add intermediate build products to .gitignore
      check-ref-format: update usage string
      merge: do not setup worktree twice

Junio C Hamano (22):
      apply --whitespace=fix: fix handling of blank lines at the eof
      apply --whitespace=fix: detect new blank lines at eof correctly
      apply.c: split check_whitespace() into two
      apply --whitespace=warn/error: diagnose blank at EOF
      apply --whitespace: warn blank but not necessarily empty lines at EOF
      diff.c: the builtin_diff() deals with only two-file comparison
      diff --whitespace=warn/error: obey blank-at-eof
      diff --whitespace=warn/error: fix blank-at-eof check
      diff --color: color blank-at-eof
      core.whitespace: split trailing-space into blank-at-{eol,eof}
      diff --whitespace: fix blank lines at end
      diff.c: shuffling code around
      diff.c: split emit_line() from the first char and the rest of the line
      diff.c: emit_add_line() takes only the rest of the line
      diff -B: colour whitespace errors
      info/grafts: allow trailing whitespaces at the end of line
      gc --auto --quiet: make the notice a bit less verboase
      receive-pack: run "gc --auto --quiet" and optionally "update-server-info"
      clone: fix help on options
      diff --color-words: bit of clean-up
      check-ref-format -h: it does not know the --print option yet
      Git 1.6.5.3

Markus Heidelberg (1):
      t4034-diff-words: add a test for word diff without context

Petr Baudis (1):
      gitweb: Fix blob linenr links in pathinfo mode

Sebastian Schuberth (1):
      Do not try to remove directories when removing old links

Stephen Boyd (1):
      git-add.txt: fix formatting of --patch section

Thomas Rast (1):
      Quote ' as \(aq in manpages

Todd Zullinger (1):
      Makefile: Ensure rpm packages can be read by older rpm versions

Vietor Liu (1):
      imap-send.c: fix compiler warnings for OpenSSL 1.0


Version v1.6.5.2; changes since v1.6.5.1:
-----------------------------------------

Andreas Schwab (1):
      Work around option parsing bug in the busybox tar implementation

Carlos R. Mafra (1):
      Makefile: clean block-sha1/ directory instead of mozilla-sha1/

Jeff King (2):
      ls-files: excludes should not impact tracked files
      document push's new quiet option

Joe Perches (1):
      git-send-email.perl: fold multiple entry "Cc:" and multiple single line "RCPT TO:"s

Johannes Sixt (2):
      Remove a left-over file from t/t5100
      Mark files in t/t5100 as UTF-8

Jonathan Nieder (1):
      Documentation: describe check-ref-format --branch

Junio C Hamano (4):
      Fix incorrect error check while reading deflated pack data
      Do not fail "describe --always" in a tag-less repository
      Fix list of released versions in the toc document
      GIT 1.6.5.2

Markus Heidelberg (1):
      t7800-difftool: fix the effectless GIT_DIFFTOOL_PROMPT test

Matt Kraai (1):
      Documentation/git-gc.txt: change "references" to "reference"

Nanako Shiraishi (2):
      git push: remove incomplete options list from help text
      git push: say that --tag can't be used with --all or --mirror in help text

Nasser Grainawi (1):
      Document `delta` attribute in "git help attributes".

Pauli Virtanen (1):
      git-add--interactive: never skip files included in index


Version v1.6.5.1; changes since v1.6.5:
---------------------------------------

Björn Steinbrink (1):
      clone: Supply the right commit hash to post-checkout when -b is used

Johannes Sixt (1):
      remote-curl: add missing initialization of argv0_path

Junio C Hamano (1):
      GIT 1.6.5.1

Matt Kraai (1):
      grep: do not segfault when -f is used

Miklos Vajna (1):
      git-stash documentation: mention default options for 'list'

Nicolas Pitre (1):
      change throughput display units with fast links

Shawn O. Pearce (1):
      sha1_file: Fix infinite loop when pack is corrupted


Version v1.6.5; changes since v1.6.5-rc3:
-----------------------------------------

Alexander Gavrilov (1):
      git-svn: Avoid spurious errors when rewriteRoot is used.

Ben Walton (1):
      ls-files: die instead of fprintf/exit in -i error

Björn Gustavsson (1):
      bash: add support for 'git replace'

Brandon Casey (2):
      Makefile: enable THREADED_DELTA_SEARCH on IRIX and IRIX64
      Makefile: add a note about the NO_MMAP setting on IRIX and IRIX64

Christian Himpel (2):
      git-am: fixed patch_format detection according to RFC2822
      git-am: force egrep to use correct characters set

Erik Faye-Lund (2):
      increase portability of NORETURN declarations
      add NORETURN_PTR for function pointers

Felipe Contreras (1):
      send-email: fix mutt regex for grouped aliases

Ingmar Vanhassel (1):
      import-tars: Add missing closing bracket

Jeff King (2):
      improve reflog date/number heuristic
      pull: improve advice for unconfigured error case

Jonathan Nieder (8):
      Describe DOCBOOK_XSL_172, ASCIIDOC_NO_ROFF options in Makefile
      Documentation: git fmt-merge-msg does not have to be a script
      Documentation: clarify mergeoptions description
      Documentation: branch: update --merged description
      Documentation: clarify branch creation
      Documentation: clarify "working tree" definition
      racy-git.txt: explain nsec problem in more detail
      Documentation: clone: clarify discussion of initial branch

Junio C Hamano (2):
      Update draft release notes to 1.6.5
      GIT 1.6.5

Ramsay Jones (2):
      Fix MSVC build on cygwin
      Fix the exit code of MSVC build scripts on cygwin

René Scharfe (1):
      Git archive and trailing "/" in prefix

Simon Arlott (1):
      git-svn: hide find_parent_branch output in double quiet mode

Stephen Boyd (2):
      completion: fix completion of git <TAB><TAB>
      completion: fix alias listings with newlines


Version v1.6.5-rc3; changes since v1.6.5-rc2:
---------------------------------------------

Adam Brewster (1):
      filter-branch: add --prune-empty to option summary

Andreas Schwab (1):
      parse-opt: ignore negation of OPT_NONEG for ambiguity checks

Brandon Casey (3):
      perl/Makefile.PL: detect MakeMaker versions incompatible with DESTDIR
      Documentation/git-gc.txt: default --aggressive window is 250, not 10
      Makefile: enable THREADED_DELTA_SEARCH on SunOS

Frederik Schwarzer (1):
      Correct minor typo in post-receive hook template

Jim Meyering (1):
      typo fix: Directory `...' exist, ...: s/exist/exists/

Johan Sageryd (1):
      Fix '--relative-date'

Junio C Hamano (4):
      builtin-mailinfo.c: check error status from rewind and ftruncate
      show-branch: fix segfault when showbranch.default exists
      git-pull: dead code removal
      fast-import.c::validate_raw_date(): really validate the value

Mark Rada (1):
      tests: make all test files executable

Michael Wookey (1):
      generators/vcproj.pm: remove UNICODE from build

Miklos Vajna (1):
      git branch -D: give a better error message when lockfile creation fails

Nicolas Pitre (1):
      make 'git clone' ask the remote only for objects it cares about

Ramsay Jones (1):
      Fix some printf format warnings

SZEDER Gábor (1):
      bash: teach 'git checkout' options

Sebastian Schuberth (2):
      Make generated MSVC solution file open from Windows Explorer
      Make just opening the generated MSVC solution file not modify it

Stefan Naewe (1):
      README: git lives at http://git-scm.com these days

Stephen Boyd (2):
      completion: update am, commit, and log
      completion: add dirstat and friends to diff options

Yakov Lerner (1):
      send-email: fix obscure error when encryption=tls and smtp cannot connect


Version v1.6.5-rc2; changes since v1.6.5-rc1:
---------------------------------------------

Clemens Buchacher (2):
      test local clone by copying
      cvs: initialize empty password

Dmitry Potapov (2):
      git-archive: add '-o' as a alias for '--output'
      git-archive: infer output format from filename when unspecified

Frank Li (6):
      Avoid declaration after statement
      Change regerror() declaration from K&R style to ANSI C (C89)
      Fix __stdcall placement and function prototype
      Test for WIN32 instead of __MINGW32_
      Add MinGW header files to build git with MSVC
      Add platform files for porting to MSVC

Heiko Voigt (2):
      remove logical typo in documentation of sample update hook
      web--browse: fix Mac OS X GUI detection for 10.6

Jim Meyering (1):
      pre-commit.sample: add comment re tr portability; fix grammar

Johannes Gilger (1):
      git-clone doc: typofix

Johannes Sixt (1):
      test-genrandom: ensure stdout is set to _O_BINARY on Windows

Junio C Hamano (6):
      git-commit doc: remove duplicated --dry-run description
      http.c: avoid freeing an uninitialized pointer
      GIT 1.6.4.4
      Update Release Notes to 1.6.5
      pay attention to DESTDIR when building with NO_PERL_MAKEMAKER
      pull: Clarify "helpful" message for another corner case

Marius Storm-Olsen (9):
      Add include guards to compat/win32.h
      Set _O_BINARY as default fmode for both MinGW and MSVC
      Add empty header files for MSVC port
      Make usage of windows.h lean and mean
      Define strncasecmp and ftruncate for MSVC
      Add MSVC to Makefile
      Add README for MSVC build
      Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)
      Tag GIT_VERSION when Git is built with MSVC

Matthieu Moy (1):
      push: Correctly initialize nonfastforward in transport_push.

Nelson Elhage (1):
      git-push: Accept -n as a synonym for --dry-run.

Nicolas Pitre (1):
      Nicolas Pitre has a new email address

Pat Thoyts (1):
      gitk: Work around leftover temporary save file

Paul Mackerras (1):
      gitk: Show diff of commits at end of compare-commits output

Peter Krefting (1):
      gitk: Update Swedish translation (280t0f0u)

SZEDER Gábor (3):
      bash: rename __git_find_subcommand() to __git_find_on_cmdline()
      bash: update 'git stash' completion
      bash: teach 'git reset --patch'

Thiago Farina (3):
      Update the usage bundle string.
      pack-objects: remove SP at the end of usage string
      Update "describe" documentation to match reality

Todd Zullinger (1):
      completion: Replace config --list with --get-regexp


Version v1.6.5-rc1; changes since v1.6.5-rc0:
---------------------------------------------

Brian Gernhardt (4):
      INSTALL: Update description of our SHA-1 code
      Makefile: Add NEEDS_CRYPTO_WITH_SSL
      INSTALL: Reorder dependencies, split shell and Perl
      INSTALL: Describe dependency knobs from Makefile

Clemens Buchacher (3):
      grep: fix exit status if external_grep() punts
      grep: accept relative paths outside current working directory
      preserve mtime of local clone

Daniel Barkalow (4):
      Add support for external programs for handling native fetches
      Use an external program to implement fetching with curl
      Make the "traditionally-supported" URLs a special case
      Use a clearer style to issue commands to remote helpers

Jari Aalto (1):
      Improve --patch option documentation in git-add

Jeff King (4):
      Makefile: git-http-fetch does not need expat
      push: make non-fast-forward help message configurable
      status: make "how to stage" messages optional
      rebase: use plumbing to show dirty state

Jim Meyering (3):
      use write_str_in_full helper to avoid literal string lengths
      use write_str_in_full helper to avoid literal string lengths
      don't dereference NULL upon fdopen failure

Johannes Sixt (2):
      start_command: do not clobber cmd->env on Windows code path
      pager: set LESS=FRSX also on Windows

Josh Triplett (2):
      Wrap rewrite globals in a struct in preparation for adding another set
      Add url.<base>.pushInsteadOf: URL rewriting for push only

Junio C Hamano (7):
      Makefile: do not link three copies of git-remote-* programs
      Makefile: install hardlinks for git-remote-<scheme> supported by libcurl if possible
      merge-recursive: give less scary messages when merge did not start
      Makefile: remove remnant of separate http/https/ftp helpers
      GIT 1.6.4.3
      quiltimport documentation: --dry-run and -n are synonyms
      GIT 1.6.5-rc1

Linus Torvalds (1):
      git-http-fetch: not a builtin

Mark Lodato (1):
      svn: properly escape arguments for authors-prog

Martin Nordholts (1):
      git.el: Use git-add-file for unmerged files, remove git-resolve-file

Matthieu Moy (1):
      wrap git's main usage string.

Mike Ralphson (2):
      Add transport native helper executables to .gitignore
      http-fetch: Fix Makefile dependancies

Nicolas Sebrecht (2):
      mailinfo: add '--scissors' to usage message
      add documentation for mailinfo.scissors and '--no-scissors'

Peter Krefting (2):
      import-tars: Allow per-tar author and commit message.
      Add script for importing bits-and-pieces to Git.

Reilly Grant (1):
      git-p4: Avoid modules deprecated in Python 2.6.

Tay Ray Chuan (1):
      http.c: remove verification of remote packs


Version v1.6.5-rc0; changes since v1.6.4.5:
-------------------------------------------

Adam Brewster (3):
      svn: Add && to t9107-git-svn-migrate.sh
      svn: Honor --prefix option in init without --stdlayout
      svn: allow branches outside of refs/remotes

Adam Simpkins (3):
      graph API: use a new color when starting a brand new column
      graph API: fix bug in graph_is_interesting()
      Add tests for rev-list --graph with options that simplify history

Alex Riesen (2):
      Add a reminder test case for a merge with F/D transition
      Add date formatting and parsing functions relative to a given time

Alexandre Julliard (1):
      read-tree: Fix regression with creation of a new index file.

André Goddard Rosa (1):
      Fix typos on pt_BR/gittutorial.txt translation

Benjamin Kramer (1):
      gitweb: Optimize git-favicon.png

Björn Steinbrink (1):
      git-describe: Die early if there are no possible descriptions

Brandon Casey (9):
      strbuf: add new function strbuf_getwholeline()
      builtin-mailinfo,builtin-mailsplit: use strbufs
      builtin-mailsplit.c: remove read_line_with_nul() since it is no longer used
      block-sha1/sha1.c: silence compiler complaints by casting void * to char *
      git-compat-util.h: remove superfluous test for __sun__
      Makefile: remove pointless conditional assignment in SunOS section
      abspath.c: move declaration of 'len' into inner block and use appropriate type
      commit.c: rename variable named 'n' which masks previous declaration
      t/test-lib.sh: provide a shell implementation of the 'yes' utility

Brian Gianforcaro (1):
      Style fixes, add a space after if/for/while.

Christian Couder (13):
      refs: add a "for_each_replace_ref" function
      replace_object: add mechanism to replace objects found in "refs/replace/"
      sha1_file: add a "read_sha1_file_repl" function
      object: call "check_sha1_signature" with the replacement sha1
      replace_object: add a test case
      mktag: call "check_sha1_signature" with the replacement sha1
      environment: add global variable to disable replacement
      Add new "git replace" command
      builtin-replace: teach "git replace" to actually replace
      parse-options: add new function "usage_msg_opt"
      builtin-replace: use "usage_msg_opt" to give better error messages
      Documentation: add documentation for "git replace"
      t6050: check pushing something based on a replaced commit

David Aguilar (1):
      Add git-replace to .gitignore

David Kågedal (1):
      git.el: Clarify documentation of git-commit-tree

David Soria Parra (1):
      run-command.c: squelch a "use before assignment" warning

Dirk Hoerner (1):
      git-cvsimport: add support for cvs pserver password scrambling.

Eric Wong (3):
      svn: initial "master" points to trunk if possible
      svn: (cleanup) use predefined constant for rev_map_fmt
      svn: assume URLs from the command-line are URI-encoded

Geoffrey Irving (1):
      git fast-export: add --no-data option

Giuseppe Bilotta (3):
      gitweb: fix 'Use of uninitialized value' error in href()
      git apply: option to ignore whitespace differences
      gitweb: pull ref markes pull out of subject <a> element

Heiko Voigt (2):
      cvsimport: add test illustrating a bug in cvsps
      cvsimport: extend testcase about patchset order to contain branches

Jakub Narębski (6):
      gitweb: Make .error style generic
      gitweb: Mark boundary commits in 'blame' view
      gitweb: Use "previous" header of git-blame -p in 'blame' view
      gitweb: Mark commits with no "previous" in 'blame' view
      gitweb: Add author initials in 'blame' view, a la "git gui blame"
      gitweb: Use light/dark for class names also in 'blame' view

Jari Aalto (1):
      git-tag(1): Refer to git-check-ref-format(1) for <name>

Jeff King (14):
      push: add --quiet flag
      transport: pass "quiet" flag to pack-objects
      transport: don't show push status if --quiet is given
      tests: use "$TEST_DIRECTORY" instead of ".."
      tests: provide $TRASH_DIRECTORY variable
      tests: allow user to specify trash directory location
      t/Makefile: include config.mak
      allow pull --rebase on branch yet to be born
      tests: disable interactive hunk selection tests if perl is not available
      clone: add --branch option to select a different HEAD
      refactor test-date interface
      tests: add date printing and parsing tests
      fix approxidate parsing of relative months and years
      push: teach --quiet to suppress "Everything up-to-date"

Jeff Lasslett (1):
      Check return value of ftruncate call in http.c

Jens Lehmann (1):
      git submodule summary: add --files option

Johan Herland (9):
      git submodule foreach: Provide access to submodule name, as '$name'
      git submodule: Cleanup usage string and add option parsing to cmd_foreach()
      Add selftest for 'git submodule foreach'
      git submodule foreach: test access to submodule name as '$name'
      git submodule foreach: Add --recursive to recurse into nested submodules
      git submodule update: Introduce --recursive to update nested submodules
      git submodule status: Add --recursive to recurse into nested submodules
      t7407: Use 'rev-parse --short' rather than bash's substring expansion notation
      git clone: Add --recursive to automatically checkout (nested) submodules

Johannes Schindelin (2):
      Make 'git stash -k' a short form for 'git stash save --keep-index'
      parse-opt: optionally show "--no-" option string

Johannes Sixt (13):
      MinGW: simplify waitpid() emulation macros
      run_command: return exit code as positive value
      run_command: report system call errors instead of returning error codes
      run_command: encode deadly signal number in the return value
      run_command: report failure to execute the program, but optionally don't
      receive-pack: remove unnecessary run_status report
      api-run-command.txt: describe error behavior of run_command functions
      t0001-init: fix a file name
      t0001-init: split the existence test from the permission test
      gitk: Do not hard-code "encoding" in attribute lookup functions
      Make test number t7406- unique
      Make test case number unique
      status: list unmerged files much later

Junio C Hamano (31):
      t/t9600: remove exit after test_done
      Start 1.6.5 cycle
      request-pull: optionally show a patch as well
      diff-index: report unmerged new entries
      diff-index: keep the original index intact
      Allow mailsplit (and hence git-am) to handle mails with CRLF line-endings
      wt-status.c: rework the way changes to the index and work tree are summarized
      git-rev-list.txt: Clarify the use of multiple revision arguments
      block-sha1: undo ctx->size change
      block-sha1: minor fixups
      am: allow individual e-mail files as input
      status: show worktree status of conflicted paths separately
      verify-pack --stat-only: show histogram without verifying
      commit: --dry-run
      wt-status: move many global settings to wt_status structure
      wt-status: move wt_status_colors[] into wt_status structure
      Make git_status_config() file scope static to builtin-commit.c
      wt-status: collect untracked files in a separate "collect" phase
      Documentation/git-commit.txt: describe --dry-run
      git commit --dry-run -v: show diff in color when asked
      compat/snprintf.c: clarify SNPRINTF_SIZE_CORR
      builtin-mailinfo.c: fix confusing internal API to mailinfo()
      Teach mailinfo to ignore everything before -- >8 -- mark
      am/mailinfo: Disable scissors processing by default
      mailinfo.scissors: new configuration
      Draft release notes to 1.6.5 before -rc0
      upload-pack: add a trigger for post-upload-pack hook
      upload-pack: feed "kind [clone|fetch]" to post-upload-pack hook
      builtin-pack-objects.c: avoid vla
      builtin-apply.c: get rid of an unnecessary use of temporary array
      GIT 1.6.5-rc0

Karthik R (1):
      git-svn: Use GIT_SSH setting if SVN_SSH is not set

Lars Hjemli (2):
      Documentaqtion/git-submodule.txt: Typofix
      git-log: allow --decorate[=short|full]

Linus Torvalds (12):
      Add new optimized C 'block-sha1' routines
      block-sha1: try to use rol/ror appropriately
      block-sha1: make the 'ntohl()' part of the first SHA1 loop
      block-sha1: re-use the temporary array as we calculate the SHA1
      block-sha1: macroize the rounds a bit further
      block-sha1: Use '(B&C)+(D&(B^C))' instead of '(B&C)|(D&(B|C))' in round 3
      block-sha1: get rid of redundant 'lenW' context
      block-sha1: perform register rotation using cpp
      block-sha1: improved SHA1 hashing
      block-sha1: improve code on large-register-set machines
      Improve on 'approxidate'
      Further 'approxidate' improvements

Luke Diamand (1):
      git-p4: stream from perforce to speed up clones

Mark Rada (6):
      gitweb: support to globally disable a snapshot format
      gitweb: update INSTALL regarding specific snapshot settings
      gitweb: add support for XZ compressed snapshots
      gitweb: improve snapshot error handling
      gitweb: split test suite into library and tests
      gitweb: add t9501 tests for checking HTTP status codes

Matthieu Moy (6):
      rebase: consistent error messages for staged and unstaged changes.
      git-ls-files.txt: clarify what "other files" mean for --other
      Show usage string for 'git log -h', 'git show -h' and 'git diff -h'
      Rename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.
      reset: make the reminder output consistent with "checkout"
      stash: simplify defaulting to "save" and reject unknown options

Michael Haggerty (6):
      Start a library for cvsimport-related tests
      Use CVS's -f option if available (ignore user's ~/.cvsrc file)
      Test contents of entire cvsimported "master" tree contents
      Add some tests of git-cvsimport's handling of vendor branches
      Add a test of "git cvsimport"'s handling of tags and branches
      git-svn: ignore leading blank lines in svn:ignore

Michael J Gruber (3):
      t6010-merge-base.sh: Depict the octopus test graph
      git-merge-base/git-show-branch: Cleanup documentation and usage
      git-merge-base/git-show-branch --merge-base: Documentation and test

Michał Kiedrowicz (2):
      init-db: migrate to parse-options
      grep: Add --max-depth option.

Nanako Shiraishi (3):
      git init: optionally allow a directory argument
      Documentation: consistently refer to check-ref-format
      Documentation: describe the scissors mark support of "git am"

Nguyễn Thái Ngọc Duy (1):
      Prevent diff machinery from examining assume-unchanged entries on worktree

Nick Edelen (1):
      Shift object enumeration out of upload-pack

Nicolas Pitre (11):
      block-sha1: move code around
      block-sha1: split the different "hacks" to be individually selected
      block-sha1: support for architectures with memory alignment restrictions
      block-sha1: more good unaligned memory access candidates
      block-sha1: make the size member first in the context struct
      make sure byte swapping is optimal for git
      block-sha1: guard gcc extensions with __GNUC__
      remove ARM and Mozilla SHA1 implementations
      fix simple deepening of a repo
      make shallow repository deepening more network efficient
      pack-objects: free preferred base memory after usage

Nicolas Sebrecht (1):
      git-am: print fair error message when format detection fails

Ori Avtalion (1):
      git stash: Give friendlier errors when there is nothing to apply

Pascal Obry (1):
      Do not scramble password read from .cvspass

René Scharfe (2):
      update-server-info: make builtin, use parseopt
      UI consistency: allow --force for where -f means force

Stephen Boyd (7):
      read-tree: convert unhelpful usage()'s to helpful die()'s
      read-tree: migrate to parse-options
      write-tree: migrate to parse-options
      verify-tag: migrate to parse-options
      verify-pack: migrate to parse-options
      prune-packed: migrate to parse-options
      technical-docs: document tree-walking API

Tay Ray Chuan (2):
      http.c: free preq when aborting
      http.c: replace usage of temporary variable for urls

Thadeu Lima de Souza Cascardo (1):
      Translate the tutorial to Brazillian Portuguese

Thomas Rast (11):
      Document 'stash clear' recovery via unreachable commits
      gitk: New option to hide remote refs
      gitk: Fix direction of symmetric difference in optimized mode
      gitk: Parse arbitrary commit-ish in SHA1 field
      git-apply--interactive: Refactor patch mode code
      Add a small patch-mode testing library
      builtin-add: refactor the meat of interactive_add()
      Implement 'git reset --patch'
      Implement 'git checkout --patch'
      Implement 'git stash save --patch'
      DWIM 'git stash save -p' for 'git stash -p'

Tuomas Suutari (1):
      git-svn.txt: Fix location of parent argument

Wesley J. Landaker (2):
      Documentation: git-send-email: fix submission port number
      Documentation: git-send-email: correct statement about standard ports

Wilhansen Li (1):
      Add support for the Mongoose web server.


Version v1.6.4.5; changes since v1.6.4.4:
-----------------------------------------

Andreas Gruenbacher (3):
      base85 debug code: Fix length byte calculation
      base85: encode_85() does not use the decode table
      base85: Make the code more obvious instead of explaining the non-obvious

Andreas Schwab (1):
      git count-objects: handle packs bigger than 4G

Ben Walton (1):
      ls-files: die instead of fprintf/exit in -i error

Gerrit Pape (1):
      help -i: properly error out if no info viewer can be found

Greg Brockman (1):
      Check size of path buffer before writing into it

Greg Price (1):
      commit: --cleanup is a message option

Jakub Narębski (1):
      gitweb: Introduce esc_attr to escape attributes of HTML elements

Jan Krüger (1):
      rebase -i: more graceful handling of invalid commands

Jeff King (2):
      ls-files: excludes should not impact tracked files
      textconv: stop leaking file descriptors

Jonathan Nieder (1):
      Documentation: describe check-ref-format --branch

Junio C Hamano (5):
      show-branch: fix segfault when showbranch.default exists
      fast-import.c::validate_raw_date(): really validate the value
      checkout -m: do not try to fall back to --merge from an unborn branch
      Fix mis-backport of t7002
      Git 1.6.4.5

Matt Kraai (1):
      grep: do not segfault when -f is used

Matthieu Moy (2):
      push: Correctly initialize nonfastforward in transport_push.
      branch: die explicitly why when calling "git branch [-a|-r] branchname".

Miklos Vajna (1):
      git-stash documentation: mention default options for 'list'

Nguyễn Thái Ngọc Duy (1):
      t7102: make the test fail if one of its check fails

Uwe Kleine-König (1):
      rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option


Version v1.6.4.4; changes since v1.6.4.3:
-----------------------------------------

Jeff King (1):
      checkout: do not imply "-f" on unborn branches

Junio C Hamano (6):
      Fix "unpack-objects --strict"
      check_path(): allow symlinked directories to checkout-index --prefix
      xutils: Fix hashing an incomplete line with whitespaces at the end
      xutils: Fix xdl_recmatch() on incomplete lines
      http.c: avoid freeing an uninitialized pointer
      GIT 1.6.4.4


Version v1.6.4.3; changes since v1.6.4.2:
-----------------------------------------

Bert Wesarg (1):
      githooks.txt: put hooks into subsections

Clemens Buchacher (2):
      grep: fix exit status if external_grep() punts
      grep: accept relative paths outside current working directory

Emmanuel Trillaud (1):
      git-pull: do not mention --quiet and --verbose twice

Gerrit Pape (1):
      git-cvsserver: no longer use deprecated 'git-subcommand' commands

Jeff King (3):
      clone: disconnect transport after fetching
      push: fix english in non-fast-forward message
      push: re-flow non-fast-forward message

Junio C Hamano (1):
      GIT 1.6.4.3

Mark Lodato (1):
      svn: properly escape arguments for authors-prog

Miklos Vajna (1):
      git-clone: add missing comma in --reference documentation

Tay Ray Chuan (1):
      http.c: remove verification of remote packs


Version v1.6.4.2; changes since v1.6.4.1:
-----------------------------------------

David Kågedal (1):
      Minor improvement to the write-tree documentation

David Reiss (1):
      Round-down years in "years+months" relative date view

Jeff King (3):
      add tests for merge message headings
      merge: fix incorrect merge message for ambiguous tag/branch
      merge: indicate remote tracking branches in merge message

Johannes Schindelin (2):
      Expose the has_non_ascii() function
      Correctly mark cover letters' encodings if they are not pure ASCII

Johannes Sixt (1):
      t6035-merge-dir-to-symlink depends on SYMLINKS prerequisite

Junio C Hamano (3):
      apply: notice creation/removal patches produced by GNU diff
      clean: require double -f options to nuke nested git repository and work tree
      GIT 1.6.4.2

Kirill Smelkov (1):
      git add -p: demonstrate failure when staging both mode and hunk

Kjetil Barvik (1):
      lstat_cache: guard against full match of length of 'name' parameter

Lars Hjemli (1):
      git-log: allow --decorate[=short|full]

Linus Torvalds (1):
      git-checkout: be careful about untracked symlinks

Nanako Shiraishi (3):
      git-bisect: call the found commit "*the* first bad commit"
      Fix overridable written with an extra 'e'
      Remove unused t/t8005/iso8859-5.txt

Pickens, James E (1):
      Demonstrate bugs when a directory is replaced with a symlink

Tay Ray Chuan (2):
      http.c: don't assume that urls don't end with slash
      http.c: set slot callback members to NULL when releasing object

Thomas Rast (1):
      add -p: do not attempt to coalesce mode changes

Wesley J. Landaker (1):
      Documentation: git-archive: mark --format as optional in summary


Version v1.6.4.1; changes since v1.6.4:
---------------------------------------

Björn Steinbrink (1):
      config: Keep inner whitespace verbatim

Erik Faye-Lund (1):
      send-email: remove debug trace

Jakub Narębski (1):
      gitweb/README: Document $base_url

Jeff King (3):
      show: suppress extra newline when showing annotated tag
      show: add space between multiple items
      docs: describe impact of repack on "clone -s"

Jens Lehmann (1):
      Documentation: git submodule: add missing options to synopsis

Johan Herland (1):
      help.c: give correct structure's size to memset()

Johannes Schindelin (1):
      filter-branch: add an example how to add ACKs to a range of commits

Junio C Hamano (5):
      merge-recursive: don't segfault while handling rename clashes
      t5510: harden the way verify-pack is used
      verify-pack -v: do not report "chain length 0"
      am: allow individual e-mail files as input
      GIT 1.6.4.1

Mark Rada (1):
      git-instaweb: fix mod_perl detection for apache2

Matthieu Moy (3):
      Better usage string for reflog.
      push: point to 'git pull' and 'git push --force' in case of non-fast forward
      filter-branch: make the usage string fit on 80 chars terminals.

Miklos Vajna (1):
      hg-to-git: don't import the unused popen2 module

Nicolas Pitre (1):
      don't let the delta cache grow unbounded in 'git repack'

Nicolas Sebrecht (1):
      git-am: print fair error message when format detection fails

Ori Avtalion (1):
      Change mentions of "git programs" to "git commands"

Paul Bolle (2):
      Documentation: merge: one <remote> is required
      Documentation: add: <filepattern>... is optional

Santi Béjar (2):
      t5520-pull: Test for rebased upstream + fetch + pull --rebase
      pull: support rebased upstream + fetch + pull --rebase

Zoltán Füzesi (1):
      gitweb: parse_commit_text encoding fix

Štěpán Němec (1):
      Fix typos in git-remote.txt and git-symbolic-ref.txt


Version v1.6.4; changes since v1.6.4-rc3:
-----------------------------------------

David Kågedal (1):
      Update the documentation of the raw diff output format

Elijah Newren (7):
      fast-export: Set revs.topo_order before calling setup_revisions
      fast-export: Omit tags that tag trees
      fast-export: Make sure we show actual ref names instead of "(null)"
      fast-export: Do parent rewriting to avoid dropping relevant commits
      fast-export: Add a --tag-of-filtered-object option for newly dangling tags
      Add new fast-export testcases
      fast-export: Document the fact that git-rev-list arguments are accepted

Eric Wong (1):
      t9143: do not fail if Compress::Zlib is missing

Greg Price (1):
      Fix rebase -p --onto

Junio C Hamano (2):
      GIT 1.6.3.4
      GIT 1.6.4

Michael J Gruber (1):
      git-rerere.txt: Clarify ambiguity of the config variable

Sean Estabrooks (1):
      Trivial path quoting fixes in git-instaweb

Stephen Boyd (1):
      config.txt: document add.ignore-errors

Tom Grennan (1):
      request-pull: allow ls-remote to notice remote.$nickname.uploadpack


Version v1.6.4-rc3; changes since v1.6.4-rc2:
---------------------------------------------

Alex Vandiver (2):
      Make section_name_match start on '[', and return the length on success
      After renaming a section, print any trailing variable definitions

Björn Steinbrink (1):
      Add a test showing that 'git repack' throws away grafted-away parents

Daniel Trstenjak (1):
      Show the presence of untracked files in the bash prompt.

Eric Wong (6):
      git svn: fix shallow clone when upstream revision is too new
      git svn: revert default behavior for --minimize-url
      git svn: the branch command no longer needs the full path
      t9142: stop httpd after the test
      git svn: avoid escaping '/' when renaming/copying files
      git svn: make minimize URL more reliable over http(s)

Jeff King (1):
      send-email: detect cycles in alias expansion

Johannes Schindelin (1):
      git repack: keep commits hidden by a graft

Junio C Hamano (6):
      do_one_ref(): null_sha1 check is not about broken ref
      SunOS grep does not understand -C<n> nor -e
      Update release notes for 1.6.4
      Fix severe breakage in "git-apply --whitespace=fix"
      t8005: Nobody writes Russian in shift_jis
      GIT 1.6.4-rc3

Linus Torvalds (3):
      git branch: fix performance problem
      git branch: avoid unnecessary object lookups
      git branch: clean up detached branch handling

Matthias Andree (1):
      Fix export_marks() error handling.

Nanako Shiraishi (1):
      Documentation/config.txt: a variable can be defined on the section header line

Robert Zeh (1):
      git svn: add gc command

Thomas Rast (1):
      Disable asciidoc 8.4.1+ semantics for `{plus}` and friends


Version v1.6.4-rc2; changes since v1.6.4-rc1:
---------------------------------------------

Brandon Casey (4):
      refs.c: release file descriptor on error return
      sha1_name.c: avoid unnecessary strbuf_release
      configure.ac: rework/fix the NEEDS_RESOLV and NEEDS_LIBGEN tests
      configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing

Eric Wong (2):
      git svn: rename tests that had conflicting numbers
      git svn: fix reparenting when ugly http(s) URLs are used

Junio C Hamano (5):
      checkout -f: deal with a D/F conflict entry correctly
      push: do not give big warning when no preference is configured
      Updates to draft release notes to 1.6.4
      combine-diff.c: fix performance problem when folding common deleted lines
      diff --cc: a lost line at the beginning of the file is shown incorrectly

Martin Koegler (1):
      git stash: modernize use of "dashed" git-XXX calls

Michael J Gruber (1):
      t4202-log.sh: Test git log --no-walk sort order

Mike Ralphson (1):
      cvsexportcommit: reorder tests to quiet intermittent failure

Pierre Habouzit (4):
      janitor: use NULL and not 0 for pointers.
      refactor: use bitsizeof() instead of 8 * sizeof()
      janitor: add DIV_ROUND_UP and use it.
      janitor: useless checks before free

SZEDER Gábor (1):
      Trailing whitespace and no newline fix

Yann Dirson (2):
      List send-email config options in config.txt.
      Improve doc for format-patch threading options.


Version v1.6.4-rc1; changes since v1.6.4-rc0:
---------------------------------------------

Andreas Ericsson (1):
      mailinfo: Remove only one set of square brackets

Brandon Casey (5):
      unpack-trees.c: work around run-time array initialization flaw on IRIX 6.5
      git-compat-util.h: adjust for SGI IRIX 6.5
      Makefile: add NEEDS_LIBGEN to optionally add -lgen to compile arguments
      Makefile: add section for SGI IRIX 6.5
      Makefile: update IRIX64 section

Eric Wong (1):
      git svn: allow uppercase UUIDs from SVN

Johan Herland (1):
      quickfetch(): Prevent overflow of the rev-list command line

Junio C Hamano (2):
      Makefile: keep "git" when bindir is execdir
      Revert "mailinfo: Remove only one set of square brackets"

Linus Torvalds (10):
      Add 'fill_directory()' helper function for directory traversal
      Simplify read_directory[_recursive]() arguments
      Avoid doing extra 'lstat()'s for d_type if we have an up-to-date cache entry
      Avoid using 'lstat()' to figure out directories
      Prepare symlink caching for thread-safety
      Export thread-safe version of 'has_symlink_leading_path()'
      Make index preloading check the whole path to the file
      Make 'git show' more useful
      Improve on the 'invalid object' error message at commit time
      Fix extraneous lstat's in 'git checkout -f'

Mattias Nissler (2):
      git-svn: Always duplicate paths returned from get_log
      git-svn: Fix branch detection when repository root is inaccessible

SZEDER Gábor (2):
      Document 'git (rev-list|log) --merges'
      bash: add '--merges' to common 'git log' options

Wincent Colaiuta (1):
      gitweb: update Git homepage URL


Version v1.6.4-rc0; changes since v1.6.3.4:
-------------------------------------------

Alex Bennée (1):
      Add -k option to cvsexportcommit to revert expanded CVS keywords in CVS working tree before applying commit patch

Alex Riesen (3):
      Quote LF in urls git fetch saves in FETCH_HEAD
      Use UTF-8 instead of utf8 for backward compatibility
      Improve the naming of guessed target repository for git clone

Alex Vandiver (3):
      git-svn: Fix for svn paths removed > log-window-size revisions ago
      git-svn: Correctly report max revision when following deleted paths
      git-svn: Set svn.authorsfile if it is passed to git svn clone

Allan Caffee (1):
      graph API: Use horizontal lines for more compact graphs

Andreas Ericsson (1):
      fetch: Strip usernames from url's before storing them

Ben Jackson (3):
      Add 'git svn help [cmd]' which works outside a repo.
      git-svn: speed up find_rev_before
      Add 'git svn reset' to unwind 'git svn fetch'

Benjamin Kramer (1):
      imap-send: add support for IPv6

Bert Wesarg (1):
      builtin-remote: (get_one_entry): use strbuf

Björn Steinbrink (1):
      git-apply(1): Clarify that one can select where to apply the patch

Brandon Casey (23):
      t3900: use ancient iconv names for backward compatibility
      Use 'UTF-8' rather than 'utf-8' everywhere for backward compatibility
      builtin-mailinfo.c: compare character encodings case insensitively
      builtin-mailinfo.c: use "ISO8859-1" instead of "latin1" as fallback encoding
      t3901: avoid negation on right hand side of '|'
      t3901: Use ISO8859-1 instead of ISO-8859-1 for backward compatibility
      t9301: use ISO8859-1 rather than ISO-8859-1
      t5100: use ancient encoding syntax for backwards compatibility
      t8005: use more portable character encoding names
      t8005: convert CP1251 character set to ISO8859-5
      t8005: fix typo, it's ISO-8859-5, not KOI8-R
      Makefile: use /usr/ucb/install on SunOS platforms rather than ginstall
      Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile arguments
      On Solaris choose the OLD_ICONV iconv() declaration based on the UNIX spec
      git-compat-util.h: tweak the way _XOPEN_SOURCE is set on Solaris
      Makefile: define __sun__ on SunOS
      Makefile: add section for SunOS 5.7
      git-compat-util.h: avoid using c99 flex array feature with Sun compiler 5.8
      git-send-email.perl: improve detection of MIME encoded-words
      send-email: use UTF-8 rather than utf-8 for consistency
      Makefile: Solaris needs HAVE_ALLOCA_H for alloca()
      t/t9001-send-email.sh: ensure generated script is executed with $SHELL_PATH
      git.c: avoid allocating one-too-many elements for new argv array

Christian Couder (30):
      rev-list: make "estimate_bisect_steps" non static
      rev-list: refactor printing bisect vars
      bisect: move common bisect functionality to "bisect_common"
      bisect--helper: add "--next-exit" to output bisect results
      bisect: use "git bisect--helper --next-exit" in "git-bisect.sh"
      bisect--helper: remove "--next-vars" option as it is now useless
      rev-list: remove stringed output flag from "show_bisect_vars"
      rev-parse: add --sq-quote to shell quote arguments
      bisect: use "git rev-parse --sq-quote" instead of a custom "sq" function
      am: simplify "sq" function by using "git rev-parse --sq-quote"
      bisect: use "sha1_array" to store skipped revisions
      bisect: implement "rev_argv_push" to fill an argv with revs
      bisect: store good revisions in a "sha1_array"
      bisect: use new "struct argv_array" to prepare argv for "setup_revisions"
      bisect: remove too much function nesting
      bisect: make skipped array functions more generic
      bisect: automatically sort sha1_array if needed when looking it up
      bisect: implement the "check_merge_bases" function
      bisect: add "check_good_are_ancestors_of_bad" function
      bisect: make "git bisect" use new "--next-all" bisect-helper function
      bisect: rework some rev related functions to make them more reusable
      commit: add function to unparse a commit and its parents
      bisect: check ancestors without forking a "git rev-list" process
      bisect: drop unparse_commit() and use clear_commit_marks()
      bisect: display first bad commit without forking a new process
      bisect: add parameters to "filter_skipped"
      bisect: when skipping, choose a commit away from a skipped commit
      t6030: test skipping away from an already skipped commit
      bisect: use a PRNG with a bias when skipping away from untestable commits
      Documentation: remove warning saying that "git bisect skip" may slow bisection

Christian Stimming (1):
      gitk: Update German translation.

Clemens Buchacher (5):
      http-push: reuse existing is_null_ref
      match_refs: search ref list tail internally
      test-lib: fail if invalid options are passed
      test-lib: allow exit trap to be used for cleanup by tests
      test-lib: fix http exit codes

Dan McGee (1):
      Unify signedness in hashing calls

Daniel Trstenjak (1):
      Show presence of stashed changes in bash prompt.

David Aguilar (5):
      mergetool--lib: specialize diff options for emerge and ecmerge
      mergetool--lib: add support for araxis merge
      compat: add a mkstemps() compatibility function
      compat: add a basename() compatibility function
      diff: generate pretty filenames in prep_temp_blob()

Dirk Süsserott (1):
      gitk: Add option 'Simple history' to the options menu

Edward Z. Yang (1):
      connect.c: Support PuTTY plink and TortoisePlink as SSH on Windows

Elijah Newren (1):
      gitk: Make more options easily accessible from Edit View dialog

Eric W. Biederman (1):
      git-send-email: Handle quotes when parsing .mailrc files

Eric Wong (4):
      git-svn: refuse to dcommit non-UTF-8 messages
      git-svn: convert globs to regexps for branch destinations
      t9138: remove stray dot in test which broke bash
      Allow the Unix epoch to be a valid commit date

Eygene Ryabinkin (1):
      git-svn testsuite: use standard configuration for Subversion tools

Felipe Contreras (2):
      Change prettify_ref to prettify_refname
      Prettify log decorations even more

Frank Lichtenheld (2):
      Git.pm: Set GIT_WORK_TREE if we set GIT_DIR
      Git.pm: Always set Repository to absolute path if autodetecting

Giuseppe Bilotta (11):
      git-am foreign patch support: introduce patch_format
      git-am foreign patch support: autodetect some patch formats
      git-am foreign patch support: StGIT support
      git-am: refactor 'cleaning up and aborting'
      gitweb: refactor author name insertion
      gitweb: uniform author info for commit and commitdiff
      gitweb: use git_print_authorship_rows in 'tag' view too
      gitweb: (gr)avatar support
      gitweb: gravatar url cache
      gitweb: picon avatar provider
      gitweb: add empty alt text to avatar img

Heiko Voigt (2):
      Extend sample update hook, disable modifying of existing tags
      Extend sample pre-commit hook to check for non ascii filenames

Hunter, D. Seth (1):
      http-push: fix xml_entities() string parsing overrun

Jakub Narębski (10):
      gitweb: Remove function prototypes (cleanup)
      gitweb: Do not use bareword filehandles
      gitweb: Always use three argument form of open
      gitweb: Always use three argument form of open
      gitweb: Use block form of map/grep in a few cases more
      gitweb: Replace wrongly added tabs with spaces
      gitweb: Use capturing parentheses only when you intend to capture
      gitweb: Simplify snapshot format detection logic in evaluate_path_info
      gitweb: Remove unused $hash_base parameter from normalize_link_target
      gitweb: Sanitize title attribute in format_subject_html

Jeff King (7):
      parseopt: add OPT_NEGBIT
      convert bare readlink to strbuf_readlink
      git-add: no need for -f when resolving a conflict in already tracked path
      Makefile: refactor regex compat support
      Makefile: use compat regex on Solaris
      log-tree: fix confusing comment
      Makefile: install 'git' in execdir

Jim Meyering (2):
      post-receive-email: hooks.showrev: show how to include both web link and patch
      avoid NULL dereference on failed malloc

Johan Herland (2):
      Rename submodule.<name>.rebase to submodule.<name>.update
      git-submodule: add support for --merge.

Johannes Schindelin (12):
      git-add: introduce --edit (to edit the diff vs. the index)
      t3702: fix reliance on SHELL_PATH being '/bin/sh'
      MinGW: the path separator to split GITPERLLIB is ';' on Win32
      MinGW: use POSIX signature of waitpid()
      MinGW: Add a simple getpass()
      MinGW: Fix compiler warning in merge-recursive
      MinGW: GCC >= 4 does not need SNPRINTF_SIZE_CORR anymore
      Quiet make: do not leave Windows behind
      Work around a regression in Windows 7, causing erase_in_line() to crash sometimes
      test-chmtime: work around Windows limitation
      MinGW: fix warning about implicit declaration of _getch()
      Fix warnings in nedmalloc when compiling with GCC 4.4.0

Johannes Sixt (10):
      gitk: Use --textconv to generate diff text
      Simplify some instances of run_command() by using run_command_v_opt().
      Simplify some 'fprintf(stderr); return -1;' by using 'return error()'
      Fix typo in nedmalloc warning fix
      compat/ has subdirectories: do not omit them in 'make clean'
      daemon: send stderr of service programs to the syslog
      upload-pack: squelch progress indicator if client cannot see it
      receive-pack: do not send error details to the client
      git-mv: fix directory separator treatment on Windows
      MinGW: truncate exit()'s argument to lowest 8 bits

Josh Micich (3):
      mktree --missing: updated usage message and man page
      mktree --batch: build more than one tree object
      mktree: validate entry type in input

Junio C Hamano (22):
      Start 1.6.4 development
      build-in git-mktree
      mktree: use parse-options
      builtin-mktree.c: use a helper function to handle one line of input
      mktree: do not barf on a submodule commit
      t1010: add mktree test
      mktree --missing: allow missing objects
      t3900: ISO-2022-JP has more than one popular variants
      write-tree --ignore-cache-tree
      Teach Solaris that _XOPEN_SOURCE=600 really menas XPG6
      OpenSolaris 200811 (SunOS 5.11) does not want OLD_ICONV
      cache-tree.c::cache_tree_find(): simplify internal API
      t4007: modernize the style
      Optimize "diff-index --cached" using cache-tree
      Avoid "diff-index --cached" optimization under --find-copies-harder
      Update draft release notes to 1.6.4
      completion: fix PS1 display during an AM on detached HEAD
      Documentation/git.txt: update links to release notes
      Makefile: introduce SANE_TOOL_PATH for prepending required elements to PATH
      Makefile: test-parse-options depends on parse-options.h
      Makefile: insert SANE_TOOL_PATH to PATH before /bin or /usr/bin
      die_errno(): double % in strerror() output just in case

Kjetil Barvik (1):
      symlinks.c: small style cleanup

Larry D'Anna (1):
      add --porcelain option to git-push

Linus Torvalds (3):
      Clean up and simplify rev_compare_tree()
      Fix various sparse warnings in the git source code
      git log: add '--merges' flag to match '--no-merges'

Marc Branchaud (3):
      git svn: Support multiple branch and tag paths in the svn repository.
      git svn: cleanup t9138-multiple-branches
      git svn: Doc update for multiple branch and tag paths

Marius Storm-Olsen (2):
      MinGW readdir reimplementation to support d_type
      Add custom memory allocator to MinGW and MacOS builds

Mark Lodato (3):
      git-svn: add --authors-prog option
      http.c: prompt for SSL client certificate password
      http.c: add http.sslCertPasswordProtected option

Markus Heidelberg (10):
      show-branch: color the commit status signs
      bash completion: show-branch color support
      diff: do not color --stat output like patch context
      gitk: Allow diff view without context lines
      add a test for git-send-email for non-threaded mails
      send-email: fix non-threaded mails
      doc/send-email: clarify the behavior of --in-reply-to with --no-thread
      add a test for git-send-email for threaded mails without chain-reply-to
      send-email: fix threaded mails without chain-reply-to
      send-email: fix a typo in a comment

Martin Renold (1):
      Remove filename from conflict markers

Michael J Gruber (9):
      Documentation: clarify / requirement in 'git check-ref-format'
      Test tracking of non-commit upstreams
      Fix behavior with non-commit upstream references
      Allow push and fetch urls to be different
      t5516: Check pushurl config setting
      technical/api-remote: Describe new struct remote member pushurl
      git-repack.txt: Clarify implications of -a for dumb protocols
      builtin-remote: Show push urls as well
      builtin-remote: Make "remote -v" display push urls

Michael S. Tsirkin (1):
      Add --reference option to git submodule.

Michael Witten (6):
      Docs: send-email: Put options back into alphabetical order
      Docs: send-email: Refer to CONFIGURATION section for sendemail.multiedit
      Docs: send-email: --smtp-server-port can take symbolic ports
      send-email: Handle "GIT:" rather than "GIT: " during --compose
      send-email: 'References:' should only reference what is sent
      send-email: Remove superfluous `my $editor = ...'

Michal Marek (1):
      apply: handle filenames with double slashes better

Michele Ballabio (1):
      gitk: Add another string to translation

Mike Hommey (7):
      Don't expect verify_pack() callers to set pack_size
      transport.c::get_refs_via_curl(): do not leak refs_url
      http.c: new functions for the http API
      transport.c::get_refs_via_curl(): use the new http API
      http.c::http_fetch_ref(): use the new http API
      http-push.c::remote_exists(): use the new http API
      http-push.c::fetch_symref(): use the new http API

Nguyễn Thái Ngọc Duy (3):
      doc/git-rebase.txt: remove mention of multiple strategies
      Terminate argv with NULL before calling setup_revisions()
      t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to C

Nick Edelen (1):
      diff-tree -r -t: include added/removed directories in the output

Nick Stokoe (3):
      git-cvsexportcommit can't commit files which have been removed from CVS
      Remove archaic use of regex capture \1 in favour of $1
      Avoid generating a warning if $fullname{$file} is undefined

Paolo Bonzini (1):
      Test cccmd in t9001-send-email.sh and fix some bugs

Pat Thoyts (2):
      gitk: Handle msysGit version during version comparisons
      git: browsing paths with spaces when using the start command

Paul Mackerras (1):
      gitk: Check git version before using --textconv flag

Peter Harris (1):
      MinGW: Scan for \r in addition to \n when reading shbang lines

Peter Hutterer (1):
      git-submodule: add support for --rebase.

Pierre Habouzit (1):
      parse-options: add parse_options_check to validate option specs.

Ralf Wildenhues (1):
      configure: test whether -lresolv is needed

René Scharfe (13):
      parseopt: add OPT_NEGBIT
      parseopt: add OPT_NUMBER_CALLBACK
      parseopt: add PARSE_OPT_NODASH
      grep: remove global variable builtin_grep
      grep: use parseopt
      grep: make callback functions static
      userdiff: add xdiff_clear_find_func()
      grep: move context hunk mark handling into show_line()
      grep: print context hunk marks between files
      grep: handle pre context lines on demand
      grep: add option -p/--show-function
      grep -p: support user defined regular expressions
      grep: simplify -p output

Robin Rosenberg (1):
      Disallow '\' in ref names

SZEDER Gábor (3):
      bash: remove always true if statement from __git_ps1()
      Documentation: mention 'git stash pop --index' option explicitly
      bash: add support for 'git stash pop --index' option

Santi Béjar (3):
      parse-remote: function to get the tracking branch to be merge
      parse-remote: support default reflist in get_remote_merge_branch
      parse-remote: remove unused functions

Sitaram Chamarty (1):
      allow -t abbreviation for --track in git branch

Steffen Prohaska (1):
      MinGW: Teach Makefile to detect msysgit and apply specific settings

Stephen Boyd (22):
      bash completion: complete variable names for "git config" with options
      format-patch: migrate to parse-options API
      parse-options: add PARSE_OPT_LITERAL_ARGHELP for complicated argh's
      show-branch: migrate to parse-options API
      parse-opts: prepare for OPT_FILENAME
      parse-opts: add OPT_FILENAME and transition builtins
      t5500: Modernize test style
      t9120: don't expect failure with SVN_HTTPD_PORT unset
      config.txt: document add.ignore-errors
      git-show-branch.txt: document --date-order option
      parse-options: make OPT_INTEGER's argh explicit
      parse-options: simplify usage argh handling
      show-branch: don't use LASTARG_DEFAULT with OPTARG
      t4150: test applying with a newline in subject
      am: suppress apply errors when using 3-way
      git-sh-setup: introduce say() for quiet options
      submodule, repack: migrate to git-sh-setup's say()
      am, rebase: teach quiet option
      stash: teach quiet option
      show-ref: migrate to parse-options
      completion: add missing config variables
      completion: __git_config_get_set_variables() handle values with spaces

Tay Ray Chuan (15):
      t5540-http-push: test fetching of loose objects
      t5540-http-push: test fetching of packed objects
      http-push: send out fetch requests on queue
      http-push: fix missing "#ifdef USE_CURL_MULTI" around "is_running_queue"
      t5550-http-fetch: test fetching of packed objects
      http-push, http-walker: style fixes
      http-walker: verify remote packs
      http*: copy string returned by sha1_to_hex
      http-push: do not SEGV after fetching a bad pack idx file
      http*: move common variables and macros to http.[ch]
      http: create function end_url_with_slash
      http*: add http_get_info_packs
      http: use new http API in fetch_index()
      http*: add helper methods for fetching packs
      http*: add helper methods for fetching objects (loose)

Thomas Rast (5):
      Documentation: teach stash/pop workflow instead of stash/apply
      git-svn: let 'dcommit $rev' work on $rev instead of HEAD
      Introduce die_errno() that appends strerror(errno) to die()
      Convert existing die(..., strerror(errno)) to die_errno()
      Use die_errno() instead of die() when checking syscalls

Todd Zullinger (1):
      completion: Add --full-diff to log options

Trent Piepho (1):
      send-email: Add config option for sender address

Ulrich Dangel (1):
      git-svn: Canonicalize svn urls to prevent libsvn assertion

Uwe Kleine-König (2):
      more tests for git rev-parse --parse-opt
      parse-opt: make PARSE_OPT_STOP_AT_NON_OPTION available to git rev-parse

Yann Dirson (4):
      git-svn.txt: stop using dash-form of commands.
      git-svn.txt: make formatting more consistent.
      git-svn.txt: fix fetch flags incorrectly documented as init flags.
      git-svn.txt: fix description of fetch flags accepted by clone.


Version v1.6.3.4; changes since v1.6.3.3:
-----------------------------------------

Brandon Casey (2):
      refs.c: release file descriptor on error return
      sha1_name.c: avoid unnecessary strbuf_release

Chris Frey (1):
      git-remote: fix missing .uploadpack usage for show command

Clemens Buchacher (1):
      fetch: do not create ref from empty name

Giuseppe Bilotta (1):
      gitweb/README: fix AliasMatch in example

Johannes Sixt (2):
      t3700-add: add a POSIXPERM prerequisite to a new test
      Makefile: git.o depends on library headers

Junio C Hamano (9):
      request-pull: really disable pager
      checkout -f: deal with a D/F conflict entry correctly
      combine-diff.c: fix performance problem when folding common deleted lines
      diff --cc: a lost line at the beginning of the file is shown incorrectly
      do_one_ref(): null_sha1 check is not about broken ref
      SunOS grep does not understand -C<n> nor -e
      Fix severe breakage in "git-apply --whitespace=fix"
      t8005: Nobody writes Russian in shift_jis
      GIT 1.6.3.4

Linus Torvalds (3):
      git branch: fix performance problem
      git branch: avoid unnecessary object lookups
      git branch: clean up detached branch handling

Matthias Andree (1):
      Fix export_marks() error handling.

Michal Marek (1):
      request-pull: really really disable pager

Miklos Vajna (1):
      git-submodule documentation: fix foreach example

René Scharfe (1):
      attr: plug minor memory leak

Roel Kluin (1):
      fread does not return negative on error

SZEDER Gábor (1):
      Trailing whitespace and no newline fix

Sitaram Chamarty (1):
      Documentation: update description of shell aliases

Stephen Boyd (2):
      add: allow configurations to be overriden by command line
      config.txt: document add.ignore-errors

Thadeu Lima de Souza Cascardo (1):
      Makes some cleanup/review in gittutorial

Thomas Rast (2):
      Test git archive --remote
      Test grep --and/--or/--not

Tom Grennan (1):
      request-pull: allow ls-remote to notice remote.$nickname.uploadpack


Version v1.6.3.3; changes since v1.6.3.2:
-----------------------------------------

Anders Kaseorg (1):
      for-each-ref: Do not lookup objects when they will not be used

Clemens Buchacher (1):
      refuse to merge during a merge

Jim Meyering (1):
      use xstrdup, not strdup in ll-merge.c

Johannes Schindelin (1):
      import-tars: support symlinks

Johannes Sixt (2):
      fetch-pack: close output channel after sideband demultiplexer terminates
      diff.c: plug a memory leak in an error path

Junio C Hamano (3):
      t3505: fix abuse of test_expect_code
      attribute: whitespace set to true detects all errors known to git
      GIT 1.6.3.3

Linus Torvalds (1):
      Fix big left-shifts of unsigned char

Marco Nelissen (1):
      fix handling of iconv configuration options

Mark Lodato (1):
      http.c: fix compiling with libcurl 7.9.2

Michael J Gruber (1):
      builtin-remote: Make "remote show" display all urls

Miklos Vajna (1):
      git-svn documentation: fix typo in 'rebase vs. pull/merge' section

Nanako Shiraishi (1):
      .gitattributes: CR at the end of the line is an error

Paolo Bonzini (2):
      Documentation: git-send-mail can take rev-list arg to drive format-patch
      avoid exponential regex match for java and objc function names

René Scharfe (1):
      upload-archive: fix infinite loop on Cygwin

Shawn O. Pearce (1):
      daemon: Strictly parse the "extra arg" part of the command

Stephen Boyd (3):
      git-rerere.txt: grammatical fixups and cleanups
      pull, rebase: simplify to use die()
      git-show-ref.txt: remove word and make consistent

Tay Ray Chuan (1):
      http*: cleanup slot->local after fclose

Thomas Rast (1):
      Documentation: refer to gitworkflows(7) from tutorial and git(1)

Uwe Kleine-König (1):
      rebase--interactive: remote stray closing parenthesis


Version v1.6.3.2; changes since v1.6.3.1:
-----------------------------------------

Alex Riesen (7):
      Introduce an unlink(2) wrapper which gives warning if unlink failed
      replace direct calls to unlink(2) with unlink_or_warn
      print unlink(2) errno in copy_or_link_directory
      Clarify kind of conflict in merge-one-file helper
      ls-tree manpage: use "unless" instead of "when ... is not"
      ls-tree manpage: output of ls-tree is compatible with update-index
      http-push.c::remove_locks(): fix use after free

Charles Bailey (2):
      t6023: merge-file fails to output anything for a degenerate merge
      Change xdl_merge to generate output even for null merges

Clemens Buchacher (1):
      fix segfault showing an empty remote

Dan McGee (1):
      Fix type-punning issues

Daniel Cordero (1):
      builtin-checkout: Don't tell user that HEAD has moved before it has

Dave Olszewski (1):
      merge-recursive: never leave index unmerged while recursing

Giuseppe Bilotta (1):
      completion: use git rev-parse to detect bare repos

Jeff King (6):
      fix GIT_TRACE segfault with shell-quoted aliases
      add: don't complain when adding empty project root
      for-each-ref: fix segfault in copy_email
      lock_ref: inform callers of unavailable ref
      fetch: report ref storage DF errors more accurately
      fix cat-file usage message and documentation

Jim Meyering (2):
      format-patch let -k override a config-specified format.numbered
      pre-commit.sample: don't print incidental SHA1

Johannes Schindelin (2):
      Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile
      Cope better with a _lot_ of packs

Johannes Sixt (1):
      t3701: ensure correctly set up repository after skipped tests

Junio C Hamano (8):
      Revert "git-add--interactive: remove hunk coalescing"
      completion: fix PS1 display during a merge on detached HEAD
      completion: simplify "current branch" in __git_ps1()
      completion: enhance "current branch" display
      Prepare for 1.6.3.2
      Update draft release notes for 1.6.3.2
      blame: correctly handle a path that used to be a directory
      GIT 1.6.3.2

Linus Torvalds (3):
      Avoid unnecessary 'lstat()' calls in 'get_stat_data()'
      Teach 'git checkout' to preload the index contents
      dir.c: clean up handling of 'path' parameter in read_directory_recursive()

Matt Graham (1):
      Splitting a hunk that adds a line at the top fails in "add -p"

Michael J Gruber (1):
      merge-options.txt: Clarify merge --squash

Nanako Shiraishi (1):
      test: checkout shouldn't say that HEAD has moved if it didn't

Nicolas Pitre (1):
      allow OFS_DELTA objects during a push

René Scharfe (4):
      grep: fix word-regexp colouring
      grep: fix word-regexp at the beginning of lines
      grep: fix colouring of matches with zero length
      grep: fix empty word-regexp matches

Stephen Boyd (6):
      api-parse-options.txt: use 'func' instead of 'funct'
      tests: Add tests for missing format-patch long options
      completion: add missing options to show-branch and show
      show-branch: Fix die message in parse_reflog_param()
      commit: -F overrides -t
      apply, fmt-merge-msg: use relative filenames

Thomas Rast (2):
      Documentation: teach stash/pop workflow instead of stash/apply
      add -i: do not dump patch during application

Tony Kemp (1):
      Turn on USE_ST_TIMESPEC for OpenBSD


Version v1.6.3.1; changes since v1.6.3:
---------------------------------------

Alex Riesen (1):
      Clarify kind of conflict in merge-one-file helper

Alexander Potashev (1):
      Documentation: cloning to empty directory is allowed

Felipe Contreras (1):
      git config: clarify --add and --get-color

Junio C Hamano (4):
      Start 1.6.3.1 maintenance series.
      archive-tar.c: squelch a type mismatch warning
      Revert "checkout branch: prime cache-tree fully"
      GIT 1.6.3.1


Version v1.6.3; changes since v1.6.3-rc4:
-----------------------------------------

Alex Riesen (1):
      improve error message in config.c

Allan Caffee (1):
      dir.c: Fix two minor grammatical errors in comments

Bernd Ahlers (1):
      Work around BSD whose typeof(tv.tv_sec) != time_t

Brandon Casey (7):
      t4018-diff-funcname: add cpp xfuncname pattern to syntax test
      t8005: use egrep when extended regular expressions are required
      t4118: add missing '&&'
      t4118: avoid sed invocation on file without terminating newline
      t/annotate-tests.sh: avoid passing a non-newline terminated file to sed
      t4200: remove two unnecessary lines
      t4200: convert sed expression which operates on non-text file to perl

Junio C Hamano (4):
      GIT 1.6.1.4
      GIT 1.6.2.5
      git-clean doc: the command only affects paths under $(cwd)
      GIT 1.6.3

Nguyễn Thái Ngọc Duy (1):
      t4029: use sh instead of bash

Nicolas Pitre (1):
      honor repack.usedeltabaseoffset when fetching packs

Robin H. Johnson (1):
      git-svn: fix a sloppy Getopt::Long usage

Stephen Boyd (8):
      completion: add missing configuration variables to _git_config()
      completion: add {gui,diff,merge}tool, man, and pager config variables
      completion: complete values for help.format
      completion: complete values for log.date
      completion: complete values for send-email
      git-am.txt: add an 'a', say what 'it' is, simplify a sentence
      git-am.txt: Use date or value instead of time or timestamp
      git-am.txt: reword extra headers in message body


Version v1.6.3-rc4; changes since v1.6.3-rc3:
---------------------------------------------

Alex Riesen (3):
      git-gui: Update Russian translation
      improve error message in config.c
      gitk: Add Russian translation

Alexander Gavrilov (3):
      git-gui: Fix post-commit status with subject in non-locale encoding
      git-gui: Avoid an infinite rescan loop in handle_empty_diff.
      git-gui: Support more git version notations.

Allan Caffee (2):
      builtin-merge: fix a typo in an error message
      Documentation: fix a grammatical error in api-builtin.txt

Benjamin Kramer (1):
      daemon.c: fix segfault on OS X

Christian Stimming (1):
      gitk: Mark forgotten string for translation

Daniel A. Steffen (2):
      gitk: Fixes for Mac OS X TkAqua
      git-gui: Fixes for Mac OS X TkAqua

Eric Blake (2):
      Makefile: installing git in cygwin 1.7.0
      doc: consistently use ASCIIDOC_EXTRA

Felipe Contreras (2):
      git config: error when editing a repo config and not being in one
      Fix a bunch of pointer declarations (codestyle)

Ferry Huberts (1):
      git-gui: Ensure consistent usage of mergetool.keepBackup

Giuseppe Bilotta (1):
      gitk: Provide a window icon if possible

Jeff King (1):
      Makefile: fix NO_PERL bug with gitweb

Jens Lehmann (4):
      git-gui: Fix merge conflict display error when filename contains spaces
      git-gui: When calling post-commit hook wrong variable was cleared.
      git-gui: run post-checkout hook on checkout
      git-gui: run post-checkout hook after clone

Joerg Bornemann (1):
      git-gui: fix use of undeclared variable diff_empty_count

Johannes Schindelin (2):
      t5701: do not get stuck in empty-push/
      Rename core.unreliableHardlinks to core.createObject

Johannes Sixt (1):
      prune-packed: advanced progress even for non-existing fan-out directories

Junio C Hamano (3):
      diff -c -p: do not die on submodules
      merge-recursive: do not die on a conflicting submodule
      GIT 1.6.3-rc4

Linus Torvalds (1):
      grep: fix segfault when "git grep '('" is given

Mark Drago (1):
      Add semicolon to curly brace group in main Makefile

Markus Heidelberg (5):
      git-gui: don't hide the Browse button when resizing the repo chooser
      git-gui: fix deleting from the context menu with empty selection
      git-gui: use `git --html-path` to get the location of installed HTML docs
      git-gui (Win): make "Explore Working Copy" more robust
      git-gui (Win): make starting via "Git GUI Here" on .git/ possible

Michele Ballabio (2):
      gitk: Mark some more strings for translation
      gitk: Map KP_Divide to focus the search box

Pat Thoyts (4):
      gitk: Handle blobs containing a DOS end-of-file marker
      gitk: Remember and restore the window state with the geometry
      gitk: Handle external diff tool with spaces in the path
      gitk: Avoid crash if closed while reading references

Patrick Welche (1):
      NetBSD compilation fix

Paul Mackerras (4):
      gitk: Add a way to mark a commit, plus a "find descendant" command
      gitk: Add a command to compare two strings of commits
      gitk: Make .gitk a hidden file under windows
      gitk: Fix compare-commits function when we have local changes

Phil Lawrence (1):
      Append ampersand to "Target" of lnk files created by do_cygwin_shortcut

René Scharfe (1):
      ctype.c: fix typo in comment

Sam Hocevar (2):
      git-gui: various French translation fixes
      git-gui: minor spelling fix and string factorisation.

Sam Vilain (1):
      SubmittingPatches: itemize and reflect upon well written changes

Stephen Boyd (1):
      gitk: Provide a 32x32 window icon based on the git logo

Uwe Kleine-König (1):
      parseopt: fix documentation for --keep-dashdash


Version v1.6.3-rc3; changes since v1.6.3-rc2:
---------------------------------------------

Benjamin Kramer (1):
      connect: replace inet_ntop with getnameinfo

Brandon Casey (2):
      t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
      t7700-repack: repack -a now works properly, expect success from test

Johannes Schindelin (1):
      Add an option not to use link(src, dest) && unlink(src) when that is unreliable

Linus Torvalds (1):
      t4202: fix typo

Nicolas Pitre (1):
      progress bar: round to the nearest instead of truncating down

Sitaram Chamarty (1):
      Remove obsolete bug warning in man git-update-server-info

Wesley J. Landaker (2):
      Documentation: git-clean: fix minor grammatical errors
      Documentation: git-clean: make description more readable


Version v1.6.3-rc2; changes since v1.6.3-rc1:
---------------------------------------------

Alex Riesen (2):
      Wait for git diff to finish in git difftool
      Explain seemingly pointless use of system in difftool

Allan Caffee (3):
      t4202-log: extend test coverage of graphing
      graph API: fix extra space during pre_commit_line state
      graph API: fix a bug in the rendering of octopus merges

Ben Jackson (1):
      Work around ash "alternate value" expansion bug

Bill Pemberton (1):
      Add parsing of elm aliases to git-send-email

Dan Loewenherz (1):
      Convert to use quiet option when available

Erik Faye-Lund (4):
      test-suite: adding a test for fast-export with tag variants
      builtin-fast-export.c: turn error into warning
      builtin-fast-export.c: fix crash on tagged trees
      builtin-fast-export.c: handle nested tags

Frank Lichtenheld (1):
      gitcvs-migration: Link to git-cvsimport documentation

Holger Weiß (1):
      gitweb: Fix snapshots requested via PATH_INFO

Jeff King (2):
      add-interactive: refactor mode hunk handling
      t7800: respect NO_PERL

Johan Herland (1):
      Update docs on behaviour of 'core.sharedRepository' and 'git init --shared'

Johannes Schindelin (1):
      Fix off-by-one in read_tree_recursive

Johannes Sixt (4):
      Windows: Work around intermittent failures in mingw_rename
      Windows: Skip fstat/lstat optimization in write_entry()
      builtin-help: silently tolerate unknown keys
      remote.c: do not trigger remote.<name>.<var> codepath for two-level names

Junio C Hamano (9):
      Speed up reflog pruning of unreachable commits
      GIT 1.6.2.4
      read-tree A B: do not corrupt cache-tree
      Move prime_cache_tree() to cache-tree.c
      read-tree -m A B: prime cache-tree from the switched-to tree
      checkout branch: prime cache-tree fully
      Revert "stat_tracking_info(): only count real commits"
      Makefile: ignore perl/ subdirectory under NO_PERL
      GIT 1.6.3-rc2

Linus Torvalds (1):
      Clean up reflog unreachability pruning decision

Markus Heidelberg (1):
      grep: don't support "grep.color"-like config options

Matthieu Moy (3):
      git add -p: new "quit" command at the prompt.
      Update git-add.txt according to the new possibilities of 'git add -p'.
      clone: add test for push on an empty clone.

Michael J Gruber (2):
      test-lib.sh: Help test_create_repo() find the templates dir
      Fix more typos/spelling in comments

Michał Kiedrowicz (3):
      tests: test applying criss-cross rename patch
      builtin-apply: keep information about files to be deleted
      tests: make test-apply-criss-cross-rename more robust

Mike Ralphson (3):
      builtin-remote: fix typo in option description
      Documentation: fix typos / spelling mistakes
      Fix typos / spelling in comments

Nguyễn Thái Ngọc Duy (1):
      Makefile: remove {fetch,send}-pack from PROGRAMS as they are builtins

Stephen Boyd (8):
      test-genrandom: Add newline to usage string
      config.txt: add missing format.{subjectprefix,cc,attach} variables
      Documentation: use lowercase for shallow and deep threading
      git-show-branch.txt: cleanup example description
      git-format-patch.txt: general rewordings and cleanups
      config.txt: add missing 'the's and make words plural
      config.txt: clarify sentences in the configuration and syntax sections
      config.txt: Make configuration paragraph more consistent

Wesley J. Landaker (2):
      Documentation: git-svn: fix spurious bolding that mangles the output
      Documentation: git-svn: fix a grammatical error without awkwardness

Wincent Colaiuta (1):
      git add -p: add missing "q" to patch prompt


Version v1.6.3-rc1; changes since v1.6.3-rc0:
---------------------------------------------

Allan Caffee (1):
      graph API: Added logic for colored edges

Bert Wesarg (3):
      shorten_unambiguous_ref(): add strict mode
      for-each-ref: utilize core.warnAmbiguousRefs for :short-format
      rev-parse: --abbrev-ref option to shorten ref name

David Aguilar (11):
      difftool: remove merge options for opendiff, tkdiff, kdiff3 and xxdiff
      difftool: remove the backup file feature
      difftool: use perl built-ins when testing for msys
      difftool: add a -y shortcut for --no-prompt
      difftool: move 'git-difftool' out of contrib
      difftool: add various git-difftool tests
      difftool: add support for a difftool.prompt config variable
      bash completion: add git-difftool
      mergetool: use $( ... ) instead of `backticks`
      difftool/mergetool: refactor commands to use git-mergetool--lib
      mergetool--lib: simplify API usage by removing more global variables

Erik Broes (1):
      git-shell: Add 'git-upload-archive' to allowed commands.

Ferry Huberts (1):
      Fix misspelled mergetool.keepBackup

Frank Lichtenheld (1):
      init: Do not segfault on big GIT_TEMPLATE_DIR environment variable

Jeff King (7):
      doc: clarify --no-track option
      doc: refer to tracking configuration as "upstream"
      doc/checkout: refer to git-branch(1) as appropriate
      doc/checkout: split checkout and branch creation in synopsis
      docs/checkout: clarify what "non-branch" means
      add-interactive: refactor mode hunk handling
      doc/gitattributes: clarify location of config text

Johannes Sixt (1):
      t1301-shared-repo: fix forced modes test

Junio C Hamano (4):
      gitignore git-bisect--helper
      unpack-trees: do not muck with attributes when we are not checking out
      Describe fixes since 1.6.2.3
      Update draft release notes to 1.6.3

Linus Torvalds (3):
      Allow users to un-configure rename detection
      process_{tree,blob}: show objects without buffering
      show_object(): push path_name() call further down

Markus Heidelberg (5):
      doc/merge-config: list ecmerge as a built-in merge tool
      git-mergetool/difftool: make (g)vimdiff workable under Windows
      git-mergetool: add new merge tool TortoiseMerge
      doc/git-daemon: add missing arguments to options
      doc/git-daemon: add missing arguments to max-connections option

Matthieu Moy (2):
      git add -p: new "quit" command at the prompt.
      Update git-add.txt according to the new possibilities of 'git add -p'.

Michael J Gruber (1):
      remote.c: use shorten_unambiguous_ref

Michał Kiedrowicz (3):
      tests: test applying criss-cross rename patch
      builtin-apply: keep information about files to be deleted
      Documentation: boolean value may be given by on/off

Nanako Shiraishi (1):
      git-am: teach git-am to apply a patch to an unborn branch

Nguyễn Thái Ngọc Duy (3):
      get_local_heads(): do not return random pointer if there is no head
      attr: add GIT_ATTR_INDEX "direction"
      archive: do not read .gitattributes in working directory

Paul Bolle (1):
      imap-send: use correct configuration variable in documentation

Pierre Habouzit (1):
      hook/update: example of how to prevent branch creation

René Scharfe (2):
      archive tests: do not use .gitattributes in working directory
      archive test: attributes

Sebastian Pipping (1):
      difftool/mergetool: add diffuse as merge and diff tool

Thomas Jarosch (1):
      Fix buffer overflow in config parser

Ulrich Windl (1):
      git-apply: fix option description


Version v1.6.3-rc0; changes since v1.6.2.5:
-------------------------------------------

Alex Riesen (4):
      disable post-checkout test on Cygwin
      Produce a nicer output in case of sha1_object_info failures in ls-tree -l
      Microoptimize strbuf_cmp
      Improve error message about fetch into current branch

Ali Gholami Rudi (2):
      builtin-clone.c: make junk_pid static
      builtin-clone.c: no need to strdup for setenv

Amos King (2):
      Do not name "repo" struct "remote" in push_http.c
      http-push.c: use a faux remote to pass to http_init

Arjen Laarhoven (2):
      Clean up use of ANSI color sequences
      builtin-branch.c: Rename branch category color names

Arto Jonsson (1):
      bash completion: add options for 'git fsck'

Ben Jackson (2):
      git-svn: Add per-svn-remote ignore-paths config
      git-svn: Save init/clone --ignore-paths in config

Ben Walton (8):
      configure: ensure settings from user are also usable in the script
      configure: reorganize flow of argument checks
      configure: add macros to stash FLAG variables
      configure: wrap some library tests with GIT_STASH_FLAGS
      configure: asciidoc version test cleanup
      configure: make iconv tests aware of user arguments
      configure: rework pthread handling to allow for user defined flags
      documentation: Makefile accounts for SHELL_PATH setting

Benjamin Kramer (4):
      Remove unused function scope local variables
      Move local variables to narrower scopes
      Remove unused assignments
      Fix various dead stores found by the clang static analyzer

Björn Steinbrink (1):
      Mailmap: Allow empty email addresses to be mapped

Boris Byk (1):
      git-svn: speed up blame command

Brandon Casey (1):
      builtin-send-pack.c: avoid empty structure initialization

Brian Gernhardt (2):
      Create USE_ST_TIMESPEC and turn it on for Darwin
      Makefile: Set compiler switch for USE_NSEC

Carlos Manuel Duclos Vergara (1):
      git-archive: add --output=<file> to send output to a file

Carlos Rica (1):
      config: test for --replace-all with one argument and fix documentation.

Chris Johnsen (13):
      git-push.txt: describe how to default to pushing only current branch
      Documentation: remove extra quoting/emphasis around literal texts
      Documentation/Makefile: make most operations "quiet"
      Documentation/Makefile: break up texi pipeline
      Documentation: move callouts.xsl to manpage-{base,normal}.xsl
      Documentation: use parametrized manpage-base.xsl with manpage-{1.72,normal}.xsl
      Documentation: rename docbook-xsl-172 attribute to git-asciidoc-no-roff
      Documentation: move quieting params into manpage-base.xsl
      Documentation: move "spurious .sp" code into manpage-base.xsl
      Documentation: asciidoc.conf: always use <literallayout> for [blocktext]
      Documentation: asciidoc.conf: fix verse block with block titles
      Documentation: option to render literal text as bold for manpages
      Documentation: use "spurious .sp" XSLT if DOCBOOK_SUPPRESS_SP is set

Christian Couder (24):
      rev-list: estimate number of bisection step left
      log-tree: fix patch filename computation in "git format-patch"
      quote: implement "sq_dequote_many" to unwrap many args in one string
      quote: add "sq_dequote_to_argv" to put unwrapped args in an argv array
      refs: add "for_each_ref_in" function to refactor "for_each_*_ref" functions
      rev-list: make "bisect_list" variable local to "cmd_rev_list"
      rev-list: move bisect related code into its own file
      rev-list: move code to show bisect vars into its own function
      rev-list: make "show_bisect_vars" non static
      rev-list: pass "revs" to "show_bisect_vars"
      sha1-lookup: add new "sha1_pos" function to efficiently lookup sha1
      patch-ids: use the new generic "sha1_pos" function to lookup sha1
      bisect: improve error message when branch checkout fails
      rev-list: call new "filter_skip" function
      bisect: use the new generic "sha1_pos" function to lookup sha1
      bisect--helper: implement "git bisect--helper"
      bisect: implement "read_bisect_paths" to read paths in "$GIT_DIR/BISECT_NAMES"
      bisect: use "bisect--helper" and remove "filter_skipped" function
      t6030: test bisecting with paths
      rev-list: pass "int flags" as last argument of "show_bisect_vars"
      bisect--helper: string output variables together with "&&"
      list-objects: add "void *data" parameter to show functions
      rev-list: remove last static vars used in "show_commit"
      rev-list: add "int bisect_show_flags" in "struct rev_list_info"

Dan McGee (1):
      Update delta compression message to be less misleading

Daniel Barkalow (8):
      Make clone parse the default refspec with the normal code
      Use a single function to match names against patterns
      Use the matching function to generate the match results
      Keep '*' in pattern refspecs
      Support '*' in the middle of a refspec
      Use a common function to get the pretty name of refs
      Move push matching and reporting logic into transport.c
      Include log_config module in apache.conf

David Aguilar (1):
      contrib/difftool: use a separate config namespace for difftool commands

Deskin Miller (1):
      add -i: revisit hunk on editor failure

Elijah Newren (3):
      git-filter-branch: avoid collisions with variables in eval'ed commands
      Correct missing SP characters in grammar comment at top of fast-import.c
      fast-export: Avoid dropping files from commits

Emil Sit (1):
      config.txt: Describe special 'none' handling in core.gitProxy.

Eric Wong (1):
      git-svn: fix ls-tree usage with dash-prefixed paths

Erik Faye-Lund (5):
      connect.c: remove a few globals by using git_config callback data
      test-suite: adding a test for fast-export with tag variants
      builtin-fast-export.c: turn error into warning
      builtin-fast-export.c: fix crash on tagged trees
      builtin-fast-export.c: handle nested tags

Eugene Letuchy (1):
      Make git blame's date output format configurable, like git log

Felipe Contreras (14):
      config: Add new option to open an editor.
      git config: codestyle cleanups
      git_config(): not having a per-repo config file is not an error
      git config: trivial rename in preparation for parseopt
      git config: reorganize get_color*
      git config: reorganize to use parseopt
      git config: don't allow multiple config file locations
      git config: don't allow multiple variable types
      git config: don't allow extra arguments for -e or -l.
      git config: don't allow --get-color* and variable type
      Add tests for git log --pretty, --format and --oneline.
      user-manual: remove some git-foo usage
      docbook: change css style
      user-manual: the name of the hash function is SHA-1, not sha1

Finn Arne Gangstad (7):
      New config push.default to decide default behavior for push
      Display warning for default git push with no push.default config
      builtin-remote.c: Split out prune_remote as a separate function.
      git remote update: New option --prune
      git remote update: Report error for non-existing groups
      remote: New function remote_is_configured()
      git remote update: Fallback to remote if group does not exist

Giuseppe Bilotta (1):
      import-tars: separate author from committer

Heiko Voigt (3):
      Add warning about known issues to documentation of cvsimport
      Cleanup warning about known issues in cvsimport documentation
      Add configuration variable for sign-off to format-patch

Janos Laube (1):
      MinGW: implement mmap

Jason Merrill (1):
      git-svn: add fetch --parent option

Jay Soffian (30):
      builtin-branch: improve output when displaying remote branches
      move duplicated get_local_heads() to remote.c
      move duplicated ref_newer() to remote.c
      move locate_head() to remote.c
      remote: simplify guess_remote_head()
      remote: make copy_ref() perform a deep copy
      remote: let guess_remote_head() optionally return all matches
      remote: make match_refs() copy src ref before assigning to peer_ref
      remote: make match_refs() not short-circuit
      string-list: new for_each_string_list() function
      builtin-remote: refactor duplicated cleanup code
      builtin-remote: remove unused code in get_ref_states
      builtin-remote: rename variables and eliminate redundant function call
      builtin-remote: make get_remote_ref_states() always populate states.tracked
      builtin-remote: fix two inconsistencies in the output of "show <remote>"
      builtin-remote: teach show to display remote HEAD
      builtin-remote: add set-head subcommand
      builtin-remote: new show output style
      builtin-remote: new show output style for push refspecs
      send-email: add --confirm option and configuration setting
      bash completion: fix completion issues with fetch, pull, and push
      bash completion: refactor --strategy completion
      bash completion: teach fetch, pull, and push to complete their options
      send-email: refactor and ensure prompting doesn't loop forever
      send-email: add tests for refactored prompting
      send-email: don't attempt to prompt if tty is closed
      send-email: ask_default should apply to all emails, not just the first
      send-email: correct two tests which were going interactive
      send-email: ensure quoted addresses are rfc2047 encoded
      send-email: fix nasty bug in ask() function

Jeff King (26):
      valgrind: ignore ldso and more libz errors
      branch: clean up repeated strlen
      add basic branch display tests
      test scripts: refactor start_httpd helper
      add basic http clone/fetch tests
      refactor find_ref_by_name() to accept const list
      remote: make guess_remote_head() use exact HEAD lookup if it is available
      clone: run post-checkout hook when checking out
      improve missing repository error message
      config: set help text for --bool-or-int
      t3000: use test_cmp instead of diff
      ls-files: fix broken --no-empty-directory
      ls-files: require worktree when --deleted is given
      make oneline reflog dates more consistent with multiline format
      remote: improve sorting of "configure for git push" list
      Makefile: turn on USE_ST_TIMESPEC for FreeBSD
      t0060: fix whitespace in "wc -c" invocation
      tests: remove exit after test_done call
      for-each-ref: refactor get_short_ref function
      for-each-ref: refactor refname handling
      for-each-ref: add "upstream" format field
      make get_short_ref a public function
      branch: show upstream branch when double verbose
      Makefile: allow building without perl
      tests: skip perl tests if NO_PERL is defined
      add tests for remote groups

Jens Lehmann (1):
      githooks documentation: post-checkout hook is also called after clone

Jeremy White (2):
      Enable setting attach as the default in .gitconfig for git-format-patch.
      imap.preformattedHTML to tell Thunderbird to send non-flowed text

Johannes Schindelin (23):
      Add valgrind support in test scripts
      Valgrind support: check for more than just programming errors
      test-lib.sh: optionally output to test-results/$TEST.out, too
      t/Makefile: provide a 'valgrind' target
      Add a script to coalesce the valgrind outputs
      Tests: let --valgrind imply --verbose and --tee
      test-lib: avoid assuming that templates/ are in the GIT_EXEC_PATH
      valgrind: do not require valgrind 3.4.0 or newer
      Avoid segfault with 'git branch' when the HEAD is detached
      Turn the flags in struct dir_struct into a single variable
      git config: trivial cleanup for editor action
      rebase -i: avoid 'git reset' when possible
      MinGW: 64-bit file offsets
      Brown paper bag fix for MinGW 64-bit stat
      Add an (optional, since expensive) test for >2gb clones
      MinGW: fix diff --no-index /dev/null ...
      winansi: support ESC [ K (erase in line)
      test: do not LoadModule log_config_module unconditionally
      test-lib: write test results to test-results/<basename>-<pid>
      gc --aggressive: make it really aggressive
      t7300: fix clean up on Windows
      Guard a few Makefile variables against user environments
      git-svn: always initialize with core.autocrlf=false

Johannes Sixt (30):
      recv_sideband: Bands #2 and #3 always go to stderr
      test-suite: Make test script numbers unique
      t9400, t9401: Do not force hard-linked clone
      test suite: Use 'say' to say something instead of 'test_expect_success'
      Call 'say' outside test_expect_success
      test-lib: Replace uses of $(expr ...) by POSIX shell features.
      test-lib: Simplify test counting.
      test-lib: Introduce test_chmod and use it instead of update-index --chmod
      t2200, t7004: Avoid glob pattern that also matches files
      t5300, t5302, t5303: Do not use /dev/zero
      t5602: Work around path mangling on MSYS
      test-lib: Work around incompatible sort and find on Windows
      test-lib: Work around missing sum on Windows
      Tests on Windows: $(pwd) must return Windows-style paths
      t0050: Check whether git init detected symbolic link support correctly
      test-lib: Infrastructure to test and check for prerequisites
      t3600: Use test prerequisite tags
      Skip tests that fail if the executable bit is not handled by the filesystem
      t5302: Use prerequisite tags to skip 64-bit offset tests
      t9100, t9129: Use prerequisite tags for UTF-8 tests
      Use prerequisite tags to skip tests that depend on symbolic links
      t0060: Fix tests on Windows
      Skip tests that require a filesystem that obeys POSIX permissions
      t3700: Skip a test with backslashes in pathspec
      Use prerequisites to skip tests that need unzip
      t7004: Use prerequisite tags to skip tests that need gpg
      t5503: GIT_DEBUG_SEND_PACK is not supported on MinGW
      MinGW: Quote arguments for subprocesses that contain a single-quote
      t7005-editor: Use $SHELL_PATH in the editor scripts
      t7502-commit: Skip SIGTERM test on Windows

John Tapsell (4):
      Modify description file to say what this file is
      Google has renamed the imap folder
      Improve error message for git-filter-branch
      Documentation - More examples for git bisect

Junio C Hamano (29):
      git-blame: refactor code to emit "porcelain format" output
      blame: show "previous" information in --porcelain/--incremental format
      Make git-clone respect branch.autosetuprebase
      Draft release notes: Carry forward the warning for behaviour changes
      Update draft release notes to 1.6.3
      builtin-remote.c: no "commented out" code, please
      Not all systems use st_[cm]tim field for ns resolution file timestamp
      grep: cast printf %.*s "precision" argument explicitly to int
      http.c: style cleanups
      Improve "git branch --tracking" output
      http_init(): Fix config file parsing
      http authentication via prompts
      Update release notes to 1.6.3
      http.c: CURLOPT_NETRC_OPTIONAL is not available in ancient versions of cURL
      Read attributes from the index that is being checked out
      Update draft release notes to 1.6.3
      http tests: Darwin is not that special
      Rename interpret/substitute nth_last_branch functions
      strbuf_branchname(): a wrapper for branch name shorthands
      check-ref-format --branch: give Porcelain a way to grok branch shorthand
      Fix branch -m @{-1} newname
      strbuf_check_branch_ref(): a helper to check a refname for a branch
      check_ref_format(): tighten refname rules
      Update draft release notes to 1.6.3
      Speed up reflog pruning of unreachable commits
      Update draft release notes to 1.6.3
      sha1-lookup: fix up the assertion message
      Update draft release notes to 1.6.3
      GIT 1.6.3-rc0

Keith Cascio (2):
      Use DIFF_XDL_SET/DIFF_OPT_SET instead of raw bit-masking
      Fix neglect of diff_setup()/diff_setup_done() symmetry.

Kevin Ballard (1):
      builtin-push.c: Fix typo: "anythig" -> "anything"

Kevin McConnell (1):
      Add --staged to bash completion for git diff

Kjetil Barvik (18):
      lstat_cache(): small cleanup and optimisation
      lstat_cache(): generalise longest_match_lstat_cache()
      lstat_cache(): swap func(length, string) into func(string, length)
      unlink_entry(): introduce schedule_dir_for_removal()
      create_directories(): remove some memcpy() and strchr() calls
      write_entry(): cleanup of some duplicated code
      write_entry(): use fstat() instead of lstat() when file is open
      show_patch_diff(): remove a call to fstat()
      lstat_cache(): print a warning if doing ping-pong between cache types
      check_updates(): effective removal of cache entries marked CE_REMOVE
      fix compile error when USE_NSEC is defined
      make USE_NSEC work as expected
      verify_uptodate(): add ce_uptodate(ce) test
      write_index(): update index_state->timestamp after flushing to disk
      stat_tracking_info(): only count real commits
      Record ns-timestamps if possible, but do not use it without USE_NSEC
      checkout bugfix: use stat.mtime instead of stat.ctime in two places
      Revert "lstat_cache(): print a warning if doing ping-pong between cache types"

Kristian Amlie (1):
      Add a test for checking whether gitattributes is honored by checkout.

Linus Torvalds (2):
      Clean up reflog unreachability pruning decision
      Allow users to un-configure rename detection

Marius Storm-Olsen (2):
      Add bare repository indicator for __git_ps1
      Fixup: Add bare repository indicator for __git_ps1

Markus Heidelberg (1):
      add --html-path to get the location of installed HTML docs

Martin Storsjö (1):
      Allow curl to rewind the read buffers

Matthieu Moy (2):
      git-send-email.txt: clarify which options take an argument.
      git-rev-list.txt: make ascii markup uniform with other pages.

Michael Hendricks (1):
      format-patch: add arbitrary email headers

Michael J Gruber (6):
      Typo and language fixes for git-checkout.txt
      test-lib.sh: Test for presence of git-init in the right path.
      test-lib.sh: Allow running the test suite against installed git
      git-branch.txt: document -f correctly
      Test for local branches being followed with --track
      Make local branches behave like remote branches when --tracked

Michael Lai (1):
      git-svn: support intermediate paths when matching tags/branches

Michele Ballabio (6):
      apply: consistent spelling of "don't"
      apply: hide unused options from short help
      git log: avoid segfault with --all-match
      document --force-rebase
      rebase: add options passed to git-am
      rebase: fix typo (force_rebas -> force-rebas)

Mike Hommey (1):
      Replace ",<,>,& with their respective XML entities in DAV requests

Miklos Vajna (11):
      parse-opt: migrate builtin-ls-files.
      Tests: use test_cmp instead of diff where possible
      http-push: using error() and warning() as appropriate
      builtin-apply: use warning() instead of fprintf(stderr, "warning: ")
      builtin-checkout: use warning() instead of fprintf(stderr, "warning: ")
      builtin-fetch-pack: use warning() instead of fprintf(stderr, "warning: ")
      builtin-init-db: use warning() instead of fprintf(stderr, "warning: ")
      builtin-rm: use warning() instead of fprintf(stderr, "warning: ")
      builtin-show-branch: use warning() instead of fprintf(stderr, "warning: ")
      builtin-show-ref: use warning() instead of fprintf(stderr, "warning: ")
      refs: use warning() instead of fprintf(stderr, "warning: ")

Nanako Shiraishi (4):
      Add --format that is a synonym to --pretty
      Give short-hands to --pretty=tformat:%formatstring
      Add --oneline that is a synonym to "--pretty=oneline --abbrev-commit"
      Documentation/git.txt: GIT 1.6.2.2 has been out for a while

Nate Case (1):
      format-patch: Respect --quiet option

Nguyễn Thái Ngọc Duy (1):
      grep: prefer builtin over external one when coloring results

Pete Wyckoff (1):
      git-p4: remove tabs from usermap file

Petr Kodl (2):
      MinGW: a helper function that translates Win32 API error codes
      MinGW: a hardlink implementation

Ramsay Jones (1):
      git-instaweb: fix lighttpd configuration on cygwin

René Scharfe (12):
      grep: micro-optimize hit collection for AND nodes
      grep: remove grep_opt argument from match_expr_eval()
      grep: add pmatch and eflags arguments to match_one_pattern()
      grep: color patterns in output
      grep: add support for coloring with external greps
      parseopt: add PARSE_OPT_KEEP_UNKNOWN
      parseopt: add PARSE_OPT_NO_INTERNAL_HELP
      parseopt: make usage optional
      archive: use parseopt for local-only options
      parseopt: document KEEP_ARGV0, KEEP_UNKNOWN, NO_INTERNAL_HELP
      parseopt: prevent KEEP_UNKNOWN and STOP_AT_NON_OPTION from being used together
      pickaxe: count regex matches only once

SZEDER Gábor (1):
      rerere: remove duplicated functions

Santi Béjar (4):
      Documentation: enhance branch.<name>.{remote,merge}
      Documentation: push.default applies to all remotes
      Documentation: branch.*.merge can also affect 'git-push'
      Documentation: Introduce "upstream branch"

Shawn O. Pearce (1):
      Don't permit ref/branch names to end with ".lock"

Simon Arlott (2):
      git-svn: don't output git commits in quiet mode
      git-svn: add a double quiet option to hide git commits

Stephen Boyd (11):
      git-send-email.txt: describe --compose better
      pretty.c: add %f format specifier to format_commit_message()
      format-patch: construct patch filename in one function
      format-patch: pass a commit to reopen_stdout()
      format-patch: move get_patch_filename() into log-tree
      format-patch: --attach/inline uses filename instead of SHA1
      format-patch: --numbered-files and --stdout aren't mutually exclusive
      completion: add --annotate option to send-email
      completion: add --cc and --no-attachment option to format-patch
      completion: add --thread=deep/shallow to format-patch
      format_sanitized_subject: Don't trim past initial length of strbuf

Sverre Rabbelier (1):
      Teach rebase to rebase even if upstream is up to date

Tay Ray Chuan (1):
      http.c: use strbuf API in quote_ref_url

Ted Pavlic (4):
      completion: For consistency, change "git rev-parse" to __gitdir calls
      completion: Use consistent if [...] convention, not "test"
      completion: Better __git_ps1 support when not in working directory
      completion: More fixes to prevent unbound variable errors

Teemu Likonen (1):
      bash completion: add --format= and --oneline options for "git log"

Thomas Rast (13):
      format-patch: threading test reactivation
      Support coverage testing with GCC/gcov
      Test that diff can read from stdin
      Test diff --dirstat functionality
      Test log --graph
      Test fsck a bit harder
      Test log --decorate
      Test rev-list --parents/--children
      Test git-patch-id
      format-patch: track several references
      format-patch: thread as reply to cover letter even with in-reply-to
      format-patch: support deep threading
      Documentation: filter-branch: show --ignore-unmatch in main index-filter example

Todd Zullinger (1):
      bash completion: Update 'git am' options

Tor Arne Vestbø (2):
      git-rebase: Add --stat and --no-stat for producing diffstat on rebase
      git-pull: Allow --stat and --no-stat to be used with --rebase

Wesley J. Landaker (1):
      Documentation: git-svn: fix trunk/fetch svn-remote key typo

Wincent Colaiuta (2):
      Grammar fixes to "merge" and "patch-id" docs
      Grammar fix for "git merge" man page


Version v1.6.2.5; changes since v1.6.2.4:
-----------------------------------------

Allan Caffee (2):
      builtin-merge: fix a typo in an error message
      Documentation: fix a grammatical error in api-builtin.txt

Frank Lichtenheld (1):
      gitcvs-migration: Link to git-cvsimport documentation

Johannes Schindelin (1):
      Fix off-by-one in read_tree_recursive

Junio C Hamano (7):
      read-tree A B: do not corrupt cache-tree
      Move prime_cache_tree() to cache-tree.c
      read-tree -m A B: prime cache-tree from the switched-to tree
      checkout branch: prime cache-tree fully
      diff -c -p: do not die on submodules
      GIT 1.6.1.4
      GIT 1.6.2.5

Linus Torvalds (3):
      process_{tree,blob}: show objects without buffering
      show_object(): push path_name() call further down
      grep: fix segfault when "git grep '('" is given

Michał Kiedrowicz (3):
      tests: test applying criss-cross rename patch
      builtin-apply: keep information about files to be deleted
      tests: make test-apply-criss-cross-rename more robust

Nicolas Pitre (1):
      honor repack.usedeltabaseoffset when fetching packs

Stephen Boyd (1):
      test-genrandom: Add newline to usage string

Wincent Colaiuta (1):
      git add -p: add missing "q" to patch prompt


Version v1.6.2.4; changes since v1.6.2.3:
-----------------------------------------

Björn Steinbrink (1):
      tree_entry_interesting: a pathspec only matches at directory boundary

Clemens Buchacher (3):
      add tests for merging with submodules
      update cache for conflicting submodule entries
      simplify output of conflicting merge

Erik Faye-Lund (4):
      test-suite: adding a test for fast-export with tag variants
      builtin-fast-export.c: turn error into warning
      builtin-fast-export.c: fix crash on tagged trees
      builtin-fast-export.c: handle nested tags

Frank Lichtenheld (1):
      init: Do not segfault on big GIT_TEMPLATE_DIR environment variable

Jeff King (2):
      doc/gitattributes: clarify location of config text
      add-interactive: refactor mode hunk handling

Johan Herland (1):
      Update docs on behaviour of 'core.sharedRepository' and 'git init --shared'

Johannes Schindelin (1):
      Fix 'git checkout <submodule>' to update the index

Johannes Sixt (1):
      t1301-shared-repo: fix forced modes test

Junio C Hamano (4):
      match_tree_entry(): a pathspec only matches at directory boundaries
      Describe fixes since 1.6.2.3
      Speed up reflog pruning of unreachable commits
      GIT 1.6.2.4

Linus Torvalds (1):
      Clean up reflog unreachability pruning decision

Markus Heidelberg (2):
      doc/git-daemon: add missing arguments to options
      doc/git-daemon: add missing arguments to max-connections option

Matthieu Moy (2):
      git add -p: new "quit" command at the prompt.
      Update git-add.txt according to the new possibilities of 'git add -p'.

Nguyễn Thái Ngọc Duy (1):
      Makefile: remove {fetch,send}-pack from PROGRAMS as they are builtins

Paul Bolle (1):
      imap-send: use correct configuration variable in documentation

Thomas Jarosch (1):
      Fix buffer overflow in config parser

Ulrich Windl (1):
      git-apply: fix option description


Version v1.6.2.3; changes since v1.6.2.2:
-----------------------------------------

Björn Steinbrink (1):
      process_{tree,blob}: Remove useless xstrdup calls

Brandon Casey (6):
      t7700-repack: add two new tests demonstrating repacking flaws
      git-repack.sh: don't use --kept-pack-only option to pack-objects
      pack-objects: only repack or loosen objects residing in "local" packs
      Remove --kept-pack-only option and associated infrastructure
      t7700: demonstrate repack flaw which may loosen objects unnecessarily
      pack-objects: don't loosen objects available in alternate or kept packs

Dan McGee (1):
      git-repack: use non-dashed update-server-info

Daniel Cheng (aka SDiZ) (1):
      State the effect of filter-branch on graft explicitly

Jari Aalto (1):
      Change double quotes to single quotes in message

Jason Merrill (1):
      Documentation: clarify .gitattributes search

Jeff King (2):
      t1301: loosen test for forced modes
      commit: abort commit if interactive add failed

Johan Herland (1):
      Move chmod(foo, 0444) into move_temp_to_file()

Julien Danjou (1):
      git submodule: fix usage line

Junio C Hamano (12):
      git-repack: resist stray environment variable
      has_sha1_pack(): refactor "pretend these packs do not exist" interface
      has_sha1_kept_pack(): take "struct rev_info"
      Consolidate ignore_packed logic more
      Simplify is_kept_pack()
      is_kept_pack(): final clean-up
      diff --cached: do not borrow from a work tree when a path is marked as assume-unchanged
      "core.sharedrepository = 0mode" should set, not loosen
      move_temp_to_file(): do not forget to chmod() in "Coda hack" codepath
      set_shared_perm(): sometimes we know what the final mode bits should look like
      Start 1.6.2.3 preparation
      GIT 1.6.2.3

Linus Torvalds (1):
      process_{tree,blob}: Remove useless xstrdup calls

Markus Heidelberg (1):
      doc/git-pack-refs: fix two grammar issues

Matthieu Moy (3):
      git-checkout.txt: fix incorrect statement about HEAD and index
      git-checkout.txt: clarify that <branch> applies when no path is given.
      git-pull.sh: better warning message for "git pull" on detached head.


Version v1.6.2.2; changes since v1.6.2.1:
-----------------------------------------

Allan Caffee (1):
      Documentation: update graph api example.

Brandon Casey (1):
      git-branch: display "was sha1" on branch deletion rather than just "sha1"

Carlo Marcelo Arenas Belon (1):
      documentation: update cvsimport description of "-r" for recent clone

Daniel Barkalow (1):
      Give error when no remote is configured

Daniel Cheng (aka SDiZ) (1):
      Fix bash completion in path with spaces

David Aguilar (1):
      everyday: use the dashless form of git-init

David J. Mellor (12):
      Documentation: minor grammatical fixes in git-archive.txt.
      Documentation: reword the "Description" section of git-bisect.txt.
      Documentation: minor grammatical fixes in git-blame.txt.
      Documentation: minor grammatical fixes in git-branch.txt.
      Documentation: reworded the "Description" section of git-bisect.txt.
      Documentation: reword example text in git-bisect.txt.
      Documentation: remove some uses of the passive voice in git-bisect.txt
      Documentation: minor grammatical fixes and rewording in git-bundle.txt
      Documentation: minor grammatical fixes in git-cat-file.txt
      Documentation: minor grammatical fixes in git-check-attr.txt
      Documentation: minor grammatical fix in git-check-ref-format.txt
      Documentation: Remove spurious uses of "you" in git-bisect.txt.

Emil Sit (1):
      test-lib: Clean up comments and Makefile.

Eric Wong (1):
      git-svn: fix ls-tree usage with dash-prefixed paths

Holger Weiß (1):
      Documentation: Remove an odd "instead"

Jeff King (3):
      doc: clarify how -S works
      ls-files: require worktree when --deleted is given
      fix portability problem with IS_RUN_COMMAND_ERR

Johannes Schindelin (4):
      rsync transport: allow local paths, and fix tests
      Smudge the files fed to external diff and textconv
      import-zips: fix thinko
      mailmap: resurrect lower-casing of email addresses

Johannes Sixt (2):
      Propagate --exec-path setting to external commands via GIT_EXEC_PATH
      diff --no-index: Do not generate patch output if other output is requested

Junio C Hamano (6):
      read-tree A B C: do not create a bogus index and do not segfault
      Remove total confusion from git-fetch and git-push
      blame: read custom grafts given by -S before calling setup_revisions()
      Update draft release notes to 1.6.2.2
      Update draft release notes to 1.6.2.2
      GIT 1.6.2.2

Linus Torvalds (1):
      close_sha1_file(): make it easier to diagnose errors

Michael J Gruber (2):
      git submodule: Add test cases for git submodule add
      git submodule: Fix adding of submodules at paths with ./, .. and //

Nico -telmich- Schottelius (1):
      git-tag(1): add hint about commit messages

Nicolas Pitre (1):
      avoid possible overflow in delta size filtering computation

René Scharfe (3):
      diffcore-pickaxe: use memmem()
      optimize compat/ memmem()
      pickaxe: count regex matches only once

Shawn O. Pearce (1):
      Increase the size of the die/warning buffer to avoid truncation

Stephen Boyd (1):
      format-patch: --numbered-files and --stdout aren't mutually exclusive

Thomas Rast (4):
      send-email: respect in-reply-to regardless of threading
      send-email: test --no-thread --in-reply-to combination
      Documentation: format-patch --root clarifications
      bash completion: only show 'log --merge' if merging


Version v1.6.2.1; changes since v1.6.2:
---------------------------------------

Chris Johnsen (1):
      builtin-revert.c: release index lock when cherry-picking an empty commit

Christian Couder (1):
      Documentation: fix badly indented paragraphs in "--bisect-all" description

Elijah Newren (1):
      Ensure proper setup of git_dir for git-hash-object

Finn Arne Gangstad (1):
      Support "\" in non-wildcard exclusion entries

Jay Soffian (4):
      send-email: allow send-email to run outside a repo
      send-email: handle multiple Cc addresses when reading mbox message
      send-email: --suppress-cc improvements
      send-email: don't create temporary compose file until it is needed

Jeff King (3):
      never fallback relative times to absolute
      t1300: use test_must_fail as appropriate
      document config --bool-or-int

John Tapsell (1):
      Make the 'lock file' exists error more informative

Junio C Hamano (4):
      git-add -i/-p: learn to unwrap C-quoted paths
      Beginning of 1.6.2 maintenance track
      Update draft release notes for 1.6.2.1
      GIT 1.6.2.1

René Scharfe (1):
      cleanup: add isascii()


Version v1.6.2; changes since v1.6.2-rc2:
-----------------------------------------

Ben Walton (1):
      git-svn - return original format_svn_date semantics

Christian Couder (2):
      bisect: fix quoting TRIED revs when "bad" commit is also "skip"ped
      bisect: fix another instance of eval'ed string

Danijel Tasov (1):
      added missing backtick in git-apply.txt

David J. Mellor (4):
      Documentation: minor grammatical fixes.
      Documentation: minor grammatical fixes.
      Documentation: minor grammatical fixes.
      Documentation: minor grammatical fixes.

Eric Wong (1):
      git-svn: disable broken symlink workaround by default

Jay Soffian (1):
      t5540-http-push.sh: avoid non-portable grep -P

Johannes Sixt (1):
      t3400-rebase: Move detached HEAD check earlier

Junio C Hamano (2):
      git-am: make --abort less dangerous
      GIT 1.6.2

Michael J Gruber (1):
      git-am: Keep index in case of abort with dirty index

Mike Ralphson (4):
      Fix odb_mkstemp() on AIX
      Documentation: Typos / spelling fixes in RelNotes
      Documentation: Expand a couple of abbreviations
      Documentation: Typo / spelling / formatting fixes

Paul Mackerras (1):
      gitk: Fix possible infinite loop and display corruption

Roy Lee (1):
      Documentation/git-archive.txt: Note attributes

Todd Zullinger (1):
      git-rebase: Update --whitespace documentation


Version v1.6.2-rc2; changes since v1.6.2-rc1:
---------------------------------------------

Abhijit Menon-Sen (1):
      Convert git-* invocations to "git *" in the svnimport example.

Alexandre Julliard (3):
      git.el: Make sure that file lists are sorted as they are created.
      git.el: Improve the confirmation message on remove and revert.
      Add a README in the contrib/emacs directory.

Allan Caffee (1):
      trace: Fixed a minor typo in an error message.

Ben Walton (1):
      git-svn fix to avoid using strftime %z

Brian Gernhardt (1):
      git-svn: Create leading directories in create-ignore

Christian Couder (1):
      README: fix path to "gitcvs-migration.txt" and be more consistent

Eric Wong (1):
      git-svn: fix delete+add branch tracking with empty files

Felipe Contreras (2):
      git add: trivial codestyle cleanup
      sha1_file.c: fix typo

Gerrit Pape (3):
      Documentation/git-push: --all, --mirror, --tags can not be combined
      Install builtins with the user and group of the installing personality
      git-quiltimport: preserve standard input to be able to read user input

Giuseppe Bilotta (1):
      gitweb: fix wrong base URL when non-root DirectoryIndex

Jay Soffian (2):
      disallow providing multiple upstream branches to rebase, pull --rebase
      Allow HTTP tests to run on Darwin

Johannes Schindelin (2):
      Introduce the function strip_path_suffix()
      system_path(): simplify using strip_path_suffix(), and add suffix "git"

Johannes Sixt (1):
      gitattributes.txt: Path matching rules are explained in gitignore.txt

Junio C Hamano (4):
      git-svn: fix parsing of timestamp obtained from svn
      tests: fix "export var=val"
      Make sure objects/pack exists before creating a new pack
      GIT 1.6.2-rc2

Lars Noschinski (1):
      filter-branch -d: Export GIT_DIR earlier

Linus Torvalds (1):
      Support 'raw' date format

Marc Branchaud (1):
      Docs: Expand explanation of the use of + in git push refspecs.

Marcel M. Cary (2):
      gitweb: Fix warnings with override permitted but no repo override
      gitweb: Hyperlink multiple git hashes on the same commit message line

Matthieu Moy (2):
      Document git blame --reverse.
      More friendly message when locking the index fails.

Michael J Gruber (1):
      Fix typo in contrib/examples/git-svnimport.txt

Michael Spang (1):
      Skip timestamp differences for diff --no-index

Pete Wyckoff (1):
      git-p4: avoid syncing duplicate changes

Peter Oberndorfer (1):
      git-svn: read the dcommit url from the config file on a per remote basis

SZEDER Gábor (2):
      bash: add missing 'git merge' options
      bash: update 'git svn' options

Thomas Rast (2):
      bash completion: refactor common log, shortlog and gitk options
      bash completion: only show 'log --merge' if merging

Todd Zullinger (1):
      Documentation: Note file formats send-email accepts


Version v1.6.2-rc1; changes since v1.6.2-rc0:
---------------------------------------------

Alexandre Julliard (1):
      Describe notable git.el changes in the release notes

Anton Gyllenberg (1):
      test case for regression caused by git-svn empty symlink fix

Christian Couder (1):
      rev-list: fix showing distance when using --bisect-all

Deskin Miller (1):
      git-svn: Print revision while searching for earliest use of path

Dévai Tamás (1):
      git-svn: Fix for rewriteRoot URL containing username.

Elijah Newren (1):
      fast-export: ensure we traverse commits in topological order

Eric Kidd (1):
      filter-branch: Add more error-handling

Eric Wong (2):
      git-svn: allow disabling expensive broken symlink checks
      git-svn: fix broken symlink workaround when switching branches

Fabian Franz (1):
      submodule: add --no-fetch parameter to update command

Jacob Helwig (1):
      Add 'rm -f' equivalent to 'git rm' example of filter-branch --index-filter

Jakub Narębski (1):
      gitweb: Better regexp for SHA-1 committag match

Jeff King (1):
      symbolic-ref: allow refs/<whatever> in HEAD

Jeremy White (1):
      Update documentation to add further information about using Thunderbird with git-imap-send.

Johannes Schindelin (4):
      Let ls-files strip trailing slashes in submodules' paths
      submodule: warn about non-submodules
      Add two extra tests for git rebase
      gc: make --prune useful again by accepting an optional parameter

Johannes Sixt (4):
      Make test-path-utils more robust against incorrect use
      Move sanitary_path_copy() to path.c and rename it to normalize_path_copy()
      Test and fix normalize_path_copy()
      Remove unused normalize_absolute_path()

Junio C Hamano (16):
      Revert "Merge branch 'js/notes'"
      Modernize t5400 test script
      remote prune: warn dangling symrefs
      Warn use of "origin" when remotes/origin/HEAD is dangling
      Drop double-semicolon in C
      receive-pack: receive.denyDeleteCurrent
      builtin-receive-pack.c: do not initialize statics to 0
      revision traversal and pack: notice and die on missing commit
      Squelch overzealous "ignoring dangling symref" in an empty repository
      Make repack less likely to corrupt repository
      Prepare for 1.6.1.4.
      Revert "validate_headref: tighten ref-matching to just branches"
      Install the default "master" branch configuration after cloning a void
      Teach the "@{-1} syntax to "git branch"
      Teach @{-1} to git merge
      RelNotes Update

Keith Cascio (1):
      Remove redundant bit clears from diff_setup()

Lars Hjemli (1):
      tree.c: allow read_tree_recursive() to traverse gitlink entries

Marcel M. Cary (1):
      git-sh-setup: Use "cd" option, not /bin/pwd, for symlinked work tree

Marius Storm-Olsen (5):
      Add mailmap.file as configurational option for mailmap location
      Add find_insert_index, insert_at_index and clear_func functions to string_list
      Add map_user() and clear_mailmap() to mailmap
      Change current mailmap usage to do matching on both name and email of author/committer.
      Move mailmap documentation into separate file

Mark Burton (1):
      git-rebase.txt: --interactive does not work with --whitespace

Matt Kraai (1):
      bash-completion: Complete the values of color.interactive, color.ui, color.pager

Matt McCutchen (1):
      gitweb: add $prevent_xss option to prevent XSS by repository content

Michael J Gruber (1):
      Fix the installation path for html documentation

Nazri Ramliy (1):
      Bugfix: GIT_EXTERNAL_DIFF with more than one changed files

Pat Notz (1):
      Fix contrib/hooks/post-receive-email for new duplicate branch

René Scharfe (2):
      Fix GIT_CEILING_DIRECTORIES on Windows
      builtin-receive-pack.c: fix compiler warnings about format string

SZEDER Gábor (3):
      Move 'rev-parse --git-dir' test to t1500
      t1500: more 'git rev-parse --git-dir' tests
      bash: fix misspelled 'git svn' option

Sam Vilain (1):
      git-svn: abstract out a block into new method other_gs()

Santi Béjar (1):
      doc/bundle: Use the more conventional suffix '.bundle'

Shawn O. Pearce (2):
      Clear the delta base cache during fast-import checkpoint
      Clear the delta base cache if a pack is rebuilt

Sitaram Chamarty (1):
      Documentation: clarify commits affected by gitk --merge

Stephan Beyer (3):
      add -p: get rid of Git.pm warnings about unitialized values
      Makefile: resort filenames alphabetically
      Generalize and libify index_is_dirty() to index_differs_from(...)

Tay Ray Chuan (1):
      use a hash of the lock token as the suffix for PUT/MOVE

Ted Pavlic (2):
      completion: Fix GIT_PS1_SHOWDIRTYSTATE to prevent unbound variable errors.
      completion: Get rid of tabbed indentation in comments. Replace with spaces.

Thomas Rast (2):
      log: do not print ellipses with --abbrev-commit
      Documentation: pruning recipe for destructive filter-branch

Todd Zullinger (1):
      git-web--browse: Fix check for /bin/start


Version v1.6.2-rc0; changes since v1.6.1.4:
-------------------------------------------

Adeodato Simó (3):
      builtin-shortlog.c: use string_list_append(), and don't strdup unnecessarily
      git.c: make autocorrected aliases work
      t7501-commit.sh: explicitly check that -F prevents invoking the editor

Alexander Potashev (4):
      remove trailing LF in die() messages
      add is_dot_or_dotdot inline function
      Allow cloning to an existing empty directory
      Replace deprecated dashed git commands in usage

Alexandre Julliard (8):
      git.el: Add a checkout command.
      git.el: Add a command to create a new branch.
      git.el: Add commands for cherry-pick and revert.
      git.el: Make git-run-command-region display the error if any.
      git.el: Set a regexp for paragraph-separate in log-edit mode.
      git.el: Use integer instead of character constants in case statement.
      git.el: Add some notes about Emacs versions compatibility.
      emacs: Remove the no longer maintained vc-git package.

Arjen Laarhoven (1):
      t/t4202-log.sh: Add testcases

Benjamin Kramer (1):
      Ignore test-ctype

Boyd Stephen Smith Jr (2):
      color-words: Support diff.wordregex config option
      Change the spelling of "wordregex".

Brandon Casey (2):
      t7700: demonstrate misbehavior of 'repack -a' when local packs exist
      Makefile: use shell for-loop rather than Make's foreach loop during install

Charles Bailey (7):
      Fix some tab/space inconsistencies in git-mergetool.sh
      Add -y/--no-prompt option to mergetool
      mergetool: Add prompt to continue after failing to merge a file
      mergetool: Don't keep temporary merge files unless told to
      mergetool: respect autocrlf by using checkout-index
      mergetool: Add a test for running mergetool in a sub-directory
      mergetool: fix running mergetool in sub-directories

Christian Couder (1):
      sha1_file: make "read_object" static

Clemens Buchacher (2):
      clean up pathspec matching
      remove pathspec_match, use match_pathspec instead

David Aguilar (4):
      contrib: add 'git difftool' for launching common merge tools
      difftool: fix documentation problems
      difftool: put the cursor on the editable file for Vim
      contrib/difftool: Don't repeat merge tool candidates

David M. Syzdek (1):
      autoconf: Enable threaded delta search when pthreads are supported

Eric Wong (6):
      git-svn: add --authors-file test
      git-svn: handle empty files marked as symlinks in SVN
      git-svn: better attempt to handle broken symlink updates
      git-svn: fix SVN 1.1.x compatibility
      git-svn: avoid importing nested git repos
      git-svn: fix memory leak when checking for empty symlinks

Fabian Emmes (2):
      cvsserver: add option to configure commit message
      cvsserver: change generation of CVS author names

Giuseppe Bilotta (16):
      gitweb: add patch view
      gitweb: change call pattern for git_commitdiff
      gitweb: add patches view
      gitweb: link to patch(es) view in commit(diff) and (short)log view
      gitweb: use href() when generating URLs in OPML
      gitweb: don't use pathinfo for global actions
      gitweb: suggest name for OPML view
      gitweb: channel image in rss feed
      gitweb: feed generator metadata
      gitweb: rss feed managingEditor
      gitweb: rss channel date
      gitweb: last-modified time should be commiter, not author
      gitweb: check if-modified-since for feeds
      gitweb: make static files accessible with PATH_INFO
      gitweb: webserver config for PATH_INFO
      gitweb: align comments to code

Jake Goulding (3):
      Make opt_parse_with_commit() non-static
      Make has_commit() non-static
      git-tag: Add --contains option

Jakub Narębski (4):
      gitweb: Move 'lineno' id from link to row element in git_blame
      gitweb: A bit of code cleanup in git_blame()
      gitweb: cache $parent_commit info in git_blame()
      gitweb: Update README that gitweb works better with PATH_INFO

Jay Soffian (2):
      git-am: minor cleanups
      Makefile: minor improvements for Mac OS X (Darwin)

Jeff King (10):
      Makefile: clean up TEST_PROGRAMS definition
      color: make it easier for non-config to parse color specs
      expand --pretty=format color options
      diff: refactor tempfile cleanup handling
      chain kill signals for cleanup functions
      refactor signal handling for cleanup functions
      pager: do wait_for_pager on signal death
      validate_headref: tighten ref-matching to just branches
      symbolic ref: refuse non-ref targets in HEAD
      t0005: use SIGTERM for sigchain test

Johannes Gilger (1):
      mergetool: Don't repeat merge tool candidates

Johannes Schindelin (24):
      Force t5302 to use a single thread
      Introduce commit notes
      Add a script to edit/inspect notes
      git wrapper: Make while loop more reader-friendly
      bundle: allow rev-list options to exclude annotated tags
      show <tag>: reuse pp_user_info() instead of duplicating code
      Implement the patience diff algorithm
      Introduce the diff option '--patience'
      bash completions: Add the --patience option
      Speed up git notes lookup
      Add an expensive test for git-notes
      Add color_fwrite_lines(), a function coloring each line individually
      color-words: refactor word splitting and use ALLOC_GROW()
      color-words: change algorithm to allow for 0-character word boundaries
      color-words: take an optional regular expression describing words
      Fix parsing of @{-1}@{1}
      rebase -i --root: fix check for number of arguments
      t3404 & t3411: undo copy&paste
      lib-rebase.sh: Document what set_fake_editor() does
      test-lib.sh: introduce test_commit() and test_merge() helpers
      Simplify t3410
      Simplify t3411
      Simplify t3412
      Fix 'git diff --no-index' with a non-existing symlink target

Johannes Sixt (2):
      Windows: Fix signal numbers
      Windows: Fix intermittent failures of t7701

Jon Loeliger (1):
      Fix Documentation typos surrounding the word 'handful'.

Jonas Flodén (1):
      git-am: Make it easier to see which patch failed

Junio C Hamano (26):
      Document "git-reset --merge"
      Start 1.6.2 cycle
      Resurrect "git apply --flags -" to read from the standard input
      git-am: add --directory=<dir> option
      Update 1.6.2 draft release notes
      git-am: fix shell quoting
      checkout: implement "@{-N}" shortcut name for N-th last branch
      git-am: re-fix the diag message printing
      interpret_nth_last_branch(): avoid traversing the reflog twice
      Fix reflog parsing for a malformed branch switching entry
      interpret_nth_last_branch(): plug small memleak
      Introduce for_each_recent_reflog_ent().
      Simplify parsing branch switching events in reflog
      http-push.c: style fixes
      am: Add --committer-date-is-author-date option
      rebase -i: correctly remember --root flag across --continue
      tests: Avoid single-shot environment export for shell function invocation
      Update draft release notes to 1.6.2
      fsck: HEAD is part of refs
      fsck: check loose objects from alternate object stores by default
      http-push.c: get_remote_object_url() is only used under USE_CURL_MULTI
      receive-pack: explain what to do when push updates the current branch
      t3412: further simplify setting of GIT_EDITOR
      tests: fix test_commit() for case insensitive filesystems
      Makefile: fix misdetection of relative pathnames
      GIT 1.6.2-rc0

Keith Cascio (1):
      test more combinations of ignore-whitespace options to diff

Kirill Smelkov (1):
      mailinfo: cleanup extra spaces for complex 'From:'

Kjetil Barvik (6):
      Cleanup of unused symcache variable inside diff-lib.c
      lstat_cache(): more cache effective symlink/directory detection
      lstat_cache(): introduce has_symlink_or_noent_leading_path() function
      lstat_cache(): introduce has_dirs_only_path() function
      lstat_cache(): introduce invalidate_lstat_cache() function
      lstat_cache(): introduce clear_lstat_cache() function

Lee Marlow (2):
      bash completion: Add '--intent-to-add' long option for 'git add'
      bash completion: Use 'git add' completions for 'git stage'

Linus Torvalds (1):
      Add 'merge' mode to 'git reset'

Marcel Koeppen (1):
      git-svn: Show UUID in svn info for added directories with svn 1.5.5

Markus Heidelberg (10):
      git-cherry: make <upstream> parameter optional
      Documentation: clarify which parameters are optional to git-cherry
      contrib/vim: change URL to point to the latest syntax files
      Documentation: let asciidoc align related options
      mergetool: put the cursor on the editable file for Vim
      contrib/difftool: change trap condition from SIGINT to INT
      contrib/difftool: remove distracting 'echo' in the SIGINT handler
      use uppercase POSIX compliant signals for the 'trap' command
      bash completion: add 'rename' subcommand to git-remote
      contrib/difftool: add support for Kompare

Matt Kraai (1):
      gitweb: unify boolean feature subroutines

Michele Ballabio (1):
      git-shortlog.txt: fix example about .mailmap

Miklos Vajna (3):
      Add support for a pdf version of the user manual
      parse-opt: migrate builtin-apply.
      gittutorial: remove misleading note

Nanako Shiraishi (3):
      git-am: Add --ignore-date option
      Mention "local convention" rule in the CodingGuidelines
      git-bundle doc: update examples

Nicolas Pitre (2):
      autodetect number of CPUs by default when using threads
      pack-objects: don't use too many threads with few objects

Pascal Obry (1):
      config.mak.in: define paths without trailing slash

Pete Harlan (1):
      git-svn: Add --localtime option to "fetch"

Pierre Habouzit (1):
      filter-branch: add git_commit_non_empty_tree and --prune-empty.

Ralf Wildenhues (1):
      Fix naming scheme for configure cache variables.

René Scharfe (9):
      diff: add option to show context between close hunks
      strbuf: instate cleanup rule in case of non-memory errors
      grep -w: forward to next possible position after rejected match
      grep: don't call regexec() for fixed strings
      Add ctype test
      Reformat ctype.c
      Change NUL char handling of isspecial()
      Add is_regex_special()
      Optimize color_parse_mem

SZEDER Gábor (4):
      bash: add '--merge' to 'git reset'
      bash: remove unnecessary checks for long options with argument
      bash: add missing format-patch command line options
      bash: refactor 'git log --pretty=<format>' options

Santi Béjar (2):
      commit: more compact summary and without extra quotes
      tutorial-2: Update with the new "git commit" ouput

Serge van den Boom (1):
      Makefile: Make 'configure --with-expat=path' actually work

Stefan Karpinski (2):
      git-cvsserver: handle CVS 'noop' command.
      git-cvsserver: run post-update hook *after* update.

Steffen Prohaska (6):
      Move computation of absolute paths from Makefile to runtime (in preparation for RUNTIME_PREFIX)
      git_extract_argv0_path(): Move check for valid argv0 from caller to callee
      Add calls to git_extract_argv0_path() in programs that call git_config_*
      Modify setup_path() to only add git_exec_path() to PATH
      Compute prefix at runtime if RUNTIME_PREFIX is set
      Windows: Revert to default paths and convert them by RUNTIME_PREFIX

Stephan Beyer (5):
      checkout: don't crash on file checkout before running post-checkout hook
      Move run_hook() from builtin-commit.c into run-command.c (libgit)
      api-run-command.txt: talk about run_hook()
      run_hook(): check the executability of the hook before filling argv
      run_hook(): allow more than 9 hook arguments

Steve Haslam (1):
      Refactor git_set_argv0_path() to git_extract_argv0_path()

Sverre Rabbelier (1):
      Allow cloning an empty repository

Tay Ray Chuan (4):
      http-push: refactor lock-related headers creation for curl requests
      http-push: refactor request url creation
      http-push: add back underscore separator before lock token
      http-push: wrap signature of get_remote_object_url

Ted Pavlic (4):
      bash-completion: Support running when set -u is enabled
      bash-completion: Try bash completions before simple filetype
      bash-completion: Add comments to remind about required arguments
      make: Remove -pthread on Darwin (it is included by cstdlib).

Teemu Likonen (3):
      Fix the building of user-manual.texi and gitman.texi documents
      Fix the building of gitman.info document
      diff-options.txt: Fix asciidoc markup issue

Thomas Rast (23):
      rebase -i: execute hook only after argument checking
      rebase: learn to rebase root commit
      rebase -i: learn to rebase root commit
      rebase: update documentation for --root
      notes: fix core.notesRef documentation
      color-words: enable REG_NEWLINE to help user
      color-words: expand docs with precise semantics
      color-words: make regex configurable via attributes
      sha1_name: tweak @{-N} lookup
      sha1_name: support @{-N} syntax in get_sha1()
      checkout: implement "-" abbreviation, add docs and tests
      bash completion: move pickaxe options to log
      bash completion: refactor diff options
      t1505: remove debugging cruft
      t3412: clean up GIT_EDITOR usage
      t3412: use log|name-rev instead of log --graph
      bash: offer to show (un)staged changes
      add -p: change prompt separator for 'g'
      add -p: trap Ctrl-D in 'goto' mode
      contrib git-resurrect: find traces of a branch name and resurrect it
      add -p: prompt for single characters
      add -p: print errors in separate color
      add -p: import Term::ReadKey with 'require'

Tor Arne Vestbø (1):
      git-notes: fix printing of multi-line notes

Vitaly "_Vi" Shukela (3):
      git-svn: add --ignore-paths option for fetching
      git-svn: documented --ignore-paths
      git-svn: Add test for --ignore-paths parameter

William Pursell (5):
      Add subroutine to display one-line summary of hunks
      Add 'g' command to go to a hunk
      git-add -i/-p: Change prompt separater from slash to comma
      Add / command in add --patch
      In add --patch, Handle K,k,J,j slightly more gracefully.

jidanni@jidanni.org (1):
      git-show-branch doc: show -g as synonym to --reflog in the list

martin f. krafft (1):
      git-am: implement --reject option passed to git-apply


Version v1.6.1.4; changes since v1.6.1.3:
-----------------------------------------

Allan Caffee (3):
      Documentation: update graph api example.
      builtin-merge: fix a typo in an error message
      Documentation: fix a grammatical error in api-builtin.txt

Björn Steinbrink (2):
      tree_entry_interesting: a pathspec only matches at directory boundary
      process_{tree,blob}: Remove useless xstrdup calls

Brandon Casey (7):
      t7700-repack: add two new tests demonstrating repacking flaws
      git-repack.sh: don't use --kept-pack-only option to pack-objects
      pack-objects: only repack or loosen objects residing in "local" packs
      Remove --kept-pack-only option and associated infrastructure
      git-branch: display "was sha1" on branch deletion rather than just "sha1"
      t7700: demonstrate repack flaw which may loosen objects unnecessarily
      pack-objects: don't loosen objects available in alternate or kept packs

Chris Johnsen (1):
      builtin-revert.c: release index lock when cherry-picking an empty commit

Christian Couder (3):
      rev-list: fix showing distance when using --bisect-all
      bisect: fix quoting TRIED revs when "bad" commit is also "skip"ped
      bisect: fix another instance of eval'ed string

Dan McGee (1):
      git-repack: use non-dashed update-server-info

Daniel Cheng (aka SDiZ) (2):
      Fix bash completion in path with spaces
      State the effect of filter-branch on graft explicitly

Danijel Tasov (1):
      added missing backtick in git-apply.txt

David Aguilar (1):
      everyday: use the dashless form of git-init

David J. Mellor (1):
      Documentation: minor grammatical fixes.

Elijah Newren (2):
      fast-export: ensure we traverse commits in topological order
      Ensure proper setup of git_dir for git-hash-object

Emil Sit (1):
      test-lib: Clean up comments and Makefile.

Eric Kidd (1):
      filter-branch: Fix fatal error on bare repositories

Finn Arne Gangstad (1):
      Support "\" in non-wildcard exclusion entries

Frank Lichtenheld (1):
      init: Do not segfault on big GIT_TEMPLATE_DIR environment variable

Geoffrey Thomas (2):
      utf8: add utf8_strwidth()
      builtin-blame.c: Use utf8_strwidth for author's names

Gerrit Pape (1):
      Documentation/git-push: --all, --mirror, --tags can not be combined

Holger Weiß (1):
      Documentation: Remove an odd "instead"

Jason Merrill (1):
      Documentation: clarify .gitattributes search

Jay Soffian (2):
      builtin-remote: make rm() use properly named variable to hold return value
      builtin-remote: make rm operation safer in mirrored repository

Jeff King (5):
      git: s/run_command/run_builtin/
      run_command(): handle missing command errors more gracefully
      run_command(): help callers distinguish errors
      git: use run_command() to execute dashed externals
      commit: abort commit if interactive add failed

Johannes Schindelin (3):
      Fix submodule squashing into unrelated commit
      filter-branch: do not consider diverging submodules a 'dirty worktree'
      import-zips: fix thinko

Johannes Sixt (6):
      Make test-path-utils more robust against incorrect use
      Move sanitary_path_copy() to path.c and rename it to normalize_path_copy()
      Test and fix normalize_path_copy()
      Remove unused normalize_absolute_path()
      Propagate --exec-path setting to external commands via GIT_EXEC_PATH
      diff --no-index: Do not generate patch output if other output is requested

Junio C Hamano (19):
      revision traversal: allow UNINTERESTING objects to be missing
      rebase -i squashes submodule changes into unrelated commit
      add -u: do not fail to resolve a path as deleted
      revision traversal and pack: notice and die on missing commit
      Make repack less likely to corrupt repository
      Prepare for 1.6.1.4.
      tests: fix "export var=val"
      Make sure objects/pack exists before creating a new pack
      git-repack: resist stray environment variable
      has_sha1_pack(): refactor "pretend these packs do not exist" interface
      has_sha1_kept_pack(): take "struct rev_info"
      Consolidate ignore_packed logic more
      Simplify is_kept_pack()
      is_kept_pack(): final clean-up
      blame: read custom grafts given by -S before calling setup_revisions()
      diff --cached: do not borrow from a work tree when a path is marked as assume-unchanged
      match_tree_entry(): a pathspec only matches at directory boundaries
      diff -c -p: do not die on submodules
      GIT 1.6.1.4

Kirill Smelkov (4):
      mailinfo: correctly handle multiline 'Subject:' header
      mailinfo: 'From:' header should be unfold as well
      mailinfo: add explicit test for mails like '<a.u.thor@example.com> (A U Thor)'
      mailinfo: tests for RFC2047 examples

Linus Torvalds (3):
      close_sha1_file(): make it easier to diagnose errors
      process_{tree,blob}: Remove useless xstrdup calls
      grep: fix segfault when "git grep '('" is given

Markus Heidelberg (1):
      doc/git-daemon: add missing arguments to options

Matt McCutchen (1):
      gitweb: add $prevent_xss option to prevent XSS by repository content

Matthieu Moy (4):
      Document git blame --reverse.
      More friendly message when locking the index fails.
      git-checkout.txt: fix incorrect statement about HEAD and index
      git-checkout.txt: clarify that <branch> applies when no path is given.

Michael Spang (1):
      Skip timestamp differences for diff --no-index

Mike Ralphson (1):
      Fix odb_mkstemp() on AIX

Nico -telmich- Schottelius (1):
      git-tag(1): add hint about commit messages

Nicolas Pitre (1):
      avoid possible overflow in delta size filtering computation

René Scharfe (1):
      Fix GIT_CEILING_DIRECTORIES on Windows

Shawn O. Pearce (2):
      Clear the delta base cache during fast-import checkpoint
      Clear the delta base cache if a pack is rebuilt

Stephen Boyd (1):
      test-genrandom: Add newline to usage string

Thomas Jarosch (1):
      Fix buffer overflow in config parser

Thomas Rast (2):
      Documentation: format-patch --root clarifications
      bash completion: only show 'log --merge' if merging

Todd Zullinger (1):
      Documentation: Note file formats send-email accepts


Version v1.6.1.3; changes since v1.6.1.2:
-----------------------------------------

Anders Melchiorsen (2):
      Documentation: more git push examples
      Documentation: rework src/dst description in git push

David J. Mellor (1):
      Fixed broken git help -w when installing from RPM

Guanqun Lu (2):
      fix typo in Documentation
      add test-dump-cache-tree in Makefile

Johannes Schindelin (2):
      revision walker: include a detached HEAD in --all
      apply: fix access to an uninitialized mode variable, found by valgrind

Junio C Hamano (6):
      bundle: allow the same ref to be given more than once
      Documentation: simplify refspec format description
      diff.c: output correct index lines for a split diff
      builtin-apply.c: do not set bogus mode in check_preimage() for deleted path
      grep: pass -I (ignore binary) down to external grep
      GIT 1.6.1.3

Keith Cascio (2):
      test more combinations of ignore-whitespace options to diff
      Fix combined use of whitespace ignore options to diff

Linus Torvalds (1):
      Wrap inflate and other zlib routines for better error reporting

Matthieu Moy (3):
      Missing && in t/t7001.sh.
      Add a testcase for "git mv -f" on untracked files.
      builtin-mv.c: check for unversionned files before looking at the destination.

René Scharfe (1):
      merge: fix out-of-bounds memory access

SZEDER Gábor (1):
      Fix gitdir detection when in subdir of gitdir

Stefan Naewe (1):
      urls.txt: document optional port specification in git URLS

William Pursell (1):
      User-manual: "git stash <comment>" form is long gone


Version v1.6.1.2; changes since v1.6.1.1:
-----------------------------------------

Björn Steinbrink (1):
      Rename detection: Avoid repeated filespec population

Jeff King (1):
      avoid 31-bit truncation in write_loose_object

Johannes Schindelin (2):
      get_sha1_basic(): fix invalid memory access, found by valgrind
      test-path-utils: Fix off by one, found by valgrind

Junio C Hamano (4):
      ls-tree: add --full-tree option
      Teach format-patch to handle output directory relative to cwd
      send-pack: do not send unknown object name from ".have" to pack-objects
      GIT 1.6.1.2

Marcel M. Cary (1):
      git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X

Markus Heidelberg (2):
      git-commit: color status output when color.ui is set
      git-status -v: color diff output when color.ui is set

Nanako Shiraishi (1):
      Document git-ls-tree --full-tree

Nguyễn Thái Ngọc Duy (2):
      grep: support --no-ext-grep to test builtin grep
      grep: grep cache entries if they are "assume unchanged"

Nicolas Pitre (1):
      objects to be pruned immediately don't have to be loosened


Version v1.6.1.1; changes since v1.6.1:
---------------------------------------

Adeodato Simó (2):
      git-shortlog.txt: improve documentation about .mailmap files
      git-send-email.txt: move --format-patch paragraph to a proper location

Anders Melchiorsen (4):
      Documentation: git push repository can also be a remote
      Documentation: remove a redundant elaboration
      Documentation: mention branches rather than heads
      Documentation: avoid using undefined parameters

Boyd Stephen Smith Jr (1):
      Fix Documentation for git-describe

Christian Couder (1):
      builtin-fsck: fix off by one head count

Clemens Buchacher (4):
      modify/delete conflict resolution overwrites untracked file
      unpack-trees: handle failure in verify_absent
      unpack-trees: fix path search bug in verify_absent
      unpack-trees: remove redundant path search in verify_absent

Devin Doucette (1):
      gitweb: Fix export check in git_get_projects_list

Felipe Contreras (1):
      fast-import: Cleanup mode setting.

Henrik Austad (2):
      Use capitalized names where appropriate
      Be consistent in switch usage for tar

Jay Soffian (1):
      Git.pm: call Error::Simple() properly

Joey Hess (1):
      README: tutorial.txt is now called gittutorial.txt

Johannes Schindelin (7):
      merge-recursive: mark rename/delete conflict as unmerged
      bisect view: call gitk if Cygwin's SESSIONNAME variable is set
      git add: do not add files from a submodule
      http-push: fix off-by-path_len
      http-push: when making directories, have a trailing slash in the path name
      t5540: clarify that http-push does not handle packed-refs on the remote
      Rename diff.suppress-blank-empty to diff.suppressBlankEmpty

Junio C Hamano (8):
      merge-recursive: do not clobber untracked working tree garbage
      Prepare for v1.6.1.1 maintenance release
      builtin-apply: prevent non-explicit permission changes
      git checkout: do not allow switching to a tree-ish that is not a commit
      format-patch: show patch text for the root commit
      Update draft release notes to 1.6.1.1
      Update draft release notes for 1.6.1.1
      GIT 1.6.1.1

Kirill A. Korinskiy (1):
      http-push: support full URI in handle_remote_ls_ctx()

Lars Noschinski (1):
      shell: Document that 'cvs server' is a valid command

Markus Heidelberg (2):
      doc/git-send-email: mention sendemail.cc config variable
      Documentation: let asciidoc align related options

Michael J Gruber (2):
      add test cases for "git mv -k"
      fix handling of multiple untracked files for git mv -k

Miklos Vajna (2):
      fast-export: print usage when no options specified
      Make t3411 executable

Paul Jarc (1):
      configure clobbers LDFLAGS

Philippe Bruhat (1):
      Git.pm: correctly handle directory name that evaluates to "false"

Pierre Habouzit (1):
      Avoid spurious error messages on error mistakes.

René Scharfe (8):
      daemon: handle freopen() failure
      daemon: cleanup: replace loop with if
      daemon: cleanup: factor out xstrdup_tolower()
      merge-file: handle freopen() failure
      pretty: factor out skip_empty_lines()
      pretty: factor out format_subject()
      pretty: support multiline subjects with format:
      shortlog: handle multi-line subjects like log --pretty=oneline et. al. do

Shawn O. Pearce (1):
      describe: Avoid unnecessary warning when using --all

Stephan Beyer (5):
      t3501: check that commits are actually done
      t3404: Add test case for aborted --continue after "edit"
      t3404: Add test case for auto-amending only edited commits after "edit"
      builtin-commit.c: do not remove COMMIT_EDITMSG
      githooks.txt: add missing word

Thomas Rast (3):
      diff: accept -- when using --no-index
      diff --no-index: test for pager after option parsing
      diff --no-index -q: fix endless loop

jidanni@jidanni.org (4):
      Documentation/diff-options.txt: unify options
      Documentation/git-tag.txt: minor typo and grammar fix
      Documentation/git-push.txt: minor: compress one option
      contrib/examples/README: give an explanation of the status of these files


Version v1.6.1; changes since v1.6.1-rc4:
-----------------------------------------

Johannes Schindelin (1):
      rebase -i -p: leave a --cc patch when a merge could not be redone

Johannes Sixt (2):
      Show a failure of rebase -p if the merge had a conflict
      rebase -i -p: Fix --continue after a merge could not be redone

Junio C Hamano (1):
      GIT 1.6.1

Miklos Vajna (1):
      t9129: skip the last three tests if UTF-8 locale is not available


Version v1.6.1-rc4; changes since v1.6.1-rc3:
---------------------------------------------

Alexander Gavrilov (2):
      git-gui: Fix handling of relative paths in blame.
      git-gui: Fix commit encoding handling.

Arjen Laarhoven (1):
      Enable threaded delta search on Mac OS X/Darwin

Boyd Stephen Smith Jr (1):
      git-revert documentation: refer to new HOWTO on reverting faulty merges

Christian Stimming (3):
      git-gui: Update German (completed) translation.
      gitk: Mark forgotten strings (header sentence parts in color chooser) for translation
      gitk: Update German translation

David Aguilar (1):
      git-mergetool: properly handle "git mergetool -- filename"

Fredrik Skolmli (1):
      git-gui: Starting translation for Norwegian

Giuseppe Bilotta (1):
      gitk: Map / to focus the search box

Johannes Schindelin (3):
      fast-import: close pack before unlinking it
      git-gui: Get rid of the last remnants of GIT_CONFIG_LOCAL
      fast-export: deal with tag objects that do not have a tagger

Johannes Sixt (3):
      gitk: Use check-buttons' -text property instead of separate labels
      gitk: Ensure that "Reset branch" menu entry is enabled
      gitk: Force the focus to the main window on Windows

Junio C Hamano (12):
      git-show: do not segfault when showing a bad tag
      pager: do not dup2 stderr if it is already redirected
      gitweb: do not run "git diff" that is Porcelain
      GIT 1.5.4.7
      gitweb: do not run "git diff" that is Porcelain
      make_absolute_path(): check bounds when seeing an overlong symlink
      builtin-blame.c: use strbuf_readlink()
      combine-diff.c: use strbuf_readlink()
      fast-import: make tagger information optional
      Make sure lockfiles are unlocked when dying on SIGPIPE
      send-email: futureproof split_addrs() sub
      GIT 1.6.1-rc4

Kevin Ballard (1):
      gitk: Allow unbalanced quotes/braces in commit headers

Kirill A. Korinskiy (1):
      Remove the requirement opaquelocktoken uri scheme

Lee Marlow (2):
      bash completion: Sort config completion variables
      bash completion: Sync config variables with their man pages

Linus Torvalds (5):
      Add generic 'strbuf_readlink()' helper function
      Make 'ce_compare_link()' use the new 'strbuf_readlink()'
      Make 'index_path()' use 'strbuf_readlink()'
      Make 'diff_populate_filespec()' use the new 'strbuf_readlink()'
      Make 'prepare_temp_file()' ignore st_size for symlinks

Marcel M. Cary (1):
      git-sh-setup: Fix scripts whose PWD is a symlink into a git work-dir

Markus Heidelberg (7):
      Documentation: fix description for enabling hooks
      doc/git-reset: add reference to git-stash
      Documentation: sync example output with git output
      Documentation: fix typos, grammar, asciidoc syntax
      Documentation: fix typos, grammar, asciidoc syntax
      Documentation/git-show-branch: work around "single quote" typesetting glitch
      doc/git-fsck: change the way for getting heads' SHA1s

Michael J Gruber (1):
      test overlapping ignore patterns

Michele Ballabio (1):
      git gui: update Italian translation

Miklos Vajna (4):
      git-gui: Update Hungarian translation for 0.12
      git-daemon documentation: use {tilde}
      githooks documentation: add a note about the +x mode
      SubmittingPatches: mention the usage of real name in Signed-off-by: lines

Nanako Shiraishi (3):
      git-gui: Update Japanese translation for 0.12
      Clarify documentation of "git checkout <tree-ish> paths" syntax
      Add a documentat on how to revert a faulty merge

Paul Mackerras (1):
      gitk: Fix bugs in blaming code

Peter Krefting (2):
      git-gui: Updated Swedish translation (515t0f0u).
      git-gui: Fixed typos in Swedish translation.

René Scharfe (3):
      Fix type-mismatch compiler warning from diff_populate_filespec()
      connect.c: stricter port validation, silence compiler warning
      fast-import.c: stricter strtoul check, silence compiler warning

Richard Hartmann (2):
      Make help entries alphabetical
      Always show which directory is not a git repository

Robin Rosenberg (1):
      git-revert: record the parent against which a revert was made

Shawn O. Pearce (2):
      git-gui: Update po template to include 'Mirroring %s' message
      git-gui 0.12

Wu Fengguang (1):
      git-send-email: handle email address with quoted comma


Version v1.6.1-rc3; changes since v1.6.1-rc2:
---------------------------------------------

Alexander Gavrilov (1):
      Documentation: Describe git-gui Tools menu configuration options.

Alexander Potashev (2):
      Fix typos in documentation
      Fix typo in comment in builtin-add.c

Alexey Borzenkov (1):
      Define linkgit macro in [macros] section

Brandon Casey (1):
      git-branch: display sha1 on branch deletion

Deskin Miller (1):
      git-svn: Make following parents atomic

Jakub Narębski (1):
      gitweb: Fix bug in insert_file() subroutine

Jeff King (5):
      reorder ALLOW_TEXTCONV option setting
      diff: allow turning on textconv explicitly for plumbing
      diff: fix handling of binary rewrite diffs
      diff: respect textconv in rewrite diffs
      rebase: improve error messages about dirty state

Jim Meyering (1):
      git-config.txt: fix a typo

Johannes Schindelin (1):
      Get rid of the last remnants of GIT_CONFIG_LOCAL

Junio C Hamano (4):
      builtin-checkout.c: check error return from read_cache()
      read-cache.c: typofix in comment
      work around Python warnings from AsciiDoc
      Fix t4031

Linus Torvalds (1):
      fsck: reduce stack footprint

Markus Heidelberg (1):
      builtin-commit: remove unused message variable

Nicolas Pitre (1):
      make sure packs to be replaced are closed beforehand

Ralf Wildenhues (1):
      Improve language in git-merge.txt and related docs

Tor Arvid Lund (1):
      git-p4: Fix regression in p4Where method.

YONETANI Tomokazu (1):
      git-fast-import possible memory corruption problem


Version v1.6.1-rc2; changes since v1.6.1-rc1:
---------------------------------------------

Alex Riesen (3):
      Make some of fwrite/fclose/write/close failures visible
      Make chdir failures visible
      Report symlink failures in merge-recursive

Alexander Gavrilov (2):
      gitk: Make line origin search update the busy status
      gitk: Add a menu option to start git gui

Christian Couder (2):
      bisect: fix "git bisect skip <commit>" and add tests cases
      Documentation: describe how to "bisect skip" a range of commits

Christian Stimming (1):
      gitk: Update German translation

Davide Libenzi (1):
      xdiff: give up scanning similar lines early

Deskin Miller (1):
      git-svn: Make branch use correct svn-remote

Giuseppe Bilotta (2):
      gitweb: make gitweb_check_feature a boolean wrapper
      Update comment on gitweb_check/get_feature

Jakub Narębski (2):
      gitweb: Fix handling of non-ASCII characters in inserted HTML files
      gitweb: Make project specific override for 'grep' feature work

Jeff King (2):
      add stage to gitignore
      tag: delete TAG_EDITMSG only on successful tag

Johannes Sixt (1):
      t4030-diff-textconv: Make octal escape sequence more portable

Junio C Hamano (17):
      builtin-rm.c: explain and clarify the "local change" logic
      git add --intent-to-add: fix removal of cached emptiness
      git add --intent-to-add: do not let an empty blob be committed by accident
      gitweb: fix 'ctags' feature check and others
      gitweb: rename gitweb_check_feature to gitweb_get_feature
      Makefile: introduce NO_PTHREADS
      Install git-stage in exec-path
      git-am --whitespace: do not lose the command line option
      git-am: propagate -C<n>, -p<n> options as well
      git-am: propagate --3way options as well
      Test that git-am does not lose -C/-p/--whitespace options
      git-am: rename apply_opt_extra file to apply-opt
      Update draft release notes to 1.6.1
      GIT 1.6.0.5
      Update draft release notes for 1.6.1
      Revert "git-stash: use git rev-parse -q"
      Point "stale" 1.6.0.5 documentation from the main git documentation page

Linus Torvalds (1):
      Add backslash to list of 'crud' characters in real name

Mark Burton (1):
      git-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.

Matt McCutchen (1):
      "git diff <tree>{3,}": do not reverse order of arguments

Miklos Vajna (8):
      User's Manual: remove duplicated url at the end of Appendix B
      git-stash: use git rev-parse -q
      filter-branch: use git rev-parse -q
      lost-found: use git rev-parse -q
      pull: use git rev-parse -q
      rebase: use git rev-parse -q
      submodule: use git rev-parse -q
      http.c: use 'git_config_string' to get 'curl_http_proxy'

Nguyễn Thái Ngọc Duy (1):
      Extend index to save more flags

Paul Mackerras (3):
      gitk: Fix context menu items for generating diffs when in tree mode
      gitk: Highlight only when search type is "containing:".
      gitk: Fix bug in accessing undefined "notflag" variable

Scott Chacon (1):
      Add a built-in alias for 'stage' to the 'add' command

Thomas Rast (1):
      fetch-pack: Avoid memcpy() with src==dst

Tor Arvid Lund (1):
      git-p4: Fix bug in p4Where method.


Version v1.6.1-rc1; changes since v1.6.0.6:
-------------------------------------------

Abhijit Menon-Sen (1):
      Make cherry-pick use rerere for conflict resolution.

Alex Riesen (11):
      Extend "checkout --track" DWIM to support more cases
      Remove calculation of the longest command name from where it is not used
      Remove useless memset of static command name lists in builtin-merge.c
      Make main_cmds and other_cmds local to builtin-help.c
      Allow git help work without PATH set
      list_commands: only call git_exec_path if it is needed
      Add help.autocorrect to enable/disable autocorrecting
      Cleanup remove_path
      Fix potentially dangerous uses of mkpath and git_path
      Fix handle leak in sha1_file/unpack_objects if there were damaged object data
      Fix t4030-diff-textconv.sh

Alexander Gavrilov (58):
      git-gui: Support starting gitk from Gui Blame
      git-gui: Support passing blame to a parent commit.
      git-gui: Better positioning in Blame Parent Commit
      git-gui: Allow specifying an initial line for git gui blame.
      gitk: Add option to specify the default commit on command line
      gitk: Add menu item for calling git gui blame
      git-gui: Support resolving conflicts via the diff context menu.
      git-gui: Support calling merge tools.
      git-gui: Don't allow staging files with conflicts.
      git-gui: Support more merge tools.
      git-gui: Support conflict states _U & UT.
      git-gui: Reimplement and enhance auto-selection of diffs.
      git-gui: Make F5 reselect a diff, if an untracked file is selected.
      git-gui: Show special diffs for complex conflict cases.
      git-gui: Fix Blame Parent & Context for working copy lines.
      git-gui: Restore ability to Stage Working Copy for conflicts.
      gitk: Fix a bug in collapsing deeply nested trees
      git-gui: Add more integration options to citool.
      git-gui: Cleanup handling of the default encoding.
      git-gui: Add a menu of available encodings.
      git-gui: Allow forcing display encoding for diffs using a submenu.
      git-gui: Optimize encoding name resolution using a lookup table.
      git-gui: Support the encoding menu in gui blame.
      git-gui: Reenable staging unmerged files by clicking the icon.
      git-gui: Make Ctrl-T safe to use for conflicting files.
      git-gui: Fix the blame window shape.
      git-gui: Add a search command to the blame viewer.
      git-gui: Fix the blame viewer destroy handler.
      gitk: Enhance file encoding support
      gitk: Implement batch lookup and caching of encoding attrs
      gitk: Allow forcing branch creation if it already exists
      gitk: Fix file list context menu for merge commits
      builtin-blame: Reencode commit messages according to git-log rules.
      gitk: Allow starting gui blame for a specific line
      git-gui: Add a dialog that shows the OpenSSH public key.
      git-gui: Add a simple implementation of SSH_ASKPASS.
      Windows: Make OpenSSH properly detect tty detachment.
      gitweb: Use single implementation of export_ok check.
      gitweb: Add a per-repository authorization hook.
      gitweb: Fix mod_perl support.
      gitk: Add Return and Escape bindings to dialogs
      gitk: Make gitk dialog windows transient
      gitk: Make cherry-pick call git-citool on conflicts
      gitk: Implement a user-friendly Edit View dialog
      git-gui: Fix focus transition in the blame viewer.
      git-gui: Add the Show SSH Key item to the clone dialog.
      git-gui: Request blame metadata in utf-8.
      gitk: Add accelerators to frequently used menu commands
      gitk: Fix transient windows on Win32 and MacOS
      gitk: Fix commit encoding support
      Documentation: New GUI configuration and command-line options.
      git-gui: Implement system-wide configuration handling.
      git-gui: Fix the after callback execution in rescan.
      git-gui: Add a Tools menu for arbitrary commands.
      git-gui: Allow Tools request arguments from the user.
      git-gui: Implement automatic rescan after Tool execution.
      git-gui: Fix the search bar destruction handler.
      gitk: Avoid handling the Return key twice in Add Branch

Alexandre Julliard (9):
      git.el: Improve error handling for commits.
      git.el: Remove the env parameter in git-call-process and git-call-process-string.
      git.el: Simplify handling of merge heads in the commit log-edit buffer.
      git.el: Properly handle merge commits in git-amend-commit.
      git.el: Fix git-amend-commit to support amending an initial commit.
      git.el: Never clear the status buffer, only update the files.
      git.el: Add an insert file command.
      git.el: Add possibility to mark files directly in git-update-status-files.
      git.el: Allow to commit even if there are no marked files.

Anders Melchiorsen (2):
      wt-status: Split header generation into three functions
      wt-status: Teach how to discard changes in the working directory

Andreas Ericsson (3):
      Teach "git diff -p" to locate PHP class methods
      git commit: Reformat output somewhat
      rebase: Support preserving merges in non-interactive mode

Arjen Laarhoven (1):
      t6023-merge-file: Work around non-portable sed usage

Bert Wesarg (1):
      for-each-ref: `:short` format for `refname`

Brandon Casey (9):
      remote.c: add a function for deleting a refspec array and use it (twice)
      dir.c: Avoid c99 array initialization
      t4018-diff-funcname: test syntax of builtin xfuncname patterns
      diff.c: remove duplicate bibtex pattern introduced by merge 92bb9785
      xdiff-interface.c: strip newline (and cr) from line before pattern matching
      Replace xmalloc/memset(0) pairs with xcalloc
      t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
      Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer
      t4018-diff-funcname: add objective-c xfuncname pattern to syntax test

Brian Downing (4):
      Make xdi_diff_outf interface for running xdiff_outf diffs
      Use strbuf for struct xdiff_emit_state's remainder
      Always initialize xpparam_t to 0
      Allow alternate "low-level" emit function from xdl_diff

Brian Gernhardt (2):
      format-patch: autonumber by default
      Avoid using non-portable `echo -n` in tests.

Cheng Renquan (2):
      git-remote: match usage string with the manual pages
      git-remote: add verbose mode to git remote update

Christian Couder (10):
      merge-base: teach "git merge-base" to drive underlying merge_bases_many()
      bisect: test merge base if good rev is not an ancestor of bad rev
      bisect: only check merge bases when needed
      bisect: remove "checkout_done" variable used when checking merge bases
      refs: improve comments about "reading" argument of "resolve_ref"
      bisect: fix missing "exit"
      Documentation: user-manual: add information about "git help" at the beginning
      Documentation: tutorial: add information about "git help" at the beginning
      git-gui: french translation update
      bisect: teach "skip" to accept special arguments like "A..B"

Christian Stimming (5):
      git-gui: Mark forgotten strings for translation.
      git-gui: I18n fix sentence parts into full sentences for translation again.
      git-gui: Updated German translation.
      gitk: Add untranslated error messages to translation
      git-gui: Update German translation.

Dan Hensgen (1):
      git-merge documentation: more details about resolving conflicts

Daniel Lowe (1):
      Fix non-literal format in printf-style calls

David Aguilar (3):
      git-submodule: replace duplicated code with a module_list function
      git-submodule: add "sync" command
      tests: add a testcase for "git submodule sync"

David Bryson (1):
      Use "git_config_string" to simplify "builtin-gc.c" code where "prune_expire" is set

David M. Syzdek (5):
      Build: add NO_UINTMAX_T to support ancient systems
      Add Makefile check for FreeBSD 4.9-SECURITY
      autoconf: Add link tests to each AC_CHECK_FUNC() test
      Make Pthread link flags configurable
      Add autoconf tests for pthreads

David Soria Parra (1):
      cast pid_t's to uintmax_t to improve portability

David Symonds (1):
      git-diff: Add --staged as a synonym for --cached.

Davide Libenzi (1):
      xdiff: give up scanning similar lines early

Deskin Miller (4):
      git-svn: testcase for partial rebuild
      git-svn: do a partial rebuild if rev_map is out-of-date
      git-svn: proper detection of bare repositories
      git-svn: proper detection of bare repositories

Dmitry Potapov (14):
      teach index_fd to work with pipes
      correct argument checking test for git hash-object
      correct usage help string for git-hash-object
      use parse_options() in git hash-object
      add --path option to git hash-object
      add --no-filters option to git hash-object
      mingw: remove use of _getdrive() from lstat/fstat
      add have_git_dir() function
      mingw: move common functionality to win32.h
      cygwin: Use native Win32 API for stat
      do not segfault if make_cache_entry failed
      print an error message for invalid path
      check-attr: add an internal check_attr() function
      check-attr: Add --stdin option

Dotan Barak (1):
      Use xmalloc() and friends to catch allocation failures

Eric Wong (7):
      git-svn: check error code of send_txstream
      t9124: clean up chdir usage
      git-svn: fix handling of even funkier branch names
      git-svn: don't escape tilde ('~') for http(s) URLs
      git-svn: respect i18n.commitencoding config
      git-svn: don't escape tilde ('~') for http(s) URLs
      git-svn: respect i18n.commitencoding config

Florian Ragwitz (1):
      Add git-svn branch to allow branch creation in SVN repositories

Florian Weimer (3):
      git-svn: extract base blob in generate_diff
      git-svn: Introduce SVN::Git::Editor::_chg_file_get_blob
      git-svn: Send deltas during commits

Fredrik Skolmli (1):
      Documentation: Spelling fix

Garry Dolley (1):
      Fixed some grammatical errors in git-rebase.txt documentation.

Giovanni Funchal (1):
      configure: auto detect dynamic library path switches

Giuseppe Bilotta (12):
      gitweb: ref markers link to named shortlogs
      gitweb: shortlog now also obeys $hash_parent
      gitweb: refactor input parameters parse/validation
      gitweb: parse project/action/hash_base:filename PATH_INFO
      gitweb: generate project/action/hash URLs
      gitweb: use_pathinfo filenames start with /
      gitweb: parse parent..current syntax from PATH_INFO
      gitweb: generate parent..current URLs
      gitweb: make the supported snapshot formats array global
      gitweb: retrieve snapshot format from PATH_INFO
      gitweb: embed snapshot format parameter in PATH_INFO
      git-gui: try to provide a window icon under X

Gustaf Hendeby (2):
      Update .gitignore to ignore git-help
      git-gui: Teach git gui about file type changes

Heikki Orsila (1):
      diff --dirstat-by-file: count changed files, not lines

Jakub Narębski (1):
      gitweb: Better processing format string in custom links in navbar

Jan Krüger (1):
      Introduce receive.denyDeletes

Jeff King (28):
      run-command: add pre-exec callback
      spawn pager via run_command interface
      format-patch: use default diff format even with patch options
      tests: grep portability fixes
      reformat informational commit message
      tutorial: update output of git commit
      tests: shell negation portability fix
      t4012: use test_cmp instead of cmp
      diff: unify external diff and funcname parsing code
      diff: introduce diff.<driver>.binary
      diff: add filter for converting binary to text
      document "intent to add" option to git-add
      rm: loosen safety valve for empty files
      submodule: fix some non-portable grep invocations
      diff: add missing static declaration
      document the diff driver textconv feature
      refactor userdiff textconv code
      userdiff: require explicitly allowing textconv
      only textconv regular files
      wt-status: load diff ui config
      add userdiff textconv tests
      enable textconv for diff in verbose status/commit
      t5400: expect success for denying deletion
      t5516: refactor oddball tests
      receive-pack: detect push to current branch of non-bare repo
      define empty tree sha1 as a macro
      wt-status: refactor initial commit printing
      status: show "-v" diff even for initial commit

Jim Meyering (4):
      add boolean diff.suppress-blank-empty config option
      SubmittingPatches: fix a typo
      reword --full-index description
      xdiff-interface.c: remove 10 duplicated lines

Joey Hess (2):
      git-daemon: set REMOTE_ADDR to client address
      sha1_file: avoid bogus "file exists" error message

Johan Herland (3):
      Teach "git diff -p" HTML funcname patterns
      Fix AsciiDoc errors in merge documentation
      Fix submodule sync with relative submodule URLs

Johannes Schindelin (7):
      t9700: remove useless check
      tests: Clarify dependencies between tests, 'aggregate-results' and 'clean'
      Enable parallel tests
      checkout --track: make up a sensible branch name if '-b' was omitted
      test-lib: do not remove trash_directory if called with --debug
      git wrapper: DWIM mistyped commands
      Document levenshtein.c

Johannes Sixt (11):
      Revert "Windows: Use a customized struct stat that also has the st_blocks member."
      filter-branch: Grok special characters in tag names
      Windows: git-shell can be compiled again
      compat/mingw: Support a timeout in the poll emulation if no fds are given
      git-gui: Do not automatically stage file after merge tool finishes
      git-gui: Remove space from the end of aspell's reply before processing
      git-gui: Fix switch statement in lib/merge.tcl
      git-gui: Show a round number of bytes of large untracked text files
      git-gui: Mark-up strings in show_{other,unmerged}_diff() for localization
      git-remote: list branches in vertical lists
      git-gui: Do not munge conflict marker lines in a normal diff

John Chapman (2):
      git-p4: Support purged files and optimize memory usage
      git-p4: Cache git config for performance

Jonas Fonseca (1):
      git-check-attr(1): use 'verse' for multi-line synopsis sections

Jonathan del Strother (3):
      Revert "Convert output messages in merge-recursive to past tense."
      Add OS X support to the pre-auto-gc example hook
      Teach git diff about Objective-C syntax

Joshua Williams (1):
      git-gui: Add support for calling out to the prepare-commit-msg hook

Junio C Hamano (78):
      builtin-add.c: restructure the code for maintainability
      builtin-add.c: optimize -A option and "git add ."
      imap-send.c: more style fixes
      documentation: merge-base: explain "git merge-base" with more than 2 args
      merge-base-many: add trivial tests based on the documentation
      git-merge-octopus: use (merge-base A (merge B C D E...)) for stepwise merge
      revision.c: whitespace fix
      revision traversal: show full history with merge simplification
      Topo-sort before --simplify-merges
      update-index: refuse to add working tree items beyond symlinks
      add: refuse to add working tree items beyond symlinks
      xdiff-interface: hide the whole "xdiff_emit_state" business from the caller
      revision --simplify-merges: use decoration instead of commit->util field
      index: future proof for "extended" index entries
      tests: use $TEST_DIRECTORY to refer to the t/ directory
      Start 1.6.1 cycle
      Makefile: Allow CC_LD_DYNPATH to be overriden
      revision --simplify-merges: do not leave commits unprocessed
      revision --simplify-merges: make it a no-op without pathspec
      compat: introduce on_disk_bytes()
      shell: do not play duplicated definition games to shrink the executable
      Build-in "git-shell"
      Update draft release notes for 1.6.1
      Fix "git-merge -s bogo" help text
      templates/Makefile: install is unnecessary, just use mkdir -p
      t7606: fix custom merge test
      Revert "Build-in "git-shell""
      daemon.c: minor style fixup
      checkout -f: allow ignoring unmerged paths when checking out of the index
      checkout --ours/--theirs: allow checking out one side of a conflicting merge
      xdl_fill_merge_buffer(): separate out a too deeply nested function
      xdiff-merge: optionally show conflicts in "diff3 -m" style
      xmerge.c: minimum readability fixups
      xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less
      rerere.c: use symbolic constants to keep track of parsing states
      rerere: understand "diff3 -m" style conflicts with the original
      merge.conflictstyle: choose between "merge" and "diff3 -m" styles
      git-merge-recursive: learn to honor merge.conflictstyle
      checkout -m: recreate merge when checking out of unmerged index
      diff: vary default prefix depending on what are compared
      git commit --author=$name: look $name up in existing commits
      git-add --intent-to-add (-N)
      checkout --conflict=<style>: recreate merge in a non-default style
      git-merge documentation: describe how conflict is presented
      Update draft release notes for 1.6.1
      safe_create_leading_directories(): make it about "leading" directories
      git-apply:--include=pathspec
      Update draft release notes for 1.6.1
      daemon.c: avoid setlinebuf()
      is_directory(): a generic helper function
      receive-pack: make it a builtin
      push: prepare sender to receive extended ref information from the receiver
      push: receiver end advertises refs from alternate repositories
      Fix git-diff-tree --stdin
      diff: use extended regexp to find hunk headers
      diff: fix "multiple regexp" semantics to find hunk header comment
      Update draft release notes to 1.6.1
      t5510: test "git fetch" following tags minimally
      Update draft release notes to 1.6.1
      Fix reading of cloud tags
      Update draft release notes for 1.6.1
      Fix mismerge at cdb22c4 in builtin-checkout.c
      rebase-i-p: minimum fix to obvious issues
      git-rebase--interactive.sh: comparision with == is bashism
      receive-pack: fix "borrowing from alternate object store" implementation
      compat/cygwin.c: make runtime detection of lstat/stat lessor impact
      Stop using compat/regex.c on platforms with working regexp library
      Update draft release notes to 1.6.1
      Update draft release notes to 1.6.1
      Update draft release notes to 1.6.1
      t5303: work around printf breakage in dash
      t5303: fix printf format string for portability
      git.html: Update the links to stale versions
      Update draft release notes to 1.6.1
      builtin-remote.c: plug a small memory leak in get_one_remote_for_updates()
      send-email: do not reverse the command line arguments
      Include git-gui--askpass in git-gui RPM package
      GIT 1.6.1-rc1

Karl Wiberg (4):
      Refactoring: Split up diff_tree_stdin
      diff-tree: Note that the commit ID is printed with --stdin
      Teach git diff-tree --stdin to diff trees
      Add test for diff-tree --stdin with two trees

Kirill Smelkov (1):
      Teach "git diff -p" Python funcname patterns

Lee Marlow (2):
      bash completion: Add 'workflows' to 'git help'
      workflows documentation: fix link to git-request-pull[1]

Linus Torvalds (8):
      date/time: do not get confused by fractional seconds
      Add a 'source' decorator for commits
      revision: make tree comparison functions take commits rather than trees
      Make '--decorate' set an explicit 'show_decorations' flag
      revision traversal: '--simplify-by-decoration'
      Add cache preload facility
      Fix machine-parseability of 'git log --source'
      Fix index preloading for racy dirty case

Marcel Koeppen (1):
      t9129-git-svn-i18n-commitencoding: Make compare_svn_head_with() compatible with OSX sed

Marcus Griep (2):
      count-objects: Add total pack size to verbose output
      Update t/.gitignore to ignore all trash directories

Marek Zawirski (1):
      Make push more verbose about illegal combination of options

Mark Burton (2):
      Documentation: rev-list-options.txt: added --branches, --tags & --remotes.
      git-commit.txt - mention that files listed on the command line must be known to git.

Mark Levedahl (5):
      git-submodule - Add 'foreach' subcommand
      git-submodule.sh - Remove trailing / from URL if found
      git-submodule.sh - Remove trailing / from URL if found
      git-submodule - Use "get_default_remote" from git-parse-remote
      compat/cygwin.c - Use cygwin's stat if core.filemode == true

Markus Heidelberg (1):
      Makefile: add install-man rules (quick and normal)

Marten Svanfeldt (dev) (2):
      Git.pm: Make _temp_cache use the repository directory
      git-svn: Update git-svn to use the ability to place temporary files within repository directory

Matt McCutchen (2):
      "git diff <tree>{3,}": do not reverse order of arguments
      git-merge-recursive: honor merge.conflictstyle once again

Matthias Kestenholz (1):
      bash-completion: Add all submodule subcommands to the completion list

Michael J Gruber (3):
      allow installation of man and html doc from the man and html branches
      separate build targets for man and html documentation
      make prune report removed objects on -v

Michael Witten (9):
      Docs: send-email's usage text and man page mention same options
      Docs: send-email usage text much sexier
      Docs: send-email: Man page option ordering
      send-email: change --no-validate to boolean --[no-]validate
      Docs: send-email: --chain_reply_to -> --[no-]chain-reply-to
      Docs: send-email: Remove unnecessary config variable description
      Docs: send-email: Create logical groupings for --help text
      Docs: send-email: Create logical groupings for man text
      send-email: signedoffcc -> signedoffbycc, but handle both

Michele Ballabio (1):
      git gui: update Italian translation

Mikael Magnusson (1):
      Correct output of git-count-objects.

Mike Ralphson (1):
      gitweb: Sort the list of forks on the summary page by age

Miklos Vajna (36):
      builtin-help: make some internal functions available to other builtins
      builtin-merge: allow using a custom strategy
      Add a new test for using a custom merge strategy
      Add a second testcase for handling invalid strategies in git-merge
      builtin-help: always load_command_list() in cmd_help()
      Builtin git-help.
      Split out merge_recursive() to merge-recursive.c
      merge-recursive: introduce merge_options
      builtin-merge: avoid run_command_v_opt() for recursive and subtree
      cherry-pick/revert: make direct internal call to merge_tree()
      merge-recursive: move call_depth to struct merge_options
      merge-recursive: get rid of the index_only global variable
      merge-recursive: move the global obuf to struct merge_options
      merge-recursive: move current_{file,directory}_set to struct merge_options
      merge-recursive: get rid of virtual_id
      builtin-merge: release the lockfile in try_merge_strategy()
      commit_tree(): add a new author parameter
      builtin-commit: use commit_tree()
      t7603: add new testcases to ensure builtin-commit uses reduce_heads()
      builtin-merge: refresh the index before calling a strategy
      builtin-commit: use reduce_heads() only when appropriate
      Cleanup in sha1_file.c::cache_or_unpack_entry()
      Implement git clone -v
      Add Linux PPC support to the pre-auto-gc example hook
      parse-opt: migrate builtin-checkout-index.
      Implement git remote rename
      remote: add a new 'origin' variable to the struct
      git-remote rename: migrate from remotes/ and branches/
      git-remote: document the migration feature of the rename subcommand
      Update Hungarian translation. 100% completed.
      builtin-branch: use strbuf in delete_branches()
      builtin-branch: use strbuf in fill_tracking_info()
      builtin-branch: use strbuf in rename_branch()
      builtin-clone: use strbuf in guess_dir_name()
      builtin-clone: use strbuf in clone_local() and copy_or_link_directory()
      builtin_clone: use strbuf in cmd_clone()

Nanako Shiraishi (22):
      t/t91XX-svn: start removing use of "git-" from these tests
      t/t91XX git-svn tests: run "git svn" not "git-svn"
      t9200: use "git cvsexportcommit" without dash
      t9300, t9301: use "git fast-import/fast-export" without dash
      t9700: use "git config" without dash
      tests: use "git foo" without dash in strings
      t9101: use "git hash-object" without dash
      Install git-cvsserver in $(bindir)
      remote.c: make free_ref(), parse_push_refspec() and free_refspecs() static.
      graph.c: make many functions static
      usage.c: remove unused functions
      Add contrib/rerere-train script
      dir.c: make dir_add_name() and dir_add_ignored() static
      run-command.c: remove run_command_v_opt_cd()
      config.c: make git_parse_long() static
      commit.c: make read_graft_file() static
      archive.c: make archiver static
      rebase --no-verify
      rebase: Document --no-verify option to bypass pre-rebase hook
      Document "git log --source"
      Document "git log --simplify-by-decoration"
      git-gui: update Japanese translation

Neil Roberts (1):
      config.mak.in: Pass on LDFLAGS from configure

Nicolas Pitre (18):
      sha1write: don't copy full sized buffers
      pack-objects: don't include missing preferred base objects
      t5300: improve SHA1 collision test
      fix openssl headers conflicting with custom SHA1 implementations
      index-pack: rationalize delta resolution code
      index-pack: smarter memory usage during delta resolution
      fix multiple issues in index-pack
      improve index-pack tests
      index-pack: don't leak leaf delta result
      close another possibility for propagating pack corruption
      better validation on delta base object offsets
      make unpack_object_header() non fatal
      make packed_object_info() resilient to pack corruptions
      make check_object() resilient to pack corruptions
      make find_pack_revindex() aware of the nasty world
      pack-objects: allow "fixing" a corrupted pack without a full repack
      extend test coverage for latest pack corruption resilience improvements
      pack-objects: don't leak pack window reference when splitting packs

Paolo Bonzini (1):
      provide more errors for the "merge into empty head" case

Paul Mackerras (17):
      gitk: Use <Button-2> for context menus on OSX
      gitk: Clean up file encoding code and add enable/disable option
      gitk: Fix binding for <Return> in sha1 entry field
      gitk: New way of constructing menus that allows for Alt+letter accelerators
      gitk: Regenerate .po files
      gitk: Turn short SHA1 names into links too
      gitk: Fix some off-by-one errors in computing which line to blame
      gitk: Add a menu item to show where a given line comes from
      gitk: Make the background color of marked lines configurable
      gitk: Unify handling of merge diffs with normal 2-way diffs
      gitk: Make "show origin of this line" work on fake commits
      gitk: Cope with unmerged files in local changes
      gitk: Improve cherry-pick error handling
      gitk: Fix linehtag undefined error with file highlighting
      gitk: Index line[hnd]tag arrays by id rather than row number
      gitk: Fix switch statement in parseviewargs
      gitk: Show local changes properly when we have a path limit

Paul Talacko (1):
      git-svn: set auto_props when renaming files

Pete Harlan (2):
      contrib/hooks/post-receive-email: Put rev display in separate function
      contrib/hooks/post-receive-email: Make revision display configurable

Peter Krefting (1):
      Updated Swedish translation (514t0f0u).

Peter Valdemar Mørch (2):
      Teach git log --check to return an appropriate exit code
      Teach git log --exit-code to return an appropriate exit code

Petr Baudis (22):
      git-web--browse: Support for using /bin/start on MinGW
      git-gui: Clarify the Remote -> Delete... action
      git-gui: Squash populate_{push,fetch}_menu to populate_remotes_menu
      git-gui: Add support for adding remotes
      git-gui: Add support for removing remotes
      git-gui: mkdir -p when initializing new remote repository
      git-gui: Use git web--browser for web browsing
      git-gui: Add Explore Working Copy to the Repository menu
      git-gui: gui.autoexplore makes explorer to pop up automatically after picking
      git-gui: Avoid using the term URL when specifying repositories
      git-gui: Make input boxes in init/clone/open dialogs consistent
      git-gui: Fix removing non-pushable remotes
      git-gui: Fix fetching from remotes when adding them
      gitweb: Clean-up sorting of project list
      gitweb: Quote non-displayable characters in hex, not octal
      config.c: Tolerate UTF8 BOM at the beginning of config file
      gitweb: Identify all summary metadata table rows
      gitweb: Add support for extending the action bar with custom links
      gitweb: Support for tag clouds
      gitweb: Make the by_tag filter delve in forks as well
      gitweb: Support for simple project search form
      Do not rename read-only files during a push

Pierre Habouzit (8):
      Enable threaded delta search on *BSD and Linux.
      parse-opt: migrate fmt-merge-msg.
      parse-opt: migrate git-merge-base.
      parse-opt: migrate builtin-merge-file.
      git send-email: make the message file name more specific.
      git send-email: interpret unknown files as revision lists
      git send-email: add --annotate option
      git send-email: ask less questions when --compose is used.

Pieter de Bie (3):
      builtin-reflog: Allow reflog expire to name partial ref
      builtin-commit.c: show on which branch a commit was added
      git wrapper: also use aliases to correct mistyped commands

Quy Tonthat (1):
      Update RPM spec for the new location of git-cvsserver.

Ralf Wildenhues (2):
      Correct typos in RelNotes-1.6.1
      Fix typos in the documentation.

Raphael Zimmerer (1):
      git grep: Add "-z/--null" option as in GNU's grep.

René Scharfe (15):
      log: add load_ref_decorations()
      move load_ref_decorations() to log-tree.c and export it
      add '%d' pretty format specifier to show decoration
      add alloc_ref_with_prefix()
      use alloc_ref_from_str() everywhere
      make alloc_ref_from_str() the new alloc_ref()
      blame: inline get_patch()
      add xdi_diff_hunks() for callers that only need hunk lengths
      blame: use xdi_diff_hunks(), get rid of struct patch
      add strbuf_expand_dict_cb(), a helper for simple cases
      merge-recursive: use strbuf_expand() instead of interpolate()
      daemon: use strbuf_expand() instead of interpolate()
      daemon: inline fill_in_extra_table_entries()
      daemon: deglobalize variable 'directory'
      remove the unused files interpolate.c and interpolate.h

Richard Quirk (1):
      gitk: Bind Key-Return to create on new branch dialog

Robert Shearman (4):
      git-imap-send: Allow the program to be run from subdirectories of a git tree
      git-imap-send: Support SSL
      imap-send.c: style fixes
      Documentation: Improve documentation for git-imap-send(1)

Romain Francoise (1):
      builtin-help: fallback to GIT_MAN_VIEWER before man

SZEDER Gábor (3):
      bash: use for-each-ref format 'refname:short'
      remove vim syntax highlighting in favor of upstream
      bash: complete full refs

Samuel Tardieu (1):
      Fix deletion of last character in levenshtein distance

Santi Béjar (1):
      rev-list documentation: clarify the two parts of history simplification

Shawn O. Pearce (7):
      Make reflog query '@{1219188291}' act as '@{2008.8.19.16:24:51.-0700}'
      git-gui: Hide commit related UI during citool --nocommit
      git-gui: Use gitattribute "encoding" for file content display
      git-gui: Assume `blame --incremental` output is in UTF-8
      git-gui: Show/hide "Sign Off" based on nocommitmsg option
      describe: Make --tags and --all match lightweight tags more often
      Update the po template

Simon Hausmann (1):
      Make it possible to abort the submission of a change to Perforce

Stephan Beyer (2):
      Fix commit_tree() buffer leak
      merge-recursive.c: Add more generic merge_recursive_generic()

Stephen Haberman (8):
      rebase--interactive: fix parent rewriting for dropped commits
      rebase-i-p: test to exclude commits from todo based on its parents
      rebase-i-p: use HEAD for updating the ref instead of mapping OLDHEAD
      rebase-i-p: delay saving current-commit to REWRITTEN if squashing
      rebase-i-p: fix 'no squashing merges' tripping up non-merges
      rebase-i-p: only list commits that require rewriting in todo
      rebase-i-p: do not include non-first-parent commits touching UPSTREAM
      rebase-i-p: if todo was reordered use HEAD as the rewritten parent

Stephen R. van den Berg (4):
      git-daemon: call logerror() instead of error()
      git-daemon: use LOG_PID, simplify logging code
      git-daemon: Simplify dead-children reaping logic
      git-daemon: rewrite kindergarden, new option --max-connections

Teemu Likonen (1):
      bash completion: Add --[no-]validate to "git send-email"

Thomas Rast (19):
      filter-branch: Extend test to show rewriting bug
      filter-branch: fix ref rewriting with --subdirectory-filter
      filter-branch: use --simplify-merges
      Documentation: rev-list-options: move --simplify-merges documentation
      rev-list: fix --reverse interaction with --parents
      t6013: replace use of 'tac' with equivalent Perl
      git svn: catch lack of upstream info for dcommit earlier
      git svn info: tests: let 'init' test run with SVN 1.5
      git svn info: tests: do not use set -e
      git svn info: tests: use test_cmp instead of git-diff
      git svn info: tests: fix ptouch argument order in setup
      git svn info: make info relative to the current directory
      git svn info: always quote URLs in 'info' output
      git-svn: match SVN 1.5 behaviour of info' on unknown item
      git-svn: fix 'info' tests for unknown items
      Documentation: new upstream rebase recovery section in git-rebase
      Documentation: Refer to git-rebase(1) to warn against rewriting
      Documentation: remove stale howto/rebase-and-edit.txt
      Documentation: add manpage about workflows

Tom Preston-Werner (1):
      connect.c: add a way for git-daemon to pass an error back to client

Tommi Virtanen (1):
      Install git-shell in bindir, too

Tor Arvid Lund (1):
      git-p4: Fix checkout bug when using --import-local.

Trent Piepho (1):
      send-email: Fix Pine address book parsing

Tuncer Ayaz (2):
      Teach/Fix pull/fetch -q/-v options
      Retain multiple -q/-v occurrences in git pull


Version v1.6.0.6; changes since v1.6.0.5:
-----------------------------------------

David Aguilar (1):
      git-mergetool: properly handle "git mergetool -- filename"

Deskin Miller (1):
      git-svn: Make following parents atomic

Jim Meyering (1):
      git-config.txt: fix a typo

Johannes Schindelin (2):
      fast-import: close pack before unlinking it
      fast-export: deal with tag objects that do not have a tagger

Junio C Hamano (6):
      work around Python warnings from AsciiDoc
      git-show: do not segfault when showing a bad tag
      pager: do not dup2 stderr if it is already redirected
      gitweb: do not run "git diff" that is Porcelain
      GIT 1.5.4.7
      fast-import: make tagger information optional

Linus Torvalds (1):
      fsck: reduce stack footprint

Markus Heidelberg (1):
      Documentation: fix typos, grammar, asciidoc syntax

Miklos Vajna (1):
      SubmittingPatches: mention the usage of real name in Signed-off-by: lines

Nicolas Pitre (1):
      make sure packs to be replaced are closed beforehand

Wu Fengguang (1):
      git-send-email: handle email address with quoted comma


Version v1.6.0.5; changes since v1.6.0.4:
-----------------------------------------

Alexandre Julliard (2):
      checkout: Don't crash when switching away from an invalid branch.
      git-submodule: Avoid printing a spurious message.

Brandon Casey (12):
      t7700: demonstrate mishandling of objects in packs with a .keep file
      packed_git: convert pack_local flag into a bitfield and add pack_keep
      pack-objects: new option --honor-pack-keep
      repack: don't repack local objects in packs with .keep file
      repack: do not fall back to incremental repacking with [-a|-A]
      builtin-gc.c: use new pack_keep bitfield to detect .keep file existence
      t7700: demonstrate mishandling of loose objects in an alternate ODB
      sha1_file.c: split has_loose_object() into local and non-local counterparts
      pack-objects: extend --local to mean ignore non-local loose objects too
      t7700: test that 'repack -a' packs alternate packed objects
      repack: only unpack-unreachable if we are deleting redundant packs
      revision.c: use proper data type in call to sizeof() within xrealloc

Bryan Drewery (1):
      Fix misleading wording for git-cherry-pick

Christian Couder (3):
      Documentation: rev-list: change a few instances of "git-cmd" to "git cmd"
      Documentation: bisect: change a few instances of "git-cmd" to "git cmd"
      Documentation: fix links to "everyday.html"

Daniel Lowe (1):
      Fix non-literal format in printf-style calls

Davide Libenzi (1):
      xdiff: give up scanning similar lines early

Jakub Narębski (1):
      gitweb: Make project specific override for 'grep' feature work

Jan Krüger (1):
      Documentation: git-svn: fix example for centralized SVN clone

Jeff King (2):
      commit: Fix stripping of patch in verbose mode.
      tag: delete TAG_EDITMSG only on successful tag

Joey Hess (1):
      sha1_file: avoid bogus "file exists" error message

Johannes Schindelin (1):
      fast-export: use an unsorted string list for extra_refs

Johannes Sixt (1):
      compat/mingw.c: Teach mingw_rename() to replace read-only files

Junio C Hamano (8):
      Makefile: help people who run 'make check' by mistake
      checkout: Fix "initial checkout" detection
      Start 1.6.0.5 cycle
      builtin-ls-files.c: coding style fix.
      Teach ls-files --with-tree=<tree> to work with options other than -c
      Teach "git diff" to honour --[no-]ext-diff
      Update draft release notes to 1.6.0.5
      GIT 1.6.0.5

Linus Torvalds (1):
      date/time: do not get confused by fractional seconds

Martin Koegler (1):
      git push: Interpret $GIT_DIR/branches in a Cogito compatible way

Matt Kraai (1):
      Remove the period after the git-check-attr summary

Matt McCutchen (3):
      config.txt: alphabetize configuration sections
      git checkout: don't warn about unborn branch if -f is already passed
      "git diff <tree>{3,}": do not reverse order of arguments

Miklos Vajna (3):
      Add new testcase to show fast-export does not always exports all tags
      User's Manual: remove duplicated url at the end of Appendix B
      http.c: use 'git_config_string' to get 'curl_http_proxy'

Nguyễn Thái Ngọc Duy (1):
      generate-cmdlist.sh: avoid selecting synopsis at wrong place

Nicolas Pitre (1):
      Fix pack.packSizeLimit and --max-pack-size handling

Pete Wyckoff (1):
      git-p4: fix keyword-expansion regex

Ralf Wildenhues (1):
      Fix typos in the documentation.

SZEDER Gábor (2):
      bash: remove dashed command leftovers
      bash: offer refs instead of filenames for 'git revert'

Sam Vilain (1):
      sha1_file.c: resolve confusion EACCES vs EPERM

Samuel Tardieu (2):
      tag: Check that options are only allowed in the appropriate mode
      tag: Add more tests about mixing incompatible modes and options

Stefan Naewe (2):
      git ls-remote: make usage string match manpage
      request-pull: make usage string match manpage

Thomas Rast (1):
      fetch-pack: Avoid memcpy() with src==dst


Version v1.6.0.4; changes since v1.6.0.3:
-----------------------------------------

Alex Riesen (10):
      Add mksnpath which allows you to specify the output buffer
      Fix mkpath abuse in dwim_ref and dwim_log of sha1_name.c
      Fix potentially dangerous uses of mkpath and git_path
      Plug a memleak in builtin-revert
      Add git_snpath: a .git path formatting routine with output buffer
      Fix potentially dangerous use of git_path in ref.c
      git_pathdup: returns xstrdup-ed copy of the formatted path
      Use git_pathdup instead of xstrdup(git_path(...))
      Add --verbose|-v to test-chmtime
      Use test-chmtime -v instead of perl in t5000 to get mtime of a file

Charles Bailey (1):
      git-archive: work in bare repos

Christian Jaeger (1):
      Git.pm: do not break inheritance

Clemens Buchacher (2):
      do not force write of packed refs
      push: fix local refs update if already up-to-date

Deskin Miller (2):
      git-svn: change dashed git-config to git config
      git-svn: change dashed git-commit-tree to git commit-tree

Gustaf Hendeby (1):
      git-gui: Help identify aspell version on Windows too

Jakub Narębski (1):
      Documentation/gitattributes: Add subsection header for each attribute

Jan Krüger (1):
      Documentation: clarify information about 'ident' attribute

Jeff King (5):
      refactor handling of "other" files in ls-files and status
      correct cache_entry allocation
      pack-objects: avoid reading uninitalized data
      fix overlapping memcpy in normalize_absolute_path
      send-pack: do not send out single-level refs such as refs/stash

Johannes Schindelin (1):
      Fix fetch/pull when run without --update-head-ok

Jonas Fonseca (1):
      asciidoc: add minor workaround to add an empty line after code blocks

Junio C Hamano (9):
      pull: allow "git pull origin $something:$current_branch" into an unborn branch
      Fix "checkout --track -b newbranch" on detached HEAD
      reset --hard/read-tree --reset -u: remove unmerged new paths
      demonstrate breakage of detached checkout with symbolic link HEAD
      Enhance hold_lock_file_for_{update,append}() API
      Start 1.6.0.4 cycle
      Update draft 1.6.0.4 release notes
      format-patch documentation: mention the special case of showing a single commit
      GIT 1.6.0.4

Linus Torvalds (1):
      Add file delete/create info when we overflow rename_limit

Markus Heidelberg (1):
      bash completion: add doubledash to "git show"

Mikael Magnusson (1):
      Document that git-log takes --all-match.

Miklos Vajna (5):
      Fix git branch -m for symrefs.
      rename_ref(): handle the case when the reflog of a ref does not exist
      Fix git update-ref --no-deref -d.
      git branch -m: forbid renaming of a symref
      update-ref --no-deref -d: handle the case when the pointed ref is packed

Nanako Shiraishi (1):
      Install git-cvsserver in $(bindir)

Pierre Habouzit (1):
      git send-email: avoid leaking directory file descriptors.

Quy Tonthat (1):
      Update RPM spec for the new location of git-cvsserver.

Thomas Rast (1):
      add -p: warn if only binary changes present

Tom Preston-Werner (1):
      add instructions on how to send patches to the mailing list with Gmail

Tommi Virtanen (1):
      Install git-shell in bindir, too

Yann Dirson (1):
      Add reference for status letters in documentation.


Version v1.6.0.3; changes since v1.6.0.2:
-----------------------------------------

Abhijit Bhopatkar (1):
      Documentation: Clarify '--signoff' for git-commit

Alec Berryman (2):
      git-svn: factor out svnserve test code for later use
      git-svn: Always create a new RA when calling do_switch for svn://

Alex Riesen (3):
      Remove empty directories in recursive merge
      Add remove_path: a function to remove as much as possible of a path
      Use remove_path from dir.c instead of own implementation

Alexander Gavrilov (1):
      builtin-blame: Fix blame -C -C with submodules.

Björn Steinbrink (1):
      force_object_loose: Fix memory leak

Brandon Casey (14):
      t9700/test.pl: avoid bareword 'STDERR' in 3-argument open()
      t9700/test.pl: remove File::Temp requirement
      diff.c: return pattern entry pointer rather than just the hunk header pattern
      diff.c: associate a flag with each pattern and use it for compiling regex
      diff.*.xfuncname which uses "extended" regex's for hunk header selection
      t4018-diff-funcname: test syntax of builtin xfuncname patterns
      builtin-prune.c: prune temporary packs in <object_dir>/pack directory
      git-stash.sh: don't default to refs/stash if invalid ref supplied
      builtin-merge.c: allocate correct amount of memory
      git-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)
      remote.c: correct the check for a leading '/' in a remote name
      t4018-diff-funcname: rework negated last expression test
      t4018-diff-funcname: demonstrate end of line funcname matching flaw
      xdiff-interface.c: strip newline (and cr) from line before pattern matching

Charles Bailey (2):
      Add new test to demonstrate git archive core.autocrlf inconsistency
      Make git archive respect core.autocrlf when creating zip format archives

Chris Frey (1):
      Documentation: clarify the details of overriding LESS via core.pager

Dan McGee (1):
      contrib: update packinfo.pl to not use dashed commands

Daniel Barkalow (1):
      Check early that a new branch is new and valid

David Soria Parra (1):
      Solaris: Use OLD_ICONV to avoid compile warnings

Deskin Miller (2):
      maint: check return of split_cmdline to avoid bad config strings
      git init: --bare/--shared overrides system/global config

Dmitry Potapov (4):
      git-rebase-interactive: do not squash commits on abort
      git-rebase--interactive: auto amend only edited commit
      make prefix_path() never return NULL
      do not segfault if make_cache_entry failed

Eric Raible (1):
      completion: git commit should list --interactive

Eric Wong (1):
      git-svn: fix handling of even funkier branch names

Fabrizio Chiarello (1):
      builtin-clone: fix typo

Garry Dolley (1):
      Clarified gitattributes documentation regarding custom hunk header.

Giuseppe Bilotta (1):
      gitweb: remove PATH_INFO from $my_url and $my_uri

Heikki Orsila (2):
      Start conforming code to "git subcmd" style part 3
      Cosmetical command name fix

Imre Deak (1):
      builtin-apply: fix typo leading to stack corruption

Jakub Narębski (2):
      gitweb: Fix two 'uninitialized value' warnings in git_tree()
      gitweb: Add path_info tests to t/t9500-gitweb-standalone-no-errors.sh

Jeff King (3):
      Makefile: do not set NEEDS_LIBICONV for Solaris 8
      git apply --directory broken for new files
      tests: shell negation portability fix

Joey Hess (1):
      gitweb: avoid warnings for commits without body

Johan Herland (2):
      for-each-ref: Fix --format=%(subject) for log message without newlines
      Use strchrnul() instead of strchr() plus manual workaround

Johannes Schindelin (2):
      git rm: refresh index before up-to-date check
      rebase -i: do not fail when there is no commit to cherry-pick

Johannes Sixt (2):
      git-remote: do not use user input in a printf format string
      git-push.txt: Describe --repo option in more detail

Jonas Fonseca (2):
      checkout: Do not show local changes when in quiet mode
      git-check-attr(1): add output and example sections

Junio C Hamano (15):
      discard_cache: reset lazy name_hash bit
      diff Porcelain: do not disable auto index refreshing on -C -C
      diff --quiet: make it synonym to --exit-code >/dev/null
      Don't verify host name in SSL certs when GIT_SSL_NO_VERIFY is set
      Fix permission bits on sources checked out with an overtight umask
      checkout: do not lose staged removal
      diff/diff-files: do not use --cc too aggressively
      Start draft release notes for 1.6.0.3
      diff: use extended regexp to find hunk headers
      diff hunk pattern: fix misconverted "\{" tex macro introducers
      Update draft release notes to 1.6.0.3
      diff(1): clarify what "T"ypechange status means
      Hopefully the final draft release notes update before 1.6.0.3
      Fix testcase failure when extended attributes are in use
      GIT 1.6.0.3

Linus Torvalds (1):
      fix bogus "diff --git" header from "diff --no-index"

Luc Heinrich (1):
      git-svn: call 'fatal' correctly in set-tree

Matt McCutchen (1):
      t1301-shared-repo.sh: don't let a default ACL interfere with the test

Michael J Gruber (1):
      make "git remote" report multiple URLs

Michael Prokop (1):
      Replace svn.foo.org with svn.example.com in git-svn docs (RFC 2606)

Mikael Magnusson (4):
      Typo "bogos" in format-patch error message.
      git-repack uses --no-repack-object, not --no-repack-delta.
      Fix a few typos in relnotes
      Typo "does not exists" when git remote update remote.

Miklos Vajna (2):
      test-lib: fix color reset in say_color()
      Add testcase to ensure merging an early part of a branch is done properly

Nanako Shiraishi (2):
      docs: describe pre-rebase hook
      Teach rebase -i to honor pre-rebase hook

Nicolas Pitre (2):
      fix pread()'s short read in index-pack
      rehabilitate 'git index-pack' inside the object store

Petr Baudis (1):
      Do not perform cross-directory renames when creating packs

Ping Yin (1):
      git-submodule: Fix "Unable to checkout" for the initial 'update'

Rafael Garcia-Suarez (1):
      Clarify commit error message for unmerged files

SZEDER Gábor (5):
      t0024: add executable permission
      Documentation: remove '\' in front of short options
      rebase -i: proper prepare-commit-msg hook argument when squashing
      rebase -i: remove leftover debugging
      bash: remove fetch, push, pull dashed form leftovers

Samuel Tardieu (1):
      Do not use errno when pread() returns 0

Shawn O. Pearce (3):
      Update release notes for 1.6.0.3
      Update release notes for 1.6.0.3
      test-lib: fix broken printf

Stephen Haberman (1):
      Clarify how the user can satisfy stash's 'dirty state' check.

Thomas Rast (1):
      sha1_file: link() returns -1 on failure, not errno

Todd Zullinger (1):
      Use dashless git commands in setgitperms.perl

Tuncer Ayaz (1):
      Fix fetch/clone --quiet when stdout is connected

Yann Dirson (1):
      Bust the ghost of long-defunct diffcore-pathspec.

martin f. krafft (1):
      Improve git-log documentation wrt file filters


Version v1.6.0.2; changes since v1.6.0.1:
-----------------------------------------

Alex Riesen (1):
      Fix use of hardlinks in "make install"

Alexander Gavrilov (1):
      git-gui: Fix string escaping in po2msg.sh

Alexandre Bourget (2):
      git-gui: Update french translation
      git-gui: update all remaining translations to French.

Andreas Färber (1):
      Makefile: always provide a fallback when hardlinks fail

Arjen Laarhoven (1):
      Use compatibility regex library for OSX/Darwin

Ask Bjørn Hansen (1):
      Document sendemail.envelopesender configuration

Björn Steinbrink (1):
      for-each-ref: Allow a trailing slash in the patterns

Clemens Buchacher (2):
      git gui: show diffs with a minimum of 1 context line
      clone: fix creation of explicitly named target directory

Gustaf Hendeby (1):
      Document clarification: gitmodules, gitattributes

Heikki Orsila (3):
      Start conforming code to "git subcmd" style
      Improve documentation for --dirstat diff option
      Start conforming code to "git subcmd" style part 2

Jeff King (4):
      Fix "git log -i --grep"
      pretty=format: respect date format options
      checkout: fix message when leaving detached HEAD
      Use compatibility regex library also on FreeBSD

Johan Herland (1):
      Bring local clone's origin URL in line with that of a remote clone

Johannes Sixt (1):
      Use compatibility regex library also on AIX

Jonas Fonseca (1):
      Fix passwd(5) ref and reflect that commit doens't use commit-tree

Junio C Hamano (17):
      ctype.c: protect tiny C preprocessor constants
      shell: do not play duplicated definition games to shrink the executable
      Fix example in git-name-rev documentation
      git-apply: Loosen "match_beginning" logic
      checkout: do not check out unmerged higher stages randomly
      gitattributes: -crlf is not binary
      diff: Help "less" hide ^M from the output
      'git foo' program identifies itself without dash in die() messages
      Start 1.6.0.2 maintenance cycle
      diff --cumulative is a sub-option of --dirstat
      log --author/--committer: really match only with name part
      "blame -c" should be compatible with "annotate"
      Mention the fact that 'git annotate' is only for backward compatibility.
      stash: refresh the index before deciding if the work tree is dirty
      Update draft release notes for 1.6.0.2
      Update draft release notes for 1.6.0.2
      GIT 1.6.0.2

Linus Torvalds (2):
      index-pack: be careful after fixing up the header/footer
      Fix '--dirstat' with cross-directory renaming

Marcus Griep (2):
      Git.pm: Use File::Temp->tempfile instead of ->new
      git-svn: Fixes my() parameter list syntax error in pre-5.8 Perl

Miklos Vajna (2):
      Makefile: add merge_recursive.h to LIB_H
      t7501: always use test_cmp instead of diff

Nanako Shiraishi (4):
      tests: use "git xyzzy" form (t0000 - t3599)
      tests: use "git xyzzy" form (t3600 - t6999)
      tests: use "git xyzzy" form (t7000 - t7199)
      tests: use "git xyzzy" form (t7200 - t9001)

Nguyễn Thái Ngọc Duy (6):
      index-pack: setup git repository
      diff*: fix worktree setup
      grep: fix worktree setup
      read-tree: setup worktree if merge is required
      update-index: fix worktree setup
      setup_git_directory(): fix move to worktree toplevel directory

Nicolas Pitre (7):
      discard revindex data when pack list changes
      pack-objects: improve returned information from write_one()
      improve reliability of fixup_pack_header_footer()
      pack-objects: use fixup_pack_header_footer()'s validation mode
      index-pack: use fixup_pack_header_footer()'s validation mode
      fixup_pack_header_footer(): use nicely aligned buffer sizes
      improve handling of sideband message display

Paolo Bonzini (1):
      make git-shell paranoid about closed stdin/stdout/stderr

Paolo Ciarrocchi (1):
      tutorial: gentler illustration of Alice/Bob workflow using gitk

Petr Baudis (1):
      bash completion: Hide more plumbing commands

Ralf Wildenhues (1):
      Fix some manual typos.

Ramsay Jones (2):
      Fix a warning (on cygwin) to allow -Werror
      Suppress some bash redirection error messages

SZEDER Gábor (3):
      Documentation: fix reference to a for-each-ref option
      Documentation: fix disappeared lines in 'git stash' manpage
      Documentation: minor cleanup in a use case in 'git stash' manual

Shawn O. Pearce (2):
      pack-objects: Allow missing base objects when creating thin packs
      git-gui: Fix diff parsing for lines starting with "--" or "++"

Teemu Likonen (1):
      config.txt: Add missing colons after option name

Yann Dirson (1):
      Document gitk --argscmd flag.


Version v1.6.0.1; changes since v1.6.0:
---------------------------------------

Alexander Gavrilov (1):
      Respect core.autocrlf in combined diff

Brandon Casey (3):
      t1002-read-tree-m-u-2way.sh: use 'git diff -U0' rather than 'diff -U0'
      revision.h: make show_early_output an extern which is defined in revision.c
      compat/snprintf.c: handle snprintf's that always return the # chars transmitted

Don Zickus (1):
      mailinfo: re-fix MIME multipart boundary parsing

Eric Raible (1):
      Completion: add missing '=' for 'diff --diff-filter'

Eric Wong (1):
      git-svn: fix dcommit to urls with embedded usernames

Jeff King (2):
      mailinfo: avoid violating strbuf assertion
      decorate: allow const objects to be decorated

Jim Meyering (2):
      git format-patch: avoid underrun when format.headers is empty or all NLs
      remote.c: remove useless if-before-free test

Johannes Sixt (1):
      Install templates with the user and group of the installing personality

Jonathan Nieder (2):
      Documentation: clarify pager.<cmd> configuration
      Documentation: clarify pager configuration

Junio C Hamano (9):
      Start 1.6.0.X maintenance series
      diff --check: do not get confused by new blank lines in the middle
      for-each-ref: cope with tags with incomplete lines
      completion: find out supported merge strategies correctly
      "git-merge": allow fast-forwarding in a stat-dirty tree
      Update draft release notes for 1.6.0.1
      unpack_trees(): protect the handcrafted in-core index from read_cache()
      merge: fix numerus bugs around "trivial merge" area
      GIT 1.6.0.1

Miklos Vajna (2):
      Fix 'git help help'
      Makefile: enable SNPRINTF_RETURNS_BOGUS for HP-UX

Robert Schiele (1):
      adapt git-cvsserver manpage to dash-free syntax

Simon Hausmann (1):
      Clean up the git-p4 documentation

Tarmigan Casebolt (1):
      Add hints to revert documentation about other ways to undo changes

Tor Arvid Lund (1):
      git-p4: Fix one-liner in p4_write_pipe function.


Version v1.6.0; changes since v1.6.0-rc3:
-----------------------------------------

Alex Riesen (1):
      Fix t3700 on filesystems which do not support question marks in names

Alexander Gavrilov (1):
      gitk: Allow safely calling nukefile from a run queue handler

Anand Kumria (14):
      Create a specific version of the read_pipe_lines command for p4 invocations
      Utilise the new 'p4_read_pipe_lines' command
      Have a command that specifically invokes 'p4' (via system)
      Utilise the new 'p4_system' function.
      Add a single command that will be used to construct the 'p4' command
      If we are in verbose mode, output what we are about to run (or return)
      Switch to using 'p4_build_cmd'
      If the user has configured various parameters, use them.
      Consistently use 'git-p4' for the configuration entries
      Move git-p4.syncFromOrigin into a configuration parameters section
      Put some documentation in about the parameters that have been added
      Put in the two other configuration elements found in the source
      Add p4 read_pipe and write_pipe wrappers
      Utilise our new p4_read_pipe and p4_write_pipe wrappers

Brandon Casey (2):
      test-parse-options: use appropriate cast in length_callback
      t5304-prune: adjust file mtime based on system time rather than file mtime

Eric Blake (1):
      Makefile: building git in cygwin 1.7.0

Eric Raible (1):
      bash completion: 'git apply' should use 'fix' not 'strip'

Junio C Hamano (1):
      GIT 1.6.0

Kevin Ballard (1):
      Fix escaping of glob special characters in pathspecs

Lee Marlow (2):
      bash completion: Add completion for 'git mergetool'
      bash completion: Add '--merge' long option for 'git log'

Marcus Griep (2):
      bash-completion: Add non-command git help files to bash-completion
      Git.pm: Make File::Spec and File::Temp requirement lazy

Matt McCutchen (1):
      git format-patch documentation: clarify what --cover-letter does

Miklos Vajna (2):
      Documentation: document the pager.* configuration setting
      t9300: replace '!' with test_must_fail

Robert Blum (1):
      git-p4: chdir now properly sets PWD environment variable in msysGit

Shawn O. Pearce (1):
      git-gui 0.11

Stephan Beyer (3):
      git-am: ignore --binary option
      git-stash: improve synopsis in help and manual page
      Improve error output of git-rebase

Thomas Rast (2):
      rebase -i -p: handle index and workdir correctly
      rebase -i -p: fix parent rewriting


Version v1.6.0-rc3; changes since v1.6.0-rc2:
---------------------------------------------

Brandon Casey (2):
      Makefile: set SHELL to value of SHELL_PATH
      Makefile: add a target which will abort compilation with ancient shells

Eric Wong (2):
      git-svn: add ability to specify --commit-url for dcommit
      git-svn: wrap long lines in a few places

Francis Moreau (1):
      git-bisect: fix wrong usage of read(1)

Gustaf Hendeby (2):
      gitattributes: Document built in hunk header patterns
      Teach git diff about BibTeX head hunk patterns

Ivan Stankovic (1):
      Documentation: fix invalid reference to 'mybranch' in user manual

Johannes Schindelin (1):
      clone --mirror: avoid storing repeated tags

Jonathan Nieder (1):
      Documentation: user-manual: "git commit -a" doesn't motivate .gitignore

Junio C Hamano (9):
      asciidoc markup fixes
      GIT-VERSION-GEN: mark the version 'dirty' only if there are modified files
      mailinfo: fix MIME multi-part message boundary handling
      Update draft RelNotes for 1.6.0
      Fix deleting reflog entries from HEAD reflog
      Re-fix rev-list-options documentation
      diff --check: do not unconditionally complain about trailing empty lines
      Do not talk about "diff" in rev-list documentation.
      GIT 1.6.0-rc3

Marcus Griep (5):
      Fix multi-glob assertion in git-svn
      git-svn: Allow deep branch names by supporting multi-globs
      Git.pm: Add faculties to allow temp files to be cached
      git-svn: Make it incrementally faster by minimizing temp files
      git-svn: Reduce temp file usage when dealing with non-links

Nguyễn Thái Ngọc Duy (1):
      Fix typo in comments of longest_ancestor_length()

Petr Baudis (2):
      Fail properly when cloning from invalid HTTP URL
      Adjust for the new way of enabling the default post-update hook

Pieter de Bie (2):
      builtin-rm: Add a --force flag
      reflog test: add more tests for 'reflog delete'

SZEDER Gábor (1):
      bash: remove redundant check for 'git stash apply' options

Stephen R. van den Berg (1):
      git-daemon: SysV needs the signal handler reinstated.

Thomas Rast (6):
      Documentation: commit-tree: remove 16 parents restriction
      Documentation: filter-branch: document how to filter all refs
      filter-branch: be more helpful when an annotated tag changes
      Documentation: rev-list-options: Fix -g paragraph formatting
      Documentation: rev-list-options: Fix a typo
      Documentation: rev-list-options: Rewrite simplification descriptions for clarity


Version v1.6.0-rc2; changes since v1.6.0-rc1:
---------------------------------------------

Abhijit Menon-Sen (7):
      `git submodule add` now requires a <path>
      Make it clear that push can take multiple refspecs
      Make the DESCRIPTION match <x>... items in the SYNOPSIS
      Git.pm: localise $? in command_close_bidi_pipe()
      Fix hash slice syntax error
      Fix typo in perl/Git.pm
      Fix typos in INSTALL

Alex Riesen (1):
      Make use of stat.ctime configurable

Alexander Gavrilov (9):
      git-gui: Fix the Remote menu separator.
      git-gui: Preserve scroll position on reshow_diff.
      Support copy and rename detection in fast-export.
      gitk: Kill back-end processes on window close
      gitk: Arrange to kill diff-files & diff-index on quit
      gitk: On Windows, use a Cygwin-specific flag for kill
      gitk: Fixed broken exception handling in diff
      gitk: Fixed automatic row selection during load
      gitk: Fallback to selecting the head commit upon load

Anders Melchiorsen (4):
      Advertise the ability to abort a commit
      Documentation: fix diff.external example
      Flush output in start_async
      Add output flushing before fork()

Avery Pennarun (2):
      Teach "git diff -p" Pascal/Delphi funcname pattern
      git-svn: Abort with an error if 'fetch' parameter is invalid.

Brandon Casey (3):
      t/t4202-log.sh: add newline at end of file
      Teach fsck and prune that tmp_obj_ file names may not be 14 bytes long
      perl/Makefile: handle paths with spaces in the NO_PERL_MAKEMAKER section

Brian Gernhardt (1):
      Documentation: Remove mentions of git-svnimport.

Cesar Eduardo Barros (1):
      Documentation/git-rev-parse.txt: update for new git-describe output format

Christian Couder (2):
      merge-base: die with an error message if not passed a commit ref
      documentation: user-manual: update "using-bisect" section

Christian Stimming (2):
      git-gui: Update German translation
      gitk: Updated German translation

Ciaran McCreesh (1):
      Make git-add -i accept ranges like 7-

David D. Kilzer (1):
      Fix race condition in t9119-git-svn-info.sh

Dmitry Potapov (1):
      correct access right for git-svn-dcommit test

Eric Wong (2):
      git-svn: properly set path for "info" command
      t9119: conditionally re-enable test depending on svn(1) version

Giuseppe Bilotta (2):
      diff: add ruby funcname pattern
      diff: chapter and part in funcname for tex

Jeff King (3):
      init: handle empty "template" parameter
      Compact commit template message
      init: handle empty "template" parameter

Jim Meyering (1):
      git-cvsimport.perl: Print "UNKNOWN LINE..." on stderr, not stdout.

Johannes Schindelin (3):
      sort_in_topological_order(): avoid setting a commit flag
      clone: Add an option to set up a mirror
      clone --bare: Add ".git" suffix to the directory name to clone into

Johannes Sixt (1):
      git-gui: Adapt discovery of oguilib to execdir 'libexec/git-core'

Jon Jensen (1):
      Fix reference to Everyday Git, which is an HTML document and not a man page.

Jonathan Nieder (1):
      git-diff(1): "--c" -> "--cc" typo fix

Junio C Hamano (19):
      Allow building without any git installed
      Allow installing in the traditional way
      ls-tree documentation: enhance notes on subdirectory and pathspec behaviour
      Documentation: clarify what is shown in "git-ls-files -s" output
      t7001: fix "git mv" test
      Teach gitlinks to ie_modified() and ce_modified_check_fs()
      Fix merge name generation in "merge in C"
      Fix test-parse-options "integer" test
      Teach --find-copies-harder to "git blame"
      make sure parsed wildcard refspec ends with slash
      Documentation: clarify diff --cc
      Update my e-mail address
      Start 1.5.6.5 RelNotes to describe accumulated fixes
      builtin-name-rev.c: split deeply nested part from the main function
      RelNotes 1.5.6.5 updates
      fix diff-tree --stdin documentation
      Files given on the command line are relative to $cwd
      GIT 1.5.6.5
      GIT 1.6.0-rc2

Kevin Ballard (1):
      format-patch: Produce better output with --inline or --attach

Lee Marlow (11):
      bash completion: remove unused function _git_diff_tree
      bash completion: Add more long options for 'git log'
      bash completion: Add completion for 'git grep'
      bash completion: Add completion for 'git clone'
      bash completion: Add completion for 'git clean'
      bash completion: Add completion for 'git init'
      bash completion: Add completion for 'git revert'
      bash completion: More completions for 'git stash'
      bash completion: Add completion for 'git archive'
      bash completion: Add completion for 'git ls-files'
      bash completion: Add completion for 'git mv'

Linus Torvalds (1):
      diff.renamelimit is a basic diff configuration

Michele Ballabio (2):
      git-gui: update po/it.po
      git-gui: add a part about format strings in po/README

Mikael Magnusson (2):
      git-gui: Update swedish translation.
      gitk: Update swedish translation.

Mike Ralphson (2):
      Documentation: typos / spelling fixes in older RelNotes
      Documentation: typos / spelling fixes

Nanako Shiraishi (1):
      git-gui: update Japanese translation

Olivier Marin (1):
      builtin-verify-tag: fix -v option parsing

Pierre Habouzit (2):
      Allow "non-option" revision options in parse_option-enabled commands
      git-submodule: move ill placed shift.

Pieter de Bie (1):
      git-name-rev: allow --name-only in combination with --stdin

René Scharfe (2):
      archive: allow --exec and --remote without equal sign
      git-name-rev: don't use printf without format

Shawn O. Pearce (2):
      git-gui: Fix gitk search in $PATH to work on Windows
      git-gui: Update git-gui.pot for 0.11 nearing release

Steffen Prohaska (6):
      Refactor, adding prepare_git_cmd(const char **argv)
      run-command (Windows): Run dashless "git <cmd>"
      git-gui: Correct installation of library to be $prefix/share
      git-gui (Windows): Switch to relative discovery of oguilib
      git-gui (Windows): Change wrapper to execdir 'libexec/git-core'
      Modify mingw_main() workaround to avoid link errors

Stephan Beyer (1):
      builtin-revert.c: typofix

Steve Haslam (1):
      Propagate -u/--upload-pack option of "git clone" to transport.

Steven Grimm (1):
      Optimize sha1_object_info for loose objects, not concurrent repacks

Todd Zullinger (1):
      Replace uses of "git-var" with "git var"


Version v1.6.0-rc1; changes since v1.6.0-rc0:
---------------------------------------------

Abhijit Menon-Sen (2):
      git-gui: Look for gitk in $PATH, not $LIBEXEC/git-core
      Clarify that "git log x.c y.h" lists commits that touch either file

Alex Riesen (1):
      Allow pager of diff command be enabled/disabled

Alexander Gavrilov (4):
      Fix pre-commit hooks under MinGW/MSYS
      Add options to control the search for copies in blame.
      Kill the blame back-end on window close.
      Add a menu item to invoke full copy detection in blame.

Anders Melchiorsen (1):
      Documentation: fix diff.external example

Björn Steinbrink (2):
      index-pack.c: correctly initialize appended objects
      rev-parse: Add support for the ^! and ^@ syntax

Brad King (1):
      git-svn: teach dcommit about svn auto-props

Brandon Casey (7):
      t/: Replace diff [-u|-U0] with test_cmp to allow compilation with old diff
      t4116-apply-reverse.sh: use $TAR rather than tar
      t3200,t7201: replace '!' with test_must_fail
      t7502-commit.sh: rearrange test to make more portable
      t/t4202-log.sh: add newline at end of file
      Teach fsck and prune about the new location of temporary objects
      perl/Makefile: update NO_PERL_MAKEMAKER section

Cesar Eduardo Barros (1):
      Documentation/git-submodule.txt: fix doubled word

Daniel Barkalow (1):
      In perforce, RCS keywords are case-sensitive

Jakub Narębski (1):
      gitweb: More about how gitweb gets 'owner' of repository

Johannes Schindelin (9):
      Rename .git/rebase to .git/rebase-apply
      Rename path_list to string_list
      Fix two leftovers from path_list->string_list
      Ignore dirty submodule states in "git pull --rebase"
      Add test to show that show-branch misses out the 8th column
      sort_in_topological_order(): avoid setting a commit flag
      builtin-commit: Two trivial style-cleanups
      git daemon: avoid waking up too often
      Avoid chdir() in list_commands_in_dir()

Johannes Sixt (12):
      rebase -i: When an 'edit' stops, mention the commit
      Makefile: Do not install a copy of 'git' in $(gitexecdir)
      Makefile: Normalize $(bindir) and $(gitexecdir) before comparing
      Record the command invocation path early
      Fix relative built-in paths to be relative to the command invocation
      Allow the built-in exec path to be relative to the command invocation path
      Allow add_path() to add non-existent directories to the path
      Windows: Make $(gitexecdir) relative
      Windows: Make sure argv[0] has a path
      Windows: Do not compile git-shell
      git-gui: Fix "Stage/Unstage Line" with one line of context.
      git-gui: "Stage Line": Treat independent changes in adjacent lines better

Jonathan Nieder (3):
      git-diff(1): "--c" -> "--cc" typo fix
      document that git-tag can tag more than heads
      t6030 (bisect): work around Mac OS X "ls"

Junio C Hamano (13):
      Update my e-mail address
      Revert "make git-status use a pager"
      tests: do not rely on external "patch"
      stash save: fix parameter handling
      builtin-branch.c: remove unused code in append_ref() callback function
      builtin-branch.c: optimize --merged and --no-merged
      Documentation: clarify diff --cc
      ignore non-existent refs in dwim_log()
      tests: propagate $(TAR) down from the toplevel Makefile
      Makefile: fix shell quoting
      Documentation: clarify how to disable elements in core.whitespace
      make sure parsed wildcard refspec ends with slash
      GIT 1.6.0-rc1

Lars Hjemli (3):
      builtin-branch: remove duplicated code
      builtin-branch: factor out merge_filter matching
      builtin-branch: fix -v for --[no-]merged

Lee Marlow (2):
      bash completion: Add long options for 'git rm'
      bash completion: Add completion for 'git help'

Miklos Vajna (2):
      builtin-merge: give a proper error message for invalid strategies in config
      t7601: extend the 'merge picks up the best result' test

Nikolaj Schumacher (1):
      Don't cut off last character of commit descriptions.

Olivier Marin (4):
      git-am: remove dash from help message
      parse-options: fix segmentation fault when a required value is missing
      git am --skip: clean the index while preserving local changes
      update test case to protect am --skip behaviour

P. Christeas (1):
      svnimport: newer libsvn wants us to ask for the root with "", not "/"

Peter Valdemar Mørch (1):
      send-email: find body-encoding correctly

Petr Baudis (4):
      git-filter-branch.sh: Allow running in bare repositories
      Documentation/git-filter-branch: teach "rm" instead of "update-index --remove"
      git-mv: Remove dead code branch
      git-mv: Keep moved index entries inact

Philippe Bruhat (1):
      mailinfo: better parse email adresses containg parentheses

Pierre Habouzit (4):
      builtin-merge: add missing structure initialization
      git-submodule: move ill placed shift.
      git-checkout: fix command line parsing.
      git-checkout: improve error messages, detect ambiguities.

René Scharfe (5):
      archive: add write_archive()
      archive: move parameter parsing code to archive.c
      archive: define MAX_ARGS where it's needed
      archive: declare struct archiver where it's needed
      archive: allow --exec and --remote without equal sign

SZEDER Gábor (2):
      checkout: mention '--' in the docs
      bash: offer only paths after '--' for 'git checkout'

Shawn O. Pearce (2):
      git-gui: Correct 'Visualize Branches' on Mac OS X to start gitk
      fsck: Don't require tmp_obj_ file names are 14 bytes in length

Stephan Beyer (7):
      git-am: Add colon before the subject that is printed out as being applied
      am --abort: Add to bash-completion and mention in git-rerere documentation
      Make non-static functions, that may be static, static
      Move launch_editor() from builtin-tag.c to editor.c
      editor.c: Libify launch_editor()
      git-am: Mention --abort in usage string part of OPTIONS_SPEC
      git-reset: Let -q hush "locally modified" messages

Steve Haslam (2):
      Propagate -u/--upload-pack option of "git clone" to transport.
      Remove references to git-fetch-pack from "git clone" documentation.

Thomas Rast (2):
      git-completion.bash: provide completion for 'show-branch'
      bash completion: Add long options for 'git describe'


Version v1.6.0-rc0; changes since v1.5.6.6:
-------------------------------------------

Abhijit Menon-Sen (4):
      git-gui: Move on to the next filename after staging/unstaging a change
      git-gui: Don't select the wrong file if the last listed file is staged.
      Implement "git stash branch <newbranch> <stash>"
      Add a test for "git stash branch"

Adam Brewster (2):
      Move read_revisions_from_stdin from builtin-rev-list.c to revision.c
      Teach git-bundle to read revision arguments from stdin like git-rev-list.

Alex Riesen (1):
      Fix use of "perl -i" on Windows

Alexander Gavrilov (3):
      Avoid rescanning unchanged entries in search for copies.
      Do not try to detect move/copy for entries below threshold.
      Support gitlinks in fast-import.

Avery Pennarun (1):
      Reword "your branch has diverged..." lines to reduce line length

Brandon Casey (1):
      t7701-repack-unpack-unreachable.sh: check timestamp of unpacked objects

Brian Gernhardt (4):
      Fix t4017-diff-retval for white-space from wc
      Add test results directory to t/.gitignore
      Documentation: Point to gitcli(7) from git(1)
      Documentation: mention ORIG_HEAD in am, merge, and rebase

Christian Couder (2):
      help: check early if we have a command, if not try a documentation topic
      Fix "config_error_nonbool" used with value instead of key

Ciaran McCreesh (1):
      Make git-add -i accept ranges like 7-

Cristian Peraferrer (1):
      Print errno upon failure to open the COMMIT_EDITMSG file

Daniel Barkalow (1):
      Only use GIT_CONFIG in "git config", not other programs

David Reiss (4):
      Implement normalize_absolute_path
      Fold test-absolute-path into test-path-utils
      Add support for GIT_CEILING_DIRECTORIES
      Eliminate an unnecessary chdir("..")

Dmitry Kakurin (1):
      Fixed text file auto-detection: treat EOF character 032 at the end of file as printable

Dmitry Potapov (4):
      update-hook-example: optionally allow non-fast-forward
      shrink git-shell by avoiding redundant dependencies
      completion.bash: add 'skip' and 'run' to git-bisect
      git-svn: fix git svn info to work without arguments

Don Zickus (1):
      git-apply: handle a patch that touches the same path more than once better

Eric Hanchrow (2):
      user-manual: typo and grammar fixes
      Documentation: fix broken "linkgit" links

Eric Raible (3):
      Documentation: tweak use case in "git stash save --keep-index"
      completion: add branch options --contains --merged --no-merged
      Teach lookup_prog not to select directories

Eric Wong (1):
      t/lib-git-svn: fix SVN_HTTPD tests to work with "trash directory"

Fabian Emmes (2):
      Testsuite: Unset CVS_SERVER
      testsuite for cvs co -c

Frederik Schwarzer (1):
      git-svn: typofix

Ian Katz (1):
      tutorial: use prompt with user names in example, to clarify who is doing what

Jakub Narębski (4):
      gitweb: Separate filling list of projects info
      gitweb: Separate generating 'sort by' table header
      t/README: Add 'Skipping Tests' section below 'Running Tests'
      gitweb: Describe projects_index format in more detail

Jeff King (9):
      fix whitespace violations in test scripts
      mask necessary whitespace policy violations in test scripts
      avoid whitespace on empty line in automatic usage message
      avoid trailing whitespace in zero-change diffstat lines
      enable whitespace checking of test scripts
      clone: create intermediate directories of destination repo
      improve for-each-ref test script
      Allow per-command pager config
      avoid null SHA1 in oldest reflog

Jing Xue (1):
      Add 'git-p4.allowSubmit' to git-p4

Johan Herland (4):
      Incorporate fetched packs in future object traversal
      Move pack_refs() and friends into libgit
      Prepare testsuite for a "git clone" that packs refs
      Teach "git clone" to pack refs

Johannes Schindelin (12):
      Windows: always chmod(, 0666) before unlink().
      commit-tree: lift completely arbitrary limit of 16 parents
      Allow git-apply to recount the lines in a hunk (AKA recountdiff)
      Add another fast-import example, this time for .zip files
      Teach "git apply" to prepend a prefix with "--root=<root>"
      git fetch-pack: do not complain about "no common commits" in an empty repo
      Allow cherry-picking root commits
      Convert CR/LF to LF in tag signatures
      Move MERGE_RR from .git/rr-cache/ into .git/
      git-gui: MERGE_RR lives in .git/ directly with newer Git versions
      shortlog: support --pretty=format: option
      Rename ".dotest/" to ".git/rebase" and ".dotest-merge" to "rebase-merge"

Johannes Sixt (38):
      Add compat/regex.[ch] and compat/fnmatch.[ch].
      Compile some programs only conditionally.
      Add target architecture MinGW.
      Windows: Use the Windows style PATH separator ';'.
      setup.c: Prepare for Windows directory separators.
      Windows: Treat Windows style path names.
      Windows: Handle absolute paths in safe_create_leading_directories().
      Windows: Strip ".exe" from the program name.
      Windows: Implement a wrapper of the open() function.
      Windows: A minimal implemention of getpwuid().
      Windows: Work around misbehaved rename().
      Make my_mktime() public and rename it to tm_to_time_t()
      Windows: Implement gettimeofday().
      Windows: Fix PRIuMAX definition.
      Windows: Implement setitimer() and sigaction().
      Windows: Wrap execve so that shell scripts can be invoked.
      Windows: A pipe() replacement whose ends are not inherited to children.
      Windows: Implement start_command().
      Windows: A rudimentary poll() emulation.
      Windows: Disambiguate DOS style paths from SSH URLs.
      Windows: Implement asynchronous functions as threads.
      Windows: Work around incompatible sort and find.
      Windows: Implement wrappers for gethostbyname(), socket(), and connect().
      Windows: Implement a custom spawnve().
      Windows: Add a custom implementation for utime().
      Windows: Use a customized struct stat that also has the st_blocks member.
      Turn builtin_exec_path into a function.
      Windows: Compute the fallback for exec_path from the program invocation.
      Windows: Use a relative default template_dir and ETC_GITCONFIG
      When installing, be prepared that template_dir may be relative.
      Windows: Make the pager work.
      Windows: Work around an oddity when a pipe with no reader is written to.
      Windows: Make 'git help -a' work.
      Windows: TMP and TEMP environment variables specify a temporary directory.
      git-gui: Implement "Stage/Unstage Line"
      t4127-apply-same-fn: Avoid sed -i
      Provide fallback definitions of PRIu32 and PRIx32
      builtin-clone: rewrite guess_dir_name()

Jonathan Nieder (23):
      Documentation: don't assume git-sh-setup and git-parse-remote are in PATH
      Documentation: fix links to tutorials and other new manual pages
      whitespace fix in Documentation/git-repack.txt
      Documentation: complicate example of "man git-command"
      git-daemon(1): don't assume git-daemon is in /usr/bin
      Documentation: prepare to be consistent about "git-" versus "git "
      Documentation: be consistent about "git-" versus "git "
      Documentation formatting and cleanup
      git-format-patch(1): fix stray \ in output
      Documentation: fix gitlinks
      manpages: fix bogus whitespace
      git(1): add comma
      git-commit(1): depersonalize description
      Documentation: rewrap to prepare for "git-" vs "git " change
      Documentation: more "git-" versus "git " changes
      gitdiffcore(7): fix awkward wording
      manpages: italicize command names in synopses
      manpages: italicize command names
      manpages: italicize git command names (which were in teletype font)
      manpages: italicize gitk's name (where it was in teletype font)
      manpages: italicize nongit command names (if they are in teletype font)
      manpages: italicize git subcommand names (which were in teletype font)
      manpages: use teletype font for sample command lines

João Abecasis (1):
      git-svn: find-rev and rebase for SVN::Mirror repositories

Junio C Hamano (65):
      revision traversal: --children option
      rev-list --children
      builtin-blame.c: move prepare_final() into a separate function.
      builtin-blame.c: allow more than 16 parents
      git-blame --reverse
      rerere: rerere_created_at() and has_resolution() abstraction
      git-rerere: detect unparsable conflicts
      rerere: remove dubious "tail_optimization"
      t4200: fix rerere test
      rerere.autoupdate
      git-shell: accept "git foo" form
      Prepare execv_git_cmd() for removal of builtins from the filesystem
      pre-rebase hook update
      Ship sample hooks with .sample suffix
      Keep some git-* programs in $(bindir)
      Start draft release notes for 1.6.0
      diff --check: explain why we do not care whether old side is binary
      check_and_emit_line(): rename and refactor
      checkdiff: pass diff_options to the callback
      Teach "diff --check" about new blank lines at end
      diff --check: detect leftover conflict markers
      Update sample pre-commit hook to use "diff --check"
      Document the double-dash "rev -- path" disambiguator
      t9700: skip when Test::More is not available
      Update draft release notes for 1.6.0
      Introduce get_merge_bases_many()
      Introduce reduce_heads()
      Update draft release notes for 1.6.0
      apply --root: thinkofix.
      Refactor "tracking statistics" code used by "git checkout"
      git-status: show the remote tracking statistics
      git-branch -v: show the remote tracking statistics
      fast-export --export-marks: fix off by one error
      stat_tracking_info(): clear object flags used during counting
      branch -r -v: do not spit out garbage
      git-apply --directory: make --root more similar to GNU diff
      Update draft release notes for 1.6.0
      Teach "am" and "rebase" to mark the original position with ORIG_HEAD
      Tone down warning about GNU Interactive Tools
      Documentation: update sections on naming revisions and revision ranges
      branch --contains: default to HEAD
      branch --merged/--no-merged: allow specifying arbitrary commit
      apply: fix copy/rename breakage
      Teach merge.log to "git-merge" again
      Update draft release notes for 1.6.0
      reduce_heads(): protect from duplicate input
      git-rebase: report checkout failure
      tutorial: clarify "pull" is "fetch + merge"
      Update draft release notes to 1.6.0
      t/aggregate-results: whitespace fix
      Update draft release notes for 1.6.0
      read-cache.c: typofix
      mailinfo: off-by-one fix for [PATCH (foobar)] removal from Subject: line
      rerere.autoupdate: change the message when autoupdate is in effect
      builtin-remote.c: fix earlier "skip_prefix()" conversion
      t9001 (send-email): Do not use hardcoded /bin/sh in test
      .mailmap update
      Getting closer to 1.6.0-rc0
      builtin-add.c: restructure the code for maintainability
      git-add --all: add all files
      git-add --all: tests
      git-add --all: documentation
      Link shell with compat layer functions
      Move read_in_full() and write_in_full() to wrapper.c
      "needs update" considered harmful

Karl Wiberg (2):
      Clean up builtin-update-ref's option parsing
      Make old sha1 optional with git update-ref -d

Kevin Ballard (1):
      git-send-email: Accept fifos as well as files

Lars Noschinski (3):
      cvsserver: Add support for packed refs
      cvsserver: Add cvs co -c support
      cvsserver: Add testsuite for packed refs

Lea Wiemann (6):
      test-lib.sh: add --long-tests option
      t/test-lib.sh: add test_external and test_external_without_stderr
      Git.pm: add test suite
      gitweb: standarize HTTP status codes
      test-lib.sh: show git init output when in verbose mode
      GIT-VERSION-GEN: do not fail if a 'HEAD' file exists in the working copy

Linus Torvalds (1):
      Shrink the git binary a bit by avoiding unnecessary inline functions

Lukas Sandström (4):
      Add a helper script to send patches with Mozilla Thunderbird
      Make some strbuf_*() struct strbuf arguments const.
      Add some useful functions for strbuf manipulation.
      git-mailinfo: use strbuf's instead of fixed buffers

Marius Storm-Olsen (4):
      Add an optional <mode> argument to commit/status -u|--untracked-files option
      Add argument 'no' commit/status option -u|--untracked-files
      Add configuration option for default untracked files mode
      Windows: Add a new lstat and fstat implementation based on Win32 API.

Mark Levedahl (3):
      install-doc-quick - use git --exec-path to find git-sh-setup
      git-submodule - make "submodule add" more strict, and document it
      git-submodule - register submodule URL if adding in place

Michele Ballabio (3):
      t9301-fast-export.sh: Remove debug line
      builtin-merge.c: Fix option parsing
      builtin-push.c: Cleanup - use OPT_BIT() and remove some variables

Mike Hommey (4):
      Catch failures from t5540-http-push
      Fix http-push test
      Skip t5540-http-push test when USE_CURL_MULTI is undefined
      Avoid apache complaining about lack of server's FQDN

Mike Pape (1):
      We need to check for msys as well as Windows in add--interactive.

Miklos Vajna (27):
      A simple script to parse the results from the testcases
      Move split_cmdline() to alias.c
      Move commit_list_count() to commit.c
      Move parse-options's skip_prefix() to git-compat-util.h
      Add new test to ensure git-merge handles pull.twohead and pull.octopus
      Move read_cache_unmerged() to read-cache.c
      git-fmt-merge-msg: make it usable from other builtins
      Introduce get_octopus_merge_bases() in commit.c
      Add new test to ensure git-merge handles more than 25 refs.
      Add new test case to ensure git-merge reduces octopus parents when possible
      Retire 'stupid' merge strategy
      INSTALL: Update section about git-frotz form.
      hg-to-git: avoid raising a string exception
      hg-to-git: abort if the project directory is not a hg repo
      hg-to-git: rewrite "git-frotz" to "git frotz"
      hg-to-git: use git init instead of git init-db
      Add new test case to ensure git-merge prepends the custom merge message
      git-commit-tree: make it usable from other builtins
      Fix t7601-merge-pull-config.sh on AIX
      Build in merge
      t0001-init.sh: change confusing directory name
      t1007-hash-object.sh: use quotes for the test description
      git-bisect: use dash-less form on git bisect log
      make remove-dashes: apply to scripts and programs as well, not just to builtins
      t6021: add a new test for git-merge-resolve
      Add a new test for git-merge-resolve
      Teach 'git merge' that some merge strategies no longer exist

Nanako Shiraishi (7):
      environment.c: remove unused function
      config.c: make git_env_bool() static
      gitcli: Document meaning of --cached and --index
      cache-tree.c: make cache_tree_find() static
      builtin-describe.c: make a global variable "pattern" static
      parse-options.c: make check_typos() static
      git am --abort

Nguyễn Thái Ngọc Duy (1):
      Move all dashed-form commands to libexecdir

Nicolas Pitre (11):
      call init_pack_revindex() lazily
      implement some resilience against pack corruptions
      test case for pack resilience against corruptions
      refactor pack structure allocation
      optimize verify-pack a bit
      move show_pack_info() where it belongs
      verify-pack: check packed object CRC when using index version 2
      verify-pack: test for detection of index v2 object CRC mismatch
      repack.usedeltabaseoffset config option now defaults to "true"
      pack.indexversion config option now defaults to 2
      restore legacy behavior for read_sha1_file()

Olivier Marin (3):
      Documentation: remove {show,whatchanged}.difftree config options
      show_stats(): fix stats width calculation
      builtin-rerere: more carefully find conflict markers

Patrick Higgins (1):
      Remove the use of '--' in merge program invocation

Pavel Roskin (1):
      t9600: allow testing with cvsps 2.2, including beta versions

Peter Harris (1):
      Add ANSI control code emulation for the Windows console

Petr Baudis (6):
      Git.pm: Add remote_refs() git-ls-remote frontend
      Documentation/git-submodule.txt: Add Description section
      Documentation/RelNotes-1.6.0.txt: Expand on the incompatible packfiles
      Documentation/git-submodule.txt: Further clarify the description
      Documentation: How to ignore local changes in tracked files
      Documentation/git-merge.txt: Partial rewrite of How Merge Works

Pierre Habouzit (13):
      parse-opt: have parse_options_{start,end}.
      parse-opt: Export a non NORETURN usage dumper.
      parse-opt: create parse_options_step.
      parse-opt: do not print errors on unknown options, return -2 intead.
      parse-opt: fake short strings for callers to believe in.
      parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
      revisions: split handle_revision_opt() from setup_revisions()
      git-blame: migrate to incremental parse-option [1/2]
      git-blame: migrate to incremental parse-option [2/2]
      parse-options: add PARSE_OPT_LASTARG_DEFAULT flag
      git-blame: fix lapsus
      git-shortlog: migrate to parse-options partially.
      revisions: refactor handle_revision_opt into parse_revision_opt.

Pieter de Bie (1):
      builtin-fast-export: Add importing and exporting of revision marks

Rafael Garcia-Suarez (1):
      gitweb: remove git_blame and rename git_blame2 to git_blame

Ramsay Jones (4):
      Fix some warnings (on cygwin) to allow -Werror
      t9113-*.sh: provide user feedback when test skipped
      t9100-git-svn-basic.sh: Fix determination of utf-8 locale
      git-request-pull: replace call to deprecated peek-remote

René Scharfe (9):
      Teach new attribute 'export-ignore' to git-archive
      archive: remove args member from struct archiver
      add context pointer to read_tree_recursive()
      archive: add baselen member to struct archiver_args
      archive: centralize archive entry writing
      archive: unify file attribute handling
      archive: remove extra arguments parsing code
      archive: make zip compression level independent from core git
      archive: remove unused headers

Richard Quirk (1):
      git-gui: Fix accidental staged state toggle when clicking top pixel row

Robert Shearman (1):
      git-send-email: Fix authenticating on some servers when using TLS.

SZEDER Gábor (1):
      stash: introduce 'stash save --keep-index' option

Shawn O. Pearce (2):
      Correct documentation for git-push --mirror
      bash completion: Remove dashed command completion support

Soeren Finster (1):
      git-gui: Exit shortcut in MacOSX repaired

Steffen Prohaska (5):
      Windows: Fix ntohl() related warnings about printf formatting
      compat/pread.c: Add a forward declaration to fix a warning
      Move code interpreting path relative to exec-dir to new function system_path()
      help.c: Add support for htmldir relative to git_exec_path()
      help (Windows): Display HTML in default browser using Windows' shell API

Stephan Beyer (10):
      api-builtin.txt: update and fix typo
      t3404: stricter tests for git-rebase--interactive
      rerere: Separate libgit and builtin functions
      t/test-lib.sh: exit with small negagive int is ok with test_must_fail
      t/: Use "test_must_fail git" instead of "! git"
      Make usage strings dash-less
      git-am/git-mailsplit: correct synopsis for reading from stdin
      t3404: test two "preserve merges with -p" cases
      Make rebase--interactive use OPTIONS_SPEC
      Link git-shell only to a subset of libgit.a

SungHyun Nam (1):
      t/Makefile: use specified shell when running aggregation script

Sverre Hvammen Johansen (1):
      reduce_heads(): thinkofix

Sverre Rabbelier (2):
      Modify test-lib.sh to output stats to t/test-results/*
      Hook up the result aggregation in the test makefile.

Ted Percival (1):
      Don't use dash commands (git-foo) in tutorial-2

Teemu Likonen (3):
      bash: Add more option completions for 'git log'
      Add target "install-html" the the top level Makefile
      bash: Add long option completion for 'git send-email'

Thomas Rast (7):
      git-send-email: add support for TLS via Net::SMTP::SSL
      git-send-email: prevent undefined variable warnings if no encryption is set
      git-add--interactive: replace hunk recounting with apply --recount
      git-add--interactive: remove hunk coalescing
      git-add--interactive: manual hunk editing mode
      git-send-email: Do not attempt to STARTTLS more than once
      Fix apply --recount handling of no-EOL line


Version v1.5.6.6; changes since v1.5.6.5:
-----------------------------------------

Alexander Gavrilov (1):
      Fix quadratic performance in rewrite_one.

Brandon Casey (1):
      t5304-prune: adjust file mtime based on system time rather than file mtime

Francis Moreau (1):
      git-bisect: fix wrong usage of read(1)

Ivan Stankovic (1):
      Documentation: fix invalid reference to 'mybranch' in user manual

Junio C Hamano (8):
      Per-ref reflog expiry configuration
      Make default expiration period of reflog used for stash infinite
      asciidoc markup fixes
      Fix deleting reflog entries from HEAD reflog
      Re-fix rev-list-options documentation
      Do not talk about "diff" in rev-list documentation.
      gitweb: do not run "git diff" that is Porcelain
      GIT 1.5.4.7

Kevin Ballard (1):
      Fix escaping of glob special characters in pathspecs

Linus Torvalds (4):
      Split up default "core" config parsing into helper routine
      Split up default "user" config parsing into helper routine
      Split up default "i18n" and "branch" config parsing into helper routines
      Add config option to enable 'fsync()' of object files

Petr Baudis (1):
      Fail properly when cloning from invalid HTTP URL

Pieter de Bie (1):
      reflog test: add more tests for 'reflog delete'

Thomas Rast (1):
      Documentation: rev-list-options: Fix -g paragraph formatting


Version v1.5.6.5; changes since v1.5.6.4:
-----------------------------------------

Anders Melchiorsen (1):
      Documentation: fix diff.external example

Björn Steinbrink (1):
      index-pack.c: correctly initialize appended objects

Brandon Casey (1):
      t/t4202-log.sh: add newline at end of file

Ciaran McCreesh (1):
      Make git-add -i accept ranges like 7-

Jeff King (1):
      init: handle empty "template" parameter

Jim Meyering (1):
      git-cvsimport.perl: Print "UNKNOWN LINE..." on stderr, not stdout.

Johannes Schindelin (1):
      sort_in_topological_order(): avoid setting a commit flag

Jonathan Nieder (2):
      fix usage string for git grep
      git-diff(1): "--c" -> "--cc" typo fix

Junio C Hamano (12):
      refresh-index: fix bitmask assignment
      tests: propagate $(TAR) down from the toplevel Makefile
      Makefile: fix shell quoting
      make sure parsed wildcard refspec ends with slash
      Documentation: clarify diff --cc
      Update my e-mail address
      Start 1.5.6.5 RelNotes to describe accumulated fixes
      builtin-name-rev.c: split deeply nested part from the main function
      RelNotes 1.5.6.5 updates
      fix diff-tree --stdin documentation
      Files given on the command line are relative to $cwd
      GIT 1.5.6.5

Linus Torvalds (1):
      diff.renamelimit is a basic diff configuration

Mike Ralphson (1):
      Documentation: typos / spelling fixes in older RelNotes

Peter Valdemar Mørch (1):
      send-email: find body-encoding correctly

Pierre Habouzit (2):
      git-checkout: fix command line parsing.
      git-submodule: move ill placed shift.

Pieter de Bie (1):
      git-name-rev: allow --name-only in combination with --stdin

René Scharfe (1):
      git-name-rev: don't use printf without format

Stephan Beyer (1):
      builtin-revert.c: typofix

Steve Haslam (1):
      Propagate -u/--upload-pack option of "git clone" to transport.


Version v1.5.6.4; changes since v1.5.6.3:
-----------------------------------------

Dmitry Potapov (3):
      Fix buffer overflow in git-grep
      Fix buffer overflow in git diff
      Fix buffer overflow in prepare_attr_stack

Johannes Schindelin (3):
      git daemon: avoid calling syslog() from a signal handler
      Add pretty format %aN which gives the author name, respecting .mailmap
      git fetch-pack: do not complain about "no common commits" in an empty repo

Johannes Sixt (1):
      t7600-merge: Use test_expect_failure to test option parsing

Junio C Hamano (4):
      Start preparing 1.5.6.4 release notes
      rev-list: honor --quiet option
      http-fetch: do not SEGV after fetching a bad pack idx file
      GIT 1.5.6.4

Lars Noschinski (1):
      git-cvsserver: fix call to nonexistant cleanupWorkDir()

Lukas Sandström (1):
      git-mailinfo: Fix getting the subject from the in-body [PATCH] line

Olivier Marin (1):
      builtin-rm: fix index lock file path

Petr Baudis (1):
      Documentation/git-cherry-pick.txt et al.: Fix misleading -n description

Shawn O. Pearce (9):
      Correct pack memory leak causing git gc to try to exceed ulimit
      bash completion: Improve responsiveness of git-log completion
      bash completion: Don't offer "a.." as a completion for "a."
      bash completion: Append space after file names have been completed
      bash completion: Resolve git show ref:path<tab> losing ref: portion
      index-pack: Refactor base arguments of resolve_delta into a struct
      index-pack: Chain the struct base_data on the stack for traversal
      index-pack: Track the object_entry that creates each base_data
      index-pack: Honor core.deltaBaseCacheLimit when resolving deltas

Stephan Beyer (2):
      rebase-i: keep old parents when preserving merges
      api-run-command.txt: typofix


Version v1.5.6.3; changes since v1.5.6.2:
-----------------------------------------

Alex Riesen (1):
      git-clone: remove leftover debugging fprintf().

Brian Hetro (5):
      builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix'
      convert.c: Use 'git_config_string' to get 'smudge' and 'clean'
      diff.c: Use 'git_config_string' to get 'diff.external'
      http.c: Use 'git_config_string' to clean up SSL config.
      builtin-commit.c: Use 'git_config_string' to get 'commit.template'

Christian Couder (1):
      Fix "config_error_nonbool" used with value instead of key

Gerrit Pape (1):
      git-svn.perl: workaround assertions in svn library 1.5.0

Jeff King (1):
      make deleting a missing ref more quiet

Johannes Schindelin (1):
      run_command(): respect GIT_TRACE

Junio C Hamano (6):
      attribute documentation: keep EXAMPLE at end
      clone -q: honor "quiet" option over native transports.
      mailinfo: feed the correct line length to decode_transfer_encoding()
      Start preparing release notes for 1.5.6.3
      t0004: fix timing bug
      GIT 1.5.6.3

Linus Torvalds (1):
      racy-git: an empty blob has a fixed object name

Lukas Sandström (1):
      git-mailinfo: document the -n option

Mark Levedahl (1):
      git-submodule - Fix bugs in adding an existing repo as a module

Matthew Ogilvie (1):
      Documentation cvs: Clarify when a bare repository is needed

Mikael Magnusson (1):
      Fix grammar in git-rev-parse(1).

Nikolaus Schulz (1):
      Documentation: be precise about which date --pretty uses

Petr Baudis (1):
      Fix backwards-incompatible handling of core.sharedRepository

SZEDER Gábor (1):
      bash: offer only paths after '--'

Shawn O. Pearce (1):
      Remove unnecessary pack-*.keep file after successful git-clone

Stephan Beyer (1):
      git-am: Do not exit silently if committer is unset


Version v1.5.6.2; changes since v1.5.6.1:
-----------------------------------------

Avery Pennarun (1):
      git-svn: avoid filling up the disk with temp files.

Björn Steinbrink (1):
      git cat-file: Fix memory leak in batch mode

Eric Wong (1):
      git-svn: don't sanitize remote names in config

Jeff King (3):
      fetch: report local storage errors in status table
      doc/rev-parse: clarify reflog vs --until for specifying revisions
      fetch: give a hint to the user when local refs fail to update

Jochen Voss (1):
      avoid off-by-one error in run_upload_archive

Joey Hess (1):
      fix git config example syntax

Johannes Schindelin (2):
      clone: respect url.insteadOf setting in global configs
      clone: respect the settings in $HOME/.gitconfig and /etc/gitconfig

Junio C Hamano (9):
      Allow "git-reset path" when unambiguous
      diff --check: do not discard error status upon seeing a good line
      git-shell: accept "git foo" form
      GIT 1.5.4.6
      GIT 1.5.5.5
      Start draft release notes for 1.5.6.2
      Work around gcc warnings from curl headers
      Fix executable bits in t/ scripts
      GIT 1.5.6.2

Shawn O. Pearce (1):
      Fix describe --tags --long so it does not segfault

Thomas Rast (1):
      Fix 'git show' on signed tag of signed tag of commit


Version v1.5.6.1; changes since v1.5.6:
---------------------------------------

Brandon Casey (2):
      git-merge.sh: fix typo in usage message: sucesses --> succeeds
      t7502-commit.sh: test_must_fail doesn't work with inline environment variables

Dan McGee (1):
      completion: add --graph to log command completion

Dmitry Potapov (1):
      fix update-hook-example to work with packed tag references

Jan Krüger (2):
      Documentation: fix formatting in git-svn
      git-svn: make rebuild respect rewriteRoot option

Jeff King (2):
      for-each-ref: implement missing tag values
      clone: create intermediate directories of destination repo

Junio C Hamano (2):
      diff -c/--cc: do not include uninteresting deletion before leading context
      GIT 1.5.6.1

Linus Torvalds (1):
      Make git_dir a path relative to work_tree in setup_work_tree()

Michele Ballabio (1):
      parse-options.c: fix documentation syntax of optional arguments

Patrick Higgins (1):
      Workaround for AIX mkstemp()

Stephan Beyer (4):
      git-rebase.sh: Add check if rebase is in progress
      api-builtin.txt: update and fix typo
      api-parse-options.txt: Introduce documentation for parse options API
      Extend parse-options test suite


Version v1.5.6; changes since v1.5.6-rc3:
-----------------------------------------

Alejandro Mery (1):
      git-am: head -1 is obsolete and doesn't work on some new systems

Christian Couder (1):
      Documentation: RelNotes-1.5.6: talk about renamed HTML files

Jeff King (1):
      clean up error conventions of remote.c:match_explicit

Johan Herland (3):
      cpio is no longer used by git-clone
      Consistency: Use "libcurl" instead of "cURL library" and "curl"
      The "curl" executable is no longer required

Junio C Hamano (7):
      Makefile: update check-docs target
      Update RPM spec to drop curl executable requirement
      diff.c: fix emit_line() again not to add extra line
      create_tempfile: make sure that leading directories can be accessible by peers
      sha1_file.c: simplify parse_pack_index()
      builtin-rerere: fix a small leak
      GIT 1.5.6

Lea Wiemann (2):
      gitweb: quote commands properly when calling the shell
      gitweb: remove unused parse_ref method

Linus Torvalds (1):
      write_loose_object: don't bother trying to read an old object

Miklos Vajna (2):
      run-command documentation: fix "memset()" parameter
      path-list documentation: document all functions and data structures

Olivier Marin (1):
      Fix approxidate("never") to always return 0

Pierre Habouzit (1):
      Make git reflog expire honour core.sharedRepository.

SZEDER Gábor (1):
      diff: reset color before printing newline


Version v1.5.6-rc3; changes since v1.5.6-rc2:
---------------------------------------------

Ask Bjørn Hansen (2):
      gitweb setup instruction: rewrite HEAD and root as well
      send-email: Allow the envelope sender to be set via configuration

Avery Pennarun (2):
      git-svn: don't append extra newlines at the end of commit messages.
      git-svn: test that extra blank lines aren't inserted in commit messages.

Boyd Lynn Gerber (2):
      progress.c: avoid use of dynamic-sized array
      Port to 12 other Platforms.

Chris Ridd (1):
      Improve sed portability

Christian Couder (1):
      documentation: bisect: remove bits talking about a bisection branch

Flavio Poletti (1):
      git-instaweb: improve auto-discovery of httpd and call conventions.

Fred Maranhão (1):
      fix typo in tutorial

Geoffrey Irving (1):
      doc: adding gitman.info and *.texi to .gitignore

Jakub Narębski (2):
      gitweb: Make it work with $GIT containing spaces
      Use 'trash directory' thoroughly in t/test-lib.sh

Jeff King (1):
      document --pretty=tformat: option

Johannes Schindelin (1):
      merge-recursive: respect core.autocrlf when writing out the result

Johannes Sixt (2):
      make_nonrelative_path: Use is_absolute_path()
      Remove exec bit from builtin-fast-export.c

Junio C Hamano (8):
      http-push.c: remove duplicated code
      "remote prune": be quiet when there is nothing to prune
      Documentation/git-pull.txt: Use more standard [NOTE] markup
      Documentation: exclude @pxref{[REMOTES]} from texinfo intermediate output
      user-manual: describe how higher stages are set during a merge
      t4126: fix test that happened to work due to timing
      sha1_file.c: dead code removal
      GIT 1.5.6-rc3

Lea Wiemann (4):
      t1006-cat-file.sh: typo
      cat-file --batch / --batch-check: do not exit if hashes are missing
      Documentation/git-cat-file.txt: add missing line break
      t/.gitattributes: only ignore whitespace errors in test files

Linus Torvalds (4):
      Consolidate SHA1 object file close
      Avoid cross-directory renames and linking on object creation
      Make loose object file reading more careful
      Simplify and rename find_sha1_file()

Marius Storm-Olsen (1):
      Add testcase for merging in a CRLF repo

Mark Levedahl (1):
      git-submodule - Fix errors regarding resolve_relative_url

Mikael Magnusson (1):
      Typo in RelNotes.

Mike Hommey (1):
      Don't allocate too much memory in quote_ref_url

Miklos Vajna (3):
      Remove unused code in parse_commit_buffer()
      git-rebase -i: mention the short command aliases in the todo list
      git-read-tree: document -v option.

Olivier Marin (4):
      remote show: fix the -n option
      builtin-remote: split show_or_prune() in two separate functions
      remote prune: print the list of pruned branches
      remote show: list tracked remote branches with -n

Paul Mackerras (1):
      gitk: Handle detached heads better

Philippe Bruhat (1):
      git-cvsimport: do not fail when CVSROOT is /

Pieter de Bie (1):
      git-send-email: allow whitespace in addressee list

René Scharfe (1):
      Ignore .gitattributes in bare repositories

SZEDER Gábor (2):
      git add: add long equivalents of '-u' and '-f' options
      completion: add more 'git add' options

Shawn O. Pearce (1):
      fast-export: Correctly generate initial commits with no parents

Stephan Beyer (6):
      git-commit.txt: Correct option alternatives
      git-commit.txt: Add missing long/short options
      Docs: Use "-l::\n--long\n" format in OPTIONS sections
      Docs: add some long/short options
      git-describe.txt: document --always
      git-name-rev.txt: document --no-undefined and --always


Version v1.5.6-rc2; changes since v1.5.6-rc1:
---------------------------------------------

Adam Simpkins (2):
      graph API: fix "git log --graph --first-parent"
      git log --graph: print '*' for all commits, including merges

Alex Riesen (1):
      Fix t5516 on cygwin: it does not like double slashes at the beginning of a path

Björn Steinbrink (1):
      name-rev: Fix segmentation fault when using --all

Christian Couder (2):
      documentation: convert "diffcore" and "repository-layout" to man pages
      documentation: move git(7) to git(1)

Daniel Barkalow (1):
      Use nonrelative paths instead of absolute paths for cloned repositories

Dirk Süsserott (1):
      Documentation/git-mailsplit: Enhanced description of -o option

Jakub Narębski (1):
      gitweb: Add charset info to "raw" output of 'text/plain' blobs

Jeff King (1):
      Fix "git clone http://$URL" to check out the worktree when asked

Junio C Hamano (6):
      t7502: do not globally unset GIT_COMMITTER_* environment variables
      t7502: tighten loosely written test sequence
      Documentation: git-log cannot use rev-list specific options
      t7502: honor SHELL_PATH
      GIT 1.5.5.4
      GIT 1.5.6-rc2

Lea Wiemann (2):
      cat-file --batch: flush stdout also when objects are missing
      git-for-each-ref.txt: minor improvements

Michael Dressel (1):
      describe: match pattern for lightweight tags too

Miklos Vajna (1):
      Strbuf documentation: document most functions

Teemu Likonen (1):
      Print info about "git help COMMAND" on git's main usage pages


Version v1.5.6-rc1; changes since v1.5.6-rc0:
---------------------------------------------

Adam Simpkins (2):
      graph API: improve display of merge commits
      graph API: avoid printing unnecessary padding before some octopus merges

Christian Couder (2):
      bisect: use "$GIT_DIR/BISECT_START" to check if we are bisecting
      Documentation: convert "glossary" and "core-tutorial" to man pages

Christian Engwer (1):
      git-svn fails in prop_walk if $self->{path} is not empty

Dmitry V. Levin (1):
      builtin-fetch.c (store_updated_refs): Honor update_local_ref() return value

Gerrit Pape (2):
      Documentation/git-bundle.txt: fix synopsis
      commit --interactive: properly update the index before commiting

Jakub Narębski (2):
      gitweb: Remove gitweb/test/ directory
      gitweb: Fix "next" link on bottom of page

Jamis Buck (1):
      git-reset: honor -q and do not show progress message

Jeff King (1):
      clone: make sure we support the transport type

Johannes Schindelin (1):
      hg-to-git: add --verbose option

Johannes Sixt (3):
      t5700-clone-reference: Quote $U
      Revert "filter-branch: subdirectory filter needs --full-history"
      rebase --interactive: Compute upstream SHA1 before switching branches

John J. Franey (1):
      Clarify description of <repository> argument to pull/fetch for naming remotes.

Junio C Hamano (25):
      tests: do not use implicit "git diff --no-index"
      diff-files: do not play --no-index games
      "git diff": do not ignore index without --no-index
      Update draft release notes for 1.5.6
      log --graph: do not accept log --graphbogus
      log --pretty: do not accept bogus "--prettyshort"
      Release Notes for 1.5.5.2
      Documentation/git.txt: link to 1.5.5.2 documentation.
      Makefile: fix dependency on wt-status.h
      show-branch --current: do not barf on detached HEAD
      git-diff: allow  --no-index semantics a bit more
      git diff --no-index: default to page like other diff frontends
      GIT 1.5.5.3
      t5100: Avoid filename "nul"
      Git::cat_blob: allow using an empty blob to fix git-svn breakage
      fix sha1_pack_index_name()
      Manual subsection to refer to other pages is SEE ALSO
      Documentation: git-cherry uses git-patch-id
      "git checkout -- paths..." should error out when paths cannot be written
      checkout: make reset_clean_to_new() not die by itself
      checkout: consolidate reset_{to_new,clean_to_new}()
      unpack_trees(): allow callers to differentiate worktree errors from merge errors
      checkout: "best effort" checkout
      commit: drop duplicated parents
      GIT v1.5.6-rc1

Karl Wiberg (3):
      Add some tests for git update-ref -d
      Fix path duplication in git svn commit-diff
      Revert "git.el: Set process-environment instead of invoking env"

Kevin Ballard (1):
      Documentation/git-filter-branch.txt: Fix description of --commit-filter

Lea Wiemann (5):
      gitweb: only display "next" links in logs if there is a next page
      t/test-lib.sh: resolve symlinks in working directory, for pathname comparisons
      Git.pm: fix documentation of hash_object
      glossary: improve a few links
      Git.pm: fix return value of config method

Linus Torvalds (2):
      Make pack creation always fsync() the result
      Remove now unnecessary 'sync()' calls

Luciano Rocha (1):
      git-init: accept --bare option

Marius Storm-Olsen (2):
      Clearify the documentation for core.ignoreStat
      Add shortcut in refresh_cache_ent() for marked entries.

Michele Ballabio (1):
      Documentation: fix graph in git-rev-parse.txt

Miklos Vajna (1):
      Revision walking documentation: document most important functions

Nicolas Pitre (1):
      make verify-pack a bit more useful with bad packs

Paolo Bonzini (1):
      rollback lock files on more signals than just SIGINT

Pieter de Bie (1):
      builtin-fast-export: Only output a single parent per line

Seth Falcon (1):
      Add a --dry-run option to git-svn rebase

Shawn O. Pearce (8):
      git-gui: Add a --trace command line option
      git-gui: Handle workdir detection when CYGWIN=nowinsymlinks
      Don't diff empty tree on branch creation in paranoid update hook
      Don't load missing ACL files in paranoid update hook
      Ignore no-op changes in paranoid update hook
      Remove unused remote_prefix member in builtin-remote
      Make "git-remote prune" delete refs according to fetch specs
      Make "git-remote rm" delete refs acccording to fetch specs

Stephan Beyer (2):
      Add test cases for git-am
      Merge t4150-am-subdir.sh and t4151-am.sh into t4150-am.sh

Twiinz (1):
      git-gui: Vertically align textboxes with labels


Version v1.5.6-rc0; changes since v1.5.5.6:
-------------------------------------------

Adam Roben (11):
      Add tests for git cat-file
      git-cat-file: Small refactor of cmd_cat_file
      git-cat-file: Make option parsing a little more flexible
      git-cat-file: Add --batch-check option
      git-cat-file: Add --batch option
      Move git-hash-object tests from t5303 to t1007
      Add more tests for git hash-object
      git-hash-object: Add --stdin-paths option
      Git.pm: Add command_bidi_pipe and command_close_bidi_pipe
      Git.pm: Add hash_and_insert_object and cat_blob
      git-svn: Speed up fetch

Adam Simpkins (11):
      Remove dead code: show_log() sep argument and diff_options.msg_sep
      log: print log entry terminator even if the message is empty
      revision API: split parent rewriting and parent printing options
      Add history graph API
      log and rev-list: add --graph option
      graph API: eliminate unnecessary indentation
      graph API: fix graph mis-alignment after uninteresting commits
      graph API: don't print branch lines for uninteresting merge parents
      log --graph --left-right: show left/right information in place of '*'
      Fix output of "git log --graph --boundary"
      get_revision(): honor the topo_order flag for boundary commits

Alex Riesen (10):
      Use the modern syntax of git-diff-files in t2002-checkout-cache-u.sh
      Improve reporting of errors in config file routines
      Make the exit code of add_file_to_index actually useful
      Extend interface of add_files_to_cache to allow ignore indexing errors
      Add --ignore-errors to git-add to allow it to skip files with read errors
      Add a test for git-add --ignore-errors
      Add a config option to ignore errors for git-add
      Ensure that a test is run in the trash directory
      Fix t6031 on filesystems without working exec bit
      Fix t3701 if core.filemode disabled

Anders Waldenborg (1):
      gitweb: Convert string to internal form before chopping in chop_str

Avery Pennarun (3):
      git-svn: add documentation for --use-log-author option.
      git-svn: Add --add-author-from option.
      git-svn: add documentation for --add-author-from option.

Bart Trojanowski (1):
      make git-status use a pager

Brandon Casey (7):
      filter-branch.sh: support nearly proper tag name filtering
      compat/fopen.c: avoid clobbering the system defined fopen macro
      repack: modify behavior of -A option to leave unreferenced objects unpacked
      git-gc: always use -A when manually repacking
      builtin-gc.c: deprecate --prune, it now really has no effect
      builtin-clone.c: Need to closedir() in copy_or_link_directory()
      t/Makefile: "trash" directory was renamed recently

Bryan Donlan (10):
      git-rebase.sh: Fix --merge --abort failures when path contains whitespace
      config.c: Escape backslashes in section names properly
      git-send-email.perl: Handle shell metacharacters in $EDITOR properly
      test-lib.sh: Add a test_set_editor function to safely set $VISUAL
      Use test_set_editor in t9001-send-email.sh
      test-lib.sh: Fix some missing path quoting
      lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters
      Don't use the 'export NAME=value' in the test scripts.
      Fix tests breaking when checkout path contains shell metacharacters
      Rename the test trash directory to contain spaces.

Caio Marcelo de Oliveira Filho (1):
      git-format-patch: add --no-binary to omit binary changes in the patch.

Chris Frey (2):
      Documentation/git-prune.txt: document unpacked logic
      Documentation/git-repack.txt: document new -A behaviour

Chris Parsons (1):
      Updated status to show 'Not currently on any branch' in red

Christian Couder (21):
      bisect: add "git bisect help" subcommand to get a long usage string
      help: use man viewer path from "man.<tool>.path" config var
      documentation: help: add "man.<tool>.path" config variable
      help: use "man.<tool>.cmd" as custom man viewer command
      documentation: help: add info about "man.<tool>.cmd" config var
      documentation: web--browse: add a note about konqueror
      rev-parse: teach "--verify" to be quiet when using "-q" or "--quiet"
      rev-parse: fix --verify to error out when passed junk after a good rev
      Documentation: hooks: fix missing verb in pre-applypatch description
      Documentation: rename "hooks.txt" to "githooks.txt" and make it a man page
      Documentation: improve "add", "pull" and "format-patch" examples
      Documentation: bisect: add a few "git bisect run" examples
      rev-parse: add test script for "--verify"
      rev-parse: fix using "--default" with "--verify"
      rev-parse --verify: do not output anything on error
      Documentation: rev-parse: add a few "--verify" and "--default" examples
      bisect: add test cases to check that "git bisect start" is atomic
      bisect: fix left over "BISECT_START" file when starting with junk rev
      bisect: trap critical errors in "bisect_start"
      bisect: use a detached HEAD to bisect
      Documentation: convert tutorials to man pages

Christian Stimming (3):
      git-gui: Update German translation
      gitk: Update German translation
      gitk: German translation again updated

Clemens Buchacher (2):
      Reset the signal being handled
      http-push: remove remote locks on exit signals

Clifford Caoile (1):
      git.el: Set process-environment instead of invoking env

Dan McGee (3):
      completion: allow 'git remote' subcommand completion
      completion: remove use of dashed git commands
      Allow cherry-pick (and revert) to add signoff line

Daniel Barkalow (12):
      Make walker.fetch_ref() take a struct ref.
      Make ls-remote http://... list HEAD, like for git://...
      Mark the list of refs to fetch as const
      Add a lockfile function to append to a file
      Add a library function to add an alternate to the alternates file
      Have a constant extern refspec for "--tags"
      Allow for having for_each_ref() list extra refs
      Add a function to set a non-default work tree
      Provide API access to init_db()
      Build in clone
      clone: fall back to copying if hardlinking fails
      Test that --reference actually suppresses fetching referenced objects

Dmitry Potapov (1):
      git-init: autodetect core.ignorecase

Dustin Sallings (2):
      Allow tracking branches to set up rebase by default.
      Allow tracking branches to set up rebase by default.

Eric Wong (1):
      git-svn: fix cloning of HTTP URLs with '+' in their path

Frank Lichtenheld (4):
      var: Don't require to be in a git repository.
      Git.pm: Don't require a repository instance for config
      Git.pm: Don't require repository instance for ident
      send-email: Don't require to be called in a repository

Gerrit Pape (3):
      gitweb: fallback to system-wide config file if default config does not exist
      gitweb: fallback to system-wide config file (fixup)
      gitk: Makefile/install: force permissions when installing files and dirs

Govind Salinas (1):
      pretty.c: add %x00 format specifier.

Gustaf Hendeby (6):
      git-svn: Make create-ignore use git add -f
      Documentation: Add create-ignore to git svn manual
      Documentation/config.txt: Add git-gui options
      Documentation: Add missing git svn commands
      Documentation: Fix skipped section level
      Make git add -n and git -u -n output consistent

Heikki Orsila (7):
      Make core.sharedRepository more generic
      Document functions xmemdupz(), xread() and xwrite()
      Die for an early EOF in a file reading loop
      Make read_in_full() and write_in_full() consistent with xread() and xwrite()
      Cleanup xread() loops to use read_in_full()
      Add log.date config variable
      Remove redundant code, eliminate one static variable

Imran M Yousuf (1):
      Use '-f' option to point to the .gitmodules file

Jakub Narębski (1):
      gitweb: Use feed link according to current view

Jeff King (12):
      add--interactive: ignore mode change in 'p'atch command
      add--interactive: allow user to choose mode update
      git-fetch: always show status of non-tracking-ref fetches
      git-remote: show all remotes with "git remote show"
      Documentation: point git-prune users to git-gc
      add merge.renamelimit config option
      bump rename limit defaults
      diff: make "too many files" rename warning optional
      fix bsd shell negation
      t5000: tar portability fix
      clone: bsd shell portability fix
      filter-branch: fix variable export logic

Johan Herland (2):
      Add a test for another combination of --reference
      Add test for cloning with "--reference" repo being a subset of source repo

Johannes Schindelin (10):
      Provide git_config with a callback-data parameter
      builtin-clone: fix initial checkout
      cvsexportcommit: chomp only removes trailing whitespace
      diff options: Introduce --ignore-submodules
      Teach update-index about --ignore-submodules
      Ignore dirty submodule states during rebase and stash
      cvsexportcommit: introduce -W for shared working trees (between Git and CVS)
      submodule update: add convenience option --init
      pull --rebase: exit early when the working directory is dirty
      mailsplit and mailinfo: gracefully handle NUL characters

Johannes Sixt (3):
      builtin-commit.c: Remove a redundant assignment.
      git-gui: Report less precise object estimates for database compression
      compat-util: avoid macro redefinition warning

Jon Loeliger (1):
      Add otherwise missing --strict option to unpack-objects summary.

Junio C Hamano (24):
      Optimize rename detection for a huge diff
      t5300: add test for "unpack-objects --strict"
      unpack-objects: fix --strict handling
      rebase [--onto O] A B: omit needless checkout
      sha1-lookup: more memory efficient search in sorted list of SHA-1
      diff: make --dirstat binary-file safe
      sha1-lookup: make selection of 'middle' less aggressive
      log: teach "terminator" vs "separator" mode to "--pretty=format"
      git_config_bool_or_int()
      write_index(): optimize ce_smudge_racily_clean_entry() calls with CE_UPTODATE
      diff-files: mark an index entry we know is up-to-date as such
      Fix git_config_bool_or_int
      First batch of post 1.5.5 updates
      diff: a submodule not checked out is not modified
      diff-lib.c: rename check_work_tree_entity()
      is_racy_timestamp(): do not check timestamp for gitlinks
      git-svn: add test for --add-author-from and --use-log-author
      builtin-apply: typofix
      builtin-apply: accept patch to an empty file
      builtin-apply: do not declare patch is creation when we do not know it
      unpack-trees: allow Porcelain to give different error messages
      "git-add -n -u" should not add but just report
      mailinfo: apply the same fix not to lose NULs in BASE64 and QP codepaths
      mailsplit: minor clean-up in read_line_with_nul()

Jörg Sommer (1):
      post-merge: Add it's not executed if merge failed.

Krzysztof Kowalczyk (1):
      alloc_ref_from_str(): factor out a common pattern of alloc_ref from string

Lars Hjemli (8):
      Add platform-independent .git "symlink"
      Teach resolve_gitlink_ref() about the .git file
      Teach git-submodule.sh about the .git file
      Teach GIT-VERSION-GEN about the .git file
      git-branch: add support for --merged and --no-merged
      git-branch.txt: compare --contains, --merged and --no-merged
      Add tests for `branch --[no-]merged`
      revision.c: really honor --first-parent

Linus Torvalds (12):
      Make unpack_trees_options bit flags actual bitfields
      Move name hashing functions into a file of its own
      Make "index_name_exists()" return the cache_entry it found
      Make hash_name_lookup able to do case-independent lookups
      Add 'core.ignorecase' option
      Make branch merging aware of underlying case-insensitive filsystems
      Make unpack-tree update removed files before any updated files
      When adding files to the index, add support for case-independent matches
      Make git-add behave more sensibly in a case-insensitive environment
      Optimize match_pathspec() to avoid fnmatch()
      Avoid some unnecessary lstat() calls
      Optimize symlink/directory detection

Liu Yubao (1):
      Documentation on --git-dir and --work-tree

Marcel Koeppen (2):
      Replace in-place sed in t7502-commit
      Fix prepare-commit-msg hook and replace in-place sed

Mark Hills (1):
      Be more careful with objects directory permissions on clone

Martin Koegler (3):
      unpack-objects: prevent writing of inconsistent objects
      receive-pack: allow using --strict mode for unpacking objects
      t5300: add test for "index-pack --strict"

Matthew Ogilvie (3):
      git-cvsserver: add mechanism for managing working tree and current directory
      implement gitcvs.usecrlfattr
      git-cvsserver: add ability to guess -kb from contents

Matthias Kestenholz (1):
      Use color.ui variable in scripts too

Matthieu Moy (1):
      git-svn: detect and fail gracefully when dcommitting to a void

Michele Ballabio (4):
      gitk: Disable "Reset %s branch to here" when on a detached head
      gitk: Move es.po where it belongs
      builtin-cat-file.c: use parse_options()
      change quoting in test t1006-cat-file.sh

Mike Ralphson (1):
      Makefile: update the default build options for AIX

Miklos Vajna (11):
      git-gc --auto: add pre-auto-gc hook
      Documentation/hooks: add pre-auto-gc hook
      contrib/hooks: add an example pre-auto-gc hook
      git checkout: add -t alias for --track
      git-format-patch: add a new format.cc configuration variable
      git-send-email: add a new sendemail.cc configuration variable
      Add tests for sendemail.cc configuration variable
      INSTALL: add a note about GNU interactive tools has been renamed
      git-fast-import: rename cmd_*() functions to parse_*()
      git-merge: exclude unnecessary options from OPTIONS_SPEC
      CodingGuidelines: Add a note to avoid assignments inside if()

Nicolas Pitre (9):
      pack-objects: small cleanup
      pack-objects: remove some double negative logic
      pack-objects: simplify the condition associated with --all-progress
      pack-objects: clean up write_object() a bit
      pack-objects: move compression code in a separate function
      pack-objects: allow for early delta deflating
      pack-objects: fix early eviction for max depth delta objects
      add a force_object_loose() function
      let pack-objects do the writing of unreachable objects as loose objects

Paolo Bonzini (2):
      Add a remote.*.mirror configuration option
      add special "matching refs" refspec

Paul Mackerras (40):
      gitk: Use git log without --topo-order and reorganize the commits ourselves
      gitk: Fix bug in assigning row numbers to arcs
      gitk: Fix bug in parsing multiple revision arguments
      gitk: Compute row numbers and order tokens lazily
      gitk: Fix a couple of bugs
      gitk: Fix more bugs resulting in Tcl "no such element in array" errors
      gitk: More bug fixes and cleanups
      gitk: Implement date mode in the new framework
      gitk: Fix another collection of bugs
      gitk: Don't try to show local changes from a head that isn't shown
      gitk: Keep the same commits visible as other commits come in
      gitk: Fix some corner cases in the targetid/targetrow stuff
      gitk: Fix a couple of bugs in the find function
      gitk: Fix potential bug with fake commit IDs in renumbervarc
      gitk: Index [fnvr]highlights by id rather than row
      gitk: Fix handling of flag arguments
      gitk: Fix a bug in make_disporder
      gitk: Select head of current branch by default
      gitk: Select something appropriate on cherry-pick, branch reset and checkout
      gitk: Fix bug where editing an existing view would cause an infinite loop
      gitk: Fix bug causing Tcl error when no commits are selected
      gitk: Fix cherry-picking to insert a real row not a fake row
      gitk: Cope better with getting commits that we have already seen
      gitk: Fix bug where arcs could get lost
      gitk: Handle updating with path limiting better
      gitk: Fix problems with target row stuff
      gitk: Don't filter view arguments through git rev-parse
      gitk: Correct a few strings and comments to say "git log"
      gitk: Fix some corner cases in computing vrowmod and displayorder
      gitk: Avoid a crash in selectline if commitinfo($id) isn't set
      gitk: Fix problem with target row not being in scroll region
      gitk: Reorganize processing of arguments for git log
      gitk: Fix handling of tree file list with special chars in names
      gitk: Make updates go faster
      gitk: Synchronize highlighting in file view for 'f' and 'b' commands
      gitk: Show current row number and total number of rows
      gitk: Add a progress bar for checking out a head
      gitk: Fix "wrong # coordinates" error on reload
      gitk: Fix bug where current row number display stops working
      gitk: Fix bug introduced by "gitk: Fix "wrong # coordinates" error on reload"

Paul Oliver (1):
      Make git-cvsimport remove ['s from tags, as bad_ref_char doesn't allow them.

Peter Krefting (1):
      gitk: Initial Swedish translation.

Ping Yin (5):
      git-submodule summary: --for-status option
      builtin-status: submodule summary support
      builtin-status: Add tests for submodule summary
      t4027: test diff for submodule with empty directory
      Add t7506 to test submodule related functions for git-status

Rafael Garcia-Suarez (1):
      Spelling fixes in the gitweb documentation

Richard Quirk (2):
      bash: Add completion for gitk --merge
      Documentation gitk: Describe what --merge does

SZEDER Gábor (5):
      doc: moved merge.* config variables into separate merge-config.txt
      merge, pull: introduce '--(no-)stat' option
      add 'merge.stat' config variable
      fmt-merge-msg: add '--(no-)log' options and 'merge.log' config variable
      merge, pull: add '--(no-)log' command line option

Santi Béjar (3):
      Preparation to call determine_author_info from prepare_to_commit
      commit: Show author if different from committer
      commit: Show committer if automatic

Santiago Gala (1):
      gitk: Spanish translation of gitk

Sebastian Schuberth (1):
      mergetool: Make ECMerge use the settings as specified by the user in the GUI

Shawn O. Pearce (3):
      git-gui: Don't use '$$cr master' with aspell earlier than 0.60
      git-gui: Setup branch.remote,merge for shorthand git-pull
      git-gui: Delete branches with 'git branch -D' to clear config

Steffen Prohaska (4):
      t0050: Test autodetect core.ignorecase
      t0050: Set core.ignorecase case to activate case insensitivity
      t0050: Add test for case insensitive add
      t0050: Fix merge test on case sensitive file systems

Stephan Beyer (1):
      builtin-apply.c: use git_config_string() to get apply_default_whitespace

Stephen R. van den Berg (2):
      Simplify and fix --first-parent implementation
      git-svn: Same default as cvsimport when using --use-log-author

Steven Grimm (1):
      Add svn-compatible "blame" output format to git-svn

Teemu Likonen (1):
      Documentation/git-web--browse.txt: fix small typo

Thomas Arcila (1):
      gitk: Allow users to view diffs in external diff viewer

Trent Piepho (1):
      cvsexportcommit: Create config option for CVS dir


Version v1.5.5.6; changes since v1.5.5.5:
-----------------------------------------

Junio C Hamano (2):
      gitweb: do not run "git diff" that is Porcelain
      GIT 1.5.4.7


Version v1.5.5.5; changes since v1.5.5.4:
-----------------------------------------

Fred Maranhão (1):
      fix typo in tutorial

Johannes Sixt (1):
      Remove exec bit from builtin-fast-export.c

Junio C Hamano (4):
      diff.c: fix emit_line() again not to add extra line
      git-shell: accept "git foo" form
      GIT 1.5.4.6
      GIT 1.5.5.5

Miklos Vajna (1):
      git-read-tree: document -v option.

SZEDER Gábor (1):
      diff: reset color before printing newline


Version v1.5.5.4; changes since v1.5.5.3:
-----------------------------------------

Björn Steinbrink (1):
      name-rev: Fix segmentation fault when using --all

Junio C Hamano (1):
      GIT 1.5.5.4

Lea Wiemann (1):
      git-for-each-ref.txt: minor improvements

Michael Dressel (1):
      describe: match pattern for lightweight tags too


Version v1.5.5.3; changes since v1.5.5.2:
-----------------------------------------

Christian Couder (1):
      bisect: print an error message when "git rev-list --bisect-vars" fails

Gerrit Pape (3):
      git-bisect.sh: don't accidentally override existing branch "bisect"
      Documentation/git-bundle.txt: fix synopsis
      commit --interactive: properly update the index before commiting

Horst H. von Brand (1):
      Fix recipient santitization

Jeff King (2):
      send-email: specify content-type of --compose body
      send-email: rfc2047-quote subject lines with non-ascii characters

Johannes Sixt (1):
      Revert "filter-branch: subdirectory filter needs --full-history"

Junio C Hamano (3):
      Release Notes for 1.5.5.2
      show-branch --current: do not barf on detached HEAD
      GIT 1.5.5.3

Lea Wiemann (1):
      gitweb: only display "next" links in logs if there is a next page

Michele Ballabio (1):
      Documentation: fix graph in git-rev-parse.txt

Pieter de Bie (1):
      builtin-fast-export: Only output a single parent per line


Version v1.5.5.2; changes since v1.5.5.1:
-----------------------------------------

A Large Angry SCM (1):
      git-repack: re-enable parsing of -n command line option

Alex Riesen (2):
      Use "=" instead of "==" in condition as it is more portable
      Fix use after free() in builtin-fetch

Andy Parkins (1):
      post-receive-email: fix accidental removal of a trailing space in signature line

Ariel Badichi (2):
      copy.c: copy_fd - correctly report write errors
      archive.c: format_subst - fixed bogus argument to memchr

Brandon Casey (1):
      git-clone.txt: Adjust note to --shared for new pruning behavior of git-gc

Dan McGee (1):
      Remove 'header' from --signoff option description

Dmitry Potapov (1):
      git-gc --prune is deprecated

Dustin Sallings (1):
      Documentation/config.txt: Mention branch.<name>.rebase applies to "git pull"

Florian Ragwitz (1):
      filter-branch: Documentation fix.

Gerrit Pape (1):
      diff-options.txt: document the new "--dirstat" option

Heikki Orsila (1):
      Add missing "short" alternative to --date in rev-list-options.txt

Ian Hilt (1):
      Documentation/git-describe.txt: make description more readable

Jeff King (11):
      Don't force imap.host to be set when imap.tunnel is set
      t5516: remove ambiguity test (1)
      doc/git-gc: add a note about what is collected
      push: allow unqualified dest refspecs to DWIM
      remote: create fetch config lines with '+'
      fix reflog approxidate parsing bug
      cvsimport: always pass user data to "system" as a list
      checkout: don't rfc2047-encode oneline on detached HEAD
      doc: clarify definition of "update" for git-add -u
      doc/git-daemon: s/uploadarchive/uploadarch/
      git-am: fix typo in usage message

Johannes Sixt (2):
      wt-status.h: declare global variables as extern
      rev-parse --symbolic-full-name: don't print '^' if SHA1 is not a ref

Jon Loeliger (2):
      git-filter-branch: Clarify file removal example.
      git-show.txt: Not very stubby these days.

Junio C Hamano (3):
      write-tree: properly detect failure to write tree objects
      clone: detect and fail on excess parameters
      fetch-pack: brown paper bag fix

Linus Torvalds (1):
      fetch-pack: do not stop traversing an already parsed commit

Matt Graham (1):
      Linked glossary from cvs-migration page

Matthew Ogilvie (1):
      gitattributes: Fix subdirectory attributes specified from root directory

Michael Weber (1):
      svn-git: Use binmode for reading/writing binary rev maps

Miklos Vajna (1):
      diff options documentation: refer to --diff-filter in --name-status

Sam Vilain (1):
      Amend git-push refspec documentation

Shawn O. Pearce (1):
      Clarify repack -n documentation

Sitaram Chamarty (1):
      builtin-commit.c: add -u as short name for --untracked-files

Teemu Likonen (1):
      bash: Add completion for git diff --base --ours --theirs

Thomas Guyot-Sionnest (1):
      git-svn bug with blank commits and author file

martin f. krafft (2):
      Escape project name in regexp
      Escape project names before creating pathinfo URLs


Version v1.5.5.1; changes since v1.5.5:
---------------------------------------

Alberto Bertogli (1):
      builtin-apply: Show a more descriptive error on failure when opening a patch

Björn Steinbrink (1):
      Fix section about backdating tags in the git-tag docs

Carlos Rica (2):
      Fix documentation syntax of optional arguments in short options.
      core-tutorial.txt: Fix showing the current behaviour.

Christian Couder (4):
      bisect: fix bad rev checking in "git bisect good"
      bisect: report bad rev better
      bisect: squelch "fatal: ref HEAD not a symref" misleading message
      git-bisect: make "start", "good" and "skip" succeed or fail atomically

Clifford Caoile (1):
      Docs gitk: Explicitly mention the files that gitk uses (~/.gitk)

Daniel Barkalow (1):
      Fix config key miscount in url.*.insteadOf

Dirk Süsserott (1):
      Documentation/git-request-pull: Fixed a typo ("send" -> "end")

Jakub Narębski (1):
      gitweb: Fix 'history' view for deleted files with history

Jeff King (1):
      git-fetch: fix status output when not storing tracking ref

Johannes Sixt (1):
      Document option --only of git commit

Jon Loeliger (1):
      Clarify and fix English in "git-rm" documentation

Jonas Fonseca (1):
      git-remote: reject adding remotes with invalid names

Junio C Hamano (7):
      Document -w option to shortlog
      Documentation/git-submodule: typofix
      t7401: squelch garbage output
      rebase: do not munge commit log message
      git-am: minor cleanup
      am: POSIX portability fix
      GIT 1.5.5.1

Linus Torvalds (2):
      Ignore leading empty lines while summarizing merges
      git-am: cope better with an empty Subject: line

Mark Levedahl (1):
      git-submodule - possibly use branch name to describe a module

Matthieu Moy (1):
      Document that WebDAV doesn't need git on the server, and works over SSL

Michele Ballabio (1):
      revision.c: make --date-order overriddable

Pedro Melo (1):
      Force the medium pretty format on calls to git log

Ping Yin (1):
      git-submodule: Avoid 'fatal: cannot describe' message

René Scharfe (1):
      git-archive: ignore prefix when checking file attribute

Scott Collins (1):
      Clarify documentation of git-cvsserver, particularly in relation to git-shell

Shawn Bohrer (2):
      git clean: Don't automatically remove directories when run within subdirectory
      git clean: Add test to verify directories aren't removed with a prefix


Version v1.5.5; changes since v1.5.5-rc3:
-----------------------------------------

Christian Couder (2):
      git-gui: Update french translation
      test suite: remove useless TERM cruft in "t7005-editor.sh"

Eric Wong (1):
      git-svn: fix following renamed paths when tracking a single path

Gerrit Pape (1):
      gitk: Fix changing colors through Edit->Preferences

Jakub Narębski (1):
      Revert "gitweb: Add 'status_str' to parse_difftree_raw_line output"

Junio C Hamano (2):
      Fix "git apply" to correctly enforce "match at the beginning"
      GIT 1.5.5

Kevin Ballard (1):
      git-fetch: Don't trigger a bus error when given the refspec "tag"

Michele Ballabio (1):
      git-gui: use +/- instead of ]/[ to show more/less context in diff

Pascal Obry (2):
      Add interactive option in rebase command completion list.
      Add prefix oriented completions for diff and format-patch commands.

Peter Eriksen (2):
      git-pack-objects.txt: Make wording slightly less ambiguous
      Add description of OFS_DELTA to the pack format description

Shawn O. Pearce (1):
      git-gui: Switch keybindings for [ and ] to bracketleft and bracketright


Version v1.5.5-rc3; changes since v1.5.5-rc2:
---------------------------------------------

Brandon Casey (2):
      mktag.c: improve verification of tagger field and tests
      mktag.c: tweak validation of tagger field and adjust test script

Bryan Donlan (1):
      Silence cpio's "N blocks" output when cloning locally

Christian Couder (1):
      help: Add a missing OPT_END().

Damien Diederen (7):
      cvsserver: Respond to the 'editors' and 'watchers' commands
      cvsserver: Only print the file part of the filename in status header
      cvsserver: Do not include status output for subdirectories if -l is passed
      cvsserver: Add a few tests for 'status' command
      cvsserver: Implement update -p (print to stdout)
      cvsserver: Add test for update -p
      cvsserver: Use the user part of the email in log and annotate results

Eric Wong (1):
      git-svn: remove redundant slashes from show-ignore

Johannes Sixt (3):
      filter-branch: Test renaming directories in a tree-filter
      verify-tag: Clean up the temporary file if gpg cannot be started.
      t7004-tag: Skip more tests if gpg is not available.

Jonathan del Strother (1):
      git-gui: Add shortcut keys for Show More/Less Context

Josh Elsasser (1):
      Allow git-cvsserver database table name prefix to be specified.

Junio C Hamano (5):
      Add corner case tests for diff-index and diff-files
      diff-index: careful when inspecting work tree items
      diff-files: careful when inspecting work tree items
      Accept git aliases outside a git repository
      GIT 1.5.5-rc3

Marius Storm-Olsen (1):
      git-p4: Handle Windows EOLs properly after removal of p4 submit template handling.

Paolo Bonzini (1):
      git-cvsserver: handle change type T

Shawn O. Pearce (1):
      git-gui 0.10

Teemu Likonen (1):
      Describe the bug in handling filenames with funny characters in 'git add -i'

veillette@yahoo.ca (1):
      filter-branch: Fix renaming a directory in the tree-filter


Version v1.5.5-rc2; changes since v1.5.5-rc1:
---------------------------------------------

Brandon Casey (1):
      t/t3800-mktag.sh: use test_must_fail rather than '!'

Daniel Barkalow (2):
      Tighten refspec processing
      Fix branches file configuration

Dirk Süsserott (1):
      Documentation: git-tag '-m'/'-F' implies '-a'

Frank Lichtenheld (1):
      t9600-cvsimport.sh: set HOME before checking for cvsps availability

Gerrit Pape (1):
      imap-send: properly error out if imap.host is not set in config

Guanqun Lu (2):
      Fix the wrong output of `git-show v1.3.0~155^2~4` in documentation.
      Fix the wrong output of `git-show v1.3.0~155^2~4` in documentation.

Jeff King (1):
      Documentation: clarify use of .git{ignore,attributes} versus .git/info/*

Johannes Schindelin (2):
      RelNotes: mention checkout/branch's --track option, too
      init: show "Reinit" message even in an (existing) empty repository

Johannes Sixt (1):
      builtin-remote: Fix missing newline at end of listing of pushed branches

Julian Phillips (1):
      Documentation/git-checkout: Update summary to reflect current abilities

Junio C Hamano (7):
      refspec: allow colon-less wildcard "refs/category/*"
      git-fetch test: test tracking fetch results, not just FETCH_HEAD
      test_must_fail: 129 is a valid error code from usage()
      Update draft release notes for 1.5.4.5
      Update draft release notes for 1.5.5
      builtin-prune: protect objects listed on the command line
      GIT 1.5.4.5

Michele Ballabio (3):
      parse-options.c: introduce OPT_DATE
      Add tests for git-prune
      builtin-prune.c: use parse_options()

SZEDER Gábor (1):
      Always set *nongit_ok in setup_git_directory_gently()


Version v1.5.5-rc1; changes since v1.5.5-rc0:
---------------------------------------------

Brandon Casey (2):
      builtin-gc.c: allow disabling all auto-gc'ing by assigning 0 to gc.auto
      t/t7003-filter-branch.sh: use test_must_fail rather than '!'

Daniel Barkalow (3):
      Tighten refspec processing
      Fix t3200 config
      Fix tag following

Eyvind Bernhardsen (2):
      fast-import: Allow "reset" to delete a new branch without error
      fast-import: Document the effect of "merge" with no "from" in a commit

Johannes Schindelin (1):
      remote show: do not show symbolic refs

Junio C Hamano (10):
      Makefile: DIFF_OBJS is not special at all these days
      Makefile: flatten enumeration of headers, objects and programs
      t1000: use "test_must_fail git frotz", not "! git frotz"
      git-merge-one-file: fix longstanding stupid thinko
      Test: catch if trash cannot be removed
      Add tests to catch problems with un-unlinkable symlinks
      Fix read-tree not to discard errors
      remote.c: Fix overtight refspec validation
      gc --auto: raise default auto pack limit from 20 to 50
      GIT 1.5.5-rc1

Kevin Ballard (4):
      Add --reverse to the git-rev-list usage string
      Document the sendemail.smtpserverport config variable
      Don't try and percent-escape existing percent escapes in git-svn URIs
      Make git-svn tests behave better on OS X

Linus Torvalds (3):
      Don't update unchanged merge entries
      Fix possible Solaris problem in 'checkout_entry()'
      Make revision limiting more robust against occasional bad commit dates

Marius Storm-Olsen (1):
      git-p4: Optimize the fetching of data from perforce.

Miklos Vajna (1):
      Documentation/git-merge: document subtree strategy.

Nicolas Pitre (1):
      make it easier for people who just want to get rid of 'git gc --auto'

Ralf Wildenhues (1):
      Improve description of git filter-branch.

Shawn Bohrer (2):
      git-p4: Unset P4DIFF environment variable when using 'p4 -du diff'
      git-p4: Use P4EDITOR environment variable when set


Version v1.5.5-rc0; changes since v1.5.4.7:
-------------------------------------------

Adam Piątyszek (1):
      git-gui: Add option for changing the width of the commit message text box

Alex Riesen (4):
      Fix builtin checkout crashing when given an invalid path
      Fix test for cleanup failure in t7300 on Windows
      Do not use GUID on dir in git init --shared=all on FreeBSD
      git-gui: update russian translation

Alexandre Julliard (5):
      git.el: Support for showing unknown/ignored directories.
      git.el: Added a command to amend a commit.
      git.el: Check for existing buffers on revert.
      git.el: Better handling of subprocess errors.
      git.el: Do not display empty directories.

Andreas Ericsson (1):
      pack-objects: Add runtime detection of online CPU's

Brandon Casey (13):
      builtin-reflog.c: fix typo that accesses an unset variable
      Add compat/fopen.c which returns NULL on attempt to open directory
      builtin-reflog.c: don't install new reflog on write failure
      reflog-delete: parse standard reflog options
      git-reflog: add option --rewrite to update reflog entries while expiring
      refs.c: make close_ref() and commit_ref() non-static
      git-reflog: add option --updateref to write the last reflog sha1 into the ref
      git-stash: add new 'drop' subcommand
      git-stash: add new 'pop' subcommand
      pack-objects: Print a message describing the number of threads for packing
      t3903-stash.sh: Add missing '&&' to body of testcase
      git-reflog.txt: Document new commands --updateref and --rewrite
      t3903-stash.sh: Add tests for new stash commands drop and pop

Brian Downing (1):
      compat: Add simplified merge sort implementation from glibc

Bruno Ribas (2):
      gitweb: Make use of the $git_dir variable at sub git_get_project_url_list
      gitweb: Use the config file to set repository owner's name.

Carl Worth (1):
      Eliminate confusing "won't bisect on seeked tree" failure

Carlos Rica (1):
      Make builtin-reset.c use parse_options.

Charles Bailey (6):
      Tidy up git mergetool's backup file behaviour
      Changed an internal variable of mergetool to support custom commands
      Teach git mergetool to use custom commands defined at config time
      Add a very basic test script for git mergetool
      git-mergetool documentaiton: show toolnames in typewriter font
      merge-tool documentation: describe custom command usage

Cheng Renquan (4):
      cleanup: remove unused git_checkout_config
      whatchanged documentation: share description of --pretty with others
      specify explicit "--pretty=medium" with `git log/show/whatchanged`
      log/show/whatchanged: introduce format.pretty configuration

Christian Couder (17):
      help: make 'git-help--browse' usable outside 'git-help'.
      help--browse: add '--config' option to check a config option for a browser.
      Rename 'git-help--browse.sh' to 'git-web--browse.sh'.
      instaweb: use 'git-web--browse' to launch browser.
      config: add test cases for empty value and no value config variables.
      Documentation: instaweb: add 'git-web--browse' information.
      web--browse: Add a few quotes in 'init_browser_path'.
      Documentation: add 'git-web--browse.txt' and simplify other docs.
      help.c: use 'git_config_string' to get 'help_default_format'.
      run-command: Redirect stderr to a pipe before redirecting stdout to stderr
      help: add "man.viewer" config var to use "woman" or "konqueror"
      Documentation: help: describe 'man.viewer' config variable
      help: implement multi-valued "man.viewer" config option
      Documentation: help: explain 'man.viewer' multiple values
      help: warn if specified 'man.viewer' is unsupported, instead of erroring out
      web--browse: use custom commands defined at config time
      Documention: web--browse: add info about "browser.<tool>.cmd" config var

Christian Stimming (4):
      git-gui: (i18n) Fix a bunch of still untranslated strings.
      git-gui: Update German translation.
      git-gui: (i18n) Add newly added translation strings to template.
      git-gui: Update German translation.

Clemens Buchacher (2):
      http-push: push <remote> :<branch> deletes remote branch
      http-push: add regression tests

Daniel Barkalow (33):
      Test :/string form for checkout
      Reduce the number of connects when fetching
      Allow callers of unpack_trees() to handle failure
      Add flag to make unpack_trees() not print errors.
      Send unpack-trees debugging output to stderr
      Discard "deleted" cache entries after using them to update the working tree
      Add "skip_unmerged" option to unpack_trees.
      Build-in merge-recursive
      Move create_branch into a library file
      Use diff -u instead of diff in t7201
      Library function to check for unmerged index entries
      Move code to clean up after a branch change to branch.c
      Build in checkout
      Clean up reporting differences on branch switch
      API documentation for remote.h
      Add more tests for format-patch
      Improve message-id generation flow control for format-patch
      Export some email and pretty-printing functions
      Use ALLOC_GROW in remote.{c,h}
      Add a --cover-letter option to format-patch
      Add tests for extra headers in format-patch
      Fix format.headers not ending with a newline
      Combine To: and Cc: headers
      Support a --cc=<email> option in format-patch
      Resolve value supplied for no-colon push refspecs
      builtin-checkout.c: Remove unused prefix arguments in switch_branches path
      Add support for url aliases in config files
      Add API access to shortlog
      Improve collection of information for format-patch --cover-letter
      Always use the current connection's remote ref list in git protocol
      Use diff_tree() directly in making cover letter
      Write index file on any checkout of files
      Write diff output to a file in struct diff_options

David Aguilar (1):
      gitk: Don't show local changes when we there is no work tree

David Brown (1):
      git-send-email: Generalize auto-cc recipient mechanism.

David Kågedal (1):
      git.el: Set process-environment instead of invoking env

Dmitry Potapov (3):
      git-web--browse: do not start the browser with nohup
      Make private quote_path() in wt-status.c available as quote_path_relative()
      git-clean: correct printing relative path

Eric Wong (1):
      git-svn: improve repository URL matching when following parents

Florian La Roche (1):
      gitweb: Make feed entries point to commitdiff view

Frank Lichtenheld (1):
      gc: Add --quiet option

Gerrit Pape (4):
      gitk: properly deal with tag names containing / (slash)
      git-merge-index documentation: clarify synopsis
      builtin-tag.c: remove cruft
      hash-object: cleanup handling of command line options

Jakub Narębski (11):
      gitweb: Fix displaying unchopped argument in chop_and_escape_str
      gitweb: Add new option -nohtml to quot_xxx subroutines
      gitweb: Fix bug in href(..., -replay=>1) when using 'pathinfo' form
      gitweb: Fix bugs in git_search_grep_body: it's length(), not len()
      gitweb: Better cutting matched string and its context
      Add '--fixed-strings' option to "git log --grep" and friends
      gitweb: Change parse_commits signature to allow for multiple options
      gitweb: Simplify fixed string search
      Documentation: Remove --{min,max}-age option from git-log(1)
      gitweb: Mark first match when searching commit messages
      gitweb: Fix and simplify pickaxe search

James Bowes (1):
      Add a BuildRequires for gettext in the spec file.

Jason McMullan (1):
      Remove $Id: ..$ $Header: ..$ etc from +ko and +k files during import

Jay Soffian (8):
      git-web--browse: fix misplaced quote in init_browser_path()
      git-help--browse: improve browser support under OS X
      builtin-checkout.c: fix possible usage segfault
      branch: optionally setup branch.*.merge from upstream local branches
      doc: documentation update for the branch track changes
      Correct git-pull documentation
      send-email: fix In-Reply-To regression
      pull: pass --strategy along to to rebase

Jean-Luc Herren (1):
      fast-import: exit with proper message if not a git dir

Jeff King (31):
      allow suppressing of global and system config
      fix config reading in tests
      hard-code the empty tree object
      add--interactive: handle initial commit better
      git_config_*: don't assume we are parsing a config file
      t3404: use configured shell instead of /bin/sh
      diff: fix java funcname pattern for solaris
      t9001: enhance fake sendmail test harness
      send-email: test compose functionality
      help: use parseopt
      make alias lookup a public, procedural function
      help: respect aliases
      use build-time SHELL_PATH in test scripts
      rename: warn user when we have turned off rename detection
      allow git-am to run in a subdirectory
      Add a test for read-tree -u --reset with a D/F conflict
      gitk: make autoselect optional
      tr portability fixes
      t0050: perl portability fix
      more tr portability test script fixes
      grep portability fix: don't use "-e" or "-q"
      remove use of "tail -n 1" and "tail -1"
      add test_cmp function for test scripts
      t4020: don't use grep -a
      t6000lib: tr portability fix
      add NO_EXTERNAL_GREP build option
      filter-branch: don't use xargs -0
      filter-branch: use $SHELL_PATH instead of 'sh'
      t9112: add missing #!/bin/sh header
      t7505: use SHELL_PATH in hook
      t6000lib: re-fix tr portability

Jim Meyering (1):
      Avoid unnecessary "if-before-free" tests.

Johan Herland (2):
      Add testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR
      Fix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR

Johannes Schindelin (21):
      Teach "git reflog" a subcommand to delete single entries
      Also use unpack_trees() in do_diff_cache()
      Fix "git clone" for git:// protocol
      Adjust .gitignore for 5884f1(Rename 'git-help--browse.sh'...)
      Introduce the config variable pack.packSizeLimit
      bisect view: check for MinGW32 and MacOSX in addition to X11
      xdl_merge(): make XDL_MERGE_ZEALOUS output simpler
      xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM
      completion: support format-patch's --cover-letter option
      path-list: add functions to work with unsorted lists
      parseopt: add flag to stop on first non option
      Test "git remote show" and "git remote prune"
      Make git-remote a builtin
      builtin-remote: prune remotes correctly that were added with --mirror
      Fix make_absolute_path() for parameters without a slash
      format-patch: use the diff options for the cover letter, too
      format-patch: wrap cover-letter's shortlog sensibly
      remote show: Clean up connection correctly if object fetch wasn't done
      remote: fix "update [group...]"
      builtin remote rm: remove symbolic refs, too
      gc: call "prune --expire 2.weeks.ago" by default

Johannes Sixt (7):
      Fix misuse of prefix_path()
      gitk: Heed the lines of context in merge commits
      Technical documentation of the run-command API.
      prefix_path: use is_absolute_path() instead of *orig == '/'
      start_command(), .in/.out/.err = -1: Callers must close the file descriptor
      start_command(), if .in/.out > 0, closes file descriptors, not the callers
      git-submodule summary: fix that some "wc" flavors produce leading spaces

Jonas Fonseca (2):
      man pages are littered with .ft C and others
      shortlog: do not require to run from inside a git repository

Junichi Uekawa (1):
      git-blame.el: show the when, who and what in the minibuffer.

Junio C Hamano (93):
      index: be careful when handling long names
      Avoid running lstat(2) on the same cache entry.
      read-cache.c: fix a couple more CE_REMOVE conversion
      read-cache.c: introduce is_racy_timestamp() helper
      lazy index hashing
      Sane use of test_expect_failure
      test: reword the final message of tests with known breakages
      known breakage: revision range computation with clock skew
      fix misuse of prefix_path()
      builtin-apply.c: refactor small part that matches context
      builtin-apply.c: restructure "offset" matching
      builtin-apply.c: push match-beginning/end logic down
      builtin-apply.c: make it more line oriented
      builtin-apply.c: optimize match_beginning/end processing a bit.
      builtin-apply.c: mark common context lines in lineinfo structure.
      builtin-apply.c: clean-up apply_one_fragment()
      builtin-apply.c: simplify calling site to apply_line()
      builtin-apply.c: do not feed copy_wsfix() leading '+'
      builtin-apply.c: move copy_wsfix() function a bit higher.
      builtin-apply.c: pass ws_rule down to match_fragment()
      git-apply --whitespace=fix: fix whitespace fuzz introduced by previous run
      core.whitespace: cr-at-eol
      Documentation/SubmittingPatches: Instruct how to use [PATCH] Subject header
      Documentation/SubmittingPatches: discuss first then submit
      Documentation/SubmittingPatches: What's Acked-by and Tested-by?
      Make error messages from cherry-pick/revert more sensible
      setup: sanitize absolute and funny paths in get_pathspec()
      git-add: adjust to the get_pathspec() changes.
      builtin-mv: minimum fix to avoid losing files
      gitignore(5): Allow "foo/" in ignore list to match directory "foo"
      gitignore: lazily find dtype
      Define the project whitespace policy
      apply: do not barf on patch with too large an offset
      Update the main documentation (stale notes section)
      .mailmap: adjust to a recent patch application glitch.
      diff --relative: output paths as relative to the current subdirectory
      diff --relative: help working in a bare repository
      checkout: notice when the switched branch is behind or forked
      Documentation/SubmittingPatches - a suggested patch flow
      Sync with 1.5.4.2 and start 1.5.5 Release Notes
      sending errors to stdout under $PAGER
      merge-recursive: split low-level merge functions out.
      expose a helper function peel_to_type().
      checkout: tone down the "forked status" diagnostic messages
      checkout: work from a subdirectory
      git-reset --hard and git-read-tree --reset: fix read_cache_unmerged()
      checkout: updates to tracking report
      gitweb: Better chopping in commit search results
      Add merge-subtree back
      checkout: show progress when checkout takes long time while switching branches
      ws_fix_copy(): move the whitespace fixing function to ws.c
      checkout: error out when index is unmerged even with -m
      diff --dirstat: saner handling of binary and unmerged files
      url rewriting: take longest and first match
      git-apply --whitespace=fix: fix off by one thinko
      Revert "pack-objects: Print a message describing the number of threads for packing"
      git-remote: do not complain on multiple URLs for a remote
      format-patch: remove a leftover debugging message
      tests: introduce test_must_fail
      Update draft release notes for 1.5.5
      t6024: move "git reset" to prepare for a test inside the test itself
      CodingGuidelines: spell out how we use grep in our scripts
      find_unique_abbrev(): redefine semantics
      Clean up find_unique_abbrev() callers
      diff-lib.c: constness strengthening
      diff: make sure work tree side is shown as 0{40} when different
      Update draft release notes for 1.5.5
      describe --always: fall back to showing an abbreviated object name
      git-describe: use tags found in packed-refs correctly
      describe: fix --long output
      describe: re-fix display_name()
      t6120 (describe): check --long properly
      Revert "receive-pack: use strict mode for unpacking objects"
      Revert "unpack-objects: prevent writing of inconsistent objects"
      fsck.c: fix bogus "empty tree" check
      am: read from the right mailbox when started from a subdirectory
      am: remove support for -d .dotest
      am: --rebasing
      get_pathspec(): die when an out-of-tree path is given
      Revert part of 744dacd (builtin-mv: minimum fix to avoid losing files)
      Revert part of 1abf095 (git-add: adjust to the get_pathspec() changes)
      Revert part of d089eba (setup: sanitize absolute and funny paths in get_pathspec())
      git-clean: add tests for relative path
      send-email: --no-signed-off-cc should suppress 'sob' cc
      traverse_trees_recursive(): propagate merge errors up
      git-gui: Simplify MSGFMT setting in Makefile
      Documentation/config: typofix
      Documentation/git-help: typofix
      read-tree() and unpack_trees(): use consistent limit
      Redo "add test_cmp function for test scripts"
      git-gui: Improve directions regarding POT update in po/README
      Resurrect git-rerere to contrib/examples
      Update draft release notes for 1.5.5

Karl Wiberg (2):
      git-svn: Don't call git-repack anymore
      Let "git svn" run "git gc --auto" occasionally

Kevin Ballard (1):
      bash: Properly quote the GIT_DIR at all times to fix subdirectory paths with spaces

Kristian Høgsberg (1):
      wt-status.c: no need for dup() dance anymore

Lars Hjemli (1):
      Simplify setup of $GIT_DIR in git-sh-setup.sh

Linus Torvalds (22):
      Make on-disk index representation separate from in-core one
      Make run_diff_index() use unpack_trees(), not read_tree()
      Create pathname-based hash-table lookup into index
      Add "--dirstat" for some directory statistics
      gitk: learn --show-all output
      Add "--show-all" revision walker flag for debugging
      Fix name re-hashing semantics
      Name hash fixups: export (and rename) remove_hash_entry
      Use helper function for copying index entry information
      Be more verbose when checkout takes a long time
      Add 'df_name_compare()' helper function
      Make 'traverse_tree()' use linked structure rather than 'const char *base'
      Add return value to 'traverse_tree()' callback
      Make 'traverse_trees()' traverse conflicting DF entries in parallel
      Move 'unpack_trees()' over to 'traverse_trees()' interface
      Fix tree-walking compare_entry() in the presense of --prefix
      Add 'const' where appropriate to index handling functions
      Make 'unpack_trees()' take the index to work on as an argument
      Make 'unpack_trees()' have a separate source and destination index
      unpack_trees(): minor memory leak fix in unused destination index
      unpack_trees(): fix diff-index regression.
      Fix recent 'unpack_trees()'-related changes breaking 'git stash'

Marco Costalba (1):
      Avoid a useless prefix lookup in strbuf_expand()

Mark Levedahl (1):
      git-submodule - Allow adding a submodule in-place

Martin Koegler (28):
      git-fsck: report missing author/commit line in a commit as an error
      parse_object_buffer: don't ignore errors from the object specific parsing functions
      deref_tag: handle return value NULL
      deref_tag: handle tag->tagged = NULL
      check return code of prepare_revision_walk
      read_object_with_reference: don't read beyond the buffer
      get_sha1_oneline: check return value of parse_object
      mark_blob/tree_uninteresting: check for NULL
      reachable.c::add_one_tree: handle NULL from lookup_tree
      list-objects.c::process_tree/blob: check for NULL
      check results of parse_commit in merge_bases
      process_tag: handle tag->tagged == NULL
      reachable.c::process_tree/blob: check for NULL
      revision.c: handle tag->tagged == NULL
      parse_commit: don't fail, if object is NULL
      check return value from parse_commit() in various functions
      peel_onion: handle NULL
      add generic, type aware object chain walker
      builtin-fsck: move away from object-refs to fsck_walk
      Remove unused object-ref code
      builtin-fsck: reports missing parent commits
      builtin-fsck: move common object checking code to fsck.c
      add common fsck error printing function
      unpack-object: cache for non written objects
      unpack-objects: prevent writing of inconsistent objects
      index-pack: introduce checking mode
      receive-pack: use strict mode for unpacking objects
      fetch-pack: check parse_commit/object results

Matthias Kestenholz (1):
      Add color.ui variable which globally enables colorization if set

Michael Witten (3):
      git-send-email: ssh/login style password requests
      git-send-email: SIG{TERM,INT} handlers
      git-send-email: Better handling of EOF

Michal Rokos (2):
      Add compat/snprintf.c for systems that return bogus
      autoconf: Test FREAD_READS_DIRECTORIES

Michele Ballabio (7):
      gitk: Fix "Key bindings" message
      git-gui: fix typo in lib/spellcheck.tcl
      builtin-for-each-ref.c: fix typo in error message
      gitk: Mark another string for translation
      git-gui: update Italian translation
      gitk: initial Italian translation
      git-gui: remove spurious "fuzzy" attributes in po/it.po

Mike Hommey (5):
      Work around curl-gnutls not liking to be reinitialized
      Add test for git rebase --abort
      Documentation/git-rebase.txt: Add --strategy to synopsys
      git rebase --abort: always restore the right commit
      t3407-rebase-abort.sh: Enhance existing tests, and add test for rebase --merge

Miklos Vajna (4):
      git-clean: handle errors if removing files fails
      Improve t6029 to check the real "subtree" case
      Update Hungarian translation. 100% completed.
      git-gui: Updated Hungarian translation (e5fba18)

Nanako Shiraishi (2):
      git-gui: Update Japanese translation
      git-gui: Update Japanese translation

Nicolas Pitre (5):
      factorize revindex code out of builtin-pack-objects.c
      make verify_one_pack() a bit less wrong wrt packed_git structure
      fix unimplemented packed_object_info_detail() features
      add storage size output to 'git verify-pack -v'
      pack-objects: proper pack time stamping with --max-pack-size

Paolo Bonzini (4):
      git-commit: support variable number of hook arguments
      git-commit: set GIT_EDITOR=: if editor will not be launched
      git-commit: Refactor creation of log message.
      git-commit: add a prepare-commit-msg hook

Paul Mackerras (3):
      gitk: Only restore window size from ~/.gitk, not position
      gitk: Avoid Tcl error when switching views
      gitk: Default to using po2msg.sh if msgfmt doesn't grok --tcl, -l and -d

Pekka Kaitaniemi (1):
      gitk: Add horizontal scrollbar to the diff view

Peter Krefting (2):
      git-gui: Regenerated po template and merged translations with it
      git-gui: updated Swedish translation

Petr Baudis (1):
      gitweb: Clearly distinguish regexp / exact match searches

Philipp A. Hartmann (1):
      git-gui: if a background colour is set, set foreground colour as well

Philippe Bruhat (3):
      cvsimport: have default merge regex allow for dashes in the branch name
      cvsimport: allow for multiple -M options
      cvsimport: document that -M can be used multiple times

Pierre Habouzit (4):
      git-describe: Add a --match option to limit considered tags.
      git-name-rev: add a --(no-)undefined option.
      parse-opt: bring PARSE_OPT_HIDDEN and NONEG to git-rev-parse --parseopt
      parse-options: new option type to treat an option-like parameter as an argument.

Ping Yin (5):
      git-submodule summary: code framework
      git-submodule summary: show commit summary
      git-submodule summary: limit summary size
      git-submodule summary: documentation
      git-submodule summary: test

Rafael Garcia-Suarez (1):
      Make git-remote.perl "use strict" compliant

Ralf Wildenhues (1):
      Fix doc typos.

Robin Rosenberg (2):
      Make blame accept absolute paths
      Improve bash prompt to detect various states like an unfinished merge

SZEDER Gábor (9):
      bash: add git-branch options
      bash: git-branch -d and -m lists only local branches
      bash: remove unnecessary conditions when checking for subcommands
      bash: refactor searching for subcommands on the command line
      bash: add new 'git stash' subcommands
      bash: add 'git svn' subcommands and options
      bash: use __gitdir when completing 'git rebase' options
      bash: fix long option with argument double completion
      update 'git rebase' documentation

Samuel Tardieu (1):
      "remote update": print remote name being fetched from

Santi Béjar (3):
      git-bundle.txt: Add different strategies to create the bundle
      git-describe: --long shows the object name even for a tagged commit
      clone: support cloning full bundles

Sebastian Noack (1):
      git-svn: Don't prompt for client cert password everytime.

Shawn O. Pearce (37):
      git-gui: Automatically spell check commit messages as the user types
      git-gui: Paper bag fix bad string length call in spellchecker
      git-gui: Correct size of dictionary name widget in options dialog
      Include annotated tags in fast-import crash reports
      Include the fast-import marks table in crash reports
      Finish current packfile during fast-import crash handler
      Update fast-import documentation to discuss crash reports
      Teach git-grep --name-only as synonym for -l
      git-gui: Ensure all spellchecker 'class' variables are initialized
      git-gui: Remove explicit references to 'aspell' in message strings
      git-gui: Only bind the spellcheck popup suggestion hook once
      git-gui: Catch and display aspell startup failures to the user
      git-gui: Gracefully display non-aspell version errors to users
      git-gui: Shorten Aspell version strings to just Aspell version number
      Optimize peel_ref for the current ref of a for_each_ref callback
      Teach git-describe to use peeled ref information when scanning tags
      Avoid accessing non-tag refs in git-describe unless --all is requested
      Teach git-describe --exact-match to avoid expensive tag searches
      Use git-describe --exact-match in bash prompt on detached HEAD
      Teach git-describe to verify annotated tag names before output
      Remove unused variable in builtin-fetch find_non_local_tags
      Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch
      Ensure tail pointer gets setup correctly when we fetch HEAD only
      Allow builtin-fetch's find_non_local_tags to append onto a list
      Free the path_lists used to find non-local tags in git-fetch
      Teach upload-pack to log the received need lines to an fd
      Make git-fetch follow tags we already have objects for sooner
      Teach git-fetch to grab a tag at the same time as a commit
      Don't allow git-describe failures to go unnoticed in t6120
      Test for packed tags in git-describe output
      Add git-describe test for "verify annotated tag names on output"
      git-pack-objects: Automatically pack annotated tags if object was packed
      Teach fetch-pack/upload-pack about --include-tag
      Teach git-fetch to exploit server side automatic tag following
      bash: Remove completion of core.legacyheaders option
      git-gui: Don't translate the special Apple menu
      git-gui: Adjusted Japanese translation to updated POT

Simon Hausmann (7):
      git-p4: Fix submit user-interface.
      git-p4: Ensure the working directory and the index are clean before "git-p4 rebase"
      git-p4: Remove --log-substitutions feature.
      git-p4: Clean up git-p4 submit's log message handling.
      git-p4: Removed git-p4 submit --direct.
      git-p4: git-p4 submit cleanups.
      git-p4: Fix import of changesets with file deletions

Steffen Prohaska (4):
      safecrlf: Add mechanism to warn about irreversible crlf conversions
      gitk: Add checkbutton to ignore space changes
      t4014: Replace sed's non-standard 'Q' by standard 'q'
      Add tests for filesystem challenges (case and unicode normalization)

Teemu Likonen (1):
      bash: Add more long options to be completed with "git --<TAB>"

Tim Stoakes (1):
      Add `git svn blame' command

Toby Allsopp (1):
      git-p4: Fix indentation from tab to spaces

Tommy Thorn (2):
      git-p4: Fix an obvious typo
      git-p4: support exclude paths

Tor Arvid Lund (1):
      git-p4: Support usage of perforce client spec

Uwe Kleine-König (1):
      rev-list: add --branches, --tags and --remotes

Yann Dirson (1):
      Add an --argscmd flag to get the list of refs to show

eric miao (1):
      git-gui: translate the remaining messages in zh_cn.po to chinese


Version v1.5.4.7; changes since v1.5.4.6:
-----------------------------------------

Junio C Hamano (2):
      gitweb: do not run "git diff" that is Porcelain
      GIT 1.5.4.7


Version v1.5.4.6; changes since v1.5.4.5:
-----------------------------------------

A Large Angry SCM (1):
      git-repack: re-enable parsing of -n command line option

Alberto Bertogli (1):
      builtin-apply: Show a more descriptive error on failure when opening a patch

Ariel Badichi (2):
      copy.c: copy_fd - correctly report write errors
      archive.c: format_subst - fixed bogus argument to memchr

Björn Steinbrink (1):
      Fix section about backdating tags in the git-tag docs

Carlos Rica (2):
      Fix documentation syntax of optional arguments in short options.
      core-tutorial.txt: Fix showing the current behaviour.

Christian Couder (4):
      bisect: fix bad rev checking in "git bisect good"
      bisect: report bad rev better
      bisect: squelch "fatal: ref HEAD not a symref" misleading message
      git-bisect: make "start", "good" and "skip" succeed or fail atomically

Clifford Caoile (1):
      Docs gitk: Explicitly mention the files that gitk uses (~/.gitk)

Dan McGee (1):
      Remove 'header' from --signoff option description

Dirk Süsserott (1):
      Documentation/git-request-pull: Fixed a typo ("send" -> "end")

Dustin Sallings (1):
      Documentation/config.txt: Mention branch.<name>.rebase applies to "git pull"

Florian Ragwitz (1):
      filter-branch: Documentation fix.

Ian Hilt (1):
      Documentation/git-describe.txt: make description more readable

Jeff King (6):
      t5516: remove ambiguity test (1)
      fix reflog approxidate parsing bug
      cvsimport: always pass user data to "system" as a list
      doc: clarify definition of "update" for git-add -u
      doc/git-daemon: s/uploadarchive/uploadarch/
      git-am: fix typo in usage message

Johannes Sixt (3):
      Document option --only of git commit
      wt-status.h: declare global variables as extern
      rev-parse --symbolic-full-name: don't print '^' if SHA1 is not a ref

Jon Loeliger (1):
      Clarify and fix English in "git-rm" documentation

Junio C Hamano (7):
      Fix "git apply" to correctly enforce "match at the beginning"
      Document -w option to shortlog
      git-am: minor cleanup
      am: POSIX portability fix
      write-tree: properly detect failure to write tree objects
      git-shell: accept "git foo" form
      GIT 1.5.4.6

Linus Torvalds (2):
      Ignore leading empty lines while summarizing merges
      git-am: cope better with an empty Subject: line

Matt Graham (1):
      Linked glossary from cvs-migration page

Matthew Ogilvie (1):
      gitattributes: Fix subdirectory attributes specified from root directory

Michael Weber (1):
      svn-git: Use binmode for reading/writing binary rev maps

Michele Ballabio (1):
      revision.c: make --date-order overriddable

Miklos Vajna (1):
      diff options documentation: refer to --diff-filter in --name-status

Pieter de Bie (1):
      builtin-fast-export: Only output a single parent per line

René Scharfe (1):
      git-archive: ignore prefix when checking file attribute

Scott Collins (1):
      Clarify documentation of git-cvsserver, particularly in relation to git-shell

Sitaram Chamarty (1):
      builtin-commit.c: add -u as short name for --untracked-files

Thomas Guyot-Sionnest (1):
      git-svn bug with blank commits and author file


Version v1.5.4.5; changes since v1.5.4.4:
-----------------------------------------

Andy Whitcroft (1):
      shortlog: take the first populated line of the description

Bernt Hansen (1):
      git-new-workdir: Share SVN meta data between work dirs and the repository

Brandon Casey (1):
      t/t3800-mktag.sh: use test_must_fail rather than '!'

Clemens Buchacher (1):
      merge-recursive: handle file mode changes

Daniel Barkalow (2):
      Tighten refspec processing
      Fix branches file configuration

Eric Wong (1):
      git-svn: don't blindly append '*' to branch/tags config

Guanqun Lu (1):
      Fix the wrong output of `git-show v1.3.0~155^2~4` in documentation.

Jakub Narębski (1):
      gitweb: Fix bug in href(..., -replay=>1) when using 'pathinfo' form

Jeff King (2):
      t0021: tr portability fix for Solaris
      Documentation: clarify use of .git{ignore,attributes} versus .git/info/*

Johannes Schindelin (3):
      launch_editor(): allow spaces in the filename
      git fetch: Take '-n' to mean '--no-tags'
      merge-file: handle empty files gracefully

Jonas Fonseca (1):
      Make man page building quiet when DOCBOOK_XSL_172 is defined

Junio C Hamano (9):
      filter-branch: handle "disappearing tree" case correctly in subdir filter
      git-pull documentation: warn about the option order
      quiltimport: fix misquoting of parsed -p<num> parameter
      format-patch: generate MIME header as needed even when there is format.header
      rebase -m: do not trigger pre-commit verification
      Start draft ReleaseNotes for 1.5.4.5
      git-fetch test: test tracking fetch results, not just FETCH_HEAD
      Update draft release notes for 1.5.4.5
      GIT 1.5.4.5

Linus Torvalds (1):
      rev-parse: fix meaning of rev~ vs rev~0.

Marc-André Lureau (2):
      git-svn: fix find-rev error message when missing arg
      git-cvsimport: fix merging with remote parent branch

Mike Hommey (1):
      git rebase --abort: always restore the right commit

Pierre Habouzit (1):
      git-quiltimport: better parser to grok "enhanced" series files.

Vineet Kumar (1):
      Minor wording changes in the keyboard descriptions in git-add --interactive.


Version v1.5.4.4; changes since v1.5.4.3:
-----------------------------------------

Adeodato Simó (1):
      Really make the LF after reset in fast-import optional

Björn Steinbrink (1):
      receive-pack: Initialize PATH to include exec-dir.

Brandon Casey (1):
      builtin-reflog.c: don't install new reflog on write failure

Bryan Donlan (1):
      Documentation/git-am.txt: Pass -r in the example invocation of rm -f .dotest

Caio Marcelo de Oliveira Filho (1):
      filter-branch documentation: non-zero exit status in command abort the filter

Carl Worth (1):
      Eliminate confusing "won't bisect on seeked tree" failure

Daniel Barkalow (3):
      Use a single implementation and API for copy_file()
      Don't use GIT_CONFIG in t5505-remote
      Correct name of diff_flush() in API documentation

Gerrit Pape (2):
      templates/Makefile: don't depend on local umask setting
      git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options

Jay Soffian (2):
      rev-parse: fix potential bus error with --parseopt option spec handling
      send-email: fix In-Reply-To regression

Jeff King (1):
      revert: actually check for a dirty index

Johan Herland (2):
      Add testcase for 'git cvsexportcommit -w $cvsdir ...' with relative $GIT_DIR
      Fix 'git cvsexportcommit -w $cvsdir ...' when used with relative $GIT_DIR

Johannes Schindelin (4):
      http-push: avoid invalid memory accesses
      http-push: do not get confused by submodules
      http-push: avoid a needless goto
      cvsexportcommit: be graceful when "cvs status" reorders the arguments

Johannes Sixt (2):
      daemon: send more error messages to the syslog
      daemon: ensure that base-path is an existing directory

John Goerzen (1):
      Fix dcommit, rebase when rewriteRoot is in use

Jonathan del Strother (1):
      Prompt to continue when editing during rebase --interactive

Junio C Hamano (6):
      Fix "git log --merge --left-right"
      Start preparing for 1.5.4.4
      tests: introduce test_must_fail
      Update draft release notes for 1.5.4.4
      test-lib: fix TERM to dumb for test repeatability
      GIT 1.5.4.4

Matthieu Moy (1):
      Fix incorrect wording in git-merge.txt.

Mike Hommey (2):
      Set proxy override with http_init()
      Fix random crashes in http_cleanup()

Mike Ralphson (1):
      Documentation cherry-pick: Fix cut-and-paste error

Miklos Vajna (2):
      Documentation/git-filter-branch: add a new msg-filter example
      Documentation/git svn log: add a note about timezones.

Pierre Habouzit (1):
      unquote_c_style: fix off-by-one.

Ping Yin (1):
      git-submodule: Fix typo 'url' which should be '$url'

Rémi Vanicat (1):
      git.el: find the git-status buffer whatever its name is

Santi Béjar (1):
      ident.c: reword error message when the user name cannot be determined

Sebastian Noack (1):
      git-svn: Don't prompt for client cert password everytime.

Shawn O. Pearce (6):
      Ensure 'make dist' compiles git-archive.exe on Cygwin
      Protect peel_ref fallback case from NULL parse_object result
      Correct fast-export file mode strings to match fast-import standard
      git-gui: Paper bag fix info dialog when no files are staged at commit
      Fix 'git remote show' regression on empty repository in 1.5.4
      git-gui: Gracefully fall back to po2msg.sh if msgfmt --tcl fails

Steven Drake (1):
      timezone_names[]: fixed the tz offset for New Zealand.

Uwe Kleine-König (1):
      config.txt: refer to --upload-pack and --receive-pack instead of --exec


Version v1.5.4.3; changes since v1.5.4.2:
-----------------------------------------

Gerrit Pape (1):
      git-clone.sh: properly configure remote even if remote's head is dangling

Jay Soffian (2):
      git-gui: support Git Gui.app under OS X 10.5
      send-email: squelch warning due to comparing undefined $_ to ""

Jeff King (4):
      push: indicate partialness of error message
      Documentation/push: clarify matching refspec behavior
      push: document the status output
      hash: fix lookup_hash semantics

Junio C Hamano (1):
      GIT 1.5.4.3

Kristian Høgsberg (1):
      Rename git-core rpm to just git and rename the meta-pacakge to git-all.

Miklos Vajna (1):
      Documentation/git-stash: document options for git stash list

Pekka Kaitaniemi (1):
      Clarified the meaning of git-add -u in the documentation

Shawn O. Pearce (5):
      git-gui: Ensure error dialogs always appear over all other windows
      git-gui: Paper bag fix error dialogs opening over the main window
      git-gui: Default TCL_PATH to same location as TCLTK_PATH
      git-gui: Avoid hardcoded Windows paths in Cygwin package files
      git-gui: Focus insertion point at end of strings in repository chooser

Wincent Colaiuta (1):
      git-gui: relax "dirty" version detection


Version v1.5.4.2; changes since v1.5.4.1:
-----------------------------------------

Christian Couder (8):
      config: add test cases for empty value and no value config variables.
      diff.c: replace a 'strdup' with 'xstrdup'.
      diff.c: remove useless check for value != NULL
      config: add 'git_config_string' to refactor string config variables.
      Add "const" qualifier to "char *pager_program".
      Add "const" qualifier to "char *editor_program".
      Add "const" qualifier to "char *excludes_file".
      diff.c: add "const" qualifier to "char *cmd" member of "struct ll_diff_driver"

Daniel Barkalow (1):
      Validate nicknames of remote branches to prohibit confusing ones

David Steven Tweed (1):
      Make git prune remove temporary packs that look like write failures

Frank Lichtenheld (1):
      config: Fix --unset for continuation lines

Gerrit Pape (2):
      builtin-commit: remove .git/SQUASH_MSG upon successful commit
      cvsimport: have default merge regex also match beginning of commit message

James Bowes (1):
      Add a BuildRequires for gettext in the spec file.

Jay Soffian (1):
      mailinfo: feed only one line to handle_filter() for QP input

Jeff King (2):
      status: suggest "git rm --cached" to unstage for initial commit
      commit: discard index after setting up partial commit

Johannes Schindelin (3):
      bisect: allow starting with a detached HEAD
      Document that the default of branch.autosetupmerge is true
      bisect: use verbatim commit subject in the bisect log

Johannes Sixt (1):
      upload-pack: Initialize the exec-path.

Jonas Fonseca (1):
      man pages are littered with .ft C and others

Junio C Hamano (31):
      git-pull documentation: fix markup
      archive-tar.c: guard config parser from value=NULL
      Add config_error_nonbool() helper function
      builtin-apply.c: guard config parser from value=NULL
      builtin-branch.c: guard config parser from value=NULL
      builtin-commit.c: guard config parser from value=NULL
      builtin-config.c: guard config parser from value=NULL
      builtin-log.c: guard config parser from value=NULL
      builtin-reflog.c: guard config parser from value=NULL
      builtin-show-branch.c: guard config parser from value=NULL
      builtin-tag.c: guard config parser from value=NULL
      connect.c: guard config parser from value=NULL
      convert.c: guard config parser from value=NULL
      diff.c: guard config parser from value=NULL
      git.c: guard config parser from value=NULL
      help.c: guard config parser from value=NULL
      http.c: guard config parser from value=NULL
      merge-recursive.c: guard config parser from value=NULL
      remote.c: guard config parser from value=NULL
      setup.c: guard config parser from value=NULL
      wt-status.c: guard config parser from value=NULL
      imap-send.c: guard config parser from value=NULL
      builtin-log.c: guard config parser from value=NULL
      config.c: guard config parser from value=NULL
      Revert "pack-objects: only throw away data during memory pressure"
      Protect get_author_ident_from_commit() from filenames in work tree
      diff.c: fixup garding of config parser from value=NULL
      diff: Fix miscounting of --check output
      filter-branch: handle filenames that need quoting
      Documentation/git-reset:
      GIT 1.5.4.2

Martin Koegler (1):
      pack-objects: only throw away data during memory pressure

Mike Hommey (1):
      Work around curl-gnutls not liking to be reinitialized

Miklos Vajna (2):
      builtin-gc.c: guard config parser from value=NULL
      git clone -s documentation: force a new paragraph for the NOTE

Pieter de Bie (2):
      Documentation/git-reset: don't mention --mixed for selected-paths reset
      Documentation/git-reset: Add an example of resetting selected paths

Sergei Organov (1):
      git-cvsimport.txt: fix '-M' description.

Shawn O. Pearce (1):
      fast-import: check return value from unpack_entry()

Stelian Pop (1):
      hg-to-git: fix parent analysis

Uwe Kleine-König (1):
      rebase -i: accept -m as advertised in the man page


Version v1.5.4.1; changes since v1.5.4:
---------------------------------------

Gerrit Pape (1):
      INSTALL: git-merge no longer uses cpio

Jari Aalto (1):
      Documentation/git-stash.txt: Adjust SYNOPSIS command syntax (2)

Junio C Hamano (3):
      Update stale documentation links from the main documentation.
      Fix "git-commit -C $tag"
      gitattributes: fix relative path matching

Jörg Sommer (2):
      git-am: fix type in its usage string
      git-remote documentation: fix synopsis to match description

Tim Stoakes (1):
      Fix typo in 'blame' documentation.

Timo Hirvonen (1):
      Fix parsing numeric color values


Version v1.5.4; changes since v1.5.4-rc5:
-----------------------------------------

Brandon Casey (4):
      git-relink: avoid hard linking in objects/info directory
      filter-branch.sh: remove temporary directory on failure
      filter-branch docs: remove brackets so not to imply revision arg is optional
      filter-branch: assume HEAD if no revision supplied

Bruno Ribas (1):
      gitweb: Make use of the $git_dir variable at sub git_get_project_description

Christian Couder (3):
      Documentation: config: add "browser.<tool>.path".
      Documentation: help: specify supported html browsers.
      instaweb: use 'browser.<tool>.path' config option if it's set.

Jakub Narębski (1):
      gitweb: Add info about $projectroot and $projects_list to gitweb/README

Jean-Luc Herren (1):
      Documentation/git-cvsserver: Fix typo

Jeff King (1):
      t9001: add missing && operators

Jim Meyering (1):
      fix doc typos

Johannes Schindelin (1):
      Add test for rebase -i with commits that do not pass pre-commit

Junio C Hamano (4):
      reflog-expire: Avoid creating new files in a directory inside readdir(3) loop
      Revert "filter-branch docs: remove brackets so not to imply revision arg is optional"
      Fix "git checkout -b foo ':/substring'"
      GIT 1.5.4

Michele Ballabio (1):
      Fix typo in a comment in t/test-lib.sh

Miklos Vajna (1):
      git rev-parse manpage: spelling fix

Shawn O. Pearce (1):
      Use 'printf %s $x' notation in t5401

Yasushi SHOJI (1):
      gitweb: Convert generated contents to utf8 in commitdiff_plain


Version v1.5.4-rc5; changes since v1.5.4-rc4:
---------------------------------------------

Alex Riesen (1):
      Make t5710 more strict when creating nested repos

Brandon Casey (1):
      git-commit: exit non-zero if we fail to commit the index

Eric Wong (1):
      git-svn: default to repacking every 1000 commits

Gustaf Hendeby (1):
      send-email, fix breakage in combination with --compose

Jakub Narębski (1):
      autoconf: define NO_SYS_SELECT_H on systems without <sys/select.h>.

Johannes Schindelin (1):
      pull --rebase: be cleverer with rebased upstream branches

Junio C Hamano (5):
      git-submodule: rename shell functions for consistency
      git-submodule: fix subcommand parser
      git-submodule: add test for the subcommand parser fix
      Clarify that http-push being temporarily disabled with older cURL
      GIT 1.5.4-rc5

Mike Hommey (2):
      Add a missing dependency on http.h
      Documentation: add a bit about sendemail.to configuration

Miklos Vajna (2):
      git-clone -s: document problems with git gc --prune
      git pull manpage: don't include -n from fetch-options.txt

Nicolas Pitre (1):
      pack-objects: Fix segfault when object count is less than thread count

Pierre Habouzit (1):
      parse-options: catch likely typo in presense of aggregated options.

Robert Schiele (2):
      pre-POSIX.1-2001 systems do not have <sys/select.h>
      Makefile: customization for supporting HP-UX

Sam Vilain (1):
      git-svn(1): update instructions for resuming a git-svn clone

Shawn O. Pearce (10):
      git-gui: Honor the standard commit-msg hook
      git-gui: Correct window title for hook failure dialogs
      git-gui: Consolidate hook execution code into a single function
      git-gui: Correct encoding of glossary/fr.po to UTF-8
      Teach fast-import to honor pack.compression and pack.depth
      Document the hairy gfi_unpack_entry part of fast-import
      git-gui: Work around random missing scrollbar in revision list
      git-gui: Fallback to Tcl based po2msg.sh if msgfmt isn't available
      git-gui: Make the statistics of po2msg match those of msgfmt
      git-gui: Correctly cleanup msgfmt '1 message untranslated' output

Steffen Prohaska (3):
      submodule: Document the details of the command line syntax
      t9400-git-cvsserver-server: Wrap setup into test case
      cvsserver: Fix for histories with multiple roots


Version v1.5.4-rc4; changes since v1.5.4-rc3:
---------------------------------------------

Bill Lear (1):
      Correct spelling in diff.c comment

Brandon Casey (4):
      close_lock_file(): new function in the lockfile API
      Improve use of lockfile API
      refs.c: rework ref_locks by abstracting from underlying struct lock_file
      fast-import.c: don't try to commit marks file if write failed

Christian Couder (2):
      git-gui: Initial french translation
      git-gui: add french glossary: glossary/fr.po

Christian Stimming (4):
      git-gui: Update glossary: add term "hunk"
      git-gui: Update German translation
      git-gui: Fix broken revert confirmation.
      git-gui: Improve German translation.

Dan McGee (3):
      Remove usage of git- (dash) commands from email hook
      cvsimport: remove last use of repo-config from git standard tools
      Update git-completion for new 'remote rm' option

Dave Peticolas (1):
      Documentation: fix and clarify grammar in git-merge docs.

Dmitry Potapov (1):
      treat any file with NUL as binary

Eric Wong (1):
      git-svn: handle leading/trailing whitespace from svnsync revprops

Grégoire Barbier (4):
      http-push: disable http-push without USE_CURL_MULTI
      http-push: fix webdav lock leak.
      http-push: fail when info/refs exists and is already locked
      http-push and http-fetch: handle URLs without trailing /

Jakub Narębski (1):
      autoconf: Add checking for unsetenv function

Jean-Luc Herren (1):
      Make default pre-commit hook less noisy

Jeff King (5):
      git-clean: fix off-by-one memory access when given no arguments
      color unchanged lines as "plain" in "diff --color-words"
      send-email: detect invocation errors earlier
      send-email: validate patches before sending anything
      send-email: add no-validate option

Jim Meyering (2):
      fast-import: Don't use a maybe-clobbered errno value
      doc typo: s/prior committing/prior to committing/

Johannes Schindelin (1):
      gitk: make Ctrl "+" really increase the font size

Junio C Hamano (8):
      builtin-commit.c: remove useless check added by faulty cut and paste
      Revert "builtin-commit.c: remove useless check added by faulty cut and paste"
      Fix git-rerere documentation
      Squelch bogus progress output from git-rebase--interactive
      Document lockfile API
      Officially deprecate repo-config.
      http-push: clarify the reason of error from the initial PROPFIND request
      GIT 1.5.4-rc4

Kristian Høgsberg (1):
      git-commit: fix double close(2) that can close a wrong file descriptor

Lars Hjemli (1):
      Move sha1_file_to_archive into libgit

Linus Torvalds (4):
      Fix performance regression for partial commits
      Make builtin-commit.c more careful about parenthood
      Make 'git fsck' complain about non-commit branches
      Be more careful about updating refs

Mark Drago (1):
      hg-to-git: improve popen calls

Mark Levedahl (1):
      git-gui: Makefile - Handle $DESTDIR on Cygwin

Martin Koegler (1):
      parse_commit_buffer: tighten checks while parsing

Miklos Vajna (3):
      Add using merge subtree How-To
      ls-remote: add -t and -h options.
      Include rev-list options in git-log manpage.

Peter Krefting (1):
      git-gui: Updated Swedish translation after mailing list review.

Shawn O. Pearce (3):
      git-gui: Allow 'Create New Repository' on existing directories
      git-gui: Refresh file status description after hunk application
      Fix random fast-import errors when compiled with NO_MMAP

Thomas Zander (1):
      core-tutorial typofix


Version v1.5.4-rc3; changes since v1.5.4-rc2:
---------------------------------------------

Alexandre Julliard (6):
      git.el: Support for getting diffs from inside the log-edit buffer.
      git.el: Retrieve the permissions for up-to-date files.
      git.el: Display file types and type changes.
      git.el: Make sure we never insert the same file twice.
      git.el: Refresh files from their real state upon commit.
      git.el: Make status refresh faster.

Bernt Hansen (1):
      git-gui: Make commit log messages end with a newline

Brandon Casey (1):
      git-relink.txt: describe more clearly how hard linking occurs

Charles Bailey (1):
      gitk: Fix the Makefile to cope with systems lacking msgfmt

Christian Couder (1):
      Documentation: config: add 'help.*' and 'instaweb.*' variables.

Christian Stimming (10):
      gitk i18n: Add Makefile with rules for po file creation and installation
      gitk i18n: Import msgcat for message string translation; load translation catalogs
      gitk i18n: Markup several strings for translation
      gitk i18n: Initial German translation
      gitk i18n: More markup -- various options menus
      gitk i18n: Recode gitk from latin1 to utf8 so that the (c) copyright character is valid utf8.
      gitk: Update and fix Makefile
      gitk: Update German translation
      gitk: Fix typo in user message.
      gitk: Update German translation.

Dan McGee (1):
      Documentation: rename gitlink macro to linkgit

Eric Wong (4):
      git-svn: allow dcommit --no-rebase to commit multiple, dependent changes
      git-svn: unlink index files that were globbed, too
      git-svn: support for funky branch and project names over HTTP(S)
      git-svn: clarify the "Ignoring error from SVN" piece

Florian La Roche (1):
      Change git-gc documentation to reflect gc.packrefs implementation.

Gerrit Pape (1):
      gitk: use user-configured background in view definition dialog

Grégoire Barbier (1):
      Fix double-free() in http-push.c:remote_exists()

Gustaf Hendeby (1):
      Documentation/user-manual.txt: fix typo

J. Bruce Fields (1):
      Documentation: fix remote.<name>.skipDefaultUpdate description

James Bowes (1):
      Make the git metapackage require the same version of the subpackages.

Jeff King (8):
      config: handle lack of newline at end of file better
      git-reset: refuse to do hard reset in a bare repository
      add a "basic" diff config callback
      diff: load funcname patterns in "basic" config
      diff: remove lazy config loading
      add--interactive: remove unused diff colors
      add--interactive: allow diff colors without interactive colors
      Document the color.interactive semantics

Jim Meyering (3):
      Fix grammar nits in documentation and in code comments.
      Don't access line[-1] for a zero-length "line" from fgets.
      bundle, fast-import: detect write failure

Johannes Schindelin (2):
      Optimize prefixcmp()
      shortlog: mention the "-e" option in the usage

Johannes Sixt (2):
      git-gui: Move frequently used commands to the top of the context menu.
      recv_sideband: Do not use ANSI escape sequence on dumb terminals.

Junio C Hamano (27):
      Documentation/git-submodule.txt: typofix
      "git pull --tags": error out with a better message.
      git-rebase -i behaves better on commits with incomplete messages
      git-rebase -i: clean-up error check codepath.
      lock_any_ref_for_update(): reject wildcard return from check_ref_format
      Update callers of check_ref_format()
      Uninline prefixcmp()
      git-clean: make "Would remove ..." path relative to cwd again
      t/t7600: avoid GNUism in grep
      t/t{3600,3800,5401}: do not use egrep when grep would do
      t/t3800: do not use a temporary file to hold expected result.
      Update draft release notes for 1.5.4
      git-stash clear: refuse to work with extra parameter for now
      git-rev-parse --symbolic-full-name
      filter-branch: work correctly with ambiguous refnames
      custom pretty format: tolerate empty e-mail address
      Documentation: remove gitman.info with "make clean"
      Documentation: fix "gitlink::foobar[s]"
      utf8: pick_one_utf8_char()
      utf8_width(): allow non NUL-terminated input
      diff: do not chomp hunk-header in the middle of a character
      Update draft release notes for 1.5.4
      GIT 1.5.3.8
      "git-apply --check" should not report "fixed"
      pack-objects: remove redundant and wrong call to deflateEnd()
      RPM spec: include gitk message files.
      GIT 1.5.4-rc3

Kevin Ballard (1):
      Trim leading / off of paths in git-svn prop_walk

Marco Costalba (2):
      Document git-reset defaults to HEAD if no commit is given
      git-stash: use stdout instead of stderr for non error messages

Mark Levedahl (2):
      git-gui: Unconditionally use absolute paths with Cygwin
      Documentation/Makefile - honor $DESTDIR for quick-install target

Martin Koegler (4):
      receive-pack: check object type of sha1 before using them as commits
      receive-pack: reject invalid refnames
      parse_tag_buffer: don't parse invalid tags
      tree-walk: don't parse incorrect entries

Michael Stefaniuc (1):
      git-am: Run git gc only once and not for every patch.

Michele Ballabio (1):
      Document some default values in config.txt

Miklos Vajna (2):
      git-sh-setup: document git_editor() and get_author_ident_from_commit()
      t/t7001: avoid unnecessary ERE when using grep

Nicolas Pitre (1):
      slightly better auto gc message

Paul Mackerras (2):
      gitk: Recode de.po to UTF-8
      gitk: Restore some widget options whose defaults changed in Tk 8.5

Peter Krefting (1):
      Added Swedish translation.

Ralf Wildenhues (1):
      Documentation: typofix

Rogan Dawes (1):
      Allow git-mergetool to handle paths with a leading space

Shawn O. Pearce (1):
      git-gui: Handle file mode changes (644->755) in diff viewer


Version v1.5.4-rc2; changes since v1.5.4-rc1:
---------------------------------------------

Alex Riesen (1):
      Allow selection of different cleanup modes for commit messages

Arjen Laarhoven (1):
      Fix "git log --diff-filter" bug

Charles Bailey (1):
      Remove old generated files from .gitignore.

Gustaf Hendeby (2):
      Make git send-email accept $EDITOR with arguments
      shortlog manpage documentation: work around asciidoc markup issues

Jakub Narębski (1):
      gitweb: fix whitespace in config_to_multi (indent with tab)

Jeff King (2):
      clean up 1.5.4 release notes
      cvsimport: die on cvsps errors

Jim Meyering (1):
      Don't dereference NULL upon lookup failure.

Johannes Schindelin (2):
      Teach diff machinery to display other prefixes than "a/" and "b/"
      Mention git-shell's "cvs" substitution in the RelNotes

Junio C Hamano (14):
      t4024: fix test script to use simpler sed pattern
      fix git commit --amend -m "new message"
      shell-scripts usage(): consistently exit with non-zero
      Documentation: ls-files -v is about "assume unchanged".
      Fix $EDITOR regression introduced by rewrite in C.
      t7005: do not exit inside test.
      builtin-commit: fix amending of the initial commit
      builtin-commit: avoid double-negation in the code.
      Documentation: describe 'union' low-level merge driver
      Fix documentation of --first-parent in git-log and copy it to git-rev-list
      combine-diff: Fix path quoting
      Fix rewrite_diff() name quoting.
      contrib: resurrect scripted git-revert.
      GIT 1.5.4-rc2

Linus Torvalds (1):
      Re(-re)*fix trim_common_tail()

Miklos Vajna (1):
      everyday: replace 'prune' and 'repack' with 'gc'

Pierre Habouzit (3):
      git-tag: fix -l switch handling regression.
      Force the sticked form for options with optional arguments.
      parse-options: Add a gitcli(5) man page.

René Scharfe (1):
      Make "--pretty=format" parser a bit more careful.

Shawn O. Pearce (2):
      Reallow git-rebase --interactive --continue if commit is unnecessary
      Improve error messages when int/long cannot be parsed from config

Stefan Sperling (1):
      Small comment fix for git-cvsimport.

Wincent Colaiuta (1):
      Emit helpful status for accidental "git stash" save


Version v1.5.4-rc1; changes since v1.5.4-rc0:
---------------------------------------------

Andy Whitcroft (1):
      git-svn: expand handling of From: and Signed-off-by:

Charles Bailey (1):
      Fix git-instaweb breakage on MacOS X due to the limited sed functionality

Christian Couder (1):
      git-help: add "help.format" config variable.

David S. Miller (1):
      fast-import: fix unalinged allocation and access

Eric Wong (5):
      git-svn: unlink internal index files after operations
      git-svn: handle our top-level path being deleted and later re-added
      git-svn: avoid leaving leftover committer/author info in rebase
      git-svn: workaround a for broken symlinks in SVN
      git-svn: avoid warning when run without arguments

Finn Arne Gangstad (1):
      Improved submodule merge support

H. Merijn Brand (1):
      the use of 'tr' in the test suite isn't really portable

J. Bruce Fields (8):
      whitespace: fix off-by-one error in non-space-in-indent checking
      whitespace: reorganize initial-indent check
      whitespace: minor cleanup
      whitespace: fix initial-indent checking
      whitespace: more accurate initial-indent highlighting
      whitespace: fix config.txt description of indent-with-non-tab
      builtin-apply: minor cleanup of whitespace detection
      builtin-apply: stronger indent-with-on-tab fixing

Jakub Narębski (2):
      gitweb: disambiguate heads and tags withs the same name
      gitweb: Teach "a=blob" action to be more lenient about blob/file mime type

Jeff King (7):
      cvsexportcommit: fix massive commits
      trim_common_tail: brown paper bag fix.
      teach bash completion to treat commands with "--" as a helper
      rename git-browse--help to git-help--browse
      clone: correctly report http_fetch errors
      git-send-email: avoid duplicate message-ids
      test "git clone -o"

Jim Meyering (1):
      git-filter-branch.sh: more portable tr usage: use \012, not \n.

Johannes Schindelin (4):
      Support config variable diff.external
      Document diff.external and mergetool.<tool>.path
      rebase -p -i: handle "no changes" gracefully
      git show <tag>: show the tagger

Johannes Sixt (4):
      threaded pack-objects: Use condition variables for thread communication.
      Plug a resource leak in threaded pack-objects code.
      Clean up documentation that references deprecated 'git peek-remote'.
      filter-branch: Remove broken and unnecessary summary of rewritten refs.

Junio C Hamano (18):
      git-commit: squelch needless message during an empty merge
      xdl_diff: identify call sites.
      xdi_diff: trim common trailing lines
      diff --check: minor fixups
      Add tests for "git diff --check" with core.whitespace options
      xdiff tail trimming: use correct type.
      commit: allow --amend to reuse message from another commit
      remote: Fix bogus make_branch() call in configuration reader.
      Rename git-browse-help helper to git-browse--help
      Retire git-runstatus for real.
      Start preparing the API documents.
      Update draft release notes for 1.5.4
      Re-re-re-fix common tail optimization
      builtin-commit: fix summary output.
      builtin-commit: make summary output consistent with status
      Documentation/git-submodule: refer to gitmodules(5)
      builtin-blame.c: remove unneeded memclr()
      GIT 1.5.4-rc1

Kristian Høgsberg (1):
      Use a strbuf for building up section header and key/value pair strings.

Li Hong (1):
      Fix a memory leak

Linus Torvalds (1):
      unpack-trees: FLEX_ARRAY fix

Marco Roeland (1):
      clone: fix options '-o' and '--origin' to be recognised again

Mike Hommey (8):
      Fix some more memory leaks in http-push.c
      Fix random sha1 in error message in http-fetch and http-push
      Remove the default_headers variable from http-push.c
      Remove a CURLOPT_HTTPHEADER (un)setting
      Avoid redundant declaration of missing_target()
      Use strbuf in http code
      Fix various memory leaks in http-push.c and http-walker.c
      Move fetch_ref from http-push.c and http-walker.c to http.c

Nicolas Pitre (3):
      provide advance warning of some future pack default changes
      fix style of a few comments in diff-delta.c
      make 'git describe --all --contains' work

Petr Baudis (1):
      gitweb: Make config_to_multi return [] instead of [undef]

Pierre Habouzit (1):
      Fix segfault in diff-delta.c when FLEX_ARRAY is 1

Ralf Wildenhues (1):
      Fix some documentation typos.

Sam Vilain (1):
      Clarify error response from 'git fetch' for bad responses

Sean Estabrooks (1):
      Fix interactive rebase to preserve author email address

Shawn Bohrer (1):
      Fix spelling mistakes in user manual

Shawn O. Pearce (2):
      Avoid update hook during git-rebase --interactive
      Catch and handle git-commit failures in git-rebase --interactive

Wincent Colaiuta (5):
      "diff --check" should affect exit status
      Unify whitespace checking
      Make "diff --check" output match "git apply"
      Use shorter error messages for whitespace problems
      Test interaction between diff --check and --exit-code

anonymous (1):
      Documentation: describe pack idx v2


Version v1.5.4-rc0; changes since v1.5.3.8:
-------------------------------------------

Alex Riesen (12):
      fix t5403-post-checkout-hook.sh: built-in test in dash does not have "=="
      Fix a crash in ls-remote when refspec expands into nothing
      More updates and corrections to the russian translation of git-gui
      Rework make_usage to print the usage message immediately
      Updated russian translation of git-gui
      Do no colorify test output if stdout is not a terminal
      Add a test checking if send-pack updated local tracking branches correctly
      Update the tracking references only if they were succesfully updated on remote
      Fix dependencies of parse-options test program
      Do not generate full commit log message if it is not going to be used
      Simplify crud() in ident.c
      Fix git-fast-export for zero-sized blobs

Alexandre Julliard (12):
      git.el: Keep the status buffer sorted by filename.
      git.el: Allow selecting whether to display uptodate/unknown/ignored files.
      git.el: Allow the add and remove commands to be applied to ignored files.
      git.el: Preserve file marks when doing a full refresh.
      git.el: Do not print a status message on every git command.
      git.el: Update a file status in the git buffer upon save.
      git.el: Reset the permission flags when changing a file state.
      git.el: Fix typo in "Reverted file" message.
      git.el: Fix typo in git-update-saved-file error handling.
      git.el: Refresh only the changed file marks when marking/unmarking all.
      git.el: Run git-gc --auto after commits.
      git.el: Added a menu for git-status-mode.

Andreas Ericsson (1):
      Simplify strchrnul() compat code

André Goddard Rosa (2):
      Print the real filename that we failed to open.
      Error out when user doesn't have access permission to the repository

Andy Parkins (4):
      parse_date_format(): convert a format name to an enum date_mode
      Make for-each-ref allow atom names like "<name>:<something>"
      Make for-each-ref's grab_date() support per-atom formatting
      Add a test script for for-each-ref, including test of date formatting

Andy Whitcroft (6):
      Teach send-pack a mirror mode
      git-push: plumb in --mirror mode
      Add tests for git push'es mirror mode
      git-push: add documentation for the newly added --mirror mode
      git-quiltimport.sh fix --patches handling
      git-svn: add support for pulling author from From: and Signed-off-by:

Anton Gyllenberg (1):
      gitview: import only one of gtksourceview and gtksourceview2

Ask Bjørn Hansen (1):
      send-email: Don't add To: recipients to the Cc: header

Benoit Sigoure (7):
      git-svn: add a generic tree traversal to fetch SVN properties
      git-svn: implement git svn create-ignore
      git-svn: add git svn propget
      git-svn: add git svn proplist
      git-svn: simplify the handling of fatal errors
      core-tutorial: Catch up with current Git
      git-svn: sort the options in the --help message.

Björn Steinbrink (1):
      git config: Don't rely on regexec() returning 1 on non-match

Blake Ramsdell (1):
      transport.c: squelch a gcc 4.0.1 complaint about an uninitialized variable

Brandon Casey (2):
      git-gc: by default use safer "-A" option to repack when not --prune'ing
      git-gc --auto: simplify "repack" command line building

Brian Ewins (2):
      Add a --dry-run option to git-send-pack.
      Add a --dry-run option to git-push.

Brian Gernhardt (3):
      format-patch: Add configuration and off switch for --numbered
      format-patch: Test --[no-]numbered and format.numbered
      t3502: Disambiguate between file and rev by adding --

Carlos Rica (5):
      Function for updating refs.
      Add tests for documented features of "git reset".
      Move make_cache_entry() from merge-recursive.c into read-cache.c
      Make "git reset" a builtin.
      Make builtin-tag.c use parse_options.

Charles Bailey (1):
      Fix clone not to ignore depth when performing a local clone

Cheng Renquan (1):
      gitweb: the commitdiff is very commonly used, it's needed on search page, too

Chris Pettitt (3):
      git-p4 support for perforce renames.
      git-p4: Add a helper function to parse the full git diff-tree output.
      git-p4: Detect changes to executable bit and include them in p4 submit.

Christian Couder (27):
      rev-list --bisect: Move finding bisection into do_find_bisection.
      rev-list --bisect: Move some bisection code into best_bisection.
      rev-list --bisect: Bisection "distance" clean up.
      rev-list --bisect: Fix best == NULL case.
      Test suite: reset TERM to its previous value after testing.
      rev-list: implement --bisect-all
      rev-list documentation: add "--bisect-all".
      Bisect: fix some white spaces and empty lines breakages.
      Bisect: implement "bisect skip" to mark untestable revisions.
      Bisect: refactor "bisect_write_*" functions.
      Bisect: refactor some logging into "bisect_write".
      Bisect: refactor "bisect_{bad,good,skip}" into "bisect_state".
      Bisect: add "bisect skip" to the documentation.
      Bisect: add a "bisect replay" test case.
      Bisect run: "skip" current commit if script exit code is 125.
      Bisect: add "skip" to the short usage string.
      Bisect reset: remove bisect refs that may have been packed.
      Bisect visualize: use "for-each-ref" to list all good refs.
      Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we are bisecting.
      Bisect reset: do nothing when not bisecting.
      Documentation: add a new man page for "git-help"
      Trace and quote with argv: get rid of unneeded count argument.
      git-help: add -i|--info option to display info page.
      Documentation: describe -i/--info option to "git-help"
      git-help: add -w|--web option to display html man page in a browser.
      Use {web,instaweb,help}.browser config options.
      Documentation: describe -w/--web option to "git-help".

Christian Stimming (14):
      Mark strings for translation.
      Makefile rules for translation catalog generation and installation.
      Add glossary that can be converted into a po file for each language.
      Add glossary translation template into git.
      German translation for git-gui
      German glossary for translation
      git-gui: Add more words to translation glossary
      git-gui: Update German glossary according to mailing list discussion
      git-gui: Incorporate glossary changes into existing German translation
      git-gui: Update German translation, including latest glossary changes
      git-gui: Add more terms to glossary.
      git-gui: Update German translation
      Update git-gui.pot with latest (few) string additions and changes.
      Update German translation. 100% completed.

Dan McGee (1):
      Remove outdated references to cogito in documentation

Daniel Barkalow (23):
      Refactor http.h USE_CURL_MULTI fill_active_slots().
      Make function to refill http queue a callback
      Remove obsolete commit-walkers
      Modularize commit-walker
      Add uploadpack configuration info to remote.
      Report information on branches from remote.h
      Make fetch-pack a builtin with an internal API
      Push code for transport library
      Add matching and parsing for fetch-side refspec rules
      Add fetch methods to transport library.
      Make fetch a builtin
      Allow abbreviations in the first refspec to be merged
      Fix adding a submodule with a remote url
      Restore default verbosity for http fetches.
      Remove duplicate ref matches in fetch
      Correct handling of upload-pack in builtin-fetch-pack
      Miscellaneous const changes and utilities
      Build-in peek-remote, using transport infrastructure.
      Use built-in send-pack.
      Build-in send-pack, with an API for other programs to call.
      Build in ls-remote
      Use parseopts in builtin-push
      Add more checkout tests

David D. Kilzer (8):
      git-svn log: fix ascending revision ranges
      git-svn log: include commit log for the smallest revision in a range
      git-svn log: handle unreachable revisions like "svn log"
      git-send-email: show all headers when sending mail
      git-svn: extract reusable code into utility functions
      git-svn info: implement info command
      git-svn: info --url [path]
      git-svn: Remove unnecessary Git::SVN::Util package

David Kastrup (3):
      diff-delta.c: pack the index structure
      diff-delta.c: Rationalize culling of hash buckets
      git-commit.sh: Shell script cleanup

David Reiss (1):
      git-svn: Fix a typo and add a comma in an error message in git-svn

David Symonds (7):
      gitweb: Provide title attributes for abbreviated author names.
      gitweb: Refactor abbreviation-with-title-attribute code.
      gitweb: Use chop_and_escape_str in more places.
      Rearrange git-format-patch synopsis to improve clarity.
      git-checkout: Support relative paths containing "..".
      git-checkout: Test for relative path use.
      Mention that git-rm can be an appropriate resolution as well as git-add.

Dmitry Potapov (1):
      preserve executable bits in zip archives

Douglas Stockwell (1):
      send-email: Add support for SSL and SMTP-AUTH

Emil Medve (2):
      Fixed a command line option type for builtin-fsck.c
      git-stash: Fix listing stashes

Eric Wong (6):
      git-svn: support for funky branch and project names over HTTP(S)
      git-svn: add tests for command-line usage of init and clone commands
      t9106: fix a race condition that caused svn to miss modifications
      git-svn: allow `info' command to work offline
      git-svn: replace .rev_db with a more space-efficient .rev_map format
      git-svn: reinstate old rev_db optimization in new rev_map

Eygene Ryabinkin (2):
      git-svn: respect Subversion's [auth] section configuration values
      git-svn: use "no warnings 'once'" to disable false-positives

Eyvind Bernhardsen (1):
      Fix mis-markup of the -p, --patch option in git-add(1)

Frederick Akalin (1):
      gtksourceview2 support for gitview

Gerrit Pape (9):
      No longer install git-svnimport, move to contrib/examples
      git-reset: add -q option to operate quietly
      contrib/hooks/post-receive-email: fix typo
      contrib/hooks/post-receive-email: reformat to wrap comments at 76 chars
      contrib/hooks/post-receive-email: make subject prefix configurable
      hooks--update: fix test for properly set up project description file
      hooks--update: decline deleting tags or branches by default, add config options
      contrib/hooks/post-receive-email: remove cruft, $committer is not used
      Don't cache DESTDIR in perl/perl.mak.

Gordon Hopper (1):
      git-cvsimport: fix handling of user name when it is not set in CVSROOT

Guido Ostkamp (2):
      Remove unreachable statements
      Use compat mkdtemp() on Solaris boxes

Gustaf Hendeby (1):
      git-svn now reads settings even if called in subdirectory

H. Merijn Brand (1):
      Do not rely on the exit status of "unset" for unset variables

Harri Ilari Tapio Liusvaara (1):
      git-gui: Disambiguate "commit"

Heikki Orsila (1):
      git-clone: honor "--" to end argument parsing

Irina Riesen (1):
      git-gui: initial version of russian translation

J. Bruce Fields (3):
      git-rebase: support --whitespace=<option>
      git-rebase: fix -C option
      errors: "strict subset" -> "ancestor"

Jakub Narębski (18):
      gitweb: Fix and simplify "split patch" detection
      gitweb: Always set 'from_file' and 'to_file' in parse_difftree_raw_line
      gitweb: Add 'status_str' to parse_difftree_raw_line output
      gitweb: Remove CGI::Carp::set_programname() call from t9500 gitweb test
      gitweb: Easier adding/changing parameters to current URL
      gitweb: Use href(-replay=>1, page=>...) to generate pagination links
      gitweb: Use href(-replay=>1, action=>...) to generate alternate views
      gitweb: Add tests for overriding gitweb config with repo config
      gitweb: Read repo config using 'git config -z -l'
      gitweb: Use config file for repository description and URLs
      gitweb: Style all tables using CSS
      gitweb: Put project README in div.readme, fix its padding
      autoconf: Add tests for memmem, strtoumax and mkdtemp functions
      Add config_int() method to the Git perl module
      gitweb: Update and improve gitweb/README file
      contrib: Make remotes2config.sh script more robust
      autoconf: Add test for OLD_ICONV (squelching compiler warning)
      autoconf: Check asciidoc version to automatically set ASCIIDOC8

James Bowes (3):
      remote: add 'rm' subcommand
      remote: document the 'rm' subcommand
      gc: use parse_options

Jari Aalto (2):
      git-remote: exit with non-zero status after detecting error in "rm".
      On error, do not list all commands, but point to --help option

Jeff King (36):
      contrib/fast-import: add perl version of simple example
      diffcore-rename: cache file deltas
      git-rebase: document suppression of duplicate commits
      send-pack: don't update tracking refs on error
      t5516: test update of local refs on push
      git-gc: improve wording of --auto notification
      Documentation/git-gc: explain --auto in description
      Documentation/git-gc: improve description of --auto
      more terse push output
      receive-pack: don't mention successful updates
      send-pack: require --verbose to show update of tracking refs
      git-ls-files: add --exclude-standard
      send-pack: track errors for each ref
      send-pack: check ref->status before updating tracking refs
      send-pack: assign remote errors to each ref
      make "find_ref_by_name" a public function
      send-pack: tighten remote error reporting
      send-pack: fix "everything up-to-date" message
      avoid "defined but not used" warning for fetch_objs_via_walker
      send-pack: cluster ref status reporting
      git-tag: test that -s implies an annotated tag
      Revert "t5516: test update of local refs on push"
      git-commit: clean up die messages
      Enable rewrite as well as rename detection in git-status
      quote_path: fix collapsing of relative paths
      t9600: require cvsps 2.1 to perform tests
      t7300: add test for clean with wildcard pathspec
      wt-status.c:quote_path(): convert empty path to "./"
      add status.relativePaths config variable
      git-status: documentation improvements
      don't mention index refreshing side effect in git-status docs
      Add git-browse-help to .gitignore
      Support GIT_PAGER_IN_USE environment variable
      git-svn: get color config from --get-colorbool
      shortlog: document -e option
      git-clone: print an error message when trying to clone empty repo

Jeff Muizelaar (1):
      fix contrib/hooks/post-receive-email hooks.recipients error message

Jim Meyering (1):
      hooks-pre-commit: use \t, rather than a literal TAB in regexp

Johannes Schindelin (57):
      Add po/git-gui.pot
      Ignore po/*.msg
      Teach "git remote" a mirror mode
      verify-tag: also grok CR/LFs in the tag signature
      apply: get rid of --index-info in favor of --build-fake-ancestor
      Move bundle specific stuff into bundle.[ch]
      Add bundle transport
      git-gui: Deiconify startup wizard so it raises to the top
      git-gui: add a simple msgfmt replacement
      rebase -i: commit when continuing after "edit"
      rebase -i: style fixes and minor cleanups
      rebase -i: Fix numbers in progress report
      rebase -i: avoid exporting GIT_AUTHOR_* variables
      rebase -i: work on a detached HEAD
      rebase -i: support single-letter abbreviations for the actions
      Introduce remove_dir_recursively()
      fetch/push: readd rsync support
      Support cvs via git-shell
      Fix compilation when NO_CURL is defined
      cvsexportcommit: get rid of temporary directory
      fetch: if not fetching from default remote, ignore default merge
      Deduce exec_path also from calls to git with a relative path
      Add tests for parse-options.c
      parse-options: Allow abbreviated options when unambiguous
      po2msg: ignore entries marked with "fuzzy"
      po2msg: ignore untranslated messages
      po2msg: actually output statistics
      git-reset: do not be confused if there is nothing to reset
      Split off the pretty print stuff into its own file
      parse-options: abbreviation engine fix.
      builtin-reset: do not call "ls-files --unmerged"
      builtin-reset: avoid forking "update-index --refresh"
      Deprecate git-lost-found
      rebase: operate on a detached HEAD
      builtin-blame: set up the work_tree before the first file access
      rebase: fix "rebase --continue" breakage
      Close files opened by lock_file() before unlinking.
      rebase -i: move help to end of todo file
      launch_editor(): read the file, even when EDITOR=:
      builtin-commit: fix reflog message generation
      git status: show relative paths when run in a subdirectory
      builtin-commit: fix --signoff
      builtin-commit --s: add a newline if the last line was not a S-o-b
      builtin-commit: resurrect behavior for multiple -m options
      builtin-commit: Add newline when showing which commit was created
      Replace "runstatus" with "status" in the tests
      filter-branch: fix dirty way to provide the helpers to commit filters
      git checkout's reflog: even when detaching the HEAD, say from where
      bash completion: add diff options
      Replace instances of export VAR=VAL with VAR=VAL; export VAR
      Teach 'git pull' about --rebase
      rebase -i: give rerere a chance
      receive-pack: allow deletion of corrupt refs
      Add "--expire <time>" option to 'git prune'
      Add 'git fast-export', the sister of 'git fast-import'
      fast-export: rename the signed tag mode 'ignore' to 'verbatim'
      Allow ':/<oneline-prefix>' syntax to work with save_commit_buffer == 0

Johannes Sixt (38):
      git-gui: Change main window layout to support wider screens
      gitk: Do not pick up file names of "copy from" lines
      Change git_connect() to return a struct child_process instead of a pid_t.
      Use start_command() in git_connect() instead of explicit fork/exec.
      Use start_command() to run content filters instead of explicit fork/exec.
      Use run_command() to spawn external diff programs instead of fork/exec.
      Use start_comand() in builtin-fetch-pack.c instead of explicit fork/exec.
      Have start_command() create a pipe to read the stderr of the child.
      upload-pack: Use start_command() to run pack-objects in create_pack_file().
      Add infrastructure to run a function asynchronously.
      Use the asyncronous function infrastructure in builtin-fetch-pack.c.
      upload-pack: Move the revision walker into a separate function.
      upload-pack: Run rev-list in an asynchronous function.
      t0021-conversion.sh: Test that the clean filter really cleans content.
      Avoid a dup2(2) in apply_filter() - start_command() can do it for us.
      Use the asyncronous function infrastructure to run the content filter.
      Fix an infinite loop in sq_quote_buf().
      upload-pack: Use finish_{command,async}() instead of waitpid().
      Give git-am back the ability to add Signed-off-by lines.
      git-clean: Fix error message if clean.requireForce is not set.
      Fix preprocessor logic that determines the availablity of strchrnul().
      t5300-pack-object.sh: Split the big verify-pack test into smaller parts.
      t7501-commit.sh: Not all seds understand option -i
      t5302-pack-index: Skip tests of 64-bit offsets if necessary.
      Skip t3902-quoted.sh if the file system does not support funny names.
      Use is_absolute_path() in sha1_file.c.
      Move #include <sys/select.h> and <sys/ioctl.h> to git-compat-util.h.
      builtin run_command: do not exit with -1.
      Allow a relative builtin template directory.
      Introduce git_etc_gitconfig() that encapsulates access of ETC_GITCONFIG.
      Allow ETC_GITCONFIG to be a relative path.
      refs.c: Remove unused get_ref_sha1()
      fetch-pack: Prepare for a side-band demultiplexer in a thread.
      Flush progress message buffer in display().
      git-gui: Improve the application icon on Windows.
      git-commit: Allow to amend a merge commit that does not change the tree
      for-each-ref: Fix quoting style constants.
      Fix a typo in checkout.sh and cleanup one-line help messages

Jonas Fonseca (2):
      Update manpages to reflect new short and long option aliases
      Documentation: Fix references to deprecated commands

Jonathan del Strother (2):
      Fixing path quoting in git-rebase
      gitk: Add support for OS X mouse wheel

Josh England (4):
      Add post-merge hook, related documentation, and tests.
      Added example hook script to save/restore permissions/ownership.
      post-checkout hook, tests, and docs
      Minor usage update in setgitperms.perl

Junio C Hamano (157):
      Keep last used delta base in the delta window
      git-gui po/README: Guide to translators
      Start 1.5.4 cycle
      Implement git gc --auto
      Invoke "git gc --auto" from commit, merge, am and rebase.
      archive - leakfix for format_subst()
      git-commit: Allow partial commit of file removal.
      An additional test for "git-reset -- path"
      Simplify cache API
      git-commit: partial commit of paths only removed from the index
      Document ls-files --with-tree=<tree-ish>
      builtin-pack-objects.c: avoid bogus gcc warnings
      stash: implement "stash create"
      rebase: allow starting from a dirty tree.
      Export matches_pack_name() and fix its return value
      pack-objects --keep-unreachable
      repack -A -d: use --keep-unreachable when repacking
      git-gc --auto: move threshold check to need_to_gc() function.
      git-gc --auto: add documentation.
      git-gc --auto: protect ourselves from accumulated cruft
      git-gc --auto: restructure the way "repack" command line is built.
      git-gc --auto: run "repack -A -d -l" as necessary.
      builtin-apply.c: fix a tiny leak introduced during xmemdupz() conversion.
      builtin-for-each-ref.c::copy_name() - do not overstep the buffer.
      git-remote rm: add tests and minor fix-ups
      Start RelNotes for 1.5.4
      strbuf_setlen(): do not barf on setting length of an empty buffer to 0
      send-email --smtp-server-port: allow overriding the default port
      rerere: Fix use of an empty strbuf.buf
      git-am: make the output quieter.
      bundle transport: fix an alloc_ref() call
      Update stale documentation link in the k.org site
      git-am: fix typo in the previous one.
      dateformat: parse %(xxdate) %(yydate:format) correctly
      builtin-apply: fix conversion error in strbuf series
      Update state documentation link for 1.5.3.4
      k.org git toppage: Add link to 1.5.3 release notes.
      help: remove extra blank line after "See 'git --help'" message
      revert/cherry-pick: work on merge commits as well
      git-fetch: do not fail when remote branch disappears
      RelNotes-1.5.4: describe recent updates
      git-gui: Update Japanese strings (part 2)
      Revert "rebase: allow starting from a dirty tree."
      git-merge: no reason to use cpio anymore
      format-patch -s: add MIME encoding header if signer's name requires so
      cherry-pick/revert -m: add tests
      test format-patch -s: make sure MIME content type is shown as needed
      War on whitespace: first, a bit of retreat.
      git-diff: complain about >=8 consecutive spaces in initial indent
      core.whitespace: add test for diff whitespace error highlighting
      clean: require -f to do damage by default
      gc: --prune prunes unreferenced objects.
      scripts: Add placeholders for OPTIONS_SPEC
      git-rev-parse --parseopt
      git-sh-setup: fix parseopt `eval` string underquoting
      send-pack: segfault fix on forced push
      Style: place opening brace of a function definition at column 1
      git-am: -i does not take a string parameter.
      Update draft release notes for 1.5.4
      Documentation: lost-found is now deprecated.
      Make check-docs target detect removed commands
      Documentation: remove documentation for removed tools.
      git-commit: a bit more tests
      Resurrect git-revert.sh example and add comment to builtin-revert.c
      core.excludesfile clean-up
      Fix per-directory exclude handing for "git add"
      git-bisect: war on "sed"
      git-bisect: use update-ref to mark good/bad commits
      git-bisect: modernize branch shuffling hack
      Update draft release notes for 1.5.4
      Draft release notes: fix clean.requireForce description
      Update draft release notes for 1.5.4
      Move gitk to its own subdirectory
      git-clean: Fix error message if clean.requireForce is not set.
      git-compat-util.h: auto-adjust to compiler support of FLEX_ARRAY a bit better
      Fix "quote" misconversion for rewrite diff output.
      Make test scripts executable.
      file_exists(): dangling symlinks do exist
      builtin-commit: do not color status output shown in the message template
      builtin-commit: run commit-msg hook with correct message file
      Export three helper functions from ls-files
      Fix add_files_to_cache() to take pathspec, not user specified list of files
      builtin-commit: fix partial-commit support
      Addendum to "MaintNotes"
      git-add -i: allow multiple selection in patch subcommand
      git-branch --contains=commit
      git-branch --contains: doc and test
      builtin-tag: accept and process multiple -m just like git-commit
      Add a few more tests for git-commit
      builtin-apply: rename "whitespace" variables and fix styles
      t4119: correct overeager war-on-whitespace
      builtin-apply: teach whitespace_rules
      core.whitespace: documentation updates.
      Deprecate peek-remote
      Update draft release notes for 1.5.4
      builtin-add: fix command line building to call interactive
      add -i: Fix running from a subdirectory
      "git-tag -s" should create a signed annotated tag
      revert/cherry-pick: do not mention the original ref
      "color.diff = true" is not "always" anymore.
      git-config --get-color: get configured color
      dir.c: minor clean-up
      per-directory-exclude: lazily read .gitignore files
      Update draft release notes for 1.5.4
      Resurrect peek-remote
      Consolidate command list to one.
      Update draft release notes for 1.5.4
      rename: Break filepairs with different types.
      git-am: catch missing author date early.
      Fix --signoff in builtin-commit differently.
      git-commit: Allow to amend a merge commit that does not change the tree
      git-commit --allow-empty
      git-commit --allow-empty
      git-commit documentation: fix unfinished sentence.
      Add git-fast-export to list of commands.
      Update draft release notes for 1.5.4
      Run the specified perl in Documentation/
      Formatting fix for Documentation/git-help.txt
      Documentation: rerere is enabled by default these days.
      Documentation/git.txt: typofix
      t5510: add a bit more tests for fetch
      git-cvsserver runs hooks/post-update
      Revert "git-am: catch missing author date early."
      Documentation: color.* = true means "auto"
      git config --get-colorbool
      Color support for "git-add -i"
      git-clean: Honor pathspec.
      config --get-colorbool: diff.color is a deprecated synonym to color.diff
      Use gitattributes to define per-path whitespace rule
      hg-to-git: handle an empty dir in hg.
      do not discard status in fetch_refs_via_pack()
      git-status documentation: mention subdirectory behaviour
      Update draft release notes to 1.5.4
      git-bisect visualize: work in non-windowed environments better
      mailmap: fix bogus for() loop that happened to be safe by accident
      shortlog: code restructuring and clean-up
      git-shortlog -e: show e-mail address as well
      ls-remote: resurrect pattern limit support
      Fix commit-msg hook to allow editing
      Re-fix "builtin-commit: fix --signoff"
      Re-fix ls-remote
      Update draft Release Notes for 1.5.4
      Documentation: add gitman.info target
      git-help -i: invoke info with document and node name
      git-help -i: show info documentation from matching version of git
      send-email: do not muck with initial-reply-to when unset.
      commit: do not add extra LF at the end of the summary.
      Support a merge with conflicting gitlink change
      blame: drop blob data after passing blame to the parent
      shortlog: default to HEAD when the standard input is a tty
      git-diff --numstat -z: make it machine readable
      disable t9119 for now.
      Documentation: rename git.texi to user-manual.texi
      git.spec.in: remove python_path
      git-help -w: do not require to be in git repository
      RPM spec: Adjust htmldir
      GIT 1.5.4-rc0

Kevin Leung (2):
      git-p4: Fix typo in --detect-labels
      git-stash: Display help message if git-stash is run with wrong sub-commands

Kirill (1):
      Updated Russian translation.

Konstantin V. Arkhipov (1):
      git-svn's dcommit must use subversion's config

Kristian Høgsberg (18):
      Enable wt-status output to a given FILE pointer.
      Enable wt-status to run against non-standard index file.
      Add strbuf_read_file().
      Clean up stripspace a bit, use strbuf even more.
      Introduce entry point add_interactive and add_files_to_cache
      Export rerere() and launch_editor().
      Port builtin-add.c to use the new option parser.
      Add testcase for amending and fixing author in git commit.
      Export launch_editor() and make it accept ':' as a no-op editor.
      Port git commit to C.
      builtin-commit: Refresh cache after adding files.
      Call refresh_cache() when updating the user index for --only commits.
      builtin-commit: Clean up an unused variable and a debug fprintf().
      t7501-commit: Add test for git commit <file> with dirty index.
      builtin-commit: Include the diff in the commit message when verbose.
      Fix off-by-one error when truncating the diff out of the commit message.
      Use a strbuf for copying the command line for the reflog.
      Rewrite builtin-fetch option parsing to use parse_options().

Kristof Provost (1):
      makefile: Add a cscope target

Lars Hjemli (11):
      git-svn: add support for --first-parent
      git-svn: always use --first-parent
      Add test-script for git-merge porcelain
      git-merge: fix faulty SQUASH_MSG
      git-merge: refactor option parsing
      git-merge: add support for branch.<name>.mergeoptions
      git-merge: add support for --commit and --no-squash
      git-merge: add --ff and --no-ff options
      Make merge-recursive honor diff.renamelimit
      Teach git-pull about --[no-]ff, --no-squash and --commit
      for-each-ref: fix setup of option-parsing for --sort

Lars Knoll (1):
      Speedup scanning for excluded files.

Linus Torvalds (18):
      optimize diffcore-delta by sorting hash entries.
      Add 'diffcore.h' to LIB_H
      Split out "exact content match" phase of rename detection
      Ref-count the filespecs used by diffcore
      copy vs rename detection: avoid unnecessary O(n*m) loops
      Do linear-time/space rename logic for exact renames
      Do exact rename detection regardless of rename limits
      Fix ugly magic special case in exact rename detection
      Do the fuzzy rename detection limits with the exact renames removed
      Simplify topo-sort logic
      Add "--early-output" log flag for interactive GUI use
      Enhance --early-output format
      revision walker: mini clean-up
      Fix rev-list when showing objects involving submodules
      Fix parent rewriting in --early-output
      Fix a pathological case in git detecting proper renames
      Fix a pathological case in git detecting proper renames
      "git tag -u keyname" broken

Luke Lu (1):
      gitweb: speed up project listing on large work trees by limiting find depth

Marius Storm-Olsen (2):
      Add 'git-p4 commit' as an alias for 'git-p4 submit'
      Teach core.autocrlf to 'git blame'

Mark Levedahl (1):
      git-submodule - allow a relative path as the subproject url

Matt Kraai (2):
      Move convert-objects to contrib.
      rebase -i: create .dotest-merge after validating options.

Matthias Kestenholz (1):
      Documentation: add --patch option to synopsis of git-add

Michael Gebetsroither (1):
      hg-to-git speedup through selectable repack intervals

Michael W. Olson (2):
      git-rebase--interactive.sh: Quote arguments to test
      Documentation/git-tag.txt: Document how to backdate tags

Michael Witten (2):
      git-cvsexportcommit.perl: git-apply no longer needs --binary
      git-cvsserver runs hooks/post-receive

Michal Vitecek (1):
      Don't use "<unknown>" for placeholders and suppress printing of empty user formats.

Michele Ballabio (7):
      git-gui: remove dots in some UI strings
      git-gui: add some strings to translation
      git-gui: fix typo in lib/blame.tcl
      git-gui: update Italian translation
      test-lib.sh: move error line after error() declaration
      git-gui: fix a typo in lib/commit.tcl
      git-gui: update it.po and glossary/it.po

Mike Dalessio (2):
      instaweb: allow for use of auto-generated scripts
      instaweb: support for Ruby's WEBrick server

Mike Hommey (13):
      Reuse previous annotation when overwriting a tag
      Add tests for git tag
      Refactor working tree setup
      Use setup_work_tree() in builtin-ls-files.c
      Don't always require working tree for git-rm
      Make git-blame fail when working tree is needed and we're not in one
      Small code readability improvement in show_reference() in builtin-tag.c
      Do git reset --hard HEAD when using git rebase --skip
      Fix and improve t7004 (git-tag tests)
      git-send-email.perl: Really add angle brackets to In-Reply-To if necessary
      Cleanup variables in http.[ch]
      Fix small memory leaks induced by diff_tree_setup_paths
      Fix XML parser leaks in http-push

Miklos Vajna (4):
      Hungarian translation of git-gui
      git-send-email: add a new sendemail.to configuration variable
      Include diff options in the git-log manpage
      Update Hungarian translation. 100% completed.

Nanako Shiraishi (3):
      Japanese translation of git-gui
      git-gui: Update Japanese strings
      Update ja.po for git-gui

Nguyễn Thái Ngọc Duy (3):
      contrib/fast-import: add simple shell example
      git-sh-setup.sh: use "git rev-parse --show-cdup" to check for SUBDIRECTORY_OK
      Remove repo version check from setup_git_directory

Nicolas Pitre (42):
      straighten the list of objects to deltify
      localize window memory usage accounting
      rearrange delta search progress reporting
      basic threaded delta search
      threaded delta search: refine work allocation
      threaded delta search: better chunck split point
      threaded delta search: specify number of threads at run time
      fix threaded delta search locking
      threaded delta search: add pack.threads config variable
      threaded delta search: proper locking for cache accounting
      more compact progress display
      cope with multiple line breaks within sideband progress messages
      pack-objects: no delta possible with only one object in the list
      pack-objects.c: fix some global variable abuse and memory leaks
      fix const issues with some functions
      fix for more minor memory leaks
      prune-packed: don't call display_progress() for every file
      make struct progress an opaque type
      relax usage of the progress API
      add throughput to progress display
      add throughput display to index-pack
      add some copyright notice to the progress display code
      add throughput display to git-push
      return the prune-packed progress display to the inner loop
      make sure throughput display gets updated even if progress doesn't move
      Show total transferred as part of throughput progress
      make the pack index version configurable
      pack-objects: get rid of an ugly cast
      git-fetch: more terse fetch output
      fix display overlap between remote and local progress
      sideband.c: ESC is spelled '\033' not '\e' for portability.
      make display of total transferred more accurate
      remove dead code from the csum-file interface
      restore fetching with thin-pack capability
      make display of total transferred fully accurate
      nicer display of thin pack completion
      add a howto document about corrupted blob recovery
      rehabilitate some t5302 tests on 32-bit off_t machines
      pack-objects: fix delta cache size accounting
      pack-objects: reverse the delta search sort list
      pack-objects: fix threaded load balancing
      pack-objects: more threaded load balancing fix with often changed paths

Paolo Ciarrocchi (1):
      Italian translation of git-gui

Pascal Obry (2):
      git-stash: do not get fooled with "color.diff = true"
      Set OLD_ICONV on Cygwin.

Paul Mackerras (37):
      gitk: Establish and use global left-to-right ordering for commits
      gitk: Improve the drawing of links to parent lines
      gitk: Eliminate diagonal arrows
      gitk: Get rid of idrowranges and rowrangelist
      gitk: Get rid of idinlist array
      gitk: Fix some problems with the display of ids as links
      gitk: Get rid of the rowchk array
      gitk: Do only the parts of the layout that are needed
      gitk: Fix bug causing incorrect ref list contents when switching view
      gitk: Fix bug causing undefined variable error when cherry-picking
      gitk: Add a cache for the topology info
      gitk: Make it possible to lay out all the rows we have received so far
      gitk: Fix bugs in setting rowfinal
      gitk: Get rid of lookingforhead, use commitinterest instead
      gitk: Fix bug in generating patches
      gitk: Simplify highlighting interface and combine with Find function
      gitk: Fix a couple of bugs
      gitk: Add progress bars for reading in stuff and for finding
      gitk: Fix the tab setting in the diff display window
      gitk: Fix bug causing Tcl error when changing find match type
      gitk: Use named fonts instead of the font specification
      gitk: Keep track of font attributes ourselves instead of using font actual
      gitk: Add a font chooser
      gitk: Fix bug where the last few commits would sometimes not be visible
      gitk: Get rid of the diffopts variable
      gitk: Fix Tcl error: can't unset findcurline
      gitk: Check that we are running on at least Tcl/Tk 8.4
      gitk: Avoid an error when cherry-picking if HEAD has moved on
      gitk: Fix "can't unset prevlines(...)" Tcl error
      gitk: Limit diff display to listed paths by default
      gitk: Ensure tabstop setting gets restored by Cancel button
      gitk: Integrate the reset progress bar in the main frame
      gitk: Use the status window for other functions
      gitk: Fix some bugs with path limiting in the diff display
      gitk: Fix a couple more bugs in the path limiting
      gitk: Simplify the code for finding commits
      gitk: Use the UI font for the diff/old version/new version radio buttons

Pierre Habouzit (80):
      Rework strbuf API and semantics.
      Simplify strbuf uses in archive-tar.c using strbuf API
      fast-import: Use strbuf API, and simplify cmd_data()
      mktree: Simplify write_tree() using strbuf API
      Use strbuf API in apply, blame, commit-tree and diff
      Use strbuf API in buitin-rerere.c
      Use strbuf API in cache-tree.c
      Strbuf API extensions and fixes.
      Change semantics of interpolate to work like snprintf.
      Rework pretty_print_commit to use strbufs instead of custom buffers.
      Use strbuf_read in builtin-fetch-tool.c.
      Use strbufs to in read_message (imap-send.c), custom buffer--.
      Replace all read_fd use with strbuf_read, and get rid of it.
      New strbuf APIs: splice and attach.
      Rewrite convert_to_{git,working_tree} to use strbuf's.
      Now that cache.h needs strbuf.h, remove useless includes.
      builtin-apply: use strbuf's instead of buffer_desc's.
      Refactor replace_encoding_header.
      Remove preemptive allocations.
      Drop strbuf's 'eof' marker, and make read_line a first class citizen.
      fast-import was using dbuf's, replace them with strbuf's.
      fast-import optimization:
      Add xmemdupz() that duplicates a block of memory, and NUL terminates it.
      Use xmemdupz() in many places.
      Fix the expansion pattern of the pseudo-static path buffer.
      nfv?asprintf are broken without va_copy, workaround them.
      strbuf API additions and enhancements.
      Rework unquote_c_style to work on a strbuf.
      Full rework of quote_c_style and write_name_quoted.
      sq_quote_argv and add_to_string rework with strbuf's.
      Add strbuf_cmp.
      Make builtin-rerere use of strbuf nicer and more efficient.
      Small cache_tree_write refactor.
      double free in builtin-update-index.c
      strbuf change: be sure ->buf is never ever NULL.
      strbuf_read_file enhancement, and use it.
      Make read_patch_file work on a strbuf.
      Fix in-place editing functions in convert.c
      Add some fancy colors in the test library when terminal supports it.
      Support a --quiet option in the test-suite.
      fast-import.c: fix regression due to strbuf conversion
      Add a simple option parser.
      parse-options: be able to generate usages automatically
      parse-options: make some arguments optional, add callbacks.
      Add shortcuts for very often used options.
      parse-options: allow callbacks to take no arguments at all.
      Make builtin-rm.c use parse_options.
      Make builtin-mv.c use parse-options
      Make builtin-branch.c use parse_options.
      Make builtin-describe.c use parse_options
      Make builtin-revert.c use parse_options.
      Make builtin-update-ref.c use parse_options
      Make builtin-symbolic-ref.c use parse_options.
      Make builtin-for-each-ref.c use parse-opts.
      Make builtin-fsck.c use parse_options.
      Make builtin-count-objects.c use parse_options.
      Make builtin-name-rev.c use parse_options.
      Make builtin-pack-refs.c use parse_options.
      git-fetch: be even quieter.
      Some better parse-options documentation.
      Add a parseopt mode to git-rev-parse to bring parse-options to shell scripts.
      Update git-sh-setup(1) to allow transparent use of git-rev-parse --parseopt
      Migrate git-clean.sh to use git-rev-parse --parseopt.
      Migrate git-clone to use git-rev-parse --parseopt
      Migrate git-am.sh to use git-rev-parse --parseopt
      Migrate git-merge.sh to use git-rev-parse --parseopt
      Migrate git-instaweb.sh to use git-rev-parse --parseopt
      Migrate git-checkout.sh to use git-rev-parse --parseopt --keep-dashdash
      Migrate git-quiltimport.sh to use git-rev-parse --parseopt
      Migrate git-repack.sh to use git-rev-parse --parseopt
      sh-setup: don't let eval output to be shell-expanded.
      parse-options new features.
      Use OPT_SET_INT and OPT_BIT in builtin-branch
      Use OPT_BIT in builtin-for-each-ref
      Use OPT_BIT in builtin-pack-refs
      Make the diff_options bitfields be an unsigned with explicit masks.
      Reorder diff_opt_parse options more logically per topics.
      parse-options: Allow to hide options from the default usage.
      builtin-commit.c: export GIT_INDEX_FILE for launch_editor as well.
      Invert numbers and names in the git-shortlog summary mode.

Pini Reznik (1):
      Open external merge tool with original file extensions for all three files

Ralf Wildenhues (10):
      manual: Fix or remove em dashes.
      Fix some typos, punctuation, missing words, minor markup.
      Fix wording in push definition.
      manual: Fix example finding commits referencing given content.
      manual: add some markup.
      manual: use 'URL' instead of 'url'.
      git-cherry-pick: improve description of -x.
      Fix minor nits in configure.ac
      git-bisect.sh: Fix sed script to work with AIX and BSD sed.
      Document all help keys in "git add -i" patch mode.

René Scharfe (13):
      Export format_commit_message()
      archive: specfile support (--pretty=format: in archive files)
      Remove unused function convert_sha1_file()
      add memmem()
      archive: specfile syntax change: "$Format:%PLCHLDR$" instead of just "%PLCHLDR" (take 2)
      archive: rename attribute specfile to export-subst
      archive: fix subst file generation
      Correct some sizeof(size_t) != sizeof(unsigned long) typing errors
      Add strchrnul()
      --pretty=format: on-demand format expansion
      --pretty=format: parse commit message only once
      add strbuf_adddup()
      --format=pretty: avoid calculating expensive expansions twice

Robert Boone (1):
      Define NO_MEMMEM of FreeBSD as it lacks the function

Robert Schiele (2):
      git-gui: install-sh from automake does not like -m755
      install-sh from automake does not like -m without delimiting space

Robin Rosenberg (1):
      cvsexportcommit: Add switch to specify CVS workdir

Sam Vilain (6):
      git-svn: fix test for trunk svn (commit message not needed)
      git-svn: fix test for trunk svn (transaction out of date)
      git-svn: handle changed svn command-line syntax
      gitk: disable colours when calling git log
      Allow HTTP proxy to be overridden in config
      Add remote.<name>.proxy

Scott R Parish (7):
      "git" returns 1; "git help" and "git help -a" return 0
      remove unused/unneeded "pattern" argument of list_commands
      "current_exec_path" is a misleading name, use "argv_exec_path"
      list_commands(): simplify code by using chdir()
      use only the $PATH for exec'ing git commands
      include $PATH in generating list of commands for "help -a"
      shell should call the new setup_path() to setup $PATH

Sergei Organov (7):
      core-tutorial.txt: Fix git-show-branch example and its description
      user-manual.txt: fix a few mistakes
      user-manual: minor rewording for clarity.
      Documentation: customize diff-options depending on particular command
      user-manual.txt: minor clarification.
      Documentation: fix git-clone manpage not to refer to itself
      Let git-help prefer man-pages installed with this version of git

Shawn Bohrer (4):
      Add more tests for git-clean
      Make git-clean a builtin
      Teach git clean to use setup_standard_excludes()
      Make git status usage say git status instead of git commit

Shawn O. Pearce (106):
      git-gui: Locate the library directory early during startup
      git-gui: Initialize Tcl's msgcat library for internationalization
      git-gui: Update po/README as symlink process is not necessary
      git-gui: Correct stock message for 'Invalid font specified in %s'
      git-gui: Quiet the msgfmt part of the make process
      git-gui: Ensure msgfmt failure stops GNU make
      Define NO_MEMMEM on Darwin as it lacks the function
      git-gui: Mark revision chooser tooltip for translation
      git-gui: Localize commit/author dates when displaying them
      git-gui: Support context-sensitive i18n
      git-gui: Document the new i18n context support
      git-gui: Make the tree browser also use lightgray selection
      git-gui: Paper bag fix missing translated strings
      Correct builtin-fetch to handle + in refspecs
      Fix off by one bug in reflog messages written by builtin-fetch
      Remove unnecessary debugging from builtin-fetch
      Remove unused unpacklimit variable from builtin-fetch
      Replace custom memory growth allocator with ALLOC_GROW
      Simplify fetch transport API to just one function
      Refactor index-pack "keep $sha1" handling for reuse
      Remove pack.keep after ref updates in git-fetch
      Always ensure the pack.keep file is removed by git-fetch
      Fix builtin-fetch memory corruption by not overstepping array
      Backup the array passed to fetch_pack so we can free items
      Properly cleanup in http_cleanup so builtin-fetch does not segfault
      Don't bother passing ref log details to walker in builtin-fetch
      Cleanup duplicate initialization code in transport_get
      Add transport.h to LIB_H as transport.o is in LIB_OBJS
      Remove unnecessary 'fetch' argument from transport_get API
      Allow builtin-fetch to work on a detached HEAD
      Don't configure remote "." to fetch everything to itself
      Remove more debugging from builtin-fetch
      builtin-fetch: Don't segfault on "fetch +foo"
      Don't attempt to merge non-existant remotes in t5515
      Correct handling of branch.$name.merge in builtin-fetch
      Avoid printing unnecessary warnings during fetch and push
      Use 'unsigned:1' when we mean boolean options
      Rename remote.uri to remote.url within remote handling internals
      Refactor struct transport_ops inlined into struct transport
      Always obtain fetch-pack arguments from struct fetch_pack_args
      Ensure builtin-fetch honors {fetch,transfer}.unpackLimit
      Fix memory leaks when disconnecting transport instances
      git-gui: Fix missing i18n markup in push/fetch windows
      git-gui: Support native Win32 Tcl/Tk under Cygwin
      git-gui: Refactor some UI init to occur earlier
      git-gui: Allow users to choose/create/clone a repository
      git-gui: Avoid console scrollbars unless they are necessary
      git-gui: Don't bother showing OS error message about hardlinks
      git-gui: Keep the UI responsive while counting objects in clone
      git-gui: Copy objects/info/alternates during standard clone
      Cleanup style nit of 'x == NULL' in remote.c
      Cleanup unnecessary break in remote.c
      Prevent send-pack from segfaulting when a branch doesn't match
      git-gui: Don't delete console window namespaces too early
      git-gui: Don't delete scrollbars in console windows
      git-gui: Switch the git-gui logo to Henrik Nyh's logo
      git-gui: Make the status bar easier to read in the setup wizard
      git-gui: Use Henrik Nyh's git logo icon on Windows systems
      git-gui: Support a native Mac OS X application bundle
      git-gui: Refer to ourselves as "Git Gui" and not "git-gui"
      git-gui: Allow forced push into remote repository
      git-gui: Refactor Henrik Nyh's logo into its own procedure
      git-gui: Refactor about dialog code into its own module
      git-gui: Include our Git logo in the about dialog
      git-gui: Use progress meter in the status bar during index updates
      git-gui: Consolidate the Fetch and Push menus into a Remote menu
      git-gui: Bind Cmd-, to Preferences on Mac OS X
      git-gui: Shorten the staged/unstaged changes title bar text
      git-gui: Updated po strings based on current sources
      git-gui: Move load_config procedure below git-version selection
      git-gui: Refactor git-config --list parsing
      git-gui: Support LFs embedded in config file values
      git-gui: Change repository browser radio buttons to hyperlinks
      git-gui: Offer repository management features in menu bar
      git-gui: Fix bind errors when switching repository chooser panels
      git-gui: Disable the text widget in the repository chooser
      git-gui: Bind n/c/o accelerators in repository chooser
      git-gui: Ensure copyright message is correctly read as UTF-8
      git-gui: Use proper Windows shortcuts instead of bat files
      git-gui: Support cloning Cygwin based work-dirs
      git-gui: Collapse $env(HOME) to ~/ in recent repositories on Windows
      git-gui: Honor a config.mak in git-gui's top level
      Fix 'push --all branch...' error handling
      Support 'push --dry-run' for rsync transport
      Support 'push --dry-run' for http transport
      git-gui: Paper bag fix the global config parsing
      Change 'Deltifying objects' to 'Compressing objects'
      Teach prune-packed to use the standard progress meter
      Stop displaying "Pack pack-$ID created." during git-gc
      Avoid scary errors about tagged trees/blobs during git-fetch
      Define compat version of mkdtemp for systems lacking it
      Improved const correctness for strings
      Use PRIuMAX instead of 'unsigned long long' in show-index
      git-gui: Make sure we get errors from git-update-index
      git-gui: Protect against bad translation strings
      git-gui: Allow users to set font weights to bold
      Reteach builtin-ls-remote to understand remotes
      git-gui: Bind Meta-T for "Stage To Commit" menu action
      git-fetch: Always fetch tags if the object they reference exists
      run-command: Support sending stderr to /dev/null
      rev-list: Introduce --quiet to avoid /dev/null redirects
      git-fetch: avoid local fetching from alternate (again)
      Handle broken vsnprintf implementations in strbuf
      Fix warning about bitfield in struct ref
      git-gui 0.9.0
      Remove git-status from list of scripts as it is builtin

Simon Hausmann (10):
      git-p4: Always call 'p4 sync ...' before submitting to Perforce.
      git-p4: After submission to p4 always synchronize from p4 again (into refs/remotes). Whether to rebase HEAD or not is still left as question to the end-user.
      git-p4: Cleanup; moved the code for getting a sorted list of p4 changes for a list of given depot paths into a standalone method.
      git-p4: Cleanup; moved the code to import a list of p4 changes using fast-import into a separate member function of P4Sync.
      git-p4: Cleanup; Turn self.revision into a function local variable (it's not used anywhere outside the function).
      git-p4: Cleanup; moved the code for the initial #head or revision import into a separate function, out of P4Sync.run.
      git-p4: Cleanup; moved the (duplicated) code for turning a branch into a git ref (for example foo -> refs/remotes/p4/<project>/foo) into a separate method.
      git-p4: Added support for automatically importing newly appearing perforce branches.
      git-p4: When skipping a patch as part of "git-p4 submit" make sure we correctly revert to the previous state of the files using "p4 revert".
      git-p4: Fix direct import from perforce after fetching changes through git from origin

Simon Sasburg (1):
      Make mailsplit and mailinfo strip whitespace from the start of the input

Stefan Sperling (1):
      Fix pool handling in git-svnimport to avoid memory leaks.

Steffen Prohaska (16):
      git-gui: add directory git-gui is located in to PATH (on Windows)
      git-gui: set NO_MSGFMT to force using pure tcl replacement in msysgit
      git-gui: add mingw specific startup wrapper
      git-gui: offer a list of recent repositories on startup
      mergetool: use path to mergetool in config var mergetool.<tool>.path
      mergetool: add support for ECMerge
      mergetool: avoid misleading message "Resetting to default..."
      Fix comment in strbuf.h to use correct name strbuf_avail()
      push: mention --verbose option in documentation
      push: teach push to pass --verbose option to transport layer
      push: support pushing HEAD to real branch name
      add refname_match()
      push: use same rules as git-rev-parse to resolve refspecs
      refactor fetch's ref matching to use refname_match()
      Use is_absolute_path() in diff-lib.c, lockfile.c, setup.c, trace.c
      sha1_file.c: Fix size_t related printf format warnings

Steven Grimm (3):
      Add a message explaining that automatic GC is about to start
      builtin-fetch: Add "-q" as a synonym for "--quiet"
      git-svn: Don't create a "master" branch every time rebase is run

Steven Walter (1):
      Don't checkout the full tree if avoidable

Theodore Ts'o (2):
      Make the list of common commands more exclusive
      Remove hint to use "git help -a"

Thomas Harning (1):
      git-merge-ours: make it a builtin.

Uwe Kleine-König (1):
      send-email: apply --suppress-from to S-o-b and cc-cmd

Vineet Kumar (1):
      git-svn: add a show-externals command.

Väinö Järvelä (1):
      Added a test for fetching remote tags when there is not tags.

Wincent Colaiuta (21):
      Further clarify clean.requireForce changes
      Authenticate only once in git-send-email
      Refactor patch_update_cmd
      Teach builtin-add to pass multiple paths to git-add--interactive
      Add path-limiting to git-add--interactive
      Add "--patch" option to git-add--interactive
      Fix typo in draft 1.5.4 release notes
      Highlight keyboard shortcuts in git-add--interactive
      revert/cherry-pick: Allow overriding the help text by the calling Porcelain
      add -i: allow prefix highlighting for "Add untracked" as well.
      git-add -i: add help text for list-and-choose UI
      Silence iconv warnings on Leopard
      Teach "git add -i" to colorize whitespace errors
      Allow --no-verify to bypass commit-msg hook
      Documentation: fix --no-verify documentation for "git commit"
      Add tests for pre-commit and commit-msg hooks
      Interactive editor tests for commit-msg hook
      Style fixes for pre-commit hook tests
      Use "whitespace" consistently
      Documentation: minor grammar fix for "git apply"
      Fix "diff --check" whitespace detection

Xudong Guan (2):
      Initial Chinese translation for git-gui
      git-gui: Added initial version of po/glossary/zh_cn.po

brian m. carlson (1):
      git-gui: Reorder msgfmt command-line arguments

İsmail Dönmez (1):
      gitweb: use Perl built-in utf8 function for UTF-8 decoding.


Version v1.5.3.8; changes since v1.5.3.7:
-----------------------------------------

David Symonds (1):
      Change from using email.com to example.com as example domain, as per RFC 2606.

Eric Wong (2):
      git-svn: support for funky branch and project names over HTTP(S)
      git-svn: clarify the "Ignoring error from SVN" piece

Jeff King (3):
      t9600: test cvsimport from CVS working tree
      clone: correctly report http_fetch errors
      git-send-email: avoid duplicate message-ids

Jim Meyering (1):
      config.c:store_write_pair(): don't read the byte before a malloc'd buffer.

Junio C Hamano (3):
      git grep shows the same hit repeatedly for unmerged paths
      git-am -i: report rewritten title
      GIT 1.5.3.8

Nguyễn Thái Ngọc Duy (3):
      Add missing inside_work_tree setting in setup_git_directory_gently
      Do check_repository_format() early
      Do check_repository_format() early (re-fix)


Version v1.5.3.7; changes since v1.5.3.6:
-----------------------------------------

Björn Steinbrink (3):
      git-commit.sh: Fix usage checks regarding paths given when they do not make sense
      t7005-editor.sh: Don't invoke real vi when it is in GIT_EXEC_PATH
      git-commit: Add tests for invalid usage of -a/--interactive with paths

Brian Downing (2):
      config: correct core.loosecompression documentation
      config: clarify compression defaults

J. Bruce Fields (7):
      git-remote.txt: fix example url
      user-manual: mention "..." in "Generating diffs", etc.
      Documentation: Fix references to deprecated commands
      user-manual: define "branch" and "working tree" at start
      user-manual: failed push to public repository
      user-manual: clarify language about "modifying" old commits
      user-manual: recovering from corruption

Jan Hudec (1):
      Improve description of git-branch -d and -D in man page.

Jeff King (5):
      send-email: add transfer encoding header with content-type
      Add basic cvsimport tests
      cvsimport: use rev-parse to support packed refs
      cvsimport: miscellaneous packed-ref fixes
      cvsimport: fix usage of cvsimport.module

Johannes Schindelin (2):
      bundle create: keep symbolic refs' names instead of resolving them
      Replace the word 'update-cache' by 'update-index' everywhere

Johannes Sixt (1):
      t7003-filter-branch: Fix test of a failing --msg-filter.

Junio C Hamano (11):
      format-patch -s: add MIME encoding header if signer's name requires so
      test format-patch -s: make sure MIME content type is shown as needed
      ce_match_stat, run_diff_files: use symbolic constants for readability
      git-add: make the entry stat-clean after re-adding the same contents
      t2200: test more cases of "add -u"
      Make test scripts executable.
      Fix sample pre-commit hook
      git-checkout: describe detached head correctly
      scripts: do not get confused with HEAD in work tree
      Fix typo in t4008 test title
      GIT 1.5.3.7

Linus Torvalds (1):
      Fix rev-list when showing objects involving submodules

Matthieu Moy (1):
      Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.

Rémi Vanicat (1):
      Make GIT_INDEX_FILE apply to git-commit

Steffen Prohaska (1):
      user-manual: Add section "Why bisecting merge commits can be harder ..."


Version v1.5.3.6; changes since v1.5.3.5:
-----------------------------------------

Alex Riesen (1):
      stop t1400 hiding errors in tests

Ask Bjørn Hansen (1):
      When exec() fails include the failing command in the error message

Benoit Sigoure (2):
      git-send-email: Change the prompt for the subject of the initial message.
      git-svn: prevent dcommitting if the index is dirty.

Brad King (1):
      cvsexportcommit: fix for commits that do not have parents

Christian Couder (1):
      for-each-ref: fix off by one read.

David D. Kilzer (2):
      RelNotes-1.5.3.5: fix typo
      RelNotes-1.5.3.5: fix another typo

David Symonds (1):
      Improve accuracy of check for presence of deflateBound.

Eric Wong (2):
      git-svn: fix dcommit clobbering when committing a series of diffs
      git-svn: t9114: verify merge commit message in test

Gerrit Pape (4):
      git-diff.txt: add section "output format" describing the diff formats
      git-cvsimport: really convert underscores in branch names to dots with -u
      git-daemon: fix remote port number in log entry
      git-mailsplit: with maildirs not only process cur/, but also new/

Jakub Narębski (1):
      gitweb: Update config file example for snapshot feature in gitweb/INSTALL

Jeff King (2):
      git-branch: remove mention of non-existent '-b' option
      git-send-email: add charset header if we add encoded 'From'

Jing Xue (1):
      replace reference to git-rm with git-reset in git-commit doc

Johannes Schindelin (1):
      Add Documentation/CodingGuidelines

Jonas Fonseca (3):
      Remove escaping of '|' in manpage option sections
      instaweb: Minor cleanups and fixes for potential problems
      Documentation: Fix man page breakage with DocBook XSL v1.72

Jonathan del Strother (1):
      Fixing path quoting in git-rebase

Junio C Hamano (12):
      grep with unmerged index
      refresh_index_quietly(): express "optional" nature of index writing better
      Makefile: add missing dependency on wt-status.h
      Start preparing for 1.5.3.6
      t/t3404: fix test for a bogus todo file.
      revert/cherry-pick: allow starting from dirty work tree.
      git-clean: honor core.excludesfile
      core.excludesfile clean-up
      Fix per-directory exclude handing for "git add"
      Update draft release notes for 1.5.3.6
      grep -An -Bm: fix invocation of external grep command
      GIT 1.5.3.6

Kristian Høgsberg (1):
      Remove unecessary hard-coding of EDITOR=':' VISUAL=':' in some test suites.

Marco Costalba (1):
      Remove a couple of duplicated include

Mike Hommey (1):
      Delay pager setup in git blame

Nicolas Pitre (3):
      print warning/error/fatal messages in one shot
      git-hash-object should honor config variables
      fix index-pack with packs >4GB containing deltas on 32-bit machines

Ralf Wildenhues (3):
      git-clone.txt: Improve --depth description.
      Avoid a few unportable, needlessly nested "...`...".
      Fix sed string regex escaping in module_name.

Sergei Organov (6):
      git-filter-branch.txt: fix a typo.
      git-format-patch.txt: fix explanation of an example.
      Documentation: quote commit messages consistently.
      SubmittingPatches: improve the 'Patch:' section of the checklist
      core-tutorial.txt: Fix argument mistake in an example.
      git-remote.txt: fix typo

Shawn O. Pearce (2):
      Fix memory leak in traverse_commit_list
      Don't allow fast-import tree delta chains to exceed maximum depth

Vincent Zanotti (1):
      gitweb: correct month in date display for atom feeds

Wincent Colaiuta (2):
      Grammar fixes for gitattributes documentation
      Fix t9101 test failure caused by Subversion "auto-props"


Version v1.5.3.5; changes since v1.5.3.4:
-----------------------------------------

Alex Bennée (1):
      Ensure we add directories in the correct order

Alex Riesen (1):
      Fix generation of perl/perl.mak

Andrew Clausen (1):
      helpful error message when send-pack finds no refs in common.

Aurelien Bompard (1):
      honor the http.sslVerify option in shell scripts

Benoit Sigoure (1):
      Fix a small memory leak in builtin-add

Björn Steinbrink (3):
      Fix --strategy parsing in git-rebase--interactive.sh
      git-rebase--interactive.sh: Don't pass a strategy to git-cherry-pick.
      git-rebase--interactive.sh: Make 3-way merge strategies work for -p.

Brian Gernhardt (1):
      cvsserver: Use exit 1 instead of die when req_Root fails.

Frank Lichtenheld (1):
      git-config: don't silently ignore options after --list

Gerrit Pape (2):
      git-config: handle --file option with relative pathname properly
      git-config: print error message if the config file cannot be read

Jean-Luc Herren (2):
      git add -i: Fix parsing of abbreviated hunk headers
      git add -i: Remove unused variables

Jeff King (1):
      send-pack: respect '+' on wildcard refspecs

Joakim Tjernlund (1):
      Improve receive-pack error message about funny ref creation

Johannes Schindelin (5):
      clear_commit_marks(): avoid deep recursion
      rebase -i: use diff plumbing instead of porcelain
      Fix setup_git_directory_gently() with relative GIT_DIR & GIT_WORK_TREE
      fix filter-branch documentation
      filter-branch: update current branch when rewritten

Julian Phillips (1):
      fast-import: Fix argument order to die in file_change_m

Junio C Hamano (8):
      git-remote: fix "Use of uninitialized value in string ne"
      sha1_file.c: avoid gcc signed overflow warnings
      merge-recursive.c: mrtree in merge() is not used before set
      RelNotes-1.5.3.5: describe recent fixes
      Prevent send-pack from segfaulting (backport from 'master')
      git-merge: document but discourage the historical syntax
      Update GIT 1.5.3.5 Release Notes
      GIT 1.5.3.5

Lars Hjemli (1):
      Make merge-recursive honor diff.renamelimit

Linus Torvalds (6):
      Fix embarrassing "git log --follow" bug
      Clean up "git log" format with DIFF_FORMAT_NO_OUTPUT
      git-blame shouldn't crash if run in an unmerged tree
      Avoid scary errors about tagged trees/blobs during git-fetch
      Fix directory scanner to correctly ignore files without d_type
      Fix diffcore-break total breakage

Mathias Megyei (1):
      Do not remove distributed configure script

Michael W. Olson (1):
      Documentation/git-cvsexportcommit.txt: s/mgs/msg/ in example

Michele Ballabio (2):
      git-reflog: document --verbose
      git-archive: document --exec

Nicolas Pitre (1):
      cherry-pick/revert: more compact user direction message

Patrick Welche (1):
      Define NI_MAXSERV if not defined by operating system

Ralf Wildenhues (1):
      gitk.txt: Fix markup.

Robert Schiele (1):
      fixing output of non-fast-forward output of post-receive-email

Sergei Organov (1):
      core-tutorial: Use new syntax for git-merge.

Shawn O. Pearce (17):
      git-gui: Display message box when we cannot find git in $PATH
      git-gui: Handle starting on mapped shares under Cygwin
      git-gui: Ensure .git/info/exclude is honored in Cygwin workdirs
      git-gui: Allow gitk to be started on Cygwin with native Tcl/Tk
      git-gui: Don't crash when starting gitk from a browser session
      Whip post 1.5.3.4 maintenance series into shape.
      Correct typos in release notes for 1.5.3.5
      Avoid 'expr index' on Mac OS X as it isn't supported
      Document additional 1.5.3.5 fixes in release notes
      Yet more 1.5.3.5 fixes mentioned in release notes
      Avoid invoking diff drivers during git-stash
      Further 1.5.3.5 fixes described in release notes
      Paper bag fix diff invocation in 'git stash show'
      git-gui: Correctly report failures from git-write-tree
      git-gui: Handle progress bars from newer gits
      git-gui: Don't display CR within console windows
      Describe more 1.5.3.5 fixes in release notes

Simon Sasburg (1):
      git-gui: Avoid using bold text in entire gui for some fonts

Steffen Prohaska (2):
      git-gui: accept versions containing text annotations, like 1.5.3.mingw.1
      attr: fix segfault in gitattributes parsing code


Version v1.5.3.4; changes since v1.5.3.3:
-----------------------------------------

Andy Parkins (1):
      post-receive-hook: Remove the From field from the generated email header so that the pusher's name is used

Carl Worth (1):
      Add test case for ls-files --with-tree

Federico Mena Quintero (4):
      Say when --track is useful in the git-checkout docs.
      Add documentation for --track and --no-track to the git-branch docs.
      Note that git-branch will not automatically checkout the new branch
      Make git-pull complain and give advice when there is nothing to merge with

Jari Aalto (1):
      git-remote: exit with non-zero status after detecting errors.

Jean-Luc Herren (2):
      git-add--interactive: Allow Ctrl-D to exit
      git-add--interactive: Improve behavior on bogus input

Jeff King (1):
      diffcore-rename: cache file deltas

Johan Herland (1):
      Mention 'cpio' dependency in INSTALL

Johannes Schindelin (2):
      rebase -i: squash should retain the authorship of the _first_ commit
      Fix typo in config.txt

Junio C Hamano (5):
      Whip post 1.5.3.3 maintenance series into shape.
      git-commit: initialize TMP_INDEX just to be sure.
      for-each-ref: fix %(numparent) and %(parent)
      rename diff_free_filespec_data_large() to diff_free_filespec_blob()
      GIT 1.5.3.4

Keith Packard (1):
      Must not modify the_index.cache as it may be passed to realloc at some point.

Miklos Vajna (1):
      git stash: document apply's --index switch

Robert Schiele (1):
      the ar tool is called gar on some systems

Steffen Prohaska (1):
      fixed link in documentation of diff-options


Version v1.5.3.3; changes since v1.5.3.2:
-----------------------------------------

Carlos Rica (1):
      Move make_cache_entry() from merge-recursive.c into read-cache.c

Dan Nicholson (1):
      quiltimport: Skip non-existent patches

David Brown (1):
      Detect exec bit in more cases.

David Kastrup (1):
      Supplant the "while case ... break ;; esac" idiom

Eric Wong (1):
      git-svn: don't attempt to spawn pager if we don't want one

Glenn Rempe (1):
      Fixed minor typo in t/t9001-send-email.sh test command line.

J. Bruce Fields (1):
      user-manual: don't assume refs are stored under .git/refs

Jakub Narębski (2):
      gitweb: Remove parse_from_to_diffinfo code from git_patchset_body
      gitweb: No difftree output for trivial merge

Jim Meyering (2):
      unexpected Make output (e.g. from --debug) causes build failure
      Do not over-quote the -f envelopesender value.

Johannes Schindelin (1):
      apply: get rid of --index-info in favor of --build-fake-ancestor

Johannes Sixt (2):
      gitattributes.txt: Remove a duplicated paragraph about 'ident' and 'crlf' interaction.
      gitattributes.txt: Be more to the point in the filter driver description.

Junio C Hamano (3):
      Documentation/git-lost-found.txt: drop unnecessarily duplicated name.
      Mergetool generating blank files (1.5.3)
      GIT 1.5.3.3

Linus Torvalds (1):
      Fix revision log diff setup, avoid unnecessary diff generation

Matt Kraai (2):
      Move the paragraph specifying where the .idx and .pack files should be
      Conjugate "search" correctly in the git-prune-packed man page.

Michael Smith (1):
      user-manual: Explain what submodules are good for.

Miklos Vajna (2):
      User Manual: add a chapter for submodules
      git-bundle: fix commandline examples in the manpage

Randy Dunlap (1):
      core-tutorial: correct URL

Shawn Bohrer (1):
      Fix spelling of overridden in documentation

Theodore Ts'o (2):
      mergetool: fix emerge when running in a subdirectory
      mergetool: Fix typo in options passed to kdiff3


Version v1.5.3.2; changes since v1.5.3.1:
-----------------------------------------

Alexandre Julliard (1):
      hooks--update: Explicitly check for all zeros for a deleted ref.

Benoit Sigoure (1):
      Add test to check recent fix to "git add -u"

Carlos Rica (1):
      git-tag -s must fail if gpg cannot sign the tag.

David Kastrup (1):
      git-send-email.perl: Add angle brackets to In-Reply-To if necessary

Dmitry V. Levin (2):
      Makefile: Add cache-tree.h to the headers list
      git-commit: Disallow amend if it is going to produce an empty non-merge commit

Eric Wong (3):
      git-svn: fix "Malformed network data" with svn:// servers
      git-svn: understand grafts when doing dcommit
      Documentation/git-svn: updated design philosophy notes

Gerrit Pape (2):
      git-gui: lib/index.tcl: handle files with % in the filename properly
      git-clone: improve error message if curl program is missing or not executable

J. Bruce Fields (13):
      user-manual: adjust section levels in "git internals"
      user-manual: move object format details to hacking-git chapter
      user-manual: rename "git internals" to "git concepts"
      user-manual: create new "low-level git operations" chapter
      user-manual: rewrite index discussion
      user-manual: reorder commit, blob, tree discussion
      user-manual: rewrite object database discussion
      user-manual: move packfile and dangling object discussion
      user-manual: fix introduction to packfiles
      user-manual: todo updates and cleanup
      documentation: replace Discussion section by link to user-manual chapter
      core-tutorial: minor cleanup
      git-apply: fix whitespace stripping

Jari Aalto (1):
      Documentation/git-archive.txt: a couple of clarifications.

Jean-Luc Herren (1):
      stash: end index commit log with a newline

Jeff King (1):
      git-push: documentation and tests for pushing only branches

Johannes Schindelin (2):
      revision walker: --cherry-pick is a limited operation
      apply --index-info: fall back to current index for mode changes

Junio C Hamano (13):
      git-apply: do not read past the end of buffer
      git-add -u: do not barf on type changes
      git-format-patch --in-reply-to: accept <message@id> with angle brackets
      diff --no-index: do not forget to run diff_setup_done()
      Documentation/git-config.txt: AsciiDoc tweak to avoid leading dot
      Split grep arguments in a way that does not requires to add /dev/null.
      git-sh-setup: typofix in comments
      send-email: make message-id generation a bit more robust
      git-commit: Allow partial commit of file removal.
      git-commit: partial commit of paths only removed from the index
      Document ls-files --with-tree=<tree-ish>
      t/t4014: test "am -3" with mode-only change.
      GIT 1.5.3.2

Linus Torvalds (1):
      Fix the rename detection limit checking

Matthias Urlichs (1):
      git-svnimport: Use separate arguments in the pipe for git-rev-parse

Michael Smith (1):
      (cvs|svn)import: Ask git-tag to overwrite old tags.

Michele Ballabio (2):
      git-gui: show unstaged symlinks in diff viewer
      git-gui: handle "deleted symlink" diff marker

Mike Ralphson (1):
      Documentation / grammer nit

Nicolas Pitre (1):
      fix doc for --compression argument to pack-objects

Pierre Habouzit (1):
      Fix lapsus in builtin-apply.c

Ramsay Jones (1):
      Fix a test failure (t9500-*.sh) on cygwin

Shawn O. Pearce (17):
      git-gui: Correct starting of git-remote to handle -w option
      git-gui: Fix detaching current branch during checkout
      git-gui: Properly set the state of "Stage/Unstage Hunk" action
      Don't allow contrib/workdir/git-new-workdir to trash existing dirs
      Cleanup unnecessary file modifications in t1400-update-ref
      Include a git-push example for creating a remote branch
      git-gui: Disable Tk send in all git-gui sessions
      git-gui: Avoid use of libdir in Makefile
      git-gui: Assume untracked directories are Git submodules
      git-gui: Trim trailing slashes from untracked submodule names
      Make --no-thin the default in git-push to save server resources
      git-gui: Don't delete send on Windows as it doesn't exist
      git-gui: Make backporting changes from i18n version easier
      git-gui: Font chooser to handle a large number of font families
      git-gui: Provide 'uninstall' Makefile target to undo an installation
      git-gui: Paper bag fix "Commit->Revert" format arguments
      git-gui: Disable native platform text selection in "lists"

Sven Verdoolaege (1):
      git-diff: don't squelch the new SHA1 in submodule diffs

Ulrik Sverdrup (1):
      Remove duplicate note about removing commits with git-filter-branch

Väinö Järvelä (1):
      Fixed update-hook example allow-users format.


Version v1.5.3.1; changes since v1.5.3:
---------------------------------------

Junio C Hamano (2):
      Typofix: 1.5.3 release notes
      GIT 1.5.3.1: obsolete git-p4 in RPM spec file.


Version v1.5.3; changes since v1.5.3-rc7:
-----------------------------------------

Alex Riesen (1):
      Temporary fix for stack smashing in mailinfo

Carlos Rica (1):
      git-tag: Fix -l option to use better shell style globs.

Eric Wong (1):
      git-svn: fix dcommit clobbering upstream when committing multiple changes

Giuseppe Bilotta (2):
      git-filter-branch: more detailed USAGE
      git-filter-branch: document --original option

Joe Perches (1):
      git-send-email --cc-cmd

Johannes Schindelin (5):
      completion: also complete git-log's --left-right and --cherry-pick option
      filter-branch: fix remnants of old syntax in documentation
      rebase -i: mention the option to split commits in the man page
      filter-branch: provide the convenience functions also for commit filters
      filter-branch: introduce convenience function "skip_commit"

Johannes Sixt (1):
      rebase -m: Fix incorrect short-logs of already applied commits.

Junio C Hamano (13):
      git-daemon(1): assorted improvements.
      ls-files --error-unmatch: do not barf if the same pattern is given twice.
      Makefile: do not allow gnu make to remove test-*.o files
      filter-branch: make sure orig_namespace ends with a single slash.
      git-init: autodetect core.symlinks
      Make "git-log --" without paths behave the same as "git-log" without --
      Hopefully the final update to draft release notes for 1.5.3.
      git-svn: Protect against "diff.color = true".
      git-diff: resurrect the traditional empty "diff --git" behaviour
      Avoid one-or-more (\+) non BRE in sed scripts.
      Documentation: minor AsciiDoc mark-up fixes.
      Update my contact address as the maintainer.
      GIT 1.5.3

Luben Tuikov (1):
      URL: allow port specification in ssh:// URLs

Miles Bader (1):
      Make git-archimport log entries more consistent

Nicolas Pitre (1):
      fix same sized delta logic

Paul Mackerras (1):
      gitk: Fix bug causing undefined variable error when cherry-picking

Robin Rosenberg (1):
      Mention -m as an abbreviation for --merge

Shawn O. Pearce (1):
      Teach bash about completing arguments for git-tag

Tom Clarke (1):
      Fixing comment in merge strategies


Version v1.5.3-rc7; changes since v1.5.3-rc6:
---------------------------------------------

Alex Riesen (1):
      Fix git-remote for ActiveState Perl

Alexandre Julliard (1):
      git.el: Avoid a lisp error when there's no current branch (detached HEAD).

Brian Hetro (5):
      Documentation: For consistency, use CVS instead of cvs.
      Documentation: Correct various misspellings and typos.
      Make usage documentation for git-am consistent.
      Make usage documentation for git-add consistent.
      When nothing to git-commit, honor the git-status color setting.

David Kastrup (4):
      diff-delta.c: Fix broken skip calculation.
      Documentation/user-manual.txt: fix a few omissions of gitlink commands.
      Documentation/user-manual.txt: fix a few omissions of gitlink commands.
      git-svn.txt: fix an obvious misspelling.

David Kågedal (1):
      git.el: Added colors for dark background

Eric Wong (2):
      git-svn: update documentation with CAVEATS section
      git-svn: dcommit prints out the URL to be committed to

J. Bruce Fields (5):
      user-manual: edit "ignoring files" for conciseness
      user-manual: minor editing for conciseness
      user-manual: introduce the word "commit" earlier
      user-manual: use pithier example commit
      user-manual: fix incorrect header level

Jakub Narębski (1):
      gitweb: Fix escaping HTML of project owner in 'projects_list' and 'summary' views

Jari Aalto (1):
      git-tag(1): Remove duplicate text

Johannes Schindelin (2):
      rebase -i: fix squashing corner case
      name-rev: Fix non-shortest description

Junio C Hamano (11):
      blame: check return value from read_sha1_file()
      pack-objects: check return value from read_sha1_file()
      RelNotes draft for 1.5.3 update.
      Fix initialization of a bare repository
      git --bare cmd: do not unconditionally nuke GIT_DIR
      git-merge: do up-to-date check also for all strategies
      Porcelain level "log" family should recurse when diffing.
      "format-patch --root rev" is the way to show everything.
      Documentation/git-diff: A..B and A...B cannot take tree-ishes
      format-patch documentation: reword to hint "--root <one-commit>" more clearly
      GIT 1.5.3-rc7

Linus Torvalds (1):
      Fix racy-git handling in git-write-tree.

Mike Hommey (1):
      Describe two-dot and three-dot notation for diff endpoints.

Petr Baudis (4):
      gitweb: Fix searchbox positioning
      gitweb: Lift any characters restriction on searched strings
      git-add: Make the "tried to add ignored file" error message less confusing
      git-add: Make the filename globbing note a bit clearer

Quy Tonthat (1):
      Fix breakage in git-rev-list.txt

René Scharfe (1):
      Documentation: update tar.umask default

Sean Estabrooks (1):
      Reset terminal attributes when terminating git send-email

Shawn O. Pearce (13):
      git-gui: Fix window manager problems on ion3
      git-gui: Allow git-merge to use branch names in conflict markers
      git-gui: Paper bag fix "Stage Hunk For Commit" in diff context menu
      git-gui: Fix "unoptimized loading" to not cause git-gui to crash
      Fix new-workdir (again) to work on bare repositories
      Suggest unsetting core.bare when using new-workdir on a bare repository
      Update bash completion with new 1.5.3 command line options
      Teach bash to complete ref arguments to git-describe
      Teach bash about git-submodule and its subcommands
      git-gui: Refactor diff pane popup support for future improvements
      git-gui: Do not offer to stage three-way diff hunks into the index
      git-gui: Correct 'git gui blame' in a subdirectory
      Don't segfault if we failed to inflate a packed delta

Simon Hausmann (2):
      git-p4: Make 'git-p4 branches' work after an initial clone with git clone from an origin-updated repository.
      git-p4: Fix warnings about non-existant refs/remotes/p4/HEAD ref when running git-p4 sync the first time after a git clone.

Stefan Sperling (1):
      Document -u option in git-svnimport man page

martin f. krafft (2):
      git-svn init/clone --stdlayout option to default-init trunk/tags/branches
      Install man3 manpages to $PREFIX/share/man/man3 even for site installs


Version v1.5.3-rc6; changes since v1.5.3-rc5:
---------------------------------------------

Alex Riesen (2):
      Fix whitespace in "Format of STDIN stream" of fast-import
      Avoid using va_copy in fast-import: it seems to be unportable.

Arjen Laarhoven (2):
      gitk: Make the date/time display configurable
      t1301-shared-repo.sh: fix 'stat' portability issue

Brian Downing (1):
      Clarify actual behavior of 'git add' and ignored files

Brian Gernhardt (1):
      Minor clarifications to git-filter-branch usage and doc

Dave Watson (1):
      Fix misspelling of 'suppress' in docs

Eric Wong (1):
      git-svn: fix log with single revision against a non-HEAD branch

Johannes Sixt (1):
      gitk: Handle 'copy from' and 'copy to' in diff headers.

Junio C Hamano (10):
      Fix "git add -u" data corruption.
      GIT 1.5.2.5
      Fix read-tree merging more than 3 trees using 3-way merge
      Update documentation links for older releases.
      git-clone: allow --bare clone
      Documentation/git-rebase: fix an example
      Clean-up read-tree error condition.
      fast-import pull request
      git clone: do not issue warning while cloning locally across filesystems
      GIT 1.5.3-rc6

Lars Hjemli (1):
      git-submodule: re-enable 'status' as the default subcommand

Linus Torvalds (2):
      Make thin-pack generation subproject aware.
      Take binary diffs into account for "git rebase"

Lukas Sandström (1):
      Add the word reflog to Documentation/config.txt:core.logAllRefUpdates

Mark Levedahl (1):
      git-completion.bash - add support for git-bundle

Matthieu Moy (1):
      Add and document a global --no-pager option for git.

Mike Hommey (1):
      Clarify commit-tree documentation

Nicolas Pitre (1):
      pack-objects: remove bogus arguments to delta_cacheable()

Paul Mackerras (3):
      gitk: Fix warning when removing a branch
      gitk: Fix bug in fix for warning when removing a branch
      gitk: Add a window to list branches, tags and other references

René Scharfe (1):
      path-list.c: always free strdup'ed paths

Salikh Zakirov (1):
      git-add -u paths... now works from subdirectory

Sean Estabrooks (1):
      Fix small typo in git send-email man page.

Shawn O. Pearce (11):
      git-gui: Avoid Tcl error in popup menu on diff viewer
      Actually allow TAG_FIXUP branches in fast-import
      Use handy ALLOC_GROW macro in fast-import when possible
      Teach fast-import to ignore lines starting with '#'
      Make trailing LF following fast-import `data` commands optional
      Make trailing LF optional for all fast-import commands
      Allow frontends to bidirectionally communicate with fast-import
      Generate crash reports on die in fast-import
      Include recent command history in fast-import crash reports
      Correct documentation of 'reflog show' to explain it shows HEAD
      Don't allow combination of -g and --reverse as it doesn't work

Steffen Prohaska (1):
      gitk: Let user easily specify lines of context in diff view

Steven Grimm (1):
      Document what the stage numbers in the :$n:path syntax mean.

Sven Verdoolaege (1):
      git-apply: apply submodule changes

Väinö Järvelä (1):
      git-gui: Added support for OS X right click


Version v1.5.3-rc5; changes since v1.5.3-rc4:
---------------------------------------------

Adam Roben (1):
      Documentation/git-svn: how to clone a git-svn-created repository

Alberto Bertogli (1):
      Allow git-svnimport to take "" as the trunk directory.

Alex Riesen (3):
      Fix filehandle leak in "git branch -D"
      gitk: Continue and show error message in new repos
      gitk: Show an error and exit if no .git could be found

Alexandre Julliard (3):
      git.el: Add support for interactive diffs.
      git.el: Always set the current directory in the git-diff buffer.
      git-add: Add support for --refresh option.

Brian Downing (2):
      cvsserver: Fix for work trees
      Add read_cache to builtin-check-attr

Brian Gernhardt (1):
      Fix t5701-clone-local for white space from wc

Carlos Rica (3):
      Make git tag a builtin.
      builtin-tag.c: Fix two memory leaks and minor notation changes.
      Make verify-tag a builtin.

David Kastrup (6):
      Documentation/git-commit.txt: correct bad list formatting.
      Add support for an info version of the user manual
      INSTALL: explain info installation and dependencies.
      Documentation/Makefile: remove cmd-list.made before redirecting to it.
      git-sh-setup.sh: make GIT_DIR absolute
      Add a test for git-commit being confused by relative GIT_DIR

Gerrit Pape (1):
      git-am: initialize variable $resume on startup

J. Bruce Fields (4):
      user-manual: update for new default --track behavior
      user-manual: mention git-gui
      documentation: use the word "index" in the git-add manual page
      documentation: use the word "index" in the git-commit man page

Jakub Narębski (1):
      gitweb: Fix handling of $file_name in feed generation

Johannes Schindelin (4):
      launch_editor(): Heed GIT_EDITOR and core.editor settings
      Teach "git stripspace" the --strip-comments option
      checkout-index needs a working tree
      Reinstate the old behaviour when GIT_DIR is set and GIT_WORK_TREE is unset

Junio C Hamano (24):
      git-clone: aggressively optimize local clone behaviour.
      git-completion: add "git stash"
      INSTALL: add warning on docbook-xsl 1.72 and 1.73
      unpack-trees.c: assume submodules are clean during check-out
      Fix install-doc-quick target
      user-manual: mention git stash
      setup.c:verify_non_filename(): don't die unnecessarily while disambiguating
      pager: find out pager setting from configuration
      Fix "make GZ=1 quick-install-doc"
      Reorder the list of commands in the manual.
      Fix formatting of git-blame documentation.
      Fix an illustration in git-rev-parse.txt
      tweak manpage formatting
      Revert "tweak manpage formatting"
      Optimize "diff --cached" performance.
      allow git-bundle to create bottomless bundle
      allow git-bundle to create bottomless bundle
      t3404: fix "fake-editor"
      builtin-bundle create - use lock_file
      git-diff: squelch "empty" diffs
      merge-recursive: do not rudely die on binary merge
      attr.c: refactoring
      attr.c: read .gitattributes from index as well.
      GIT 1.5.3-rc5

Jyotirmoy Bhattacharya (1):
      Fixed git-push manpage

Linus Torvalds (8):
      connect: accept file:// URL scheme
      apply: remove directory that becomes empty by renaming the last file away
      Start moving unpack-trees to "struct tree_desc"
      Fix "git commit directory/" performance anomaly
      Move old index entry removal from "unpack_trees()" into the individual functions
      Optimize the common cases of git-read-tree
      Optimize the two-way merge of git-read-tree too
      Optimize the three-way merge of git-read-tree

Luiz Fernando N. Capitulino (3):
      Avoid ambiguous error message if pack.idx header is wrong
      Introduces xmkstemp()
      Use xmkstemp() instead of mkstemp()

Marco Costalba (1):
      Add --log-size to git log to print message size

Mark Levedahl (5):
      builtin-bundle.c - use stream buffered input for rev-list
      builtin-bundle - use buffered reads for bundle header
      gitk: Enable selected patch text on Windows
      gitk: Handle MouseWheel events on Windows
      t3902 - skip test if file system doesn't support HT in names

Paul Mackerras (4):
      gitk: Add a context menu for file list entries
      gitk: Fix bug causing the "can't unset idinlist(...)" error
      gitk: Fix bug introduced in commit 67a4f1a7
      gitk: Fix bug causing Tcl error when updating graph

Randal L. Schwartz (1):
      add "test-absolute-path" to .gitignore

Reece H. Dunn (1):
      git-p4: Fix the sorting of changelists when cloning a Perforce repository.

René Scharfe (2):
      diff: don't run pager if user asked for a diff style exit code
      diff: squelch empty diffs even more

Shawn O. Pearce (4):
      Document GIT_SSH environment variable alongside other variables
      Teach update-paranoid how to store ACLs organized by groups
      Teach the update-paranoid to look at file differences
      Use the empty tree for base diff in paranoid-update on new branches

Simon Hausmann (2):
      git-p4: Fix support for symlinks.
      git-p4: Fix git-p4 submit to include only changed files in the perforce submit template.

Steffen Prohaska (1):
      Improved hint on how to set identity

Steve Hoelzer (2):
      git-stash documentation: stash numbering starts at zero, not one
      git-stash documentation: add missing backtick

Steven Grimm (1):
      Add a note about the index being updated by git-status in some cases

Uwe Kleine-König (3):
      send-email: teach sanitize_address to do rfc2047 quoting
      send-email: rfc822 forbids using <address@domain> without a non-empty "phrase"
      send-email: get all the quoting of realnames right


Version v1.5.3-rc4; changes since v1.5.3-rc3:
---------------------------------------------

Alex Riesen (4):
      Add an option to specify a file to config builtin
      Add a test for git-config --file
      Make verse of git-config manpage more readable
      Hack git-add--interactive to make it work with ActiveState Perl

Alexandre Julliard (2):
      git.el: Avoid using ewoc-set-data for compatibility with Emacs 21.
      git.el: Take into account the core.excludesfile config option.

Bradford C. Smith (2):
      fully resolve symlinks when creating lockfiles
      use lockfile.c routines in git_commit_set_multivar()

Brian Gernhardt (1):
      Document commit.template configuration variable.

Christian Couder (1):
      rev-list --bisect: fix allocation of "int*" instead of "int".

Christian Stimming (1):
      git-gui: Unify wording to say "to stage" instead of "to add"

David Kastrup (3):
      Makefile: use $(FIND) instead of find
      git-sh-setup.sh: make GIT_EDITOR/core.editor/VISUAL/EDITOR accept commands
      When generating manpages, delete outdated targets first.

David Soria Parra (1):
      Documentation/gitattributes.txt: typofix

David Symonds (1):
      Fix documentation for core.gitproxy to reflect code

Han-Wen Nienhuys (2):
      Sort output of "p4 change" in incremental import before further
      Fix style nit in Python slicing.

Jakub Narębski (3):
      gitweb: Show submodule entries in the 'tree' view
      gitweb: Simplify 'opt' parameter validation, add "no merges" feeds
      gitweb: Allow for multivalued parameters passed to href subroutine

Jeff King (2):
      Documentation/git-diff: remove -r from --name-status example
      git-diff: turn on recursion by default

Jens Axboe (1):
      --base-path-relaxed option

Johannes Schindelin (11):
      rebase -i: fix overzealous output redirection
      rebase -i: fix interrupted squashing
      white space fixes in setup.c
      Add is_absolute_path() and make_absolute_path()
      Add functions get_relative_cwd() and is_inside_dir()
      Add set_git_dir() function
      Clean up work-tree handling
      get_relative_cwd(): clarify why it handles dir == NULL
      rebase -i: ignore patches that are already in the upstream
      rebase -i: fix for optional [branch] parameter
      read-tree: remove unnecessary call to setup_git_directory()

Julian Phillips (1):
      git-gui: Handle git versions of the form n.n.n.GIT

Junio C Hamano (23):
      Make sure git-stash works from subdirectory.
      gitweb: fix broken snapshot
      git-submodule module_name: avoid using unwieldy "value_regexp" feature.
      git-submodule: remove redundant call to git-describe
      When locking in a symlinked repository, try to lock the original.
      git_mkstemp(): be careful not to overflow the path buffer.
      Update description of -z option.
      git-stash: do not remove a ref by hand.
      Add test for symlinked configuration file updates.
      Fix git-stash apply --index
      git-stash apply --index: optimize postprocessing
      log_ref_write() -- do not chomp reflog message at the first LF
      symbolic-ref, update-ref: do not refuse reflog message with LF
      rebase: try not to munge commit log message
      add_file_to_index: skip rehashing if the cached stat already matches
      Unset GIT_EDITOR while running tests.
      git.c: execution path
      git-commit.sh: Permit the --amend message to be given with -m/-c/-C/-F.
      RelNotes 1.5.3 updates before -rc4
      Fix work-tree related breakages
      gitweb: do not choke on recursive symlink
      Fix bogus use of printf in t3700 test
      GIT 1.5.3-rc4

Kristian Høgsberg (1):
      Add test case for basic commit functionality.

Mark Levedahl (1):
      gitk: Ignore ctrl-z as EOF on windows

Nanako Shiraishi (1):
      git-stash: Make sure reflog is created for refs/stash

Nguyễn Thái Ngọc Duy (1):
      git-write-tree should not crash if prefix does not exist

Paul Mackerras (4):
      gitk: Show changes in index and changes in working directory separately
      gitk: Make the fake commit for the index changes green rather than magenta
      gitk: Wait for the window to become visible after creating it
      gitk: Fix bugs in the Find function

Robert Ewald (1):
      git-svn: Translate invalid characters in refname

Robert Schiele (2):
      add option to find zlib in custom path
      make the name of the library directory a config option

Robin Rosenberg (1):
      Document --unified/-U option

Seth Falcon (1):
      Rename git-rebase interactive buffer: todo => git-rebase-todo

Shawn O. Pearce (49):
      git-gui: Skip -dirty suffix on core git versions
      git-gui: Brown paper bag "dirty git version fix"
      git-gui: Always disable the Tcl EOF character when reading
      git-gui: Delay searching for 'nice' until its really asked for
      git-gui: Don't crash in ask_popup if we haven't mapped main window yet
      git-gui: Change our initial GC hint to be an estimate
      git-gui: Let the user continue even if we cannot understand git version
      git-gui: Delay the GC hint until after we are running
      git-gui: Move feature option selection before GIT_DIR init
      git-gui: Allow blame/browser subcommands on bare repositories
      git-gui: Allow browser subcommand to start in subdirectory
      git-gui: Allow users to browse any branch, not just the current one
      git-gui: Clarify the visualize history menu options
      git-gui: Increase the default height of the revision picker
      git-gui: Convert merge dialog to use class system
      Don't offer my special Tools/Migrate hack unless in multicommit
      git-gui: Bind Ctrl/Cmd-M to merge action
      git-gui: Avoid unnecessary global statements when possible
      git-gui: Translate standard encoding names to Tcl ones
      git-gui: Don't show blame tooltips that we have no data for
      git-gui: Completely remove support for creating octopus merges
      git-gui: Automatically backup the user's commit buffer
      git-gui: Save the merge base during checkout_op processing
      git-gui: Factor out common fast-forward merge case
      git-gui: Simplify error case for unsupported merge types
      git-gui: Skip unnecessary read-tree work during checkout
      git-gui: Internally allow fetch without storing for future pull support
      git-gui: Completely remove my Tools/Migrate hack
      git-gui: Fix unnecessary fast-forward during checkout
      gitk: Bind keyboard actions to the command key on Mac OS
      git-gui: Clarify meaning of add tracked menu option
      git-gui: Paper bag fix quitting crash after commit
      git-gui: Refactor diff popup into a procedure to ease i18n work
      git-gui: Refactor current branch menu items to make i18n easier
      git-gui: Avoid unnecessary symbolic-ref call during checkout
      git-gui: Save remote urls obtained from config/remotes setup
      git-gui: Display commit/tag/remote info in tooltip of revision picker
      git-gui: Show ref last update times in revision chooser tooltips
      git-gui: Replace merge dialog with our revision picker widget
      git-gui: Cleanup bindings within merge dialog
      git-gui: Format tracking branch merges as though they were pulls
      git-gui: Remove usernames from absolute SSH urls during merging
      git-gui: Don't kill modified commit message buffer with merge templates
      git-gui: Honor core.excludesfile when listing extra files
      git-gui: Use progress bar while resetting/aborting files
      git-gui: Make sure remotes are loaded when picking revisions
      git-gui: Don't offer to stage hunks from untracked files
      git-gui: Use more modern looking icons in the tree browser
      git-gui: Minor refactoring of merge command line in merge support

Simon Hausmann (1):
      git-p4: Fix p4 user cache population on Windows.

Steve Hoelzer (1):
      Try to be consistent with capitalization in the documentation

Thomas Schwinge (2):
      Don't rely on unspecified behavior
      Support building on GNU/Hurd


Version v1.5.3-rc3; changes since v1.5.3-rc2:
---------------------------------------------

Adam Roben (1):
      Add GIT_EDITOR environment and core.editor configuration variables

Alexandre Julliard (2):
      git.el: Support for incremental status updates.
      git.el: Pass an explicit argument to enable smerge-mode.

Carlos Rica (1):
      Rename read_pipe() with read_fd() and make its buffer nul-terminated.

David Kastrup (2):
      contrib/emacs/Makefile: Also install .el files.
      Documentation/gitignore.txt: Fix the seriously misleading priority explanation

Eric Wong (1):
      git-svn: fix commiting renames over DAV with funky file names

Francis Moreau (1):
      Fix git-branch documentation when using remote refs

Jakub Narębski (3):
      gitweb cleanup: Move @diff_opts declaration earlier
      gitweb: Fix support for legacy gitweb config for snapshots
      gitweb: More detailed error messages for snapshot format

Jim Meyering (1):
      pretty-options.txt: tiny doc fix

Johannes Schindelin (11):
      filter-branch: get rid of "set -e"
      rebase -i: call editor just once for a multi-squash
      fsck --lost-found: write blob's contents, not their SHA-1
      mailinfo: fix 'fatal: cannot convert from utf-8 to utf-8'
      Shut "git rebase -i" up when no --verbose was given
      rebase -i: exchange all "if [ .. ]" by "if test .."
      filter-branch: Big syntax change; support rewriting multiple refs
      Teach revision machinery about --no-walk
      git log -g: Complain, but do not fail, when no reflogs are there
      Teach approxidate() to understand "never"
      git am: skip pine's internal folder data

Julian Phillips (1):
      Force listingblocks to be monospaced in manpages

Junio C Hamano (8):
      Update INSTALL
      Do not expect unlink(2) to fail on a directory.
      Fix VISUAL/EDITOR preference order in Documentation/config.txt.
      Synonyms: -i == --regexp-ignore-case, -E == --extended-regexp
      Mark user-manual as UTF-8
      user-manual: fix typolets.
      t9200: Be careful when checking CVS/Entries
      GIT 1.5.3-rc3

Kumar Gala (1):
      send-email: Update regex parsing for pine aliases

Linus Torvalds (2):
      Do a better job at guessing unknown character sets
      Fix up duplicate parents removal

Marco Costalba (1):
      Avoid to duplicate commit message when is not encoded

Matt McCutchen (1):
      gitweb: snapshot cleanups & support for offering multiple formats

Nanako Shiraishi (1):
      Document "git stash message..."

René Scharfe (2):
      filter-branch: fix dash complaining about "Missing '))'"
      cleanup unpack-trees.c: shrink struct tree_entry_list

Richard MUSIL (1):
      git-svn: Minimalistic patch which allows svn usernames with space(s).

Robin Rosenberg (1):
      cvsexportcommit: avoid racy CVS problem.

Scott Lamb (2):
      git-p4: use subprocess in p4CmdList
      git-p4: input to "p4 files" by stdin instead of arguments

Simon Hausmann (3):
      git-p4: Cleanup, make listExistingP4Branches a global function for later use.
      git-p4: Fix upstream branch detection for submit/rebase with multiple branches.
      git-p4: Cleanup, used common function for listing imported p4 branches

Steven Grimm (2):
      Document how to tell git to not launch a pager
      Teach git-commit about commit message templates.

Sven Verdoolaege (1):
      unpack-trees.c: assume submodules are clean during check-out


Version v1.5.3-rc2; changes since v1.5.3-rc1:
---------------------------------------------

Alex Riesen (1):
      Fix git-rebase -i to allow squashing of fast-forwardable commits

Emil Medve (1):
      Use $(RM) in Makefiles instead of 'rm -f'

Eric Wong (1):
      git-svn: remove leading slashes from fetch lines in the generate config

Greg KH (1):
      make git-send-email.perl handle email addresses with no names when Email::Valid is present

Jakub Narębski (3):
      Update git-merge documentation.
      Document long options '--message=<msg>' and '--no-commit'
      Document git commit --untracked-files and --verbose

Jim Meyering (1):
      git-cvsserver: detect/diagnose write failure, etc.

Josh Triplett (1):
      Remove useless uses of cat, and replace with filename arguments

Junio C Hamano (7):
      Make show_rfc2822_date() just another date output format.
      Wire new date formats to --date=<format> parser.
      Document new --date=<format>
      Add contrib/stats/mailmap.pl script
      Update .mailmap
      Documentation/git-commit-tree: remove description of a nonexistent limitation
      GIT v1.5.3-rc2

Marius Storm-Olsen (1):
      Fix git-p4 on Windows to not use the Posix sysconf function.

Matthieu Moy (1):
      More permissive "git-rm --cached" behavior without -f.

Nicolas Pitre (1):
      Pack-objects: properly initialize the depth value

Paul Mackerras (1):
      gitk: Fix bug introduced by previous commit

Peter Hagervall (1):
      Make every builtin-*.c file #include "builtin.h"

Robin Rosenberg (1):
      Support output ISO 8601 format dates

Sean Estabrooks (3):
      Remove "WITH_P4IMPORT" knob from the Makefile
      Remove p4 rpm from git.spec.in.
      Demote git-p4import to contrib status.

Shawn O. Pearce (2):
      Correct trivial typo in fast-import documentation
      Teach fast-import to recursively copy files/directories

Stephen Rothwell (1):
      send-email: discard blank around address in extract_valid_address as well.

Sven Verdoolaege (1):
      lockfile.c: schedule remove_lock_file only once.


Version v1.5.3-rc1; changes since v1.5.3-rc0:
---------------------------------------------

Alecs King (1):
      fix remote.origin.url in tutorial.txt

Alex Riesen (4):
      Handle missing prefix for "Subject:" as if no prefix given
      Handle format.subjectprefix for every command which accepts --pretty
      Fix t5516 to create test repo without hooks
      Add -v|--verbose to git remote to show remote url

Andrew Ruder (2):
      Remove USE_PAGER from git-pickaxe and git-annotate
      Add urls.txt to git-clone man page

Andy Parkins (1):
      user-manual: grammar and style fixes

Brian Downing (10):
      pack-objects: Prefer shallower deltas if the size is equal
      gitk: Fix for tree view ending in nested directories
      Pack information tool
      Correct shebang line for contrib/stats/packinfo.pl
      Don't try to delta if target is much smaller than source
      Support fetching the memory usage of a delta index
      Add functions for parsing integers with size suffixes
      Add pack-objects window memory usage limit
      Add --window-memory option to git-repack
      Add documentation for --window-memory, pack.windowMemory

Brian Gernhardt (1):
      Add core.pager config variable.

CJ van den Berg (1):
      git-submodule: Fix two instances of the same typo

Carlos Rica (5):
      t7004: Skip tests for signed tags in an old version of gpg.
      t0030: Remove repeated instructions and add missing &&
      t0030: Add tests with consecutive text lines and others with spaces added.
      t7004: Add tests for the git tag -n option.
      Function stripspace now gets a buffer instead file descriptors.

Daniel Barkalow (2):
      Add allocation and freeing functions for struct refs
      Some cosmetic changes to remote library

David Kastrup (1):
      Add missing functions to contrib/emacs/vc-git.el

Eric Wong (1):
      git-svn: fix blocking with svn:// servers after do_switch

Frank Lichtenheld (1):
      cvsserver: always initialize state in argsplit()

Gerrit Pape (2):
      git-gui: properly popup error if gitk should be started but is not installed
      git-commit: don't add multiple Signed-off-by: from the same identity

J. Bruce Fields (2):
      tutorial: Fix typo
      user-manual: more explanation of push and pull usage

James Bowes (1):
      stash: allow running from a subdirectory

Jim Meyering (1):
      Don't smash stack when $GIT_ALTERNATE_OBJECT_DIRECTORIES is too long

Johannes Schindelin (24):
      diff --no-index: fix --name-status with added files
      glossary: add 'reflog'
      Document git-filter-branch
      Add diff-option --ext-diff
      filter-branch: add a test for the commit removal example
      filter-branch: make output nicer
      filter-branch: a few more touch ups to the man page
      filter-branch documentation: clarify which filters are eval'ed
      filter-branch: fail gracefully when a filter fails
      Future-proof source for changes in xdemitconf_t
      Teach git-stash to "apply --index"
      Enable "git rerere" by the config variable rerere.enabled
      git-branch: default to --track
      Fix "apply --reverse" with regard to whitespace
      branch.autosetupmerge: allow boolean values, or "all"
      rebase -i: handle --continue more like non-interactive rebase
      rebase -i: actually show the diffstat when being verbose
      rebase -i: remember the settings of -v, -s and -p when interrupted
      rebase -i: put a nice warning into the todo list
      rerere: record resolution even if file is not in merge base
      Fix core.sharedRepository = 2
      Fix --cherry-pick with given paths
      Add for_each_remote() function, and extend remote_find_tracking()
      branch --track: code cleanup and saner handling of local branches

Johannes Sixt (3):
      filter-branch: Avoid an error message in the map function.
      filter-branch documentation: some more touch-ups.
      Allow rebase to run if upstream is completely merged

Jonas Fonseca (1):
      fsck --lost-found writes to subdirectories in .git/lost-found/

Junio C Hamano (22):
      Update draft Release Notes for 1.5.3
      Update reflog message created for stashes
      Do not check if getcwd() result begins with a slash.
      Fix git-stash(1) markup.
      git-stash: allow more descriptive reminder message when saving
      Introduce diff_filespec_is_binary()
      Per-path attribute based hunk header selection.
      Fix configuration syntax to specify customized hunk header patterns.
      diff: honor binariness specified in attributes
      gitweb: make repeated calls to git_get_project_owner() bearable
      diff.c: make built-in hunk header pattern a separate table
      git-gui: use "blame -w -C -C" for "where did it come from, originally?"
      git-stash: try reusing cached stat info as much as possible
      Fix merge-one-file for our-side-added/our-side-removed cases
      Document custom hunk header selection
      revision.c: remove duplicated parents after history simplification
      Revert 88494423 (removal of duplicate parents in the output codepath)
      Re-code builtin-branch.c in UTF-8
      Teach read-tree 2-way merge to ignore intermediate symlinks
      GIT 1.5.2.4
      Update list of older git docs
      GIT v1.5.3-rc1

Lars Hjemli (1):
      git-submodule(1): update description and key names

Marcus Fritzsch (1):
      Fixed a formulation mistake in Documentation/user-manual.txt

Matt Kraai (3):
      Prefer EMAIL to username@hostname.
      Change "added.moved or removed" to "added, moved or removed" in
      Add [verse] to the SYNOPSIS section of git-submodule.txt.

Matt McCutchen (3):
      gitweb: make search form generate pathinfo-style URLs
      gitweb: make "No commits" in project list gray, not bold green
      Makefile: rebuild git.o on version change, clean up git$X flags

Matthias Lederhofer (3):
      git-init: set core.worktree if GIT_WORK_TREE is specified
      git-clone: split up long &&-command-chain and use a function for cleanup
      make git-clone GIT_WORK_TREE aware

Michael Hendricks (2):
      git-send-email: allow an email alias for --from
      gitweb: configurable width for the projects list Description column

Miklos Vajna (3):
      Document -<n> for git-format-patch
      gitweb: prefer git_get_project_owner() over get_file_owner()
      gitweb: new cgi parameter: opt

Nicolas Pitre (3):
      apply delta depth bias to already deltified objects
      script to display a distribution of longest common hash prefixes
      reduce git-pack-objects memory usage a little more

Paul Mackerras (6):
      gitk: Fix the find and highlight functions
      gitk: Fix bug in the anc_or_desc routine
      gitk: Remove the unused stopfindproc function
      gitk: Fix bug causing "can't read commitrow(0,n)" error
      gitk: Use git log and add support for --left-right
      gitk: Improve handling of -- and ambiguous arguments

René Scharfe (1):
      diff-lib.c: don't strdup twice

Sean Estabrooks (1):
      Alter git-checkout reflog message to include "from" branch

Shawn O. Pearce (46):
      git-gui: Unlock the index when cancelling merge dialog
      git-gui: Start blame windows as tall as possible
      git-gui: Correct resizing of remote branch delete dialog
      git-gui: Don't bind F5/M1-R in all windows
      git-gui: Bind M1-P to push action
      git-gui: Include a Push action on the left toolbar
      git-gui: Ensure windows shortcuts always have .bat extension
      git-gui: Honor rerere.enabled configuration option
      git-gui: New Git version check support routine
      git-gui: Skip nicknames when selecting author initials
      git-gui: Teach class system to support [$this cmd] syntax
      git-gui: Abstract the revision picker into a mega widget
      git-gui: Refactor the delete branch dialog to use class system
      git-gui: Optimize for newstyle refs/remotes layout
      git-gui: Maintain remote and source ref for tracking branches
      git-gui: Allow users to match remote branch names locally
      git-gui: Fast-forward existing branch in branch create dialog
      git-gui: Enhance choose_rev to handle hundreds of branches
      git-gui: Sort tags descending by tagger date
      git-gui: Option to default new branches to match tracking branches
      git-gui: Automatically refresh tracking branches when needed
      git-gui: Better handling of detached HEAD
      git-gui: Refactor our ui_status_value update technique
      git-gui: Refactor branch switch to support detached head
      git-gui: Unabbreviate commit SHA-1s prior to display
      git-gui: Default selection to first matching ref
      git-gui: Allow double-click in checkout dialog to start checkout
      git-gui: Extract blame viewer status bar into mega-widget
      git-gui: Change the main window progress bar to use status_bar
      git-gui: Show a progress meter for checking out files
      git-gui: Always use absolute path to all git executables
      git-gui: Correct gitk installation location
      git-gui: Assume unfound commands are known by git wrapper
      git-gui: Treat `git version` as `git --version`
      git-gui: Perform our own magic shbang detection on Windows
      git-gui: Teach console widget to use git_read
      git-gui: Improve the Windows and Mac OS X shortcut creators
      git-gui: Correct ls-tree buffering problem in browser
      git-gui: Don't linewrap within console windows
      git-gui: Paper bag fix for Cygwin shortcut creation
      git-gui: Use sh.exe in Cygwin shortcuts
      git-gui: Include a space in Cygwin shortcut command lines
      Clarify documentation of fast-import's D subcommand
      Support wholesale directory renames in fast-import
      git-gui: Work around bad interaction between Tcl and cmd.exe on ^{tree}
      git-gui: Change prior tree SHA-1 verification to use git_read

Steffen Prohaska (1):
      filter-branch: added missing warn function

Steven Walter (1):
      Documentation for git-log --follow

Uwe Kleine-König (2):
      stash: end commit log with a newline
      repack: don't report "Nothing new to pack." if -q is given

William Pursell (1):
      user-manual: fix directory name in git-archive example


Version v1.5.3-rc0; changes since v1.5.2.5:
-------------------------------------------

Adam Roben (3):
      git-send-email: Add --threaded option
      git-send-email: make options easier to configure.
      format-patch: Add format.subjectprefix config option

Alex Riesen (11):
      Fix the progress code to output LF only when it is really needed
      Add run_command_v_opt_cd: chdir into a directory before exec
      Add ability to specify environment extension to run_command
      Allow environment variables to be unset in the processes started by run_command
      Verbose connect messages to show the IP addresses used
      Add another verbosity level to git-fetch
      Add a configuration option to control diffstat after merge
      Fix push with refspecs containing wildcards
      Do not use h_errno after connect(2): the function does not set it
      cvsserver: Actually implement --export-all
      Avoid perl in t1300-repo-config

Alexandre Julliard (1):
      pack-check: Sort entries by pack offset before unpacking them.

Alexandre Vassalotti (1):
      git-tag: Fix "can't shift that many".

Andy Whitcroft (3):
      cvsimport: add support for new style remote layout
      cvsimport: update documentation to include separate remotes option
      cvsimport: add <remote>/HEAD reference in separate remotes more

Aneesh Kumar K.V (2):
      gitview: Fix the blame interface.
      gitview: run blame with -C -C

Benjamin Sergeant (1):
      git-p4 fails when cloning a p4 depo.

Brian Gernhardt (1):
      Fix t5516-fetch for systems where `wc -l` outputs whitespace.

Carlos Rica (3):
      Fix git-stripspace to process correctly long lines and spaces.
      Add test script for git-stripspace.
      Add test-script for git-tag

Dan McGee (1):
      git-mergetool: Allow gvimdiff to be used as a mergetool

Dana L. How (8):
      Custom compression levels for objects and packs
      Alter sha1close() 3rd argument to request flush only
      git-repack --max-pack-size: new file statics and code restructuring
      git-repack --max-pack-size: write_{object,one}() respect pack limit
      git-repack --max-pack-size: split packs as asked by write_{object,one}()
      git-repack --max-pack-size: add option parsing to enable feature
      pack-objects: clarification & option checks for --max-pack-size
      Ensure git-repack -a -d --max-pack-size=N deletes correct packs

Daniel Barkalow (6):
      Move remote parsing into a library file out of builtin-push.
      Move refspec parser from connect.c and cache.h to remote.{c,h}
      Add handlers for fetch-side configuration of remotes.
      Update local tracking refs when pushing
      Move refspec pattern matching to match_refs().
      Fix pushing to a pattern with no dst

Dave O'Neill (1):
      Generate tags with correct timestamp (git-svnimport)

Elvis Pranskevichus (1):
      Use git-tag in git-cvsimport

Emil Medve (1):
      git-submodule: Instead of using only annotated tags, use any tags.

Eric Wong (4):
      git-svn: cleanup: factor out longest_common_path() function
      git-svn: test for creating new directories over svn://
      git-svn: reduce stat() calls for a backwards compatibility check
      git-svn: allow dcommit to retain local merge information

Fernando J. Pereda (1):
      Teach mailsplit about Maildir's

Frank Lichtenheld (11):
      t9400: Add test cases for config file handling
      t9400: Add some more cvs update tests
      t9400: Add some basic pserver tests
      t9400: Work around CVS' deficiencies
      cvsserver: Handle 'cvs login'
      cvsserver: Make req_Root more critical of its input data
      cvsserver: Add some useful commandline options
      cvsserver: Let --base-path and pserver get along just fine
      cvsserver: Actually implement --export-all
      config: Add --null/-z option for null-delimted output
      config: add support for --bool and --int while setting values

Geert Bosch (1):
      Unify write_index_file functions

Gerrit Pape (3):
      git-branch: cleanup config file when deleting branches
      git-svn: trailing slash in prefix is mandatory with --branches/-b
      git-cvsimport: force checkout of working tree after initial import

Han-Wen Nienhuys (28):
      Cleanups
      reformatting: break long lines.
      rename apply() to applyCommit(); apply is a python builtin
      add .dotest to .gitignore
      Robustness fixes for pipes
      cleanup
      minor cleanups
      clone and sync --keep-path to keep perforce path to module.
      use string.strip() iso. slicing.
      use strip() iso. slicing for removing \n
      add --verbose to all commands.
      Extract multiple paths concurrently.
      Diverse cleanups
      remove global .gitdir
      Read p4 files in one batch.
      Thinko, fix buglet.
      store p4 user cache in home directory.
      thinko.
      read files before creating the commit.
      don't p4 print deleted files.
      only run p4 print if necessary
      use p4CmdList() to get file contents in Python dicts. This is more robust.
      Cleanups & import into p4/master for local import
      remove debug print
      thinko: really ignore deleted files.
      look for 'text' and 'binary' files.
      print error message when p4 print fails (eg. due to permission problems)
      also strip p4/ from local imports.

Jakub Narębski (16):
      gitweb: Add test t9500 for gitweb (as standalone script)
      Add an option to git-ls-tree to display also the size of blob
      gitweb: Provide links to commitdiff to each parent in 'commitdiff' view
      gitweb: Improve "next" link in commitdiff view
      gitweb: Split git_patchset_body into separate subroutines
      gitweb: Create special from-file/to-file header for combined diff
      gitweb: Add links to blobdiffs in from-file/to-file header for merges
      gitweb: '--cc' for merges in 'commitdiff' view
      Document git rev-list --full-history
      Document git read-tree --trivial
      Document git rev-parse --is-inside-git-dir
      Document git reflog --stale-fix
      Document git rev-list --timestamp
      Use tabs for indenting definition list for options in git-log.txt
      Document git log --abbrev-commit, as a kind of pretty option
      Document git log --full-diff

James Bowes (2):
      Add colour support in rebase and merge tree diff stats output.
      rev-parse: Identify short sha1 sums correctly.

Jeff King (12):
      cmd_log_init: remove parsing of --encoding command line parameter
      refactor dir_add_name
      dir_struct: add collect_ignored option
      builtin-add: simplify (and increase accuracy of) exclude handling
      Fix ALLOC_GROW off-by-one
      Fix ALLOC_GROW calls with obsolete semantics
      git-stash: fix "no arguments" case in documentation
      git-stash: fix "can't shift that many" with no arguments
      git-stash: don't complain when listing in a repo with no stash
      Documentation: quote {non-attributes} for asciidoc
      Documentation: quote {non-attributes} for asciidoc
      Documentation: minor cleanups to branch/checkout wording

Jeffrey C. Ollie (2):
      Add an option to quiet git-init.
      Quiet the output from git-init when cloning, if requested.

Jim Meyering (4):
      Don't dereference a strdup-returned NULL
      detect close failure on just-written file handles
      Don't ignore a pack-refs write failure
      git-log: detect dup and fdopen failure

Johan Herland (1):
      Remove unnecessary code and comments on non-existing 8kB tag object restriction

Johannes Schindelin (23):
      Update to SubmittingPatches
      Add git-filter-branch
      git-fsck: learn about --verbose
      Move buffer_is_binary() to xdiff-interface.h
      merge-recursive: refuse to merge binary files
      git-merge-file: refuse to merge binary files
      filter-branch: use $(($i+1)) instead of $((i+1))
      filter-branch: fix behaviour of '-k'
      t5000: skip ZIP tests if unzip was not found
      Teach filter-branch about subdirectory filtering
      Teach diff to imply --find-copies-harder upon -C -C
      pp_header(): work around possible memory corruption
      diffcore-rename: favour identical basenames
      filter-branch: add example to move everything into a subdirectory
      Move the pick_author code to git-sh-setup
      Teach rebase an interactive mode
      rebase -i: several cleanups
      rebase -i: provide reasonable reflog for the rebased branch
      Teach rebase -i about --preserve-merges
      t7004: ship trustdb to avoid gpg warnings
      git add: respect core.filemode with unmerged entries
      Make '!' aliases more useful
      git-fsck: add --lost-found option

Johannes Sixt (9):
      filter-branch: Use rev-list arguments to specify revision ranges.
      filter-branch: also don't fail in map() if a commit cannot be mapped
      Makefile: Remove git-merge-base from PROGRAMS.
      filter-branch: Simplify parent computation.
      filter-branch: subdirectory filter needs --full-history
      Avoid double-slash in path names that depend on $(sharedir).
      Remove trailing slash from $(template_dir).
      git-remote show: Also shorten non-fast-forward refs in the 'push' listing
      Test 'git add' for unmerged entries when core.symlinks=false.

Jon Loeliger (1):
      Add the --numbered-files option to git-format-patch.

Jonas Fonseca (2):
      Fix git-am(1) synopsis formatting
      git-rebase: suggest to use git-add instead of git-update-index

Josh Triplett (1):
      Fix typo in git-mergetool

Julian Phillips (2):
      Makefile: Use generic rule to build test programs
      new-workdir: handle rev-parse --git-dir not always giving full path

Junio C Hamano (48):
      git-apply: Fix removal of new trailing blank lines.
      pack-objects: pass fullname down to add_object_entry()
      Teach "delta" attribute to pack-objects.
      builtin-pack-objects: remove unnecessary code for no-delta
      Fix command line parameter parser of revert/cherry-pick
      Remove git-applypatch
      mailsplit: fix for more than one input files
      Add DLH to .mailmap
      Release Notes: start preparing for 1.5.3
      git-apply: what is detected and fixed is not just trailing spaces.
      t7003: make test repeatable
      git-branch --track: fix tracking branch computation.
      War on whitespace
      Test wildcard push/fetch
      More missing static
      More missing static
      Even more missing static
      remote.c: refactor match_explicit_refs()
      remote.c: refactor creation of new dst ref
      remote.c: minor clean-up of match_explicit()
      remote.c: fix "git push" weak match disambiguation
      remote.c: "git-push frotz" should update what matches at the source.
      git-push: Update description of refspecs and add examples
      git-blame: do not indent with spaces.
      git-blame -w: ignore whitespace
      mktag: minimally update the description.
      Lift 16kB limit of log message output
      Extend --pretty=oneline to cover the first paragraph,
      Makefile: common-cmds.h depends on generate-cmdlist.sh script
      Makefile: allow generating git.o for debugging purposes
      -Wold-style-definition fix
      More static
      Documentation: update "stale" links for 1.5.2.2
      INSTALL: explain how to build documentation
      Two trivial -Wcast-qual fixes
      git-send-email: Do not make @-less message ID
      Add core.quotepath configuration variable.
      Update draft Release Notes for 1.5.3
      diffcore_count_changes: pass diffcore_filespec
      diffcore_filespec: add is_binary
      diffcore-delta.c: update the comment on the algorithm.
      diffcore-delta.c: Ignore CR in CRLF for text files
      git-stash: require "save" to be explicit and update documentation
      Update public documentation links for 1.5.2.3
      "git-push $URL" without refspecs pushes only matching branches
      Rewrite "git-frotz" to "git frotz"
      git-stash: make "save" the default action again.
      Mark disused commit walkers officially deprecated.

Kevin Green (1):
      git-p4: check for existence of repo dir before trying to create

Lars Hjemli (10):
      Add git-submodule command
      Add basic test-script for git-submodule
      git-submodule: move cloning into a separate function
      git-submodule: clone during update, not during init
      t7400: barf if git-submodule removes or replaces a file
      git-submodule: remember to checkout after clone
      Rename sections from "module" to "submodule" in .gitmodules
      git-submodule: give submodules proper names
      Add gitmodules(5)
      gitmodules(5): remove leading period from synopsis

Linus Torvalds (9):
      Make "git gc" pack all refs by default
      Make the pack-refs interfaces usable from outside
      Makefile: add an explicit rule for building assembly output
      Finally implement "git log --follow"
      Fix up "git log --follow" a bit..
      Clean up internal command handling
      Check for IO errors after running a command
      git: Try a bit harder not to lose errno in stdio
      Start deprecating "git-command" in favor of "git command"

Marco Costalba (1):
      Teach 'git-apply --whitespace=strip' to remove empty lines at the end of file

Marius Storm-Olsen (7):
      Make the command call silent
      Replace \r\n with \n when importing from p4 on Windows
      Ensure that the commit message is Windows formated (CRLF) before invoking the editor.
      Fix git-p4 clone (defaultDestination)
      Fix single branch import into remotes
      Exclude the HEAD symbolic ref from the list of known branches
      Only use double quotes on Windows

Mark Levedahl (6):
      gitk: Make selection highlight color configurable
      gitk: Update fontsize in patch / tree list
      gitk: Allow specifying tabstop as other than default 8 characters.
      gitweb.perl - Optionally send archives as .zip files
      gitk: Use a spinbox for setting tabstop settings
      gitk: Update selection background colorbar in prefs dialog

Martin Koegler (5):
      builtin-pack-objects: don't fail, if delta is not possible
      git-pack-objects: cache small deltas between big objects
      builtin-pack-object: cache small deltas
      diff-delta: use realloc instead of xrealloc
      gitweb: Handle non UTF-8 text better

Martin Waitz (1):
      rename dirlink to gitlink.

Matthias Lederhofer (18):
      add git-filter-branch to .gitignore
      make clean should remove all the test programs too
      filter-branch: prevent filters from reading from stdin
      chmod +x git-filter-branch.sh
      rev-parse: document --is-inside-git-dir
      rev-parse: introduce --is-bare-repository
      test git rev-parse
      introduce GIT_WORK_TREE to specify the work tree
      Use new semantics of is_bare/inside_git_dir/inside_work_tree
      extend rev-parse test for --is-inside-work-tree
      test GIT_WORK_TREE
      setup_git_directory: fix segfault if repository is found in cwd
      filter-branch: always export GIT_DIR if it is set
      gitweb: change filename/directory name of snapshots
      make git barf when an alias changes environment variables
      make dist: include configure script in tarball
      ignore git-rebase--interactive
      getenv/setenv: use constants if available

Matthijs Melchior (1):
      Teach git-tag about showing tag annotations.

Michael Ellerman (2):
      gitview: Use new-style classes
      gitview: Define __slots__ for Commit

Michael Krelin (1):
      git-svn: honor ~/.subversion/ client cert file settings.

Michael S. Tsirkin (1):
      connect: display connection progress

Nanako Shiraishi (3):
      Cloning from a repo without "current branch"
      Add git-stash script
      Document git-stash

Nicolas Pitre (8):
      allow for undeltified objects not to be reused
      make "repack -f" imply "pack-objects --no-reuse-object"
      deprecate the new loose object header format
      fixes to output of git-verify-pack -v
      improve delta long block matching with big files
      update diff-delta.c copyright
      fix repack with --max-pack-size
      always start looking up objects in the last used pack first

Paul Mackerras (18):
      gitk: Use the -q flag to git checkout
      gitk: New infrastructure for working out branches & previous/next tags
      gitk: Don't try to list large numbers of tags or heads in the details pane
      gitk: Add some more comments to the optimize_rows procedure
      gitk: Improve the behaviour of the initial selection
      gitk: Implement a simple scheduler for the compute-intensive stuff
      gitk: Cope with commit messages with carriage-returns and initial blank lines
      gitk: Disable the head context menu entries for the checked-out branch
      gitk: Store ids in rowrangelist and idrowranges rather than row numbers
      gitk: New algorithm for drawing the graph lines
      gitk: Show local uncommitted changes as a fake commit
      gitk: Speed up the reading of references
      gitk: Get rid of the childlist variable
      gitk: Add a "reset branch to here" row context-menu operation
      gitk: Limit how often we change the canvas scrolling region
      gitk: Fix bug causing nearby tags/heads to sometimes not be displayed
      gitk: Improve handling of whitespace and special chars in filenames
      gitk: Add a progress bar to show progress while resetting

Petr Baudis (2):
      git-rev-list: Add regexp tuning options
      git-applymbox: Remove command

Pierre Habouzit (3):
      $EMAIL is a last resort fallback, as it's system-wide.
      Active_nr is unsigned, hence can't be < 0
      Missing statics.

Quy Tonthat (1):
      git.spec: RPM failed, looking for wrong files.

Randal L. Schwartz (1):
      Add test-sha1 to .gitignore.

René Scharfe (3):
      t5000: silence unzip availability check
      diffcore-rename: don't change similarity index based on basename equality
      diff: round down similarity index

Robin Rosenberg (1):
      Add option to cvs update before export

Sam Vilain (3):
      git-svn: avoid string eval for defining functions
      git-svn: use git-log rather than rev-list | xargs cat-file
      git-svn: cache max revision in rev_db databases

Shawn O. Pearce (24):
      Teach git-describe how to run name-rev
      Lazily open pack index files on demand
      Micro-optimize prepare_alt_odb
      Attempt to delay prepare_alt_odb during get_sha1
      git gui 0.8.0
      git-gui: GUI support for running 'git remote prune <name>'
      git-gui: Show the git-gui library path in 'About git-gui'
      git-gui: Enable verbose Tcl loading earlier
      git-gui: Provide fatal error if library is unavailable
      git-gui: Disable tearoff menus on Windows, Mac OS X
      git-gui: Allow users to rename branches through 'branch -m'
      git-gui: Allow users to delete remote branches
      git-gui: Expose the merge.diffstat configuration option
      Allow contrib new-workdir to link into bare repositories
      Test for recent rev-parse $abbrev_sha1 regression
      Simplify index access condition in count-objects, pack-redundant
      Ensure the pack index is opened before access
      Style nit - don't put space after function names
      git-gui: Internalize symbolic-ref HEAD reading logic
      git-gui: Quiet our installation process
      Avoid src:dst syntax as default bash completion for git push
      Document git-gui, git-citool as mainporcelain manual pages
      Teach bash how to complete +refspec on git-push
      Correct usages of sed in git-tag for Mac OS X

Simon Hausmann (223):
      Initial import of a python script to import changesets from Perforce into git.
      Added basic support for specifying the depot path to import from as well as the range of perforce changes.
      Slightly improved help usage output and made specifying the trailing slash for the depot path optional.
      Implemented basic support for converting the date of the perforce change to the git format. The timezone isn't correctly set up yet though.
      Some fixes to the timezone conversion between the date of a perforce change and the git commit.
      Speed up the import of individual files from Perforce into git by passing the output of "p4 print" directly to git fast-import. Also try to set the mode of the file in git correctly based on file type heuristics.
      Removed unused p4cat function and added helper function for the perforce python interface (p4Cmd).
      Changed the import mechanism to write to git fast-import through a pipe instead of having p4-fast-export write to stdout and let the caller connect it to git fast-import.
      Minor code cleanups and ported some p4 interfacing code over to the p4 python mode.
      Instead of parsing the output of "p4 users" use the python objects of "p4 -G users".
      Ported the remaining functions that parsed p4 shell output over to the p4 python interface.
      Avoid calling fstat for every imported file (slow!) and instead read the file data first into the python process and use the length of the bytes read for the size field of git fast-import.
      Permit calling p4-fast-export with a depot path that has the typical ... wildcard at the end.
      Fixed displaying import progress by calling flush on stdout.
      Create a git tag for every changeset imported from perforce.
      Fix file permissions of p4-fast-export.py to be executable.
      Started working on incremental imports from Perforce.
      Simplify the incremental import by elimination the need for a temporary import branch.
      Code cleanups, move the code to create a commit with fast-import into a separate function out of the main loop.
      Initial support for importing a directory from Perforce at a specified revision.
      Minor cleanups and print an error message of git fast-import if it fails.
      Fixed incremental imports by using the correct "from" command instead of "merge" with git fast-import.
      Make incremental imports easier to use by storing the p4 depot path after an import in .git/config and re-using it when we're invoked again later.
      Make specifying the revision ranges more convenient.
      Fix calculation of the newest imported revision for #head imports.
      Catch io exceptions from git fast-import again and print the error message.
      Made the name of the git branch used for the perforce import configurable through a new --branch=<name> commandline option.
      Added a little helper script to debug the output of the p4 python interface.
      Minor code cleanups.
      Avoid the excessive use of git tags for every perforce change and instead just create one git tag for the last imported change.
      Changed the default git import branch from "p4" to "master".
      Added a little helper script to remove unused tags from the perforce import.
      Create lightweight git tags (using the "reset" trick) for the incremental import instead of full-blown ones. Also fix parsing the output of git name-rev for figuring out the last imported p4 change number.
      Cleanups, remove unused variable.
      Code cleanups.
      Started work on p4 branch detection (experimental!).
      More fixes in heuristic p4 branch detection based on common path components.
      After marking a p4 branch as merged don't ever merge it in git again.
      Set git fast-import marks for every imported change for future use.
      When trying to map p4 integrations to git merges just record it as a single merge with the newest p4 change as secondary parent.
      Make it possible to specify the p4 changes to import through a text file (for debugging) and made various improvements to the branch/merge heuristic detection.
      Use sets.Set() instead of set() to run also with older versions of Python.
      Fix single-branch imports by skipping the branch/merge detection correctly.
      Added p4 delete behavioural emulation as todo item.
      Added support for --silent so that p4-fast-export can be called from cronjobs.
      More work in --silent support.
      Don't print a plain newline at the end of the execution (avoids bogus cron error mails).
      Adjust the output parsing of git name-rev to handle the output of the latest git version.
      Work in progress on detecting branches.
      Changed --known-branches to take a file as argument instead of a comma separated list.
      Fixed p4-debug file extension.
      Make the p4 data/command cache configurable through the --cache-debug commandline option.
      Minor code cleanups.
      More code cleanups and preparations for more branch detection heuristics.
      More work on branch detection by implementing changeIsBranchMerge().
      Reduce the number of false "merges" by skipping "branch from" entries in the integrated output as well as by ignoring integrations of future (newer) changes.
      Split up the cache commandline options into (command) cache and data cache.
      First version of a new script to submit changes back to perforce from git repositories.
      Fix git-dir option and allow reading log substitutions from a file
      Lots of bugfixes to p4-git-sync.
      Automatically operate on a temporary branch, needed for cherry-pick to work when applying changes to
      Be nice and use /usr/bin/env python for the git-p4 scripts
      Ignore Apple resource files when importing from perforce to git.
      Auto-detect the current git branch before submitting back to perforce.
      Use p4 revert ... instead of revert -a ... after submitting, to make sure the p4 checkout is clean.
      Default to interactive syncing
      Improved the git dir detection.
      Pass the right number of arguments to commit, fixes single-branch imports.
      Start moving the git-p4 tools into one single script.
      Provide a little bit of help description for the git-p4 "tools".
      First (untested) attempt at migrating p4-git-sync into the final git-p4 script
      Part of the code is copyright by Trolltech ASA.
      sync-to-perforce is now called submit and fixed the gitdir check a little bit
      Completely untested "merge" of p4-fast-export.py into git-p4.py
      Added missing "self"s to make the script evaluate correctly.
      Fixed the initial version import by getting the file index correct by correctly skipping deleted files.
      Removed p4-fast-export and p4-git-sync as they've been integrated into git-p4 now.
      Start of the git-p4 documentation.
      Documentation enhancements.
      Added experimental but super-fast --apply-as-patch option to git-p4 submit
      Fix support for deletions in git-p4 submit when using --apply-as-patch by filtering out deletions in the diff-tree output.
      Made --apply-as-patch the default for git-p4 submit as it's significantly faster.
      Make it possible to invoke git-p4 from within subdirectories of a git working tree.
      Don't show the submit template and the diff first in less but show it in $editor right away
      Removed the .py extension from git-p4 as it's annoying to type every time.
      Changed the format of the imported log message slightly, so that it's easier to parse again.
      Changed the default branch for imports from "master" to "p4"
      Added some helper function(s) to parse the depot path and change number from the log message
      Helper function to check the existance of a revision
      Set the default branch in run, not in the constructor
      Brand new smart incremental import that doesn't need tags or git repo-config :)
      Make it possible to run git-p4 submit from within the git repository
      Use the new incremental import style by default
      Different versions of p4 have different output for the where command ;(
      Minor cosmetic fixlet for the git-p4 submit sync question.
      Prefer git command over git-command.
      Don't try to parse any options with git-p4 debug but pass it straight on to p4
      git-p4 debug doesn't need a git repository
      Added support for mapping p4 labels to git tags
      Fix variable usage in tag import
      Fix the docs for git-p4 submit and turn git-p4 submit --master=foo into simply git-p4 submit mytopicbranch.
      Fix "compilation" :)
      Clean up python class names.
      Added git-p4 rebase convenience
      Provide a tree summary after git-p4 rebase
      Turn off potentially slow label detection by default
      Honor --silent for labels
      Added git-p4 clone convenience command
      Fix file determination for #head imports
      fix variable usage (oops)
      Added a simple example of usage to the "documentation" :)
      Allow for convenient rebasing after git-p4 submit
      Print an error message of some sort if git fast-import fails.
      Fix the timezone formatting. Now qgit also displays (parses) it correctly.
      Removed the old patch apply code from git-p4 submit.
      Slightly improved formatting of the raw_input questions.
      A new attempt at fixing the child-fast-import-process-not-finished race condition in the clone command
      Handle patch errors in git-p4 submit better.
      Doc cleanups.
      Micro cleanup
      cleanup, renamed self.globalPrefix to self.depotPath
      Cleanup, removed the old tagging code
      Document some implementation details, for the curious... :)
      Use the subprocess module instead of popen2 to make it work on Windows.
      Added a little .bat wrapper from Marius
      Make sure all popen calls use binary mode (for Windows) and
      Make submitting work on Windows.
      Converted to unix newlines
      Fix git-p4 clone //depot/project (head import)
      Make git-p4 work with bare repositories.
      Added the possibility of skipping patches during git-p4 submit
      Give a better hint if git-p4 submit fails
      Fix calling git-p4 rebase from within a subdirectory (git rebase wants to be in toplevel)
      A little todo note before I forget it :), based on a suggestion from Lars.
      Fixing syncing (gitdir discovery / cd) for bare repositories
      Always pass a sha1 for the initial parent so that git-fast-import doesn't think it's creating a new branch from itself. It's a sensible error in general but in the case of incremental imports we have to apply force :)
      Clean up code duplication for revision parsing and fix previous commit to not import into remotes/p4 (yet!).
      Removed cleantags command. It doesn't have any meaning anymore.
      Removed ancient and unused code to find the last imported revision from previous imports to use for the current import by looking at the p4 tags. The current approach of using the log message works better.
      Create the origin based import branch using git update-ref instead of git branch so that it's possible to have the import branch in refs/remotes.
      Changed the default p4 import branch to be refs/remotes/p4/{HEAD,master} instead of refs/heads/p4.
      Bite the bullet and automatically convert old style refs/heads/p4 repositories to the new style refs/remotes/p4 branching.
      Added support for git-p4 sync/rebase --with-origin. See git-p4.txt for details :)
      Removed todo item that is implemented :)
      Fix branch setup after initial clone.
      Removed unused cache variables.
      Started rewriting the branch detection, based on "p4 branches" and "p4 branch -o foo".
      Give branches a nice project prefix and don't bail out on clone if we failed to detect the master branch.
      More work on the incremental importing of multiple branches. Improved error detection by checking the exit code of git-fast-import.
      Cleanup/speed up the branch<> file split and removed change range limitation that I added for debugging (oops).
      More cleanups and speedups for labels and branches
      Removed unused variable, more cleanups
      Cache the output of "p4 users" for faster syncs on high latency links.
      Fix gitdir not being set when cloning. Needed for writing the p4 users cache.
      Oops, not only /set/ gitdir on clone, also set it /correctly/ :)
      Use git format-patch and git apply --apply when extracting patches from git and applying them to a Perforce checkout. This should make it possible to apply git commits with binary files that cannot be handled by path.
      Added support for git-p4 submit --direct (experimental)
      Specifying --detect-branches is now only needed for the initial clone/sync. Afterwards it's turned on implicitly if more p4 branches than remotes/p4/master are found.
      Had an idea for debugging, record it :)
      Another (potentially life-saving) idea for submit --direct
      Improved output for multi branch imports and noted another little todo item
      Fix conversion from old style heads/p4 to remotes/p4/master
      Fix error detection with git-p4 submit when the requested depot path is not in the client view.
      Fix git symbolic-ref warning on initial clone
      Detect with git-p4 submit --direct when there are no changes in the working directory
      Make git-p4 submit --direct safer by also creating a git commit
      Added a rollback command for debugging. It sets back the heads of the p4 branches to the specified p4 change number or earlier.
      Fix branch detection in multi-branch imports
      Fixes for rollback, delete branches that did not exist at the specified p4 change
      Added support for importing multiple branches into refs/heads instead of just refs/remotes using --import-local. Needs some further microfix but seems to work otherwise.
      Added support for --max-changes=<count> to ease import debugging
      Use refs/heads/* instead of refs/heads/p4/* for local imports
      Doc updates
      Avoid calling git symbolic-ref refs/heads/p4//HEAD (double slash)
      Make rollback work with locally imported branches
      Don't make len(p4Cmd("p4 changes -m 1 //foo/...")) == 0 succeed when the p4 command itself failed.
      Oops, fill the /list/ correct with the p4 exit code.
      Catch p4 errors in rollback early enough (before deleting refs!)
      Fix p4 execution in git-p4 rollback.
      Fix multi-branch import with --silent.
      Load the user map from p4 only once at run-time.
      Fix creating the remotes/p4 branches based on origin/* for the multi-branch import
      Forgot to remove this return statement from debugging
      Added support for --with-origin with multi-branch imports
      Oops, fix --with-origin to /really/ also call git fetch :)
      Avoid creating non-p4 branches in remotes/p4 off of remotes/origin
      Make git-p4 work with packed refs (don't use os.path.exists to check for the existance of a ref)
      Make --with-origin also work without origin :)
      Make --with-origin the default for syncing.
      Shortcut the case where we have no origin branch
      Forgot to remove this TODO item when I made --with-origin the default :)
      Added git-p4 submit --trust-me-like-a-fool for the adventurous users :)
      Fix creation of refs/remotes/p4/HEAD symbolic ref
      Fix my email address, this isn't really KDE related :)
      In *_pipe print the command that failed if it fails. Fixed old calls to mypopen.
      Fix typo in listExistingP4Branches that broke sync.
      Fix support for "depot-path" in older git-p4 imports
      Fix common path "calculation" from logs of multiple branches. Need to use min instead of max for prev/cur to avoid out-of-bounds string access. Also treat "i" as index of the last match instead of a length because in case of a complete match of the two strings i was off by one.
      Don't attempt to set the initialParent on multi-branch imports (useless). At some point the code paths should be unified, but for now I need a working git-p4 :)
      Hack to make the multi-branch import work again with self.depotPaths now that self.depotPath is gone
      Fix git-p4 rebase
      Fix git-p4 submit
      Fix depot-path determination for git-p4 submit
      Make clone behave like git clone by default again.
      Make git-p4 submit detect the correct reference (origin) branch when working with multi-branch imports.
      Only get the expensive branch mapping from the p4 server when not syncing with the help of an origin remote (which we instead then use to get new branches from).
      Fixed the check to make sure to exclude the HEAD symbolic refs when updating the remotes/p4 branches from origin.
      Fix updating/creating remotes/p4/* heads from origin/p4/*
      Fix project name guessing
      Fix depot-paths encoding for multi-path imports (don't split up //depot/path/foo)
      Fix support for explicit disabling of syncing with the origin
      Write out the options tag in the log message of imports only if we actually have options
      Provide some information for single branch imports where the commits go
      Mention remotes/p4/master also in the documentation.
      git-p4 submit: Fix missing quotes around p4 commands to make them work with spaces in filenames
      Moved the code from git-p4 submit to figure out the upstream branch point into a separate helper method.
      Fix git-p4 rebase to detect the correct upstream branch instead of unconditionally always rebasing on top of remotes/p4/master
      Fix initial multi-branch import.
      Fix the branch mapping detection to be independent from the order of the "p4 branches" output.
      Warn about conflicting p4 branch mappings and use the first one found.
      Added git-p4 branches command that shows the mapping of perforce depot paths to imported git branches.
      Make it possible to specify the HEAD for the internal findUpstreamBranchPoint function.
      git-new-workdir: Fix shell warning about operator == used with test.

Sven Verdoolaege (4):
      git-update-ref: add --no-deref option for overwriting/detaching ref
      t9500: skip gitweb tests if perl version is too old
      git-submodule: provide easy way of adding new submodules
      git-clone: fetch possibly detached HEAD over dumb http

Theodore Ts'o (4):
      Add --aggressive option to 'git gc'
      Fix minor grammatical typos in the git-gc man page
      git-mergetool: Make default selection of merge-tool more intelligent
      Don't fflush(stdout) when it's not helpful

İsmail Dönmez (1):
      Change default man page path to /usr/share/man


Version v1.5.2.5; changes since v1.5.2.4:
-----------------------------------------

Christian Couder (1):
      rev-list --bisect: fix allocation of "int*" instead of "int".

Julian Phillips (1):
      Force listingblocks to be monospaced in manpages

Junio C Hamano (4):
      Do not expect unlink(2) to fail on a directory.
      setup.c:verify_non_filename(): don't die unnecessarily while disambiguating
      Fix "git add -u" data corruption.
      GIT 1.5.2.5

Linus Torvalds (1):
      apply: remove directory that becomes empty by renaming the last file away

Salikh Zakirov (1):
      git-add -u paths... now works from subdirectory


Version v1.5.2.4; changes since v1.5.2.3:
-----------------------------------------

Andy Parkins (2):
      Make git-prune submodule aware (and fix a SEGFAULT in the process)
      user-manual: grammar and style fixes

Gerrit Pape (1):
      git-gui: properly popup error if gitk should be started but is not installed

J. Bruce Fields (2):
      tutorial: Fix typo
      user-manual: more explanation of push and pull usage

Jim Meyering (1):
      Don't smash stack when $GIT_ALTERNATE_OBJECT_DIRECTORIES is too long

Johannes Schindelin (3):
      diff --no-index: fix --name-status with added files
      glossary: add 'reflog'
      Fix "apply --reverse" with regard to whitespace

Junio C Hamano (2):
      Teach read-tree 2-way merge to ignore intermediate symlinks
      GIT 1.5.2.4

Michael Hendricks (1):
      Correctly document the name of the global excludes file configuration

Miklos Vajna (1):
      Document -<n> for git-format-patch

Shawn O. Pearce (10):
      git-gui: Unlock the index when cancelling merge dialog
      git-gui: Don't bind F5/M1-R in all windows
      git-gui: Bind M1-P to push action
      git-gui: Include a Push action on the left toolbar
      git-gui: Ensure windows shortcuts always have .bat extension
      git-gui: Skip nicknames when selecting author initials
      git-gui: Correct ls-tree buffering problem in browser
      git-gui: Don't linewrap within console windows
      Clarify documentation of fast-import's D subcommand
      git-gui: Work around bad interaction between Tcl and cmd.exe on ^{tree}

William Pursell (1):
      user-manual: fix directory name in git-archive example


Version v1.5.2.3; changes since v1.5.2.2:
-----------------------------------------

Frank Lichtenheld (2):
      config: Complete documentation of --get-regexp
      config: Change output of --get-regexp for valueless keys

Junio C Hamano (1):
      GIT 1.5.2.3

Linus Torvalds (1):
      Fix zero-object version-2 packs

Matt Kraai (1):
      Correct the name of NO_R_TO_GCC_LINKER in the comment describing it.

Sam Vilain (3):
      cleanup merge-base test script
      repack: improve documentation on -a option
      git-remote: document -n

Shawn O. Pearce (5):
      git-gui: Correctly install to /usr/bin on Cygwin
      git-gui: Bind Tab/Shift-Tab to cycle between panes in blame
      git-gui: Don't require $DISPLAY just to get --version
      git-gui: Don't nice git blame on MSYS as nice is not supported
      git-gui: Don't require a .pvcsrc to create Tools/Migrate menu hack

Sven Verdoolaege (1):
      Ignore submodule commits when fetching over dumb protocols


Version v1.5.2.2; changes since v1.5.2.1:
-----------------------------------------

Alex Riesen (3):
      Make the installation target of git-gui a little less chatty
      Fix clone to setup the origin if its name ends with .git
      Add a local implementation of hstrerror for the system which do not have it

Gerrit Pape (1):
      Fix typo in remote branch example in git user manual

J. Bruce Fields (4):
      user-manual: quick-start updates
      user-manual: add a missing section ID
      Documentation: user-manual todo
      tutorial: use "project history" instead of "changelog" in header

Jakub Narębski (1):
      Generated spec file to be ignored is named git.spec and not git-core.spec

Johannes Schindelin (2):
      Move buffer_is_binary() to xdiff-interface.h
      merge-recursive: refuse to merge binary files

Johannes Sixt (1):
      Accept dates before 2000/01/01 when specified as seconds since the epoch

Junio C Hamano (6):
      checkout: do not get confused with ambiguous tag/branch names
      $EMAIL is a last resort fallback, as it's system-wide.
      git-branch --track: fix tracking branch computation.
      Avoid diff cost on "git log -z"
      Documentation: adjust to AsciiDoc 8
      GIT 1.5.2.2

Kristian Høgsberg (1):
      Unquote From line from patch before comparing with given from address.

Luiz Fernando N. Capitulino (1):
      git-cherry: Document 'limit' command-line option

Matthijs Melchior (1):
      New selection indication and softer colors

Michael Milligan (1):
      git-cvsimport: Make sure to use $git_dir always instead of .git sometimes

Sam Vilain (2):
      fix documentation of unpack-objects -n
      Don't assume tree entries that are not dirs are blobs

Shawn O. Pearce (47):
      git-gui: Allow creating a branch when none exists
      git-gui: Allow as few as 0 lines of diff context
      git-gui: Don't quit when we destroy a child widget
      git-gui: Attach font_ui to all spinbox widgets
      git-gui: Verify Tcl/Tk is new enough for our needs
      Revert "Make the installation target of git-gui a little less chatty"
      git-gui: Add a 4 digit commit abbreviation to the blame viewer
      git-gui: Cleanup blame::new widget initialization
      git-gui: Remove empty blank line at end of blame
      git-gui: Improve the coloring in blame viewer
      git-gui: Simplify consecutive lines that come from the same commit
      git-gui: Use arror cursor in blame viewer file data
      git-gui: Display tooltips in blame viewer
      git-gui: Highlight the blame commit header from everything else
      git-gui: Remove unnecessary reshow of blamed commit
      git-gui: Cleanup minor style nit
      git-gui: Space the commit group continuation out in blame view
      git-gui: Show author initials in blame groups
      git-gui: Allow the user to control the blame/commit split point
      git-gui: Display a progress bar during blame annotation gathering
      git-gui: Allow digging through history in blame viewer
      git-gui: Combine blame groups only if commit and filename match
      git-gui: Show original filename in blame tooltip
      git-gui: Use a label instead of a button for the back button
      git-gui: Clip the commit summaries in the blame history menu
      git-gui: Remove the loaded column from the blame viewer
      git-gui: Remove unnecessary space between columns in blame viewer
      git-gui: Use lighter colors in blame view
      git-gui: Make the line number column slightly wider in blame
      git-gui: Automatically expand the line number column as needed
      git-gui: Remove unused commit_list from blame viewer
      git-gui: Better document our blame variables
      git-gui: Cleanup redundant column management in blame viewer
      git-gui: Switch internal blame structure to Tcl lists
      git-gui: Label the uncommitted blame history entry
      git-gui: Rename fields in blame viewer to better descriptions
      git-gui: Display the "Loading annotation..." message in italic
      git-gui: Run blame twice on the same file and display both outputs
      git-gui: Display both commits in our tooltips
      git-gui: Jump to original line in blame viewer
      git-gui: Use three colors for the blame viewer background
      git-gui: Improve our labeling of blame annotation types
      git-gui: Favor the original annotations over the recent ones
      git-gui: Changed blame header bar background to match main window
      git-gui: Include 'war on whitespace' fixes from git.git
      git-gui: Give amend precedence to HEAD over MERGE_MSG
      git-gui: Save geometry before the window layout is damaged

William Pursell (1):
      Make command description imperative statement, not third-person present.


Version v1.5.2.1; changes since v1.5.2:
---------------------------------------

Andy Parkins (2):
      Fix mishandling of $Id$ expanded in the repository copy in convert.c
      Add test case for $Id$ expanded in the repository

Carlos Rica (1):
      fix memory leak in parse_object when check_sha1_signature fails

Eric Wong (1):
      git-svn: avoid md5 calculation entirely if SVN doesn't provide one

Fernando J. Pereda (1):
      Use PATH_MAX instead of TEMPFILE_PATH_LEN

Frank Lichtenheld (7):
      t1300: Add tests for git-config --bool --get
      git-config: Correct asciidoc documentation for --int/--bool
      cvsserver: Correct inetd.conf example in asciidoc documentation
      cvsserver: Note that CVS_SERVER can also be specified as method variable
      cvsserver: Fix some typos in asciidoc documentation
      git-config: Various small fixes to asciidoc documentation
      git-config: Improve documentation of git-config file handling

Jakub Narębski (3):
      Documentation: Clean up links in GIT Glossary
      Replace the last 'dircache's by 'index'
      Documentation: Add definition of "evil merge" to GIT Glossary

James Bowes (1):
      Documentation: fix git-config.xml generation

James Y Knight (1):
      Fix git-svn to handle svn not reporting the md5sum of a file, and test.

Jeff King (3):
      git-am: use printf instead of echo on user-supplied strings
      More echo "$user_message" fixes.
      Documentation: robustify asciidoc GIT_VERSION replacement

Jerald Fitzjerald (1):
      decode_85(): fix missing return.

Jim Meyering (1):
      git-daemon: don't ignore pid-file write failure

Johan Herland (1):
      Fix stupid typo in lookup_tag()

Johannes Schindelin (2):
      SubmittingPatches: mention older C compiler compatibility
      git-status: respect core.excludesFile

Jonas Fonseca (2):
      branch: fix segfault when resolving an invalid HEAD
      Update bash completion to ignore some more plumbing commands

Josh Triplett (1):
      Create a new manpage for the gitignore format, and reference it elsewhere

Junio C Hamano (6):
      annotate: make it work from subdirectories.
      git-cvsserver: fix disabling service via per-method config
      name-rev: tolerate clock skew in committer dates
      git-commit: use printf '%s\n' instead of echo on user-supplied strings
      Add tests for the last two fixes.
      GIT 1.5.2.1

Kristian Høgsberg (1):
      Use =20 when rfc2047 encoding spaces.

Linus Torvalds (1):
      fix signed range problems with hex conversions

Nguyễn Thái Ngọc Duy (1):
      Makefile: Remove git-fsck and git-verify-pack from PROGRAMS

Paolo Bonzini (1):
      Document branch.autosetupmerge.

Shawn O. Pearce (12):
      git-gui: Tighten internal pattern match for lib/ directory
      Refactor fast-import branch creation from existing commit
      Fix possible coredump with fast-import --import-marks
      Hide the plumbing diff-{files,index,tree} from bash completion
      Teach bash completion about git-shortlog
      Remove a duplicate --not option in bash completion
      Update bash completion header documentation
      Teach bash completion about 'git remote update'
      Teach bash completion about recent log long options
      Update bash completion for git-config options
      Correct key bindings to Control-<foo>
      git-gui: Guess our share/git-gui/lib path at runtime if possible

Simon Hausmann (2):
      fast-import: Fix uninitialized variable
      fast-import: Fix crash when referencing already existing objects

Steffen Prohaska (1):
      user-manual: fixed typo in example

Stephan Springl (1):
      Use git-for-each-ref to check whether the origin branch exists.

Sven Verdoolaege (1):
      unpack-trees.c: verify_uptodate: remove dead code


Version v1.5.2; changes since v1.5.2-rc3:
-----------------------------------------

Alex Riesen (1):
      Allow fetching references from any namespace

Andy Parkins (2):
      Use $Id$ as the ident attribute keyword rather than $ident$ to be consistent with other VCSs
      Fix crlf attribute handling to match documentation

Andy Whitcroft (1):
      git name-rev writes beyond the end of malloc() with large generations

Eric Wong (6):
      git-svn: don't drop the username from URLs when dcommit is run
      git-svn: clean up caching of SVN::Ra functions
      git-svn: fix segfaults due to initial SVN pool being cleared
      git-svn: don't attempt to minimize URLs by default
      git-svn: avoid crashing svnserve when creating new directories
      git-svn: don't minimize-url when doing an init that tracks multiple paths

Frank Lichtenheld (5):
      cvsserver: Limit config parser to needed options
      cvsserver: Don't send mixed messages to clients
      builtin-log.c: Fix typo in comment
      Documentation: format-patch has no --mbox option
      git-am: Clean up the asciidoc documentation

J. Bruce Fields (14):
      user-manual: revise birdseye-view chapter
      glossary: expand and clarify some definitions, prune cross-references
      user-manual: move quick-start to an appendix
      Documentation: remove howto's now incorporated into manual
      user-manual: move howto/make-dist.txt into user manual
      user-manual: move howto/using-topic-branches into manual
      user-manual: add a "counting commits" example
      user-manual: introduce git
      user-manual: listing commits reachable from some refs not others
      user-manual: reorganize public git repo discussion
      tutorials: add user-manual links
      tutorial: revise index introduction
      user-manual: discourage shared repository
      user-manual: finding commits referencing given file content

Jakub Narębski (10):
      gitweb: Test if $from_id and $to_id are defined before comparison
      gitweb: Check if requested object exists
      gitweb: Fix "Use of unitialized value" warnings in empty repository
      Documentation: Split description of pretty formats of commit log
      gitweb: Add a few comments about %feature hash
      gitweb: Do not use absolute font sizes
      gitweb: Separate search regexp from search text
      gitweb: Empty patch for merge means trivial merge, not no differences
      gitweb: Fix error in git_patchset_body for deletion in merge commit
      gitweb: Fix "Use of uninitialized value" warning in git_feed

Jan Hudec (2):
      Updated documentation of hooks in git-receive-pack.
      Minor fixup to documentation of hooks in git-receive-pack.

Jeff King (3):
      git-add: allow path limiting with -u
      Documentation/git-add: clarify -u with path limiting
      format-patch: add MIME-Version header when we add content-type.

Johan Herland (3):
      Fix signedness on return value from xread()
      Ensure return value from xread() is always stored into an ssize_t
      user-manual: Add section on ignoring files

Johannes Schindelin (2):
      import-tars: Use the "Link indicator" to identify directories
      Add a birdview-on-the-source-code section to the user manual

Junio C Hamano (17):
      Minor copyediting on Release Notes for 1.5.2
      Add has_symlink_leading_path() function.
      apply: do not get confused by symlinks in the middle
      read-tree -m -u: avoid getting confused by intermediate symlinks.
      t9400: Use the repository config and nothing else.
      checkout: allow detaching to HEAD even when switching to the tip of a branch
      git-config: do not forget seeing "a.b.var" means we are out of "a.var" section.
      Link to HTML version of external doc if available
      Fix git-clone buglet for remote case.
      Prepare for 1.5.1.5 Release Notes
      gitweb: fix another use of undefined value
      GIT v1.5.1.5
      Add link to 1.5.1.5 release notes.
      Documentation/git.txt: Update links to older documentation pages.
      GIT 1.5.1.6
      git-cvsserver: exit with 1 upon "I HATE YOU"
      GIT 1.5.2

Lars Hjemli (1):
      git-archive: don't die when repository uses subprojects

Marco Costalba (1):
      Fix an unmatched comment end in arm/sha1_arm.S

Matthias Kestenholz (2):
      Documentation: Added [verse] to SYNOPSIS where necessary
      Documentation: Reformatted SYNOPSIS for several commands

Matthieu Castet (1):
      Remove stale non-static-inline prototype for tree_entry_extract()

Michael Hendricks (2):
      git-send-email: allow leading white space on mutt aliases
      Document core.excludesfile for git-add

Petr Baudis (5):
      gitweb: Normalize searchbar font size
      gitweb: Add support for grep searches
      gitweb: Allow arbitrary strings to be dug with pickaxe
      Documentation: git-rev-list's "patterns"
      gitweb: Remove redundant $searchtype setup

Quy Tonthat (2):
      RPM spec: include files in technical/ to package.
      Documentation/branch: fix small typo in -D example

René Scharfe (1):
      git-archive: convert archive entries like checkouts do

Shawn O. Pearce (1):
      git-gui: Gracefully handle bad TCL_PATH at compile time

Steffen Prohaska (4):
      tiny fix in documentation of git-clone
      git-config: test for 'do not forget "a.b.var" ends "a.var" section'.
      Optimized cvsexportcommit: calling 'cvs status' once instead of once per touched file.
      Fixed link in user-manual


Version v1.5.2-rc3; changes since v1.5.2-rc2:
---------------------------------------------

Alex Riesen (1):
      Use GIT_OBJECT_DIR for temporary files of pack-objects

Amos Waterland (1):
      wcwidth redeclaration

Frank Lichtenheld (1):
      cvsserver: Add test cases for git-cvsserver

Gerrit Pape (1):
      gitweb: choose appropriate view for file type if a= parameter missing

J. Bruce Fields (7):
      user-manual: more discussion of detached heads, fix typos
      user-manual: add section ID's
      user-manual: clean up fast-forward and dangling-objects sections
      user-manual: fix .gitconfig editing examples
      user-manual: miscellaneous editing
      user-manual: stop deprecating the manual
      user-manual: fix clone and fetch typos

Jakub Narębski (6):
      gitweb: Add parsing of raw combined diff format to parse_difftree_raw_line
      gitweb: Add combined diff support to git_difftree_body
      gitweb: Add combined diff support to git_patchset_body
      gitweb: Make it possible to use pre-parsed info in git_difftree_body
      gitweb: Show combined diff for merge commits in 'commitdiff' view
      gitweb: Show combined diff for merge commits in 'commit' view

Jari Aalto (1):
      SPECIFYING RANGES typo fix: it it => it is

Jeff King (1):
      Documentation: don't reference non-existent 'git-cvsapplycommit'

Johannes Sixt (1):
      git-gui: Call changes "Staged" and "Unstaged" in file list titles.

Junio C Hamano (10):
      diff: release blobs after generating textual diff.
      diff.c: do not use a separate "size cache".
      diff -M: release the preimage candidate blobs after rename detection.
      diff -S: release the image after looking for needle in it
      GIT v1.5.1.4
      Update documentation links to point at 1.5.1.4
      t9400: skip cvsserver test if Perl SQLite interface is unavailable
      git-clone: don't get fooled by $PWD
      .mailmap: add some aliases
      GIT v1.5.2-rc3

Matthieu Moy (2):
      Document git add -u introduced earlier.
      Added a reference to git-add in the documentation for git-update-index

Michael Hendricks (1):
      Document 'git-log --decorate'

Michael Spang (3):
      dir.c: Omit non-excluded directories with dir->show_ignored
      t7300: Basic tests for git-clean
      Fix minor documentation errors

Paul Mackerras (1):
      gitk: Allow user to choose whether to see the diff, old file, or new file

Petr Baudis (2):
      Git.pm: config_boolean() -> config_bool()
      gitweb: Do not use absolute font sizes

Quy Tonthat (2):
      Add howto files to rpm packages.
      Added new git-gui library files to rpm spec

Richard P. Curnow (2):
      Fix documentation of tag in git-fast-import.txt
      Fix documentation of tag in git-fast-import.txt

Shawn O. Pearce (32):
      git-gui: Correctly handle UTF-8 encoded commit messages
      git-gui: Allow spaces in path to 'wish'
      git-gui: Include the subject in the status bar after commit
      git-gui: Warn users before making an octopus merge
      git-gui: Correct line wrapping for too many branch message
      git-gui: Cleanup common font handling for font_ui
      git-gui: Use option database defaults to set the font
      git-gui: Refactor to use our git proc more often
      git-gui: Track our own embedded values and rebuild when they change
      Properly handle '0' filenames in import-tars
      git-gui: Refactor into multiple files to save my sanity
      git-gui: Move console procs into their own namespace
      git-gui: Allow vi keys to scroll the diff/blame regions
      git-gui: Move merge support into a namespace
      git-gui: Show all possible branches for merge
      git-gui: Include commit id/subject in merge choices
      git-gui: Use vi-like keys in merge dialog
      Remove duplicate exports from Makefile
      git-gui: Allow shift-{k,j} to select a range of branches to merge
      git-gui: Define a simple class/method system
      git-gui: Convert browser, console to "class" format
      git-gui: Don't attempt to inline array reads in methods
      git-gui: Convert blame to the "class" way of doing things
      git-gui: Use prefix if blame is run in a subdirectory
      git-gui: Smarter command line parsing for browser, blame
      git-gui: Generate blame on uncommitted working tree file
      git-gui: Cleanup minor nits in blame code
      git-gui: Format author/committer times in ISO format
      Use .git/MERGE_MSG in cherry-pick/revert
      git-gui: Paperbag fix blame in subdirectory
      git gui 0.7.0
      Correct error message in revert/cherry-pick

Theodore Ts'o (2):
      Add pack.depth option to git-pack-objects.
      Increase pack.depth default to 50


Version v1.5.2-rc2; changes since v1.5.2-rc1:
---------------------------------------------

Alex Riesen (2):
      Small correction in reading of commit headers
      Handle return code of parse_commit in revision machinery

Alexandre Julliard (1):
      http-fetch: Disable use of curl multi support for libcurl < 7.16.

Arjen Laarhoven (1):
      Document 'opendiff' value in config.txt and git-mergetool.txt

Bryan Larsen (2):
      Allow PERL_PATH="/usr/bin/env perl"
      posix compatibility for t4200

Carl Worth (1):
      Mention version 1.5.1 in tutorial and user-manual

Dana L. How (1):
      Create pack-write.c for common pack writing code

Daniel Barkalow (1):
      Make xstrndup common

Frank Lichtenheld (1):
      cvsserver: Handle re-added files correctly

Jakub Narębski (1):
      diff format documentation: describe raw combined diff format

James Bowes (1):
      Documentation: fix typo in git-remote.txt

Johannes Schindelin (1):
      Teach import-tars about GNU tar's @LongLink extension.

Jonas Fonseca (1):
      git-tag(1): -v option is a subcommand; fix code block

Junio C Hamano (6):
      blame: use .mailmap unconditionally
      diff.c: fix "size cache" handling.
      blame: Notice a wholesale incorporation of an existing file.
      blame: -C -C -C
      Add test for blame corner cases.
      GIT v1.5.2-rc2

Karl Wiberg (2):
      Fix markup in git-svn man page
      Add --no-rebase option to git-svn dcommit

Linus Torvalds (1):
      Fix --boundary output

Martin Koegler (1):
      Fix compilation of test-delta

Shawn O. Pearce (3):
      Reuse fixup_pack_header_footer in index-pack
      Don't use seq in tests, not everyone has it
      Improve request-pull to handle non-rebased branches

İsmail Dönmez (1):
      gitweb: use decode_utf8 directly


Version v1.5.2-rc1; changes since v1.5.2-rc0:
---------------------------------------------

Adam Roben (5):
      Remove usernames from all commit messages, not just when using svmprops
      git-svn: Don't rely on $_ after making a function call
      git-svn: Ignore usernames in URLs in find_by_url
      git-svn: Added 'find-rev' command
      git-svn: Add 'find-rev' command

Alex Riesen (8):
      Fix handle leak in write_tree
      Avoid excessive rewrites in merge-recursive
      Add a test for merging changed and rename-changed branches
      Ignore merged status of the file-level merge
      Use strlcpy instead of strncpy in mailmap.c
      Fix read_mailmap to handle a caller uninterested in repo abbreviation
      Remove pointless calls to access(2) when checking for .mailmap
      Include mailmap.h in mailmap.c to catch mailmap interface changes

Andrew Ruder (8):
      Removing -n option from git-diff-files documentation
      Document additional options for git-fetch
      Update git-fmt-merge documentation
      Update git-grep documentation
      Update -L documentation for git-blame/git-annotate
      Update git-http-push documentation
      Update git-local-fetch documentation
      Update git-http-fetch documentation

Andy Parkins (3):
      post-receive-email example hook: fastforward should have been fast_forward
      post-receive-email example hook: detect rewind-only updates and output sensible message
      post-receive-email example hook: sed command for getting description was wrong

Brian Gernhardt (2):
      Reverse the order of -b and --track in the man page.
      Ignore all man sections as they are generated files.

Gerrit Pape (1):
      Documentation/git-reset.txt: suggest git commit --amend in example.

Jari Aalto (3):
      Clarify SubmittingPatches Checklist
      git.7: Mention preformatted html doc location
      send-email documentation: clarify --smtp-server

Johannes Schindelin (3):
      dir.c(common_prefix): Fix two bugs
      t4201: Do not display weird characters on the terminal
      import-tars: be nice to wrong directory modes

Josh Triplett (5):
      Add clean.requireForce option, and add -f option to git-clean to override it
      Fix typo in git-am: s/Was is/Was it/
      Create a sysconfdir variable, and use it for ETC_GITCONFIG
      Add missing reference to GIT_COMMITTER_DATE in git-commit-tree documentation
      Fall back to $EMAIL for missing GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAIL

Julian Phillips (1):
      http.c: Fix problem with repeated calls of http_init

Junio C Hamano (25):
      Move index-related variables into a structure.
      Make read-cache.c "the_index" free.
      Document "diff=driver" attribute
      t5302: avoid using tail -c
      t6030: grab commit object name as we go
      Build RPM with ETC_GITCONFIG=/etc/gitconfig
      Diff between two blobs should take mode changes into account now.
      t/test-lib.sh: Protect ourselves from common misconfiguration that exports CDPATH to the environment
      gitattributes documentation: clarify overriding
      applymbox & quiltimport: typofix.
      Add 'ident' conversion.
      Add 'filter' attribute and external filter driver definition.
      Add --date={local,relative,default}
      Start preparing for 1.5.1.3
      Do not barf on too long action description
      Update .mailmap with "Michael"
      Fix import-tars fix.
      blame -s: suppress author name and time.
      Split out mailmap handling out of shortlog
      Apply mailmap in git-blame output.
      Make macros to prevent double-inclusion in headers consistent.
      Make sure test-genrandom and test-chmtime are builtas part of the main build.
      Fix symlink handling in git-svn, related to PerlIO
      GIT v1.5.1.3
      GIT v1.5.2-rc1

Luiz Fernando N. Capitulino (5):
      remove_subtree(): Use strerror() when possible
      entry.c: Use const qualifier for 'struct checkout' parameters
      read_cache_from(): small simplification
      core-tutorial: minor fixes
      init_buffer(): Kill buf pointer

Martin Koegler (5):
      Add S_IFINVALID mode
      add get_sha1_with_mode
      add add_object_array_with_mode
      store mode in rev_list, if <tree>:<filename> syntax is used
      use mode of the tree in git-diff, if <tree>:<file> syntax is used

Michele Ballabio (1):
      git shortlog documentation: add long options and fix a typo

Nicolas Pitre (1):
      add file checkout progress

OGAWA Hirofumi (1):
      git-fetch: Fix "argument list too long"

Robin H. Johnson (10):
      Document --dry-run parameter to send-email.
      Prefix Dry- to the message status to denote dry-runs.
      Debugging cleanup improvements
      Change the scope of the $cc variable as it is not needed outside of send_message.
      Perform correct quoting of recipient names.
      Validate @recipients before using it for sendmail and Net::SMTP.
      Ensure clean addresses are always used with Net::SMTP
      Allow users to optionally specify their envelope sender.
      Document --dry-run and envelope-sender for git-send-email.
      Sanitize @to recipients.

Sami Farin (1):
      fast-import: size_t vs ssize_t

Shawn O. Pearce (4):
      Don't repack existing objects in fast-import
      Actually handle some-low memory conditions
      Don't allow empty pathnames in fast-import
      Catch empty pathnames in trees during fsck

Uwe Kleine-König (1):
      fix importing of subversion tars


Version v1.5.2-rc0; changes since v1.5.1.6:
-------------------------------------------

Alex Riesen (7):
      Fix passing of TCLTK_PATH to git-gui
      Fix t4201: accidental arithmetic expansion
      Fix permissions on test scripts
      Tests for core subproject support
      Simplify calling of CR/LF conversion routines
      Fix a typo in crlf conversion code
      Fix crash in t0020 (crlf conversion)

Alexandre Julliard (1):
      git.el: Add a commit description to the reflog.

Andrew Ruder (1):
      Add policy on user-interface changes

Andy Parkins (1):
      Show binary file size change in diff --stat

Aneesh Kumar K.V (1):
      gitview: annotation support

Brian Gernhardt (2):
      Remove unused WITH_OWN_SUBPROCESS_PY from RPM spec
      Remove case-sensitive file in t3030-merge-recursive.

Christian Couder (4):
      Bisect: teach "bisect start" to optionally use one bad and many good revs.
      Documentation: bisect: "start" accepts one bad and many good commits
      Bisect: simplify "bisect start" logging.
      Bisect: rename "t/t6030-bisect-run.sh" to "t/t6030-bisect-porcelain.sh".

Eric Wong (1):
      git-svn: bail out on incorrect command-line options

Eygene Ryabinkin (11):
      Add the WITH_P4IMPORT knob to the Makefile.
      Added git-p4 package to the list of git RPMs.
      Added correct Python path to the RPM specfile.
      NO_TCLTK
      Add --with-tcltk and --without-tcltk to configure.
      Rewrite Tcl/Tk interpreter path for the GUI tools.
      Eliminate checks of user-specified Tcl/Tk interpreter.
      Allow wish interpreter to be defined with TCLTK_PATH
      Teach git-gui to use the user-defined UI font everywhere.
      Improve look-and-feel of the git-gui tool.
      Do not break git-gui messages into multiple lines.

Fernando J. Pereda (1):
      Makefile: Add '+' to QUIET_SUBDIR0 to fix parallel make.

Frank Lichtenheld (16):
      cvsserver: Introduce new state variable 'method'
      cvsserver: Handle three part keys in git config correctly
      cvsserver: Allow to override the configuration per access method
      cvsserver: Make the database backend configurable
      cvsserver: Abort if connect to database fails
      Documentation: Replace @@GIT_VERSION@@ in documentation
      Documentation: Add version information to man pages
      cvsserver: Use DBI->table_info instead of DBI->tables
      cvsserver: Corrections to the database backend configuration
      cvsserver: Add asciidoc documentation for new database backend configuration
      gitweb: Allow forks with project list file
      gitweb: Allow configuring the default projects order and add order 'none'
      cvsserver: Allow to "add" a removed file
      cvsserver: Reword documentation on necessity of write access
      cvsserver: Document the GIT branches -> CVS modules mapping more prominently
      config.txt: Add gitcvs.db* variables

Jakub Narębski (2):
      gitweb: Whitespace cleanup - tabs are for indent, spaces are for align (3)
      gitweb: Quote hash keys, and do not use barewords keys

James Bowes (1):
      Document git-check-attr

Jim Meyering (1):
      sscanf/strtoul: parse integers robustly

Johannes Schindelin (1):
      Use print_wrapped_text() in shortlog

Julian Phillips (1):
      refs.c: add a function to sort a ref list, rather then sorting on add

Junio C Hamano (83):
      git-fetch: add --quiet
      t6002: minor spelling fix.
      git-rev-list: add --bisect-vars option.
      git-rev-list --bisect: optimization
      t6004: add a bit more path optimization test.
      rev-list --bisect: Fix "halfway" optimization.
      make the previous optimization work also on path-limited rev-list --bisect
      Documentation: unbreak user-manual.
      Optional Tck/Tk: ignore generated files.
      checkout: allow detaching to HEAD even when switching to the tip of a branch
      _GIT_INDEX_OUTPUT: allow plumbing to output to an alternative index file.
      git-read-tree --index-output=<file>
      add_cache_entry(): removal of file foo does not conflict with foo/bar
      unpack_trees.c: pass unpack_trees_options structure to keep_entry() as well.
      unpack-trees: get rid of *indpos parameter.
      Fix read-tree --prefix=dir/.
      Fix twoway_merge that passed d/f conflict marker to merged_entry().
      Fix switching to a branch with D/F when current branch has file D.
      RPM spec: include git-p4 in the list of all packages.
      Fix bogus error message from merge-recursive error path
      Propagate cache error internal to refresh_cache() via parameter.
      Rename internal function "add_file_to_cache" in builtin-update-index.c
      Rename static variable write_index to update_index in builtin-apply.c
      Rename add_file_to_index() to add_file_to_cache()
      git-bisect: modernization
      t6030: add a bit more tests to git-bisect
      git-bisect: allow bisecting with only one bad commit.
      git-push reports the URL after failing.
      git-push to multiple locations does not stop at the first failure
      A new merge stragety 'subtree'.
      Start 1.5.2 cycle by prepareing RelNotes for it.
      shortlog -w: make wrap-line behaviour optional.
      t1000: fix case table.
      Treat D/F conflict entry more carefully in unpack-trees.c::threeway_merge()
      merge-recursive: do not barf on "to be removed" entries.
      merge-recursive: handle D/F conflict case more carefully.
      t3030: merge-recursive backend test.
      git-fetch--tool pick-rref
      git-fetch: use fetch--tool pick-rref to avoid local fetch from alternate
      Add %m to '--pretty=format:'
      Refactor patch-id filtering out of git-cherry and git-format-patch.
      git-log --cherry-pick A...B
      Documentation: --cherry-pick
      Fix git {log,show,...} --pretty=email
      Add basic infrastructure to assign attributes to paths
      Define 'crlf' attribute.
      Teach 'diff' about 'diff' attribute.
      Fix 'crlf' attribute semantics.
      Fix 'diff' attribute semantics.
      Makefile: add patch-ids.h back in.
      attribute macro support
      Define a built-in attribute macro "binary".
      Change attribute negation marker from '!' to '-'.
      send-email: do not leave an empty CC: line if no cc is present.
      Make sure quickfetch is not fooled with a previous, incomplete fetch.
      Allow more than true/false to attributes.
      merge-recursive: separate out xdl_merge() interface.
      git-gui: Honor TCLTK_PATH if supplied
      Allow specifying specialized merge-backend per path.
      Add a demonstration/test of customized merge.
      Update draft release notes for 1.5.2 with accumulated changes.
      Custom low-level merge driver support.
      Allow the default low-level merge driver to be configured.
      Custom low-level merge driver: change the configuration scheme.
      Allow low-level driver to specify different behaviour during internal merge.
      Fix funny types used in attribute value representation
      Counto-fix in merge-recursive
      Simplify code to find recursive merge driver.
      Documentation: support manual section (5) - file formats.
      Update 'crlf' attribute semantics.
      Document gitattributes(5)
      git-add -u: match the index with working tree.
      Fix bogus linked-list management for user defined merge drivers.
      convert.c: restructure the attribute checking part.
      lockfile: record the primary process.
      Update documentation links to point at v1.5.1.2
      Documentation/Makefile: fix section (5) installation
      Update draft release notes for v1.5.2
      pack-objects: quickfix for permission modes.
      Fix 'quickfix' on pack-objects.
      Update tests not to assume that generated packfiles are writable.
      pack-objects: make generated packfile read-only
      Support 'diff=pgm' attribute

Linus Torvalds (24):
      Optimize directory listing with pathspec limiter.
      diff-lib: use ce_mode_from_stat() rather than messing with modes manually
      Avoid overflowing name buffer in deep directory structures
      Add 'resolve_gitlink_ref()' helper function
      Add "S_IFDIRLNK" file mode infrastructure for git links
      Teach "fsck" not to follow subproject links
      Teach core object handling functions about gitlinks
      Fix thinko in subproject entry sorting
      Teach directory traversal about subprojects
      Teach git-update-index about gitlinks
      Don't show gitlink directories when we want "other" files
      Teach git list-objects logic not to follow gitlinks
      Teach "git-read-tree -u" to check out submodules as a directory
      Fix gitlink index entry filesystem matching
      Teach git list-objects logic to not follow gitlinks
      Teach "git-read-tree -u" to check out submodules as a directory
      Fix some "git ls-files -o" fallout from gitlinks
      Expose subprojects as special files to "git diff" machinery
      Add a generic "object decorator" interface, and make object refs use it
      Add support for "commit name decorations" to log family of commands
      Use proper object allocators for unknown object nodes too
      Clean up object creation to use more common code
      Fix working directory errno handling when unlinking a directory
      Fix a copy-n-paste bug in the object decorator code.

Luiz Fernando N. Capitulino (2):
      ident.c: Use const qualifier for 'struct passwd' parameters
      ident.c: Use size_t (instead of int) to store sizes

Martin Koegler (1):
      gitweb: Show "no difference" message for empty diff

Michael S. Tsirkin (1):
      Display the subject of the commit just made.

Nicolas Pitre (32):
      clean up and optimize nth_packed_object_sha1() usage
      get rid of num_packed_objects()
      make overflow test on delta base offset work regardless of variable size
      add overflow tests on pack offset variables
      compute a CRC32 for each object as stored in a pack
      compute object CRC32 with index-pack
      pack-objects: learn about pack index version 2
      index-pack: learn about pack index version 2
      sha1_file.c: learn about index version 2
      show-index.c: learn about index v2
      pack-redundant.c: learn about index v2
      allow forcing index v2 and 64-bit offset treshold
      validate reused pack data with CRC when possible
      simple random data generator for tests
      use test-genrandom in tests instead of /dev/urandom
      tests for various pack index features
      clean up add_object_entry()
      pack-objects: optimize preferred base handling a bit
      pack-objects: equal objects in size should delta against newer objects
      pack-objects: rework check_delta_limit usage
      pack-objects: clean up list sorting
      pack-objects: get rid of reuse_cached_pack
      pack-objects: get rid of create_final_object_list()
      pack-objects: make in_pack_header_size a variable of its own
      add get_size_from_delta()
      pack-objects: better check_object() performances
      pack-objects: remove obsolete comments
      document --index-version for index-pack and pack-objects
      common progress display support
      make progress "title" part of the common progress interface
      provide a facility for "delayed" progress reporting
      delay progress display when checking out files

René Scharfe (1):
      git-archive: make tar the default format

Robin H. Johnson (2):
      Add custom subject prefix support to format-patch (take 3)
      Add testcase for format-patch --subject-prefix (take 3)

Shawn O. Pearce (8):
      Always bind the return key to the default button
      Fix lost-found to show commits only referenced by reflogs
      Don't yap about merge-subtree during make
      git-gui: Display the directory basename in the title
      Revert "Allow wish interpreter to be defined with TCLTK_PATH"
      Contribute a fairly paranoid update hook
      Kill the useless progress meter in merge-recursive
      Cleanup variables in cat-file

Steven Grimm (3):
      Add --quiet option to suppress output of "rm" commands for removed files.
      git-rm: Trivial fix for a comment typo.
      Add --ignore-unmatch option to exit with zero status when no files are removed.

Xavier Maillard (2):
      git-blame.el: separate git-blame-mode to ease maintenance
      git-blame.el: pick a set of random colors for each git-blame turn


Version v1.5.1.6; changes since v1.5.1.5:
-----------------------------------------

Eric Wong (2):
      git-svn: avoid crashing svnserve when creating new directories
      git-svn: don't minimize-url when doing an init that tracks multiple paths

J. Bruce Fields (4):
      tutorials: add user-manual links
      tutorial: revise index introduction
      user-manual: discourage shared repository
      user-manual: finding commits referencing given file content

Johan Herland (1):
      user-manual: Add section on ignoring files

Junio C Hamano (1):
      GIT 1.5.1.6

Matthias Kestenholz (2):
      Documentation: Added [verse] to SYNOPSIS where necessary
      Documentation: Reformatted SYNOPSIS for several commands


Version v1.5.1.5; changes since v1.5.1.4:
-----------------------------------------

Alex Riesen (1):
      Allow fetching references from any namespace

Andy Whitcroft (1):
      git name-rev writes beyond the end of malloc() with large generations

Eric Wong (4):
      git-svn: don't drop the username from URLs when dcommit is run
      git-svn: clean up caching of SVN::Ra functions
      git-svn: fix segfaults due to initial SVN pool being cleared
      git-svn: don't attempt to minimize URLs by default

Frank Lichtenheld (3):
      builtin-log.c: Fix typo in comment
      Documentation: format-patch has no --mbox option
      git-am: Clean up the asciidoc documentation

J. Bruce Fields (10):
      user-manual: revise birdseye-view chapter
      glossary: expand and clarify some definitions, prune cross-references
      user-manual: move quick-start to an appendix
      Documentation: remove howto's now incorporated into manual
      user-manual: move howto/make-dist.txt into user manual
      user-manual: move howto/using-topic-branches into manual
      user-manual: add a "counting commits" example
      user-manual: introduce git
      user-manual: listing commits reachable from some refs not others
      user-manual: reorganize public git repo discussion

Jakub Narębski (1):
      gitweb: Add a few comments about %feature hash

Jan Hudec (1):
      Updated documentation of hooks in git-receive-pack.

Jari Aalto (1):
      SPECIFYING RANGES typo fix: it it => it is

Jeff King (1):
      format-patch: add MIME-Version header when we add content-type.

Johannes Schindelin (2):
      import-tars: Use the "Link indicator" to identify directories
      Add a birdview-on-the-source-code section to the user manual

Junio C Hamano (7):
      git-clone: don't get fooled by $PWD
      .mailmap: add some aliases
      checkout: allow detaching to HEAD even when switching to the tip of a branch
      git-config: do not forget seeing "a.b.var" means we are out of "a.var" section.
      Fix git-clone buglet for remote case.
      Prepare for 1.5.1.5 Release Notes
      GIT v1.5.1.5

Marco Costalba (1):
      Fix an unmatched comment end in arm/sha1_arm.S

Matthieu Castet (1):
      Remove stale non-static-inline prototype for tree_entry_extract()

Michael Hendricks (2):
      git-send-email: allow leading white space on mutt aliases
      Document core.excludesfile for git-add

Petr Baudis (1):
      Documentation: git-rev-list's "patterns"

Quy Tonthat (2):
      RPM spec: include files in technical/ to package.
      Documentation/branch: fix small typo in -D example

Richard P. Curnow (2):
      Fix documentation of tag in git-fast-import.txt
      Fix documentation of tag in git-fast-import.txt

Shawn O. Pearce (1):
      Properly handle '0' filenames in import-tars

Steffen Prohaska (3):
      tiny fix in documentation of git-clone
      git-config: test for 'do not forget "a.b.var" ends "a.var" section'.
      Fixed link in user-manual


Version v1.5.1.4; changes since v1.5.1.3:
-----------------------------------------

Alex Riesen (1):
      Small correction in reading of commit headers

Alexandre Julliard (1):
      http-fetch: Disable use of curl multi support for libcurl < 7.16.

Amos Waterland (1):
      wcwidth redeclaration

Arjen Laarhoven (1):
      Document 'opendiff' value in config.txt and git-mergetool.txt

Bryan Larsen (2):
      Allow PERL_PATH="/usr/bin/env perl"
      posix compatibility for t4200

Carl Worth (1):
      Mention version 1.5.1 in tutorial and user-manual

Daniel Barkalow (1):
      Make xstrndup common

Frank Lichtenheld (1):
      cvsserver: Handle re-added files correctly

J. Bruce Fields (7):
      user-manual: more discussion of detached heads, fix typos
      user-manual: add section ID's
      user-manual: clean up fast-forward and dangling-objects sections
      user-manual: fix .gitconfig editing examples
      user-manual: miscellaneous editing
      user-manual: stop deprecating the manual
      user-manual: fix clone and fetch typos

Jakub Narębski (1):
      diff format documentation: describe raw combined diff format

James Bowes (1):
      Documentation: fix typo in git-remote.txt

Jeff King (1):
      Documentation: don't reference non-existent 'git-cvsapplycommit'

Johannes Schindelin (1):
      Teach import-tars about GNU tar's @LongLink extension.

Junio C Hamano (5):
      diff.c: fix "size cache" handling.
      blame: Notice a wholesale incorporation of an existing file.
      blame: -C -C -C
      Add test for blame corner cases.
      GIT v1.5.1.4

Karl Wiberg (2):
      Fix markup in git-svn man page
      Add --no-rebase option to git-svn dcommit

Linus Torvalds (1):
      Fix --boundary output

Martin Koegler (1):
      Fix compilation of test-delta

Paul Mackerras (1):
      gitk: Allow user to choose whether to see the diff, old file, or new file

Quy Tonthat (1):
      Add howto files to rpm packages.

Shawn O. Pearce (1):
      git-gui: Allow spaces in path to 'wish'

İsmail Dönmez (1):
      gitweb: use decode_utf8 directly


Version v1.5.1.3; changes since v1.5.1.2:
-----------------------------------------

Adam Roben (5):
      Remove usernames from all commit messages, not just when using svmprops
      git-svn: Don't rely on $_ after making a function call
      git-svn: Ignore usernames in URLs in find_by_url
      git-svn: Added 'find-rev' command
      git-svn: Add 'find-rev' command

Alex Riesen (1):
      Fix handle leak in write_tree

Andrew Ruder (8):
      Removing -n option from git-diff-files documentation
      Document additional options for git-fetch
      Update git-fmt-merge documentation
      Update git-grep documentation
      Update -L documentation for git-blame/git-annotate
      Update git-http-push documentation
      Update git-local-fetch documentation
      Update git-http-fetch documentation

Brian Gernhardt (2):
      Reverse the order of -b and --track in the man page.
      Ignore all man sections as they are generated files.

Gerrit Pape (1):
      Documentation/git-reset.txt: suggest git commit --amend in example.

Jari Aalto (3):
      Clarify SubmittingPatches Checklist
      git.7: Mention preformatted html doc location
      send-email documentation: clarify --smtp-server

Johannes Schindelin (2):
      dir.c(common_prefix): Fix two bugs
      import-tars: be nice to wrong directory modes

Josh Triplett (3):
      Fix typo in git-am: s/Was is/Was it/
      Create a sysconfdir variable, and use it for ETC_GITCONFIG
      Add missing reference to GIT_COMMITTER_DATE in git-commit-tree documentation

Julian Phillips (1):
      http.c: Fix problem with repeated calls of http_init

Junio C Hamano (8):
      Build RPM with ETC_GITCONFIG=/etc/gitconfig
      applymbox & quiltimport: typofix.
      Start preparing for 1.5.1.3
      Do not barf on too long action description
      Update .mailmap with "Michael"
      Fix import-tars fix.
      Fix symlink handling in git-svn, related to PerlIO
      GIT v1.5.1.3

Michele Ballabio (1):
      git shortlog documentation: add long options and fix a typo

Robin H. Johnson (10):
      Document --dry-run parameter to send-email.
      Prefix Dry- to the message status to denote dry-runs.
      Debugging cleanup improvements
      Change the scope of the $cc variable as it is not needed outside of send_message.
      Perform correct quoting of recipient names.
      Validate @recipients before using it for sendmail and Net::SMTP.
      Ensure clean addresses are always used with Net::SMTP
      Allow users to optionally specify their envelope sender.
      Document --dry-run and envelope-sender for git-send-email.
      Sanitize @to recipients.

Shawn O. Pearce (3):
      Actually handle some-low memory conditions
      Don't allow empty pathnames in fast-import
      Catch empty pathnames in trees during fsck


Version v1.5.1.2; changes since v1.5.1.1:
-----------------------------------------

Alex Riesen (3):
      Use rev-list --reverse in git-rebase.sh
      Document -g (--walk-reflogs) option of git-log
      Fix overwriting of files when applying contextually independent diffs

Andrew Ruder (8):
      Update git-am documentation
      Update git-applymbox documentation
      Update git-apply documentation
      Update git-annotate/git-blame documentation
      Update git-archive documentation
      Update git-cherry-pick documentation
      Fix unmatched emphasis tag in git-tutorial
      Update git-config documentation

Andy Whitcroft (1):
      fix up strtoul_ui error handling

Carlos Rica (1):
      Use const qualifier for 'sha1' parameter in delete_ref function

Eric Wong (4):
      git-svn: respect lower bound of -r/--revision when following parent
      git-svn: quiet some warnings when run only with --version/--help
      git-svn: don't allow globs to match regular files
      perl: install private Error.pm if the site version is older than our own

Eygene Ryabinkin (2):
      Teach gitk to use the user-defined UI font everywhere.
      Improve look-and-feel of the gitk tool.

Frank Lichtenheld (5):
      config.txt: Document gitcvs.allbinary
      config.txt: Document core.autocrlf
      config.txt: Change pserver to server in description of gitcvs.*
      config.txt: Fix grammatical error in description of http.noEPSV
      git-shortlog: Fix two formatting errors in asciidoc documentation

Gerrit Pape (2):
      variable $projectdesc needs to be set before checking against unchanged default.
      Have sample update hook not refuse deleting a branch through push.

J. Bruce Fields (7):
      Documentation: minor edits of git-lost-found manpage
      Documentation: clarify git-checkout -f, minor editing
      Documentation: clarify track/no-track option.
      user-manual: fix discussion of default clone
      user-manual: detached HEAD
      user-manual: start revising "internals" chapter
      user-manual: use detached head when rewriting history

Jim Meyering (1):
      sscanf/strtoul: parse integers robustly

Junio C Hamano (4):
      Do not default to --no-index when given two directories.
      Start preparing for 1.5.1.2
      git-clone: fix dumb protocol transport to clone from pack-pruned ref
      GIT 1.5.1.2

Linus Torvalds (1):
      git-quiltimport complaining yet still working

Matthias Lederhofer (1):
      handle_options in git wrapper miscounts the options it handled.

Michael Spang (1):
      git-blame: Fix overrun in fake_working_tree_commit()

Sam Vilain (1):
      git-tar-tree: complete deprecation conversion message

Shawn O. Pearce (1):
      git-gui: Brown paper bag fix division by 0 in blame


Version v1.5.1.1; changes since v1.5.1:
---------------------------------------

Arjen Laarhoven (4):
      usermanual.txt: some capitalization nits
      t3200-branch.sh: small language nit
      t5300-pack-object.sh: portability issue using /usr/bin/stat
      Makefile: iconv() on Darwin has the old interface

Brian Gernhardt (3):
      Fix t4200-rerere for white-space from "wc -l"
      Document --left-right option to rev-list.
      Distinguish branches by more than case in tests.

Dana L. How (1):
      Fix lseek(2) calls with args 2 and 3 swapped

Eric Wong (3):
      git-svn: bail out on incorrect command-line options
      git-svn: dcommit/rebase confused by patches with git-svn-id: lines
      git-svn: fix log command to avoid infinite loop on long commit messages

Frank Lichtenheld (7):
      cvsimport: sync usage lines with existing options
      cvsimport: Improve documentation of CVSROOT and CVS module determination
      cvsimport: Improve usage error reporting
      cvsimport: Reorder options in documentation for better understanding
      cvsimport: Improve formating consistency
      cvsserver: small corrections to asciidoc documentation
      cvsserver: Fix handling of diappeared files on update

Geert Bosch (1):
      Fix renaming branch without config file

Gerrit Pape (1):
      rename contrib/hooks/post-receieve-email to contrib/hooks/post-receive-email.

Jakub Narębski (1):
      gitweb: Fix bug in "blobdiff" view for split (e.g. file to symlink) patches

Jim Meyering (1):
      (encode_85, decode_85): Mark source buffer pointer as "const".

Julian Phillips (1):
      Documentation: show-ref: document --exclude-existing

Junio C Hamano (7):
      rerere: make sorting really stable.
      Fix dependency of common-cmds.h
      Documentation: tighten dependency for git.{html,txt}
      Prepare for 1.5.1.1
      Add Documentation/cmd-list.made to .gitignore
      fsck: do not complain on detached HEAD.
      GIT 1.5.1.1

Lars Hjemli (2):
      rename_ref(): only print a warning when config-file update fails
      Make builtin-branch.c handle the git config file

René Scharfe (1):
      Revert "builtin-archive: use RUN_SETUP"

Shawn O. Pearce (1):
      Honor -p<n> when applying git diffs

Tomash Brechko (1):
      cvsexportcommit -p : fix the usage of git-apply -C.

Ville Skyttä (1):
      DESTDIR support for git/contrib/emacs

YOSHIFUJI Hideaki (1):
      Avoid composing too long "References" header.


Version v1.5.1; changes since v1.5.1-rc3:
-----------------------------------------

Alex Riesen (1):
      Keep rename/rename conflicts of intermediate merges while doing recursive merge

Andy Parkins (1):
      Reimplement emailing part of hooks--update in contrib/hooks/post-receive-email

Christian Couder (1):
      Bisect: Improve error message in "bisect_next_check".

Don Zickus (1):
      git-mailinfo fixes for patch munging

Eric Wong (2):
      git-svn: avoid respewing similar error messages for missing paths
      git-svn: fail on rebase if we are unable to find a ref to rebase against

Francis Daly (1):
      git-quiltimport /bin/sh-ism fix

Frank Lichtenheld (1):
      cvsserver: Don't lie about binary mode in asciidoc documentation

Gerrit Pape (2):
      Documentation/git-svnimport.txt: fix typo.
      Documentation/git-rev-parse.txt: fix example in SPECIFYING RANGES.

H. Peter Anvin (1):
      git-upload-pack: make sure we close unused pipe ends

Jakub Narębski (2):
      gitweb: Support comparing blobs (files) with different names
      Documentation: A few minor fixes to Git User's Manual

Julian Phillips (1):
      contrib/workdir: add a simple script to create a working directory

Junio C Hamano (6):
      Update draft release notes for 1.5.1
      Do not bother documenting fetch--tool
      Hopefully final update to the draft Release Notes, preparing for 1.5.1
      rerere should not repeat the earlier hunks in later ones
      GIT 1.5.0.7
      GIT 1.5.1

Nicolas Pitre (1):
      Plug memory leak in index-pack collision checking codepath.

Theodore Ts'o (12):
      Fix minor formatting issue in man page for git-mergetool
      mergetool: Replace use of "echo -n" with printf(1) to be more portable
      mergetool: Don't error out in the merge case where the local file is deleted
      mergetool: portability fix: don't assume true is in /bin
      mergetool: portability fix: don't use reserved word function
      mergetool: factor out common code
      mergetool: Remove spurious error message if merge.tool config option not set
      mergetool: Fix abort command when resolving symlinks and deleted files
      mergetool: Add support for Apple Mac OS X's opendiff command
      mergetool: Make git-rm quiet when resolving a deleted file conflict
      mergetool: Clean up description of files and prompts for merge resolutions
      Rename warn() to warning() to fix symbol conflicts on BSD and Mac OS


Version v1.5.1-rc3; changes since v1.5.1-rc2:
---------------------------------------------

Alexandre Julliard (1):
      git.el: Display some information about the HEAD commit.

Christian Couder (2):
      Bisect: Use "git-show-ref --verify" when reseting.
      Bisect: add checks at the beginning of "git bisect run".

Gerrit Pape (3):
      Makefile: remove test-chmtime program in target clean.
      http-fetch: don't use double-slash as directory separator in URLs
      http-fetch: remove path_len from struct alt_base, it was computed but never used

H. Peter Anvin (1):
      git-upload-pack: make sure we close unused pipe ends

Jakub Narębski (2):
      gitweb: Add example of config file and how to generate projects list to gitweb/INSTALL
      gitweb: Cleanup and uniquify die_error calls

James Bowes (2):
      read-tree: use xcalloc
      use xrealloc in help.c

Jeff King (6):
      git-rm: don't remove newly added file without -f
      --pretty=format: fix broken %ct and %at interpolation
      Add some basic tests of rev-list --pretty=format
      Fix "--pretty=format:" encoding item
      t/t6006: add tests for a slightly more complex commit messages
      commit: fix pretty-printing of messages with "\nencoding "

Jim Meyering (1):
      sha1_file.c (write_sha1_from_fd): Detect close failure.

Johannes Schindelin (1):
      t4118: be nice to non-GNU sed

Junio C Hamano (7):
      Document git-log --first-parent
      sha1_file.c (write_sha1_file): Detect close failure
      git-commit: "read-tree -m HEAD" is not the right way to read-tree quickly
      Fix "--pretty=format:" for parent related items.
      GIT 1.5.0.6
      Update main git.html page to point at 1.5.0.6 documentation
      GIT 1.5.1-rc3

Linus Torvalds (1):
      Fix "getaddrinfo()" buglet


Version v1.5.1-rc2; changes since v1.5.1-rc1:
---------------------------------------------

Alex Riesen (2):
      Document --quiet option to git-diff
      Use diff* with --exit-code in git-am, git-rebase and git-merge-ours

Andy Parkins (2):
      update-hook: abort early if the project description is unset
      update-hook: remove e-mail sending hook.

Brandon Casey (1):
      prefer "git COMMAND" over "git-COMMAND" in gitk

Chris Wright (1):
      make git clone -q suppress the noise with http fetch

Christian Couder (6):
      Bisect: implement "git bisect run <cmd>..." to automatically bisect.
      Documentation: bisect: reformat some paragraphs.
      Documentation: bisect: reword one paragraph.
      Documentation: bisect: reformat more paragraphs.
      Documentation: bisect: add some titles to some paragraphs.
      Documentation: bisect: make a comment fit better in the man page.

Eric Wong (2):
      gitk: bind <F5> key to Update (reread commits)
      git-svn: fix rel_path() when not connected to the repository root

J. Bruce Fields (5):
      user-manual: run xsltproc without --nonet option
      user-manual: Use def_ instead of ref_ for glossary references.
      glossary: stop generating automatically
      glossary: clean up cross-references
      user-manual: introduce "branch" and "branch head" differently

Jakub Narębski (4):
      gitweb: Fix "next" link in commit view
      gitweb: Don't escape attributes in CGI.pm HTML methods
      gitweb: Fix not marking signoff lines in "log" view
      gitweb: Add some installation notes in gitweb/INSTALL

James Bowes (2):
      Replace remaining instances of strdup with xstrdup.
      use xmalloc in git.c and help.c

Jim Meyering (1):
      user-manual.txt: fix a tiny typo.

Johannes Schindelin (5):
      xdiff/xutils.c(xdl_hash_record): factor out whitespace handling
      Add a HOWTO for setting up a standalone git daemon
      Provide some technical documentation for shallow clones
      t4118: be nice to non-GNU sed
      git-revert: Revert revert message to old behaviour

Johannes Sixt (1):
      Teach git-remote to list pushed branches.

Junio C Hamano (15):
      git-log --first-parent: show only the first parent log
      blame: micro-optimize cmp_suspect()
      blame: cmp_suspect is not "cmp" anymore.
      Teach tree_entry_interesting() that the tree entries are sorted.
      tree-diff: avoid strncmp()
      tree_entry_interesting(): allow it to say "everything is interesting"
      git-rebase: make 'rebase HEAD branch' work as expected.
      git-apply: Do not free the wrong buffer when we convert the data for writeout
      checkout: report where the new HEAD is upon detaching HEAD
      git-bisect: typofix
      git-bisect.sh: properly dq $GIT_DIR
      Fix path-limited "rev-list --bisect" termination condition.
      git-am documentation: describe what is taken from where.
      Update README to point at a few key periodical messages to the list
      GIT 1.5.1-rc2

Li Yang (1):
      gitweb: Change to use explicitly function call cgi->escapHTML()

Linus Torvalds (6):
      Fix loose object uncompression check.
      Don't ever return corrupt objects from "parse_object()"
      Be more careful about zlib return values
      Remove "pathlen" from "struct name_entry"
      Initialize tree descriptors with a helper function rather than by hand.
      Switch over tree descriptors to contain a pre-parsed entry

Michael S. Tsirkin (2):
      fix typo in git-am manpage
      git-merge: Put FETCH_HEAD data in merge commit message

Nicolas Pitre (10):
      clean up the delta base cache size a bit
      use a LRU eviction policy for the delta base cache
      don't ever allow SHA1 collisions to exist by fetching a pack
      index-pack: use hash_sha1_file()
      index-pack: more validation checks and cleanups
      improve checkout message when asking for same branch
      minor git-prune optimization
      update HEAD reflog when branch pointed to by HEAD is directly modified
      make it more obvious that temporary files are temporary files
      write_sha1_from_fd() should make new objects read-only

Peter Eriksen (1):
      Documentation/pack-format.txt: Clear up description of types.

Santi Béjar (1):
      git-fetch: Fix single_force in append_fetch_head

Shawn O. Pearce (1):
      contrib/continuous: a continuous integration build manager

Uwe Kleine-König (1):
      Bisect: convert revs given to good and bad to commits


Version v1.5.1-rc1; changes since v1.5.0.7:
-------------------------------------------

Alex Riesen (7):
      disable t4016-diff-quote.sh on some filesystems
      git-gui: Support of "make -s" in: do not output anything of the build itself
      More build output cleaning up
      Support of "make -s": do not output anything of the build itself
      Allow "make -w" generate its usual output
      Allow git-diff exit with codes similar to diff(1)
      Add tests for --quiet option of diff programs

Alexandre Julliard (1):
      git.el: Add support for commit hooks.

Andy Parkins (7):
      Only show log entries for new revisions in hooks--update
      Have git-cvsserver call hooks/update before really altering the ref
      The "table-of-contents" in the update hook script should match the body
      cvsserver: Remove trailing "\n" from commithash in checkin function
      cvsserver: Make always-binary mode a config file option
      Sample update hook: typofix and modernization to use "git log"
      update-hook: fix incorrect use of git-describe and sed for finding previous tag

Aneesh Kumar K.V (1):
      Documentation: document remote.<name>.tagopt

Avi Kivity (1):
      git-send-email: configurable bcc and chain-reply-to

Don Zickus (3):
      builtin-mailinfo.c infrastrcture changes
      restrict the patch filtering
      Add a couple more test cases to the suite.

Eric Wong (119):
      git-svn: move authentication prompts into their own namespace
      git-svn: cleanup: move process_rm around
      git-svn: cleanup: put SVN workarounds into their own namespace
      git-svn: cleanup: avoid re-use()ing Git.pm in sub-packages
      git-svn: add Git::SVN module (to avoid global variables)
      git-svn: convert 'init' to use Git::SVN
      git-svn: convert multi-init over to using Git::SVN
      git-svn: make multi-init capable of reusing the Ra connection
      git-svn: add a test for show-ignore
      git-svn: convert show-ignore over to Git::SVN
      git-svn: moved the 'log' command into its own namespace
      git-svn: port the 'rebuild' command to use Git::SVN objects
      git-svn: do not let Git.pm warn if we prematurely close pipes
      git-svn: convert the 'commit-diff' command to Git::SVN
      git-svn: get rid of Memoize for now...
      git-svn: fetch/multi-fetch converted over to Git::SVN module
      git-svn: switch dcommit to using Git::SVN code
      git-svn: convert 'set-tree' command to use Git::SVN
      git-svn: remove graft-branches command
      git-svn: add support for metadata in .git/config
      git-svn: fix a regression in dcommit that caused empty log messages
      git-svn: reuse open SVN::Ra connections by URL
      git-svn: enable --minimize to simplify the config and connections
      git-svn: fix --follow-parent to work with Git::SVN
      git-svn: --follow-parent works with svn-remotes multiple branches
      git-svn: disallow ambigious local refspecs
      git-svn: allow --follow-parent on deleted directories
      git-svn: get rid of additional fetch-arguments
      git-svn: allow 'init' to work outside of tests
      git-svn: better error reporting if --follow-parent fails
      git-svn: 'init' attempts to connect to the repository root if possible
      git-svn: --follow-parent now works on sub-directories of larger branches
      git-svn: track writes writes to the index in fetch
      git-svn: add an odd test case that seems to cause segfaults over HTTP
      git-svn: avoid tracking change-less revisions
      git-svn: correctly track revisions made to deleted branches
      git-svn: fix segfaults from accessing svn_log_changed_path_t
      git-svn: fix committing to subdirectories, add tests
      git-svn: avoid an extra svn_ra connection during commits
      git-svn: simplify usage of the SVN::Git::Editor interface
      git-svn: cleanup remove unused function
      git-svn: allow multi-fetch to fetch things chronologically
      git-svn: correctly track diff-less copies with do_switch
      git-svn: correctly handle do_{switch,update} in deep directories
      git-svn: stop using path names as refnames with --follow-parent
      git-svn: cleanup: move editor-specific variables into the editor namespace
      git-svn: just use Digest::MD5 instead of requiring it
      git-svn: reinstate the default SVN error handler after using get_log
      git-svn: don't rely on do_switch + reparenting with svn(+ssh)://
      git-svn: fetch tracks initial change with --follow-parent
      git-svn: remove the 'rebuild' command and make the functionality automatic
      git-svn: fix several fetch bugs related to repeated invocations
      git-svn: reinstate --no-metadata, add --svn-remote=, variable cleanups
      git-svn: gracefully handle --follow-parent failures
      git-svn: make (multi-)fetch safer but slower
      git-svn: avoid a huge memory spike with high-numbered revisions
      git-svn: re-enable repacking flags
      git-svn: do our best to ensure that our ref and rev_db are consistent
      git-svn: avoid redundant get_log calls between invocations
      git-svn: use sys* IO functions for reading rev_db
      git-svn: don't write to the config file from --follow-parent
      git-svn: save paths to tags/branches with for future reuse
      git-svn: migrations default to [svn-remote "git-svn"]
      git-svn: get rid of revisions_eq check for --follow-parent
      git-svn: avoid extra get_log calls when refspecs are added for fetching
      git-svn: just name the default svn-remote "svn" instead of "git-svn"
      git-svn: prepare multi-init for wildcard support
      git-svn: reintroduce using a single get_log() to fetch
      git-svn: run get_log() on a sub-directory if possible
      git-svn: implement auto-discovery of branches/tags
      git-svn: --follow-parent tracks multi-parent paths
      git-svn: remove check_path calls before calling do_update
      git-svn: remove some noisy debugging messages
      git-svn: enable follow-parent functionality by default
      git-svn: fix buggy regular expression usage in several places
      git-svn: correctly handle the -q flag in SVN::Git::Fetcher
      git-svn: correctly handle globs with a right-hand-side path component
      git-svn: remove optimized commit stuff for set-tree
      git-svn: add support for SVN::Mirror/svk using revprops for metadata
      git-svn: add support for per-[svn-remote "..."] options
      git-svn: use private $GIT_DIR/svn/config file more
      git-svn: extra safety for noMetadata and useSvmProps users
      git-svn: use separate, per-repository .rev_db files
      git-svn: write the highest maxRex out for branches and tags
      git-svn: handle multi-init without --trunk, UseSvmProps fixes
      git-svn: make dcommit usable for glob users
      git-svn: include merges when calling rev-list for decommit
      git-svn: usability fixes for the 'git svn log' command
      t910*: s/repo-config/config/g; poke around possible race conditions
      git-svn: hopefully make 'fetch' more user-friendly
      git-svn: allow 'init' to act as multi-init
      git-svn: brown paper bag fixes
      git-svn: simplify the (multi-)init methods of fetching
      git-svn: allow --log-window-size to be specified, default to 100
      git-svn: remember to check for clean indices on globbed refs, too
      git-svn: error checking for invalid [svn-remote "..."] sections
      git-svn: allow dcommit for those who only fetch from SVM with useSvmProps
      git-svn: documentation updates for new functionality
      git-svn: add support for --stat in the log command
      git-svn: checkout files on new fetches
      git-svn: add a 'rebase' command
      git-svn: fix some issues for people migrating from older versions
      git-svn: hide the private git-svn 'config' file as '.metadata'
      git-svn: add 'clone' command, an alias for init + fetch
      git-svn: allow overriding of the SVN repo root in metadata
      git-svn: add support for using svnsync properties
      git-svn: fix useSvmProps, hopefully for the last time
      git-svn: add test for useSvnsyncProps
      git-svn: documentation updates
      git-svn: allow metadata options to be specified with 'init' and 'clone'
      git-svn: give show-ignore HEAD smarts, like dcommit and log
      git-svn: ensure we're at the top-level and can access $GIT_DIR
      git-svn: fix clone when a target directory has been specified
      git-svn: fix reconnections to different paths of svn:// repositories
      git-svn: fix some potential bugs with --follow-parent
      Add test-chmtime: a utility to change mtime on files
      Update tests to use test-chmtime
      git-svn: fix show-ignore when not connected to the repository root
      git-svn: add -l/--local command to "git svn rebase"

Frank Lichtenheld (3):
      cvsserver: Use Merged response instead of Update-existing for merged files
      cvsserver: Be more chatty
      cvsserver: further improve messages on commit and status

Fredrik Kuivinen (1):
      New autoconf test for iconv

J. Bruce Fields (1):
      Make git-send-email aware of Cc: lines.

Jakub Narębski (1):
      gitweb: Don't escape attributes in CGI.pm HTML methods

James Bowes (3):
      add: Support specifying an excludes file with a configuration variable
      Make gc a builtin.
      mergetool: Add support for vimdiff.

Jeff King (1):
      New fast-import test case for valid tree sorting

Jim Meyering (2):
      I like the idea of the new ':/<oneline prefix>' notation, and gave it a try, but all I could get was a segfault.  It was dereferencing a NULL commit list.  Fix below.  With it, this example now works:
      git-grep: don't use sscanf

Johannes Schindelin (42):
      Teach revision machinery about --reverse
      teach diff machinery about --ignore-space-at-eol
      name-rev: introduce the --refs=<pattern> option
      diff --check: use colour
      apply: fix memory leak in prefix_one()
      name-rev: avoid "^0" when unneeded
      rev-list --max-age, --max-count: support --boundary
      fetch & clone: do not output progress when not on a tty
      config: read system-wide defaults from /etc/gitconfig
      git grep: use pager
      Teach diff -B about colours
      apply: make --verbose a little more useful
      Teach git-diff-files the new option `--no-index`
      pretty-formats: add 'format:<string>'
      Make tests independent of global config files
      Add git-bundle: move objects and references by archive
      git-bundle: assorted fixes
      git-bundle: avoid fork() in verify_bundle()
      git-bundle: fix 'create --all'
      git-bundle: record commit summary in the prerequisite data
      Fixup no-progress for fetch & clone
      object name: introduce ':/<oneline prefix>' notation
      Fix typo: do not show name1 when name2 fails
      diff --no-index: also imitate the exit status of diff(1)
      Actually make print_wrapped_text() useful
      show_date(): rename the "relative" parameter to "mode"
      diff: make more cases implicit --no-index
      print_wrapped_text: fix output for negative indent
      Make git-revert & git-cherry-pick a builtin
      diff: support reading a file from stdin via "-"
      diff --no-index: support /dev/null as filename
      Get rid of the dependency to GNU diff in the tests
      cherry-pick: Suggest a better method to retain authorship
      format-patch: add --inline option and make --attach a true attachment
      bundle: fix wrong check of read_header()'s return value & add tests
      git-bundle: avoid packing objects which are in the prerequisites
      git-bundle: Make thin packs
      git-bundle: handle thin packs in subcommand "unbundle"
      git-bundle: die if a given ref is not included in bundle
      git-bundle: prevent overwriting existing bundles
      git-bundle: only die if pack would be empty, warn if ref is skipped
      Do not output "GEN " when generating perl.mak

Johannes Sixt (3):
      Add core.symlinks to mark filesystems that do not support symbolic links.
      Handle core.symlinks=false case in merge-recursive.
      Tell multi-parent diff about core.symlinks.

Julian Phillips (5):
      Allow fetch--tool to read from stdin
      Use stdin reflist passing in parse-remote
      Use stdin reflist passing in git-fetch.sh
      git-branch: improve abbreviation of sha1s in verbose mode
      git-branch: document new --no-abbrev option

Junio C Hamano (80):
      git-diff/git-apply: make diff output a bit friendlier to GNU patch (part 2)
      Make merge-base a built-in.
      Allow in_merge_bases() to take more than one reference commits.
      Remove git-resolve.
      Remove git-diff-stages.
      Add link to v1.5.0 documentation.
      blame: --show-stats for easier optimization work.
      git-fetch: split fetch_main into fetch_dumb and fetch_native
      git-fetch--tool: start rewriting parts of git-fetch in C.
      git-fetch: move more code into C.
      git-fetch: rewrite another shell loop in C
      git-fetch: rewrite expand_ref_wildcard in C
      Document --ignore-space-at-eol option.
      Add RelNotes 1.5.1
      Point top-level RelNotes link at 1.5.1 release notes being prepared.
      t0020: add test for auto-crlf
      remotes.not-origin.tagopt
      Teach 'git apply' to look at $GIT_DIR/config
      Teach core.autocrlf to 'git apply'
      Update draft release notes for 1.5.1
      Teach 'git apply' to look at $HOME/.gitconfig even outside of a repository
      git-apply: do not lose cwd when run from a subdirectory.
      git-apply: require -p<n> when working in a subdirectory.
      Link 1.5.0.1 documentation from the main page.
      Add prefixcmp()
      Mechanical conversion to use prefixcmp()
      prefixcmp(): fix-up mechanical conversion.
      prefixcmp(): fix-up leftover strncmp().
      t4119: add test for traditional patch and different p_value
      Fix botched "leak fix"
      git-apply: notice "diff --git" patch again
      git-apply: guess correct -p<n> value for non-git patches.
      t4119: test autocomputing -p<n> for traditional diff input.
      git-status: do not be totally useless in a read-only repository.
      update-index: do not die too early in a read-only repository.
      run_diff_{files,index}(): update calling convention.
      .mailmap maintenance after pulling from git-svn
      bundle: reword missing prerequisite error message
      git-fetch--tool takes flags before the subcommand.
      diff --cached: give more sensible error message when HEAD is yet to be created.
      Documentation: link in 1.5.0.2 material to the top documentation page.
      builtin-fetch--tool: adjust to updated sha1_object_info().
      Make 'cvs ci' lockless in git-cvsserver by using git-update-ref
      fetch--tool: fix uninitialized buffer when reading from stdin
      builtin-fetch--tool: make sure not to overstep ls-remote-result buffer.
      index_fd(): use enum object_type instead of type name string.
      index_fd(): pass optional path parameter as hint for blob conversion
      index_fd(): convert blob only if it is a regular file.
      Add recent changes to draft 1.5.1 release notes.
      git-fetch: retire update-local-ref which is not used anymore.
      builtin-fetch--tool: fix reflog notes.
      diff-ni: allow running from a subdirectory.
      diff-ni: fix the diff with standard input
      .gitignore: add git-fetch--tool
      format-patch --attach: not folding some long headers.
      Post 1.5.0.3 cleanup
      fsck: fix broken loose object check.
      unpack_sha1_file(): detect corrupt loose object files.
      fsck: exit with non-zero status upon errors
      git-bundle: fix pack generation.
      revision walker: Fix --boundary when limited
      revision traversal: retire BOUNDARY_SHOW
      git-bundle: various fixups
      revision traversal: SHOWN means shown
      git-bundle: make verify a bit more chatty.
      revision --boundary: fix stupid typo
      revision --boundary: fix uncounted case.
      Fix broken create_branch() in builtin-branch.
      prepare_packed_git(): sort packs by age and localness.
      Documentation: add git-mergetool to the command list.
      shortlog: prompt when reading from terminal by mistake
      Remove unused diffcore_std_no_resolve
      diff --quiet
      Teach --quiet to diff backends.
      revision.c: explain what tree_difference does
      try-to-simplify-commit: use diff-tree --quiet machinery.
      applymbox: brown paper bag fix.
      Update main git.html page to point at 1.5.0.5 documentation
      Fix merge-index
      GIT 1.5.1-rc1

Li Yang (1):
      gitweb: Change to use explicitly function call cgi->escapHTML()

Linus Torvalds (8):
      Lazy man's auto-CRLF
      Make AutoCRLF ternary variable.
      Re-fix get_sha1_oneline()
      Make trivial wrapper functions around delta base generation and freeing
      Implement a simple delta_base cache
      Avoid unnecessary strlen() calls
      Trivial cleanup of track_tree_refs()
      Set up for better tree diff optimizations

Martin Waitz (1):
      Support for large files on 32bit systems.

Michael Coleman (2):
      git-send-email: abort/usage on bad option
      fix various doc typos

Nicolas Pitre (12):
      sha1_file.c: cleanup hdr usage
      sha1_file.c: cleanup "offset" usage
      sha1_file.c: don't ignore an error condition in sha1_loose_object_info()
      formalize typename(), and add its reverse type_from_string()
      convert object type handling from a string to a number
      get rid of lookup_object_type()
      make sure enum object_type is signed
      local-fetch.c: some error printing cleanup
      fix t5300-pack-object.sh
      add test for OFS_DELTA objects
      clean up pack index handling a bit
      Reuse cached data out of delta base cache.

Paolo Bonzini (5):
      git-config: document --rename-section, provide --remove-section
      git-archimport: allow remapping branch names
      git-commit: add a --interactive option
      git-branch, git-checkout: autosetup for remote branch tracking
      git-fetch, git-branch: Support local --track via a special remote '.'

Pavel Roskin (1):
      git-remote: support remotes with a dot in the name

Sam Vilain (3):
      git-svn: make test for SVK mirror path import
      git-svn: don't consider SVN URL usernames significant when comparing
      git-svn: document --username

Santi Béjar (2):
      t/t5515-fetch-merge-logic.sh: Added tests for the merge login in git-fetch
      t/t5515-fetch-merge-logic.sh: Add two more tests

Sergey Vlasov (1):
      Documentation/git-svn.txt: Fix formatting errors

Shawn O. Pearce (43):
      Cleanup check_valid in commit-tree.
      cherry-pick: Bug fix 'cherry picked from' message.
      Make 'make' quieter while building git
      Make 'make' quiet by default
      Display the null SHA-1 as the base for an OBJ_OFS_DELTA.
      Fix mmap leak caused by reading bad indexes.
      Don't build external_grep if its not used
      General const correctness fixes
      Use uint32_t for all packed object counts.
      Use uint32_t for pack-objects counters.
      Use off_t when we really mean a file offset.
      Use off_t in pack-objects/fast-import when we mean an offset
      Cast 64 bit off_t to 32 bit size_t
      Preallocate memory earlier in fast-import
      Move post-update hook to after all other activity
      Don't run post-update hook unless a ref changed
      Refactor run_update_hook to be more useful
      Refactor handling of error_string in receive-pack
      Teach receive-pack to run pre-receive/post-receive hooks
      Use atomic updates to the fast-import mark file
      Allow fast-import frontends to reload the marks table
      Switch to run_command_v_opt in revert
      Remove unused run_command variants
      Start defining a more sophisticated run_command
      Split run_command into two halves (start/finish)
      Teach run_command how to setup a stdin pipe
      Refactor run_command error handling in receive-pack
      Split back out update_hook handling in receive-pack
      Change {pre,post}-receive hooks to use stdin
      Remove unnecessary casts from fast-import
      Simplify closing two fds at once in run-command.c
      Fix t5510-fetch's use of sed
      Teach run-command about stdout redirection
      Teach run-command to redirect stdout to /dev/null
      Replace fork_with_pipe in bundle with run_command
      Correct new compiler warnings in builtin-revert
      Use RUN_GIT_CMD to run push backends
      Use run_command for proxy connections
      Use run_command within merge-index
      Use run_command within receive-pack to invoke index-pack
      Use run_command within send-pack
      use xstrdup please
      Limit the size of the new delta_base_cache

Simon 'corecode' Schubert (1):
      Allow passing of an alternative CVSROOT via -d.

Theodore Ts'o (5):
      Teach git-remote to update existing remotes by fetching from them
      Add config_boolean() method to the Git perl module
      Allow git-remote to update named groups of remotes
      Add git-mergetool to run an appropriate merge conflict resolution program
      mergetool: print an appropriate warning if merge.tool is unknown

Xavier Maillard (1):
      contrib/emacs: Use non-interactive function to byte-compile files


Version v1.5.0.7; changes since v1.5.0.6:
-----------------------------------------

Gerrit Pape (2):
      Documentation/git-svnimport.txt: fix typo.
      Documentation/git-rev-parse.txt: fix example in SPECIFYING RANGES.

H. Peter Anvin (1):
      git-upload-pack: make sure we close unused pipe ends

Junio C Hamano (2):
      rerere should not repeat the earlier hunks in later ones
      GIT 1.5.0.7


Version v1.5.0.6; changes since v1.5.0.5:
-----------------------------------------

J. Bruce Fields (5):
      user-manual: run xsltproc without --nonet option
      user-manual: Use def_ instead of ref_ for glossary references.
      glossary: stop generating automatically
      glossary: clean up cross-references
      user-manual: introduce "branch" and "branch head" differently

Jakub Narębski (4):
      gitweb: Fix "next" link in commit view
      gitweb: Don't escape attributes in CGI.pm HTML methods
      gitweb: Fix not marking signoff lines in "log" view
      gitweb: Add some installation notes in gitweb/INSTALL

Jeff King (1):
      commit: fix pretty-printing of messages with "\nencoding "

Jim Meyering (1):
      user-manual.txt: fix a tiny typo.

Johannes Schindelin (1):
      t4118: be nice to non-GNU sed

Junio C Hamano (2):
      git-commit: "read-tree -m HEAD" is not the right way to read-tree quickly
      GIT 1.5.0.6

Li Yang (1):
      gitweb: Change to use explicitly function call cgi->escapHTML()

Michael S. Tsirkin (1):
      fix typo in git-am manpage

Peter Eriksen (1):
      Documentation/pack-format.txt: Clear up description of types.


Version v1.5.0.5; changes since v1.5.0.4:
-----------------------------------------

Junio C Hamano (1):
      GIT 1.5.0.5

Santi Béjar (1):
      git-merge: finish when git-read-tree fails


Version v1.5.0.4; changes since v1.5.0.3:
-----------------------------------------

Alexandre Julliard (2):
      git.el: Avoid appending a signoff line that is already present.
      git.el: Retrieve commit log information from .dotest directory.

Avi Kivity (1):
      git-send-email: Document configuration options

Brian Gernhardt (1):
      Fix diff-options references in git-diff and git-format-patch

Frank Lichtenheld (1):
      cvsserver: asciidoc formatting changes

J. Bruce Fields (7):
      glossary: fix overoptimistic automatic linking of defined terms
      user-manual: fix inconsistent example
      user-manual: fix inconsistent use of pull and merge
      user-manual: fix missing colon in git-show example
      user-manual: fix rendering of history diagrams
      user-manual: install user manual stylesheet with other web documents
      git-merge: warn when -m provided on a fast forward

Jeff King (2):
      Documentation: s/seperator/separator/
      fast-import: grow tree storage more aggressively

Johannes Schindelin (2):
      Begin SubmittingPatches with a check list
      make t8001 work on Mac OS X again

Junio C Hamano (3):
      git-commit: cd to top before showing the final stat
      git-checkout: fix "eval" used for merge labelling.
      GIT 1.5.0.4

Matthias Kestenholz (1):
      Adjust reflog filemode in shared repository

Matthias Lederhofer (1):
      setup_git_directory_gently: fix off-by-one error

Shawn O. Pearce (13):
      git-gui: Relocate the menu/transport menu code.
      git-gui: Add Reset to the Branch menu.
      git-gui: Don't create empty (same tree as parent) commits.
      git-gui: Remove unnecessary /dev/null redirection.
      fast-import: Avoid infinite loop after reset
      fast-import: Fail if a non-existant commit is used for merge
      git-gui: Make 'make' quieter by default
      Catch write_ref_sha1 failure in receive-pack
      git-gui: Allow committing empty merges
      git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." This reverts commit 92446aba47b0e0db28f7b858ea387efcca30ab44.
      git-gui: Revert "git-gui: Display all authors of git-gui." This reverts commit 871f4c97ad7e021d1a0a98c80c5da77fcf70e4af.
      git-gui: Allow 'git gui version' outside of a repository
      Don't package the git-gui credits file anymore

Theodore Ts'o (1):
      Add definition of <commit-ish> to the main git man page.

Yann Dirson (1):
      Clarify doc for git-config --unset-all.


Version v1.5.0.3; changes since v1.5.0.2:
-----------------------------------------

Alexandre Julliard (1):
      git.el: Set the default commit coding system from the repository config.

Aneesh Kumar K.V (1):
      blameview: Fix the browse behavior in blameview

Christian Schlotter (1):
      Documentation: Correct minor typo in git-add documentation.

Eygene Ryabinkin (2):
      http-push.c::lock_remote(): validate all remote refs.
      Another memory overrun in http-push.c

Gerrit Pape (2):
      git-cvsexportcommit: don't cleanup .msg if not yet committed to cvs.
      Fix quoting in update hook template

J. Bruce Fields (6):
      Documentation: mention module option to git-cvsimport
      user-manual: reset to ORIG_HEAD not HEAD to undo merge
      user-manual: ensure generated manual references stylesheet
      user-manual: insert earlier of mention content-addressable architecture
      user-manual: how to replace commits older than most recent
      user-manual: more detailed merge discussion

Jim Meyering (1):
      diff --cc: integer overflow given a 2GB-or-larger file

Johannes Schindelin (3):
      fetch.o depends on the headers, too.
      builtin-archive: use RUN_SETUP
      Document the config variable format.suffix

Junio C Hamano (5):
      git-apply: do not fix whitespaces on context lines.
      Documentation: git-remote add [-t <branch>] [-m <branch>] [-f] name url
      Start preparing Release Notes for 1.5.0.3
      git-merge: fail correctly when we cannot fast forward.
      GIT 1.5.0.3

Linus Torvalds (2):
      mailinfo: do not get confused with logical lines that are too long.
      git-show: Reject native ref

Matthias Kestenholz (1):
      Fix git-gc usage note

Michael Coleman (2):
      Fix minor typos/grammar in user-manual.txt
      builtin-fmt-merge-msg: fix bugs in --file option

Michael Poole (1):
      Correct ordering in git-cvsimport's option documentation

Paolo Bonzini (1):
      git-archimport: support empty summaries, put summary on a single line.

Ramsay Jones (5):
      Fix a "label defined but unreferenced" warning.
      Fix an "implicit function definition" warning.
      Fix some "comparison is always true/false" warnings.
      Fix a "pointer type missmatch" warning.
      Unset NO_C99_FORMAT on Cygwin.

Sergey Vlasov (3):
      Documentation/build-docdep.perl: Fix dependencies for included asciidoc files
      Documentation/git-quiltimport.txt: Fix labeled list formatting
      Documentation/git-send-email.txt: Fix labeled list formatting

Shawn O. Pearce (1):
      index-pack: Loop over pread until data loading is complete.

Theodore Ts'o (1):
      Fix git-show man page formatting in the EXAMPLES section

Uwe Kleine-König (1):
      Include config.mak in doc/Makefile

Yasushi SHOJI (1):
      glossary: Add definitions for dangling and unreachable objects


Version v1.5.0.2; changes since v1.5.0.1:
-----------------------------------------

Christian Schlotter (1):
      git-clone: Sync documentation to usage note.

Dmitry V. Levin (1):
      git-show-ref --verify: Fail if called without a reference

Fredrik Kuivinen (1):
      Fix 'git commit -a' in a newly initialized repository

Jason Riedy (3):
      Add a compat/strtoumax.c for Solaris 8.
      Obey NO_C99_FORMAT in fast-import.c.
      Check for PRIuMAX rather than NO_C99_FORMAT in fast-import.c.

Johannes Schindelin (1):
      git-diff: fix combined diff

Junio C Hamano (11):
      Reword git-am 3-way fallback failure message.
      diff-patch: Avoid emitting double-slashes in textual patch.
      Don't modify CREDITS-FILE if it hasn't changed.
      rerere: do not skip two conflicted paths next to each other.
      rerere: do not deal with symlinks.
      Add Release Notes to prepare for 1.5.0.2
      merge-index: fix longstanding bug in merging symlinks
      merge-recursive: fix longstanding bug in merging symlinks
      diff --cc: fix display of symlink conflicts during a merge.
      Documentation: describe "-f/-t/-m" options to "git-remote add"
      GIT 1.5.0.2

Martin Koegler (1):
      git-gui: Create new branches from a tag.

Michael Loeffler (1):
      Use gunzip -c over gzcat in import-tars example.

Pavel Roskin (1):
      git-remote: support remotes with a dot in the name

Robin Rosenberg (1):
      Limit filename for format-patch

Roland Dreier (1):
      Allow arbitrary number of arguments to git-pack-objects

Santi Béjar (1):
      core.legacyheaders: Use the description used in RelNotes-1.5.0

Shawn O. Pearce (16):
      git-gui: Refactor 'exec git subcmd' idiom.
      git-gui: Basic version check to ensure git 1.5.0 or later is used.
      git-gui: Permit merging tags into the current branch.
      git-gui: More consistently display the application name.
      git-gui: Print version on the console.
      git-gui: Prefer version file over git-describe.
      git-gui: Expose the browser as a subcommand.
      git-gui: Correct crash when saving options in blame mode.
      git-gui: Use mixed path for docs on Cygwin.
      git-gui: Display all authors of git-gui.
      git-gui: Change summary of git-gui.
      git-gui: Include browser in our usage message.
      git-gui: Remove TODO list.
      git-gui: Don't crash in citool mode on initial commit.
      Document the new core.bare configuration option.
      Include git-gui credits file in dist.


Version v1.5.0.1; changes since v1.5.0:
---------------------------------------

Alexandre Julliard (2):
      git-daemon: Avoid leaking the listening sockets into child processes.
      sha1_file.c: Round the mmap offset to half the window size.

Fredrik Kuivinen (2):
      Read the config in rev-list
      Documentation/i18n.txt: it is i18n.commitencoding not core.commitencoding

Junio C Hamano (15):
      Documentation: Drop full-stop from git-fast-import title.
      cmd-list: add git-remote
      Makefile: update check-docs target
      Clarify two backward incompatible repository options.
      Still updating 1.5.0 release notes.
      Add RelNotes 1.5.0.1
      Make sure packedgitwindowsize is multiple of (pagesize * 2)
      Make gitk work reasonably well on Cygwin.
      gitk: Use show-ref instead of ls-remote
      GIT-VERSION-FILE: check ./version first.
      pretend-sha1: grave bugfix.
      git-merge: minor fix for no_trivial_merge_strategies.
      Do not take mode bits from index after type change.
      Update draft release notes for 1.5.0.1
      GIT 1.5.0.1

Mark Levedahl (3):
      gitk - remove trailing whitespace from a few lines.
      Make gitk save and restore the user set window position.
      Make gitk save and restore window pane position on Linux and Cygwin.

Nicolas Pitre (1):
      Minor corrections to release notes

Paul Mackerras (1):
      Change git repo-config to git config

Shawn O. Pearce (2):
      Attempt to improve git-rebase lead-in description.
      Convert update-index references in docs to add.

Tommi Kyntola (1):
      git-blame: prevent argument parsing segfault


Version v1.5.0; changes since v1.5.0-rc4:
-----------------------------------------

Alexandre Julliard (3):
      diff.c: Reuse the pprint_rename function for diff --summary output.
      diff.c: Properly quote file names in diff --summary output.
      diff.c: More logical file name quoting for renames in diffstat.

Andy Parkins (2):
      git-gui: fix typo in GIT-VERSION-GEN, "/dev/null" not "/devnull"
      Fix potential command line overflow in hooks--update

Aneesh Kumar K.V (1):
      blameview: Move the commit info to a pane below the blame window.

David Kågedal (5):
      Handle uncommitted changes and cache descriptions
      git-blame.el: improve color handling
      git-blame.el: blame unsaved changes
      git-blame.el: Doc fixes and cleanup
      git-blame.el: Autoupdate while editing

Dotan Barak (1):
      Make it easier to override path to asciidoc command

Eric Wong (1):
      git-svn: correctly handle boolean options via git-config

Jakub Narębski (2):
      git-blame: Add Emacs Lisp file headers and GNU GPL boilerplate
      git-blame: Change installation instructions

James Bowes (1):
      Read cvsimport options from repo-config

Johannes Schindelin (5):
      for_each_reflog_ent: be forgiving about missing message
      log --reflog: honour --relative-date
      format-patch -n: make sorting easier by padding number
      log --reflog: use dwim_log
      git-gc: run pack-refs by default unless the repo is bare

Junio C Hamano (17):
      create_symref(): create leading directories as needed.
      reflog: handle $name => remotes/%s/HEAD mapping consistently for logs
      Documentation/git-pull: describe default behaviour and config interactions
      git-fetch: document automatic tag following.
      wt_status_prepare(): clean up structure initialization.
      diff_flush_name(): take struct diff_options parameter.
      t4016: test quoting funny pathnames in diff output
      Documentation: git-rebase -C<n>
      Teach git-am to pass -p option down to git-apply
      Add discussion section to git-tag documentation.
      Add RPM target for git-gui
      Do not forget to pack objects reachable from HEAD reflog.
      for-each-reflog: not having $GIT_DIR/logs directory is not an error.
      "git-fetch --tags $URL" should not overwrite existing tags
      Documentation: Moving out of detached HEAD does not warn anymore.
      Add release notes to the distribution.
      GIT 1.5.0

Linus Torvalds (2):
      git reflog show
      Mark places that need blob munging later for CRLF conversion.

Mark Levedahl (2):
      Make gitk save and restore the user set window position.
      Make gitk save and restore window pane position on Linux and Cygwin.

Matthias Lederhofer (1):
      git merge documentation: -m is optional

Michael Loeffler (1):
      import-tars: brown paper bag fix for file mode.

Michael S. Tsirkin (3):
      Update git-log and git-show documentation
      add -C[NUM] to git-am
      Document that git-am can read standard input.

Michael Spang (1):
      Work around Subversion race in git-svn tests.

Mukund (1):
      Fixed some typos in git-repack docs

Nicolas Pitre (2):
      remove mailmap.linux
      Update RPM core package description

Pavel Roskin (1):
      Clarify that git-update-server-info should be run for every git-push

René Scharfe (1):
      Avoid ugly linewrap in git help

Shawn O. Pearce (313):
      git-gui: Initial revision.
      git-gui: Additional early feature development.
      git-gui: Fixed UI layout problems on Windows.
      git-gui: Corrected keyboard bindings on Windows, improved state management.
      git-gui: Verify we should actually perform a commit when asked to do so.
      git-gui: Finished commit implementation.
      git-gui: Implemented amended commits.
      git-gui: Misc. nit type of bug fixes.
      git-gui: Started construction of fetch and push operations.
      git-gui: Worked around environment variable problems on Windows.
      git-gui: Reorganized startup procedure to ensure gitdir is right.
      git-gui: Fix menu item accelerator display on Mac OS X.
      git-gui: Correctly handle CR vs. LF within the console of fetch.
      git-gui: Check for fetch or push command failure and denote it.
      git-gui: Don't complain if no .git/remotes exist.
      git-gui: Added current TODO list.
      git-gui: Last minute idea about fetch shortcuts.
      git-gui: Automatically reopen any console closed by the user.
      git-gui: Cache all repo-config data in an array.
      git-gui: Added support for pulling from default branch of a remote.
      git-gui: Updated TODO list now that pull is starting to work.
      git-gui: Corrected diff-index/diff-files protocol parsing errors.
      git-gui: Performance improvements for large file sets.
      git-gui: More performance improvements to rescan logic.
      git-gui: Flip commit message buffer and diff area.
      git-gui: Added repack database menu option, to invoke git repack.
      git-gui: Allow the user to disable update-index --refresh during rescan.
      git-gui: Grab the index lock while running pull.
      git-gui: Pluralize timestamps within the options menu.
      git-gui: Disable pull menu items when the index is locked.
      git-gui: Don't let the user pull into an uncommitted working directory.
      git-gui: Update TODO list.
      git-gui: Bug fix for bad variable reference in display_file.
      git-gui: Changed term 'check-in' to 'include'.
      git-gui: Show only the abbreviated SHA1 after committing.
      git-gui: Cache the GIT_COMMITTER_IDENT value on first sign-off.
      git-gui: Save window geometry to .git/config during exit.
      git-gui: Change accelerator for "Include All" to M1-I.
      git-gui: Created edit menu and basic editing bindings.
      git-gui: Clear undo/redo stack when loading a message file from disk.
      git-gui: Updated TODO list now that geometry is stored.
      git-gui: Always indicate the file in the diff viewer.
      git-gui: Correctly handle files containing LF in their name.
      git-gui: Efficiently update the UI after committing.
      git-gui: Use catch rather than array names to check file.
      git-gui: Rename difffont/mainfont variables.
      git-gui: Use native tk_messageBox for errors.
      git-gui: Cleaned up error message formatting.
      git-gui: Simplified format of geometry configuration.
      git-gui: Misc. formatting cleanups.
      git-gui: Misc. bug fixes for mouse click crashes.
      git-gui: Added context menus for consoles and commit message buffer.
      git-gui: Fix mouse cursor behavior when in widgets.
      git-gui: Teach sign off to be more intelligent.
      git-gui: Corrected font used for options menu items.
      git-gui: Honor system font and let user configure fonts.
      git-gui: Allow the user to change the diff viewer font size.
      git-gui: Refresh a file if it has an empty diff.
      git-gui: Make use of the Tk font system rather than faking it.
      git-gui: Improve right click context menu binding on all platforms.
      git-gui: Rename quitting global to is_quitting.
      git-gui: Use arrow cursor rather than left_ptr.
      git-gui: Refactor options menu into an options dialog.
      git-gui: Allow the user to manipulate the fonts from the options panel.
      git-gui: Supply progress feedback when running update-index.
      git-gui: Minor options dialog UI cleanups.
      git-gui: Added Options... menu item to end of diff context menu.
      git-gui: Use 'after 1' to post UI rather than tkwait.
      git-gui: Correct bugs in font config handling.
      git-gui: Hide non-commit related commands when invoked as git-citool.
      git-gui: Don't load the global options unless necessary.
      git-gui: Allow the user to disable diff stat summary during pull.
      git-gui: Run the pre-commit hook in the background.
      git-gui: Remove the commit_active global variable.
      git-gui: Added post-commit invocation after the commit is done.
      git-gui: Always use eq/ne for string comparsions.
      git-gui: Reshow diff if we sent the file to update-index.
      git-gui: Cleanup diff construction code to prepare for more options.
      git-gui: Allow the user to control the number of context lines in a diff.
      git-gui: Sort the list of paths being updated in the index.
      git-gui: Use a smaller pipe buffer for update-index.
      git-gui: Allow the user to copy name of the file in the diff viewer.
      git-gui: Correct language for M_/A_ status codes.
      git-gui: Display status on left in diff header.
      git-gui: Minor UI layout improvements for console windows.
      git-gui: Reverted file name text field to a label.
      git-gui: By default don't allow partially included files.
      git-gui: Refactor mouse clicking on file names/icons.
      git-gui: Narrow the no differences information message.
      git-gui: Implemented multiple selection in file lists.
      git-gui: Refactor update_status -> rescan.
      git-gui: Provide an after-rescan script to rescan.
      git-gui: Allow update_index to also run a script when it completes.
      git-gui: Automatically update-index all included files before commit.
      git-gui: Disable diff actions when no diff is active.
      git-gui: Created makefile to install the program.
      git-gui: Correctly handle GIT_DIR environment variable.
      git-gui: Create Windows shortcut icons for git-gui.
      git-gui: Protect ourselves from funny GIT_DIR/working directory setups.
      git-gui: Handle ' within paths when creating Windows shortcuts.
      git-gui: Only populate a fetch or push if we have an action.
      git-gui: Create a .app file on MacOS X if requested.
      git-gui: Display error dialog on Mac OS X when no .git found.
      git-gui: Make initial commits work properly.
      git-gui: Only reshow diff when really necessary.
      git-gui: Refactor file state representations.
      git-gui: Add menu option to include only selected files.
      git-gui: Misc. comment formatting cleanups.
      git-gui: Start UI with the index locked.
      git-gui: Remove completed items from TODO list.
      git-gui: Toggle between new commit and amend commit modes.
      git-gui: Verify the user has GIT_COMMITTER_IDENT before comitting.
      git-gui: Rephrase rescan before commit informational message.
      git-gui: Allow adding untracked files in selection.
      git-gui: Don't create PkgInfo on Mac OS X "desktop icons".
      git-gui: Teach the gui how to uninclude a file.
      git-gui: Make consecutive icon clicks toggle included status of a file.
      git-gui: Correct toggling of deleted file status.
      git-gui: Fix list loading corruption introduced by 1461c5f3.
      git-gui: Describe deleted symlinks in a more friendly way.
      git-gui: Correct toggling of added/untracked status for new files.
      git-gui: Updated TODO list now that a task is complete.
      git-gui: Refactored diff line display formatting logic.
      git-gui: Restore the all important shebang line.
      git-gui: Update in memory states after commit.
      git-gui: Correct some state matchings for include/remove.
      git-gui: Improve handling of merge commits.
      git-gui: Allow users to run fsck-objects from the gui.
      git-gui: Don't save amended commit message buffer.
      git-gui: Reworded verify console title.
      git-gui: Seperate out the database operations in project menu.
      git-gui: Rename Project menu to Repository.
      git-gui: Added about dialog box.
      git-gui: Be more Macintosh like.
      git-gui: Make the copyright notice serve double duty.
      git-gui: Include the Tcl/Tk version in the about dialog.
      git-gui: Abstract out windows platform test to is_Windows proc.
      git-gui: Correct is_MacOSX platform test.
      git-gui: Warn Cygwin users about possible environment issues.
      git-gui: Added configuration editor TODO list.
      git-gui: Refactor M1 binding selection.
      git-gui: Added menu command to visualize all branches.
      git-gui: Don't start 'gitk --all' on Mac OS X.
      git-gui: Improve pull error dialogs.
      git-gui: Added revert changes command.
      git-gui: Display the current branch.
      git-gui: Support file state MD (modified/deleted).
      git-gui: Created Branch menu.
      git-gui: Parse off refs/remotes when showing current branch.
      git-gui: Abort on not implemented branch switching.
      git-gui: Automatically skip tracking branches in branch menu.
      git-gui: Rename all_branches -> all_heads.
      git-gui: Misc. comment and formatting cleanups.
      git-gui: Started implementation of switch_branch.
      git-gui: Set a proper title on our revert confirm dialog box.
      git-gui: Updated todo list.
      git-gui: Enable resolution of merge conflicts.
      git-gui: Auto-update any A? or M? files during rescan.
      git-gui: Reworded 'Include' to 'Add' to match core Git.
      git-gui: Created very crude Tools menu, to support miga.
      git-gui: Show all fetched branches for remote pulls.
      git-gui: Run git-gc rather than git-repack.
      git-gui: Corrected behavior of deleted (but existing in HEAD) files.
      git-gui: Correct wording of the revert confirmation dialog.
      git-gui: Work around odd cygpath bug on Windows.
      git-gui: Change more 'include' language to 'add'.
      git-gui: Hide the ugly bash command line from the windows desktop icon.
      git-gui: Modified makefile to embed version into git-gui script.
      git-gui: Display the git-gui version in the Help->About dialog.
      git-gui: Display the full GPL copyright notice in about dialog.
      git-gui: Ensure version number is always current.
      git-gui: Allow the user to copy the version data to the clipboard.
      git-gui: Don't offer my miga hack if its configuration file isn't present.
      git-gui: Suggest when running 'git gc' may be worthwhile.
      git-gui: Refactor reponame computation.
      git-gui: Cleanup usage of gitdir global variable.
      git-gui: Allow [gitdir ...] to act as [file join [gitdir] ...].
      git-gui: Make the gitk starting message match our usual format.
      git-gui: Display the directory we are entering during startup.
      git-gui: Start file status display refactoring.
      git-gui: Convert UI to use 'staged for commit' interface.
      git-gui: Correct DD file state to be only D_.
      git-gui: Remove invalid DM state.
      git-gui: Cleanup state descriptions.
      git-gui: Refactor add/remove proc names to align with reality.
      git-gui: Add or unstage based on the specific icon used.
      git-gui: Refactor the revert (aka checkout-index) implementation.
      git-gui: Refactor the add to commit state filters.
      git-gui: Simplify printing of index info to update-index.
      git-gui: Only permit selection in one list at a time.
      git-gui: Pad the cancel/save buttons in the options window.
      git-gui: Implemented create branch GUI.
      git-gui: Bind M1-N to create branch.
      git-gui: Implemented local branch deletion.
      git-gui: Allow users to delete branches merged upstream.
      git-gui: Allow creating branches from tracking heads.
      git-gui: Use borders on text fields in branch dialog.
      git-gui: Remove 'Allow Partially Added Files' option.
      git-gui: Move commit_prehook into commit_tree.
      git-gui: Improve the branch delete confirmation dialogs.
      git-gui: Don't delete the test target branch.
      git-gui: Attempt to checkout the new branch after creation.
      git-gui: Refactor current_diff -> current_diff_path.
      git-gui: Remove combined diff showing behavior.
      git-gui: Improve the display of merge conflicts.
      git-gui: Improve diff --cc viewing for unmerged files.
      git-gui: Fix bug in unmerged file display.
      git-gui: Clear diff from viewer if the side changed.
      git-gui: Correct disappearing unstaged files.
      git-gui: Add Refresh to diff viewer context menu.
      git-gui: Correct unmerged file detection at commit time.
      git-gui: Pad new branch name input box.
      git-gui: Use a grid layout for branch dialog.
      git-gui: Improve the merge check interface for branch deletion.
      git-gui: Change rude error popup to info popup.
      git-gui: Correctly ignore '* Unmerged path' during diff.
      git-gui: Make diff viewer colors match gitk's defaults.
      git-gui: Never line wrap in file lists.
      git-gui: Don't offer tracking branches if none exist.
      git-gui: Give a better error message on an empty branch name.
      git-gui: Allow user to specify a branch name pattern.
      git-gui: Improve keyboard traversal in dialogs.
      git-gui: Fully select a field when entering into it.
      git-gui: Automatically toggle the relevant radio buttons.
      git-gui: Correctly categorize tracking branches and heads.
      git-gui: Update todo list with finished and new items.
      git-gui: Slightly tweak new window geometry.
      git-gui: Create missing branch head on initial commit.
      git-gui: Don't format the mode line of a diff.
      git-gui: Force an update-index --refresh on unchanged files.
      git-gui: Don't attempt to tag new file/deleted file headers in diffs.
      git-gui: Fix 'Select All' action on Windows.
      git-gui: Ignore 'No newline at end of file' marker line.
      git-gui: Always start a rescan on an empty diff.
      git-gui: Don't show content of untracked binary files.
      git-gui: Limit display of large untracked files.
      git-gui: When possible show the type of an untracked file.
      git-gui: Don't try to tag the 'Binary files * and * differ' line.
      git-gui: Remove spurious newline in untracked file display.
      git-gui: Honor system encoding for filenames.
      git-gui: Handle commit encoding better.
      git-gui: Display database stats (count-objects -v) on demand.
      git-gui: Implement basic branch switching through read-tree.
      git-gui: Use system default labelframe bordering.
      git-gui: Display the size of the pack directory.
      git-gui: Only allow Refresh in diff context menu when we have a diff.
      git-gui: Allow staging/unstaging individual diff hunks.
      git-gui: Elide CRs appearing in diff output from display.
      git-gui: Cleanup end-of-line whitespace in commit messages.
      git-gui: Unset unnecessary UI setup variable.
      git-gui: Force focus to the diff viewer on mouse click.
      git-gui: Support 'Visualize All Branches' on Mac OS X.
      git-gui: Pad the database statistics dialog window.
      git-gui: Prefer Tk's entry widget over a 1 line text field.
      git-gui: Remove Pull menu and cleanup Branch/Fetch/Push menus.
      git-gui: Don't switch branches if changing to the current branch.
      git-gui: Maintain the same file list for diff during refresh.
      git-gui: Always use lsearch -exact, to prevent globbing.
      git-gui: Added arbitrary branch pushing support.
      git-gui: Remove no longer used pull from remote code.
      git-gui: Always use -v option to push.
      git-gui: Refactor console success/failure handling.
      git-gui: Use builtin version of 'git gc'.
      git-gui: Implement local merge operations.
      git-gui: Let users abort with `reset --hard` type logic.
      git-gui: Update status bar during a merge.
      git-gui: Don't allow users to commit a bad octopus merge.
      git-gui: Don't allow merges in the middle of other things.
      git-gui: Always offer scrollbars for branch lists.
      git-gui: Support merge.summary, merge.verbosity.
      git-gui: Reword meaning of merge.summary.
      git-gui: Offer quick access to the HTML formatted documentation.
      git-gui: Test for Cygwin differently than from Windows.
      git-gui: Implemented file browser and incremental blame.
      git-gui: Improve the icons used in the browser display.
      git-gui: Display the current branch name in browsers.
      git-gui: Allow users to edit user.name, user.email from options.
      git-gui: Use -M and -C when running blame.
      git-gui: Correctly handle spaces in filepaths.
      git-gui: Display original filename and line number in blame.
      git-gui: Install column headers in blame viewer.
      git-gui: Use a grid layout for the blame viewer.
      git-gui: Assign background colors to each blame hunk.
      Correct ^0 asciidoc syntax in fast-import docs.
      Correct some language in fast-import documentation.
      Correct spelling of fast-import in docs.
      tar archive frontend for fast-import.
      git-gui: Update known branches during rescan.
      git-gui: Support keyboard traversal in browser.
      git-gui: Replace \ with \\ when showing paths.
      git-gui: Refactor single_commit to a proc.
      git-gui: Separate transport/branch menus from multicommit.
      git-gui: Optionally save commit buffer on exit.
      git-gui: View blame from the command line.
      git-gui: Select subcommands like git does.
      git-gui: Relabel the Add All action.
      git-gui: Use git-config now over git-repo-config.
      git-gui: Redesign the display of annotated files.
      git-gui: Jump to the first annotation block as soon as its available.
      git-gui: Improve annotated file display.
      git-gui: Focus into blame panels on Mac OS.
      git-gui: Stop deleting gitk preferences.
      fast-import: Hide the pack boundary commits by default.
      fast-import: Add tip about importing renames.
      bash: Hide git-fast-import.
      fast-import: Support reusing 'from' and brown paper bag fix reset.
      git-gui: Allow gitexecdir, INSTALL to be set by the caller.
      git-gui: Rename GIT_VERSION to GITGUI_VERSION.
      git-gui: Generate a version file on demand.
      git-gui: Handle gitgui tags in version gen.
      git-gui: Guess our version accurately as a subproject.
      git-gui: Change base version to 0.6.
      Link git-gui into the master Makefile.

Theodore Ts'o (2):
      Print a sane error message if an alias expands to an invalid git command
      Allow aliases to expand to shell commands


Version v1.5.0-rc4; changes since v1.5.0-rc3:
---------------------------------------------

Alex Riesen (1):
      Avoid ActiveState Perl IO in t800[12]

Andy Parkins (2):
      doc: hooks.txt said post-commit default sends an email, it doesn't
      git-for-each-ref doesn't return "the bit after $GIT_DIR/refs"

Aneesh Kumar K.V (1):
      blameview: Support browsable functionality to blameview.

David Kågedal (1):
      git-blame: an Emacs minor mode to view file with git-blame output.

Eric Wong (2):
      git-svn: do not let Git.pm warn if we prematurely close pipes
      Disallow invalid --pretty= abbreviations

Gerrit Pape (1):
      git-archimport: initial import needs empty directory

Horst H. von Brand (1):
      Call make always with CFLAGS in git.spec

Johannes Schindelin (4):
      Teach the '@{...}' notation to git-log -g
      Update the documentation for the new '@{...}' syntax
      Commands requiring a work tree must not run in GIT_DIR
      fast-import: Fix compile warnings

Junio C Hamano (36):
      create_symref(): do not assume pathname from git_path() persists long enough
      detached HEAD -- finishing touches
      Use "git checkout -q" in git-bisect
      Tutorial: fix asciidoc formatting of "git add" section.
      Tutorial-2: Adjust git-status output to recent reality.
      core-tutorial: http reference link fix
      fix reflog entries for "git-branch"
      honor GIT_REFLOG_ACTION in git-commit
      Why is it bad to rewind a branch that has already been pushed out?
      combine-diff: special case --unified=0
      show-branch -g: default to the current branch.
      git-clone --reference: saner handling of borrowed symrefs.
      Revert "Allow branch.*.merge to talk about remote tracking branches."
      Rename get_ident() to fmt_ident() and make it available to outside
      t9200: Work around HFS+ issues.
      bisect: it needs to be done in a working tree.
      git-blame: no rev means start from the working tree file.
      Add pretend_sha1_file() interface.
      Use pretend_sha1_file() in git-blame and git-merge-recursive.
      blame: document --contents option
      Teach git-remote add to fetch and track
      Fix longstanding mismerge of ALL_CFLAGS vs BASIC_CFLAGS
      gitk: Use show-ref instead of ls-remote
      git-push: allow globbing wildcard refspec.
      gitweb: fix mismatched parenthesis
      annotate: fix for cvsserver.
      S_IFLNK != 0140000
      Remove contrib/colordiff
      Add deprecation notices.
      Remove git-merge-recur
      git-clone --reference: work well with pack-ref'ed reference repository
      for-each-reflog: fix case for empty log directory
      t4200: skip gc-rerere test on systems with non GNU date.
      git-add -i: update removed path correctly.
      Documentation: Add gfi to the main command list.
      GIT v1.5.0-rc4

Linus Torvalds (2):
      pager: Work around window resizing bug in 'less'
      Fix "git log -z" behaviour

Mark Levedahl (2):
      gitk - remove trailing whitespace from a few lines.
      Make gitk work reasonably well on Cygwin.

Michael Coleman (1):
      Fix some documentation typos and grammar

Michele Ballabio (1):
      Documentation: add KMail in SubmittingPatches

Nicolas Pitre (14):
      make reflog filename independent from struct ref_lock
      lock_ref_sha1_basic(): remember the original name of a ref when resolving it
      enable separate reflog for HEAD
      add reflog entries for HEAD when detached
      move create_symref() past log_ref_write()
      add logref support to git-symbolic-ref
      add reflog when moving HEAD to a new branch
      reword the detached head message a little again
      add a quiet option to git-checkout
      prevent HEAD reflog to be interpreted as current branch reflog
      provide a nice @{...} syntax to always mean the current branch reflog
      scan reflogs independently from refs
      Enable HEAD@{...} and make it independent from the current branch
      Let git-checkout always drop any detached head

Pavel Roskin (2):
      git-config --rename-section could rename wrong section
      Assorted typo fixes

Robin Rosenberg (1):
      Why is it bad to rewind a branch that has already been pushed out?

Shawn O. Pearce (113):
      Created fast-import, a tool to quickly generating a pack from blobs.
      Added automatic index generation to fast-import.
      Cleaned up memory allocation for object_entry structs.
      Refactored fast-import's internals for future additions.
      Added basic command handler to fast-import.
      Implemented branch handling and basic tree support in fast-import.
      Added tree and commit writing to fast-import.
      Implement blob ID validation in fast-import.
      Converted fast-import to a text based protocol.
      Changed fast-import's pack header creation to use pack.h
      Allow symlink blobs in trees during fast-import.
      Fixed segfault in fast-import after growing a tree.
      Converted fast-import to accept standard command line parameters.
      Added mark store/find to fast-import.
      Added branch load counter to fast-import.
      Implemented 'tag' command in fast-import.
      Implemented tree reloading in fast-import.
      Round out memory pool allocations in fast-import to pointer sizes.
      Remove branch creation command from fast-import.
      Moved from command to after data to help cvs2svn.
      Account for tree entry memory costs in fast-import.
      Added option to export the marks table when fast-import terminates.
      Added --branch-log to option to fast-import.
      Fixed GPF in fast-import caused by unterminated linked list.
      Fixed compile error in fast-import.
      Map only part of the generated pack file at any point in time.
      Added 'reset' command to clear a branch's tree.
      Don't crash fast-import if no branch log was requested.
      Converted hash memcpy/memcmp to new hashcpy/hashcmp/hashclr.
      Implemented tree delta compression in fast-import.
      Recycle data buffers for tree generation in fast-import.
      Reuse the same buffer for all commits/tags in fast-import.
      Replace ywrite in fast-import with the standard write_or_die.
      Correct tree corruption problems in fast-import.
      Additional fast-import tree delta corruption cleanups.
      Fix repository corruption when using marks for modified blobs.
      Support creation of merge commits in fast-import.
      Allow creating branches without committing in fast-import.
      Improve reuse of sha1_file library within fast-import.
      Misc. type cleanups within fast-import.
      Restructure fast-import to support creating multiple packfiles.
      Remove unnecessary duplicate_count in fast-import.
      Implemented manual packfile switching in fast-import.
      Don't create a final empty packfile in fast-import.
      Optimize index creation on large object sets in fast-import.
      Implemented automatic checkpoints within fast-import.
      Print the packfile names to stdout from fast-import.
      Corrected buffer overflow during automatic checkpoint in fast-import.
      Use uintmax_t for marks in fast-import.
      Replace redundant yread() with read_in_full() in fast-import.
      Reuse sha1 in packed_git in fast-import.
      Use .keep files in fast-import during processing.
      Ensure we close the packfile after creating it in fast-import.
      Remove unnecessary pack_fd global in fast-import.
      Correct max_packsize default in fast-import.
      Correct object_count type and stat output in fast-import.
      Print out the edge commits for each packfile in fast-import.
      Corrected BNF input documentation for fast-import.
      Correct a few types to be unsigned in fast-import.
      Declare no-arg functions as (void) in fast-import.
      Correct packfile edge output in fast-import.
      Always use struct pack_header for pack header in fast-import.
      Use fixed-size integers when writing out the index in fast-import.
      Remove unnecessary options from fast-import.
      Support delimited data regions in fast-import.
      Create test case for fast-import.
      Reduce value duplication in t9300-fast-import.
      Accept 'inline' file data in fast-import commit structure.
      Pull out remote listing functions in git-remote.
      Teach 'git remote' how to cleanup stale tracking branches.
      Cleanup prepare_packed_git_one to reuse install_packed_git.
      Correct comment in prepare_packed_git_one.
      Refactor open_packed_git to return an error code.
      Don't find objects in packs which aren't available anymore.
      Don't leak file descriptors from unavailable pack files.
      Cleanup subcommand documentation for git-remote.
      Keep untracked files not involved in a merge.
      Default GIT_MERGE_VERBOSITY to 5 during tests.
      bash: Remove short option completions for branch/checkout/diff.
      bash: Classify cat-file and reflog as plumbing.
      bash: Complete long options to git-add.
      bash: Add space after unique command name is completed.
      bash: Classify more commends out of completion.
      bash: Support unique completion on git-config.
      bash: Support unique completion when possible.
      bash: Support internal revlist options better.
      Include checkpoint command in the BNF.
      Reduce memory usage of fast-import.
      Show an example of deleting commits with git-rebase.
      bash: Support completion on git-cherry.
      bash: Hide diff-stages from completion.
      bash: Offer --prune completion for git-gc.
      bash: Hide git-resolve, its deprecated.
      bash: Support --add completion to git-config.
      bash: Support git-bisect and its subcommands.
      Don't support shell-quoted refnames in fast-import.
      Initial draft of fast-import documentation.
      bash: Support git-rebase -m continuation completion.
      bash: Complete git-remote subcommands.
      Remove --branch-log from fast-import.
      Correct compiler warnings in fast-import.
      Correct minor style issue in fast-import.
      Correct fast-import timezone documentation.
      Remove unnecessary null pointer checks in fast-import.
      Minor fast-import documentation corrections.
      Support RFC 2822 date parsing in fast-import.
      Don't do non-fastforward updates in fast-import.
      Minor timestamp related documentation corrections for fast-import.
      Teach fast-import how to clear the internal branch content.
      Teach fast-import how to sit quietly in the corner.
      Dump all refs and marks during a checkpoint in fast-import.
      Don't crash fast-import if the marks cannot be exported.
      Add a Tips and Tricks section to fast-import's manual.

Simon 'corecode' Schubert (1):
      Allow forcing of a parent commit, even if the parent is not a direct one.

Stelian Pop (1):
      Add hg-to-git conversion utility.

Uwe Kleine-König (1):
      add replay and log to the usage string of git-bisect

Yasushi SHOJI (1):
      gitweb: Convert project name to UTF-8


Version v1.5.0-rc3; changes since v1.5.0-rc2:
---------------------------------------------

Alex Riesen (5):
      Insert ACTIVESTATE_STRING in Git.pm
      Force Activestate Perl to tie git command pipe handle to a handle class
      Cleanup uninitialized value in chomp
      Allow default core.logallrefupdates to be overridden with template's config
      Fix git-update-index to work with relative pathnames.

Alexandre Julliard (1):
      vc-git.el: Take into account the destination name in vc-checkout.

Andy Parkins (5):
      New files in git weren't being downloaded during CVS update
      If abbrev is set to zero in git-describe, don't add the unique suffix
      Allow the tag signing key to be specified in the config file
      UNIX reference time of 1970-01-01 00:00 is UTC timezone, not local time zone
      Heavily expanded update hook to send more useful emails than the old hook

Aneesh Kumar K.V (2):
      blameview: Use git-cat-file to read the file content.
      Update git-cat-file documentation

Bill Lear (1):
      Document --check option to git diff.

David Kågedal (1):
      Improved error message from git-rebase

Eric Wong (1):
      git-svn: remove leading slash when printing removed directories

J. Bruce Fields (31):
      Documentation: add git user's manual
      Documentation: expand preface and todo's
      Documentation: git-rebase discussion, miscellaneous user-manual updates
      Documentation: more user-manual todo's
      Documentation: reorder development section, todo's
      Documentation: begin discussion of git-remote in user manual
      Documentation: rev-list -> rev-parse, other typos, start examples
      user manual: answer some comments from Junio
      user-manual: replace init-db by init
      user-manual: reindent
      user-manual:  rewrap, fix heading levels
      user-manual: add "quick start" as chapter 1
      user-manual: minor quickstart reorganization
      user-manual: clarify difference between tag and branch
      user-manual: update references discussion
      user-manual: update git-gc discussion
      user-manual: stub discussion of fsck and reflog
      user-manual: reorganize fetch discussion, add internals, etc.
      user-manual: git-fsck, dangling objects
      user-manual: fsck-objects -> fsck
      user-manual: repo-config -> config
      user-manual: add references to git-config man page
      user-manual: typo fix
      user-manual: fix a header level
      user-manual: reflogs, other recovery
      user-manual: rewrap a few long lines
      user-manual: minor "TODO" updates
      user-manual: document git-show-branch example
      user-manual: SHA1 -> object name
      user-manual: point to README for gitweb information
      user-manual: todo's

Jakub Narębski (3):
      Documentation/config.txt: Document config file syntax better
      t/t1300-repo-config.sh: value continued on next line
      Documentation/config.txt: Correct info about subsection name

Jason Riedy (1):
      Use inttypes.h rather than stdint.h.

Jeff King (4):
      format-patch: fix bug with --stdout in a subdirectory
      contrib/vim: update syntax for changed commit template
      diffcore-pickaxe: fix infinite loop on zero-length needle
      Add a sample program 'blameview' to show how to use git-blame --incremental

Johannes Schindelin (2):
      annotate: use pager
      reflog inspection: introduce shortcut "-g"

Johannes Sixt (1):
      Add a missing fork() error check.

Junio C Hamano (43):
      User manual: fix typos in examples
      Documentation/tutorial-2: Fix interesting typo in an example.
      Revert "prune: --grace=time"
      Make sure git_connect() always give two file descriptors.
      is_repository_shallow(): prototype fix.
      shallow repository: disable unsupported operations for now.
      git-gc: do not run git-prune by default.
      cvsimport: activate -a option, really.
      .mailmap: fix screw-ups in Uwe's name
      honor --author even with --amend, -C, and -c.
      reflog gc: a tag that does not point at a commit is not a crime.
      git-checkout -m: fix merge case
      git-daemon documentation on enabling services.
      ls-remote and clone: accept --upload-pack=<path> as well.
      Refactor the pack header reading function out of receive-pack.c
      Allow fetch-pack to decide keeping the fetched pack without exploding
      fetch-pack: remove --keep-auto and make it the default.
      Consolidate {receive,fetch}.unpackLimit
      Allow non-developer to clone, checkout and fetch more easily.
      parse-remote: do not barf on a remote shorthand without any refs to fetch.
      show-branch -g: default to HEAD
      Documentation: pack-refs --all vs default behaviour
      Make sure we do not write bogus reflog entries.
      git-merge: leave sensible reflog message when used as the first level UI.
      create_symref: check error return from open().
      write_in_full: size_t is unsigned.
      Don't force everybody to call setup_ident().
      git-blame --porcelain: quote filename in c-style when needed.
      Update describe documentation.
      Document 'git-blame --incremental'
      git-fsck-objects is now synonym to git-fsck
      Two small typofixes.
      lock_any_ref_for_update(): do not accept malformatted refs.
      git-commit -s: no extra space when sign-offs appear at the end already.
      git-blame: somewhat better commenting.
      git-send-email: remove debugging output.
      Fix git-tag -u
      Documentation: "git-checkout <tree> <path>" takes any tree-ish
      t9200: Re-code non-ascii path test in UTF-8
      t9200: do not test -x bit if the filesystem does not support it.
      git main documentation: point at the user's manual.
      Do not use hardcoded path to xhmtl.xsl to generate user's manual
      GIT v1.5.0-rc3

Linus Torvalds (5):
      fsck-objects: refactor checking for connectivity
      Fix seriously broken "git pack-refs"
      Add dangling objects tips.
      git-blame --incremental
      git-push through git protocol

Mark Wooding (3):
      wt-status: Actually accept `color.status.BLAH' configuration variables.
      Documentation/config.txt: Fix documentation of colour config tweaks.
      Make fsck and fsck-objects be builtins.

Nicolas Pitre (3):
      fix suggested branch creation command when detaching head
      git-log -g --pretty=oneline should display the reflog message
      tone down the detached head warning

Peter Eriksen (2):
      sha1_file.c: Avoid multiple calls to find_pack_entry().
      Documentation: --amend cannot be combined with -c/-C/-F.

René Scharfe (1):
      git-blame --incremental: don't use pager

Sam Vilain (1):
      contrib/emacs/vc-git.el: support vc-version-other-window

Santi Béjar (1):
      git-fetch: Allow fetching the remote HEAD

Shawn O. Pearce (6):
      Remove unnecessary found variable from describe.
      Teach git-describe to display distances from tags.
      Compute accurate distances in git-describe before output.
      Teach for-each-ref about a little language called Tcl.
      Don't coredump on bad refs in update-server-info.
      Escape --upload-pack from expr.

Simon 'corecode' Schubert (1):
      Replace perl code with pure shell code

Tom Prince (1):
      Rename git-repo-config to git-config.

Uwe Kleine-König (2):
      rename --exec to --upload-pack for fetch-pack and peek-remote
      make --upload-pack option to git-fetch configurable


Version v1.5.0-rc2; changes since v1.5.0-rc1:
---------------------------------------------

Bob Proulx (1):
      git-revert: Fix die before git-sh-setup defines it.

Chris Wedgwood (1):
      cache.h; fix a couple of prototypes

David Kågedal (2):
      Shell syntax fix in git-reset
      Document --ignore-if-in-upstream in git-format-patch

Doug Maxey (1):
      gitk: add current directory to main window title

Eric Wong (2):
      git-svn: fix tests to work with older svn
      git-svn: print and flush authentication prompts to STDERR

Jason Riedy (4):
      Start all test scripts with /bin/sh.
      Set _ALL_SOURCE for AIX, but avoid its struct list.
      Replace "echo -n" with printf in shell scripts.
      Solaris 5.8 returns ENOTDIR for inappropriate renames.

Jeff King (1):
      git-pull: disallow implicit merging to detached HEAD

Johannes Schindelin (9):
      Fix spurious compile error
      config_set_multivar(): disallow newlines in keys
      show_date(): fix relative dates
      apply --cached: fix crash in subdirectory
      Do not verify filenames in a bare repository
      Teach the revision walker to walk by reflogs with --walk-reflogs
      --walk-reflogs: disallow uninteresting commits
      --walk-reflogs: actually find the right commit by date.
      --walk-reflogs: do not crash with cyclic reflog ancestry

Junio C Hamano (69):
      reflog-expire: brown paper bag fix.
      merge-recursive: do not report the resulting tree object name
      Explain "Not a git repository: '.git'".
      glossary typofix
      Make git-prune-packed a bit more chatty.
      Define cd_to_toplevel shell function in git-sh-setup
      Use cd_to_toplevel in scripts that implement it by hand.
      Allow whole-tree operations to be started from a subdirectory
      Use log output encoding in --pretty=email headers.
      t3901: test "format-patch | am" pipe with i18n
      git-commit documentation: -a adds and also removes
      Consistent message encoding while reusing log from an existing commit.
      More tests in t3901.
      git log documentation: teach -<n> form.
      Add describe test.
      Documentation: merge-output is not too verbose now.
      Use merge-recursive in git-revert/git-cherry-pick
      git reflog expire: document --stale-fix option.
      Fix git-fetch while on detached HEAD not to give needlessly alarming errors
      git-push documentation: remaining bits
      git-rm documentation: remove broken behaviour from the example.
      tutorial: shorthand for remotes but show distributed nature of git
      git-commit documentation: remove comment on unfixed git-rm
      Use merge-recursive in git-checkout -m (branch switching)
      Document where configuration files are in config.txt
      git-commit: document log message formatting convention
      Documentation/SubmittingPatches: Gnus tips
      Documentation/git-tag: the command can be used to also verify a tag.
      Documentation/git-tools.txt: mention tig and refer to wiki
      Documentation/git-tar-tree.txt: default umask is now 002
      Documentation/git-status.txt: mention color configuration
      Documentation/git-whatchanged.txt: show -<n> instead of --max-count.
      Documentation/git-sh-setup.txt: programmer's docs
      Documentation: detached HEAD
      Make a short-and-sweet "git-add -i" synonym for "git-add --interactive"
      Documentation: describe shallow repository
      Documentation/glossary.txt: unpacked objects are loose.
      Documentation/glossary.txt: describe remotes/ tracking and packed-refs
      Introduce 'git-format-patch --suffix=.patch'
      git-format-patch: do not crash with format.headers without value.
      Documentation/git-resolve: deprecated.
      Documentation: suggest corresponding Porcelain-level in plumbing docs.
      Documentation: m can be relative in "git-blame -Ln,m"
      Documentation/git-parse-remote.txt: we deal with config vars as well
      git-format-patch -3
      Add --summary to git-format-patch by default
      git-format-patch: make --binary on by default
      git-format-patch: the default suffix is now .patch, not .txt
      Use fixed-size integers for .idx file I/O
      Documentation: move command list in git.txt into separate files.
      Documentation: sync git.txt command list and manual page title
      Documentation: Generate command lists.
      for_each_reflog_ent: do not leak FILE *
      refs.c::read_ref_at(): fix bogus munmap() call.
      Documentation: generated cmds-*.txt does not depend on git.txt
      Documentation/git.txt: command re-classification
      dwim_ref(): Separate name-to-ref DWIM code out.
      Extend read_ref_at() to be usable from places other than sha1_name.
      show-branch --reflog: show the reflog message at the top.
      show-branch --reflog: tighten input validation.
      show-branch --reflog: fix show_date() call
      Stop ignoring Documentation/README
      git-tag -d: allow deleting multiple tags at once.
      branch -f: no reason to forbid updating the current branch in a bare repo.
      git-rebase: allow rebasing a detached HEAD.
      log --walk-reflog: documentation
      reflog-walk: build fixes
      Fix --walk-reflog with --pretty=oneline
      GIT v1.5.0-rc2

Linus Torvalds (2):
      Clean up write_in_full() users
      Fix up totally buggered read_or_die()

Matthias Lederhofer (2):
      prune-packed: add -q to usage
      prune: --grace=time

Michael S. Tsirkin (1):
      fix documentation for git-commit --no-verify

Nicolas Pitre (4):
      use 'init' instead of 'init-db' for shipped docs and tools
      simplify the "no changes added to commit" message
      some doc updates
      sanitize content of README file

Peter Baumann (1):
      Make gitk work when launched in a subdirectory

Quy Tonthat (1):
      git-remote: no longer silent on unknown commands.

René Scharfe (1):
      Documentation: a few spelling fixes

Santi Béjar (1):
      tutorial: Use only separate layout

Shawn O. Pearce (18):
      Improve merge performance by avoiding in-index merges.
      Hide output about SVN::Core not being found during tests.
      Remove read_or_die in favor of better error messages.
      Remove unnecessary call_depth parameter in merge-recursive.
      Allow the user to control the verbosity of merge-recursive.
      Enable output buffering in merge-recursive.
      Display a progress meter during merge-recursive.
      Convert output messages in merge-recursive to past tense.
      Always perfer annotated tags in git-describe.
      Hash tags by commit SHA1 in git-describe.
      Use binary searching on large buckets in git-describe.
      Improve git-describe performance by reducing revision listing.
      Correct priority of lightweight tags in git-describe.
      Remove hash in git-describe in favor of util slot.
      Use nice names in conflict markers during cherry-pick/revert.
      Document the master@{n} reflog query syntax.
      Refer users to git-rev-parse for revision specification syntax.
      Document pack .idx file format upgrade strategy.

Simon 'corecode' Schubert (2):
      Use fixed-size integers for the on-disk pack structure.
      Use standard -t option for touch.

Uwe Kleine-König (4):
      document --exec for git-push
      Update documentation of fetch-pack, push and send-pack
      make --exec=... option to git-push configurable
      rename --exec to --receive-pack for push and send-pack


Version v1.5.0-rc1; changes since v1.5.0-rc0:
---------------------------------------------

Alex Riesen (1):
      Speed-up recursive by flushing index only once for all entries

Alexandre Julliard (12):
      Shallow clone: do not ignore shallowness when following tags
      fetch-pack: Properly remove the shallow file when it becomes empty.
      upload-pack: Check for NOT_SHALLOW flag before sending a shallow to the client.
      git-fetch: Reset shallow_depth before auto-following tags.
      get_shallow_commits: Avoid memory leak if a commit has been reached already.
      fetch-pack: Do not fetch tags for shallow clones.
      git-clean: Fix the -q option.
      git.el: Don't use --info-only when resolving a file.
      git.el: Avoid setting font lock keywords before entering log-edit mode.
      git-apply: Remove directories that have become empty after deleting a file.
      git-clone: Make sure the master branch exists before running cat on it.
      git.el: Define the propertize function if needed, for XEmacs compatibility.

Andy Parkins (1):
      hooks/commit-msg: add example to add Signed-off-by line to message

Andy Whitcroft (6):
      send pack check for failure to send revisions list
      ssh-upload: prevent buffer overrun
      short i/o: clean up the naming for the write_{in,or}_xxx family
      short i/o: fix calls to read to use xread or read_in_full
      short i/o: fix calls to write to use xwrite or write_in_full
      short i/o: fix config updates to use write_in_full

Brian Gernhardt (3):
      Add documentation for git-branch's color configuration.
      Ignore git-init and git-remote
      Auto-quote config values in config.c:store_write_pair()

Eric Wong (21):
      git-svn: quiet down tests and fix some unportable shell constructs
      git-svn: dcommit should diff against the current HEAD after committing
      t6024-recursive-merge: quiet down this test
      test-lib: quiet down init-db output for tests
      t9200-git-cvsexportcommit.sh: quiet down commit
      git-svn: remove non-delta fetch code paths
      git-svn: print out the SVN library version in --version, too
      git-svn: verify_ref() should actually --verify
      git-svn: sort multi-init output
      git-svn: remove svnadmin dependency from the tests
      git-svn: t/t9100-git-svn-basic: remove old check for NO_SYMLINK
      git-svn: t/t91??-*: optimize the tests a bit
      instaweb: load Apache mime and dir modules if they are needed
      git-svn: make multi-init less confusing
      git-svn: update documentation for multi-{init|fetch}
      git-svn: make --repack work consistently between fetch and multi-fetch
      Documentation/git-svn: clarify dcommit, rebase vs pull/merge
      git-svn: fix show-ignore
      git-svn: add --prefix= option to multi-init
      git-svn: pass an unambiguous ref to rev-list when grafting-branches
      Avoid errors and warnings when attempting to do I/O on zero bytes

Fredrik Kuivinen (1):
      instaweb: Nicer error message when the http daemon isn't found

J. Bruce Fields (9):
      Docs: update cvs-migration.txt to reflect clone's new default behavior
      Documentation: update git-clone.txt for clone's new default behavior
      Documentation: update glossary entry for "origin"
      Documentation: update tutorial's discussion of origin
      Documentation: update git-pull.txt for new clone behavior
      Documentation: remove master:origin example from pull-fetch-param.txt
      Documentation: tutorial editing
      Documentation: clarify definition of "reachable"
      Documentation: add git-remote man page

Jakub Narębski (14):
      gitweb: Add mod_perl version string to "generator" meta header
      gitweb: Precompile CGI routines for mod_perl
      Add info about new test families (8 and 9) to t/README
      gitweb: Fix error in git_project_index subroutine
      gitweb: Fix bug in git_difftree_body (was '!=' instead of 'ne')
      gitweb: There can be empty patches (in git_patchset_body)
      gitweb: Fix "Use of uninitialized value" warning in git_tags_body
      gitweb: Fix error in git_patchest_body for file creation/deletion patch
      gitweb: Fix error in "rename to"/"copy to" git diff header output
      gitweb: Fix errors in git_patchset_body for empty patches
      Revert "gitweb: There can be empty patches (in git_patchset_body)"
      gitweb: Fix split patches output (e.g. file to symlink)
      gitweb: Remove superfluous "|" in "commit" view
      gitweb: Fix git_patchset_body not closing <div class="patch">

Jeff King (1):
      get_tree_entry: map blank requested entry to tree root

Jim Meyering (1):
      update hook: redirect _both_ diagnostic lines to stderr upon tag failure

Johannes Schindelin (9):
      upload-pack: no longer call rev-list
      support fetching into a shallow repository
      allow cloning a repository "shallowly"
      allow deepening of a shallow repository
      add tests for shallow stuff
      xdl_merge(): fix a segmentation fault when refining conflicts
      Fix yet another subtle xdl_merge() bug
      Sanitize for_each_reflog_ent()
      Fix t1410 for core.filemode==false

Junio C Hamano (106):
      We should make sure that the protocol is still extensible.
      Why does it mean we do not have to register shallow if we have one?
      Why didn't we mark want_obj as ~UNINTERESTING in the old code?
      shallow clone: unparse and reparse an unshallowed commit
      add for_each_reflog_ent() iterator
      Protect commits recorded in reflog from pruning.
      Teach git-repack to preserve objects referred to by reflog entries.
      reflog: fix warning message.
      Move in_merge_bases() to commit.c
      git reflog expire
      reflog expire: prune commits that are not incomplete
      reflog expire: do not punt on tags that point at non commits.
      show-branch --reflog: add documentation.
      Document --numstat in git-apply and git-diff
      Document git-reset <commit> -- <paths>...
      Move encoding conversion routine out of mailinfo to utf8.c
      i18n.logToUTF8: convert commit log message to UTF-8
      Teach log family --encoding
      everyday: update for v1.5.0
      count-objects -v: show number of packs as well.
      rerere gc: honor configuration and document it
      git-reflog: gc.* configuration and documentation.
      everyday: replace a few 'prune' and 'repack' with 'gc'
      Use 'repack -a -d -l' instead of 'repack -a -d' in git-gc
      Set NO_MMAP for Cygwin by default
      UTF-8: introduce i18n.logoutputencoding.
      gcc does not necessarily pass runtime libpath with -R
      Work around http-fetch built with cURL 7.16.0
      Rename t3900 test vector file
      t3900: test conversion to non UTF-8 as well
      GIT_SKIP_TESTS: allow users to omit tests that are known to break
      core.logallrefupdates: log remotes/ tracking branches.
      Allow non-fast-forward of remote tracking branches in default clone
      t5400 send-pack test: try a bit more nontrivial transfer.
      Revert "read_directory: show_both option."
      Fix 'git add' with .gitignore
      pack-objects: fix use of use_pack().
      mmap: set FD_CLOEXEC for file descriptors we keep open for mmap()
      send-pack: fix pipeline.
      Documentation: illustrate send-pack pipeline.
      commit re-encoding: fix confusion between no and default conversion.
      t3900: test log --encoding=none
      Documentation: i18n commit log message notes.
      Documentation: minor rewording for git-log and git-show pages.
      Move commit reencoding parameter parsing to revision.c
      commit-tree: cope with different ways "utf-8" can be spelled.
      i18n: drop "encoding" header in the output after re-coding.
      Documentation/config.txt (and repo-config manpage): mark-up fix.
      Update documentation for update hook.
      send-pack.c: use is_null_sha1()
      send-pack: tell pack-objects to use its internal rev-list.
      Do not merge random set of refs out of wildcarded refs
      i18n: do not leak 'encoding' header even when we cheat the conversion.
      Update send-pack pipeline documentation.
      fail pull/merge early in the middle of conflicted merge
      git-fetch: remove .keep file at the end.
      Strongly discourage --update-head-ok in fetch-options documentation.
      Update clone/fetch documentation with --depth (shallow clone) option
      Remove unused variable (git-commit.sh)
      fetch-pack: do not use lockfile structure on stack.
      Fix infinite loop when deleting multiple packed refs.
      tutorial: misc updates.
      git-verify-tag: make sure we remove temporary file.
      pack-check.c::verify_packfile(): don't run SHA-1 update on huge data
      rerere: Fix removal of already resolved path.
      git-remote
      builtin-prune: memory diet.
      Fix timestamp for test-tick
      builtin-prune: make file-scope static struct to an argument.
      builtin-prune: separate ref walking from reflog walking.
      Move traversal of reachable objects into a separate library.
      reflog expire --fix-stale
      reflog --fix-stale: do not check the same trees and commits repeatedly.
      diff-index --cached --raw: show tree entry on the LHS for unmerged entries.
      git-reset <tree> -- <path> restores absense of <path> in <tree>
      Spell default packedgitlimit slightly differently
      Move initialization of log_all_ref_updates
      Introduce is_bare_repository() and core.bare configuration variable
      git-fetch: allow updating the current branch in a bare repository.
      git-status: show detached HEAD
      Detached HEAD (experimental)
      git-checkout: do not warn detaching HEAD when it is already detached.
      git-checkout: rewording comments regarding detached HEAD.
      git-checkout: safety when coming back from the detached HEAD state.
      git-checkout: fix branch name output from the command
      --utf8 is now default for 'git-am'
      --prune is now default for 'pack-refs'
      rm git-rerere.perl -- it is now a built-in.
      merge-base: do not leak commit list
      Do not ignore a detected patchfile brokenness.
      Fix "Do not ignore a detected patchfile brokenness."
      builtin-archive: do not free a tree held by the object layer.
      git-checkout: safety check for detached HEAD checks existing refs
      git-checkout: handle local changes sanely when detaching HEAD
      git-am: should work when "--no-utf8 --utf8" is given
      -u is now default for 'git-applymbox'
      -u is now default for 'git-mailinfo'.
      Makefile: remove $foo when $foo.exe is built/installed.
      merge-recursive: do not use on-file index when not needed.
      Document git-init
      index-pack: write-or-die instead of unchecked write-in-full.
      config-set: check write-in-full returns in set_multivar
      git-rm: do not fail on already removed file.
      git-status: wording update to deal with deleted files.
      plug a few leaks in revision walking used in describe.
      GIT v1.5.0-rc1

Jürgen Rühle (7):
      Clarify syntax and role of git-add in status output
      Improve "nothing to commit" part of status output
      Support --amend on initial commit in status output
      Improve cached content header of status output
      Remove unnecessary git-rm --cached reference from status output
      send-email: work around double encoding of in-body From field.
      Provide better feedback for the untracked only case in status output

Lars Hjemli (3):
      Skip excessive blank lines before commit body
      Refactor print-functions in builtin-branch
      git-branch: show detached HEAD

Linus Torvalds (3):
      write-cache: do not leak the serialized cache-tree data.
      write_in_full: really write in full or return error on disk full.
      Better error messages for corrupt databases

Luben Tuikov (1):
      Blame "linenr" link jumps to previous state at "orig_lineno"

Martin Langhoff (6):
      cvsimport: skip commits that are too recent
      cvsimport: skip commits that are too recent (option and documentation)
      cvsimport: document -S and -L options
      cvsimport: cleanup temporary cvsps file
      cvsserver: detect early of we are up to date and avoid costly rev-list
      cvsserver: fix revision number during file adds

Michael Loeffler (1):
      git-commit: do not fail to print the diffstat even if there is a file named HEAD

Nicolas Pitre (5):
      add .mailmap for git-shortlog output with the git repository
      Add git-reflog to .gitignore
      move git-blame to its place in .gitignore
      "init-db" can really be just "init"
      Add git-init documentation.

Pavel Roskin (1):
      Fix warnings in sha1_file.c - use C99 printf format if available

Quy Tonthat (1):
      git-send-email: default value for "From:" field.

René Scharfe (3):
      Make check target depend on common-cmds.h
      Remove shadowing variable from traverse_trees()
      Set default "tar" umask to 002 and owner.group to root.root

Robert Fitzsimons (2):
      gitweb: Re-enable rev-list --parents for parse_commit.
      gitweb: Fix shortlog only showing HEAD revision.

Santi Béjar (2):
      Documentation/tutorial: misc updates
      git-tag: add flag to verify a tag

Sasha Khapyorsky (3):
      git-svnimport: support for incremental import
      git-svnimport: clean svn path when accessing SVN repo
      git-svnimport: fix edge revisions double importing

Shawn O. Pearce (49):
      Don't crash during repack of a reflog with pruned commits.
      Create 'git gc' to perform common maintenance operations.
      Use GIT_REFLOG_ACTION environment variable instead.
      Honor GIT_REFLOG_ACTION in git-rebase.
      Use branch names in 'git-rebase -m' conflict hunks.
      Ensure `git-pull` fails if `git-merge` fails.
      Honor pull.{twohead,octopus} in git-merge.
      Allow git-merge to select the default strategy.
      Move better_branch_name above get_ref in merge-recursive.
      Allow merging bare trees in merge-recursive.
      Use merge-recursive in git-am -3.
      Replace unpack_entry_gently with unpack_entry.
      Introduce new config option for mmap limit.
      Refactor packed_git to prepare for sliding mmap windows.
      Use off_t for index and pack file lengths.
      Create read_or_die utility routine.
      Refactor how we open pack files to prepare for multiple windows.
      Replace use_packed_git with window cursors.
      Loop over pack_windows when inflating/accessing data.
      Document why header parsing won't exceed a window.
      Unmap individual windows rather than entire files.
      Fully activate the sliding window pack access.
      Load core configuration in git-verify-pack.
      Ensure core.packedGitWindowSize cannot be less than 2 pages.
      Improve error message when packfile mmap fails.
      Support unmapping windows on 'temporary' packfiles.
      Create pack_report() as a debugging aid.
      Test suite for sliding window mmap implementation.
      Default core.packdGitWindowSize to 1 MiB if NO_MMAP.
      Release pack windows before reporting out of memory.
      Replace mmap with xmmap, better handling MAP_FAILED.
      Cleanup read_cache_from error handling.
      Fix random segfaults in pack-objects.
      Force core.filemode to false on Cygwin.
      Use PATH_MAX constant for --bare.
      Replace "GIT_DIR" with GIT_DIR_ENVIRONMENT.
      Automatically detect a bare git repository.
      Remove unnecessary argc parameter from run_command_v.
      Redirect update hook stdout to stderr.
      Use /dev/null for update hook stdin.
      Teach Git how to parse standard power of 2 suffixes.
      Update packedGit config option documentation.
      Add test case for update hooks in receive-pack.
      Increase packedGit{Limit,WindowSize} on 64 bit systems.
      Don't die in git-http-fetch when fetching packs.
      Don't save the commit buffer in git-describe.
      Make git-describe a builtin.
      Disallow working directory commands in a bare repository.
      Chose better tag names in git-describe after merges.

Stefan-W. Hahn (1):
      Replacing the system call pread() with lseek()/xread()/lseek() sequence.

Steven Grimm (3):
      Describe git-clone's actual behavior in the summary
      Print a more accurate error message when we fail to create a lock file.
      Update git-svn manpage to remove the implication that SVN::* is optional.

Theodore Ts'o (2):
      Fix formatting for urls section of fetch, pull, and push manpages
      Fix formatting for urls section of fetch, pull, and push manpages


Version v1.5.0-rc0; changes since v1.4.4.5:
-------------------------------------------

Alex Riesen (1):
      Make perl/ build procedure ActiveState friendly.

Alexandre Julliard (1):
      vc-git: Ignore errors caused by a non-existent directory in vc-git-registered.

Andreas Ericsson (2):
      ls-files: Give hints when errors happen.
      git-diff: Introduce --index and deprecate --cached.

Andy Parkins (8):
      Improve git-prune -n output
      Add support to git-branch to show local and remote branches
      Use .git/config for storing "origin" shortcut repository
      De-emphasise the symbolic link documentation.
      Explicitly add the default "git pull" behaviour to .git/config on clone
      Colourise git-branch output
      Allow subcommand.color and color.subcommand color configuration
      git-status always says what branch it's on

Aneesh Kumar K.V (1):
      Add config example with respect to branch

Brian Gernhardt (6):
      Add --add option to git-repo-config
      Make git-diff documentation use [--] when it should.
      Add documentation for show-branch --topics
      Remove COLLISION_CHECK from Makefile since it's not used.
      Keep "git --git-dir" from causing a bus error.
      Make git-show-branch options similar to git-branch.

David S. Miller (1):
      Pass -M to diff in request-pull

Eric Wong (29):
      git-svn: handle authentication without relying on cached tokens on disk
      git-svn: correctly access repos when only given partial read permissions
      git-svn: exit with status 1 for test failures
      git-svn: allow SVN:: lib users to track the root of the repository (again)
      git-svn: use ~/.subversion config files when using SVN:: libraries
      git-svn: enable delta transfers during fetches when using SVN:: libs
      git-svn: update tests for recent changes
      git-svn: error out when the SVN connection fails during a fetch
      git-svn: fix output reporting from the delta fetcher
      git-svn: color support for the log command
      git-svn: documentation updates
      git-svn: fix multi-init
      git-svn: avoid network timeouts for long-running fetches
      git-svn: extra error check to ensure we open a file correctly
      git-svn: use do_switch for --follow-parent if the SVN library supports it
      rerere: add clear, diff, and status commands
      rerere: record (or avoid misrecording) resolved, skipped or aborted rebase/am
      git-svn: enable logging of information not supported by git
      git-svn: allow dcommit to take an alternate head
      git-svn: correctly display fatal() error messages
      git-svn: correctly handle packed-refs in refs/remotes/
      git-svn: correctly handle "(no author)" when using an authors file
      git-svn: convert to using Git.pm
      git-svn: remove support for the svn command-line client
      git-svn: rename 'commit' command to 'set-tree'
      git-cvsserver: fix breakage when calling git merge-file
      Remove NO_ACCURATE_DIFF options from build systems
      git-svn: enable common fetch/commit options for dcommit
      Makefile: add quick-install-doc for installing pre-built manpages

Han-Wen Nienhuys (2):
      git-tag: allow empty tag message if -m is given explicitly.
      ident.c: Trim hint printed when gecos is empty.

Iñaki Arenaza (1):
      git-cvsimport: add support for CVS pserver method HTTP/1.x proxying

J. Bruce Fields (5):
      Documentation: clarify tutorial pull/merge discussion
      cvs-migration: improved section titles, better push/commit explanation
      Documentation: reorganize cvs-migration.txt
      Documentation: update git-clone man page with new behavior
      Documentation: simpler shared repository creation

Jakub Narębski (26):
      gitweb: Protect against possible warning in git_commitdiff
      gitweb: Buffer diff header to deal with split patches + git_patchset_body refactoring
      gitweb: Default to $hash_base or HEAD for $hash in "commit" and "commitdiff"
      gitweb: New improved formatting of chunk header in diff
      gitweb: Add an option to href() to return full URL
      gitweb: Refactor feed generation, make output prettier, add Atom feed
      gitweb: Finish restoring "blob" links in git_difftree_body
      gitweb: Replace SPC with &nbsp; also in tag comment
      gitweb: Do not use esc_html in esc_path
      gitweb: Use git-show-ref instead of git-peek-remote
      gitweb: Add author and committer email extraction to parse_commit
      gitweb: Add author and contributor email to Atom feed
      gitweb: Use author_epoch for pubdate in gitweb feeds
      gitweb: Make project description in projects list link to summary view
      gitweb: Fix Atom feed <logo>: it is $logo, not $logo_url
      git-clone: Rename --use-immingled-remote option to --no-separate-remote
      Document git-diff whitespace flags -b and -w
      gitweb: Allow PNG, GIF, JPEG images to be displayed in "blob" view
      gitweb: Don't use Content-Encoding: header in git_snapshot
      gitweb: Show target of symbolic link in "tree" view
      gitweb: Add generic git_object subroutine to display object of any type
      gitweb: Hyperlink target of symbolic link in "tree" view (if possible)
      gitweb: SHA-1 in commit log message links to "object" view
      gitweb: Do not show difftree for merges in "commit" view
      gitweb: Add title attribute to ref marker with full ref name
      gitweb: Add "next" link to commit view

Jeff King (2):
      shortlog: fix segfault on empty authorname
      vim syntax: follow recent changes to commit template

Jim Meyering (1):
      Set permissions of each new file before "cvs add"ing it.

Johannes Schindelin (30):
      Build in shortlog
      shortlog: do not crash on parsing "[PATCH"
      shortlog: read mailmap from ./.mailmap again
      shortlog: handle email addresses case-insensitively
      shortlog: fix "-n"
      shortlog: use pager
      sha1_object_info(): be consistent with read_sha1_file()
      xdiff: add xdl_merge()
      xdl_merge(): fix an off-by-one bug
      xdl_merge(): fix thinko
      diff -b: ignore whitespace at end of line
      xdl_merge(): fix and simplify conflict handling
      cvs-migration document: make the need for "push" more obvious
      Add builtin merge-file, a minimal replacement for RCS merge
      merge-file: support -p and -q; fix compile warnings
      Get rid of the dependency on RCS' merge program
      merge-recursive: add/add really is modify/modify with an empty base
      INSTALL: no need to have GNU diff installed
      git-show: grok blobs, trees and tags, too
      Document git-merge-file
      add a function to rename sections in the config
      git-branch: rename config vars branch.<branch>.*, too
      Introduce GIT_TEMPLATE_DIR
      Use git-merge-file in git-merge-one-file, too
      git-tag: support -F <file> option
      git-reset --hard: tell the user what the HEAD was reset to
      move read_mmfile() into xdiff-interface
      Add a test for git-rerere
      Make git-rerere a builtin
      commit-tree: encourage UTF-8 commit messages.

Josef Weidendorfer (2):
      Add branch.*.merge warning and documentation update
      Move "no merge candidate" warning into git-pull

Junio C Hamano (115):
      upload-pack: stop the other side when they have more roots than we do.
      apply --numstat: mark binary diffstat with - -, not 0 0
      pack-objects: tweak "do not even attempt delta" heuristics
      Store peeled refs in packed-refs file.
      remove merge-recursive-old
      git-merge: make it usable as the first class UI
      merge: allow merging into a yet-to-be-born branch.
      Store peeled refs in packed-refs (take 2).
      git-fetch: reuse ls-remote result.
      git-fetch: fix dumb protocol transport to fetch from pack-pruned ref
      git-fetch: allow glob pattern in refspec
      refs outside refs/{heads,tags} match less strongly.
      Typefix builtin-prune.c::prune_object()
      Allow git push to delete remote ref.
      gitweb: (style) use chomp without parentheses consistently.
      git-clone: stop dumb protocol from copying refs outside heads/ and tags/.
      git-branch -D: make it work even when on a yet-to-be-born branch
      git-shortlog: fix common repository prefix abbreviation.
      git-shortlog: make common repository prefix configurable with .mailmap
      git-commit: show --summary after successful commit.
      git-fetch: exit with non-zero status when fast-forward check fails
      git-fetch: allow forcing glob pattern in refspec
      fetch-pack: do not barf when duplicate re patterns are given
      grep: do not skip unmerged entries when grepping in the working tree.
      git-merge: tighten error checking.
      git-merge: do not leak rev-parse output used for checking internally.
      cvsimport: style fixup.
      git-merge: fix confusion between tag and branch
      xmerge: make return value from xdl_merge() more usable.
      merge-recursive: use xdl_merge().
      read-tree: further loosen "working file will be lost" check.
      Loosen "working file will be lost" check in Porcelain-ish
      read-tree: document --exclude-per-directory
      git-merge: squelch needless error message.
      git-merge: fix "fix confusion between tag and branch" for real
      Fix perl/ build.
      git-rerere: add 'gc' command.
      Documentation/git-commit: rewrite to make it more end-user friendly.
      git-commit: allow --only to lose what was staged earlier.
      shortlog: remove "[PATCH]" prefix from shortlog output
      shortlog: fix segfault on empty authorname
      diff --numstat: show binary with '-' to match "apply --numstat"
      add test case for recursive merge
      git-push: document removal of remote ref with :<dst> pathspec
      Revert "git-diff: Introduce --index and deprecate --cached."
      git merge: reword failure message.
      spurious .sp in manpages
      git-push: accept tag <tag> as advertised.
      send-pack: tighten checks for remote names
      branch --color: change default color selection.
      git-blame: show lines attributed to boundary commits differently.
      config documentation: group color items together.
      git-svn: allow both diff.color and color.diff
      Update git-diff documentation
      git-fetch: make it work from within a subdirectory.
      git-reset: make it work from within a subdirectory.
      git-reset [--mixed] <tree> [--] <paths>...
      merge: give a bit prettier merge message to "merge branch~$n"
      git-clone: use wildcard specification for tracking branches
      git-pull: refuse default merge without branch.*.merge
      git-clone: lose the artificial "first" fetch refspec
      git-clone: lose the traditional 'no-separate-remote' layout
      update-index: make D/F conflict error a bit more verbose.
      git-add: remove conflicting entry when adding.
      Fix check_file_directory_conflict().
      Fix mis-mark-up in git-merge-file.txt documentation
      markup fix in svnimport documentation.
      rev-list --left-right
      Teach all of log family --left-right output.
      Make left-right automatic.
      Teach show-branch how to show ref-log data.
      git-fetch: Avoid reading packed refs over and over again
      avoid accessing _all_ loose refs in git-show-ref --verify
      show-ref: fix --quiet --verify
      show-ref: fix --verify --hash=length
      parse-remote::expand_refs_wildcard()
      show-ref: fix --exclude-existing
      racy-git: documentation updates.
      rerere: fix breakage of resolving.
      fix testsuite: make sure they use templates freshly built from the source
      Teach git-branch to delete tracking branches with -r -d
      blame: -b (blame.blankboundary) and --root (blame.showroot)
      git-add --interactive
      git-add --interactive: hunk splitting
      Revert "fix testsuite: make sure they use templates freshly built from the source"
      Do not create $GIT_DIR/remotes/ directory anymore.
      Use preprocessor constants for environment variable names.
      Revert "Make left-right automatic."
      fix populate-filespec
      config_rename_section: fix FILE* leak
      simplify inclusion of system header files.
      revision: --skip=<n>
      git-add: error out when given no arguments.
      compat/inet_ntop: do not use u_int
      diff documentation: mostly talk about <commit>
      Revert "git-pull: refuse default merge without branch.*.merge"
      parse-remote: mark all refs not for merge only when fetching more than one
      _XOPEN_SOURCE problem also exists on FreeBSD
      commit-tree: do not overflow MAXPARENT
      merge and reset: adjust for "reset --hard" messages
      default pull: forget about "newbie protection" for now.
      Do not support "partial URL shorthand" anymore.
      Really fix headers for __FreeBSD__
      git-tag: lose exit after die
      Allow branch.*.merge to talk about remote tracking branches.
      git-add --interactive: add documentation
      match_pathspec() -- return how well the spec matched
      git-rm: update to saner semantics
      t3600: update the test for updated git rm
      git-rm: Documentation
      read_directory: show_both option.
      git-add: add ignored files when asked explicitly.
      git-add: warn when adding an ignored file with an explicit request.
      git-add -f: allow adding otherwise ignored files.
      GIT v1.5.0 preview

Lars Hjemli (4):
      Add -v and --abbrev options to git-branch
      git-branch: add options and tests for branch renaming
      rename_ref: use lstat(2) when testing for symlink
      git-branch: let caller specify logmsg

Luben Tuikov (1):
      Export PERL_PATH

Michael Loeffler (1):
      git-fetch: ignore dereferenced tags in expand_refs_wildcard

Nicolas Pitre (11):
      builtin git-shortlog is broken
      pack-objects: remove redundent status information
      make 'git add' a first class user friendly interface to the index
      change the unpack limit treshold to a saner value
      repacked packs should be read-only
      make commit message a little more consistent and conforting
      make patch_delta() error cases a bit more verbose
      make git a bit less cryptic on fetch errors
      index-pack usage of mmap() is unacceptably slower on many OSes other than Linux
      clarify some error messages wrt unknown object types
      checkout: make the message about the need for a new branch a bit clearer

Paul Mackerras (1):
      gitk: Fix enabling/disabling of menu items on Mac OS X

Peter Baumann (1):
      config option log.showroot to show the diff of root commits

Petr Baudis (1):
      Make git-clone --use-separate-remote the default

Quy Tonthat (4):
      git-clone documentation
      Documentation: new option -P for git-svnimport
      git-branch -d: do not stop at the first failure.
      Documentation/git-branch: new -r to delete remote-tracking branches.

René Scharfe (1):
      shortlog: remove range check

Robert Fitzsimons (17):
      gitweb: Show '...' links in "summary" view only if there are more items
      gitweb: Add missing show '...' links change.
      gitweb: optimize git_get_last_activity.
      gitweb: optimize git_shortlog_body.
      gitweb: optimize git_summary.
      gitweb: Use rev-list pattern search options.
      gitweb: Require a minimum of two character for the search text.
      gitweb: Allow search to be disabled from the config file.
      gitweb: Paginate commit/author/committer search output
      gitweb: Add parse_commits, used to bulk load commit objects.
      gitweb: We do longer need the --parents flag in rev-list.
      gitweb: Change summary, shortlog actions to use parse_commits.
      gitweb: Change log action to use parse_commits.
      gitweb: Change header search action to use parse_commits.
      gitweb: Change atom, rss actions to use parse_commits.
      gitweb: Change history action to use parse_commits.
      gitweb: Use rev-list --skip option.

Robin Rosenberg (1):
      Make cvsexportcommit work with filenames with spaces and non-ascii characters.

Sean Estabrooks (1):
      Update documentation to remove incorrect GIT_DIFF_OPTS example.

Shawn O. Pearce (30):
      Teach git-completion.bash how to complete git-merge.
      Hide plumbing/transport commands from bash completion.
      Teach bash how to complete options for git-name-rev.
      Add current branch in PS1 support to git-completion.bash.
      Teach bash how to complete git-format-patch.
      Teach bash how to complete git-cherry-pick.
      Teach bash how to complete git-rebase.
      Teach bash about git log/show/whatchanged options.
      Support bash completion of refs/remote.
      Teach bash about git-repo-config.
      Support --strategy=x completion in addition to --strategy x.
      Cache the list of merge strategies and available commands during load.
      Teach bash about git-am/git-apply and their whitespace options.
      Teach bash how to complete long options for git-commit.
      Fix broken bash completion of local refs.
      Remove uncontested renamed files during merge.
      Avoid accessing a slow working copy during diffcore operations.
      Provide more meaningful output from 'git init-db'.
      Enable reflogs by default in any repository with a working directory.
      Teach bash the new features of 'git show'.
      Suggest use of "git add file1 file2" when there is nothing to commit.
      Align section headers of 'git status' to new 'git add'.
      Default GIT_COMMITTER_NAME to login name in recieve-pack.
      Suggest 'add' in am/revert/cherry-pick.
      Rename imap-send's internal info/warn functions.
      Introduce a global level warn() function.
      Use extended SHA1 syntax in merge-recursive conflicts.
      Display 'theirs' branch name when possible in merge.
      Rename gitfakemmap to git_mmap.
      Switch git_mmap to use pread.

Terje Sten Bjerkseth (1):
      Fix system header problems on Mac OS X

Uwe Kleine-König (1):
      Fix documentation copy&paste typo


Version v1.4.4.5; changes since v1.4.4.4:
-----------------------------------------

Nicolas Pitre (5):
      clean up pack index handling a bit
      clean up and optimize nth_packed_object_sha1() usage
      get rid of num_packed_objects()
      pack-objects: learn about pack index version 2
      sha1_file.c: learn about index version 2


Version v1.4.4.4; changes since v1.4.4.3:
-----------------------------------------

Johannes Schindelin (1):
      diff --check: fix off by one error

Junio C Hamano (3):
      spurious .sp in manpages
      Fix infinite loop when deleting multiple packed refs.
      pack-check.c::verify_packfile(): don't run SHA-1 update on huge data


Version v1.4.4.3; changes since v1.4.4.2:
-----------------------------------------

Alex Riesen (1):
      Clarify fetch error for missing objects.

Brian Gernhardt (1):
      Move Fink and Ports check to after config file

Chris Wright (1):
      no need to install manpages as executable

Eric Wong (2):
      git-svn: exit with status 1 for test failures
      git-svn: correctly display fatal() error messages

Jim Meyering (1):
      Don't use memcpy when source and dest. buffers may overlap

Junio C Hamano (1):
      GIT 1.4.4.3

Martin Langhoff (1):
      cvsserver: Avoid miscounting bytes in Perl v5.8.x

Shawn O. Pearce (2):
      Make sure the empty tree exists when needed in merge-recursive.
      Bypass expensive content comparsion during rename detection.


Version v1.4.4.2; changes since v1.4.4.1:
-----------------------------------------

Alex Riesen (1):
      git-blame: fix rev parameter handling.

Andy Parkins (2):
      Increase length of function name buffer
      Document git-repo-config --bool/--int options.

Eric Wong (4):
      git-svn: error out from dcommit on a parent-less commit
      git-svn: correctly handle revision 0 in SVN repositories
      git-svn: preserve uncommitted changes after dcommit
      git-svn: avoid fetching files twice in the same revision

Johannes Schindelin (1):
      git-mv: search more precisely for source directory in index

Junio C Hamano (5):
      git blame -C: fix output format tweaks when crossing file boundary.
      tutorial: talk about user.name early and don't start with commit -a
      receive-pack: do not insist on fast-forward outside refs/heads/
      unpack-trees: make sure "df_conflict_entry.name" is NUL terminated.
      git-reset to remove "$GIT_DIR/MERGE_MSG"

René Scharfe (1):
      archive-zip: don't use sizeof(struct ...)


Version v1.4.4.1; changes since v1.4.4:
---------------------------------------

Alexandre Julliard (1):
      gitweb: Put back shortlog instead of graphiclog in the project list.

Chris Riddoch (1):
      Move --pretty options into Documentation/pretty-formats.txt

Jim Meyering (1):
      Run "git repack -a -d" once more at end, if there's 1MB or more of not-packed data.

Johannes Schindelin (1):
      Seek back to current filepos when mmap()ing with NO_MMAP

Junio C Hamano (7):
      git-checkout: do not allow -f and -m at the same time.
      git-checkout: allow pathspec to recover lost working tree directory
      convert-objects: set _XOPEN_SOURCE to 600
      git-fetch: follow lightweit tags as well.
      do_for_each_ref: perform the same sanity check for leftovers.
      trust-executable-bit: fix breakage for symlinks
      GIT 1.4.4.1

Linus Torvalds (2):
      git-pull: allow pulling into an empty repository
      "git fmt-merge-msg" SIGSEGV

Michal Rokos (1):
      archive: use setvbuf() instead of setlinebuf()

Paolo Ciarrocchi (2):
      Teach SubmittingPatches about git-commit -s
      Doc: Make comment about merging in tutorial.txt more clear

Petr Baudis (4):
      Fix git-for-each-refs broken for tags
      git-apply: Documentation typo fix
      Documentation: Define symref and update HEAD description
      Documentation: Correct alternates documentation, document http-alternates

René Scharfe (4):
      sparse fix: non-ANSI function declaration
      sparse fix: Using plain integer as NULL pointer
      git-apply: slightly clean up bitfield usage
      Document git-runstatus


Version v1.4.4; changes since v1.4.4-rc2:
-----------------------------------------

Johannes Sixt (2):
      test-lib.sh: A command dying due to a signal is an unexpected failure.
      Catch errors when writing an index that contains invalid objects.

Jonas Fonseca (1):
      git-update-index(1): fix use of quoting in section title

Junio C Hamano (1):
      GIT 1.4.4

Robin Rosenberg (1):
      Rework cvsexportcommit to handle binary files for all cases.


Version v1.4.4-rc2; changes since v1.4.4-rc1:
---------------------------------------------

Eric Wong (3):
      git-svn: avoid printing filenames of files we're not tracking
      git-svn: don't die on rebuild when --upgrade is specified
      git-svn: fix dcommit losing changes when out-of-date from svn

Jakub Narębski (3):
      gitweb: Better git-unquoting and gitweb-quoting of pathnames
      gitweb: Use character or octal escape codes (and add span.cntrl) in esc_path
      gitweb: New improved patchset view

Junio C Hamano (14):
      gitweb: fix disabling of "forks"
      gitweb: minimally fix "fork" support.
      gitweb: do not give blame link unconditionally in diff-tree view
      git-status: quote LF in its output
      git-pickaxe: retire pickaxe
      gitweb: protect blob and diff output lines from controls.
      gitweb: protect commit messages from controls.
      gitweb: fix unmatched div in commitdiff
      Documentation: move blame examples
      git-annotate: no need to exec blame; it is built-in now.
      git-annotate: fix -S on graft file with comments.
      path-list: fix path-list-insert return value
      git-cvsserver: read from git with -z to get non-ASCII pathnames.
      GIT 1.4.4-rc2

OGAWA Hirofumi (1):
      gitk: Fix nextfile() and add prevfile()

Petr Baudis (1):
      Nicer error messages in case saving an object to db goes wrong

Robert Shearman (1):
      git-rebase: Use --ignore-if-in-upstream option when executing git-format-patch.


Version v1.4.4-rc1; changes since v1.4.3.5:
-------------------------------------------

Alan Chandler (1):
      Gitweb - provide site headers and footers

Alexandre Julliard (5):
      pack-refs: Store the full name of the ref even when packing only tags.
      git.el: Added functions for moving to the next/prev unmerged file.
      git.el: Added a function to open the current file in another window.
      git.el: Move point after the log message header when entering log-edit mode.
      git.el: Include MERGE_MSG in the log-edit buffer even when not committing a merge.

Andy Parkins (2):
      Make filenames line up in git-status output
      Remove uneccessarily similar printf() from print_ref_list() in builtin-branch

Andy Whitcroft (2):
      cvsimport: move over to using git-for-each-ref to read refs.
      git-for-each-ref: improve the documentation on scripting modes

Aneesh Kumar K.V (1):
      gitweb: Remove extra "/" in path names for git_get_project_list

Christian Couder (12):
      Add [-s|--hash] option to Linus' show-ref.
      Use Linus' show ref in "git-branch.sh".
      Document git-show-ref [-s|--hash] option.
      Fix show-ref usage for --dereference.
      Add pack-refs and show-ref test cases.
      When creating branch c/d check that branch c does not already exists.
      Uncomment test case: git branch c/d should barf if branch c exists.
      Fix a remove_empty_dir_recursive problem.
      Clean up "git-branch.sh" and add remove recursive dir test cases.
      Use git-update-ref to delete a tag instead of rm()ing the ref file.
      Check that a tag exists using show-ref instead of looking for the ref file.
      Do not create tag leading directories since git update-ref does it.

Dennis Stosberg (3):
      lock_ref_sha1_basic does not remove empty directories on BSD
      Remove bashism from t3210-pack-refs.sh
      Bash completion support for aliases

Dmitry V. Levin (1):
      git-clone: define die() and use it.

Edgar Toernig (1):
      Use memmove instead of memcpy for overlapping areas

Eric Wong (3):
      git-send-email: do not pass custom Date: header
      git-svn: avoid printing filenames of files we're not tracking
      git-svn: don't die on rebuild when --upgrade is specified

Jakub Narębski (14):
      gitweb: Improve git_print_page_path
      gitweb: Add '..' (up directory) to tree view if applicable
      gitweb: Get rid of git_print_simplified_log
      gitweb: Filter out commit ID from @difftree in git_commit and git_commitdiff
      gitweb: Print commit message without title in commitdiff only if there is any
      gitweb: Use --no-commit-id in git_commit and git_commitdiff
      Documentation: Update information about <format> in git-for-each-ref
      gitweb: Move git_get_last_activity subroutine earlier
      gitweb: Add "next" link to commitdiff view
      gitweb: Secure against commit-ish/tree-ish with the same name as path
      gitweb: Use 's' regexp modifier to secure against filenames with LF
      gitweb: Use git-for-each-ref to generate list of heads and/or tags
      gitweb: Output also empty patches in "commitdiff" view
      gitweb: Better support for non-CSS aware web browsers

Jeff King (4):
      wt-status: use simplified resolve_ref to find current branch
      gitignore: git-pack-refs is a generated file.
      gitignore: git-show-ref is a generated file.
      git-pickaxe: work properly in a subdirectory.

Jim Meyering (1):
      Don't use $author_name undefined when $from contains no /\s</.

Johannes Schindelin (3):
      Fix git-update-index --again
      show-branch: mark active branch with a '*' again
      Turn on recursive with --summary

Jonas Fonseca (1):
      Add man page for git-show-ref

Junio C Hamano (96):
      Add git-for-each-ref: helper for language bindings
      Fix t1400-update-ref test minimally
      fsck-objects: adjust to resolve_ref() clean-up.
      symbolit-ref: fix resolve_ref conversion.
      Add callback data to for_each_ref() family.
      Tell between packed, unpacked and symbolic refs.
      pack-refs: do not pack symbolic refs.
      git-pack-refs --prune
      pack-refs: fix git_path() usage.
      lock_ref_sha1_basic: remove unused parameter "plen".
      Clean-up lock-ref implementation
      update-ref: -d flag and ref creation safety.
      update a few Porcelain-ish for ref lock safety.
      Teach receive-pack about ref-log
      receive-pack: call setup_ident before git_config
      grep --all-match
      teach revision walker about --all-match.
      git-diff/git-apply: make diff output a bit friendlier to GNU patch (part 1)
      ref locking: allow 'foo' when 'foo/bar' used to exist but not anymore.
      refs: minor restructuring of cached refs data.
      lock_ref_sha1(): do not sometimes error() and sometimes die().
      lock_ref_sha1(): check D/F conflict with packed ref when creating.
      delete_ref(): delete packed ref
      git-branch: remove D/F check done by hand.
      show-ref --hash=len, --abbrev=len, and --abbrev
      git-fetch: adjust to packed-refs.
      Fix refs.c;:repack_without_ref() clean-up path
      gitweb: make leftmost column of blame less cluttered.
      git-fetch: do not look into $GIT_DIR/refs to see if a tag exists.
      pack-refs: use lockfile as everybody else does.
      gitweb: prepare for repositories with packed refs.
      Revert 954a6183756a073723a7c9fd8d2feb13132876b0
      pack-refs: call fflush before fsync.
      blame.c: whitespace and formatting clean-up.
      git-blame: --show-name (and -f)
      git-blame: --show-number (and -n)
      blame.c: move code to output metainfo into a separate function.
      git-send-email: do not drop custom headers the user prepared
      ref-log: allow ref@{count} syntax.
      git-send-email: real name with period need to be dq-quoted on From: line
      git-blame --porcelain
      gitweb: use blame --porcelain
      Make git-send-email detect mbox-style patches more readily
      core.logallrefupdates create new log file only for branch heads.
      git-pack-refs --all
      core.logallrefupdates thinko-fix
      pack-objects: document --delta-base-offset option
      blame: Document and add help text for -f, -n, and -p
      gitweb: spell "blame --porcelain" with -p
      git-repack: repo.usedeltabaseoffset
      diff --numstat
      gitweb: use for-each-ref to show the latest activity across branches
      ref-log: fix D/F conflict coming from deleted refs.
      git-pickaxe: blame rewritten.
      git-pickaxe -M: blame line movements within a file.
      git-pickaxe -C: blame cut-and-pasted lines.
      git-pickaxe: pagenate output by default.
      git-pickaxe: fix nth_line()
      git-pickaxe: improve "best match" heuristics
      git-pickaxe: introduce heuristics to avoid "trivial" chunks
      git-pickaxe: do not keep commit buffer.
      git-pickaxe: do not confuse two origins that are the same.
      git-pickaxe: get rid of wasteful find_origin().
      git-pickaxe: swap comparison loop used for -C
      sha1_name.c: avoid compilation warnings.
      t3200: git-branch testsuite update
      tests: merge-recursive is usable without Python
      merge: loosen overcautious "working file will be lost" check.
      merge-recursive: use abbreviated commit object name.
      merge-recursive: make a few functions static.
      merge-recursive: adjust to loosened "working file clobbered" check
      t6022: ignoring untracked files by merge-recursive when they do not matter
      Documentation: fix git-format-patch mark-up and link it from git.txt
      send-pack --keep: do not explode into loose objects on the receiving end.
      git-pickaxe: WIP to refcount origin structure.
      git-pickaxe: allow -Ln,m as well as -L n,m
      git-pickaxe: refcount origin correctly in find_copy_in_parent()
      git-pickaxe: tighten sanity checks.
      Revert "send-pack --keep: do not explode into loose objects on the receiving end."
      git-pickaxe: split find_origin() into find_rename() and find_origin().
      git-pickaxe: cache one already found path per commit.
      Introduce a new revision set operator <rev>^!
      branch: work in subdirectories.
      for-each-ref: "creator" and "creatordate" fields
      git-pickaxe: rename detection optimization
      git-pickaxe: simplify Octopus merges further
      git-pickaxe: re-scan the blob after making progress with -M
      git-pickaxe: re-scan the blob after making progress with -C
      git-pickaxe: fix origin refcounting
      cherry is built-in, do not ship git-cherry.sh
      git-blame: add internal statistics to count read blobs.
      git-pickaxe: optimize by avoiding repeated read_sha1_file().
      Document git-pack-refs and link it to git(7).
      git-pickaxe: -L /regexp/,/regexp/
      git-pickaxe: allow "-L <something>,+N"
      GIT 1.4.3-rc1

Karl Wiberg (1):
      ignore-errors requires cl

Lars Hjemli (2):
      Make git-branch a builtin
      Fix show-ref usagestring

Linus Torvalds (8):
      Add "git show-ref" builtin command
      Teach "git checkout" to use git-show-ref
      Start handling references internally as a sorted in-memory list
      Add support for negative refs
      Make ref resolution saner
      Enable the packed refs file format
      Allow '-' in config variable names
      git push: add verbose flag and allow overriding of default target repository

Luben Tuikov (5):
      gitweb: blame: print commit-8 on the leading row of a commit-block
      gitweb: blame: Mouse-over commit-8 shows author and date
      gitweb: blame porcelain: lineno and orig lineno swapped
      git-revert with conflicts to behave as git-merge with conflicts
      gitweb: esc_html() author in blame

Martin Waitz (2):
      gitweb: start to generate PATH_INFO URLs.
      gitweb: warn if feature cannot be overridden.

Matthew Wilcox (1):
      Add --dry-run option to git-send-email

Nicolas Pitre (24):
      introduce delta objects with offset to base
      teach git-unpack-objects about deltas with offset to base
      teach git-index-pack about deltas with offset to base
      make git-pack-objects able to create deltas with offset to base
      make pack data reuse compatible with both delta types
      let the GIT native protocol use offsets to delta base when possible
      zap a debug remnant
      allow delta data reuse even if base object is a preferred base
      index-pack: compare only the first 20-bytes of the key.
      add the capability for index-pack to read from a stream
      enable index-pack streaming capability
      make index-pack able to complete thin packs.
      add progress status to index-pack
      mimic unpack-objects when --stdin is used with index-pack
      enhance clone and fetch -k experience
      index-pack: minor fixes to comment and function name
      missing small substitution
      make git-push a bit more verbose
      Allow pack header preprocessing before unpack-objects/index-pack.
      git-fetch can use both --thin and --keep with fetch-pack now
      improve fetch-pack's handling of kept packs
      have index-pack create .keep file more carefully
      remove .keep pack lock files when done with refs update
      git-pack-objects progress flag documentation and cleanup

Petr Baudis (11):
      Fix broken sha1 locking
      Fix buggy ref recording
      gitweb: Document features better
      gitweb: Fix search form when PATH_INFO is enabled
      bisect reset: Leave the tree in usable state if git-checkout failed
      gitweb: Restore object-named links in item lists
      gitweb: Make search type a popup menu
      gitweb: Do not automatically append " git" to custom site name
      gitweb: Show project's README.html if available
      gitweb: Support for 'forks'
      gitweb: Fix up bogus $stylesheet declarations

René Scharfe (4):
      git-archive --format=zip: use default version ID
      git-archive --format=zip: add symlink support
      Built-in cherry
      Make git-cherry handle root trees

Robert Shearman (2):
      git-rebase: Use --ignore-if-in-upstream option when executing git-format-patch.
      git-rebase: Add a -v option to show a diffstat of the changes upstream at the start of a rebase.

Robin Rosenberg (2):
      Mention that pull can work locally in the synopsis
      Swap the porcelain and plumbing commands in the git man page

Ryan Anderson (1):
      Remove git-annotate.perl and create a builtin-alias for git-blame

Santi Béjar (2):
      fetch: Misc output cleanup
      merge and resolve: Output short hashes and .. in "Updating ..."

Sasha Khapyorsky (2):
      git-svnimport.perl: copying directory from original SVN place
      git-svnimport: support for partial imports

Sean Estabrooks (1):
      Add --global option to git-repo-config.

Sergey Vlasov (2):
      git-send-email: Document support for local sendmail instead of SMTP server
      git-send-email: Read the default SMTP server from the GIT config file

Shawn O. Pearce (15):
      Use column indexes in git-cvsserver where necessary.
      Allow short pack names to git-pack-objects --unpacked=.
      Only repack active packs by skipping over kept packs.
      Teach git-index-pack how to keep a pack file.
      Remove unused variable in receive-pack.
      Move deny_non_fast_forwards handling completely into receive-pack.
      Teach receive-pack how to keep pack files based on object count.
      Added completion support for git-branch.exe.
      Added bash completion support for git-reset.
      Added missing completions for show-branch and merge-base.
      Only load .exe suffix'd completions on Cygwin.
      Bash completion support for remotes in .git/config.
      Take --git-dir into consideration during bash completion.
      Support bash completion on symmetric difference operator.
      Remove more sed invocations from within bash completion.


Version v1.4.3.5; changes since v1.4.3.4:
-----------------------------------------

Alex Riesen (1):
      merge-recursive implicitely depends on trust_executable_bit

Eric Wong (3):
      git-svn: avoid printing filenames of files we're not tracking
      git-svn: don't die on rebuild when --upgrade is specified
      git-svn: fix dcommit losing changes when out-of-date from svn

Jakub Narębski (1):
      Documentation: Transplanting branch with git-rebase --onto

Jeff King (1):
      Fix git-runstatus for repositories containing a file named HEAD

Junio C Hamano (3):
      adjust_shared_perm: chmod() only when needed.
      path-list: fix path-list-insert return value
      git-cvsserver: read from git with -z to get non-ASCII pathnames.

Petr Baudis (1):
      Nicer error messages in case saving an object to db goes wrong

Robert Shearman (1):
      git-rebase: Use --ignore-if-in-upstream option when executing git-format-patch.

Tero Roponen (1):
      remove an unneeded test


Version v1.4.3.4; changes since v1.4.3.3:
-----------------------------------------

Andy Parkins (2):
      Minor grammar fixes for git-diff-index.txt
      git-clone documentation didn't mention --origin as equivalent of -o

Christian Couder (3):
      Remove --syslog in git-daemon inetd documentation examples.
      Documentation: add upload-archive service to git-daemon.
      Documentation: add git in /etc/services.

Edgar Toernig (1):
      Use memmove instead of memcpy for overlapping areas

J. Bruce Fields (1):
      Documentation: updates to "Everyday GIT"

Jakub Narębski (3):
      diff-format.txt: Combined diff format documentation supplement
      diff-format.txt: Correct information about pathnames quoting in patch format
      gitweb: Check git base URLs before generating URL from it

Jan Harkes (1):
      Continue traversal when rev-list --unpacked finds a packed commit.

Johannes Schindelin (1):
      link_temp_to_file: call adjust_shared_perm() only when we created the directory

Junio C Hamano (9):
      Documentation: clarify refname disambiguation rules.
      combine-diff: a few more finishing touches.
      combine-diff: fix hunk_comment_line logic.
      combine-diff: honour --no-commit-id
      Surround "#define DEBUG 0" with "#ifndef DEBUG..#endif"
      quote.c: ensure the same quoting across platforms.
      revision traversal: --unpacked does not limit commit list anymore.
      link_temp_to_file: don't leave the path truncated on adjust_shared_perm failure
      apply: handle "traditional" creation/deletion diff correctly.

Nicolas Pitre (1):
      pack-objects doesn't create random pack names

René Scharfe (1):
      git-cherry: document limit and add diagram

Shawn O. Pearce (3):
      Use ULONG_MAX rather than implicit cast of -1.
      Remove SIMPLE_PROGRAMS and make git-daemon a normal program.
      Remove unsupported C99 style struct initializers in git-archive.


Version v1.4.3.3; changes since v1.4.3.2:
-----------------------------------------

Eric Wong (1):
      git-svn: fix symlink-to-file changes when using command-line svn 1.4.0

Gerrit Pape (1):
      Set $HOME for selftests

Junio C Hamano (5):
      Documentation: note about contrib/.
      RPM package re-classification.
      Refer to git-rev-parse:Specifying Revisions from git.txt
      Update cherry documentation.
      Documentation/SubmittingPatches: 3+1 != 6

Petr Baudis (1):
      xdiff: Match GNU diff behaviour when deciding hunk comment worthiness of lines

Tuncer Ayaz (1):
      git-fetch.sh printed protocol fix


Version v1.4.3.2; changes since v1.4.3.1:
-----------------------------------------

Alexandre Julliard (1):
      prune-packed: Fix uninitialized variable.

J. Bruce Fields (1):
      Make prune also run prune-packed

Jakub Narębski (2):
      gitweb: Whitespace cleanup - tabs are for indent, spaces are for align (2)
      gitweb: Do not esc_html $basedir argument to git_print_tree_entry

Jim Meyering (2):
      git-clone: honor --quiet
      xdiff/xemit.c (xdl_find_func): Elide trailing white space in a context header.

Junio C Hamano (2):
      pager: default to LESS=FRSX not LESS=FRS
      daemon: do not die on older clients.

Karl Wiberg (1):
      git-vc: better installation instructions

Lars Hjemli (1):
      Fix usagestring for git-branch

Petr Baudis (1):
      gitweb: Fix setting $/ in parse_commit()

René Scharfe (1):
      git-merge: show usage if run without arguments

Santi Béjar (1):
      Documentation for the [remote] config


Version v1.4.3.1; changes since v1.4.3:
---------------------------------------

Junio C Hamano (1):
      pager: default to LESS=FRS

Lars Hjemli (1):
      Fix typo in show-index.c

Linus Torvalds (1):
      git-apply: prepare for upcoming GNU diff -u format change.

Nguyễn Thái Ngọc Duy (2):
      Reject hexstring longer than 40-bytes in get_short_sha1()
      Add revspec documentation for ':path', ':[0-3]:path' and git-describe

Nicolas Pitre (1):
      reduce delta head inflated size


Version v1.4.3; changes since v1.4.3-rc3:
-----------------------------------------

Andy Whitcroft (1):
      add proper dependancies on the xdiff source

Junio C Hamano (1):
      Revert "move pack creation to version 3"

Linus Torvalds (1):
      Fix hash function in xdiff library

Markus Amsler (1):
      git-imap-send: Strip smtp From_ header from imap message.

Petr Baudis (1):
      svnimport: Fix broken tags being generated

René Scharfe (2):
      Make write_sha1_file_prepare() void
      Replace open-coded version of hash_sha1_file()


Version v1.4.3-rc3; changes since v1.4.3-rc2:
---------------------------------------------

Christian Couder (1):
      Fix tracing when GIT_TRACE is set to an empty string.

Eric Wong (8):
      git-svn: multi-init saves and reuses --tags and --branches arguments
      git-svn: log command fixes
      Documentation/git-svn: document some of the newer features
      git-svn: -h(elp) message formatting fixes
      commit: fix a segfault when displaying a commit with unreachable parents
      git-svn: add a message encouraging use of SVN::* libraries
      git-svn: fix commits over svn+ssh://
      git-svn: reduce memory usage for large commits

Johannes Schindelin (3):
      diff: fix 2 whitespace issues
      cvsserver: Show correct letters for modified, removed and added files
      cvsserver: fix "cvs diff" in a subdirectory

Junio C Hamano (6):
      Add WEBDAV timeout to http-fetch.
      git-fetch --update-head-ok typofix
      git-pull: we say commit X, not X commit.
      git.spec.in: perl subpackage is installed in perl_vendorlib not vendorarch
      apply --numstat -z: line termination fix.
      t4015: work-around here document problem on Cygwin.

Martin Waitz (1):
      paginate git-diff by default

Nicolas Pitre (1):
      atomic write for sideband remote messages

René Scharfe (3):
      Documentation: add missing second colons and remove a typo
      Add hash_sha1_file()
      Make write_sha1_file_prepare() static

Yasushi SHOJI (1):
      clone: the given repository dir should be relative to $PWD


Version v1.4.3-rc2; changes since v1.4.3-rc1:
---------------------------------------------

Alan Chandler (2):
      Update the gitweb/README file to include setting the GITWEB_CONFIG environment
      Fix usage string to match that given in the man page

Alexandre Julliard (2):
      git.el: Fixed inverted "renamed from/to" message.
      vc-git.el: Switch to using git-blame instead of git-annotate.

Dennis Stosberg (2):
      lock_ref_sha1_basic does not remove empty directories on BSD
      Add default values for --window and --depth to the docs

Franck Bui-Huu (1):
      Add git-upload-archive to the main git man page

Jakub Narębski (1):
      gitweb: Cleanup Git logo and Git logo target generation

Junio C Hamano (9):
      Makefile: install and clean merge-recur, still.
      git-mv: invalidate the removed path properly in cache-tree
      git-push: .git/remotes/ file does not require SP after colon
      escape tilde in Documentation/git-rev-parse.txt
      tar-tree deprecation: we eat our own dog food.
      gitweb: Make the Git logo link target to point to the homepage
      git-send-email: avoid uninitialized variable warning.
      cherry-pick: make -r the default
      Fix git-revert

Luben Tuikov (3):
      gitweb: Escape ESCAPE (\e) character
      gitweb: Do not print "log" and "shortlog" redundantly in commit view
      gitweb: blame: Minimize vertical table row padding

Martin Waitz (4):
      gitweb: document webserver configuration for common gitweb/repo URLs.
      git-commit: cleanup unused function.
      git-commit: fix coding style.
      test-lib: separate individual test better in verbose mode.

Nicolas Pitre (1):
      add commit count options to git-shortlog

Petr Baudis (4):
      Show snapshot link in shortlog only if have_snapsho
      gitweb: Separate (new) and (deleted) in commitdiff by a space
      gitweb: Handle commits with empty commit messages more reasonably
      gitweb: [commit view] Do not suppress commitdiff link in root commit

René Scharfe (1):
      git-tar-tree: don't RUN_SETUP

Robin Rosenberg (1):
      Error in test description of t1200-tutorial

Yasushi SHOJI (1):
      gitweb: refactor decode() for utf8 conversion


Version v1.4.3-rc1; changes since v1.4.2.4:
-------------------------------------------

Alex Riesen (3):
      Use const for interpolate arguments
      fix daemon.c compilation for NO_IPV6=1
      do not discard constness in interp_set_entry value argument

Andy Whitcroft (3):
      send-pack: remove remote reference limit
      send-pack: switch to using git-rev-list --stdin
      svnimport: add support for parsing From: lines for author

Aneesh Kumar K.V (4):
      gitweb: Support for snapshot
      gitweb: fix snapshot support
      gitweb: Make blame and snapshot a feature.
      gitweb: Fix git_blame

Art Haas (1):
      Patch for http-fetch.c and older curl releases

Christian Couder (8):
      Trace into open fd and refactor tracing code.
      Trace into a file or an open fd and refactor tracing code.
      Update GIT_TRACE documentation.
      Fix memory leak in prepend_to_path (git.c).
      Move add_to_string to "quote.c" and make it extern.
      Fix a memory leak in "connect.c" and die if command too long.
      Fix space in string " false" problem in "trace.c".
      Remove empty ref directories that prevent creating a ref.

David Rientjes (18):
      blame.c return cleanup
      builtin-grep.c cleanup
      builtin-push.c cleanup
      diff.c cleanup
      http-push.c cleanup
      read-cache.c cleanup
      Make pprint_tag void and cleans up call in cmd_cat_file.
      Make show_entry void
      Make checkout_all void.
      Make fsck_dir void.
      Make pack_objects void.
      Make track_tree_refs void.
      Make upload_pack void and remove conditional return.
      Make sha1flush void and remove conditional return.
      make inline is_null_sha1 global
      use appropriate typedefs
      remove unnecessary initializations
      Do not use memcmp(sha1_1, sha1_2, 20) with hardcoded length.

Dennis Stosberg (10):
      "test" in Solaris' /bin/sh does not support -e
      Makefile fix for Solaris
      Add possibility to pass CFLAGS and LDFLAGS specific to the perl subdir
      Solaris has strlcpy() at least since version 8
      Look for sockaddr_storage in sys/socket.h
      Fix detection of ipv6 on Solaris
      Fix compilation with Sun CC
      gitweb: Use --git-dir parameter instead of setting $ENV{'GIT_DIR'}
      gitweb: Remove forgotten call to git_to_hash
      use do() instead of require() to include configuration

Dmitry V. Levin (3):
      Make count-objects, describe and merge-tree work in subdirectory
      Documentation: Fix broken links
      Handle invalid argc gently

Eric Wong (5):
      pass DESTDIR to the generated perl/Makefile
      git-svn: establish new connections on commit after fork
      git-svn: recommend rebase for syncing against an SVN repo
      git-svn: add the 'dcommit' command
      git-svn: stop repeatedly reusing the first commit message with dcommit

Franck Bui-Huu (10):
      Add a newline before appending "Signed-off-by: " line
      log-tree.c: cleanup a bit append_signoff()
      Add git-archive
      git-archive: wire up TAR format.
      git-archive: wire up ZIP format.
      Add git-upload-archive
      connect.c: finish_connect(): allow null pid parameter
      Test return value of finish_connect()
      upload-archive: monitor child communication even more carefully.
      git-archive: update documentation

Haavard Skinnemoen (1):
      git-send-email: Don't set author_not_sender from Cc: lines

Jakub Narębski (138):
      gitweb: whitespace cleanup
      gitweb: Use list for of open for running git commands, thorougly.
      gitweb: simplify git_get_hash_by_path
      gitweb: More explicit error messages for open "-|"
      gitweb: Cleanup - chomp $line in consistent style
      gitweb: Cleanup - chomp @lines in consistent style
      gitweb: Add git_page_nav for later use
      gitweb: Navbar refactoring - use git_page_nav to generate navigation bar
      gitweb: Replace form-feed character by ^L
      gitweb: Show project descriptions with utf-8 characters in project list correctly
      gitweb: Add "\n" after <br/> in git_page_nav
      gitweb: Pager refactoring - use git_get_paging_nav for pagination
      gitweb: Remove $project from git_get_paging_nav arguments
      gitweb: Headers refactoring - use git_header_div for header divs
      gitweb: Remove characters entities entirely when shortening string
      gitweb: Ref refactoring - use git_get_referencing for marking tagged/head commits
      gitweb: Refactor generation of shortlog, tags and heads body
      gitweb: do not quote path for list version of open "-|"
      gitweb: Remove characters entities entirely when shortening string -- correction
      gitweb: Reordering code and dividing it into categories
      gitweb: Refactoring git_project_list
      autoconf: Add support for setting SHELL_PATH and PERL_PATH
      autoconf: Move site configuration section earlier in configure.ac
      autoconf: Add support for setting PYTHON_PATH or NO_PYTHON
      autoconf: Check for ll hh j z t size specifiers introduced by C99
      autoconf: Typo cleanup, reordering etc.
      Copy description of new build configuration variables to configure.ac
      autoconf: Set NEEDS_LIBICONV unconditionally if there is no iconv in libc
      gitweb: Separate input validation and dispatch, add comment about opml action
      gitweb: die_error first (optional) parameter is HTTP status
      gitweb: Use undef for die_error to use default first (status) parameter value
      gitweb: Don't undefine query parameter related variables before die_error
      gitweb: Cleanup and uniquify error messages
      gitweb: No periods for error messages
      gitweb: No error messages with unescaped/unprotected user input
      gitweb: PATH_INFO=/ means no project
      gitweb: Inline $rss_link
      gitweb: Refactor untabifying - converting tabs to spaces
      gitweb: fix commitdiff for root commits
      gitweb: Skip nonmatching lines in difftree output, consistently
      autoconf: Unset NO_STH and NEED_STH when it is detected not needed
      gitweb: Remove unused variables in git_shortlog_body and git_heads
      autoconf: Add configure target to main Makefile
      autoconf: Error out on --without-shell and --without-perl
      autoconf: Improvements in NO_PYTHON/PYTHON_PATH handling
      autoconf: Move variables which we always set to config.mak.in
      autoconf: It is --without-python, not --no-python
      autoconf: Add support for setting CURLDIR, OPENSSLDIR, EXPATDIR
      gitweb: Whitespace cleanup - tabs are for indent, spaces are for align
      gitweb: Great subroutines renaming
      gitweb: Separate ref parsing in git_get_refs_list into parse_ref
      gitweb: Refactor printing shortened title in git_shortlog_body and git_tags_body
      gitweb: Separate main part of git_history into git_history_body
      gitweb: Separate finding project owner into git_get_project_owner
      gitweb: Change appereance of marker of refs pointing to given object
      gitweb: Skip comments in mime.types like file
      gitweb: True fix: Support for the standard mime.types map in gitweb
      gitweb: Separate printing difftree in git_commit into git_difftree_body
      gitweb: Show project's git URL on summary page
      gitweb: Add support for per project git URLs
      gitweb: Uniquify version info output, add meta generator in page header
      gitweb: Refactor printing commit message
      gitweb: Added parse_difftree_raw_line function for later use
      gitweb: Use parse_difftree_raw_line in git_difftree_body
      gitweb: bugfix: a.list formatting regression
      gitweb: Replace some presentational HTML by CSS
      gitweb: Whitespace cleanup: realign, reindent
      gitweb: Use underscore instead of hyphen to separate words in HTTP headers names
      gitweb: Route rest of action subroutines through %actions
      gitweb: Use here-doc
      gitweb: Drop the href() params which keys are not in %mapping
      gitweb: Sort CGI parameters returned by href()
      gitweb: Use git-diff-tree patch output for commitdiff
      gitweb: Show information about incomplete lines in commitdiff
      gitweb: Remove invalid comment in format_diff_line
      gitweb: Streamify patch output in git_commitdiff
      gitweb: Add git_get_{following,preceding}_references functions
      gitweb: Faster return from git_get_preceding_references if possible
      gitweb: Add git_get_rev_name_tags function
      gitweb: Use git_get_name_rev_tags for commitdiff_plain X-Git-Tag: header
      gitweb: Add support for hash_parent_base parameter for blobdiffs
      gitweb: Allow for pre-parsed difftree info in git_patchset_body
      gitweb: Parse two-line from-file/to-file diff header in git_patchset_body
      gitweb: Add invisible hyperlink to from-file/to-file diff header
      gitweb: Always display link to blobdiff_plain in git_blobdiff
      gitweb: Change here-doc back for style consistency in git_blobdiff
      gitweb: Use git-diff-tree or git-diff patch output for blobdiff
      gitweb: git_blobdiff_plain is git_blobdiff('plain')
      gitweb: Remove git_diff_print subroutine
      gitweb: Remove creating directory for temporary files
      gitweb: git_annotate didn't expect negative numeric timezone
      gitweb: Remove workaround for git-diff bug fixed in f82cd3c
      gitweb: Improve comments about gitweb features configuration
      gitweb: blobs defined by non-textual hash ids can be cached
      gitweb: Fix typo in git_difftree_body
      gitweb: Fix typo in git_patchset_body
      gitweb: Remove unused git_get_{preceding,following}_references
      gitweb: Remove git_to_hash function
      gitweb: Use @diff_opts, default ('M'), as git-diff and git-diff-tree paramete
      gitweb: Make git_print_log generic; git_print_simplified_log uses it
      gitweb: Do not remove signoff lines in git_print_simplified_log
      gitweb: Add author information to commitdiff view
      gitweb: git_print_log: signoff line is non-empty line
      gitweb: Add diff tree, with links to patches, to commitdiff view
      gitweb: Add local time and timezone to git_print_authorship
      gitweb: Move git-ls-tree output parsing to parse_ls_tree_line
      gitweb: Separate printing of git_tree row into git_print_tree_entry
      gitweb: Extend parse_difftree_raw_line to save commit info
      gitweb: Change the name of diff to parent link in "commit" view to "diff
      gitweb: Add GIT favicon, assuming image/png type
      gitweb: Correct typo: '==' instead of 'eq' in git_difftree_body
      gitweb: Divide page path into directories -- path's "breadcrumbs"
      autoconf: Add -liconv to LIBS when NEEDS_LIBICONV
      autoconf: Check for subprocess.py
      autoconf: Quote AC_CACHE_CHECK arguments
      autoconf: Fix copy'n'paste error
      autoconf: Set NO_ICONV if iconv is found neither in libc, nor in libiconv
      autoconf: Add support for setting NO_ICONV and ICONVDIR
      autoconf: Add config.cache to .gitignore
      gitweb: Make pickaxe search a feature
      gitweb: Paginate history output
      gitweb: Use File::Find::find in git_get_projects_list
      gitweb: Do not parse refs by hand, use git-peek-remote instead
      gitweb: Add git_project_index for generating index.aux
      gitweb: Allow for href() to be used for links without project param
      gitweb: Add link to "project_index" view to "project_list" page
      gitweb: Fix mimetype_guess_file for files with multiple extensions
      gitweb: Even more support for PATH_INFO based URLs
      gitweb: Require project for almost all actions
      gitweb: Always use git-peek-remote in git_get_references
      gitweb: Make git_get_refs_list do work of git_get_references
      gitweb: Fix thinko in git_tags and git_heads
      gitweb: Make git_get_hash_by_path check type if provided
      gitweb: Strip trailing slashes from $path in git_get_hash_by_path
      gitweb: Use "return" instead of "return undef" for some subs
      gitweb: Split validate_input into validate_pathname and validate_refname
      gitweb: Add git_url subroutine, and use it to quote full URLs
      gitweb: Quote filename in HTTP Content-Disposition: header

Jeff King (9):
      gitweb: optionally read config from GITWEB_CONFIG
      diff: support custom callbacks for output
      Move color option parsing out of diff.c and into color.[ch]
      git-commit.sh: convert run_status to a C builtin
      git-status: document colorization config options
      contrib/vim: add syntax highlighting file for commits
      wt-status: remove extraneous newline from 'deleted:' output
      rev-list: fix segfault with --{author,committer,grep}
      git-repack: allow git-repack to run in subdirectory

Johannes Schindelin (35):
      Git.xs: older perl do not know const char *
      Status update on merge-recursive in C
      Cumulative update of merge-recursive in C
      merge-recur: Convert variable names to lower_case
      merge-recur: Get rid of debug code
      merge-recur: Remove dead code
      merge-recur: Fix compiler warning with -pedantic
      merge-recur: Cleanup last mixedCase variables...
      merge-recur: Explain why sha_eq() and struct stage_data cannot go
      merge-recur: fix thinko in unique_path()
      read-trees: refactor the unpack_trees() part
      read-tree: move merge functions to the library
      merge-recur: use the unpack_trees() interface instead of exec()ing read-tree
      merge-recur: virtual commits shall never be parsed
      merge-recursive: fix rename handling
      http-push: avoid fork() by calling merge_bases() directly
      merge-recur: do not call git-write-tree
      merge-recur: do not setenv("GIT_INDEX_FILE")
      merge-recur: if there is no common ancestor, fake empty one
      merge-recur: try to merge older merge bases first
      merge-recur: do not die unnecessarily
      discard_cache(): discard index, even if no file was mmap()ed
      Add the --color-words option to the diff options family
      builtin-mv: readability patch
      unpack-objects: remove unused variable "eof"
      Makefile: fix typo
      Remove uneeded #include
      fmt-merge-msg: fix off-by-one bug
      Teach runstatus about --untracked
      add receive.denyNonFastforwards config variable
      receive-pack: plug memory leak in fast-forward checking code.
      Document receive.denyNonFastforwards
      runstatus: do not recurse into subdirectories if not needed
      daemon: default to 256 for HOST_NAME_MAX if it is not defined
      diff --stat: ensure at least one '-' for deletions, and one '+' for additions

Jon Loeliger (3):
      Add virtualization support to git-daemon
      Cleaned up git-daemon virtual hosting support.
      Removed memory leaks from interpolation table uses.

Jonas Fonseca (21):
      git-apply(1): document missing options and improve existing ones
      git-ls-remote(1): document --upload-pack
      git-blame(1): mention options in the synopsis and advertise pickaxe
      gitk(1): expand the manpage to look less like a template
      git(7): put the synopsis in a verse style paragraph
      gitview.txt: improve asciidoc markup
      git-svn(1): improve asciidoc markup
      describe: fix off-by-one error in --abbrev=40 handling
      Use PATH_MAX instead of MAXPATHLEN
      Use xrealloc instead of realloc
      Use fstat instead of fseek
      Use xcalloc instead of calloc
      Add --relative-date option to the revision interface
      git(7): move gitk(1) to the list of porcelain commands
      Use xmalloc instead of malloc
      Include config.mak.autogen in the doc Makefile
      git-rev-list(1): group options; reformat; document more options
      git-apply(1): document --unidiff-zero
      git-repack(1): document --window and --depth
      Fix trivial typos and inconsistencies in hooks documentation
      gitk(1): mention --all

Junio C Hamano (125):
      Perl interface: add build-time configuration to allow building with -fPIC
      Perl interface: make testsuite work again.
      perl: fix make clean
      Git.pm: tentative fix to test the freshly built Git.pm
      Perly Git: arrange include path settings properly.
      Makefile: Set USE_PIC on x86-64
      Perly git: work around buggy make implementations.
      Git.pm: clean generated files.
      Perly Git: make sure we do test the freshly built one.
      INSTALL: a tip for running after building but without installing.
      Work around sed and make interactions on the backslash at the end of line.
      upload-pack: use object pointer not copy of sha1 to keep track of has/needs.
      upload-pack: lift MAX_NEEDS and MAX_HAS limitation
      recur vs recursive: help testing without touching too many stuff.
      sha1_file.c: expose map_sha1_file() interface.
      pack-objects: reuse deflated data from new-style loose objects.
      unpack-objects: read configuration data upon startup.
      Makefile: git-merge-recur depends on xdiff libraries.
      gitweb: There can be more than two levels of subdirectories
      gitweb: an obvious cut and paste error.
      gitweb: fix use of uninitialized value.
      gitweb: when showing history of a tree, show tree link not blob
      gitweb: avoid undefined value warning in print_page_path
      gitweb/README: do not bug Kay with gitweb questions anymore
      Makefile: gitweb/gitweb.cgi is now generated.
      gitweb: do not use @@FOO@@ for replaced tokens
      .gitignore: git-merge-recur is a built file.
      Make git-checkout-index a builtin
      builtins: Makefile clean-up
      git.c: Rename NEEDS_PREFIX to RUN_SETUP
      autoconf: fix NEEDS_SSL_WITH_CRYPTO
      autoconf: NO_IPV6
      Racy git: avoid having to be always too careful
      read-cache: tweak racy-git delay logic
      autoconf: clean temporary file mak.append
      git-grep: show pathnames relative to the current directory
      upload-pack: minor clean-up in multi-ack logic
      Fix type of combine-diff.c::show_patch_diff()
      Remove combine-diff.c::uninteresting()
      t4116 apply --reverse test
      git-apply --reverse: simplify reverse option.
      git-apply --binary: clean up and prepare for --reverse
      avoid nanosleep(2)
      Documentation/technical/racy-git.txt
      Add check program "git-check-racy"
      Remove the "delay writing to avoid runtime penalty of racy-git avoidance"
      builtin-grep: remove unused debugging cruft.
      builtin-apply --reverse: two bugfixes.
      diff.c: make binary patch reversible.
      apply --reverse: tie it all together.
      git-apply --reject
      git-apply --reject: send rejects to .rej files.
      git-apply --verbose
      apply --reject: count hunks starting from 1, not 0
      Convert memset(hash,0,20) to hashclr(hash).
      hashcpy/hashcmp remaining bits.
      builtin-grep.c: remove unused debugging piece.
      update-index -g
      git-apply --reject: finishing touches.
      free(NULL) is perfectly valid.
      daemon: prepare for multiple services.
      daemon: add upload-tar service.
      multi-service daemon: documentation
      t5710: fix two thinkos.
      Constness tightening for move/link_temp_to_file()
      consolidate two copies of new style object header parsing code.
      pack-objects: re-validate data we copy from elsewhere.
      Revert "Convert git-annotate to use Git.pm"
      Revert "Git.pm: Introduce fast get_object() method"
      Revert "Make it possible to set up libgit directly (instead of from the environment)"
      pack-objects: fix thinko in revalidate code
      more lightweight revalidation while reusing deflated stream in packing
      unpack-objects desperately salvages objects from a corrupt pack
      revision.c: allow injecting revision parameters after setup_revisions().
      Teach rev-list an option to read revs from the standard input.
      Revert "daemon: add upload-tar service."
      Make apply --binary a no-op.
      diff --binary generates full index on binary files.
      Separate object listing routines out of rev-list
      pack-objects: run rev-list equivalent internally.
      pack-objects: further work on internal rev-list logic.
      pack-objects --unpacked=<existing pack> option.
      get_sha1_hex() micro-optimization
      archive: allow remote to have more formats than we understand.
      Move sideband client side support into reusable form.
      Move sideband server side support into reusable form.
      archive: force line buffered output to stderr
      Add --verbose to git-archive
      Teach --exec to git-archive --remote
      Prepare larger packet buffer for upload-pack protocol.
      Add sideband status report to git-archive protocol
      upload-archive: monitor child communication more carefully.
      builtin-archive.c: rename remote_request() to extract_remote_arg()
      pack-objects: document --revs, --unpacked and --all.
      http-fetch: fix alternates handling.
      unpack-objects -r: call it "recover".
      Document git-grep -[Hh]
      Define fallback PATH_MAX on systems that do not define one in <limits.h>
      Fix git-am safety checks
      http-fetch.c: consolidate code to detect missing fetch target
      Add ftp:// protocol support for git-http-fetch
      t1400: make test debuggable.
      apply --unidiff-zero: loosen sanity checks for --unidiff=0 patches
      builtin-grep: make pieces of it available as library.
      revision traversal: prepare for commit log match.
      revision traversal: --author, --committer, and --grep.
      repack: use only pack-objects, not rev-list.
      Update grep internal for grepping only in head/body
      git log: Unify header_filter and message_filter into one.
      Make hexval() available to others.
      sha1_name.c: understand "describe" output as a valid object name
      diff.c: second war on whitespace.
      git-apply: second war on whitespace.
      Add t5510 to test per branch configuration affecting git-fetch.
      Remove upload-tar and make git-tar-tree a thin wrapper to git-archive
      Deprecate merge-recursive.py
      diff --stat: allow custom diffstat output width.
      diff --stat: color output.
      An illustration of rev-list --parents --pretty=raw
      grep: free expressions and patterns when done.
      grep: fix --fixed-strings combined with expression.
      Contributed bash completion support for core Git tools.
      git-diff -B output fix.
      Remove -fPIC which was only needed for Git.xs
      GIT 1.4.3-rc1

Linus Torvalds (10):
      Relative timestamps in git log
      git-fsck-objects: lacking default references should not be fatal
      Fix git-fsck-objects SIGSEGV/divide-by-zero
      Add "-h/-H" parsing to "git grep"
      Allow multiple "git_path()" uses
      git-log --author and --committer are not left-anchored by default
      Clean up approxidate() in preparation for fixes
      Fix approxidate() to understand more extended numbers
      diff --stat=width[,name-width]: allow custom diffstat output width.
      Fix approxidate() to understand 12:34 AM/PM are 00:34 and 12:34

Liu Yubao (1):
      Fix duplicate xmalloc in builtin-add

Luben Tuikov (19):
      gitweb: git_tree displays blame based on repository config
      gitweb: bugfix: git_commit and git_commitdiff parents
      gitweb: blame table row no highlight fix
      gitweb: bugfix: commitdiff regression
      gitweb: bugfix: git_print_page_path() needs the hash base
      gitweb: tree view: eliminate redundant "blob"
      gitweb: Remove redundant "tree" link
      gitweb: extend blame to show links to diff and previous
      Revert "gitweb: extend blame to show links to diff and previous"
      gitweb: Remove excessively redundant entries from git_difftree_body
      gitweb: Add history and blame to git_difftree_body()
      gitweb: "alternate" starts with shade (i.e. 1)
      gitweb: Remove redundant "commit" link from shortlog
      gitweb: Factor out gitweb_have_snapshot()
      gitweb: Add snapshot to shortlog
      gitweb: Don't use quotemeta on internally generated strings
      gitweb: Remove redundant "commit" from history
      gitweb: History: blob and tree are first, then commitdiff, etc
      gitweb: tree view: hash_base and hash are now context sensitive

Martin Langhoff (1):
      git-repack: create new packs inside $GIT_DIR, not cwd

Martin Waitz (11):
      gitweb: fill in gitweb configuration by Makefile
      gitweb: use out-of-line GIT logo.
      gitweb: provide function to format the URL for an action link.
      gitweb: consolidate action URL generation.
      gitweb: continue consolidation of URL generation.
      gitweb: support for "fp" parameter.
      gitweb: support for / as home_link.
      gitweb: fix project list if PATH_INFO=="/".
      gitweb: more support for PATH_INFO based URLs
      gitweb: fix uninitialized variable warning.
      gitweb: fix display of trees via PATH_INFO.

Matthias Kestenholz (6):
      Make git-name-rev a builtin
      Make git-pack-objects a builtin
      Make git-unpack-objects a builtin
      Make git-symbolic-ref a builtin
      Add gitweb.cgi to .gitignore
      Check if pack directory exists prior to descending into it

Matthias Lederhofer (12):
      pager: environment variable GIT_PAGER to override PAGER
      gitweb: use a hash to lookup the sub for an action
      gitweb: require $ENV{'GITWEB_CONFIG'}
      gitweb: check if HTTP_ACCEPT is really set
      gitweb: fix commitdiff_plain for root commits
      gitweb: fix $project usage
      gitweb: do not use 'No such directory' error message
      gitweb: export options
      gitweb: fix warnings in PATH_INFO code and add export_ok/strict_export
      gitweb fix validating pg (page) parameter
      format-patch: use cwd as default output directory
      git-format-patch: fix bug using -o in subdirectories

Nicolas Pitre (2):
      move pack creation to version 3
      many cleanups to sha1_file.c

Paul Mackerras (10):
      gitk: Minor cleanups
      gitk: Recompute ancestor/descendent heads/tags when rereading refs
      gitk: Add a row context-menu item for creating a new branch
      gitk: Add a context menu for heads
      gitk: Fix a couple of buglets in the branch head menu items
      gitk: Add a menu item for cherry-picking commits
      gitk: Update preceding/following tag info when creating a tag
      gitk: Improve responsiveness while reading and layout out the graph
      gitk: Fix some bugs in the new cherry-picking code
      diff-index --cc shows a 3-way diff between HEAD, index and working tree.

Pavel Roskin (3):
      Fix probing for already installed Error.pm
      Delete manuals if compiling without docs
      Make perl interface a separate package

Petr Baudis (43):
      Introduce Git.pm (v4)
      Git.pm: Implement Git::exec_path()
      Git.pm: Call external commands using execv_git_cmd()
      Git.pm: Implement Git::version()
      Add Error.pm to the distribution
      Git.pm: Better error handling
      Git.pm: Handle failed commands' output
      Git.pm: Enhance the command_pipe() mechanism
      Git.pm: Implement options for the command interface
      Git.pm: Add support for subdirectories inside of working copies
      Convert git-mv to use Git.pm
      Git.pm: assorted build related fixes.
      Git.pm: Try to support ActiveState output pipe
      Git.pm: Swap hash_object() parameters
      Git.pm: Fix Git->repository("/somewhere/totally/elsewhere")
      Git.pm: Support for perl/ being built by a different compiler
      Git.pm: Remove PerlIO usage from Git.xs
      Git.pm: Avoid ppport.h
      Git.pm: Don't #define around die
      Use $GITPERLLIB instead of $RUNNING_GIT_TESTS and centralize @INC munging
      Git.pm: Add config() method
      Convert git-send-email to use Git.pm
      Git.pm: Introduce ident() and ident_person() methods
      Make it possible to set up libgit directly (instead of from the environment)
      Git.pm: Introduce fast get_object() method
      Convert git-annotate to use Git.pm
      Eliminate Scalar::Util usage from private-Error.pm
      Fix showing of path in tree view
      gitweb: Link (HEAD) tree for each project from projects list
      gitweb: More per-view navigation bar links
      gitweb: Link to tree instead of snapshot in shortlog
      gitweb: Link to latest tree from the head line in heads list
      gitweb: Link to associated tree from a particular log item in full log view
      gitweb: Rename "plain" labels to "raw"
      gitweb: Relabel "head" as "HEAD"
      Make path in tree view look nicer
      gitweb: Fix tree link associated with each commit log entry.
      gitweb: Fix @git_base_url_list usage
      Fix snapshot link in tree view
      Git.pm: Kill Git.xs for now
      Deprecate git-resolve.sh
      gitweb: Consolidate escaping/validation of query string
      gitweb: fix over-eager application of esc_html().

Pierre Habouzit (7):
      Fix a comparison bug in diff-delta.c
      avoid to use error that shadows the function name, use err instead.
      git_dir holds pointers to local strings, hence MUST be const.
      missing 'static' keywords
      remove ugly shadowing of loop indexes in subloops.
      use name[len] in switch directly, instead of creating a shadowed variable.
      n is in fact unused, and is later shadowed.

Randal L. Schwartz (1):
      builtin-upload-archive.c broken on openbsd

René Scharfe (15):
      git-verify-pack: make builtin
      Axe the last ent
      Add write_or_die(), a helper function
      Add git-zip-tree
      git-cherry: remove unused variable
      git-reset: remove unused variable
      Add git-zip-tree to .gitignore
      git-archive: make compression level of ZIP archives configurable
      Use xstrdup instead of strdup in builtin-{tar,zip}-tree.c
      git-archive: inline default_parse_extra()
      git-tar-tree: devolve git-tar-tree into a wrapper for git-archive
      Remove git-zip-tree
      Rename builtin-zip-tree.c to archive-zip.c
      git-tar-tree: Remove duplicate git_config() call
      git-tar-tree: Move code for git-archive --format=tar to archive-tar.c

Robin Rosenberg (2):
      Quote arguments to tr in test-lib
      Make cvsexportcommit remove files.

Santi Béjar (4):
      Fetch: default remote repository from branch properties
      fetch: get the remote branches to merge from the branch properties
      Add test for the default merges in fetch.
      fetch: Reset remote refs list each time fetch_main is called

Sasha Khapyorsky (3):
      Trivial support for cloning and fetching via ftp://.
      git-svnimport: Parse log message for Signed-off-by: lines
      http/ftp: optionally ask curl to not use EPSV command

Sergey Vlasov (2):
      Documentation: Fix howto/revert-branch-rebase.html generation
      git-svn: Fix fetch --no-ignore-externals with GIT_SVN_NO_LIB=1

Shawn O. Pearce (15):
      Verify we know how to read a pack before trying to using it.
      Remove unnecessary forward declaration of unpack_entry.
      Convert memcpy(a,b,20) to hashcpy(a,b).
      Convert memcpy(a,b,20) to hashcpy(a,b).
      Reorganize/rename unpack_non_delta_entry to unpack_compressed_entry.
      Reuse compression code in unpack_compressed_entry.
      Cleanup unpack_entry_gently and friends to use type_name array.
      Cleanup unpack_object_header to use only offsets.
      Convert unpack_entry_gently and friends to use offsets.
      Replace uses of strdup with xstrdup.
      Allow 'svn fetch' on '(no date)' revisions in Subversion.
      Allow '(no author)' in git-svn's authors file.
      Ignore executable bit when adding files if filemode=0.
      Allow git-checkout when on a non-existant branch.
      Corrected copy-and-paste thinko in ignore executable bit test case.

Tilman Sauerbeck (2):
      Indentation fix.
      Added support for dropping privileges to git-daemon.

Timo Hirvonen (2):
      --name-only, --name-status, --check and -s are mutually exclusive
      Remove awkward compatibility warts

Ville Skyttä (1):
      Be nicer if git executable is not installed

Yasushi SHOJI (2):
      gitweb: configurable home link string
      gitweb: Decode long title for link tooltips


Version v1.4.2.4; changes since v1.4.2.3:
-----------------------------------------

Linus Torvalds (1):
      Fix hash function in xdiff library


Version v1.4.2.3; changes since v1.4.2.2:
-----------------------------------------

Junio C Hamano (2):
      git-mv: invalidate the removed path properly in cache-tree
      git-push: .git/remotes/ file does not require SP after colon


Version v1.4.2.2; changes since v1.4.2.1:
-----------------------------------------

Junio C Hamano (2):
      Fix git-am safety checks
      git-diff -B output fix.

Liu Yubao (1):
      Fix duplicate xmalloc in builtin-add


Version v1.4.2.1; changes since v1.4.2:
---------------------------------------

Dennis Stosberg (1):
      Solaris does not support C99 format strings before version 10

Johannes Schindelin (5):
      git-mv: succeed even if source is a prefix of destination
      git-mv: add more path normalization
      git-mv: special case destination "."
      git-mv: fix off-by-one error
      builtin-mv: readability patch

Junio C Hamano (2):
      finish_connect(): thinkofix
      http-fetch: fix alternates handling.

Luben Tuikov (2):
      Fix regex pattern in commit-msg
      sample commit-msg hook: no silent exit on duplicate Signed-off-by lines


Version v1.4.2; changes since v1.4.2-rc4:
-----------------------------------------

Eric Wong (3):
      git-svn: correctly kill keyword expansion without munging EOLs
      git-svn: bugfix: allow SVN:: lib users to track the root of the repository
      git-svn: split the path from the url correctly with limited perms

Junio C Hamano (8):
      git-apply: applying a patch to make a symlink shorter.
      combine-diff: use color
      Fix git-diff A...B
      builtin-apply: remove unused increment
      git-sh-setup: do not use repo-config to test the git directory
      git-am: give better diagnostics when the patch does not apply during --3way
      Better error message when we are unable to lock the index file
      t/t4013: fix futzing with the version string.

Matthias Lederhofer (1):
      upload-pack: fix timeout in create_pack_file

Paul Mackerras (2):
      gitk: Allow the user to set some colors
      gitk: Show the currently checked-out head in bold font

Ramsay Jones (1):
      Fix header breakage with _XOPEN_SOURCE.

René Scharfe (9):
      Add has_extension()
      git-verify-pack: show usage when no pack was specified
      git-verify-pack: more careful path handling
      git-verify-pack: insist on .idx extension
      git-verify-pack: get rid of while loop
      git-verify-pack: free pack after use and a cleanup
      git-verify-pack: buffer overrun paranoia
      git-verify-pack: no need to count errors
      drop length argument of has_extension

Rutger Nijlunsing (2):
      http-push: Make WebDAV work with (broken?) default apache2 WebDAV module
      Add Documentation/howto/setup-git-server-over-http.txt


Version v1.4.2-rc4; changes since v1.4.2-rc3:
---------------------------------------------

Jeff King (1):
      git-push: allow pushing from subdirectories

Johannes Schindelin (1):
      Fix crash when GIT_DIR is invalid

Jonas Fonseca (1):
      Update git-init-db(1) and documentation of core.sharedRepository

Junio C Hamano (13):
      Cygwin needs NO_C99_FORMAT???
      Further clean-up: usage() vs die()
      Makefile: Cygwin does not seem to need NO_STRLCPY
      Fix "grep -w"
      debugging: XMALLOC_POISON
      builtin-mv: fix use of uninitialized memory.
      GIT-VERSION-GEN: adjust for ancient git
      Documentation: git-status takes the same options as git-commit
      Fix tutorial-2.html
      check return value from diff_setup_done()
      find_unique_abbrev() with len=0 should not abbreviate
      make --find-copies-harder imply -C
      allow diff.renamelimit to be set regardless of -M/-C

Michael Krelin (1):
      handle https:// protocol in git-clone

Ramsay Jones (4):
      Fixup command names in some usage strings.
      Replace some calls to die(usage_str) with usage(usage_str).
      Allow config file to specify Signed-off-by identity in format-patch.
      commit walkers: setup_ident() to record correct committer in ref-log.

René Scharfe (1):
      git-tar-tree: fix minor memory leak

Ryan Anderson (2):
      log-tree: show_log() should respect the setting of diffopt->line_termination
      annotate: Fix bug when parsing merges with differing real and logical parents.

Uwe Zeisberger (1):
      Document rev-list's option --merge


Version v1.4.2-rc3; changes since v1.4.2-rc2:
---------------------------------------------

Gerrit Pape (1):
      Build on Debian GNU/kFreeBSD

Jakub Narębski (11):
      Allow INSTALL, bindir, mandir to be set in main Makefile
      Rename man1 and man7 variables to man1dir and man7dir
      autoconf: Use autoconf to write installation directories to config.mak.autogen
      Teach make clean about configure and autoconf
      Copy description of build configuration variables to configure.ac
      autoconf: Preparing the way for autodetection
      autoconf: Checks for typedefs, structures, and compiler characteristics.
      autoconf: Checks for some library functions.
      autoconf: Checks for libraries
      autoconf: Checks for some programs
      configure.ac vertical whitespace usage cleanup

Jeff King (4):
      git-push: allow -f as an alias for --force
      git-push: remove obsolete git-push.sh
      Documentation: convert uses of git-link macro to gitlink
      git-annotate: remove extraneous debugging line

Johannes Schindelin (16):
      Allow an alias to start with "-p"
      git wrapper: add --git-dir=<path> and --bare options
      git-instaweb: some Apache have mod_cgi builtin
      git-instaweb: respect bindir from Makefile
      gitweb: fix two warnings
      t7001: add test for git-mv dir1 dir2/
      git-cvsserver: support multiline commit messages
      Extract helper bits from c-merge-recursive work
      Make git-mv a builtin
      builtin git-mv: support moving directories
      instaweb: Be more clear if httpd or the browser fail
      cvsserver: imitate git-update-ref when committing
      Makefile: ssh-pull.o depends on ssh-fetch.c
      Teach git-apply about '-R'
      Fix http-fetch
      tar-tree: illustrate an obscure feature better

Josef Weidendorfer (1):
      Extend testing git-mv for renaming of subdirectories

Junio C Hamano (18):
      git-diff A...B to (usually) mean "git-diff `git-merge-base A B` B"
      t4112: simplify the test and remove unneeded working tree file.
      lost-found: use fsck-objects --full
      git-reset: detect update-ref error and report it.
      log and diff family: honor config even from subdirectories
      git-apply -R: binary patches are irreversible for now.
      t4103: fix binary patch application test.
      git-checkout: allow "checkout HEAD -- path"
      Builtins: control the use of pager from the command table.
      fetch/clone: mark messages from remote side stand out.
      Fix "git diff blob1 blob2" showing the diff in reverse.
      read-tree: shadowed variable fix.
      Add a couple of subdirectory tests.
      diff.c: do not use pathname comparison to tell renames
      Show both blob names from "git diff blob1 blob2"
      sideband: do not use color, just say "remote:"
      Documentation/git.txt: link git-svn and git-instaweb from the main page.
      GIT 1.4.2-rc3

Linus Torvalds (4):
      Call setup_git_directory() early
      Call setup_git_directory() much earlier
      Fix double "close()" in ce_compare_data
      Fix up some fallout from "setup_git_directory()" cleanups

Luben Tuikov (8):
      gitweb.cgi: Teach git_history() to read hash from $hash_base
      gitweb.cgi: Include direct link to "raw" files from "history"
      gitweb.cgi: git_blame2: an alternative simple working git blame
      gitweb.cgi: git_blame2: Allow back-trekking through commits
      gitweb.cgi: Show "raw" head of project link even when $hash is not defined
      gitweb.cgi: git_blame2: Revision blocks now have alternating colors
      gitweb.cgi: Centralize printing of the page path
      gitweb.cgi: git_blame2: slight optimization reading the blame lines

Matthias Kestenholz (3):
      Make git-prune-packed a builtin
      Make git-repo-config a builtin
      use declarations from builtin.h for builtin commands

Matthias Lederhofer (5):
      daemon: documentation for --reuseaddr, --detach and --pid-file
      setup_git_directory_gently: do not barf when GIT_DIR is given.
      git.c: allow alias expansion without a git directory
      pager: config variable pager.color
      git-grep: document --and, --or, --not, ( and )

Michael S. Tsirkin (1):
      mailinfo: accept >From in message header

Michele Ballabio (1):
      fixed variable declaration in gitk

Pavel Roskin (3):
      Typofix in configure.ac comment.
      Quote all calls to GIT_CONF_APPEND_LINE
      Set datarootdir in config.mak.in

Petr Baudis (5):
      Remove -d from *-fetch usage strings
      Make pull() take some implicit data as explicit arguments
      Make pull() support fetching multiple targets at once
      Teach git-local-fetch the --stdin switch
      Teach git-http-fetch the --stdin switch

Ramsay Jones (7):
      Ensure git-clone exits with error if perl script fails.
      Fix annotate test script; notice when git-annotate fails.
      Fix installation of templates on ancient systems.
      New tests and en-passant modifications to mktag.
      Add NO_C99_FORMAT to support older compilers.
      Fix header breakage due to redefining PATH_MAX.
      Remove cmd_usage() routine and re-organize the help/usage code.

Robert Shearman (2):
      rebase: Fix the detection of fast-forwarding of the current branch to upstream.
      rebase: Make the fast-fowarding message more user-friendly by using branch names instead of SHA1 IDs.

Shawn O. Pearce (1):
      Display an error from update-ref if target ref name is invalid.


Version v1.4.2-rc2; changes since v1.4.2-rc1:
---------------------------------------------

Alex Riesen (1):
      Trivial path optimization test

Alexandre Julliard (5):
      git.el: Run git-rerere on commits if the rr-cache directory exists.
      git.el: Prepend a slash to the file name when adding to .gitignore.
      git.el: Try to reuse an existing buffer when running git-status.
      git.el: Put the git customize group in the 'tools' parent group.
      show-branch: Fix another performance problem.

Daniel Drake (1):
      gitweb: escape tag comments

Eric Wong (2):
      typechange tests for git apply (currently failing)
      git-svn: fix fetching new directories copies when using SVN:: libs

Jeff King (2):
      pack-objects: check pack.window for default window size
      Colorize 'commit' lines in log ui

Johannes Schindelin (4):
      Fix t4114 on cygwin
      Always reset the color _before_ printing out the newline
      cvsserver: suppress warnings
      cvsserver: avoid warning about active db handles

Josh Triplett (3):
      git-format-patch: Make the second and subsequent mails replies to the first
      Add option to enable threading headers
      Add option to set initial In-Reply-To/References

Junio C Hamano (8):
      fetch/clone: check return status from ls-remote
      builtin-log: typefix for recent format-patch changes.
      checkout -f failed to check out a file if an existing directory interfered.
      apply: check D/F conflicts more carefully.
      apply: split out removal and creation into different phases.
      apply: handle type-changing patch correctly.
      git-fetch: fix --keep vs --thin
      unpack-objects: remove stale and confusing comment

Linus Torvalds (1):
      sha1_file: add the ability to parse objects in "pack file format"

Lukas Sandström (1):
      git-am: Don't accept an mbox on stdin of we already have a .dotest directory

Martin Langhoff (1):
      cvsexportcommit - add -a (add author line) flag, cleanup warnings

Matthias Lederhofer (1):
      upload-pack: fix timeout in create_pack_file

Peter Eriksen (1):
      Substitute xmalloc()+memset(0) with xcalloc().

Santi Béjar (1):
      Defaulting fetch to origin when set in the repo-config

Shawn O. Pearce (1):
      Disable linking with Fink or DarwinPorts.

Willy Tarreau (1):
      tar-tree: add the "tar.umask" config option


Version v1.4.2-rc1; changes since v1.4.1.1:
-------------------------------------------

A Large Angry SCM (1):
      Additional merge-base tests (revised)

Alex Riesen (1):
      Do not use perl in git-commit.sh

Alp Toker (9):
      Fix some doubled word typos
      Fix some doubled word typos
      Fix typos involving the word 'commit'
      typofix (git-name-rev documentation)
      git-send-email: Remove redundant Reply-To header
      gitweb: Send XHTML as 'application/xhtml+xml' where possible
      gitweb: Include a site name in page titles
      gitweb: Make command invocations go through the git wrapper
      documentation (urls.txt) typofix

Dennis Stosberg (2):
      gitweb: Declare global variables with "our"
      gitweb: Declare global variables with "our"

Eric Wong (12):
      Add git-instaweb, instantly browse the working repo with gitweb
      instaweb: fix unportable ';' usage in sed
      t8001-annotate: fix a bash-ism in this test
      git-svn: avoid fetching files outside of the URL we're tracking
      git-svn: migrate out of contrib
      builtin-log: respect diff configuration options
      diff.c: respect diff.renames config option
      templates/hooks--update: replace diffstat calls with git diff --stat
      git-svn: fix --file/-F option in commit-diff
      tests: Set EDITOR=: and VISUAL=: globally
      git-fetch: fix a bashism (==)
      git-svn: don't check for migrations/upgrades on commit-diff

Jakub Narębski (3):
      send-email: format 2822 datestring ourselves.
      Wrap long lines in docstrings in contrib/emacs/git.el
      Display help for Git mode after pressing `h' or `?' in *git-status*

Joachim Berdal Haga (2):
      Make zlib compression level configurable, and change default.
      core.compression documentation formatting fix.

Johannes Schindelin (7):
      refactor merge_bases() as preparation to libify merge-base
      move get_merge_bases() to core lib.
      Makefile: replace ugly and unportable sed invocation
      Make git-fmt-merge-msg a builtin
      Makefile: export NO_SVN_TESTS
      Close the index file between writing and committing
      Fix linking for not-so-clever linkers.

Jonas Fonseca (1):
      Documentation/urls.txt: Use substitution to escape square brackets

Junio C Hamano (49):
      Makefile: add framework to verify and bench sha1 implementations.
      test-sha1: test hashing large buffer
      t4013: add tests for diff/log family output options.
      t4013: add more tests around -c and --cc
      Fix some more diff options changes.
      t4013 test updates for new output code.
      combine-diff.c: type sanity.
      format-patch: fix diff format option implementation
      t4013: add format-patch tests.
      t4013: note improvements brought by the new output code.
      gitweb: optimize per-file history generation
      gitweb: optimize per-file history generation
      t4013: add "diff" UI program tests.
      builtin-diff: turn recursive on when defaulting to --patch format.
      commit.c: do not redefine UNINTERESTING bit.
      get_merge_bases: clean up even when there is no common commit.
      revert clear-commit-marks for now.
      boolean: accept yes and no as well
      send-email: do not barf when Term::ReadLine does not like your terminal
      t6200: fmt-merge-msg test.
      git-grep: fix parsing of pathspec separator '--'
      git-grep: fix exit code when we use external grep.
      git-grep: use a bit more specific error messages.
      Re-fix clear_commit_marks().
      git-grep: boolean expression on pattern matching.
      git-reset: complain and exit upon seeing an unknown parameter.
      mailinfo: assume input is latin-1 on the header as we do for the body
      diffcore-rename: try matching up renames without populating filespec first.
      builtin-rev-parse.c: constness tightening
      show-branch: match documentation and usage
      rev-parse documentation: talk about range notation.
      git-svn: migrate out of contrib (follow-up)
      diff.c: --no-color to defeat diff.color configuration.
      Update diff-options and config documentation.
      git log -p --merge [[--] paths...]
      colored diff: diff.color = auto fix
      diff: do not use configuration magic at the core-level
      "git -p cmd" to page anywhere
      merge-base: update the clean-up postprocessing
      fmt-merge-msg fix
      Fix grammatical error in git-revert
      git-repack: avoid redirecting stderr into git-pack-objects
      test-lib: unset GIT_TRACE
      t4013 diff format tests update
      Adjust t4013 tests to corrected format-patch.
      Documentation: Fix ssh://[user@]host.xz URL
      builtin-prune.c: forgot TYPE => OBJ changes.
      Documentation/Makefile: product depends on asciidoc.conf
      show-branch: fix performance problem.

Linus Torvalds (7):
      xdiff: generate "anti-diffs" aka what is common to two files
      Prepare "git-merge-tree" for future work
      Improved three-way blob merging code
      Improve git-peek-remote
      builtin "git prune"
      Make the unpacked object header functions static to sha1_file.c
      Remove TYPE_* constant macros and use object_type enums consistently.

Luben Tuikov (6):
      gitweb: Enable tree (directory) history display
      gitweb: Enable tree (directory) history display
      Add "raw" output option to blobs in "tree" view format
      gitweb.cgi: Create $git_temp if it doesn't exist
      gitweb.cgi: Teach "a=blob" action to know the blob/file mime type
      gitweb.css: Use monospace fonts for commits and tree-diff.

Matthias Lederhofer (10):
      GIT_TRACE: show which built-in/external commands are executed
      change ent to tree in git-diff documentation
      git-rev-list: add documentation for --parents, --no-merges
      daemon: use a custom die routine with syslog
      daemon: if one of the standard fds is missing open it to /dev/null
      upload-pack: ignore write errors to stderr
      daemon: new option --pid-file=<path> to store the pid
      daemon: new option --detach to run git-daemon in background
      Documentation about exclude/ignore files
      argv created by handle_alias should be NULL terminated

Michal Rokos (2):
      sed -e '/RE/r rfile/' needs space in 'r rfile'
      Using 'perl' in *.sh

Pavel Roskin (4):
      Assorted typo fixes
      Typofix in Makefile comment.
      Fix more typos, primarily in the code
      Avoid C99 comments, use old-style C comments instead.

Peter Baumann (1):
      git-cvsexportcommit can't handle merge commits correctly

René Scharfe (5):
      Add get_merge_bases_clean()
      Add '...' operator for revisions
      Make clear_commit_marks() clean harder
      Fold get_merge_bases_clean() into get_merge_bases()
      rev-list: free commit_list in ... handler

Robert Shearman (1):
      format-patch: Generate a newline between the subject header and the message body

Ryan Anderson (3):
      annotate: Support annotation of files on other revisions.
      annotate: Correct most merge following to annotate correctly.
      Disable color detection during format-patch

Santi Béjar (1):
      Teach rev-parse the ... syntax.

Sergey Vlasov (1):
      Fix "git-fetch --tags" exit status when nothing has been changed

Shawn O. Pearce (9):
      Avoid C99 initializers
      Allow user.name and user.email to drive reflog entry.
      Record the type of commit operation in the reflog.
      Log ref changes made by git-fetch and git-pull.
      Log ref changes made by git-merge and git-pull.
      Log ref changes made by quiltimport.
      Log ref changes made by resolve.
      Make lazy mkdir more robust.
      Record rebase changes as 'rebase' in the reflog.

Stephan Feder (5):
      Do not drop data from '\0' until eol in patch output
      Teach --text option to diff
      Teach diff -a as shorthand for --text
      Add -a and --text to common diff options help
      diff-options: Explain --text and -a

Timo Hirvonen (14):
      Merge with_raw, with_stat and summary variables to output_format
      Make --raw option available for all diff commands
      Set default diff output format after parsing command line
      DIFF_FORMAT_RAW is not default anymore
      Add msg_sep to diff_options
      Don't xcalloc() struct diffstat_t
      whatchanged: Default to DIFF_FORMAT_RAW
      Print empty line between raw, stat, summary and patch
      diff-tree: Use ---\n as a message separator
      log --raw: Don't descend into subdirectories by default
      Fix diff-tree -s
      GIT_TRACE: fix a mixed declarations and code warning
      diff: Support both attributes and colors
      diff: Support 256 colors

Ville Skyttä (1):
      Fix print-log and diff compatibility with recent vc versions

Yakov Lerner (1):
      Mention the [user@] part in documentation of ssh:// urls.

anonymous (1):
      A better-scheduled PPC SHA-1 implementation.


Version v1.4.1.1; changes since v1.4.1:
---------------------------------------

Junio C Hamano (1):
      Makefile: tighten git-http-{fetch,push} dependencies

Linus Torvalds (1):
      revision.c: fix "dense" under --remove-empty

Matthias Lederhofer (1):
      upload-pack: fix timeout in create_pack_file

Robin Rosenberg (1):
      Empty author may be presented by svn as an empty string or a null value.


Version v1.4.1; changes since v1.4.1-rc2:
-----------------------------------------

Eric Wong (1):
      git-svn: allow a local target directory to be specified for init

Johannes Schindelin (4):
      add diff_flush_patch_id() to calculate the patch id
      format-patch: introduce "--ignore-if-in-upstream"
      t4014: fix for whitespace from "wc -l"
      format-patch: use clear_commit_marks() instead of some ad-hockery

Junio C Hamano (6):
      git-repack: Be careful when updating the same pack as an existing one.
      t4014: add format-patch --ignore-if-in-upstream test
      t4014: fix test commit labels.
      diff.c: fix get_patch_id()
      Racy GIT (part #3)
      upload-pack.c: <sys/poll.h> includes <ctype.h> on OpenBSD 3.8

Linus Torvalds (4):
      Do not try futile object pairs when repacking.
      Abstract out accesses to object hash array
      revision.c: --full-history fix.
      git object hash cleanups

Nicolas Pitre (2):
      consider previous pack undeltified object state only when reusing delta data
      don't load objects needlessly when repacking

Petr Baudis (1):
      Fix errno usage in connect.c

Robin Rosenberg (1):
      Minor documentation fixup.


Version v1.4.1-rc2; changes since v1.4.1-rc1:
---------------------------------------------

Andreas Ericsson (1):
      git wrapper: fix command name in an error message.

Dennis Stosberg (3):
      Solaris needs inclusion of signal.h for signal()
      Fix pkt-line.h to compile with a non-GCC compiler
      Fix expr usage for FreeBSD

Eric Wong (10):
      rebase: allow --merge option to handle patches merged upstream
      rebase: cleanup rebasing with --merge
      rebase: allow --skip to work with --merge
      git-svn: SVN 1.1.x library compatibility
      git-svn: several graft-branches improvements
      git-svn: add the commit-diff command
      git-svn: add --follow-parent and --no-metadata options to fetch
      git-svn: be verbose by default on fetch/commit, add -q/--quiet option
      rebase: get rid of outdated MRESOLVEMSG
      rebase: check for errors from git-commit

Jeff King (2):
      git-commit: allow -e option anywhere on command line
      quote.c: silence compiler warnings from EMIT macro

Johannes Schindelin (5):
      patch-id: take "commit" prefix as well as "diff-tree" prefix
      Teach diff about -b and -w flags
      cvsimport: always set $ENV{GIT_INDEX_FILE} to $index{$branch}
      apply: replace NO_ACCURATE_DIFF with --inaccurate-eof runtime flag.
      Save errno in handle_alias()

Junio C Hamano (12):
      Makefile: do not recompile main programs when libraries have changed.
      usage: minimum type fix.
      git-pull: abort when fmt-merge-msg fails.
      git-merge --squash
      diff --color: use reset sequence when we mean reset.
      repo-config: fix printing of bool
      diff --color: use $GIT_DIR/config
      combine-diff.c: type sanity
      connect.c: remove unused parameters from tcp_connect and proxy_connect
      connect.c: check the commit buffer boundary while parsing.
      t/README: start testing porcelainish
      checkout -m: fix read-tree invocation

Linus Torvalds (1):
      Tweak diff colors

Martin Langhoff (3):
      git-repack -- respect -q and be quiet
      cvsimport: setup indexes correctly for ancestors and incremental imports
      cvsimport - cleanup of the multi-indexes handling

Matthias Kestenholz (1):
      add GIT-CFLAGS to .gitignore

Matthias Lederhofer (1):
      correct documentation for git grep

Peter Eriksen (1):
      Rename safe_strncpy() to strlcpy().

Petr Baudis (1):
      Customizable error handlers

Timo Hirvonen (3):
      git-merge: Don't use -p when outputting summary
      Clean up diff.c
      Make some strings const

Yann Dirson (1):
      git-commit: filter out log message lines only when editor was run.


Version v1.4.1-rc1; changes since v1.4.0:
-----------------------------------------

Andre Noll (1):
      object-refs: avoid division by zero

David Woodhouse (1):
      Log peer address when git-daemon called from inetd

Dennis Stosberg (3):
      Make t4101-apply-nonl bring along its patches
      Make t8001-annotate and t8002-blame more portable
      Fix t8001-annotate and t8002-blame for ActiveState Perl

Eric W. Biederman (3):
      Don't parse any headers in the real body of an email message.
      Fix git-format-patch -s
      Check and document the options to prevent mistakes.

Eric Wong (29):
      git-svn: t0000: add -f flag to checkout
      git-svn: fix handling of filenames with embedded '@'
      git-svn: eol_cp corner-case fixes
      git-svn: restore original LC_ALL setting (or unset) for commit
      git-svn: don't allow commit if svn tree is not current
      git-svn: support -C<num> passing to git-diff-tree
      git-svn: --branch-all-refs / -B support
      git-svn: optimize --branch and --branch-all-ref
      git-svn: support manually placed initial trees from fetch
      git-svn: Move all git-svn-related paths into $GIT_DIR/svn
      git-svn: minor cleanups, extra error-checking
      git-svn: add --repack and --repack-flags= options
      git-svn: add --shared and --template= options to pass to init-db
      git-svn: add some functionality to better support branches in svn
      git-svn: add UTF-8 message test
      git-svn: add 'log' command, a facsimile of basic `svn log'
      git-svn: add support for Perl SVN::* libraries
      git-svn: make the $GIT_DIR/svn/*/revs directory obsolete
      git-svn: avoid creating some small files
      git-svn: fix several small bugs, enable branch optimization
      git-svn: Eliminate temp file usage in libsvn_get_file()
      git-svn: bugfix and optimize the 'log' command
      git-svn: tests no longer fail if LC_ALL is not a UTF-8 locale
      git-svn: svn (command-line) 1.0.x compatibility
      git-svn: rebuild convenience and bugfixes
      git-svn: fix --rmdir when using SVN:: libraries
      rebase: Allow merge strategies to be used when rebasing
      rebase: error out for NO_PYTHON if they use recursive merge
      git-svn: fix commit --edit flag when using SVN:: libraries

Florian Forster (9):
      gitweb: Adding a `blame' interface.
      gitweb: Make the `blame' interface in gitweb optional.
      Remove ranges from switch statements.
      Initialize FAMs using `FLEX_ARRAY'.
      Don't instantiate structures with FAMs.
      Cast pointers to `void *' when used in a format.
      Don't use empty structure initializers.
      Change types used in bitfields to be `int's.
      Remove all void-pointer arithmetic.

Fredrik Kuivinen (1):
      blame: Add --time to produce raw timestamps

Jakub Narębski (15):
      Update gitweb README: gitweb is now included with git
      Move gitweb style to gitweb.css
      gitweb: safely output binary files for 'blob_plain' action
      gitweb: text files for 'blob_plain' action without charset by default
      Fix gitweb stylesheet
      Make CSS file gitweb/gitweb.css more readable
      gitweb: add type="text/css" to stylesheet link
      Fix: Support for the standard mime.types map in gitweb
      gitweb: A couple of page title tweaking
      gitweb: style done with stylesheet
      gitweb: whitespace cleanup
      Add git version to gitweb output
      Move $gitbin earlier in gitweb.cgi
      gitweb: Make use of $PATH_INFO for project parameter
      gitweb: whitespace cleanup around '='

Johannes Schindelin (6):
      diff options: add --color
      Initialize lock_file struct to all zero.
      Fix setting config variables with an alternative GIT_CONFIG
      Read configuration also from $HOME/.gitconfig
      repo-config: Fix late-night bug
      git_config: access() returns 0 on success, not > 0

Junio C Hamano (31):
      Revert all the rev-list option parsing changes.
      Clean-up Geert's similarity fingerprint code.
      Extract "log [diff options]" parser out.
      whatchanged options parser fix.
      Built-in git-whatchanged
      Geert's similarity
      Try using Geert similarity code in pack-objects.
      Retire rabinpoly fingerprinting code
      Fix mismerged update-index from jc/cache-tree branch.
      read-tree: --prefix=<path>/ option.
      write-tree: --prefix=<path>
      read-tree: reorganize bind_merge code.
      fetch-pack: give up after getting too many "ack continue"
      Fix earlier mismerges.
      shared repository: optionally allow reading to "others".
      gitk: rereadrefs needs listrefs
      fix git alias
      t5100: mailinfo and mailsplit tests.
      mailinfo: ignore blanks after in-body headers.
      fix rfc2047 formatter.
      xdiff: minor changes to match libxdiff-0.21
      Restore SIGCHLD to SIG_DFL where we care about waitpid().
      checkout -f: do not leave untracked working tree files.
      upload-pack: avoid sending an incomplete pack upon failure
      upload-pack: prepare for sideband message support.
      Retire git-clone-pack
      upload-pack/fetch-pack: support side-band communication
      Add renaming-rebase test.
      daemon: send stderr to /dev/null instead of closing.
      rebase --merge: fix for rebasing more than 7 commits.
      Makefile: do not force unneeded recompilation upon GIT_VERSION changes

Linus Torvalds (9):
      Tentative built-in "git show"
      gitweb.cgi history not shown
      Shrink "struct object" a bit
      Move "void *util" from "struct object" into "struct commit"
      Some more memory leak avoidance
      Remove "refs" field from "struct object"
      Add specialized object allocator
      Add "named object array" concept
      Fix grow_refs_hash()

Lukas Sandström (6):
      Make git-write-tree a builtin
      Make git-mailsplit a builtin
      Make git-mailinfo a builtin
      Make git-stripspace a builtin
      Make git-update-index a builtin
      Make git-update-ref a builtin

Martin Langhoff (3):
      cvsimport: ignore CVSPS_NO_BRANCH and impossible branches
      cvsimport: complete the cvsps run before starting the import
      cvsimport: keep one index per branch during import

Paul Eggert (1):
      date.c: improve guess between timezone offset and year.

Paul Mackerras (1):
      Fix PPC SHA1 routine for large input buffers

Peter Eriksen (1):
      Implement safe_strncpy() as strlcpy() and use it more.

Petr Baudis (2):
      Support for extracting configuration from different files
      Support for the standard mime.types map in gitweb

René Scharfe (4):
      git-tar-tree: Simplify write_trailer()
      git-tar-tree: documentation update
      git-tar-tree: no more void pointer arithmetic
      Make release tarballs friendlier to older tar versions

Sean Estabrooks (1):
      Add a "--notags" option for git-p4import.

Sven Verdoolaege (1):
      git-cvsexportcommit.perl: fix typo

Timo Hirvonen (1):
      gitweb: Use $hash_base as $search_hash if possible

Uwe Kleine-König (1):
      Fix possible out-of-bounds array access

Yakov Lerner (2):
      auto-detect changed prefix and/or changed build flags
      Pass -DDEFAULT_GIT_TEMPLATE_DIR only where actually used.


Version v1.4.0; changes since v1.4.0-rc2:
-----------------------------------------

Horst H. von Brand (1):
      Fix formatting of Documentation/git-clone.txt

Junio C Hamano (7):
      allow working in repositories with textual symref HEAD
      git-clone: fix duplicated "master" in $GIT_DIR/remotes/origin
      git-rm: honor -n flag.
      builtin-init-db: spell the in-program configuration variable in lowercase.
      shared repository - add a few missing calls to adjust_shared_perm().
      git-clone: fix --bare over dumb-http
      GIT 1.4.0

Kay Sievers (143):
      first working version
      v000
      v000
      v001
      v002
      v003
      v003
      v004
      v005
      v006
      v014
      v016
      v020
      v021
      v021
      v021
      v021
      v025
      v026
      v027
      v031
      v035
      v041
      v041
      v042
      v043
      v048
      v049
      v053
      v055
      v056
      v057
      v062
      v063
      v064
      v070
      v071
      v073
      v077
      v078
      v080
      v082
      v085
      v088
      v089
      v107
      v118
      v121
      v125
      v133
      v136
      v142
      v143
      v145
      v148
      v149
      v150
      v152
      v154
      v157
      v160
      v163
      v164
      v165
      v203
      v205
      v206
      v220
      v225
      v227
      v229
      v232
      v233
      v234
      v235
      v236
      add README
      Make the tag view look like commit header.
      allow sorting of index page by project path, owner and age
      make index page sorting more visible and increase RSS item count
      fix search parsing, later git does not print a trailing space
      don't chop_str if adding ... is longer than the original
      Show tooltips (like this one :)) containing full titles for truncated commit titles in the summary and shortlog views.
      v241
      v242
      common input validation to allow passing of textual hash id's
      v243
      translate reference into hash while reading a commit
      fix typo in link parameter of git_commit
      v244
      switch to git-rev-list for commit reading
      v245
      start searching at the current $hash value
      v246
      rename "branches" to "heads"
      v247
      provide filename for "save as" in plaintext views
      add Expires: +1d header to commit and commitdiff pages
      v248
      add test files
      update the test files to have a diff
      escape '+' and ' ' in url's
      make ' ' and '+' in filenames some kind of working
      v249
      escape ' ' with '+' in url's
      replace invalid utf8 sequences by UTF-8 REPLACEMENT CHARACTER (efbfbd)
      v250
      add missing esc() rename
      v251
      fix another typo
      v252
      fix utf8 decoding
      add ut8 test file
      add broken latin encoding to test file
      set logo output to raw mode
      v253
      allow utf8 characters in url parameter escape
      v254
      v255
      fix quoted filename lookup
      v256
      fix "rename" output
      v257
      show tags in lists
      v258
      show multiple tags
      v259
      attach tag to the link
      v260
      more tags
      fix leading whitespace in commit text
      v261
      define default colors
      v262
      resolve textual hashes when looking up "refs"
      v263
      fix: Use of uninitialized value
      v264
      handle utf8 characters from /etc/passwd
      v265
      remove Christian's email address
      v266
      v267

Paul T Darga (1):
      check for error return from fork()

René Scharfe (1):
      Built-in git-get-tar-commit-id

Rocco Rutte (1):
      prepend '--' to filelist when calling git-diff-tree

Uwe Kleine-König (1):
      Document git-clone --use-separate-remote

Yasushi SHOJI (1):
      Add <author> and <guid> to RSS feed


Version v1.4.0-rc2; changes since v1.4.0-rc1:
---------------------------------------------

Francis Daly (3):
      Some doc typo fixes
      config.txt grammar, typo, and asciidoc fixes
      git-cvsserver asciidoc formatting tweaks

Horst H. von Brand (1):
      Cleanup git-send-email.perl:extract_valid_email

Johannes Schindelin (1):
      If you have a config containing something like this:

Jon Loeliger (1):
      Refactor git_tcp_connect() functions a little.

Jonas Fonseca (2):
      Misc doc improvements
      Document git-ls-tree --fullname

Junio C Hamano (12):
      git alias: try alias last.
      send-email: be more lenient and just catch obvious mistakes.
      send-email: a bit more careful domain regexp.
      git-format-patch: add --output-directory long option again
      HTTP cleanup
      Make index file locking code reusable to others.
      refs.c: convert it to use lockfile interface.
      ref-log: style fixes.
      Documentation: add missing docs make check-docs found.
      make clean: remove dist-doc targets.
      Documentation: git-ls-tree (typofix)
      Documentation: add another example to git-ls-files

Nick Hengeveld (2):
      HTTP cleanup
      http-fetch: fix possible segfault

Paul Mackerras (12):
      gitk: Make a row of controls for controlling highlighting
      gitk: Highlight entries in the file list as well
      gitk: Highlight paths of interest in tree view as well
      gitk: First cut at a search function in the patch/file display window
      gitk: Improve the text window search function
      gitk: Move "pickaxe" find function to highlight facility
      gitk: Fix bug in highlight stuff when no line is selected
      gitk: Provide ability to highlight based on relationship to selected commit
      gitk: Add a goto next/previous highlighted commit function
      gitk: Show nearby tags
      gitk: Show branch name(s) as well, if "show nearby tags" is enabled
      gitk: Re-read the descendent/ancestor tag & head info on update

Petr Baudis (2):
      Document git aliases support
      Documentation: git aliases

René Scharfe (1):
      Off-by-one error in get_path_prefix(), found by Valgrind

Robert Fitzsimons (1):
      builtin-grep: pass ignore case option to external grep


Version v1.4.0-rc1; changes since v1.3.3:
-----------------------------------------

Alex Riesen (2):
      make update-index --chmod work with multiple files and --stdin
      remove superflous "const"

Aneesh Kumar K.V (3):
      gitview: Add key binding for F5.
      gitview: Move the console error messages to message dialog
      gitview: Add some useful keybindings.

Björn Engelmann (2):
      remove the artificial restriction tagsize < 8kb
      add more informative error messages to git-mktag

Catalin Marinas (1):
      Add a test-case for git-apply trying to add an ending line

Christian Couder (1):
      Builtin git-rev-parse.

Dennis Stosberg (3):
      git-write-tree writes garbage on sparc64
      git-clean fails on files beginning with a dash
      Update documentation for git-format-patch

Dmitry V. Levin (2):
      execv_git_cmd: Fix stack buffer overflow.
      git_exec_path, execv_git_cmd: ignore empty environment variables

Elrond (1):
      git-cvsimport: Handle "Removed" from pserver

Eric W. Biederman (8):
      Implement git-quiltimport
      Implement a --dry-run option to git-quiltimport
      Make read_one_header_line return a flag not a length.
      Move B and Q decoding into check header.
      Refactor commit messge handling.
      In handle_body only read a line if we don't already have one.
      More accurately detect header lines in read_one_header_line
      Allow in body headers beyond the in body header prefix.

Eric Wong (15):
      git-svn: documentation updates
      git-svn 1.0.0
      send-email: address expansion for common mailers
      Install git-send-email by default
      send-email: allow sendmail binary to be used instead of SMTP
      send-email: quiet some warnings, reject invalid addresses
      commit: allow --pretty= args to be abbreviated
      git-svn: starting a 1.1.0-pre development version
      git-svn: ignore expansion of svn:keywords
      t3300-funny-names: shell portability fixes
      tests: Remove heredoc usage inside quotes
      t5500-fetch-pack: remove local (bashism) usage.
      t6000lib: workaround a possible dash bug
      git-svn: t0001: workaround a heredoc bug in old versions of dash
      git-svn: remove assertion that broke with older versions of svn

Florian Forster (1):
      git-svnimport: Improved detection of merges.

Fredrik Kuivinen (2):
      blame: Fix path pruning
      Update the documentation for git-merge-base

Horst H. von Brand (4):
      Fix some documentation typoes
      Documentation: Spelling fixes
      Add example xinetd(8) configuration to Documentation/everyday.txt
      Fix Documentation/everyday.txt: Junio's workflow

J. Bruce Fields (7):
      tutorial: replace "whatchanged" by "log"
      tutorial: expanded discussion of commit history
      tutorial: add discussion of index file, object database
      documentation: mention gitk font adjustment in tutorial
      documentation: add brief mention of cat-file to tutorial part I
      Documentation: retitle the git-core tutorial
      Documentation: fix a tutorial-2 typo

Jeff King (7):
      cvsimport: use git-update-index --index-info
      cvsimport: cleanup commit function
      cvsimport: set up commit environment in perl instead of using env
      cat-file: document -p option
      cvsimport: avoid "use" with :tag
      handle concurrent pruning of packed objects
      sha1_file: avoid re-preparing duplicate packs

Jim Meyering (1):
      Don't write directly to a make target ($@).

Johannes Schindelin (25):
      builtin-push: resurrect parsing of Push: lines
      cache-tree: replace a sscanf() by two strtol() calls
      builtin-push: also ask config for remote information
      fetch, pull: ask config for remote information
      repo-config: fix segfault with no argument.
      repo-config: trim white-space before comment
      repo-config: support --get-regexp
      repo-config: deconvolute logics
      fetch, pull: ask config for remote information
      Add a conversion tool to migrate remote information into the config
      builtin-push: --all and --tags _are_ explicit refspecs
      Teach fmt-patch to write individual files.
      fmt-patch: output file names to stdout
      fmt-patch: implement -o <dir>
      Teach fmt-patch about --numbered
      Teach fmt-patch about --keep-subject
      fmt-patch: understand old <his> notation
      Fix users of prefix_path() to free() only when necessary
      Fix users of prefix_path() to free() only when necessary
      Fix crash when reading the empty tree
      diff family: add --check option
      fmt-patch: Support --attach
      git-format-patch --start-number <n>
      send-email: only 'require' instead of 'use' Net::SMTP
      format-patch: resurrect extra headers from config

Josef Weidendorfer (1):
      gitk: Add a visual tag for remote refs

Junio C Hamano (156):
      Fix up default abbrev in setup_revisions() argument parser.
      Fix up rev-list option parsing.
      Split init_revisions() out of setup_revisions()
      rev-list option parser fix.
      Built-in git-whatchanged.
      Do not fork PAGER=cat
      Simplify common default options setup for built-in log family.
      log/whatchanged/show - log formatting cleanup.
      rev-list --header: output format fix
      git.c: LOGSIZE is unused after log printing cleanup.
      combine-diff: show diffstat with the first parent.
      Fix "git log --stat": make sure to set recursive with --stat.
      Tentative built-in format-patch.
      sha1_name.c: prepare to make get_tree_entry() reusable from others.
      sha1_name.c: no need to include diff.h; tree-walk.h will do.
      get_tree_entry(): make it available from tree-walk
      Minor tweak on subject line in --pretty=email
      diff: move diff.c to diff-lib.c to make room.
      Add git-unresolve <paths>...
      diff --stat: do not drop rename information.
      git-update-index --unresolve
      rename internal format-patch wip
      Makefile: dependency for builtin-help.o
      Add colordiff for git to contrib/colordiff.
      Fix "git show --stat"
      Libify diff-files.
      Libify diff-index.
      git-fmt-patch: thinkofix to show [PATCH] properly.
      Libified diff-index: backward compatibility fix.
      read-cache/write-cache: optionally return cache checksum SHA1.
      Add cache-tree.
      Update write-tree to use cache-tree.
      Invalidate cache-tree entries for touched paths in git-apply.
      Use cache-tree in update-index.
      Add test-dump-cache-tree
      cache-tree: protect against "git prune".
      index: make the index file format extensible.
      Teach fsck-objects about cache-tree.
      cache-tree: sort the subtree entries.
      test-dump-cache-tree: report number of subtrees.
      Makefile: remove and create libgit.a from scratch.
      diff --stat: show complete rewrites consistently.
      git-cvsserver: typofixes
      t0000-basic: Add ls-tree recursive test back.
      Makefile: remove and create xdiff library from scratch.
      commit-tree: allow generic object name for the tree as well.
      revision parsing: make "rev -- paths" checks stronger.
      t0000-basic: more commit-tree tests.
      update-index: when --unresolve, smudge the relevant cache-tree entries.
      read-tree: teach 1 and 2 way merges about cache-tree.
      read-tree: teach 1-way merege and plain read to prime cache-tree.
      diff-index: fix compilation warnings.
      cache_tree_update: give an option to update cache-tree only.
      test-dump-cache-tree: validate the cached data as well.
      pack-objects: update size heuristucs.
      built-in count-objects.
      cache-tree.c: typefix
      built-in diff.
      built-in diff: assorted updates.
      builtin-diff.c: die() formatting type fix.
      Fix builtin-push to honor Push: lines in remotes file.
      Extended SHA1 -- "rev^@" syntax to mean "all parents"
      get_sha1(): :path and :[0-3]:path to extract from index.
      built-in "git grep"
      Use RFC2822 dates from "git fmt-patch".
      builtin-grep: wildcard pathspec fixes
      builtin-grep: support '-l' option.
      builtin-grep: do not use setup_revisions()
      fsck-objects: mark objects reachable from cache-tree
      builtin-count-objects: make it official.
      builtin-diff: call it "git-diff", really.
      builtin-log/whatchanged/show: make them official.
      show-branch: omit uninteresting merges.
      builtin-push: make it official.
      builtin-grep: printf %.*s length is int, not ptrdiff_t.
      Revert "fetch, pull: ask config for remote information"
      builtin-grep: allow -<n> and -[ABC]<n> notation for context lines.
      builtin-grep: allow more than one patterns.
      builtin-grep: support -c (--count).
      builtin-grep: support -w (--word-regexp).
      builtin-grep: tighten path wildcard vs tree traversal.
      core.prefersymlinkrefs: use symlinks for .git/HEAD
      repo-config: readability fixups.
      builtin-count-objects: open packs when running -v
      Fix test-dump-cache-tree in one-tree disappeared case.
      read-tree: invalidate cache-tree entry when a new index entry is added.
      cache-tree: a bit more debugging support.
      builtin-grep: terminate correctly at EOF
      builtin-grep: binary files -a and -I
      fsck-objects: do not segfault on missing tree in cache-tree
      builtin-grep: -L (--files-without-match).
      Makefile: do not link rev-list any specially.
      delta: stricter constness
      pack-object: squelch eye-candy on non-tty
      binary patch.
      binary diff: further updates.
      update-index --unresolve: work from a subdirectory.
      checkout-index: plug memory leak from prefix_path()
      update-index: plug memory leak from prefix_path()
      update-index --again
      update-index --again: take optional pathspecs
      binary diff and apply: testsuite.
      Teach -f <file> option to builtin-grep.
      builtin-grep: documentation
      get_sha1() - fix infinite loop on nonexistent stage.
      Teach git-clean optional <paths>... parameters.
      builtin-grep: tighten argument parsing.
      builtin-grep: typofix
      builtin-grep: -w fix
      builtin-grep: -F (--fixed-strings)
      checkout: use --aggressive when running a 3-way merge (-m).
      diffstat rename squashing fix.
      read-tree -u one-way merge fix to check out locally modified paths.
      apply --numstat: show new name, not old name.
      builtin-grep: unparse more command line options.
      apply --cached: apply a patch without using working tree.
      git-am: use apply --cached
      builtin-diff: fix comparison between two blobs.
      merge-base: Clarify the comments on post processing.
      read-tree -m -u: do not overwrite or remove untracked working tree files.
      builtin-grep: workaround for non GNU grep.
      Revert "builtin-grep: workaround for non GNU grep."
      apply --cached: do not check newly added file in the working tree
      builtin-add: fix unmatched pathspec warnings.
      builtin-diff: do not say files are renamed when blob and file are given
      Fix build procedure for builtin-init-db
      built-in tar-tree and remote tar-tree
      git-format-patch: now built-in.
      checkdiff_consume: strtol parameter fix.
      git-rebase: use canonical A..B syntax to format-patch
      tutorial-2: typofix in examples.
      mailinfo: skip bogus UNIX From line inside body
      CMIT_FMT_EMAIL: Q-encode Subject: and display-name part of From: fields.
      builtin format-patch: squelch content-type for 7-bit ASCII
      diff: minor option combination fix.
      fetch-pack: output refs in the order they were given on the command line.
      Tutorial #2: broken link fix.
      builtin-rm: squelch compiler warnings.
      cvsimport: do not barf on creation of an empty file.
      apply: force matching at the beginning.
      fetch.c: remove an unused variable and dead code.
      ls-remote: fix rsync:// to report HEAD
      mailinfo: More carefully parse header lines in read_one_header_line()
      gitk: start-up bugfix
      built-in format-patch: various fixups.
      format-patch: -n and -k are mutually exclusive.
      Let git-clone to pass --template=dir option to git-init-db.
      git-fetch: avoid using "case ... in (arm)"
      adjust to the rebased series by Linus.
      send-email: do not pass bogus address to local sendmail binary
      format-patch --signoff
      fetch.c: do not pass uninitialized lock to unlock_ref().
      fetch.c: do not call process_tree() from process_tree().
      fetch: do not report "same" unless -verbose.
      read-tree --reset: update working tree file for conflicted paths.
      rev-parse: tighten constness properly.

Linus Torvalds (60):
      Common option parsing for "git log --diff" and friends
      Tentative built-in "git show"
      Fixes for option parsing
      Log message printout cleanups
      Log message printout cleanups (#2)
      Log message printout cleanups (#3): fix --pretty=oneline
      Fix uninteresting tags in new revision parsing
      get_sha1() shorthands for blob/tree objects
      Allow "git repack" users to specify repacking window/depth
      git log: don't do merge diffs by default
      Split up builtin commands into separate files from git.c
      Fix "git help -a" terminal autosizing
      git builtin "push"
      Fix "git-log --parents" breakage post v1.3.0
      sha1_to_hex() usage cleanup
      git diff: support "-U" and "--unified" options properly
      Allow one-way tree merge to remove old files
      Simplify "git reset --hard"
      builtin-grep: use external grep when we can take advantage of it
      read-tree --reset -u fix.
      Fix silly typo in new builtin grep
      Remove old "git-grep.sh" remnants
      libify git-ls-files directory traversal
      Clean up git-ls-file directory walking library interface
      Do "git add" as a builtin
      builtin-add: warn on unmatched pathspecs
      builtin-grep: workaround for non GNU grep.
      Remove old "git-add.sh" remnants
      Prevent bogus paths from being added to the index.
      Make "git rev-list" be a builtin
      Libify the index refresh logic
      Move pathspec matching from builtin-add.c into dir.c
      Add builtin "git rm" command
      cvsimport: repack every kilo-commits.
      apply: treat EOF as proper context.
      Clean up sha1 file writing
      bogus "fatal: Not a git repository"
      t1002: use -U0 instead of --unified=0
      Fix "--abbrev=xyz" for revision listing
      Fix memory leak in "git rev-list --objects"
      Don't use "sscanf()" for tree mode scanning
      Add raw tree buffer info to "struct tree"
      Make "tree_entry" have a SHA1 instead of a union of object pointers
      Switch "read_tree_recursive()" over to tree-walk functionality
      Remove "tree->entries" tree-entry list from tree parser
      Make "struct tree" contain the pointer to the tree buffer
      Make "tree_entry" have a SHA1 instead of a union of object pointers
      Switch "read_tree_recursive()" over to tree-walk functionality
      builtin-read-tree.c: avoid tree_entry_list in prime_cache_tree_rec()
      Remove "tree->entries" tree-entry list from tree parser
      fsck-objects: avoid unnecessary tree_entry_list usage
      Remove unused "zeropad" entry from tree_list_entry
      Convert "mark_tree_uninteresting()" to raw tree walker
      Convert fetch.c: process_tree() to raw tree walker
      Remove last vestiges of generic tree_entry_list
      tree_entry(): new tree-walking helper function
      read-tree: fix eye-candy.
      Fix typo in tutorial-2.txt
      rev-list: fix process_tree() conversion.
      pack-objects: improve path grouping heuristics.

Lukas Sandström (2):
      Make git-check-format-ref a builtin.
      SubmittingPatches: The download location of External Editor has moved

Martin Langhoff (7):
      git-cvsexportcommit: Add -f(orce) and -m(essage prefix) flags, small cleanups.
      cvsserver: use git-rev-list instead of git-log
      cvsserver: use git-rev-list instead of git-log
      cvsimport: minor fixups
      cvsimport: replace anonymous sub ref with a normal sub
      cvsimport: introduce -L<imit> option to workaround memory leaks
      cvsimport: introduce _fetchfile() method and used a 1M buffer to read()

Martin Waitz (6):
      Transitively read alternatives
      test case for transitive info/alternates
      clone: don't clone the info/alternates file
      git help: remove whatchanged from list of common commands
      Documentation/Makefile: remove extra /
      Add instructions to commit template.

Martyn Smith (3):
      Added logged warnings for CVS error returns
      Many fixes for most operations in Eclipse.
      Change to allow subdir updates from Eclipse

Matthias Kestenholz (1):
      add documentation for update-index --unresolve

Matthias Lederhofer (1):
      git status: skip empty directories, and add -u to show all untracked files

Nick Hengeveld (3):
      git-fetch: resolve remote symrefs for HTTP transport
      http: prevent segfault during curl handle reuse
      builtin-push: don't pass --thin to HTTP transport

Nicolas Pitre (10):
      split the diff-delta interface
      use delta index data when finding best delta matches
      replace adler32 with Rabin's polynomial in diff-delta
      tiny optimization to diff-delta
      improve diff-delta with sparse and/or repetitive data
      improve base85 generated assembly code
      fix diff-delta bad memory access
      simple euristic for further free packing improvements
      pack-object: slightly more efficient
      improve depth heuristic for maximum delta size

Paul Mackerras (19):
      gitk: Implement multiple views
      gitk: Make File->Update work properly again
      gitk: Fix various bugs in the view support
      gitk: Don't reread git-rev-list output from scratch on view switch
      gitk: Remember the view in the history list
      gitk: Let git-rev-list do the argument list parsing
      gitk: Use git-rev-parse only to identify file/dir names on cmd line
      gitk: Implement "permanent" views (stored in ~/.gitk)
      gitk: add menu item for editing the current view
      gitk: Use a text widget for the file list
      gitk: Add a tree-browsing mode
      gitk: Basic support for highlighting one view within another
      gitk: Fix file list display when files are renamed
      gitk: Allow view to specify arbitrary arguments to git-rev-list
      gitk: Fix display of "(...)" for parents/children we haven't drawn
      Provide a way to flush git-diff-tree's output
      gitk: Fix bug where page-up/down wouldn't always work properly
      gitk: show_error fix
      Make git-diff-tree indicate when it flushes

Peter Eriksen (9):
      Add git-quiltimport to .gitignore.
      Builtin git-ls-files.
      Builtin git-ls-tree.
      Builtin git-tar-tree.
      Builtin git-read-tree.
      Builtin git-commit-tree.
      Builtin git-apply.
      Builtin git-show-branch.
      Builtin git-diff-files, git-diff-index, git-diff-stages, and git-diff-tree.

Peter Hagervall (1):
      Sparse fix for builtin-diff

Petr Baudis (3):
      git-repo-config --list support
      Deprecate usage of git-var -l for getting config vars list
      Call builtin ls-tree in git-cat-file -p

Ryan Anderson (4):
      git-send-email: Add References: headers to emails, in addition to In-Reply-To:
      Add support for --bcc to git-send-email.
      Fix a bug in email extraction used in git-send-email.
      Add a basic test case for git send-email, and fix some real bugs discovered.

Salikh Zakirov (1):
      Fixed Cygwin CR-munging problem in mailsplit

Santi Béjar (1):
      Document that "git add" only adds non-ignored files.

Sean Estabrooks (19):
      Add --continue and --abort options to git-rebase.
      Several trivial documentation touch ups.
      Fix up docs where "--" isn't displayed correctly.
      Update git-unpack-objects documentation.
      Clarify git-cherry documentation.
      Another config file parsing fix.
      t1300-repo-config: two new config parsing tests.
      Add "--branches", "--tags" and "--remotes" options to git-rev-parse.
      Make git rebase interactive help match documentation.
      Add "--summary" option to git diff.
      Convert some "apply --summary" users to "diff --summary".
      Strip useless "tags/" prefix from git-tag -l output
      Allow pickaxe and diff-filter options to be used by git log.
      Avoid segfault in diff --stat rename output.
      Change GIT-VERSION-GEN to call git commands with "git" not "git-".
      Install git builtins into gitexecdir rather than bindir.
      Remove possible segfault in http-fetch.
      --summary output should print immediately after stats.
      A Perforce importer for git.

Serge E. Hallyn (1):
      socksetup: don't return on set_reuse_addr() error

Sergey Vlasov (1):
      gitk: Display commit messages with word wrap

Shawn O. Pearce (24):
      Remove unnecessary local in get_ref_sha1.
      Improve abstraction of ref lock/write.
      Convert update-ref to use ref_lock API.
      Log ref updates to logs/refs/<ref>
      Support 'master@2 hours ago' syntax
      Fix ref log parsing so it works properly.
      General ref log reading improvements.
      Added logs/ directory to repository layout.
      Force writing ref if it doesn't exist.
      Log ref updates made by fetch.
      Change 'master@noon' syntax to 'master@{noon}'.
      Correct force_write bug in refs.c
      Change order of -m option to update-ref.
      Include ref log detail in commit, reset, etc.
      Create/delete branch ref logs.
      Enable ref log creation in git checkout -b.
      Reference git-check-ref-format in git-branch.
      Elaborate on why ':' is a bad idea in a ref name.
      Built git-upload-tar should be ignored.
      Verify git-commit provides a reflog message.
      Test that git-branch -l works.
      Remove unnecessary output from t3600-rm.
      Improved pack format documentation.
      Allow multiple -m options to git-commit.

Tilman Sauerbeck (1):
      Documentation/Makefile: create tarballs for the man pages and html files

Timo Hirvonen (3):
      Builtin git-init-db
      Builtin git-cat-file
      gitk: Replace "git-" commands with "git "

Yakov Lerner (2):
      NO_INET_NTOP and compat/inet_ntop.c for some systems (e.g. old Cygwin).
      Problem: 'trap...exit' causes error message when /bin/sh is ash.

Yann Dirson (3):
      Do not call 'cmp' with non-existant -q flag.
      Document current cvsexportcommit limitations.
      Make cvsexportcommit create parent directories as needed.


Version v1.3.3; changes since v1.3.2:
-------------------------------------

Ben Clifford (1):
      include header to define uint32_t, necessary on Mac OS X

Dennis Stosberg (2):
      Fix git-pack-objects for 64-bit platforms
      Fix compilation on newer NetBSD systems

Dmitry V. Levin (1):
      Separate object name errors from usage errors

Eric Wong (2):
      apply: fix infinite loop with multiple patches with --index
      Install git-send-email by default

Johannes Schindelin (1):
      repo-config: trim white-space before comment

Junio C Hamano (6):
      core.prefersymlinkrefs: use symlinks for .git/HEAD
      repo-config: document what value_regexp does a bit more clearly.
      Fix repo-config set-multivar error return path.
      Documentation: {caret} fixes (git-rev-list.txt)
      checkout: use --aggressive when running a 3-way merge (-m).
      Fix pack-index issue on 64-bit platforms a bit more portably.

Linus Torvalds (3):
      Fix "git diff --stat" with long filenames
      revert/cherry-pick: use aggressive merge.
      git config syntax updates

Martin Waitz (2):
      clone: keep --reference even with -l -s
      repack: honor -d even when no new pack was created

Matthias Lederhofer (1):
      core-tutorial.txt: escape asterisk

Pavel Roskin (1):
      Release config lock if the regex is invalid

Sean Estabrooks (3):
      Fix for config file section parsing.
      Another config file parsing fix.
      Ensure author & committer before asking for commit message.

Yakov Lerner (1):
      read-cache.c: use xcalloc() not calloc()


Version v1.3.2; changes since v1.3.1:
-------------------------------------

Huw Davies (1):
      git-format-patch: Use rfc2822 compliant date.

Jon Loeliger (3):
      Alphabetize the glossary.
      Added definitions for a few words:
      Add a few more words to the glossary.

Junio C Hamano (4):
      rebase: typofix.
      commit-tree.c: check_valid() microoptimization.
      verify-pack: check integrity in a saner order.
      git-am --resolved: more usable error message.

Linus Torvalds (1):
      Fix filename verification when in a subdirectory

Martin Langhoff (1):
      git-send-email: fix version string to be valid perl

Matthias Kestenholz (3):
      annotate: fix warning about uninitialized scalar
      annotate: display usage information if no filename was given
      fix various typos in documentation

Robert Shearman (1):
      Give the user a hint for how to continue in the case that git-am fails because it requires user intervention

Sean Estabrooks (4):
      Update the git-branch man page to include the "-r" option,
      Fix up remaining man pages that use asciidoc "callouts".
      Properly render asciidoc "callouts" in git man pages.
      Fix trivial typo in git-log man page.


Version v1.3.1; changes since v1.3.0:
-------------------------------------

Jonas Fonseca (1):
      Fix filename scaling for binary files

Junio C Hamano (5):
      git-merge: a bit more readable user guidance.
      pre-commit hook: complain about conflict markers.
      git-commit --amend: two fixes.
      pack-objects: do not stop at object that is "too small"
      mailinfo: decode underscore used in "Q" encoding properly.

Linus Torvalds (1):
      git-log produces no output

Nicolas Pitre (1):
      fix pack-object buffer size

Paul Mackerras (1):
      rev-parse: better error message for ambiguous arguments

Petr Baudis (2):
      Document git-var -l listing also configuration variables
      Document the configuration file

Santi Béjar (1):
      Reintroduce svn pools to solve the memory leak.

Serge E. Hallyn (1):
      socksetup: don't return on set_reuse_addr() error

Shawn O. Pearce (1):
      Document git-clone --reference


Version v1.3.0; changes since v1.3.0-rc4:
-----------------------------------------

A Large Angry SCM (1):
      Makefile fixups.

Herbert Valerio Riedel (1):
      git-svnimport symlink support

Johannes Schindelin (2):
      diff-options: add --patch-with-stat
      pager: do not fork a pager if PAGER is set to empty.

Jonas Fonseca (1):
      Add git-annotate(1) and git-blame(1)

Junio C Hamano (9):
      rev-list --bisect: limit list before bisecting.
      diff-tree: typefix.
      diff --stat: do not do its own three-dashes.
      diff-files --stat: do not dump core with unmerged index.
      reading $GIT_DIR/info/graft - skip comments correctly.
      rev-list --boundary: show boundary commits even when limited otherwise.
      packed_object_info_detail(): check for corrupt packfile.
      diff --stat: make sure to set recursive.
      GIT 1.3.0

Linus Torvalds (1):
      Support "git cmd --help" syntax

Paul Mackerras (1):
      gitk: Fix bug caused by missing commitlisted elements

Serge E. Hallyn (5):
      cleanups: Fix potential bugs in connect.c
      cleanups: Remove unused vars from combine-diff.c
      cleanups: Remove impossible case in quote.c
      cleanups: prevent leak of two strduped strings in config.c
      cleanups: remove unused variable from exec_cmd.c

Yann Dirson (1):
      Allow empty lines in info/grafts


Version v1.3.0-rc4; changes since v1.3.0-rc3:
---------------------------------------------

Davide Libenzi (1):
      xdiff: post-process hunks to make them consistent.

Dennis Stosberg (2):
      Solaris 9 also wants our own unsetenv/setenv.
      Replace index() with strchr().

Eric W. Biederman (1):
      Implement limited context matching in git-apply.

Johannes Schindelin (2):
      diff-options: add --stat (take 2)
      diff-options: add --stat (take 2)

Junio C Hamano (31):
      git-log: match rev-list --abbrev and --abbrev-commit
      diff: fix output of total-rewrite diff.
      diffcore-rename: fix merging back a broken pair.
      log-tree: separate major part of diff-tree.
      git log [diff-tree options]...
      Retire diffcore-pathspec.
      tree-diff: do not assume we use only one pathspec
      git log --full-diff
      Retire git-log.sh
      blame and friends: adjust to multiple pathspec change.
      Retire git-log.sh (take#2)
      diff-* --patch-with-raw
      Retire git-log.sh (take #3)
      combine-diff: do not lose hunks with only deletion at end.
      combine-diff: fix hunks at the end (take #2).
      Retire t5501-old-fetch-and-upload test.
      git-commit: do not muck with commit message when no_edit is set.
      stripspace: make sure not to leave an incomplete line.
      combine-diff: type fix.
      Documentation: add a couple of missing docs.
      Makefile: $(MAKE) check-docs
      git-log: do not output excess blank line between commits
      t3600-rm: skip failed-remove test when we cannot make an unremovable file.
      Fix-up previous expr changes.
      diff --stat: no need to ask funcnames nor context.
      t5500: test fix
      stripspace: incomplete line fix (take #2)
      Retire git-log.sh (take #4)
      git-log <diff-options> <paths> documentation
      "git cmd -h" for shell scripts.
      GIT v1.3.0-rc4

Linus Torvalds (4):
      Make "--parents" logs also be incremental
      When showing a commit message, do not lose an incomplete line.
      Use less memory in "git log"
      Clean up trailing whitespace when pretty-printing commits

Marco Roeland (1):
      xdiff/xdiffi.c: fix warnings about possibly uninitialized variables

Mark Wooding (1):
      Shell utilities: Guard against expr' magic tokens.

Petr Baudis (3):
      Improve the git-diff-tree -c/-cc documentation
      Document --patch-with-raw
      Separate the raw diff and patch with a newline


Version v1.3.0-rc3; changes since v1.3.0-rc2:
---------------------------------------------

Francis Daly (1):
      Tweaks to make asciidoc play nice.

Johannes Schindelin (3):
      cvsimport: use git-update-ref when updating
      On some platforms, certain headers need to be included before regex.h
      Fix compile with expat, but an old curl version

Jon Loeliger (1):
      Added Packing Heursitics IRC writeup.

Junio C Hamano (16):
      git-clone: fix handling of upsteram whose HEAD does not point at master.
      combine-diff: use built-in xdiff.
      parse_date(): fix parsing 03/10/2006
      combine-diff: refactor built-in xdiff interface.
      diff_flush(): leakfix.
      combine-diff: move the code to parse hunk-header into common library.
      blame: use built-in xdiff
      date parsing: be friendlier to our European friends.
      blame.c: fix completely broken ancestry traversal.
      Match ofs/cnt types in diff interface.
      blame -S <ancestry-file>
      Add Documentation/technical/pack-format.txt
      Thin pack generation: optimization.
      rev-list --abbrev-commit
      count-delta: match get_delta_hdr_size() changes.
      GIT 1.3.0-rc3

Karl Wiberg (1):
      git-svnimport: Don't assume that copied files haven't changed

Keith Packard (1):
      Provide configurable UI font for gitk

Marco Roeland (1):
      git-commit: document --amend

Mark Wooding (1):
      gitk: Use git wrapper to run git-ls-remote.

Mike McCormack (3):
      Avoid a divide by zero if there's no messages to send.
      Avoid a crash if realloc returns a different pointer.
      Add documentation for git-imap-send.

Nick Hengeveld (1):
      http-fetch: add optional DAV-based pack list

Nicolas Pitre (1):
      check patch_delta bounds more carefully

Paul Mackerras (3):
      gitk: replace parent and children arrays with lists
      gitk: Add a help menu item to display key bindings
      gitk: Fix incorrect invocation of getmergediffline

Pavel Roskin (2):
      Add git-clean command
      gitk: Fix searching for filenames in gitk

Petr Baudis (1):
      Support for pickaxe matching regular expressions

Rutger Nijlunsing (1):
      gitk: add key bindings for selecting first and last commit

Stephen Rothwell (1):
      gitk: allow goto heads


Version v1.3.0-rc2; changes since v1.3.0-rc1:
---------------------------------------------

Davide Libenzi (1):
      Clean-up trivially redundant diff.

Eric Wong (6):
      contrib/git-svn: force GIT_DIR to an absolute path
      contrib/git-svn: accept configuration via repo-config
      contrib/git-svn: documentation updates
      contrib/git-svn: ensure repo-config returns a value before using it
      contrib/git-svn: make sure our git-svn is up-to-date for test
      contrib/git-svn: handle array values correctly

J. Bruce Fields (1):
      Documentation: revise top of git man page

Jason Riedy (2):
      Add ALL_LDFLAGS to the git target.
      Use sigaction and SA_RESTART in read-tree.c; add option in Makefile.

Jim Radford (1):
      fix repacking with lots of tags

Junio C Hamano (14):
      rev-list --no-merges: argument parsing fix.
      rev-list: memory usage reduction.
      rev-list --boundary
      revision arguments: ..B means HEAD..B, just like A.. means A..HEAD
      revision.c "..B" syntax: constness fix
      assume unchanged git: diff-index fix.
      tree/diff header cleanup.
      rev-list --boundary: fix re-injecting boundary commits.
      Makefile: many programs now depend on xdiff/lib.a having been built.
      revision: --topo-order and --unpacked
      revision: simplify argument parsing.
      revision: --max-age alone does not need limit_list() anymore.
      safe_fgets() - even more anal fgets()
      GIT 1.3.0-rc2

Linus Torvalds (5):
      Move "--parent" parsing into generic revision.c library code
      Make path-limiting be incremental when possible.
      revision: Fix --topo-order and --max-age with reachability limiting.
      Fix Solaris stdio signal handling stupidities
      pack-objects: be incredibly anal about stdio semantics

Mark Wooding (1):
      xdiff: Show function names in hunk headers.

Nick Hengeveld (2):
      git-ls-remote: send no-cache header when fetching info/refs
      Set HTTP user agent to git/GIT_VERSION

Paul Mackerras (5):
      gitk: Use the new --boundary flag to git-rev-list
      gitk: Show diffs for boundary commits
      gitk: Prevent parent link from overwriting commit headline
      gitk: Allow top panes to scroll horizontally with mouse button 2
      gitk: Better workaround for arrows on diagonal line segments

Peter Eriksen (2):
      Use blob_, commit_, tag_, and tree_type throughout.
      Replace xmalloc+memset(0) with xcalloc.

René Scharfe (3):
      Remove useless pointer update
      Fix sparse warnings about usage of 0 instead of NULL
      Fix sparse warnings about non-ANSI function prototypes

Yasushi SHOJI (2):
      Make git-clone to take long double-dashed origin option (--origin)
      git-clone: exit early if repo isn't specified


Version v1.3.0-rc1; changes since v1.2.6:
-----------------------------------------

Alex Riesen (2):
      PATCH: simplify calls to git programs in git-fmt-merge-msg
      workaround fat/ntfs deficiencies for t3600-rm.sh (git-rm)

Alexandre Julliard (12):
      Add an Emacs interface in contrib.
      git-format-patch: Always add a blank line between headers and body.
      contrib/emacs: Add an Emacs VC backend.
      git.el: Portability fixes for XEmacs and Emacs CVS.
      git.el: Set default directory before running the status mode setup hooks.
      git.el: Automatically update .gitignore status.
      git.el: Added support for Signed-off-by.
      git.el: Added customize support for all parameters.
      ls-files: Don't require exclude files to end with a newline.
      git.el: More robust handling of subprocess errors when returning strings.
      git.el: Get the default user name and email from the repository config.
      git.el: Added a function to diff against the other heads in a merge.

Anand Kumria (1):
      git-svnimport: if a limit is specified, respect it

Aneesh Kumar K.V (16):
      Add contrib/gitview from Aneesh.
      Add a README for gitview
      gitview: typofix
      gitview: Read tag and branch information using git ls-remote
      gitview: Use monospace font to draw the branch and tag name
      gitview: Display the lines joining commit nodes clearly.
      gitview: Fix DeprecationWarning
      gitview: Bump the rev
      gitview: Code cleanup
      gitview: Fix the graph display .
      gitview: Fix the encoding related bug
      gitview: Remove trailing white space
      gitview: Some window layout changes.
      gitview: Set the default width of graph cell
      gitview: Use horizontal scroll bar in the tree view
      gitview: pass the missing argument _show_clicked_cb.

Carl Worth (5):
      git-rebase: Clarify usage statement and copy it into the actual documentation.
      New test to verify that when git-clone fails it cleans up the new directory.
      git-ls-files: Fix, document, and add test for --error-unmatch option.
      Add new git-rm command with documentation
      git-rm: Fix to properly handle files with spaces, tabs, newlines, etc.

Dmitry V. Levin (1):
      git/Documentation: fix SYNOPSIS style bugs

Eric Wong (43):
      Introducing contrib/git-svn.
      git-svn: fix revision order when XML::Simple is not loaded
      git-svn: ensure fetch always works chronologically.
      git-svn: remove files from the index before adding/updating
      git-svn: fix a typo in defining the --no-stop-on-copy option
      git-svn: allow --find-copies-harder and -l<num> to be passed on commit
      git-svn: Allow for more argument types for commit (from..to)
      git-svn: remove any need for the XML::Simple dependency
      git-svn: change ; to && in addremove()
      contrib/git-svn.txt: add a note about renamed/copied directory support
      git-svn: fix several corner-case and rare bugs with 'commit'
      contrib/git-svn: add Makefile, test, and associated ignores
      git-svn: 0.9.1: add --version and copyright/license (GPL v2+) information
      contrib/git-svn: add show-ignore command
      contrib/git-svn: optimize sequential commits to svn
      contrib/git-svn: version 0.10.0
      contrib/git-svn: tell the user to not modify git-svn-HEAD directly
      contrib/git-svn: correct commit example in manpage
      contrib/git-svn: use refs/remotes/git-svn instead of git-svn-HEAD
      git-branch: add -r switch to list refs/remotes/*
      contrib/git-svn: add -b/--branch switch for branch detection
      contrib/git-svn: several small bug fixes and changes
      contrib/git-svn: strip 'git-svn-id:' when commiting to SVN
      contrib/git-svn: allow --authors-file to be specified
      contrib/git-svn: cleanup option parsing
      contrib/git-svn: create a more recent master if one does not exist
      contrib/git-svn: avoid re-reading the repository uuid, it never changes
      contrib/git-svn: add --id/-i=$GIT_SVN_ID command-line switch
      contrib/git-svn: better documenting of CLI switches
      send-email: accept --no-signed-off-by-cc as the documentation states
      contrib/git-svn: fix a copied-tree bug in an overzealous assertion
      contrib/git-svn: fix svn compat and fetch args
      contrib/git-svn: remove the --no-stop-on-copy flag
      contrib/git-svn: fix a harmless warning on rebuild (with old repos)
      fetch,parse-remote,fmt-merge-msg: refs/remotes/* support
      ls-tree: add --abbrev[=<n>] option
      ls-files: add --abbrev[=<n>] option
      contrib/git-svn: allow rebuild to work on non-linear remote heads
      send-email: use built-in time() instead of /bin/date '+%s'
      send-email: Change from Mail::Sendmail to Net::SMTP
      send-email: try to order messages in email clients more correctly
      send-email: lazy-load Email::Valid and make it optional
      contrib/git-svn: stabilize memory usage for big fetches

Fernando J. Pereda (1):
      Allow building Git in systems without iconv

Francis Daly (4):
      AsciiDoc fix for tutorial
      Tweak asciidoc output to work with broken docbook-xsl
      Fix multi-paragraph list items in OPTIONS section
      Format tweaks for asciidoc.

Fredrik Kuivinen (13):
      Add git-blame, a tool for assigning blame.
      git-blame, take 2
      git-blame: Make the output human readable
      git-blame: Use the same tests for git-blame as for git-annotate
      Fix some inconsistencies in the docs
      Remove trailing dot after short description
      Nicer output from 'git'
      Make it possible to not clobber object.util in sort_in_topological_order (take 2)
      rev-lib: Make it easy to do rename tracking (take 2)
      blame: Rename detection (take 2)
      blame: Nicer output
      blame: Fix git-blame <directory>
      Makefile: Add TAGS and tags targets

J. Bruce Fields (1):
      Document git-rebase behavior on conflicts.

Jason Riedy (1):
      Fix typo in git-rebase.sh.

Jeff Muizelaar (2):
      cosmetics: change from 'See-Also' to 'See Also'
      documentation: add 'see also' sections to git-rm and git-add

Johannes Schindelin (13):
      Fix cpio call
      Optionally support old diffs
      Support Irix
      Optionally work without python
      Fixes for ancient versions of GNU make
      avoid makefile override warning
      Really honour NO_PYTHON
      Fix "gmake -j"
      Use Ryan's git-annotate instead of jsannotate
      Warn about invalid refs
      Fix test case for some sed
      imap-send: Add missing #include for macosx
      Remove dependency on a file named "-lz"

Jon Loeliger (9):
      Add git-show reference
      Call out the two different uses of git-branch and fix a typo.
      Document the default source of template files.
      Clarify git-rebase example commands.
      Reference git-commit-tree for env vars.
      Fix minor typo.
      Rewrite synopsis to clarify the two primary uses of git-checkout.
      Clarify and expand some hook documentation.
      Removed bogus "<snap>" identifier.

Jonas Fonseca (2):
      manpages: insert two missing [verse] markers for multi-line SYNOPSIS
      repo-config: give value_ a sane default so regexec won't segfault

Josef Weidendorfer (1):
      git-mv: fix moves into a subdir from outside

Junio C Hamano (137):
      "Assume unchanged" git
      "Assume unchanged" git: do not set CE_VALID with --refresh
      ls-files: debugging aid for CE_VALID changes.
      "Assume unchanged" git: --really-refresh fix.
      ls-files: split "show-valid-bit" into a different option.
      "assume unchanged" git: documentation.
      cache_name_compare() compares name and stage, nothing else.
      git-commit: Now --only semantics is the default.
      rebase: allow a hook to refuse rebasing.
      commit: detect misspelled pathspec while making a partial commit.
      rebase: allow rebasing onto different base.
      ls-files --error-unmatch pathspec error reporting fix.
      Detect misspelled pathspec to git-add
      packed objects: minor cleanup
      topo-order: make --date-order optional.
      pack-objects: reuse data from existing packs.
      pack-objects: finishing touches.
      git-repack: allow passing a couple of flags to pack-objects.
      git-tag: -l to list tags (usability).
      Add contrib/README.
      SubmittingPatches: note on whitespaces
      pack-objects: avoid delta chains that are too long.
      Make "empty ident" error message a bit more helpful.
      Delay "empty ident" errors until they really matter.
      Keep Porcelainish from failing by broken ident after making changes.
      fmt-merge-msg: say which branch things were merged into unless 'master'
      Allow git-mv to accept ./ in paths.
      Documentation: fix typo in rev-parse --short option description.
      fmt-merge-msg: do not add excess newline at the end.
      rev-list --objects-edge
      Thin pack - create packfile with missing delta base.
      send-pack --thin: use "thin pack" delta transfer.
      Add git-push --thin.
      Use thin pack transfer in "git fetch".
      fmt-merge-msg: avoid open "-|" list form for Perl 5.6
      rerere: avoid open "-|" list form for Perl 5.6
      send-email: avoid open "-|" list form for Perl 5.6
      svnimport: avoid open "-|" list form for Perl 5.6
      cvsimport: avoid open "-|" list form for Perl 5.6
      Fix fmt-merge-msg counting.
      cherry-pick/revert: error-help message rewording.
      git-mktree: reverse of git-ls-tree.
      rev-list.c: fix non-grammatical comments.
      send-pack: do not give up when remote has insanely large number of refs.
      gitview: ls-remote invocation shellquote safety.
      pack-objects: thin pack micro-optimization.
      pack-objects: use full pathname to help hashing with "thin" pack.
      count-delta: tweak counting of copied source material.
      count-delta: fix counting of copied source.
      Tweak break/merge score to adjust to the new delta generation code.
      pack-objects: allow "thin" packs to exceed depth limits
      rev-list --objects-edge: remove duplicated edge commit output.
      rev-list --objects: use full pathname to help hashing.
      pack-objects: hash basename and direname a bit differently.
      Revert "diff-delta: produce optimal pack data"
      Build and install git-mailinfo.
      rev-list split: minimum fixup.
      apply --whitespace fixes and enhancements.
      apply: squelch excessive errors and --whitespace=error-all
      apply --whitespace: configuration option.
      git-apply --whitespace=nowarn
      Revert "Revert "diff-delta: produce optimal pack data""
      git-apply: war on whitespace -- finishing touches.
      diffcore-break: micro-optimize by avoiding delta between identical files.
      diffcore-rename: split out the delta counting code.
      diffcore-delta: stop using deltifier for packing.
      git-am: --whitespace=x option.
      diff-delta: cull collided hash bucket more aggressively.
      git-log (internal): add approxidate.
      git-log (internal): more options.
      Pretty-print tagger dates.
      war on whitespaces: documentation.
      Documentation: read-tree --aggressive
      Documentation: rev-list --objects-edge
      annotate: resurrect raw timestamps.
      setup_revisions(): handle -n<n> and -<n> internally.
      GIT-VERSION-GEN: squelch unneeded error from "cat version"
      show-branch --topics
      git-commit --amend
      git-commit: make sure we protect against races.
      diffcore-rename: similarity estimator fix.
      show-branch --topics: omit more uninteresting commits.
      count-delta: no need for this anymore.
      diffcore-break: similarity estimator fix.
      diffcore-delta: make change counter to byte oriented again.
      git-commit --amend: allow empty commit.
      Const tightening.
      verify-pack -v: show delta-chain histogram.
      blame: avoid -lm by not using log().
      blame and annotate: show localtime with timezone.
      blame: avoid "diff -u0".
      annotate/blame tests updates.
      annotate-blame test: don't "source", but say "."
      annotate-blame test: add evil merge.
      blame: unbreak "diff -U 0".
      annotate-blame: tests incomplete lines.
      pack-objects: simplify "thin" pack.
      Use #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
      refs.c::do_for_each_ref(): Finish error message lines with "\n"
      fsck-objects: Remove --standalone
      Fix t1200 test for breakage caused by removal of full-stop at the end of fast-forward message.
      try_to_simplify_commit(): do not skip inspecting tree change at boundary.
      repack: prune loose objects when -d is given
      git-diff: -p disables rename detection.
      diffcore-rename: somewhat optimized.
      revision traversal: --remove-empty fix.
      revision traversal: --remove-empty fix (take #2).
      diffcore-delta: make the hash a bit denser.
      diffcore-delta: tweak hashbase value.
      cvsimport: honor -i and non -i upon subsequent imports
      fetch: exit non-zero when fast-forward check fails.
      cvsimport: fix reading from rev-parse
      git-pull: run repo-config with dash form.
      unpack_delta_entry(): reduce memory footprint.
      generate-cmdlist: style cleanups.
      revamp git-clone.
      git-merge knows some strategies want to skip trivial merges
      http-fetch: nicer warning for a server with unreliable 404 status
      core.warnambiguousrefs: warns when "name" is used and both "name" branch and tag exists.
      revamp git-clone (take #2).
      get_sha1_basic(): try refs/... and finally refs/remotes/$foo/HEAD
      clone: record the remote primary branch with remotes/$origin/HEAD
      http-push.c: squelch C90 warnings.
      git-apply: do not barf when updating an originally empty file.
      rev-list --timestamp
      git-clone: typofix.
      git-pull: further safety while on tracking branch.
      git-pull: reword "impossible to fast-forward" message.
      sha1_name: warning ambiguous refs.
      sha1_name: make core.warnambiguousrefs the default.
      send-email: Identify author at the top when sending e-mail
      commit-tree: check return value from write_sha1_file()
      built-in diff: minimum tweaks
      true built-in diff: run everything in-core.
      git-push: make --thin pack transfer the default.
      add clean and ignore rules for xdiff/
      GIT 1.3.0 rc1

Karl Wiberg (7):
      git-svnimport: -r adds svn revision number to commit messages
      svnimport: Mention -r in usage summary
      svnimport: Convert executable flag
      svnimport: Convert the svn:ignore property
      svnimport: Read author names and emails from a file
      Let git-svnimport's author file use same syntax as git-cvsimport's
      Save username -> Full Name <email@addr.es> map file

Linus Torvalds (21):
      Handling large files with GIT
      Handling large files with GIT
      git-merge-tree: generalize the "traverse <n> trees in sync" functionality
      Teach the "git" command to handle some commands internally
      First cut at libifying revlist generation
      Make git diff-generation use a simpler spawn-like interface
      The war on trailing whitespace
      Splitting rev-list into revisions lib, end of beginning.
      git-rev-list libification: rev-list walking
      Introduce trivial new pager.c helper infrastructure
      Tie it all together: "git log"
      Rip out merge-order and make "git log <paths>..." work again.
      get_revision(): do not dig deeper when we know we are at the end.
      git-fmt-merge-msg cleanup
      Fix up diffcore-rename scoring
      diffcore-delta: 64-byte-or-EOL ultrafast replacement.
      diffcore-delta: 64-byte-or-EOL ultrafast replacement (hash fix).
      git-apply: safety fixes
      Use a *real* built-in diff generator
      builtin-diff: \No newline at end of file.
      Fix error handling for nonexistent names

Lukas Sandström (1):
      git-fetch: print the new and old ref when fast-forwarding

Marco Costalba (1):
      Add a Documentation/git-tools.txt

Marco Roeland (1):
      imap-send: cleanup execl() call to use NULL sentinel instead of 0

Mark Hollomon (1):
      Let merge set the default strategy.

Mark Wooding (6):
      combine-diff: Honour --full-index.
      combine-diff: Honour -z option correctly.
      Documentation/Makefile: Some `git-*.txt' files aren't manpages.
      gitignore: Ignore some more boring things.
      contrib/emacs/Makefile: Provide tool for byte-compiling files.
      annotate-tests: override VISUAL when running tests.

Martin Langhoff (18):
      Introducing git-cvsserver -- a CVS emulator for git.
      cvsserver: add notes on how to get a checkout under Eclipse
      cvsserver: Eclipse compat fixes - implement Questionable, alias rlog, add a space after the U
      cvsserver: Eclipse compat - browsing 'modules' (heads in our case) works
      cvsserver: add notes on how to get a checkout under Eclipse
      cvsserver: Eclipse compat fixes - implement Questionable, alias rlog, add a space after the U
      cvsserver: Eclipse compat - browsing 'modules' (heads in our case) works
      cvsserver: Checkout correctly on Eclipse
      annotate: fix -S parameter to take a string
      cvsserver: Eclipse compat -- now "compare with latest from HEAD" works
      cvsserver: checkout faster by sending files in a sensible order
      cvsserver: fix checkouts with -d <somedir>
      cvsserver: checkout faster by sending files in a sensible order
      cvsserver: fix checkouts with -d <somedir>
      cvsserver: nested directory creation fixups for Eclipse clients
      cvsserver: better error messages
      cvsserver: anonymous cvs via pserver support
      cvsserver: updated documentation

Martin Mares (1):
      gitk: Make error_popup react to Return

Matthias Urlichs (2):
      cvsimport: Remove master-updating code
      Don't recurse into parents marked uninteresting.

Mike McCormack (5):
      Allow adding arbitary lines in the mail header generated by format-patch.
      Allow format-patch to attach patches
      Document the --attach flag.
      Describe how to add extra mail header lines in mail generated by git-format-patch.
      Add git-imap-send, derived from isync 1.0.1.

Nick Hengeveld (10):
      Update http-push functionality
      http-push: fix revision walk
      HTTP slot reuse fixes
      http-push: refactor remote file/directory processing
      http-push: improve remote lock management
      http-push: support for updating remote info/refs
      http-push: cleanup
      Fix broken slot reuse when fetching alternates
      http-push: add support for deleting remote branches
      http-push: don't assume char is signed

Nicolas Pitre (11):
      relax delta selection filtering in pack-objects
      diff-delta: fold two special tests into one plus cleanups
      diff-delta: produce optimal pack data
      diff-delta: big code simplification
      diff-delta: bound hash list length to avoid O(m*n) behavior
      diff-delta: produce optimal pack data
      diff-delta: bound hash list length to avoid O(m*n) behavior
      diff-delta: allow reusing of the reference buffer index
      test-delta needs zlib to compile
      diff-delta: bound hash list length to avoid O(m*n) behavior
      3% tighter packs for free

Olaf Hering (1):
      allow double click on current HEAD id after git-pull

Paul Jakma (1):
      Makefile tweaks: Solaris 9+ dont need iconv / move up uname variables

Paul Mackerras (13):
      gitk: Make "find" on "Files" work again.
      gitk: New improved gitk
      gitk: Fix clicks on arrows on line ends
      gitk: Fix Update menu item
      gitk: Various speed improvements
      gitk: Further speedups
      gitk: Fix a bug in drawing the selected line as a thick line
      gitk: Fix display of diff lines beginning with --- or +++
      gitk: Make commitdata an array rather than a list
      gitk: Don't change cursor at end of layout if find in progress
      gitk: Make downward-pointing arrows end in vertical line segment
      gitk: Improve appearance of first child links
      gitk: Fix two bugs reported by users

Pavel Roskin (1):
      gitview: Select the text color based on whether the entry in highlighted. Use standard font.

Petr Baudis (2):
      Properly git-bisect reset after bisecting from non-master head
      Optionally do not list empty directories in git-ls-files --others

Randal L. Schwartz (1):
      fix imap-send for OSX

René Scharfe (5):
      tar-tree: Use SHA1 of root tree for the basedir
      tar-tree: Introduce write_entry()
      tar-tree: Use write_entry() to write the archive contents
      tar-tree: Remove obsolete code
      tar-tree: Use the prefix field of a tar header

Ryan Anderson (9):
      send-email: Add some options for controlling how addresses are automatically added to the cc: list.
      send-email: Add --cc
      Add git-annotate, a tool for assigning blame.
      annotate: Handle dirty state and arbitrary revisions.
      annotate: Convert all -| calls to use a helper open_pipe().
      annotate: Use qx{} for pipes on activestate.
      annotate: handle \No newline at end of file.
      annotate: Add a basic set of test cases.
      annotate: Support annotation of files on other revisions.

Sean Estabrooks (1):
      annotate.perl triggers rpm bug

Shawn O. Pearce (7):
      git ls files recursively show ignored files
      Add missing programs to ignore list
      Darwin: Ignore missing /sw/lib
      Teach git-checkout-index to read filenames from stdin.
      Prevent --index-info from ignoring -z.
      Add --temp and --stage=all options to checkout-index.
      Add missing semicolon to sed command.

Timo Hirvonen (1):
      Use setenv(), fix warnings

Tony Luck (4):
      fix warning from pack-objects.c
      Re-fix compilation warnings.
      annotate should number lines starting with 1
      fix field width/precision warnings in blame.c

Yasushi SHOJI (1):
      Be verbose when !initial commit


Version v1.2.6; changes since v1.2.5:
-------------------------------------

Junio C Hamano (3):
      parse_date(): fix parsing 03/10/2006
      diff_flush(): leakfix.
      count-delta: match get_delta_hdr_size() changes.

Nicolas Pitre (1):
      check patch_delta bounds more carefully


Version v1.2.5; changes since v1.2.4:
-------------------------------------

Jason Riedy (1):
      Use sigaction and SA_RESTART in read-tree.c; add option in Makefile.

Junio C Hamano (3):
      read-tree --aggressive: remove deleted entry from the working tree.
      tar-tree: file/dirmode fix.
      safe_fgets() - even more anal fgets()

Linus Torvalds (2):
      Fix Solaris stdio signal handling stupidities
      pack-objects: be incredibly anal about stdio semantics


Version v1.2.4; changes since v1.2.3:
-------------------------------------

Alex Riesen (1):
      fix t5600-clone-fail-cleanup.sh on windows

Josef Weidendorfer (2):
      git-mv: Allow -h without repo & fix error message
      git-mv: fixes for path handling

Junio C Hamano (13):
      checkout - eye candy.
      Give no terminating LF to error() function.
      diffcore-rename: plug memory leak.
      git-am: do not allow empty commits by mistake.
      sample hooks template.
      apply --whitespace fixes and enhancements.
      apply: squelch excessive errors and --whitespace=error-all
      apply --whitespace: configuration option.
      git-apply --whitespace=nowarn
      git-apply: war on whitespace -- finishing touches.
      git-am: --whitespace=x option.
      diffcore-break: micro-optimize by avoiding delta between identical files.
      Allow git-mv to accept ./ in paths.

Linus Torvalds (1):
      The war on trailing whitespace

Mark Wooding (2):
      combine-diff: Honour --full-index.
      combine-diff: Honour -z option correctly.


Version v1.2.3; changes since v1.2.2:
-------------------------------------

Carl Worth (2):
      git-add: Add support for --, documentation, and test.
      git-push: Update documentation to describe the no-refspec behavior.

Junio C Hamano (11):
      format-patch: pretty-print timestamp correctly.
      detect broken alternates.
      pack-objects: reuse data from existing packs.
      pack-objects: finishing touches.
      git-repack: allow passing a couple of flags to pack-objects.
      pack-objects: avoid delta chains that are too long.
      Make "empty ident" error message a bit more helpful.
      Delay "empty ident" errors until they really matter.
      Keep Porcelainish from failing by broken ident after making changes.
      pack-objects eye-candy: finishing touches.
      git-fetch: follow tag only when tracking remote branch.

Nicolas Pitre (2):
      nicer eye candies for pack-objects
      also adds progress when actually writing a pack


Version v1.2.2; changes since v1.2.1:
-------------------------------------

Carl Worth (3):
      Trap exit to clean up created directory if clone fails.
      Abstract test_create_repo out for use in tests.
      Prevent git-upload-pack segfault if object cannot be found

Eric Wong (1):
      archimport: remove files from the index before adding/updating

Jonas Fonseca (2):
      git-rev-parse: Fix --short= option parsing
      Document --short and --git-dir in git-rev-parse(1)

Martin Mares (1):
      Fix retries in git-cvsimport

Shawn O. Pearce (1):
      Make git-reset delete empty directories


Version v1.2.1; changes since v1.2.0:
-------------------------------------

Fernando J. Pereda (1):
      Print an error if cloning a http repo and NO_CURL is set

Fredrik Kuivinen (1):
      s/SHELL/SHELL_PATH/ in Makefile

Josef Weidendorfer (1):
      More useful/hinting error messages in git-checkout

Junio C Hamano (6):
      Documentation: git-commit in 1.2.X series defaults to --include.
      Documentation: git-ls-files asciidocco.
      bisect: remove BISECT_NAMES after done.
      combine-diff: diff-files fix.
      combine-diff: diff-files fix (#2)
      checkout: fix dirty-file display.


Version v1.2.0; changes since v1.1.6:
-------------------------------------

Alecs King (1):
      Add freebsd support in Makefile

Alex Riesen (2):
      fix "test: 2: unexpected operator" on bsd
      avoid echo -e, there are systems where it does not work

Andreas Ericsson (4):
      git-cvsimport: Add -A <author-conv-file> option
      update-hook: Major overhaul (handling tags, mainly).
      format-patch: Remove last vestiges of --mbox option
      .gitignore git-rerere and config.mak

Christian Biesinger (1):
      Use a relative path for SVN importing

Daniel Barkalow (4):
      Only use a single parser for tree objects
      Use struct tree in tar-tree
      Use struct commit in tar-tree
      Make apply accept the -pNUM option like patch does.

Eric W. Biederman (1):
      Fix git-format-patch -s to include a Signed-off-by: line...

Eric Wong (2):
      rev-list: allow -n<n> as shorthand for --max-count=<n>
      rev-list: allow -<n> as shorthand for --max-count=<n>

Florian Weimer (1):
      AsciiDoc fixes for the git-svnimport manpage

Fredrik Kuivinen (2):
      merge-recursive: Make use of provided bases
      merge-recursive: Speed up commit graph construction

J. Bruce Fields (7):
      Minor git-reset and git-commit documentation fixes
      Mention install-doc in INSTALL
      New tutorial
      cvs-migration documentation update
      Docs: split up pull-fetch-param.txt
      Docs: move git url and remotes text to separate sections
      Docs: minor git-push copyediting

Jason Riedy (4):
      Run GIT-VERSION-GEN with $(SHELL), not sh.
      Add compat/unsetenv.c .
      Use sha1_file.c's mkdir-like routine in apply.c.
      stat() for existence in safe_create_leading_directories()

Johannes Schindelin (1):
      Use a hashtable for objects instead of a sorted list

Jon Loeliger (1):
      Add --diff-filter= documentation paragraph

Junio C Hamano (112):
      show-branch: take default arguments from configuration file.
      git-describe: default to HEAD
      Makefile: add 'strip' target
      octopus: allow criss-cross and clarify the message when it rejects
      Fix the installation location.
      checkout: automerge local changes while switching branches.
      checkout: merge local modifications while switching branches.
      git-push: avoid falling back on pushing "matching" refs.
      checkout: show dirty state upon switching branches.
      clone: --naked option.
      format-patch: always --mbox and show sane Date:
      octopus: allow manual resolve on the last round.
      Documentation: show-branch.
      show-branch: make the current branch and merge commits stand out.
      show-branch: --current includes the current branch.
      cvsimport: ease migration from CVSROOT/users format
      git-push: fix --tags and document it.
      Allow building of RPM from interim snapshot.
      Revert "git-push: avoid falling back on pushing "matching" refs."
      Makefile: do not assume lack of IPV6 means no sockaddr_storage.
      fsck-objects: support platforms without d_ino in struct dirent.
      DT_UNKNOWN: do not fully trust existence of DT_UNKNOWN
      t4011: "sleep 1" is not enough on FAT
      Undef DT_* before redefining them.
      git-grep: clarification on parameters.
      Recommend to remove unused `origin` in a shared repository.
      Documentation: finishing touches to the new tutorial.
      sample update-hook: sanely handle a new branch head.
      git-clone: PG13 --naked option to --bare.
      clone: do not create remotes/origin nor origin branch in a bare repository.
      clone: do not accept more than one -o option.
      tests: adjust breakage by stricter rev-parse
      git-fetch --upload-pack: disambiguate.
      merge: seed the commit message with list of conflicted files.
      diff-tree -c: show a merge commit a bit more sensibly.
      diff-tree --cc: denser combined diff output for a merge commit.
      combine-diff: fix appending at the tail of a list.
      combine-diff: minor output changes.
      combine-diff: extend --cc logic to Octopus.
      diff-tree --cc: squelch header generation on empty patch.
      combine-diff: better hunk splitting.
      diff-files: -c and --cc options.
      rev-list --remove-empty: add minimum help and doc entry.
      abbrev cleanup: use symbolic constants
      rev-parse: --abbrev option.
      diff-tree: abbreviate merge parent object names with --abbrev --pretty.
      rev-parse --abbrev: do not try abbrev shorter than minimum.
      Rename rev-parse --abbrev to --short.
      pretty_print_commit(): pass commit object instead of commit->buffer.
      pretty_print_commit: honor grafts.
      diff --abbrev=<n> option fix.
      rev-parse: make "whatchanged -- git-fetch-script" work again.
      diff-files -c/--cc: combine only when both ours and theirs exist.
      Documentation: diff -c/--cc
      documentation: cvs migration - typofix.
      update-index --index-info: allow stage 0 entries.
      rev-list: omit duplicated parents.
      combine-diff: reuse diff from the same blob.
      combine-diff: update --cc "uninteresting hunks" logic.
      combine-diff: add safety check to --cc.
      combine-diff: fix placement of deletion.
      Documentation: git-diff-tree --cc also omits empty commits
      commit.c: "Merge" fix in pretty_print_commit.
      combine-diff: add a bit more comments.
      combine-diff: show parent line numbers as well.
      combine-diff: cleanup.
      combine-diff: finishing touches to git-diff-tree --cc
      whitespace cleanup.
      get_sha1_1: allow octopus^12 to be properly parsed.
      git-merge: Properly quote $merge_msg variable.
      Do not fall back on vi on dumb terminals.
      diff-index: make --cc a synonym for -p for now.
      git-diff: use --cc instead of -p.
      git-show
      daemon: do not forbid user relative paths unconditionally under --base-path
      daemon: extend user-relative path notation.
      combine-diff: remove misguided --show-empty hack.
      git-diff-tree --stdin: show all parents.
      git-diff: do not fall back on --cc when -[123], --ours etc. are given.
      core-tutorial: adjust to recent reality.
      combine-diff: do not send NULL to printf
      combine-diff: show mode changes as well.
      combine-diff: do not punt on removed or added files.
      mailinfo: reset CTE after each multipart
      read-tree --aggressive
      fmt-merge-msg: show summary of what is merged.
      git-rerere: reuse recorded resolve.
      git-commit: revamp the git-commit semantics.
      git-commit: finishing touches.
      Do not allow empty name or email.
      t6000: fix a careless test library add-on.
      ls-files: honour per-directory ignore file from higher directories.
      combined-diff: use diffcore before intersecting paths.
      call git_config() after setup_git_directory()
      combine-diff: move formatting logic to show_combined_diff()
      count-delta.c: Match the delta data semantics change in version 3.
      git-status -v
      find_unique_abbrev() simplification.
      combine-diff: Record diff status a bit more faithfully
      rev-list: default to abbreviate merge parent names under --pretty.
      git-commit -v: have patch at the end.
      Define GIT_(AUTHOR|COMMITTER)_(NAME|EMAIL) to known values.
      fetch-clone progress: finishing touches.
      Only call git-rerere if $GIT_DIR/rr-cache exists.
      t5500: adjust to change in pack-object reporting behaviour.
      diff-tree: do not default to -c
      Avoid using "git-var -l" until it gets fixed.
      hashtable-based objects: minimum fixups.
      Make pack-objects chattier.
      git-commit: show dirtiness including index.
      Fix "test: unexpected operator" on bsd
      GIT 1.2.0

Kent Engstrom (1):
      Add howto about separating topics.

Linus Torvalds (14):
      Make git-rev-list and git-rev-parse argument parsing stricter
      git-whatchanged: exit out early on errors
      rev-list: stop when the file disappears
      Make the "struct tree_desc" operations available to others
      Make git-tar-tree use the tree_desc abstractions
      Fix git-rev-parse over-eager errors
      diff-tree --always flag
      rev-parse lstat() workaround cleanup.
      Fix "git diff a..b" breakage
      diff-tree -c raw output
      Make "git clone" less of a deathly quiet experience
      Make "git clone" pack-fetching download statistics better
      Fix fetch-clone in the presense of signals
      Fix object re-hashing

Mark Wooding (7):
      daemon: Provide missing argument for logerror() call.
      http-fetch: Fix object list corruption in fill_active_slots().
      http-fetch: Fix message reporting rename of object file.
      http: Turn on verbose Curl messages if GIT_CURL_VERBOSE set in environment
      http-fetch: Tidy control flow in process_alternate_response
      daemon: Set SO_REUSEADDR on listening sockets.
      http-fetch: Abort requests for objects which arrived in packs

Martin Langhoff (3):
      cvsimport: Add -S <skipfileregex> support and -v announces files retrieved
      exportcommit: replace backticks with safe_pipe_capture() or system() - initial pass
      cvsexportcommit: add some examples to the documentation

Matt Draisey (1):
      local push/pull env cleanup

Michal Ostrowski (3):
      Exec git programs without using PATH.
      git-fetch: pass --upload-pack to fetch-pack
      git-{fetch,peek-remote} handling of --upload-pack

Nick Hengeveld (2):
      Fix HTTP request result processing after slot reuse
      Use local structs for HTTP slot callback data

Nicolas Pitre (3):
      remove delta-against-self bit
      count-delta.c: comment fixes
      delta micro optimization

Paul Mackerras (2):
      gitk: Add braces around if expressions
      gitk: Use git-diff-tree --cc for showing the diffs for merges

Pavel Roskin (2):
      Disable USE_SYMLINK_HEAD by default
      Don't include ../README in git.txt - make a local copy

Peter Eriksen (1):
      Use adler32() from zlib instead of defining our own.

Petr Baudis (5):
      Document git-ls-files --directory
      Allow diff and index commands to be interrupted
      Document git-diff-tree --always
      Basic documentation for git-show
      Add support for explicit type specifiers when calling git-repo-config

Ryan Anderson (3):
      Provide a more meaningful initial "From " line when using --compose in git-send-email.
      git-send-email: Add --quiet to reduce some of the chatter when sending emails.
      git-send-email: Fully implement --quiet and document it.

Sasha Khapyorsky (1):
      git-svnimport.perl: fix for 'arg list too long...'

Tom Prince (1):
      Add --keep option to keep downloaded packs to git-fetch.

Tony Luck (1):
      update using-topic-branches

Uwe Kleine-König (3):
      Fix generation of "humanish" part of source repo
      Remove unneeded header
      Use symbolic name SHORT_NAME_AMBIGUOUS as error return value

Uwe Zeisberger (1):
      Make GIT-VERSION-GEN tolerate missing git describe command again


Version v1.1.6; changes since v1.1.5:
-------------------------------------

Fredrik Kuivinen (2):
      merge-recursive: Improve the error message printed when merge(1) isn't found.
      git-branch: Documentation fixes

J. Bruce Fields (1):
      git push -f documentation

Junio C Hamano (1):
      pre-commit sample hook: do not barf on the initial import


Version v1.1.5; changes since v1.1.4:
-------------------------------------

Junio C Hamano (1):
      checkout: do not make a temporary copy of symlink target.


Version v1.1.4; changes since v1.1.3:
-------------------------------------

Johannes Schindelin (1):
      git-fetch-pack: really do not ask for funny refs

Junio C Hamano (1):
      Revert "check_packed_git_idx(): check integrity of the idx file itself."


Version v1.1.3; changes since v1.1.2:
-------------------------------------

Junio C Hamano (2):
      diffcore-break/diffcore-rename: integer overflow.
      describe: omit clearing marks on the last one.


Version v1.1.2; changes since v1.1.1:
-------------------------------------

J. Bruce Fields (1):
      Documentation: clarify fetch parameter descriptions.

Junio C Hamano (6):
      update-index: work with c-quoted name
      describe: do not silently ignore indescribable commits
      name-rev: do not omit leading components of ref name.
      show-branch: handle [] globs as well.
      Documentation: git-commit -a
      Documentation: git-reset - interrupted workflow.

Tom Prince (1):
      Add git-describe to .gitignore.


Version v1.1.1; changes since v1.1.0:
-------------------------------------

H. Peter Anvin (1):
      For release tarballs, include the proper version

Johannes Schindelin (1):
      glossary: explain "master" and "origin"

Junio C Hamano (1):
      GIT-VERSION-GEN: detect dirty tree and mark the version accordingly.


Version v1.1.0; changes since v1.0.13:
--------------------------------------

Johannes Schindelin (3):
      git-clone: Support changing the origin branch with -o
      Introduce core.sharedrepository
      git-init-db: initialize shared repositories with --shared

John Ellson (1):
      Make GIT-VERSION-GEN tolerate missing git describe command

Junio C Hamano (23):
      Post 1.0.0 development track.
      Versioning scheme changes.
      merge-recursive: conflicting rename case.
      whatchanged: customize diff-tree output
      rev-parse: --show-cdup
      check_packed_git_idx(): check integrity of the idx file itself.
      checkout: sometimes work from a subdirectory.
      ls-tree: chomp leading directories when run from a subdirectory
      git-clone: do not special case dumb http.
      Tutorial: mention shared repository management.
      git-describe: really prefer tags only.
      git-describe: use find_unique_abbrev()
      git-describe: --tags and --abbrev
      git-describe: still prefer annotated tag under --all and --tags
      git-describe: documentation.
      Makefile: use git-describe to mark the git version.
      send-pack/receive-pack: allow errors to be reported back to pusher.
      git-fetch: auto-following tags.
      ls-files --others --directory: fix a bug with index entry ordering
      ls-files --others --directory: give trailing slash
      git-status: use ls-files --others --directory for untracked list.
      ls-files --others --directory: test
      describe: allow more than one revs to be named.

Linus Torvalds (2):
      Add a "git-describe" command
      ls-files -o: optionally skip showing the contents in "untracked" directories

Lukas Sandström (1):
      git-pack-redundant: speed and memory usage improvements

Petr Baudis (1):
      git-daemon --base-path

YOSHIFUJI Hideaki (1):
      GIT: Support [address] in URLs

Yann Dirson (3):
      Add an optional limit to git-cherry
      Add a minimal test for git-cherry
      Add a test for rebase when a change was picked upstream


Version v1.0.13; changes since v1.0.12:
---------------------------------------

Junio C Hamano (1):
      checkout: do not make a temporary copy of symlink target.


Version v1.0.12; changes since v1.0.11:
---------------------------------------

Johannes Schindelin (1):
      git-fetch-pack: really do not ask for funny refs

Junio C Hamano (1):
      Revert "check_packed_git_idx(): check integrity of the idx file itself."


Version v1.0.11; changes since v1.0.10:
---------------------------------------

Junio C Hamano (1):
      diffcore-break/diffcore-rename: integer overflow.


Version v1.0.10; changes since v1.0.9:
--------------------------------------

J. Bruce Fields (1):
      Documentation: clarify fetch parameter descriptions.

Junio C Hamano (5):
      update-index: work with c-quoted name
      name-rev: do not omit leading components of ref name.
      show-branch: handle [] globs as well.
      Documentation: git-commit -a
      Documentation: git-reset - interrupted workflow.


Version v1.0.9; changes since v1.0.8:
-------------------------------------

Johannes Schindelin (1):
      glossary: explain "master" and "origin"


Version v1.0.8; changes since v1.0.7:
-------------------------------------

Joe English (1):
      Substitute "/" with $opt_s in tag names as well as branch names

Junio C Hamano (7):
      unpack-objects: default to quiet if stderr is not a tty.
      Retire debian/ directory.
      prune: do not show error from pack-redundant when no packs are found.
      Compilation: zero-length array declaration.
      tar-tree: finish honoring extractor's umask in git-tar-tree.
      revert/cherry-pick: handle single quote in author name.
      mailsplit: allow empty input from stdin

Yann Dirson (3):
      Teach cvsexportcommit to add new files
      Fix typo in debug stanza of t2001
      Fix git-format-patch usage string wrt output modes.


Version v1.0.7; changes since v1.0.6:
-------------------------------------

Alex Riesen (12):
      trivial: retval of waitpid is not errno
      trivial: O_EXCL makes O_TRUNC redundant
      fix potential deadlock in create_one_file
      use result of open(2) to check for presence
      trivial: typo in git-commit.sh
      trivial: clarify, what are the config's user.name and user.email about
      trivial: remove the dots at the end of file names from merge-one-file
      trivial: use git-repo-config to detect if the test can be run on the repository
      trivial: use git-repo-config to detect how to run tests in the test repository
      trivial: .gitignore precompiled python modules
      trivial: check, if t/trash directory was successfully created
      use GIT_DIR instead of /var/tmp

Amos Waterland (1):
      AIX compile fix for repo-config.c

Andreas Ericsson (1):
      git: grok 'help' to mean '--help'.

Eric Wong (2):
      svnimport: support repositories requiring SSL authentication
      Documentation/git-svnimport: document -T and -t switches correctly

Gerrit Pape (1):
      Fix skipping merge-order test with NO_OPENSSL=1.

Jon Loeliger (1):
      Fix git-symbolic-ref typo in git.txt.

Jonas Fonseca (2):
      git-init-db(1): Describe --shared and the idempotent nature of init-db
      Wrap synopsis lines and use [verse] to keep formatting

Junio C Hamano (6):
      Documentation: spell.
      code comments: spell
      ?alloc: do not return NULL when asked for zero bytes
      git-fetch --tags: reject malformed tags.
      format-patch/commit: Quote single quote in the author name properly.
      t3300: skip when filesystem does not like TAB in filenames.

Linus Torvalds (1):
      Fix nasty approxidate bug


Version v1.0.6; changes since v1.0.5:
-------------------------------------

Junio C Hamano (3):
      Guard a test against wc that pads its output with whitespace
      Fix bogus tests on rev-list output.
      Do not mark tags fetched via --tags flag as mergeable

Sam Ravnborg (1):
      copy_fd: close ifd on error


Version v1.0.5; changes since v1.0.4:
-------------------------------------

Eric Wong (1):
      short circuit out of a few places where we would allocate zero bytes

Johannes Schindelin (1):
      Handle symlinks graciously

Junio C Hamano (2):
      avoid asking ?alloc() for zero bytes.
      t5300: avoid false failures.


Version v1.0.4; changes since v1.0.3:
-------------------------------------

Junio C Hamano (5):
      check_packed_git_idx(): check integrity of the idx file itself.
      show-branch: usability updates.
      merge --no-commit: tweak message
      ls-files --full-name: usage string and documentation.
      mailinfo: iconv does not like "latin-1" -- should spell it "latin1"


Version v1.0.3; changes since v1.0.2:
-------------------------------------

Alex Riesen (1):
      \n usage in stderr output

Johannes Schindelin (2):
      git-format-patch should show the correct version
      sha1_to_hex: properly terminate the SHA1

Junio C Hamano (1):
      send-pack: reword non-fast-forward error message.

Nick Hengeveld (1):
      Fix for http-fetch from file:// URLs

Pavel Roskin (1):
      sanity check in add_packed_git()


Version v1.0.2; changes since v1.0.1:
-------------------------------------

Junio C Hamano (1):
      server-info: skip empty lines.

Pavel Roskin (1):
      quote.c: Make loop control more readable.


Version v1.0.1; changes since v1.0.0b:
--------------------------------------


Version v1.0.0b; changes since v1.0.0a:
---------------------------------------

Junio C Hamano (1):
      server-info: skip empty lines.

Pavel Roskin (1):
      quote.c: Make loop control more readable.


Version v1.0.0a; changes since v1.0.0:
--------------------------------------

Johannes Schindelin (1):
      Avoid misleading success message on error

Junio C Hamano (3):
      objects/info/packs: work around bug in http-fetch.c::fetch_indices()
      http-fetch.c: fix objects/info/pack parsing.
      GIT 1.0.0a

Pavel Roskin (1):
      An off-by-one bug found by valgrind


Version v1.0.0; changes since v1.0rc6:
--------------------------------------

Eric Wong (1):
      Documentation/git-archimport: document -o, -a, f, -D options

Fredrik Kuivinen (3):
      git-diff: Usage string clean-up
      git-log: Add usage string
      git-whatchanged: Add usage string

Jan Harkes (1):
      Fix git-am --skip

Johannes Schindelin (1):
      We do not like "HEAD" as a new branch name

Junio C Hamano (32):
      clone-pack: make it usable for partial branch cloning.
      Documentation: tutorial
      get_sha1_basic(): corner case ambiguity fix
      applymbox: typofix
      Sort globbed refname in show-branch.
      refs.c: off-by-one fix.
      Examples of resetting.
      Forbid pattern maching characters in refnames.
      Comment fixes.
      Documentation: HTTP needs update-server-info.
      Remove misguided branch disambiguation.
      Revert "refs.c: off-by-one fix."
      Revert "We do not like "HEAD" as a new branch name"
      Revert "get_sha1_basic(): corner case ambiguity fix"
      fetch-pack: -k option to keep downloaded pack.
      clone-pack: remove unused and undocumented --keep flag
      Documentation: typos and small fixes in "everyday".
      howto/using-topic-branches: Recommend public URL git://git.kernel.org/
      rev-list --objects: fix object list without commit.
      Documentation: stdout of update-hook is connected to /dev/null
      Remove generated files */*.py[co]
      Remove unused cmd-rename.sh
      Remove "octopus".
      tests: make scripts executable
      xread/xwrite: do not worry about EINTR at calling sites.
      diff: --abbrev option
      diff --abbrev: document --abbrev=<n> form.
      format-patch: make sure header and body are separated.
      Racy GIT
      Racy GIT (part #2)
      ce_smudge_racily_clean_entry: explain why it works.
      A shared repository should be writable by members.

Linus Torvalds (3):
      Make "git help" react to window size correctly
      Make "git help" sort git commands in columns
      Make "git-send-pack" less verbose by default

Martin Langhoff (1):
      svnimport: exit cleanly when we are up to date

Nicolas Pitre (1):
      small cleanup for diff-delta.c


Version v1.0rc6; changes since v1.0rc5:
---------------------------------------

Amos Waterland (1):
      git rebase loses author name/email if given bad email address

Fredrik Kuivinen (12):
      Usage message clean-up, take #2
      Trivial usage string clean-up
      git-verify-tag: Usage string clean-up, emit usage string at incorrect invocation
      git-revert: Usage string clean-up
      git-am: Usage string clean-up
      git-applypatch: Usage string clean-up, emit usage string at incorrect invocation
      git-cherry: Usage string clean-up, use the 'usage' function
      git-fetch: Usage string clean-up, emit usage string at unrecognized option
      git-lost-found: Usage string clean-up, emit usage string at incorrect invocation
      git-prune: Usage string clean-up, use the 'usage' function
      git-rebase: Usage string clean-up, emit usage string at incorrect invocation
      git-repack: Usage string clean-up, emit usage at incorrect invocation

H. Peter Anvin (1):
      git-am support for naked email messages (take 2)

Junio C Hamano (22):
      diffcore-break.c: check diff_delta() return value.
      Add deltifier test.
      diff-delta.c: allow delta with empty blob.
      Everyday: some examples.
      Revert "diff-delta.c: allow delta with empty blob."
      Revert "Add deltifier test."
      diffcore-break: do not break too small filepair.
      Everyday: a bit more example.
      Documentation: more examples.
      Documentation: fix missing links to git(7)
      Documentation: diff examples.
      Documentation: not learning core git commands.
      git-clone: tell the user a bit more about clone-pack failure.
      allow merging any committish
      checkout-index: fix checking out specific path.
      Everyday: a bit more examples.
      t3200: branch --help does not die anymore.
      applypatch: no need to do non-portable [[ ... ]]
      Documentation: topic branches
      rebase: do not get confused in fast-forward situation.
      Do not let errors pass by unnoticed when running `make check'.
      mailinfo and git-am: allow "John Doe <johndoe>"

Lukas Sandström (1):
      Bugfixes for git-rebase

Martin Atukunda (1):
      define MAXPATHLEN for hosts that don't support it

Petr Baudis (1):
      Make git-send-pack exit with error when some refs couldn't be pushed out


Version v1.0rc5; changes since v1.0rc4:
---------------------------------------

Alex Riesen (1):
      use "git init-db" in tests

Daniel Barkalow (3):
      Warn when send-pack does nothing
      Clean up file descriptors when calling hooks.
      Allow saving an object from a pipe

Eric Wong (9):
      archimport: first, make sure it still compiles
      archimport: remove String::ShellQuote dependency.
      archimport: fix -t tmpdir switch
      archimport: remove git wrapper dependency
      archimport: add -D <depth> and -a switch
      archimport: safer log file parsing
      archimport: Add the accurate changeset applyer
      archimport: Fix a bug I introduced in the new log parser
      archimport: fix a in new changeset applyer addition

Jason Riedy (3):
      Document config.mak in INSTALL.
      Initial AIX portability fixes.
      Use printf rather than echo -n.

Jon Loeliger (1):
      Added documentation for few missing options.

Junio C Hamano (51):
      compat/setenv: do not free what we fed putenv(3).
      git.c: two fixes, gitsetenv type and off-by-one error.
      show-branch: allow glob pattern to name branches to show.
      Documentation: rebase does not use cherry-pick anymore.
      struct tree: remove unused field "parent"
      git.c: remove excess output for debugging when command is too long.
      sha1_file.c: make sure packs in an alternate odb is named properly.
      server-info.c: drop unused D lines.
      server-info: stop sorting packs by latest date.
      server-info: throw away T computation as well.
      Documentation: talk about pathspec in bisect.
      Documentation: git-mv manpage workaround.
      Documentation: git-diff asciidoc table workaround.
      Documentation: push/receive hook references.
      Documentation: shared repository management in tutorial.
      server-info.c: use pack_local like everybody else.
      server-info.c: and two functions are not used anymore.
      config.c: remove unnecessary header in minimum configuration file.
      Clean up compatibility definitions.
      Fix 5501 test
      git-mv to work with Perl 5.6
      hash-object: -- and --help
      init-db: check extra arguments and complain.
      write-tree: check extra arguments and die but be a bit more helpful.
      Documentation: hash-object.
      Documentaiton (read-tree): update description of 3-way
      git-merge-one-file: resurrect leading path creation.
      qsort() ptrdiff_t may be larger than int
      checkout-index: allow checking out from higher stages.
      git-merge-one: new merge world order.
      update-index: allow --index-info to add higher stages.
      Documentation: git.html/git.7
      Documentation(glossary): minor formatting clean-ups.
      Documentation(cvs-migration): minor cleanups.
      Documentation(tutorial): adjust merge example to the new merge world order.
      refs.c: make sure leading directories exist before writing a ref.
      Make sure we use compat/subprocess.py with Python 2.3 while running tests.
      Documentation: recursive is the default strategy these days.
      show-branch: comment typo
      Documentation: git-prune
      qsort(): ptrdiff_t may be larger than int
      git-prune: never lose objects reachable from our refs.
      Use GIT_EXEC_PATH explicitly for initial git-init-db in tests.
      Everyday GIT with 20 commands
      Link Everyday GIT to main documentation tree.
      t3300: funny name test
      t0000: catch trivial pilot errors.
      format-patch: use same number of digits in numbers
      merge-recursive: leave unmerged entries in the index.
      merge-recursive: cleanup setIndexStages
      t/t6022: a new test for renaming merge.

Nikolai Weibull (16):
      Document the --non-empty command-line option to git-pack-objects.
      Fix the description of --utf8 and --keep to git-am.
      Use uniform description for the '--' option.
      Documentation/git-commit.txt: Add long options and -- to documentation.
      Documentation/git-verify-pack.txt: added documentation for --.
      Documentation/git-cvsimport.txt: Fix a slight glitch in description heading.
      Documentation/git-cherry-pick: Add --replay and --no-commit.
      Add documentation for git-revert and git-cherry-pick.
      Add documentation for the --topo-order option to git-show-branch.
      Documentation/git-format-patch.txt: Add --signoff, --check, and long option-names.
      Documentation/git-ls-remote.txt: Add -h and -t.
      Documentation/git-repack.txt: Add -l and -n.
      Documentation/git-http-fetch.txt: Document the commit-id argument.
      Documentation/git-update-server-info.txt: Add -f alias for --force to documentation.
      Documentation/git-tag.txt: Fix the order of sections (DESCRIPTION should come before OPTIONS).
      Documentation/git-read-tree.txt: Add --reset to SYNOPSIS.

Paul Mackerras (3):
      gitk: Factored out some common code into a new start_rev_list procedure
      gitk: Some improvements for the code for updating the display
      gitk: Work around Tcl's non-standard names for encodings

Petr Baudis (2):
      Update the git-ls-tree documentation
      Document the --(no-)edit switch of git-revert and git-cherry-pick

Sven Verdoolaege (1):
      gitk: add Update menu item.


Version v1.0rc4; changes since v1.0rc3:
---------------------------------------

Alecs King (1):
      Documentation/git-log.txt: trivial typo fix.

Alex Riesen (5):
      speedup allocation in pack-redundant.c
      remove unused variable
      arguments cleanup and some formatting
      Add tests for git-mv in subdirectories
      git wrapper: more careful argument stuffing

Alexander Litvinov (1):
      git-mv is not able to handle big directories

Andreas Ericsson (13):
      git-daemon: --inetd implies --syslog
      C implementation of the 'git' program, take two.
      Update git(7) man-page for the C wrapper.
      git --help COMMAND brings up the git-COMMAND man-page.
      daemon.c: fix arg parsing bugs
      Library code for user-relative paths, take three.
      Server-side support for user-relative paths.
      Client side support for user-relative paths.
      Documentation update for user-relative paths.
      git-reset.txt: Small fix + clarifications.
      git-daemon support for user-relative paths.
      Introduce $(ALL_PROGRAMS) for 'all:' and 'install:' to operate on.
      cvsimport: Don't let local settings hinder cvs user-migration.

Eric Wong (3):
      remove shellquote usage for tags
      archimport: don't die on merge-base failure
      Disambiguate the term 'branch' in Arch vs git

Frank Sorenson (1):
      gitk: Specify line hover font

Fredrik Kuivinen (5):
      merge-recursive: Replace 'except:'
      git-merge: Exit with code 2 if no strategy was able to handle the merge.
      test-lib.sh: Add new function, test_expect_code
      New test case: merge with directory/file conflicts
      New test case: Criss-cross merge

H. Peter Anvin (3):
      git-core-foo -> git-foo, except the core package
      rename/copy score parsing updates.
      A few more options for git-cat-file

Jan Andres (1):
      Fix typo in http-push.c

Jason Riedy (1):
      Add compat/setenv.c, use in git.c.

Jeff Hobbs (1):
      gitk: put braces around exprs

Johannes Schindelin (13):
      Add config variable core.symrefsonly
      Fix tests with new git in C
      Give python a chance to find "backported" modules
      Add functions git_config_set() and git_config_set_multivar()
      Add git-config-set, a simple helper for scripts to set config variables
      Add documentation for git-config-set
      Add test case for git-config-set
      git-config-set: add more options
      git-config-set: support selecting values by non-matching regex
      git-config-set: Properly terminate strings with '\0'
      Allow hierarchical section names
      Rename git-config-set to git-repo-config
      Make git-mv work in subdirectories, too

Jon Loeliger (1):
      Fix typos and minor format issues.

Jonas Fonseca (1):
      Fix git(1) link to git-index-pack

Josef Weidendorfer (6):
      Fix git-mv for moving directories with 1 file
      git-mv: shrink usage, no usage on error
      git-mv: keep git index consistent with file system on failed rename
      git-mv: fully detect 'directory moved into itself'
      Small fixes in Documentation/git-mv.txt
      git-mv: follow -k request even on failing renames

Junio C Hamano (108):
      Documentation: do not blindly run 'cat' .git/HEAD, or echo into it.
      diff: make default rename detection limit configurable.
      sha1_file.c::add_packed_git(): fix type mismatch.
      git wrapper: basic fixes.
      git-apply: fail if a patch cannot be applied.
      git-am: --resolved.
      apply: allow-binary-replacement.
      diff: --full-index
      tests: binary diff application.
      Add approxidate test calls.
      Deal with binary diff output from GNU diff 2.8.7
      git-am: --binary; document --resume and --binary.
      git-prune: quote possibly empty $dryrun as parameter to test
      Cygwin *might* be helped with NO_MMAP
      Do not show .exe in git command list.
      git-branch: -f to forcibly reset branch head.
      Rewrite rebase to use git-format-patch piped to git-am.
      readrefs: grab all refs with one call to ls-remote.
      git-count-objects: dc replacement
      git-repack: do not do complex redundancy check.
      Documentation: rebase-from-internal minor updates.
      merge-one-file: remove empty directories
      merge-recursive::removeFile: remove empty directories
      http.c: reorder to avoid compilation failure.
      Do not DWIM in userpath library under strict mode.
      Documentation: add hooks/update example.
      merge-one-file: use rmdir -p
      Fix "do not DWIM" patch to enter_repo"
      Make sure heads/foo and tags/foo do not confuse things.
      Fix hooks/update template.
      format-patch: fix two-argument special case, and make it easier to pick single commits
      rename detection with -M100 means "exact renames only".
      tutorial: setting up a tree for subsystem maintainers
      daemon: further tweaks.
      git-proxy updates.
      Move diff.renamelimit out of default configuration.
      git-var: constness and globalness cleanup.
      pack-redundant: type cleanups.
      git-merge: make recursive the default strategy
      git-revert: make --edit default.
      Teach update-index to read from ls-tree.
      diff-tree: teach single-commit diff-tree to honour grafts
      config.c: avoid shadowing global.
      Prevent "git-commit -a path1 path2..."
      parse-remote and ls-remote clean-up.
      git-sh-setup: die if outside git repository.
      git-var: make it work in subdirectory.
      setup_git_directory: make sure GIT_DIR is a valid repository.
      git-sh-setup: move the repository check to a core program.
      shell.c: complain on insufficient arguments.
      name-rev: fix off-by-one error in --stdin.
      format-patch: output filename reported to stdout verbatim.
      Repository format version check.
      Check repository format version in enter_repo().
      init-db: check template and repository format.
      setup_git_directory(): check repository format version.
      Introduce i18n.commitencoding.
      mailinfo: allow -u to fall back on latin1 to utf8 conversion.
      mailinfo: Use i18n.commitencoding
      mailinfo: Do not use -u=<encoding>; say --encoding=<encoding>
      config.c: constness tightening to avoid compilation warning.
      gitk: Use i18n.commitencoding configuration item.
      git-mv: quote $src in regexp properly.
      rebase: one safety net, one bugfix and one optimization.
      name-rev: fix parent counting.
      Documentation: Describe merge operation a bit better.
      write_name_quoted(): make one of the path a counted string.
      ls-tree: Resurrect funny name quoting lost during rewrite.
      ls-tree: match the test to the new semantics.
      bisect: quote pathnames for eval safety.
      working from subdirectory: preparation
      git-apply: work from subdirectory.
      peek-remote: honor proxy config even from subdirectory.
      fsck-objects: work from subdirectory.
      checkout-index: work from subdirectory.
      hash-object: work within subdirectory.
      ls-tree: work from subdirectory.
      Make networking commands to work from a subdirectory.
      Make the rest of commands work from a subdirectory.
      count-objects: make it operable from a subdirectory.
      ls-remote: define die() now we do not use git-sh-setup
      branch: make it operable from a subdirectory.
      lost-found: make it operable from a subdirectory.
      tag: make it operable from a subdirectory.
      verify-tag: make it operable from a subdirectory.
      define die() for scripts that use it.
      hash-object.c: type-fix to squelch compiler warnings.
      applymbox: typofix to enable -m option.
      applypatch: use "index" lines not "applies-to".
      format-patch: remove applies-to.
      format-patch: do not abuse 3-dash marker line.
      format-patch: run diff in C locale
      git-diff: do not turn off -p/-M with any diff options.
      diff-files: show diffs with stage0 and unmerged stage at the same time.
      merge-recursive: match the unmerged index entry behaviour with merge-resolve
      Tutorial: adjust merge example to recursive strategy.
      Documentation: describe '-f' option to git-fetch.
      Makefile: say the default target upfront.
      ls-tree: resurrect '-d' to mean 'show trees only'
      ls-tree: --name-only
      git-merge-one-file: do not worry about 'rmdir -p' not removing directory.
      merge-recursive: adjust git-ls-tree use for the latest.
      t3100: add ls-tree -t and -d tests.
      merge-one-file: make sure we create the merged file.
      merge-one-file: make sure we do not mismerge symbolic links.
      git-merge documentation: conflicting merge leaves higher stages in index
      documentation: git-bisect (help HTML break man)
      daemon.c and path.enter_repo(): revamp path validation.

Kevin Geiss (4):
      git-cvsexportcommit.perl: Fix usage() output.
      git-cvsexportcommit.perl: use getopts to get binary flags
      git-cvsexportcommit.perl: exit with non-0 status if patch fails.
      git-cvsexportcommit.perl: fix typos in output

Linus Torvalds (14):
      Disallow empty pattern in "git grep"
      git's rev-parse.c function show_datestring presumes gnu date
      Teach "approxidate" about weekday syntax
      Make "git fetch" less verbose by default
      Teach "approxidate" about weekday syntax
      git-repack: Properly abort in corrupt repository
      Allow editing of a revert-message
      ls-tree: major rewrite to do pathspec
      ls-tree: further cleanup to parallel ls-files.
      ls-tree: further tweaks of the rewrite
      bisect: limit the searchspace by pathspecs
      diff-files: -1/-2/-3 to diff against unmerged stage.
      merge-one-file: leave unmerged index entries upon automerge failure.
      git-ls-tree: add "-t" option to always show the tree entries

Luben Tuikov (1):
      max-count in terms of intersection

Lukas Sandström (8):
      Fix llist_sorted_difference_inplace in git-pack-redundant
      Make git-pack-redundant non-horribly slow on large sets of packs
      Fix bug introduced by the latest changes to git-pack-redundant
      Fix a bug in get_all_permutations.
      Remove all old packfiles when doing "git repack -a -d"
      Improve the readability of git-pack-redundant
      Document the "ignore objects" feature of git-pack-redundant
      Make git-pack-redundant take a list of unimportant objs on stdin

Martin Langhoff (1):
      archimport: allow for old style branch and public tag names

Matthias Urlichs (1):
      SVN import: Use one log call

Nick Hengeveld (7):
      Isolate shared HTTP request functionality
      Make http-fetch request types more clear
      Improve pack list response handling
      Improve XML parsing in http-push
      http-push memory/fd cleanup
      Decide whether to build http-push in the Makefile
      http-push cleanup

Nicolas Pitre (1):
      'make clean' forgot about some files

Paul Collins (1):
      proxy-command support for git://

Paul Mackerras (5):
      Add -r flag and some speedups
      gitk: Fix some bugs introduced by speedup changes
      gitk: Disable fastdate stuff for now
      gitk: Fix diff this->selected and selected->this functions
      gitk: Add a preferences dialog with some basic stuff

Paul Serice (2):
      git-daemon not listening when compiled with -DNO_IPV6
      Fixed git:// IPv4 address problem when compiled with -DNO_IPV6.

Pavel Roskin (4):
      symref support for import scripts
      gitk: use git-diff-tree --no-commit-id
      gitk: UTF-8 support
      git-clone --shared should imply --local

Petr Baudis (1):
      Fix bunch of fd leaks in http-fetch

Ralf Baechle (1):
      git-repack: Fix variable name

Ryan Anderson (1):
      Add Python version checks to the Makefile to automatically set WITH_OWN_SUBPROCESS_PY

Sergey Vlasov (2):
      git-fsck-objects: Free tree entries after use
      Rework object refs tracking to reduce memory usage

Stefan-W. Hahn (1):
      gitk: moving all three panes if clicking on an arrow.

Timo Hirvonen (2):
      Fix sparse warnings
      Move couple of ifdefs after "include config.mk"

Tommi Virtanen (1):
      Do not attempt to access literal dirname "GIT_OBJECT_DIRECTORY".

Tony Luck (1):
      Update pull/fetch --tags documentation

YOSHIFUJI Hideaki (2):
      GIT: Fix compilation error in connect.c
      Fix a warning about unused value.

Yann Dirson (1):
      Fix gitk this->selected diffs

anonymous (2):
      documentation: clarify read-tree --reset
      documentation: git-tag


Version v1.0rc3; changes since v1.0rc2:
---------------------------------------

Junio C Hamano (1):
      GIT 0.99.9j aka 1.0rc3


Version v1.0rc2; changes since v1.0rc1:
---------------------------------------

Alex Riesen (1):
      allow git-update-ref create refs with slashes in names

Andreas Ericsson (1):
      git-branch: Mention -d and -D in man-page.

Josef Weidendorfer (2):
      Bugfix: stop if directory already exists
      Remove git-rename. git-mv does the same

Junio C Hamano (5):
      Debian: build-depend on libexpat-dev.
      Rename lost+found to lost-found.
      Separate LDFLAGS and CFLAGS.
      apply: fix binary patch detection.
      Update topo-order test.

Kai Ruemmler (1):
      Fix compilation warnings in pack-redundant.c

Linus Torvalds (1):
      Fix git-rev-list "date order" with --topo-order

Matthias Urlichs (3):
      debian packaging: git-cvs needs cvsps
      Remove trailing slashes
      Depend on asciidoc 7 (at least).

Nick Hengeveld (2):
      Fix for multiple alternates requests in http-fetch
      Fix fd leak in http-fetch

Nikolai Weibull (3):
      Document the -n command-line option to git-unpack-objects
      Document a couple of missing command-line options.
      Documentation nitpicking

Thomas Matysik (2):
      Add expat and expat-devel dependencies (for http-push) to RPM spec.
      Split gitk into seperate RPM package


