2011-12-06 00:49:34 +01:00
|
|
|
Git v1.7.9 Release Notes (draft)
|
|
|
|
========================
|
|
|
|
|
|
|
|
Updates since v1.7.8
|
|
|
|
--------------------
|
|
|
|
|
2011-12-17 07:45:03 +01:00
|
|
|
* gitk updates accumulated since early 2011.
|
|
|
|
|
2011-12-14 08:09:27 +01:00
|
|
|
* git-gui updated to 0.16.0.
|
|
|
|
|
|
|
|
* git-p4 (in contrib/) updates.
|
|
|
|
|
2011-12-22 20:43:02 +01:00
|
|
|
* 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
|
|
|
|
in po/ to add new translations.
|
2011-12-20 01:39:54 +01:00
|
|
|
|
2011-12-06 00:49:34 +01:00
|
|
|
* 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".
|
|
|
|
|
2011-12-20 01:39:54 +01:00
|
|
|
* The code to handle username/password for HTTP transaction 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.
|
|
|
|
|
2011-12-22 20:43:02 +01:00
|
|
|
* 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.
|
2011-12-20 01:39:54 +01:00
|
|
|
|
2011-12-17 07:45:03 +01:00
|
|
|
* "git add" learned to stream large files directly into a packfile
|
|
|
|
instead of writing them into individual loose object files.
|
|
|
|
|
2011-12-14 08:09:27 +01:00
|
|
|
* "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 checkout" and "git merge" learned "--no-overwrite-ignore" option
|
|
|
|
to tell Git that untracked and ignored files are not expendable.
|
|
|
|
|
2011-12-17 07:45:03 +01:00
|
|
|
* "git commit --amend" learned "--no-edit" option to say that the
|
|
|
|
user is amending the tree being recorded, without updating the
|
|
|
|
commit log message.
|
|
|
|
|
2011-12-22 20:43:02 +01:00
|
|
|
* "git commit" and "git reset" re-learned the optimization to prime
|
|
|
|
the cache-tree information in the index, which makes it faster to
|
|
|
|
write a tree object out after the index entries are updated.
|
|
|
|
|
|
|
|
* "git commit" detects and rejects an attempt to stuff NUL byte in
|
|
|
|
the commit log message.
|
|
|
|
|
2011-12-06 00:49:34 +01:00
|
|
|
* 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.
|
|
|
|
|
2011-12-22 20:43:02 +01:00
|
|
|
* "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
|
|
|
|
(i.e. with "-g").
|
|
|
|
|
2011-12-09 22:52:36 +01:00
|
|
|
* "git pull" can be used to fetch and merge an annotated/signed tag,
|
|
|
|
instead of the tip of a topic branch. The GPG signature from the
|
|
|
|
signed tag is recorded in the resulting merge commit for later
|
|
|
|
auditing.
|
|
|
|
|
|
|
|
* "git branch --edit-description" can be used to add descriptive text
|
|
|
|
to explain what a topic branch is about.
|
|
|
|
|
|
|
|
* "git fmt-merge-msg" learned to take the branch description into
|
|
|
|
account when preparing a merge summary that "git merge" records
|
|
|
|
when merging a local branch.
|
|
|
|
|
|
|
|
* "git request-pull" has been updated to convey more information
|
|
|
|
useful for integrators to decide if a topic is worth merging and
|
|
|
|
what is pulled is indeed what the requestor asked to pull,
|
|
|
|
including:
|
|
|
|
|
|
|
|
- the tip of the branch being requested to be merged;
|
|
|
|
- the branch description describing what the topic is about;
|
|
|
|
- the contents of the annotated tag, when requesting to pull a tag.
|
|
|
|
|
|
|
|
* "git pull" learned to notice 'pull.rebase' configuration variable,
|
|
|
|
which serves as a global fallback for setting 'branch.<name>.rebase'
|
|
|
|
configuration variable per branch.
|
|
|
|
|
2011-12-14 08:09:27 +01:00
|
|
|
* "git tag" learned "--cleanup" option to control how the whitespaces
|
|
|
|
and empty lines in tag message are cleaned up.
|
|
|
|
|
|
|
|
* "gitweb" learned to show side-by-side diff.
|
2011-12-09 22:52:36 +01:00
|
|
|
|
|
|
|
Also contains minor documentation updates and code clean-ups.
|
2011-12-06 00:49:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
Fixes since v1.7.8
|
|
|
|
------------------
|
|
|
|
|
2011-12-20 01:39:54 +01:00
|
|
|
* 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).
|
|
|
|
|
2011-12-22 20:43:02 +01:00
|
|
|
* 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).
|
2011-12-09 22:52:36 +01:00
|
|
|
|
2011-12-20 01:39:54 +01:00
|
|
|
* "git checkout -m" did not recreate the conflicted state in a "both
|
|
|
|
sides added, without any common ancestor version" conflict
|
|
|
|
situation.
|
2011-12-22 20:43:02 +01:00
|
|
|
(merge 5cd7fadc jc/checkout-m-twoway later to maint).
|
2011-12-20 01:39:54 +01:00
|
|
|
|
|
|
|
* "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).
|
|
|
|
|
2011-12-22 20:43:02 +01:00
|
|
|
* You could make "git commit" segfault by giving the "--no-message"
|
|
|
|
option.
|
|
|
|
(merge 03f94ae jk/maint-strbuf-missing-init later to maint).
|
2011-12-09 22:52:36 +01:00
|
|
|
|
2011-12-17 07:45:03 +01:00
|
|
|
* "fast-import" did not correctly update an existing notes tree,
|
|
|
|
possibly corrupting the fan-out.
|
|
|
|
|
2011-12-20 01:39:54 +01:00
|
|
|
* "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).
|
|
|
|
|
2011-12-17 07:45:03 +01:00
|
|
|
* 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).
|
|
|
|
|
2011-12-20 01:39:54 +01:00
|
|
|
* 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).
|
|
|
|
|
2011-12-22 20:43:02 +01:00
|
|
|
* "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).
|
|
|
|
|
2011-12-09 22:52:36 +01:00
|
|
|
--
|
|
|
|
exec >/var/tmp/1
|
2011-12-22 20:43:02 +01:00
|
|
|
O=v1.7.8.1-361-g1aea303
|
2011-12-09 22:52:36 +01:00
|
|
|
echo O=$(git describe master)
|
|
|
|
git log --first-parent --oneline --reverse ^$O master
|
|
|
|
echo
|
|
|
|
git shortlog --no-merges ^$O ^maint master
|