Documentation / RelNotes / 1.7.9.txton commit Merge branch 'nd/war-on-nul-in-commit' (f35ccd9)
   1Git v1.7.9 Release Notes (draft)
   2========================
   3
   4Updates since v1.7.8
   5--------------------
   6
   7 * gitk updates accumulated since early 2011.
   8
   9 * git-gui updated to 0.16.0.
  10
  11 * git-p4 (in contrib/) updates.
  12
  13 * i18n effort is going forward and Git uses localized messages if
  14   available.
  15
  16 * Porcelain commands like "git reset" did not distinguish deletions
  17   and type-changes from ordinary modification, and reported them with
  18   the same 'M' moniker. They now use 'D' (for deletion) and 'T' (for
  19   type-change) to match "git status -s" and "git diff --name-status".
  20
  21 * The code to handle username/password for HTTP transaction used in
  22   "git push" & "git fetch" learned to talk "credential API" to
  23   external programs to cache or store them, to allow integration with
  24   platform native keychain mechanisms.
  25
  26 * "git commit" and "git reset" re-learned the optimization to prime
  27   the cache-tree information in the index, which makes it faster to
  28   write a tree object out after the index entries are updated.
  29
  30 * "git add" learned to stream large files directly into a packfile
  31   instead of writing them into individual loose object files.
  32
  33 * "git branch -m <current branch> HEAD" is an obvious no-op and is
  34   now allowed.
  35
  36 * "git checkout -B <current branch> <elsewhere>" is a more intuitive
  37   way to spell "git reset --keep <elsewhere>".
  38
  39 * "git checkout" and "git merge" learned "--no-overwrite-ignore" option
  40   to tell Git that untracked and ignored files are not expendable.
  41
  42 * "git commit --amend" learned "--no-edit" option to say that the
  43   user is amending the tree being recorded, without updating the
  44   commit log message.
  45
  46 * fsck and prune are relatively lengthy operations that still go
  47   silent while making the end-user wait. They learned to give progress
  48   output like other slow operations.
  49
  50 * The set of built-in function-header patterns for various languages
  51   knows MATLAB.
  52
  53 * "git pull" can be used to fetch and merge an annotated/signed tag,
  54   instead of the tip of a topic branch. The GPG signature from the
  55   signed tag is recorded in the resulting merge commit for later
  56   auditing.
  57
  58 * "git branch --edit-description" can be used to add descriptive text
  59   to explain what a topic branch is about.
  60
  61 * "git fmt-merge-msg" learned to take the branch description into
  62   account when preparing a merge summary that "git merge" records
  63   when merging a local branch.
  64
  65 * "git request-pull" has been updated to convey more information
  66   useful for integrators to decide if a topic is worth merging and
  67   what is pulled is indeed what the requestor asked to pull,
  68   including:
  69
  70   - the tip of the branch being requested to be merged;
  71   - the branch description describing what the topic is about;
  72   - the contents of the annotated tag, when requesting to pull a tag.
  73
  74 * "git pull" learned to notice 'pull.rebase' configuration variable,
  75   which serves as a global fallback for setting 'branch.<name>.rebase'
  76   configuration variable per branch.
  77
  78 * "git tag" learned "--cleanup" option to control how the whitespaces
  79   and empty lines in tag message are cleaned up.
  80
  81 * "gitweb" learned to show side-by-side diff.
  82
  83Also contains minor documentation updates and code clean-ups.
  84
  85
  86Fixes since v1.7.8
  87------------------
  88
  89 * The function header pattern for files with "diff=cpp" attribute did
  90   not consider "type *funcname(type param1,..." as the beginning of a
  91   function.
  92   (merge 37e7793 tr/userdiff-c-returns-pointer later to maint).
  93
  94 * The replacement implemention for snprintf used on platforms with
  95   native snprintf that is broken did not use va_copy correctly.
  96   (merge a9bfbc5 jk/maint-snprintf-va-copy later to maint).
  97
  98 * LF-to-CRLF streaming filter used when checking out a large-ish blob
  99   fell into an infinite loop with a rare input.
 100   (merge 284e3d2 cn/maint-lf-to-crlf-filter later to maint).
 101
 102 * git native connection going over TCP (not over SSH) did not set
 103   SO_KEEPALIVE option which failed to receive link layer errors.
 104   (merge e47a858 ew/keepalive later to maint).
 105
 106 * "git archive" mistakenly allowed remote clients to ask for commits
 107   that are not at the tip of any ref.
 108   (merge 7b51c33 jk/maint-upload-archive later to maint).
 109
 110 * "git apply --check" did not error out when given an empty input
 111   without any patch.
 112   (merge cc64b31 bc/maint-apply-check-no-patch later to maint).
 113
 114 * "git checkout -m" did not recreate the conflicted state in a "both
 115   sides added, without any common ancestor version" conflict
 116   situation.
 117   (merge 335c6e4 jc/checkout-m-twoway later to maint).
 118
 119 * "git cherry-pick $commit" (not a range) created an unnecessary
 120   sequencer state and interfered with valid workflow to use the
 121   command during a session to cherry-pick multiple commits.
 122   (merge d596118 jn/maint-sequencer-fixes later to maint).
 123
 124 * The error message from "git diff" and "git status" when they fail
 125   to inspect changes in submodules did not report which submodule they
 126   had trouble with.
 127   (merge 6a5ceda jl/submodule-status-failure-report later to maint).
 128
 129 * "fast-import" did not correctly update an existing notes tree,
 130   possibly corrupting the fan-out.
 131
 132 * "git fetch-pack" accepted unqualified refs that do not begin with
 133   refs/ by mistake and compensated it by matching the refspec with
 134   tail-match, which was doubly wrong. This broke fetching from a
 135   repository with a funny named ref "refs/foo/refs/heads/master" and a
 136   'master' branch with "git fetch-pack refs/heads/master", as the
 137   command incorrectly considered the former a "match".
 138   (merge bab8d28 jk/fetch-no-tail-match-refs later to maint).
 139
 140 * "git mv" gave suboptimal error/warning messages when it overwrites
 141   target files. It also did not pay attention to "-v" option.
 142   (merge 534376c jk/maint-mv later to maint).
 143
 144 * When a "reword" action in "git rebase -i" failed to run "commit --amend",
 145   we did not give the control back to the user to resolve the situation, and
 146   instead kept the original commit log message.
 147   (merge 0becb3e aw/rebase-i-stop-on-failure-to-amend later to maint).
 148
 149 * Authenticated "git push" over dumb HTTP were broken with a recent
 150   change and failed without asking for password when username is
 151   given.
 152   (merge a4ddbc3 jk/maint-push-over-dav later to maint).
 153
 154--
 155exec >/var/tmp/1
 156O=v1.7.8-351-g2dccad3
 157echo O=$(git describe master)
 158git log --first-parent --oneline --reverse ^$O master
 159echo
 160git shortlog --no-merges ^$O ^maint master