revert: prepare to move replay_action to header
[git/jnareb-git.git] / Documentation / RelNotes / 1.7.9.txt
blob3ddd75be638cdef02c99d8f2a3e8da4b9bac958d
1 Git v1.7.9 Release Notes (draft)
2 ========================
4 Updates since v1.7.8
5 --------------------
7  * gitk updates accumulated since early 2011.
9  * git-gui updated to 0.16.0.
11  * git-p4 (in contrib/) updates.
13  * Git uses gettext to translate its most common interface messages
14    into the user's language if translations are available and the
15    locale is appropriately set. Distributors can drop in new PO files
16    in po/ to add new translations.
18  * Porcelain commands like "git reset" did not distinguish deletions
19    and type-changes from ordinary modification, and reported them with
20    the same 'M' moniker. They now use 'D' (for deletion) and 'T' (for
21    type-change) to match "git status -s" and "git diff --name-status".
23  * The code to handle username/password for HTTP transaction used in
24    "git push" & "git fetch" learned to talk "credential API" to
25    external programs to cache or store them, to allow integration with
26    platform native keychain mechanisms.
28  * The prompted input in the terminal use our own getpass() replacement
29    when possible. HTTP transactions used to ask username without echoing
30    back what was typed, but with this change you will see it as you type.
32  * "git add" learned to stream large files directly into a packfile
33    instead of writing them into individual loose object files.
35  * "git branch -m <current branch> HEAD" is an obvious no-op and is
36    now allowed.
38  * "git checkout -B <current branch> <elsewhere>" is a more intuitive
39    way to spell "git reset --keep <elsewhere>".
41  * "git checkout" and "git merge" learned "--no-overwrite-ignore" option
42    to tell Git that untracked and ignored files are not expendable.
44  * "git commit --amend" learned "--no-edit" option to say that the
45    user is amending the tree being recorded, without updating the
46    commit log message.
48  * "git commit" and "git reset" re-learned the optimization to prime
49    the cache-tree information in the index, which makes it faster to
50    write a tree object out after the index entries are updated.
52  * "git commit" detects and rejects an attempt to stuff NUL byte in
53    the commit log message.
55  * fsck and prune are relatively lengthy operations that still go
56    silent while making the end-user wait. They learned to give progress
57    output like other slow operations.
59  * The set of built-in function-header patterns for various languages
60    knows MATLAB.
62  * "git log --follow" honors the rename threshold score given with the
63    -M option (e.g. "-M50%").
65  * "git log --format='<format>'" learned new %g[nNeE] specifiers to
66    show information from the reflog entries when warlking the reflog
67    (i.e. with "-g").
69  * "git pull" can be used to fetch and merge an annotated/signed tag,
70    instead of the tip of a topic branch. The GPG signature from the
71    signed tag is recorded in the resulting merge commit for later
72    auditing.
74  * "git branch --edit-description" can be used to add descriptive text
75    to explain what a topic branch is about.
77  * "git fmt-merge-msg" learned to take the branch description into
78    account when preparing a merge summary that "git merge" records
79    when merging a local branch.
81  * "git request-pull" has been updated to convey more information
82    useful for integrators to decide if a topic is worth merging and
83    what is pulled is indeed what the requestor asked to pull,
84    including:
86    - the tip of the branch being requested to be merged;
87    - the branch description describing what the topic is about;
88    - the contents of the annotated tag, when requesting to pull a tag.
90  * "git pull" learned to notice 'pull.rebase' configuration variable,
91    which serves as a global fallback for setting 'branch.<name>.rebase'
92    configuration variable per branch.
94  * "git tag" learned "--cleanup" option to control how the whitespaces
95    and empty lines in tag message are cleaned up.
97  * "gitweb" learned to show side-by-side diff.
99 Also contains minor documentation updates and code clean-ups.
102 Fixes since v1.7.8
103 ------------------
105  * The replacement implemention for snprintf used on platforms with
106    native snprintf that is broken did not use va_copy correctly.
107    (merge a9bfbc5 jk/maint-snprintf-va-copy later to maint).
109  * git native connection going over TCP (not over SSH) did not set
110    SO_KEEPALIVE option which failed to receive link layer errors.
111    (merge e47a858 ew/keepalive later to maint).
113  * LF-to-CRLF streaming filter replaced all LF with CRLF, which might
114    be techinically correct but not friendly to people who are trying
115    to recover from earlier mistakes of using CRLF in the repository
116    data in the first place. It now refrains from doing so for LF that
117    follows a CR.
118    (merge 8496f56 jc/maint-lf-to-crlf-keep-crlf later to maint).
120  * "git checkout -m" did not recreate the conflicted state in a "both
121    sides added, without any common ancestor version" conflict
122    situation.
123    (merge 5cd7fadc jc/checkout-m-twoway later to maint).
125  * "git cherry-pick $commit" (not a range) created an unnecessary
126    sequencer state and interfered with valid workflow to use the
127    command during a session to cherry-pick multiple commits.
128    (merge d596118 jn/maint-sequencer-fixes later to maint).
130  * You could make "git commit" segfault by giving the "--no-message"
131    option.
132    (merge 03f94ae jk/maint-strbuf-missing-init later to maint).
134  * "fast-import" did not correctly update an existing notes tree,
135    possibly corrupting the fan-out.
137  * "git fetch-pack" accepted unqualified refs that do not begin with
138    refs/ by mistake and compensated it by matching the refspec with
139    tail-match, which was doubly wrong. This broke fetching from a
140    repository with a funny named ref "refs/foo/refs/heads/master" and a
141    'master' branch with "git fetch-pack refs/heads/master", as the
142    command incorrectly considered the former a "match".
143    (merge bab8d28 jk/fetch-no-tail-match-refs later to maint).
145  * "git mv" gave suboptimal error/warning messages when it overwrites
146    target files. It also did not pay attention to "-v" option.
147    (merge 534376c jk/maint-mv later to maint).
149  * When a "reword" action in "git rebase -i" failed to run "commit --amend",
150    we did not give the control back to the user to resolve the situation, and
151    instead kept the original commit log message.
152    (merge 0becb3e aw/rebase-i-stop-on-failure-to-amend later to maint).
154  * Authenticated "git push" over dumb HTTP were broken with a recent
155    change and failed without asking for password when username is
156    given.
157    (merge a4ddbc3 jk/maint-push-over-dav later to maint).
159  * "git push" to an empty repository over HTTP were broken with a
160    recent change to the ref handling.
161    (merge 02f7914 jk/http-push-to-empty later to maint).
163  * "git push -v" forgot how to be verbose by mistake. It now properly is.
164    (merge bd2c86e jk/maint-push-v-is-verbose later to maint).
167 exec >/var/tmp/1
168 O=v1.7.8.1-361-g1aea303
169 echo O=$(git describe master)
170 git log --first-parent --oneline --reverse ^$O master
171 echo
172 git shortlog --no-merges ^$O ^maint master