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

Chandra Pratap (1):
      write-or-die: make GIT_FLUSH a Boolean environment variable

Elijah Newren (31):
      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
      treewide: remove unnecessary includes from header files
      treewide: remove unnecessary includes in source files
      archive.h: remove unnecessary include
      blame.h: remove unnecessary includes
      fsmonitor--daemon.h: remove unnecessary includes
      http.h: remove unnecessary include
      line-log.h: remove unnecessary include
      pkt-line.h: remove unnecessary include
      submodule-config.h: remove unnecessary include
      trace2/tr2_tls.h: remove unnecessary include
      treewide: add direct includes currently only pulled in transitively
      treewide: remove unnecessary includes in source files
      sparse-checkout: be consistent with end of options markers

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 (31):
      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
      t1006: add tests for %(objectsize:disk)

Jiang Xin (5):
      t5574: test porcelain output of atomic fetch
      fetch: no redundant error message for atomic fetch
      test-pkt-line: add option parser for unpack-sideband
      pkt-line: memorize sideband fragment in reader
      pkt-line: do not chomp newlines for sideband messages

Joanna Wang (2):
      attr: enable attr pathspec magic for git-add and git-stash
      attr: add builtin objectmode values support

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 (13):
      doc: update links to current pages
      doc: switch links to https
      doc: update links for andre-simon.de
      doc: refer to internet archive
      CodingGuidelines: move period inside parentheses
      CodingGuidelines: write punctuation marks
      SubmittingPatches: drop ref to "What's in git.git"
      SubmittingPatches: discourage new trailers
      SubmittingPatches: update extra tags list
      SubmittingPatches: provide tag naming advice
      SubmittingPatches: clarify GitHub visual
      SubmittingPatches: clarify GitHub artifact format
      SubmittingPatches: hyphenate non-ASCII

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 (21):
      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
      archive: "--list" does not take further options
      sparse-checkout: use default patterns for 'set' only !stdin
      The fourth batch
      The fifth 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

Maarten van der Schrieck (1):
      Documentation: fix statement about rebase.instructionFormat

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

Michael Lohmann (2):
      Documentation/git-merge.txt: fix reference to synopsis
      Documentation/git-merge.txt: use backticks for command wrapping

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 (17):
      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
      fast-import: use mem_pool_calloc()
      mem-pool: fix big allocations
      mem-pool: simplify alignment calculation
      t1006: prefer shell loop to awk for packed object sizes

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

Taylor Blau (26):
      pack-objects: free packing_data in more places
      pack-bitmap-write: deep-clear the `bb_commit` slab
      pack-bitmap: plug leak in find_objects()
      midx: factor out `fill_pack_info()`
      midx: implement `BTMP` chunk
      midx: implement `midx_locate_pack()`
      pack-bitmap: pass `bitmapped_pack` struct to pack-reuse functions
      ewah: implement `bitmap_is_empty()`
      pack-bitmap: simplify `reuse_partial_packfile_from_bitmap()` signature
      pack-bitmap: return multiple packs via `reuse_partial_packfile_from_bitmap()`
      pack-objects: parameterize pack-reuse routines over a single pack
      pack-objects: keep track of `pack_start` for each reuse pack
      pack-objects: pass `bitmapped_pack`'s to pack-reuse functions
      pack-objects: prepare `write_reused_pack()` for multi-pack reuse
      pack-objects: prepare `write_reused_pack_verbatim()` for multi-pack reuse
      pack-objects: include number of packs reused in output
      git-compat-util.h: implement checked size_t to uint32_t conversion
      midx: implement `midx_preferred_pack()`
      pack-revindex: factor out `midx_key_to_pack_pos()` helper
      pack-revindex: implement `midx_pair_to_pack_pos()`
      pack-bitmap: prepare to mark objects from multiple packs for reuse
      pack-objects: add tracing for various packfile metrics
      t/test-lib-functions.sh: implement `test_trace2_data` helper
      pack-objects: allow setting `pack.allowPackReuse` to "single"
      pack-bitmap: enable reuse from all bitmapped packs
      t/perf: add performance tests for multi-pack reuse

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


