Git 1.7.4Edit

From the official announcement posted to the Git mailing list:

The latest feature release Git 1.7.4 is available at the usual
places:

 http://www.kernel.org/pub/software/scm/git/

 git-1.7.4.tar.{gz,bz2}			(source tarball)
 git-htmldocs-1.7.4.tar.{gz,bz2}		(preformatted docs)
 git-manpages-1.7.4.tar.{gz,bz2}		(preformatted docs)

The RPM binary packages for a few architectures are found in:

 RPMS/$arch/git-*-1.7.4-1.fc13.$arch.rpm	(RPM)

Git v1.7.4 Release Notes
========================

Updates since v1.7.3
--------------------

* The documentation Makefile now assumes by default asciidoc 8 and
  docbook-xsl >= 1.73. If you have older versions, you can set
  ASCIIDOC7 and ASCIIDOC_ROFF, respectively.

* The option parsers of various commands that create new branches (or
  rename existing ones to a new name) were too loose and users were
  allowed to give a branch a name that begins with a dash by creative
  abuse of their command line options, which only led to burning
  themselves.  The name of a branch cannot begin with a dash now.

* System-wide fallback default attributes can be stored in
  /etc/gitattributes; the core.attributesfile configuration variable can
  be used to customize the path to this file.

* The thread structure generated by "git send-email" has changed
  slightly.  Setting the cover letter of the latest series as a reply
  to the cover letter of the previous series with --in-reply-to used
  to make the new cover letter and all the patches replies to the
  cover letter of the previous series; this has been changed to make
  the patches in the new series replies to the new cover letter.

