-Git v1.7.9 Release Notes (draft)
+Git v1.7.9 Release Notes
========================
Updates since v1.7.8
* Git uses gettext to translate its most common interface messages
into the user's language if translations are available and the
- locale is appropriately set. Distributors can drop in new PO files
+ locale is appropriately set. Distributors can drop new PO files
in po/ to add new translations.
- * Porcelain commands like "git reset" did not distinguish deletions
- and type-changes from ordinary modification, and reported them with
- the same 'M' moniker. They now use 'D' (for deletion) and 'T' (for
- type-change) to match "git status -s" and "git diff --name-status".
-
- * The code to handle username/password for HTTP transaction used in
+ * The code to handle username/password for HTTP transactions used in
"git push" & "git fetch" learned to talk "credential API" to
external programs to cache or store them, to allow integration with
platform native keychain mechanisms.
- * The prompted input in the terminal use our own getpass() replacement
- when possible. HTTP transactions used to ask username without echoing
- back what was typed, but with this change you will see it as you type.
+ * The input prompts in the terminal use our own getpass() replacement
+ when possible. HTTP transactions used to ask for the username without
+ echoing back what was typed, but with this change you will see it as
+ you type.
+
+ * The internals of "revert/cherry-pick" have been tweaked to prepare
+ building more generic "sequencer" on top of the implementation that
+ drives them.
+
+ * "git rev-parse FETCH_HEAD" after "git fetch" without specifying
+ what to fetch from the command line will now show the commit that
+ would be merged if the command were "git pull".
* "git add" learned to stream large files directly into a packfile
instead of writing them into individual loose object files.
- * "git branch -m <current branch> HEAD" is an obvious no-op and is
- now allowed.
-
* "git checkout -B <current branch> <elsewhere>" is a more intuitive
way to spell "git reset --keep <elsewhere>".
* "git commit" detects and rejects an attempt to stuff NUL byte in
the commit log message.
+ * "git commit" learned "-S" to GPG-sign the commit; this can be shown
+ with the "--show-signature" option to "git log".
+
* fsck and prune are relatively lengthy operations that still go
silent while making the end-user wait. They learned to give progress
output like other slow operations.
* The set of built-in function-header patterns for various languages
knows MATLAB.
- * "git log --follow" honors the rename threshold score given with the
- -M option (e.g. "-M50%").
-
* "git log --format='<format>'" learned new %g[nNeE] specifiers to
- show information from the reflog entries when warlking the reflog
+ show information from the reflog entries when walking the reflog
(i.e. with "-g").
* "git pull" can be used to fetch and merge an annotated/signed tag,
signed tag is recorded in the resulting merge commit for later
auditing.
+ * "git log" learned "--show-signature" option to show the signed tag
+ that was merged that is embedded in the merge commit. It also can
+ show the signature made on the commit with "git commit -S".
+
* "git branch --edit-description" can be used to add descriptive text
to explain what a topic branch is about.
Fixes since v1.7.8
------------------
- * The replacement implemention for snprintf used on platforms with
- native snprintf that is broken did not use va_copy correctly.
- (merge a9bfbc5 jk/maint-snprintf-va-copy later to maint).
-
- * git native connection going over TCP (not over SSH) did not set
- SO_KEEPALIVE option which failed to receive link layer errors.
- (merge e47a858 ew/keepalive later to maint).
-
- * LF-to-CRLF streaming filter replaced all LF with CRLF, which might
- be techinically correct but not friendly to people who are trying
- to recover from earlier mistakes of using CRLF in the repository
- data in the first place. It now refrains from doing so for LF that
- follows a CR.
- (merge 8496f56 jc/maint-lf-to-crlf-keep-crlf later to maint).
-
- * "git checkout -m" did not recreate the conflicted state in a "both
- sides added, without any common ancestor version" conflict
- situation.
- (merge 5cd7fadc jc/checkout-m-twoway later to maint).
-
- * "git cherry-pick $commit" (not a range) created an unnecessary
- sequencer state and interfered with valid workflow to use the
- command during a session to cherry-pick multiple commits.
- (merge d596118 jn/maint-sequencer-fixes later to maint).
-
- * You could make "git commit" segfault by giving the "--no-message"
- option.
- (merge 03f94ae jk/maint-strbuf-missing-init later to maint).
-
- * "fast-import" did not correctly update an existing notes tree,
- possibly corrupting the fan-out.
-
- * "git fetch-pack" accepted unqualified refs that do not begin with
- refs/ by mistake and compensated it by matching the refspec with
- tail-match, which was doubly wrong. This broke fetching from a
- repository with a funny named ref "refs/foo/refs/heads/master" and a
- 'master' branch with "git fetch-pack refs/heads/master", as the
- command incorrectly considered the former a "match".
- (merge bab8d28 jk/fetch-no-tail-match-refs later to maint).
-
- * "git mv" gave suboptimal error/warning messages when it overwrites
- target files. It also did not pay attention to "-v" option.
- (merge 534376c jk/maint-mv later to maint).
-
- * When a "reword" action in "git rebase -i" failed to run "commit --amend",
- we did not give the control back to the user to resolve the situation, and
- instead kept the original commit log message.
- (merge 0becb3e aw/rebase-i-stop-on-failure-to-amend later to maint).
-
- * Authenticated "git push" over dumb HTTP were broken with a recent
- change and failed without asking for password when username is
- given.
- (merge a4ddbc3 jk/maint-push-over-dav later to maint).
-
- * "git push" to an empty repository over HTTP were broken with a
- recent change to the ref handling.
- (merge 02f7914 jk/http-push-to-empty later to maint).
-
- * "git push -v" forgot how to be verbose by mistake. It now properly is.
- (merge bd2c86e jk/maint-push-v-is-verbose later to maint).
-
---
-exec >/var/tmp/1
-O=v1.7.8.1-361-g1aea303
-echo O=$(git describe master)
-git log --first-parent --oneline --reverse ^$O master
-echo
-git shortlog --no-merges ^$O ^maint master
+Unless otherwise noted, all the fixes since v1.7.8 in the maintenance
+releases are contained in this release (see release notes to them for
+details).