1 Git v1.7.9 Release Notes (draft)
2 ========================
7 * gitk updates accumulated since early 2011.
9 * git-gui updated to 0.16.0.
11 * git-p4 (in contrib/) updates.
13 * i18n effort is going forward and Git uses localized messages if
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".
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.
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.
30 * "git add" learned to stream large files directly into a packfile
31 instead of writing them into individual loose object files.
33 * "git branch -m <current branch> HEAD" is an obvious no-op and is
36 * "git checkout -B <current branch> <elsewhere>" is a more intuitive
37 way to spell "git reset --keep <elsewhere>".
39 * "git checkout" and "git merge" learned "--no-overwrite-ignore" option
40 to tell Git that untracked and ignored files are not expendable.
42 * "git commit --amend" learned "--no-edit" option to say that the
43 user is amending the tree being recorded, without updating the
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.
50 * The set of built-in function-header patterns for various languages
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
58 * "git branch --edit-description" can be used to add descriptive text
59 to explain what a topic branch is about.
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.
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,
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.
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.
78 * "git tag" learned "--cleanup" option to control how the whitespaces
79 and empty lines in tag message are cleaned up.
81 * "gitweb" learned to show side-by-side diff.
83 Also contains minor documentation updates and code clean-ups.
89 * The function header pattern for files with "diff=cpp" attribute did
90 not consider "type *funcname(type param1,..." as the beginning of a
92 (merge 37e7793 tr/userdiff-c-returns-pointer later to maint).
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).
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).
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).
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).
110 * "git apply --check" did not error out when given an empty input
112 (merge cc64b31 bc/maint-apply-check-no-patch later to maint).
114 * "git checkout -m" did not recreate the conflicted state in a "both
115 sides added, without any common ancestor version" conflict
117 (merge 335c6e4 jc/checkout-m-twoway later to maint).
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).
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
127 (merge 6a5ceda jl/submodule-status-failure-report later to maint).
129 * "fast-import" did not correctly update an existing notes tree,
130 possibly corrupting the fan-out.
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).
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).
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).
149 * Authenticated "git push" over dumb HTTP were broken with a recent
150 change and failed without asking for password when username is
152 (merge a4ddbc3 jk/maint-push-over-dav later to maint).
156 O=v1.7.8-351-g2dccad3
157 echo O=$(git describe master)
158 git log --first-parent --oneline --reverse ^$O master
160 git shortlog --no-merges ^$O ^maint master