Merge branch 'jc/checkout-from-tree-keep-local-changes'
[git.git] / Documentation / RelNotes / 1.7.8.txt
blobdcd2467427f22ee609f2964aaef7fbc13530a1ce
1 Git v1.7.8 Release Notes (draft)
2 ================================
4 Updates since v1.7.7
5 --------------------
7  * Some git-svn and git-gui updates.
9  * The build procedure has been taught to take advantage of computed
10    dependency automatically when the complier supports it.
12  * The date parser now accepts timezone designators that lack minutes
13    part and also has a colon between "hh:mm".
15  * On some BSD systems, adding +s bit on directories is detrimental
16    (it is not necessary on BSD to begin with). The installation
17    procedure has been updated to take this into account.
19  * The contents of the /etc/mailname file, if exists, is used as the
20    default value of the hostname part of the committer/author e-mail.
22  * "git am" learned how to read from patches generated by Hg.
24  * "git archive" talking with a remote repository can report errors
25    from the remote side in a more informative way.
27  * "git branch" learned an explicit --list option to ask for branches
28    listed, optionally with a glob matching pattern to limit its output.
30  * "git check-attr" learned "--cached" option to look at .gitattributes
31    files from the index, not from the working tree.
33  * Variants of "git cherry-pick" and "git revert" that take multiple
34    commits learned to "--continue".
36  * Errors at the network layer is logged by "git daemon".
38  * "git diff" learned "--minimal" option to spend extra cycles to come
39    up with a minimal patch output.
41  * "git fetch" learned to honor transfer.fsckobjects configuration to
42    validate the objects that were received from the other end, just like
43    "git receive-pack" (the receiving end of "git push") does.
45  * "git fetch" makes sure that the set of objects it received from the
46    other end actually completes the history before updating the refs.
47    "git receive-pack" (the receiving end of "git push") learned to do the
48    same.
50  * "git for-each-ref" learned "%(contents:subject)", "%(contents:body)"
51    and "%(contents:signature)". The last one is useful for signed tags.
53  * "git grep" used to incorrectly pay attention to .gitignore files
54    scattered in the directory it was working in even when "--no-index"
55    option was used. It no longer does this. The "--exclude-standard"
56    option needs to be given to explicitly activate the ignore
57    mechanism.
59  * "git grep" learned "--untracked" option, where given patterns are
60     searched in untracked (but not ignored) files as well as tracked
61     files in the working tree, so that matches in new but not yet
62     added files do not get missed.
64  * "git ls-remote" learned to respond to "-h"(elp) requests.
66  * "git send-email" learned to respond to "-h"(elp) requests.
68  * "git send-email" allows the value given to sendemail.aliasfile to begin
69    with "~/" to refer to the $HOME directory.
71  * "git send-email" forces use of Authen::SASL::Perl to work around
72    issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN.
74  * "git stash" learned "--include-untracked" option to stash away
75    untracked/ignored cruft from the working tree.
77  * "git submodule update" learned to honor "none" as the value for
78    submodule.<name>.update to specify that the named submodule should
79    not be checked out by default.
81  * When populating a new submodule directory with "git submodule init",
82    the $GIT_DIR metainformation directory for submodules is created inside
83    $GIT_DIR/modules/<name>/ directory of the superproject and referenced
84    via the gitfile mechanism. This is to make it possible to switch
85    between commits in the superproject that has and does not have the
86    submodule in the tree without re-cloning.
88  * "mediawiki" remote helper can interact with (surprise!) MediaWiki
89    with "git fetch" & "git push".
91  * "gitweb" leaked unescaped control characters from syntax hiliter
92    outputs.
95 Also contains other documentation updates and minor code cleanups.
98 Fixes since v1.7.7
99 ------------------
101 Unless otherwise noted, all fixes in the 1.7.7.X maintenance track are
102 included in this release.
104  * We used to drop error messages from libcurl on certain kinds of
105    errors.
106    (merge be22d92eac8 jn/maint-http-error-message later to maint).
108  * Error report from smart HTTP transport, when the connection was
109    broken in the middle of a transfer, showed a useless message on
110    a corrupt packet.
111    (merge 6cdf022 sp/smart-http-failure later to maint).
113  * Adding many refs to the local repository in one go (e.g. "git fetch"
114    that fetches many tags) and looking up a ref by name in a repository
115    with too many refs were unnecessarily slow.
116    (merge 17d68a54d jp/get-ref-dir-unsorted later to maint).
118  * After incorrectly written third-party tools store a tag object in
119    HEAD, git diagnosed it as a repository corruption and refused to
120    proceed in order to avoid spreading the damage. We now gracefully
121    recover from such a situation by pretending as if the commit that
122    is pointed at by the tag were in HEAD.
123    (merge baf18fc nd/maint-autofix-tag-in-head later to maint).
125  * "git apply --whitespace=error" did not bother to report the exact
126    line number in the patch that introduced new blank lines at the end
127    of the file.
128    (merge 8557263 jc/apply-blank-at-eof-fix later to maint).
131  * "git remote rename $a $b" were not careful to match the remote name
132    against $a (i.e. source side of the remote nickname).
133    (merge b52d00aed mz/remote-rename later to maint).
135  * "git diff --[num]stat" used to use the number of lines of context
136    different from the default, potentially giving different results from
137    "git diff | diffstat" and confusing the users.
138    (merge f01cae918 jc/maint-diffstat-numstat-context later to maint).
140  * "git merge" did not understand ":/<pattern>" as a way to name a commit.
142  * "git mergetool" learned to use its arguments as pathspec, not a path to
143    the file that may not even have any conflict.
144    (merge 6d9990a jm/mergetool-pathspec later to maint).
146  * "gitweb" used to produce a non-working link while showing the contents
147    of a blob, when JavaScript actions are enabled.
148    (merge 2b07ff3ff ps/gitweb-js-with-lineno later to maint).
151 exec >/var/tmp/1
152 O=v1.7.7-324-g47d45a5
153 echo O=$(git describe --always master)
154 git log --first-parent --oneline --reverse ^$O master
155 echo
156 git shortlog --no-merges ^$O master