* The Bash completion script in contrib/ has been adjusted to be usable with
  Bash 4 (options with '=value' didn't complete).  It has been also made
  usable with zsh.

* Different pagers can be chosen depending on which subcommand is
  being run under the pager, using the "pager.<subcommand>" variable.

* The hardcoded tab-width of 8 that is used in whitespace breakage checks is now
  configurable via the attributes mechanism.

* Support of case insensitive filesystems (i.e. "core.ignorecase") has
  been improved.  For example, the gitignore mechanism didn't pay attention
  to case insensitivity.

* The <tree>:<path> syntax for naming a blob in a tree, and the :<path>
  syntax for naming a blob in the index (e.g. "master:Makefile",
  ":hello.c") have been extended.  You can start <path> with "./" to
  implicitly have the (sub)directory you are in prefixed to the
  lookup.  Similarly, ":../Makefile" from a subdirectory would mean
  "the Makefile of the parent directory in the index".

* "git blame" learned the --show-email option to display the e-mail
  addresses instead of the names of authors.

* "git commit" learned the --fixup and --squash options to help later invocation
  of interactive rebase.

* Command line options to "git cvsimport" whose names are in capital
  letters (-A, -M, -R and -S) can now be specified as the default in
  the .git/config file by their longer names (cvsimport.authorsFile,
  cvsimport.mergeRegex, cvsimport.trackRevisions, cvsimport.ignorePaths).

* "git daemon" can be built in the MinGW environment.

* "git daemon" can take more than one --listen option to listen to
  multiple addresses.

* "git describe --exact-match" was optimized not to read commit
  objects unnecessarily.

* "git diff" and "git grep" learned what functions and subroutines
  in Fortran, Pascal and Perl look like.

* "git fetch" learned the "--recurse-submodules" option.

* "git mergetool" tells vim/gvim to show a three-way diff by default
  (use vimdiff2/gvimdiff2 as the tool name for old behavior).

* "git log -G<pattern>" limits the output to commits whose change has
  added or deleted lines that match the given pattern.

* "git read-tree" with no argument as a way to empty the index is
  deprecated; we might want to remove it in the future.  Users can
  use the new --empty option to be more explicit instead.

* "git repack -f" does not spend cycles to recompress objects in the
  non-delta representation anymore (use -F if you really mean it
  e.g. after you changed the core.compression variable setting).

* "git merge --log" used to limit the resulting merge log to 20
  entries; this is now customizable by giving e.g. "--log=47".

* "git merge" may work better when all files were moved out of a
  directory in one branch while a new file is created in place of that
  directory in the other branch.

* "git merge" learned the "--abort" option, synonymous to
  "git reset --merge" when a merge is in progress.

* "git notes" learned the "merge" subcommand to merge notes refs.
  In addition to the default manual conflict resolution, there are
  also several notes merge strategies for automatically resolving
  notes merge conflicts.

* "git rebase --autosquash" can use SHA-1 object names to name the
  commit which is to be fixed up (e.g. "fixup! e83c5163").

* The default "recursive" merge strategy learned the --rename-threshold
  option to influence the rename detection, similar to the -M option
  of "git diff".  From the "git merge" frontend, the "-X<strategy option>"
  interface, e.g. "git merge -Xrename-threshold=50% ...", can be used
  to trigger this.

* The "recursive" strategy also learned to ignore various whitespace
  changes; the most notable is -Xignore-space-at-eol.

* "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read
  the recipient list from a command output.

* "git send-email" learned to read and use "To:" from its input files.

* you can extend "git shell", which is often used on boxes that allow
  git-only login over ssh as login shell, with a custom set of
  commands.

* The current branch name in "git status" output can be colored differently
  from the generic header color by setting the "color.status.branch" variable.

* "git submodule sync" updates metainformation for all submodules,
  not just the ones that have been checked out.

* gitweb can use a custom 'highlight' command with its configuration file.

* other gitweb updates.


Also contains various documentation updates.


Fixes since v1.7.3
------------------

All of the fixes in the v1.7.3.X maintenance series are included in this
release, unless otherwise noted.

* "git log --author=me --author=her" did not find commits written by
  me or by her; instead it looked for commits written by me and by
  her, which is impossible.

* "git push --progress" shows progress indicators now.

* "git rebase -i" showed a confusing error message when given a
  branch name that does not exist.

* "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack
  instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames.

* "git submodule update --recursive --other-flags" passes flags down
  to its subinvocations.


----------------------------------------------------------------

Changes since v1.7.3 are as follows:

Adam Tkac (1):
     Don't pass "--xhtml" to hightlight in gitweb.perl script.

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

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

Alexey Shumkin (1):
     userdiff: match Pascal class methods

Anders Kaseorg (6):
     apply: Recognize epoch timestamps with : in the timezone
     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
     Mark gitk script executable

Andreas Gruenbacher (1):
     Clarify and extend the "git diff" format documentation

Andreas Köhler (1):
     submodule sync: Update "submodule.<name>.url" for empty directories

Andrew Waters (1):
     Fix handling of git-p4 on deleted files

Antonio Ospite (3):
     t/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'
     git-send-email.perl: make initial In-Reply-To apply only to first email
     t/t9001-send-email.sh: fix '&&' chain in some tests

Bert Wesarg (1):
     Documentation: update-index: -z applies also to --index-info

Björn Steinbrink (1):
     Correctly report corrupted objects

Brandon Casey (13):
     userdiff.c: add builtin fortran regex patterns
     t/t3903-stash: improve testing of git-stash show
     builtin/revert.c: don't dereference a NULL pointer
     wt-status.c: don't leak directory entries when processing untracked,ignored
     git-send-email.perl: ensure $domain is defined before using it
     diffcore-pickaxe.c: remove unnecessary curly braces
     diffcore-pickaxe.c: a void function shouldn't try to return something
     test-lib.sh/test_decode_color(): use octal not hex in awk script
     Makefile: add NO_FNMATCH_CASEFOLD to IRIX sections
     t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
     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

Brian Gernhardt (3):
     git-stash: fix flag parsing
     t/gitweb-lib: Don't pass constant to decode_utf8
     t6022: Use -eq not = to test output of wc -l

Christian Couder (1):
     t6050 (replace): fix bogus "fetch branch with replacement" test

Christoph Mallon (1):
     diff --check: correct line numbers of new blank lines at EOF

Christopher Wilson (1):
     Enable highlight executable path as a configuration option

Clemens Buchacher (15):
     add rebase patch id tests
     do not search functions for patch ID
     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
     do not overwrite untracked during merge from unborn branch
     use persistent memory for rejected paths
     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

Cliff Frey (1):
     documentation: git-config minor cleanups

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

Daniel Knittl-Frank (1):
     Improvements to `git checkout -h`

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

David Kågedal (1):
     git-blame.el: Add (require 'format-spec)

Diego Elio Pettenò (1):
     imap-send: link against libcrypto for HMAC and others

Elijah Newren (54):
     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
     t3020 (ls-files-error-unmatch): remove stray '1' from end of file
     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.

Eric Wong (1):
     Documentation/git-svn: discourage "noMetadata"

Erik Faye-Lund (23):
     mingw: do not crash on open(NULL, ...)
     do not depend on signed integer overflow
     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
     mingw: do not set errno to 0 on success
     help: always suggest common-cmds if prefix of cmd
     exec_cmd: remove unused extern

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

Giuseppe Bilotta (16):
     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
     CodingGuidelines: mention whitespace preferences for shell scripts

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 Narebski (14):
     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
     gitweb: Introduce esc_attr to escape attributes of HTML elements
     gitweb: Include links to feeds in HTML header only for '200 OK' response

Jan Krüger (3):
     read-tree: deprecate syntax without tree-ish args
     repack: add -F flag to let user choose between --no-reuse-delta/object
     Documentation: pack.compression: explain how to recompress

Jari Aalto (2):
     git-commit.txt: (synopsis): move -i and -o before "--"
     git-pull.txt: Mention branch.autosetuprebase

Jeff King (27):
     diff: don't use pathname-based diff drivers for symlinks
     prefer test -h over test -L in shell scripts
     rev-list: handle %x00 NUL in user format
     tests: factor out terminal handling from t7006
     tests: test terminal output to both stdout and stderr
     push: pass --progress down to git-pack-objects
     docs: give more hints about how "add -e" works
     config: treat non-existent config files as empty
     diff: report bogus input to -C/-M/-B
     apply: don't segfault on binary files with missing data
     docs: clarify git diff modes of operation
     docs: give more hints about how "add -e" works
     document sigchain api
     log.decorate: accept 0/1 bool values
     allow command-specific pagers in pager.<cmd>
     reflogs: clear flags properly in corner case
     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
     ident: die on bogus date format
     docs: explain diff.*.binary option
     rebase: use explicit "--" with checkout
     rebase: give a better error message for bogus branch
     tests: sanitize more git environment variables

Jens Lehmann (6):
     pull: Remove --tags option from manpage
     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

Jiang Xin (1):
     Fix typo in git-gc document.

Jim Meyering (1):
     mailmap: fix use of freed memory

Joe Perches (2):
     git-send-email.perl: Add --to-cmd
     git-send-email.perl: Deduplicate "to:" and "cc:" entries with names

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 (3):
     Make sure that git_getpass() never returns NULL
     Fix typo in pack-objects' usage
     merge-octopus: Work around environment issue on Windows

Johannes Sixt (6):
     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
     Fix expected values of setup tests on Windows
     t/README: hint about using $(pwd) rather than $PWD in tests

Jon Seymour (2):
     stash: fix git stash branch regression when branch creation fails
     stash: simplify parsing fixes

Jonathan "Duke" Leto (1):
     Correct help blurb in checkout -p and friends

Jonathan Nieder (89):
     merge-recursive: expose merge options for builtin merge
     ll-merge: replace flag argument with options struct
     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
     commit-tree: free commit message before exiting
     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"
     t4203 (mailmap): stop hardcoding commit ids and dates
     send-pack: avoid redundant "pack-objects died with strange error"
     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
     Documentation: document show -s
     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
     apply: handle patches with funny filename and colon in timezone
     cherry-pick/revert: transparently refresh index
     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
     Documentation: split gitignore page into sections
     Documentation: point to related commands from gitignore
     Describe various forms of "be quiet" using OPT__QUIET
     vcs-svn: Error out for v3 dumps
     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
     add: introduce add.ignoreerrors synonym for add.ignore-errors
     Documentation: do not misinterpret pull refspec as bold text
     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
     t0050: fix printf format strings for portability
     t0001: test git init when run via an alias
     diff: funcname and word patterns for perl
     gitweb: skip logo in atom feed when there is none
     gitweb: make logo optional
     daemon: support <directory> arguments again
     t9010: svnadmin can fail even if available
     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
     fast-import: treat filemodify with empty tree as delete
     rebase -i: clarify in-editor documentation of "exec"

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 (59):
     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
     CodingGuidelines: spell Arithmetic Expansion with $(($var))
     Git 1.7.3.1
     MinGW: avoid collisions between "tags" and "TAGS"
     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
     CodingGuidelines: reword parameter expansion section
     shell portability: no "export VAR=VAL"
     t4203: do not let "git shortlog" DWIM based on tty
     merge-recursive:make_room_for_directories - work around dumb compilers
     Git 1.7.3.2
     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
     test: git-apply -p2 rename/chmod only
     t3404: do not use 'describe' to implement test_cmp_rev
     t3402: test "rebase -s<strategy> -X<opt>"
     Update draft release notes to 1.7.4
     Documentation: Fix mark-up of lines with more than one tilde
     Git 1.7.0.8
     Update draft release notes to 1.7.4
     t9300: remove unnecessary use of /dev/stdin
     Git 1.7.3.3
     t9119: do not compare "Text Last Updated" line from "svn info"
     Do not link with -lcrypto under NO_OPENSSL
     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
     Prepare for 1.7.3.4
     Relnotes: remove items fixed on 'maint'
     get_sha1_oneline: fix lifespan rule of temp_commit_buffer variable
     Prepare for 1.7.3.4
     Git 1.6.4.5
     Update draft release notes to 1.7.4
     commit: die before asking to edit the log message
     set_try_to_free_routine(NULL) means "do nothing special"
     am --abort: keep unrelated commits since the last failure and warn
     t0021: avoid getting filter killed with SIGPIPE
     rebase --skip: correctly wrap-up when skipping the last patch
     userdiff/perl: catch BEGIN/END/... and POD as headers
     Prepare for 1.7.3.5
     Git 1.7.4-rc0
     Git 1.7.3.5
     Git 1.7.4-rc1
     Git 1.7.4-rc2
     Documentation updates for 'GIT_WORK_TREE without GIT_DIR' historical usecase
     Git 1.7.4-rc3
     Git 1.7.4

Justin Frankel (2):
     merge-recursive --patience
     merge-recursive: options to ignore whitespace changes

Kevin Ballard (13):
     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
     Update test script annotate-tests.sh to handle missing/extra authors
     test-lib: extend test_decode_color to handle more color codes
     diff: handle lines containing only whitespace and tabs better
     submodule: preserve all arguments exactly when recursing
     submodule: only preserve flags across recursive status/update invocations
     status: Quote paths with spaces in short format
     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

Kevin P. Fleming (1):
     post-receive-email: ensure sent messages are not empty

Kirill Smelkov (8):
     gitk: Show notes by default (like git log does)
     user-manual: be consistent in illustrations to 'git rebase'
     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''
     setup: make sure git_dir path is in a permanent buffer, getenv(3) case
     t/t8006: Demonstrate blame is broken when cachetextconv is on
     fill_textconv(): Don't get/put cache if sha1 is not valid

Linus Torvalds (1):
     Fix missing 'does' in man-page for 'git checkout'

Mark Lodato (3):
     completion: make compatible with zsh
     completion: fix zsh check under bash with 'set -u'
     fsck docs: remove outdated and useless diagnostic

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 (7):
     rebase -X: do not clobber strategy
     Documentation/git-pull: clarify configuration
     rebase: support --verify
     rebase --abort: do not update branch ref
     rebase: only show stat if configured to true
     Use reflog in 'pull --rebase . foo'
     completion: add missing configuration variables

Mathias Lafeldt (1):
     git-svn: fix processing of decorated commit hashes

Matthieu Moy (12):
     update comment and documentation for :/foo syntax
     diff: trivial fix for --output file error message
     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
     commit: suggest --amend --reset-author to fix commiter identity

Michael J Gruber (26):
     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
     remote-helpers: build in platform independent directory
     contrib/completion: --no-index option to git diff
     user-manual: fix anchor name Finding-comments-With-given-Content
     rev-list-options: clarify --parents and --children
     t5503: fix typo
     git-show-ref.txt: clarify the pattern matching
     test: allow running the tests under "prove"
     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
     cvsimport: partial whitespace cleanup
     git-rm.txt: Fix quoting
     t800?-blame.sh: retitle uniquely
     git-difftool.txt: correct the description of $BASE and describe $MERGED
     difftool: provide basename to external tools
     t1020-subdirectory: test alias expansion in a subdirectory
     cvsimport: handle the parsing of uppercase config options
     RelNotes/1.7.4: minor fixes

Mike Pape (3):
     mingw: add network-wrappers for daemon
     mingw: implement syslog
     compat: add inet_pton and inet_ntop prototypes

Nathan W. Panike (1):
     Fix a formatting error in git-merge.txt

Nguyễn Thái Ngọc Duy (68):
     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
     dir.c: fix EXC_FLAG_MUSTBEDIR match in sparse checkout
     add: do not rely on dtype being NULL behavior
     clean: avoid quoting twice
     clean: remove redundant variable baselen
     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()
     entry.c: remove "checkout-index" from error messages
     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

Nicolas Pitre (2):
     diff: don't presume empty file when corresponding object is missing
     make pack-objects a bit more resilient to repo corruption

Pascal Obry (3):
     Minor indentation fix.
     Remove @smtp_host_parts variable as not used.
     New send-email option smtpserveroption.

Pat Notz (8):
     strbuf.h: fix comment typo
     dir.c: squelch false uninitialized memory warning
     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

Pete Wyckoff (1):
     convert filter: supply path to external driver

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()

Ralf Wildenhues (1):
     Fix typos in the documentation

Ramkumar Ramachandra (11):
     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
     SubmittingPatches: Document some extra tags used in commit messages
     Porcelain scripts: Rewrite cryptic "needs update" error message
     t9010 (svn-fe): Eliminate dependency on svn perl bindings

Ramsay Allan Jones (20):
     t1503: Fix arithmetic expansion syntax error when using dash
     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
     t3419-*.sh: Fix arithmetic expansion syntax error
     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
     svndump.c: Fix a printf format compiler warning

René Scharfe (10):
     diff: avoid repeated scanning while looking for funcname
     work around buggy S_ISxxx(m) implementations
     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
     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

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

StephenB (1):
     git svn: fix the final example in man page

Steven Walter (2):
     git-svn: check_cherry_pick should exclude commits already in our history
     git-svn: allow the mergeinfo property to be set

Sven Eckelmann (1):
     contrib/ciabot: git-describe commit instead of HEAD

Sylvain Rabot (2):
     gitweb: add extensions to highlight feature map
     gitweb: remove unnecessary test when closing file descriptor

Tay Ray Chuan (14):
     smart-http: Don't change POST to GET when following redirect
     t5523-push-upstream: add function to ensure fresh upstream repo
     t5523-push-upstream: test progress messages
     format-patch: page output with --stdout
     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
     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 (12):
     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/
     {cvs,svn}import: use the new 'git read-tree --empty'
     t0003: properly quote $HOME
     gitk: Add the equivalent of diff --color-words
     userdiff: fix typo in ruby and python word regexes
     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

Tomas Carnecky (1):
     stash drops the stash even if creating the branch fails because it already exists

Tony Luck (1):
     Better advice on using topic branches for kernel development

Torsten Bögershausen (1):
     t9143: do not fail when unhandled.log.gz is not created

Uwe Kleine-König (2):
     get_author_ident_from_commit(): remove useless quoting
     Documentation/git-clone: describe --mirror more verbosely

Vasyl' Vavrychuk (1):
     trace.c: mark file-local function static

Wesley J. Landaker (1):
     Documentation: Refer to git-commit-tree in git-filter-branch help

Yann Dirson (5):
     t/t3415: use && where applicable.
     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.
     diff: use "find" instead of "detect" as prefix for long forms of -M and -C

knittl (1):
     bash: Match lightweight tags in prompt

Ævar Arnfjörð Bjarmason (25):
     send-email: use catfile() to concatenate files
     Makefile: add CC to TRACK_CFLAGS
     perl: bump the required Perl version to 5.8 from 5.6.[21]
     perl: use "use warnings" instead of -w
     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 (8):
     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
     CodingGuidelines: Add a section on writing documentation
     diff,difftool: Don't use the {0,2} notation in usage strings

See also