2013-01-02 19:44:12 +01:00
|
|
|
Git v1.8.2 Release Notes
|
|
|
|
========================
|
|
|
|
|
|
|
|
Backward compatibility notes
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
In the upcoming major release (tentatively called 1.8.2), we will
|
|
|
|
change the behavior of the "git push" command.
|
|
|
|
|
|
|
|
When "git push [$there]" does not say what to push, we have used the
|
|
|
|
traditional "matching" semantics so far (all your branches were sent
|
|
|
|
to the remote as long as there already are branches of the same name
|
|
|
|
over there). We will use the "simple" semantics that pushes the
|
|
|
|
current branch to the branch with the same name, only when the current
|
|
|
|
branch is set to integrate with that remote branch. There is a user
|
|
|
|
preference configuration variable "push.default" to change this.
|
|
|
|
|
|
|
|
|
|
|
|
Updates since v1.8.1
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
UI, Workflows & Features
|
|
|
|
|
2013-01-03 19:33:22 +01:00
|
|
|
* Initial ports to QNX and z/OS UNIX System Services have started.
|
|
|
|
|
|
|
|
* Output from the tests is coloured using "green is okay, yellow is
|
|
|
|
questionable, red is bad and blue is informative" scheme.
|
2013-01-02 19:44:12 +01:00
|
|
|
|
2013-01-06 09:17:24 +01:00
|
|
|
* In bare repositories, "git shortlog" and other commands now read
|
|
|
|
mailmap files from the tip of the history, to help running these
|
|
|
|
tools in server settings.
|
|
|
|
|
|
|
|
* Color specifiers, e.g. "%C(blue)Hello%C(reset)", used in the
|
|
|
|
"--format=" option of "git log" and friends can be disabled when
|
|
|
|
the output is not sent to a terminal by prefixing them with
|
|
|
|
"auto,", e.g. "%C(auto,blue)Hello%C(auto,reset)".
|
|
|
|
|
|
|
|
* Scripts can ask Git that wildcard patterns in pathspecs they give do
|
|
|
|
not have any significance, i.e. take them as literal strings.
|
|
|
|
|
2013-01-10 23:36:23 +01:00
|
|
|
* The pathspec code learned to grok "foo/**/bar" as a pattern that
|
|
|
|
matches "bar" in 0-or-more levels of subdirectory in "foo".
|
|
|
|
|
2013-01-14 17:21:35 +01:00
|
|
|
* "git blame" (and "git diff") learned the "--no-follow" option.
|
|
|
|
|
2013-01-10 23:36:23 +01:00
|
|
|
* "git cherry-pick" can be used to replay a root commit to an unborn
|
|
|
|
branch.
|
|
|
|
|
2013-01-06 09:17:24 +01:00
|
|
|
* "git fetch --mirror" and fetch that uses other forms of refspec
|
|
|
|
with wildcard used to attempt to update a symbolic ref that match
|
|
|
|
the wildcard on the receiving end, which made little sense (the
|
|
|
|
real ref that is pointed at by the symbolic ref would be updated
|
|
|
|
anyway). Symbolic refs no longer are affected by such a fetch.
|
|
|
|
|
2013-01-09 19:19:49 +01:00
|
|
|
* "git format-patch" now detects more cases in which a whole branch
|
|
|
|
is being exported, and uses the description for the branch, when
|
|
|
|
asked to write a cover letter for the series.
|
|
|
|
|
2013-01-12 03:51:09 +01:00
|
|
|
* "git format-patch" learned "-v $count" option, and prepends a
|
|
|
|
string "v$count-" to the names of its output files, and also
|
|
|
|
automatically sets the subject prefix to "PATCH v$count". This
|
|
|
|
allows patches from rerolled series to be stored under different
|
|
|
|
names and makes it easier to reuse cover letter messsages.
|
|
|
|
|
2013-01-06 09:17:24 +01:00
|
|
|
* "git push" now requires "-f" to update a tag, even if it is a
|
|
|
|
fast-forward, as tags are meant to be fixed points.
|
|
|
|
|
2013-01-10 23:36:23 +01:00
|
|
|
* When "git rebase" fails to generate patches to be applied (e.g. due
|
|
|
|
to oom), it failed to detect the failure and instead behaved as if
|
|
|
|
there were nothing to do. A workaround to use a temporary file has
|
|
|
|
been applied, but we probably would want to revisit this later, as
|
|
|
|
it hurts the common case of not failing at all.
|
|
|
|
|
2013-01-06 09:17:24 +01:00
|
|
|
* "git submodule" started learning a new mode to integrate with the
|
|
|
|
tip of the remote branch (as opposed to integrating with the commit
|
|
|
|
recorded in the superproject's gitlink).
|
|
|
|
|
|
|
|
|
2013-01-02 19:44:12 +01:00
|
|
|
Foreign Interface
|
|
|
|
|
2013-01-06 09:17:24 +01:00
|
|
|
* "git fast-export" has been updated for its use in the context of
|
|
|
|
the remote helper interface.
|
|
|
|
|
2013-01-09 19:19:49 +01:00
|
|
|
* A new remote helper to interact with bzr has been added to contrib/.
|
|
|
|
|
2013-01-02 19:44:12 +01:00
|
|
|
|
|
|
|
Performance, Internal Implementation, etc.
|
|
|
|
|
2013-01-06 09:17:24 +01:00
|
|
|
* "git fsck" has been taught to be pickier about entries in tree
|
|
|
|
objects that should not be there, e.g. ".", ".git", and "..".
|
|
|
|
|
|
|
|
* Matching paths with common forms of pathspecs that contain wildcard
|
|
|
|
characters has been optimized further.
|
|
|
|
|
|
|
|
* The implementation of "imap-send" has been updated to reuse xml
|
|
|
|
quoting code from http-push codepath.
|
|
|
|
|
2013-01-10 23:36:23 +01:00
|
|
|
* There is a simple-minded checker for the test scripts in t/
|
|
|
|
directory to catch most common mistakes (it is not enabled by
|
|
|
|
default).
|
|
|
|
|
2013-01-02 19:44:12 +01:00
|
|
|
|
|
|
|
Also contains minor documentation updates and code clean-ups.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes since v1.8.1
|
|
|
|
------------------
|
|
|
|
|
|
|
|
Unless otherwise noted, all the fixes since v1.8.1 in the maintenance
|
|
|
|
track are contained in this release (see release notes to them for
|
|
|
|
details).
|
|
|
|
|
|
|
|
* An element on GIT_CEILING_DIRECTORIES list that does not name the
|
|
|
|
real path to a directory (i.e. a symbolic link) could have caused
|
|
|
|
the GIT_DIR discovery logic to escape the ceiling.
|
|
|
|
(merge 059b379 mh/ceiling later to maint).
|
|
|
|
|
2013-01-09 19:19:49 +01:00
|
|
|
* When attempting to read the XDG-style $HOME/.config/git/config and
|
|
|
|
finding that $HOME/.config/git is a file, we gave a wrong error
|
|
|
|
message, instead of treating the case as "a custom config file does
|
|
|
|
not exist there" and moving on.
|
|
|
|
(merge 8f2bbe4 jn/warn-on-inaccessible-loosen later to maint).
|
2013-01-02 19:44:12 +01:00
|
|
|
|
2013-01-03 19:33:22 +01:00
|
|
|
* The behaviour visible to the end users was confusing, when they
|
|
|
|
attempt to kill a process spawned in the editor that was in turn
|
|
|
|
launched by Git with SIGINT (or SIGQUIT), as Git would catch that
|
|
|
|
signal and die. We ignore these signals now.
|
|
|
|
(merge 1250857 pf/editor-ignore-sigint later to maint).
|
|
|
|
|
2013-01-12 03:51:09 +01:00
|
|
|
* A child process that was killed by a signal (e.g. SIGINT) was
|
|
|
|
reported in an inconsistent way depending on how the process was
|
|
|
|
spawned by us, with or without a shell in between.
|
|
|
|
(merge 709ca73 jk/unify-exit-code-by-receiving-signal later to maint).
|
|
|
|
|
2013-01-02 19:44:12 +01:00
|
|
|
* After failing to create a temporary file using mkstemp(), failing
|
|
|
|
pathname was not reported correctly on some platforms.
|
|
|
|
(merge f7be59b jc/mkstemp-more-careful-error-reporting later to maint).
|
|
|
|
|
2013-01-06 09:17:24 +01:00
|
|
|
* The attribute mechanism didn't allow limiting attributes to be
|
|
|
|
applied to only a single directory itself with "path/" like the
|
|
|
|
exclude mechanism does.
|
|
|
|
(merge 94bc671 ja/directory-attrs later to maint).
|
|
|
|
|
2013-01-09 19:19:49 +01:00
|
|
|
* "git apply" misbehaved when fixing whitespace breakages by removing
|
|
|
|
excess trailing blank lines.
|
|
|
|
(merge 5de7166 jc/apply-trailing-blank-removal later to maint).
|
|
|
|
|
2013-01-10 23:36:23 +01:00
|
|
|
* A tar archive created by "git archive" recorded a directory in a
|
|
|
|
way that made NetBSD's implementation of "tar" sometimes unhappy.
|
|
|
|
(merge 22f0dcd rs/leave-base-name-in-name-field-of-tar later to maint).
|
|
|
|
|
2013-01-12 03:51:09 +01:00
|
|
|
* "git archive" did not record uncompressed size in the header when
|
|
|
|
streaming a zip archive, which confused some implementations of unzip.
|
|
|
|
(merge 5ea2c84 rs/zip-with-uncompressed-size-in-the-header later to maint).
|
|
|
|
|
2013-01-10 23:36:23 +01:00
|
|
|
* When "git clone --separate-git-dir=$over_there" is interrupted, it
|
|
|
|
failed to remove the real location of the $GIT_DIR it created.
|
|
|
|
This was most visible when interrupting a submodule update.
|
|
|
|
(merge 9be1980 jl/interrupt-clone-remove-separate-git-dir later to maint).
|
|
|
|
|
2013-01-02 19:44:12 +01:00
|
|
|
* The way "git svn" asked for password using SSH_ASKPASS and
|
|
|
|
GIT_ASKPASS was not in line with the rest of the system.
|
|
|
|
(merge e9263e4 ss/svn-prompt later to maint).
|
|
|
|
|
|
|
|
* The --graph code fell into infinite loop when asked to do what the
|
|
|
|
code did not expect.
|
|
|
|
(merge 656197a mk/maint-graph-infinity-loop later to maint).
|
|
|
|
|
|
|
|
* http transport was wrong to ask for the username when the
|
|
|
|
authentication is done by certificate identity.
|
|
|
|
(merge 75e9a40 rb/http-cert-cred-no-username-prompt later to maint).
|
|
|
|
|
|
|
|
* "git pack-refs" that ran in parallel to another process that
|
|
|
|
created new refs had a nasty race.
|
|
|
|
(merge b3f1280 jk/repack-ref-racefix later to maint).
|
|
|
|
|
|
|
|
* After "git add -N" and then writing a tree object out of the
|
|
|
|
index, the cache-tree data structure got corrupted.
|
|
|
|
(merge eec3e7e nd/invalidate-i-t-a-cache-tree later to maint).
|
|
|
|
|
2013-01-10 23:36:23 +01:00
|
|
|
* "git merge --no-edit" computed who were involved in the work done
|
|
|
|
on the side branch, even though that information is to be discarded
|
|
|
|
without getting seen in the editor.
|
|
|
|
(merge 9bcbb1c jc/maint-fmt-merge-msg-no-edit-lose-credit later to maint).
|
|
|
|
|
2013-01-09 19:19:49 +01:00
|
|
|
* "git merge" started calling prepare-commit-msg hook like "git
|
|
|
|
commit" does some time ago, but forgot to pay attention to the exit
|
|
|
|
status of the hook.
|
|
|
|
(merge 3e4141d ap/merge-stop-at-prepare-commit-msg-failure later to maint).
|
|
|
|
|
2013-01-14 17:21:35 +01:00
|
|
|
* When users spell "cc:" in lowercase in the fake "header" in the
|
|
|
|
trailer part, "git send-email" failed to pick up the addresses from
|
|
|
|
there. As e-mail headers field names are case insensitive, this
|
|
|
|
script should follow suit and treat "cc:" and "Cc:" the same way.
|
|
|
|
(merge 6310071 nz/send-email-headers-are-case-insensitive later to maint).
|
|
|
|
|
|
|
|
* Output from "git status --ignored" showed an unexpected interaction
|
|
|
|
with "--untracked".
|
|
|
|
(merge a45fb69 ap/status-ignored-in-ignored-directory later to maint).
|
|
|
|
|
2013-01-02 19:44:12 +01:00
|
|
|
* "gitweb", when sorting by age to show repositories with new
|
|
|
|
activities first, used to sort repositories with absolutely
|
|
|
|
nothing in it early, which was not very useful.
|
|
|
|
(merge 28dae18 md/gitweb-sort-by-age later to maint).
|
|
|
|
|
2013-01-09 19:19:49 +01:00
|
|
|
* "gitweb"'s code to sanitize control characters before passing it to
|
|
|
|
"highlight" filter lost known-to-be-safe control characters by
|
|
|
|
mistake.
|
|
|
|
(merge 0e901d2 os/gitweb-highlight-uncaptured later to maint).
|
|
|
|
|
2013-01-02 19:44:12 +01:00
|
|
|
* When a line to be wrapped has a solid run of non space characters
|
|
|
|
whose length exactly is the wrap width, "git shortlog -w" failed
|
|
|
|
to add a newline after such a line.
|
|
|
|
(merge e0db176 sp/shortlog-missing-lf later to maint).
|
|
|
|
|
|
|
|
* Some shells do not behave correctly when IFS is unset; work it
|
|
|
|
around by explicitly setting it to the default value.
|
|
|
|
(merge 393050c jc/maint-fbsd-sh-ifs-workaround later to maint).
|
2013-01-09 19:19:49 +01:00
|
|
|
|
|
|
|
* Some scripted programs written in Python did not get updated when
|
|
|
|
PYTHON_PATH changed.
|
|
|
|
(cherry-pick 96a4647fca54031974cd6ad1 later to maint).
|
|
|
|
|
|
|
|
* When autoconf is used, any build on a different commit always ran
|
|
|
|
"config.status --recheck" even when unnecessary.
|
|
|
|
(merge 1226504 jn/less-reconfigure later to maint).
|
|
|
|
|
|
|
|
* We have been carrying a translated and long-unmaintained copy of an
|
|
|
|
old version of the tutorial; removed.
|
|
|
|
(merge 0a85441 ta/remove-stale-translated-tut later to maint).
|
|
|
|
|
|
|
|
* t4014, t9502 and t0200 tests had various portability issues that
|
|
|
|
broke on OpenBSD.
|
|
|
|
(merge 27f6342 jc/maint-test-portability later to maint).
|
|
|
|
|
|
|
|
* t9020 and t3600 tests had various portability issues.
|
|
|
|
(merge 5a02966 jc/test-portability later to maint).
|
|
|
|
|
|
|
|
* t9200 runs "cvs init" on a directory that already exists, but a
|
|
|
|
platform can configure this fail for the current user (e.g. you
|
|
|
|
need to be in the cvsadmin group on NetBSD 6.0).
|
|
|
|
(merge 8666df0 jc/test-cvs-no-init-in-existing-dir later to maint).
|
|
|
|
|
|
|
|
* t9020 and t9810 had a few non-portable shell script construct.
|
|
|
|
(merge 2797914 tb/test-t9020-no-which later to maint).
|
|
|
|
(merge 6f4e505 tb/test-t9810-no-sed-i later to maint).
|