<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>
    <title>Git Release Notes</title>
    <link>http://git-scm.com</link>
    <description>Git Release notes.</description>
    <item>
      <title>Git v1.8.2.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.2.3.txt</link>
      <description>&lt;h1&gt;Git v1.8.2.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.2.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;rev-list --stdin&quot; and friends kept bogus pointers into the input
buffer around as human readable object names.  This was not a
huge problem but was exposed by a new change that uses these
names in error output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git difftool&quot; drove &quot;kdiff3&quot;, it mistakenly passed --auto
option that was meant while resolving merge conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git remote add&quot; command did not diagnose extra command line
arguments as an error and silently ignored them.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains a handful of trivial code clean-ups, documentation
updates, updates to the test suite, etc.&lt;/p&gt;
</description>
      <pubDate>Fri, 10 May 2013 09:48:10 +0000</pubDate>
      <dc:date>2013-05-10T09:48:10.45791+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.2.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.2.2.txt</link>
      <description>&lt;h1&gt;Git v1.8.2.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.2.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Zsh completion forgot that '%' character used to signal untracked
files needs to be escaped with another '%'.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A commit object whose author or committer ident are malformed
crashed some code that trusted that a name, an email and an
timestamp can always be found in it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The new core.commentchar configuration was not applied to a few
places.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pull --rebase&quot; did not pass &quot;-v/-q&quot; options to underlying
&quot;git rebase&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When receive-pack detects error in the pack header it received in
order to decide which of unpack-objects or index-pack to run, it
returned without closing the error stream, which led to a hang
sideband thread.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff --diff-algorithm=algo&quot; was understood by the command line
parser, but &quot;git diff --diff-algorithm algo&quot; was not.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -S/-G&quot; started paying attention to textconv filter, but
there was no way to disable this.  Make it honor --no-textconv
option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge $(git rev-parse v1.8.2)&quot; behaved quite differently from
&quot;git merge v1.8.2&quot;, as if v1.8.2 were written as v1.8.2&lt;sup&gt;0&lt;/sup&gt; and did
not pay much attention to the annotated tag payload.  Make the code
notice the type of the tag object, in addition to the dwim_ref()
based classification the current code uses (i.e. the name appears
in refs/tags/) to decide when to special case merging of tags.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cherry-pick&quot; and &quot;git revert&quot; can take more than one commit
on the command line these days, but it was not mentioned on the usage
text.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Perl scripts like &quot;git-svn&quot; closed (not redirecting to /dev/null)
the standard error stream, which is not a very smart thing to do.
Later open may return file descriptor #2 for unrelated purpose, and
error reporting code may write into them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply --whitespace=fix&quot; was not prepared to see a line getting
longer after fixing whitespaces (e.g. tab-in-indent aka Python).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff/log --cc&quot; did not work well with options that ignore
whitespace changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation on setting up a http server that requires
authentication only on the push but not fetch has been clarified.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A few bugfixes to &quot;git rerere&quot; working on corner case merge
conflicts have been applied.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git bundle&quot; did not like a bundle created using a commit without
any message as its one of the prerequistes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Mon, 29 Apr 2013 12:00:04 +0000</pubDate>
      <dc:date>2013-04-29T12:00:04.48798+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.2.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.2.1.txt</link>
      <description>&lt;h1&gt;Git v1.8.2.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An earlier change to the attribute system introduced at v1.8.1.2 by
mistake stopped a pattern &quot;dir&quot; (without trailing slash) from
matching a directory &quot;dir&quot; (it only wanted to allow pattern &quot;dir/&quot;
to also match).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verification of signed tags were not done correctly when not in C
or en/US locale.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;'git commit -m &quot;$msg&quot;' used to add an extra newline even when
$msg already ended with one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;--match=&lt;pattern&gt;&quot; option of &quot;git describe&quot;, when used with
&quot;--all&quot; to allow refs that are not annotated tags to be used as a
base of description, did not restrict the output from the command
to those that match the given pattern.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An aliased command spawned from a bare repository that does not say
it is bare with &quot;core.bare = yes&quot; is treated as non-bare by mistake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;format-patch&quot; quoted a non-ascii strings on the header files,
it incorrectly applied rfc2047 and chopped a single character in
the middle of it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; reports a failure when asked to create an archive out
of an empty tree.  It would be more intuitive to give an empty
archive back in such a case.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git tag -f &lt;tag&gt;&quot; always said &quot;Updated tag '&lt;tag&gt;'&quot; even when
creating a new tag (i.e. not overwriting nor updating).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cmd -- ':(top'&quot; was not diagnosed as an invalid syntax, and
instead the parser kept reading beyond the end of the string.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Annotated tags outside refs/tags/ hierarchy were not advertised
correctly to the ls-remote and fetch with recent version of Git.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The code to keep track of what directory names are known to Git on
platforms with case insensitive filesystems can get confused upon a
hash collision between these pathnames and looped forever.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The logic used by &quot;git diff -M --stat&quot; to shorten the names of
files before and after a rename did not work correctly when the
common prefix and suffix between the two filenames overlapped.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule update&quot;, when recursed into sub-submodules, did not
acccumulate the prefix paths.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am $maildir/&quot; applied messages in an unexpected order; sort
filenames read from the maildir/ in a way that is more likely to
sort messages in the order the writing MUA meant to, by sorting
numeric segment in numeric order and non-numeric segment in
alphabetical order.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When export-subst is used, &quot;zip&quot; output recorded incorrect
size of the file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some platforms and users spell UTF-8 differently; retry with the
most official &quot;UTF-8&quot; when the system does not understand the
user-supplied encoding name that are the common alternative
spellings of UTF-8.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git branch&quot; did not bother to check nonsense command line
parameters and issue errors in many cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git update-index -h&quot; did not do the usual &quot;-h(elp)&quot; thing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;perl/Git.pm::cat_blob slurped everything in core only to write it
out to a file descriptor, which was not a very smart thing to do.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The SSL peer verification done by &quot;git imap-send&quot; did not ask for
Server Name Indication (RFC 4366), failing to connect SSL/TLS
sites that serve multiple hostnames on a single IP.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git index-pack&quot; had a buffer-overflow while preparing an
informational message when the translated version of it was too
long.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clarify in the documentation &quot;what&quot; gets pushed to &quot;where&quot; when the
command line to &quot;git push&quot; does not say these explicitly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &quot;git reflog expire&quot;, REACHABLE bit was not cleared from the
correct objects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;--color=&lt;when&gt;&quot; argument to the commands in the diff family
was described poorly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The arguments given to pre-rebase hook were not documented.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The v4 index format was not documented.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;--match=&lt;pattern&gt;&quot; argument &quot;git describe&quot; takes uses glob
pattern but it wasn't obvious from the documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some sources failed to compile on systems that lack NI_MAXHOST in
their system header (e.g. z/OS).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add an example use of &quot;--env-filter&quot; in &quot;filter-branch&quot;
documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git bundle verify&quot; did not say &quot;records a complete history&quot; for a
bundle that does not have any prerequisites.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge-tree&quot; had a typo in the logic to detect d/f conflicts,
which caused it to segfault in some cases.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Mon, 08 Apr 2013 07:30:04 +0000</pubDate>
      <dc:date>2013-04-08T07:30:04.267557+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.2.txt</link>
      <description>&lt;h1&gt;Git v1.8.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Backward compatibility notes (this release)&lt;/h2&gt;

&lt;p&gt;&quot;git push $there tag v1.2.3&quot; used to allow replacing a tag v1.2.3
that already exists in the repository $there, if the rewritten tag
you are pushing points at a commit that is a descendant of a commit
that the old tag v1.2.3 points at.  This was found to be error prone
and starting with this release, any attempt to update an existing
ref under refs/tags/ hierarchy will fail, without &quot;--force&quot;.&lt;/p&gt;

&lt;p&gt;When &quot;git add -u&quot; and &quot;git add -A&quot; that does not specify what paths
to add on the command line is run from inside a subdirectory, the
scope of the operation has always been limited to the subdirectory.
Many users found this counter-intuitive, given that &quot;git commit -a&quot;
and other commands operate on the entire tree regardless of where you
are.  In this release, these commands give a warning message that
suggests the users to use &quot;git add -u/-A .&quot; when they want to limit
the scope to the current directory; doing so will squelch the message,
while training their fingers.&lt;/p&gt;

&lt;h2&gt;Backward compatibility notes (for Git 2.0)&lt;/h2&gt;

&lt;p&gt;When &quot;git push [$there]&quot; does not say what to push, we have used the
traditional &quot;matching&quot; semantics so far (all your branches were sent
to the remote as long as there already are branches of the same name
over there).  In Git 2.0, the default will change to the &quot;simple&quot;
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
&quot;push.default&quot; to change this.  If you are an old-timer who is used
to the &quot;matching&quot; semantics, you can set it to &quot;matching&quot; to keep the
traditional behaviour.  If you want to live in the future early,
you can set it to &quot;simple&quot; today without waiting for Git 2.0.&lt;/p&gt;

&lt;p&gt;When &quot;git add -u&quot; and &quot;git add -A&quot;, that does not specify what paths
to add on the command line is run from inside a subdirectory, these
commands will operate on the entire tree in Git 2.0 for consistency
with &quot;git commit -a&quot; and other commands. Because there will be no
mechanism to make &quot;git add -u&quot; behave as if &quot;git add -u .&quot;, it is
important for those who are used to &quot;git add -u&quot; (without pathspec)
updating the index only for paths in the current subdirectory to start
training their fingers to explicitly say &quot;git add -u .&quot; when they mean
it before Git 2.0 comes.&lt;/p&gt;

&lt;h2&gt;Updates since v1.8.1&lt;/h2&gt;

&lt;p&gt;UI, Workflows &amp;amp; Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Initial ports to QNX and z/OS UNIX System Services have started.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output from the tests is coloured using &quot;green is okay, yellow is
questionable, red is bad and blue is informative&quot; scheme.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mention of &quot;GIT/Git/git&quot; in the documentation have been updated to
be more uniform and consistent.  The name of the system and the
concept it embodies is &quot;Git&quot;; the command the users type is &quot;git&quot;.
All-caps &quot;GIT&quot; was merely a way to imitate &quot;Git&quot; typeset in small
caps in our ASCII text only documentation and to be avoided.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The completion script (in contrib/completion) used to let the
default completer to suggest pathnames, which gave too many
irrelevant choices (e.g. &quot;git add&quot; would not want to add an
unmodified path).  It learnt to use a more git-aware logic to
enumerate only relevant ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In bare repositories, &quot;git shortlog&quot; and other commands now read
mailmap files from the tip of the history, to help running these
tools in server settings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Color specifiers, e.g. &quot;%C(blue)Hello%C(reset)&quot;, used in the
&quot;--format=&quot; option of &quot;git log&quot; and friends can be disabled when
the output is not sent to a terminal by prefixing them with
&quot;auto,&quot;, e.g. &quot;%C(auto,blue)Hello%C(auto,reset)&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scripts can ask Git that wildcard patterns in pathspecs they give do
not have any significance, i.e. take them as literal strings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The patterns in .gitignore and .gitattributes files can have &lt;strong&gt;/,
as a pattern that matches 0 or more levels of subdirectory.
E.g. &quot;foo/&lt;/strong&gt;/bar&quot; matches &quot;bar&quot; in &quot;foo&quot; itself or in a
subdirectory of &quot;foo&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When giving arguments without &quot;--&quot; disambiguation, object names
that come earlier on the command line must not be interpretable as
pathspecs and pathspecs that come later on the command line must
not be interpretable as object names.  This disambiguation rule has
been tweaked so that &quot;:/&quot; (no other string before or after) is
always interpreted as a pathspec; &quot;git cmd -- :/&quot; is no longer
needed, you can just say &quot;git cmd :/&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Various &quot;hint&quot; lines Git gives when it asks the user to edit
messages in the editor are commented out with '#' by default. The
core.commentchar configuration variable can be used to customize
this '#' to a different character.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git add -u&quot; and &quot;git add -A&quot; without pathspec issues warning to
make users aware that they are only operating on paths inside the
subdirectory they are in.  Use &quot;:/&quot; (everything from the top) or
&quot;.&quot; (everything from the $cwd) to disambiguate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git blame&quot; (and &quot;git diff&quot;) learned the &quot;--no-follow&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git branch&quot; now rejects some nonsense combinations of command line
arguments (e.g. giving more than one branch name to rename) with
more case-specific error messages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git check-ignore&quot; command to help debugging .gitignore files has
been added.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cherry-pick&quot; can be used to replay a root commit to an unborn
branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit&quot; can be told to use --cleanup=whitespace by setting the
configuration variable commit.cleanup to 'whitespace'.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff&quot; and other Porcelain commands can be told to use a
non-standard algorithm by setting diff.algorithm configuration
variable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch --mirror&quot; 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git format-patch&quot; 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git format-patch&quot; learned &quot;-v $count&quot; option, and prepends a
string &quot;v$count-&quot; to the names of its output files, and also
automatically sets the subject prefix to &quot;PATCH v$count&quot;. This
allows patches from rerolled series to be stored under different
names and makes it easier to reuse cover letter messages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log&quot; and friends can be told with --use-mailmap option to
rewrite the names and email addresses of people using the mailmap
mechanism.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --cc --graph&quot; now shows the combined diff output with the
ancestry graph.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --grep=&lt;pattern&gt;&quot; honors i18n.logoutputencoding to look
for the pattern after fixing the log message to the specified
encoding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mergetool&quot; and &quot;git difftool&quot; learned to list the available
tool backends in a more consistent manner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mergetool&quot; is aware of TortoiseGitMerge now and uses it over
TortoiseMerge when available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push&quot; now requires &quot;-f&quot; to update a tag, even if it is a
fast-forward, as tags are meant to be fixed points.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Error messages from &quot;git push&quot; when it stops to prevent remote refs
from getting overwritten by mistake have been improved to explain
various situations separately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push&quot; will stop without doing anything if the new &quot;pre-push&quot;
hook exists and exits with a failure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git rebase&quot; 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Input and preconditions to &quot;git reset&quot; has been loosened where
appropriate.  &quot;git reset $fromtree Makefile&quot; requires $fromtree to
be any tree (it used to require it to be a commit), for example.
&quot;git reset&quot; (without options or parameters) used to error out when
you do not have any commits in your history, but it now gives you
an empty index (to match non-existent commit you are not even on).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git status&quot; says what branch is being bisected or rebased when
able, not just &quot;bisecting&quot; or &quot;rebasing&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule&quot; 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).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git upload-pack&quot; which implements the service &quot;ls-remote&quot; and
&quot;fetch&quot; talk to can be told to hide ref hierarchies the server
side internally uses (and that clients have no business learning
about) with transfer.hiderefs configuration.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Foreign Interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git fast-export&quot; has been updated for its use in the context of
the remote helper interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new remote helper to interact with bzr has been added to contrib/.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot; got various bugfixes around its branch handling.  It is
also made usable with Python 2.4/2.5.  In addition, its various
portability issues for Cygwin have been addressed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The remote helper to interact with Hg in contrib/ has seen a few
fixes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Performance, Internal Implementation, etc.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git fsck&quot; has been taught to be pickier about entries in tree
objects that should not be there, e.g. &quot;.&quot;, &quot;.git&quot;, and &quot;..&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Matching paths with common forms of pathspecs that contain wildcard
characters has been optimized further.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We stopped paying attention to $GIT_CONFIG environment that points
at a single configuration file from any command other than &quot;git config&quot;
quite a while ago, but &quot;git clone&quot; internally set, exported, and
then unexported the variable during its operation unnecessarily.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git reset&quot; internals has been reworked and should be faster in
general. We tried to be careful not to break any behaviour but
there could be corner cases, especially when running the command
from a conflicted state, that we may have missed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The implementation of &quot;imap-send&quot; has been updated to reuse xml
quoting code from http-push codepath, and lost a lot of unused
code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is a simple-minded checker for the test scripts in t/
directory to catch most common mistakes (it is not enabled by
default).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can build with USE_WILDMATCH=YesPlease to use a replacement
implementation of pattern matching logic used for pathname-like
things, e.g. refnames and paths in the repository.  This new
implementation is not expected change the existing behaviour of Git
in this release, except for &quot;git for-each-ref&quot; where you can now
say &quot;refs/&lt;strong&gt;/master&quot; and match with both refs/heads/master and
refs/remotes/origin/master.  We plan to use this new implementation
in wider places (e.g. &quot;git ls-files '&lt;/strong&gt;/Makefile' may find Makefile
at the top-level, and &quot;git log '&lt;em&gt;*/t&lt;/em&gt;.sh'&quot; may find commits that
touch a shell script whose name begins with &quot;t&quot; at any level) in
future versions of Git, but we are not there yet.  By building with
USE_WILDMATCH, using the resulting Git daily and reporting when you
find breakages, you can help us get closer to that goal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some reimplementations of Git do not write all the stat info back
to the index due to their implementation limitations (e.g. jgit).
A configuration option can tell Git to ignore changes to most of
the stat fields and only pay attention to mtime and size, which
these implementations can reliably update.  This can be used to
avoid excessive revalidation of contents.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some platforms ship with old version of expat where xmlparse.h
needs to be included instead of expat.h; the build procedure has
been taught about this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;make clean&quot; on platforms that cannot compute header dependencies
on the fly did not work with implementations of &quot;rm&quot; that do not
like an empty argument list.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor documentation updates and code clean-ups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.8.1&lt;/h2&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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 &quot;a custom config file does
not exist there&quot; and moving on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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 0398fc34 pf/editor-ignore-sigint later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After failing to create a temporary file using mkstemp(), failing
pathname was not reported correctly on some platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We used to stuff &quot;user@&quot; and then append what we read from
/etc/mailname to come up with a default e-mail ident, but a bug
lost the &quot;user@&quot; part.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The attribute mechanism didn't allow limiting attributes to be
applied to only a single directory itself with &quot;path/&quot; like the
exclude mechanism does.  The initial implementation of this that
was merged to 'maint' and 1.8.1.2 was with a severe performance
degradations and needs to merge a fix-up topic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The smart HTTP clients forgot to verify the content-type that comes
back from the server side to make sure that the request is being
handled properly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; did not parse datestamp correctly from Hg generated patch,
when it is run in a locale outside C (or en).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply&quot; misbehaved when fixing whitespace breakages by removing
excess trailing blank lines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply --summary&quot; has been taught to make sure the similarity
value shown in its output is sensible, even when the input had a
bogus value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A tar archive created by &quot;git archive&quot; recorded a directory in a
way that made NetBSD's implementation of &quot;tar&quot; sometimes unhappy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; did not record uncompressed size in the header when
streaming a zip archive, which confused some implementations of unzip.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; did not parse configuration values in tar.* namespace
correctly.
(merge b3873c3 jk/config-parsing-cleanup later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Attempt to &quot;branch --edit-description&quot; an existing branch, while
being on a detached HEAD, errored out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clean&quot; showed what it was going to do, but sometimes end up
finding that it was not allowed to do so, which resulted in a
confusing output (e.g. after saying that it will remove an
untracked directory, it found an embedded git repository there
which it is not allowed to remove).  It now performs the actions
and then reports the outcome more faithfully.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git clone --separate-git-dir=$over_there&quot; is interrupted, it
failed to remove the real location of the $GIT_DIR it created.
This was most visible when interrupting a submodule update.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cvsimport&quot; mishandled timestamps at DST boundary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We used to have an arbitrary 32 limit for combined diff input,
resulting in incorrect number of leading colons shown when showing
the &quot;--raw --cc&quot; output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch --depth&quot; was broken in at least three ways.  The
resulting history was deeper than specified by one commit, it was
unclear how to wipe the shallowness of the repository with the
command, and documentation was misleading.
(merge cfb70e1 nd/fetch-depth-is-broken later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --all -p&quot; that walked refs/notes/textconv/ ref can later
try to use the textconv data incorrectly after it gets freed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We forgot to close the file descriptor reading from &quot;gpg&quot; output,
killing &quot;git log --show-signature&quot; on a long history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The way &quot;git svn&quot; asked for password using SSH_ASKPASS and
GIT_ASKPASS was not in line with the rest of the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The --graph code fell into infinite loop when asked to do what the
code did not expect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;http transport was wrong to ask for the username when the
authentication is done by certificate identity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pack-refs&quot; that ran in parallel to another process that
created new refs had a nasty race.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rebasing the history of superproject with change in the submodule
has been broken since v1.7.12.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After &quot;git add -N&quot; and then writing a tree object out of the
index, the cache-tree data structure got corrupted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clone&quot; used to allow --bare and --separate-git-dir=$there
options at the same time, which was nonsensical.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase --preserve-merges&quot; lost empty merges in recent versions
of Git.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge --no-edit&quot; 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge&quot; started calling prepare-commit-msg hook like &quot;git
commit&quot; does some time ago, but forgot to pay attention to the exit
status of the hook.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A failure to push due to non-ff while on an unborn branch
dereferenced a NULL pointer when showing an error message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When users spell &quot;cc:&quot; in lowercase in the fake &quot;header&quot; in the
trailer part, &quot;git send-email&quot; failed to pick up the addresses from
there. As e-mail headers field names are case insensitive, this
script should follow suit and treat &quot;cc:&quot; and &quot;Cc:&quot; the same way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output from &quot;git status --ignored&quot; showed an unexpected interaction
with &quot;--untracked&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot;, 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot;'s code to sanitize control characters before passing it to
&quot;highlight&quot; filter lost known-to-be-safe control characters by
mistake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; pages served over HTTPS, when configured to show picon or
gravatar, referred to these external resources to be fetched via
HTTP, resulting in mixed contents warning in browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When a line to be wrapped has a solid run of non space characters
whose length exactly is the wrap width, &quot;git shortlog -w&quot; failed
to add a newline after such a line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command line completion leaked an unnecessary error message while
looking for possible matches with paths in &lt;tree-ish&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command line completion for &quot;tcsh&quot; emitted an unwanted space
after completing a single directory name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command line completion code was inadvertently made incompatible with
older versions of bash by using a newer array notation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push&quot; was taught to refuse updating the branch that is
currently checked out long time ago, but the user manual was left
stale.
(merge 50995ed wk/man-deny-current-branch-is-default-these-days later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some shells do not behave correctly when IFS is unset; work it
around by explicitly setting it to the default value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some scripted programs written in Python did not get updated when
PYTHON_PATH changed.
(cherry-pick 96a4647fca54031974cd6ad1 later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When autoconf is used, any build on a different commit always ran
&quot;config.status --recheck&quot; even when unnecessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A fix was added to the build procedure to work around buggy
versions of ccache broke the auto-generation of dependencies, which
unfortunately is still relevant because some people use ancient
distros.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The autoconf subsystem passed --mandir down to generated
config.mak.autogen but forgot to do the same for --htmldir.
(merge 55d9bf0 ct/autoconf-htmldir later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A change made on v1.8.1.x maintenance track had a nasty regression
to break the build when autoconf is used.
(merge 7f1b697 jn/less-reconfigure later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We have been carrying a translated and long-unmaintained copy of an
old version of the tutorial; removed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;t0050 had tests expecting failures from a bug that was fixed some
time ago.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;t4014, t9502 and t0200 tests had various portability issues that
broke on OpenBSD.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;t9020 and t3600 tests had various portability issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;t9200 runs &quot;cvs init&quot; 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).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;t9020 and t9810 had a few non-portable shell script construct.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scripts to test bash completion was inherently flaky as it was
affected by whatever random things the user may have on $PATH.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An element on GIT_CEILING_DIRECTORIES could be a &quot;logical&quot; pathname
that uses a symbolic link to point at somewhere else (e.g. /home/me
that points at /net/host/export/home/me, and the latter directory
is automounted). Earlier when Git saw such a pathname e.g. /home/me
on this environment variable, the &quot;ceiling&quot; mechanism did not take
effect. With this release (the fix has also been merged to the
v1.8.1.x maintenance series), elements on GIT_CEILING_DIRECTORIES
are by default checked for such aliasing coming from symbolic
links. As this needs to actually resolve symbolic links for each
element on the GIT_CEILING_DIRECTORIES, you can disable this
mechanism for some elements by listing them after an empty element
on the GIT_CEILING_DIRECTORIES. e.g. Setting /home/me::/home/him to
GIT_CEILING_DIRECTORIES makes Git resolve symbolic links in
/home/me when checking if the current directory is under /home/me,
but does not do so for /home/him.
(merge 7ec30aa mh/maint-ceil-absolute later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Thu, 21 Mar 2013 00:30:04 +0000</pubDate>
      <dc:date>2013-03-21T00:30:04.164828+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.1.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.1.3.txt</link>
      <description>&lt;h1&gt;Git 1.8.1.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.1.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The attribute mechanism didn't allow limiting attributes to be
applied to only a single directory itself with &quot;path/&quot; like the
exclude mechanism does.  The fix for this in 1.8.1.2 had
performance degradations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command line completion code was inadvertently made incompatible with
older versions of bash by using a newer array notation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scripts to test bash completion was inherently flaky as it was
affected by whatever random things the user may have on $PATH.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A fix was added to the build procedure to work around buggy
versions of ccache broke the auto-generation of dependencies, which
unfortunately is still relevant because some people use ancient
distros.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We used to stuff &quot;user@&quot; and then append what we read from
/etc/mailname to come up with a default e-mail ident, but a bug
lost the &quot;user@&quot; part.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; did not parse datestamp correctly from Hg generated patch,
when it is run in a locale outside C (or en).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Attempt to &quot;branch --edit-description&quot; an existing branch, while
being on a detached HEAD, errored out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cherry-pick&quot; did not replay a root commit to an unborn branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We forgot to close the file descriptor reading from &quot;gpg&quot; output,
killing &quot;git log --show-signature&quot; on a long history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase --preserve-merges&quot; lost empty merges in recent versions
of Git.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rebasing the history of superproject with change in the submodule
has been broken since v1.7.12.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A failure to push due to non-ff while on an unborn branch
dereferenced a NULL pointer when showing an error message.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains various documentation fixes.&lt;/p&gt;
</description>
      <pubDate>Sat, 09 Feb 2013 00:30:03 +0000</pubDate>
      <dc:date>2013-02-09T00:30:03.286672+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.1.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.1.2.txt</link>
      <description>&lt;h1&gt;Git 1.8.1.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.1.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command line completion for &quot;tcsh&quot; emitted an unwanted space
after completing a single directory name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command line completion leaked an unnecessary error message while
looking for possible matches with paths in &lt;tree-ish&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; did not record uncompressed size in the header when
streaming a zip archive, which confused some implementations of unzip.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When users spelled &quot;cc:&quot; in lowercase in the fake &quot;header&quot; in the
trailer part, &quot;git send-email&quot; failed to pick up the addresses from
there. As e-mail headers field names are case insensitive, this
script should follow suit and treat &quot;cc:&quot; and &quot;Cc:&quot; the same way.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains various documentation fixes.&lt;/p&gt;
</description>
      <pubDate>Tue, 29 Jan 2013 00:30:04 +0000</pubDate>
      <dc:date>2013-01-29T00:30:04.910108+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.1.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.1.1.txt</link>
      <description>&lt;h1&gt;Git 1.8.1.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The attribute mechanism didn't allow limiting attributes to be
applied to only a single directory itself with &quot;path/&quot; like the
exclude mechanism does.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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 &quot;a custom config file does
not exist there&quot; and moving on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After failing to create a temporary file using mkstemp(), failing
pathname was not reported correctly on some platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;http transport was wrong to ask for the username when the
authentication is done by certificate identity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After &quot;git add -N&quot; and then writing a tree object out of the
index, the cache-tree data structure got corrupted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply&quot; misbehaved when fixing whitespace breakages by removing
excess trailing blank lines in some corner cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A tar archive created by &quot;git archive&quot; recorded a directory in a
way that made NetBSD's implementation of &quot;tar&quot; sometimes unhappy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git clone --separate-git-dir=$over_there&quot; is interrupted, it
failed to remove the real location of the $GIT_DIR it created.
This was most visible when interrupting a submodule update.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch --mirror&quot; 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;log --graph&quot; codepath fell into infinite loop in some
corner cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge&quot; started calling prepare-commit-msg hook like &quot;git
commit&quot; does some time ago, but forgot to pay attention to the exit
status of the hook.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pack-refs&quot; that ran in parallel to another process that
created new refs had a race that can lose new ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When a line to be wrapped has a solid run of non space characters
whose length exactly is the wrap width, &quot;git shortlog -w&quot; failed
to add a newline after such a line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The way &quot;git svn&quot; asked for password using SSH_ASKPASS and
GIT_ASKPASS was not in line with the rest of the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot;, 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot;, 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When autoconf is used, any build on a different commit always ran
&quot;config.status --recheck&quot; even when unnecessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some scripted programs written in Python did not get updated when
PYTHON_PATH changed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We have been carrying a translated and long-unmaintained copy of an
old version of the tutorial; removed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Portability issues in many self-test scripts have been addressed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains other minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 15 Jan 2013 00:30:03 +0000</pubDate>
      <dc:date>2013-01-15T00:30:03.760058+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.1.txt</link>
      <description>&lt;h1&gt;Git v1.8.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Backward compatibility notes&lt;/h2&gt;

&lt;p&gt;In the next major release (not &lt;em&gt;this&lt;/em&gt; one), we will change the
behavior of the &quot;git push&quot; command.&lt;/p&gt;

&lt;p&gt;When &quot;git push [$there]&quot; does not say what to push, we have used the
traditional &quot;matching&quot; 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 &quot;simple&quot; 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 &quot;push.default&quot; to change this, and
&quot;git push&quot; will warn about the upcoming change until you set this
variable in this release.&lt;/p&gt;

&lt;p&gt;&quot;git branch --set-upstream&quot; is deprecated and may be removed in a
relatively distant future.  &quot;git branch [-u|--set-upstream-to]&quot; has
been introduced with a saner order of arguments to replace it.&lt;/p&gt;

&lt;h2&gt;Updates since v1.8.0&lt;/h2&gt;

&lt;p&gt;UI, Workflows &amp;amp; Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Command-line completion scripts for tcsh and zsh have been added.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git-prompt&quot; scriptlet (in contrib/completion) can be told to paint
pieces of the hints in the prompt string in colors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some documentation pages that used to ship only in the plain text
format are now formatted in HTML as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We used to have a workaround for a bug in ancient &quot;less&quot; that
causes it to exit without any output when the terminal is resized.
The bug has been fixed in &quot;less&quot; version 406 (June 2007), and the
workaround has been removed in this release.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git checkout&quot; checks out a branch, it tells the user how far
behind (or ahead) the new branch is relative to the remote tracking
branch it builds upon.  The message now also advises how to sync
them up by pushing or pulling.  This can be disabled with the
advice.statusHints configuration variable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git config --get&quot; used to diagnose presence of multiple
definitions of the same variable in the same configuration file as
an error, but it now applies the &quot;last one wins&quot; rule used by the
internal configuration logic.  Strictly speaking, this may be an
API regression but it is expected that nobody will notice it in
practice.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new configuration variable &quot;diff.context&quot; can be used to
give the default number of context lines in the patch output, to
override the hardcoded default of 3 lines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git format-patch&quot; learned the &quot;--notes=&lt;ref&gt;&quot; option to give
notes for the commit after the three-dash lines in its output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -p -S&lt;string&gt;&quot; now looks for the &lt;string&gt; after applying
the textconv filter (if defined); earlier it inspected the contents
of the blobs without filtering.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --grep=&lt;pcre&gt;&quot; learned to honor the &quot;grep.patterntype&quot;
configuration set to &quot;perl&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git replace -d &lt;object&gt;&quot; now interprets &lt;object&gt; as an extended
SHA-1 (e.g. HEAD~4 is allowed), instead of only accepting full hex
object name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rm $submodule&quot; used to punt on removing a submodule working
tree to avoid losing the repository embedded in it.  Because
recent git uses a mechanism to separate the submodule repository
from the submodule working tree, &quot;git rm&quot; learned to detect this
case and removes the submodule working tree when it is safe to do so.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git send-email&quot; used to prompt for the sender address, even when
the committer identity is well specified (e.g. via user.name and
user.email configuration variables).  The command no longer gives
this prompt when not necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git send-email&quot; did not allow non-address garbage strings to
appear after addresses on Cc: lines in the patch files (and when
told to pick them up to find more recipients), e.g.&lt;/p&gt;

&lt;p&gt;  Cc: Stable Kernel &lt;a href=&quot;&amp;#109;&amp;#97;&amp;#x69;&amp;#108;&amp;#116;&amp;#111;&amp;#x3a;&amp;#115;&amp;#x74;&amp;#x61;&amp;#x62;&amp;#x6c;&amp;#x65;&amp;#x40;&amp;#107;&amp;#46;&amp;#x6f;&amp;#114;&amp;#103;&quot;&gt;&amp;#x73;&amp;#116;&amp;#x61;&amp;#98;&amp;#108;&amp;#x65;&amp;#64;&amp;#x6b;&amp;#x2e;&amp;#x6f;&amp;#114;&amp;#x67;&lt;/a&gt; # for v3.2 and up&lt;/p&gt;

&lt;p&gt;The command now strips &quot; # for v3.2 and up&quot; part before adding the
remainder of this line to the list of recipients.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule add&quot; learned to add a new submodule at the same
path as the path where an unrelated submodule was bound to in an
existing revision via the &quot;--name&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule sync&quot; learned the &quot;--recursive&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;diff.submodule&quot; configuration variable can be used to give custom
default value to the &quot;git diff --submodule&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git symbolic-ref&quot; learned the &quot;-d $symref&quot; option to delete the
named symbolic ref, which is more intuitive way to spell it than
&quot;update-ref -d --no-deref $symref&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Foreign Interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git cvsimport&quot; can be told to record timezones (other than GMT)
per-author via its author info file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The remote helper interface to interact with subversion
repositories (one of the GSoC 2012 projects) has been merged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new remote-helper interface for Mercurial has been added to
contrib/remote-helpers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The documentation for git(1) was pointing at a page at an external
site for the list of authors that no longer existed.  The link has
been updated to point at an alternative site.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Performance, Internal Implementation, etc.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Compilation on Cygwin with newer header files are supported now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A couple of low-level implementation updates on MinGW.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The logic to generate the initial advertisement from &quot;upload-pack&quot;
(i.e. what is invoked by &quot;git fetch&quot; on the other side of the
connection) to list what refs are available in the repository has
been optimized.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The logic to find set of attributes that match a given path has
been optimized.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use preloadindex in &quot;git diff-index&quot; and &quot;git update-index&quot;, which
has a nice speedup on systems with slow stat calls (and even on
Linux).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor documentation updates and code clean-ups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.8.0&lt;/h2&gt;

&lt;p&gt;Unless otherwise noted, all the fixes since v1.8.0 in the maintenance
track are contained in this release (see release notes to them for
details).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The configuration parser had an unnecessary hardcoded limit on
variable names that was not checked consistently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;say&quot; function in the test scaffolding incorrectly allowed
&quot;echo&quot; to interpret &quot;\a&quot; as if it were a C-string asking for a
BEL output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mergetool&quot; feeds /dev/null as a common ancestor when dealing
with an add/add conflict, but p4merge backend cannot handle
it. Work it around by passing a temporary empty file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -F -E --grep='&lt;ere&gt;'&quot; failed to use the given &lt;ere&gt;
pattern as extended regular expression, and instead looked for the
string literally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep -e pattern &lt;tree&gt;&quot; asked the attribute system to read
&quot;&lt;tree&gt;:.gitattributes&quot; file in the working tree, which was
nonsense.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A symbolic ref refs/heads/SYM was not correctly removed with &quot;git
branch -d SYM&quot;; the command removed the ref pointed by SYM
instead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Update &quot;remote tracking branch&quot; in the documentation to
&quot;remote-tracking branch&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pull --rebase&quot; run while the HEAD is detached tried to find
the upstream branch of the detached HEAD (which by definition
does not exist) and emitted unnecessary error messages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The refs/replace hierarchy was not mentioned in the
repository-layout docs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Various rfc2047 quoting issues around a non-ASCII name on the
From: line in the output from format-patch have been corrected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sometimes curl_multi_timeout() function suggested a wrong timeout
value when there is no file descriptor to wait on and the http
transport ended up sleeping for minutes in select(2) system call.
A workaround has been added for this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For a fetch refspec (or the result of applying wildcard on one),
we always want the RHS to map to something inside &quot;refs/&quot;
hierarchy, but the logic to check it was not exactly right.
(merge 5c08c1f jc/maint-fetch-tighten-refname-check later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff -G&lt;pattern&gt;&quot; did not honor textconv filter when looking
for changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some HTTP servers ask for auth only during the actual packing phase
(not in ls-remote phase); this is not really a recommended
configuration, but the clients used to fail to authenticate with
such servers.
(merge 2e736fd jk/maint-http-half-auth-fetch later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot; used to try expanding malformed &quot;$keyword$&quot; that spans
across multiple lines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Syntax highlighting in &quot;gitweb&quot; was not quite working.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;RSS feed from &quot;gitweb&quot; had a xss hole in its title output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git config --path $key&quot; segfaulted on &quot;[section] key&quot; (a boolean
&quot;true&quot; spelled without &quot;=&quot;, not &quot;[section] key = true&quot;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout -b foo&quot; while on an unborn branch did not say
&quot;Switched to a new branch 'foo'&quot; like other cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Various codepaths have workaround for a common misconfiguration to
spell &quot;UTF-8&quot; as &quot;utf8&quot;, but it was not used uniformly.  Most
notably, mailinfo (which is used by &quot;git am&quot;) lacked this support.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We failed to mention a file without any content change but whose
permission bit was modified, or (worse yet) a new file without any
content in the &quot;git diff --stat&quot; output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;--stat-count&quot; hides a diffstat for binary contents, the total
number of added and removed lines at the bottom was computed
incorrectly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;--stat-count&quot; hides a diffstat for unmerged paths, the total
number of affected files at the bottom of the &quot;diff --stat&quot; output
was computed incorrectly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;diff --shortstat&quot; miscounted the total number of affected files
when there were unmerged paths.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;update-ref -d --deref SYM&quot; to delete a ref through a symbolic ref
that points to it did not remove it correctly.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Wed, 02 Jan 2013 00:30:04 +0000</pubDate>
      <dc:date>2013-01-02T00:30:04+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.0.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.0.3.txt</link>
      <description>&lt;h1&gt;Git v1.8.0.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.0.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -p -S&lt;string&gt;&quot; did not apply the textconv filter while
looking for the &lt;string&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the documentation, some invalid example e-mail addresses were
formatted into mailto: links.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains many documentation updates backported from the 'master'
branch that is preparing for the upcoming 1.8.1 release.&lt;/p&gt;
</description>
      <pubDate>Sat, 29 Dec 2012 00:30:04 +0000</pubDate>
      <dc:date>2012-12-29T00:30:04.833463+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.0.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.0.2.txt</link>
      <description>&lt;h1&gt;Git v1.8.0.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.0.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Various codepaths have workaround for a common misconfiguration to
spell &quot;UTF-8&quot; as &quot;utf8&quot;, but it was not used uniformly.  Most
notably, mailinfo (which is used by &quot;git am&quot;) lacked this support.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We failed to mention a file without any content change but whose
permission bit was modified, or (worse yet) a new file without any
content in the &quot;git diff --stat&quot; output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;--stat-count&quot; hides a diffstat for binary contents, the total
number of added and removed lines at the bottom was computed
incorrectly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;--stat-count&quot; hides a diffstat for unmerged paths, the total
number of affected files at the bottom of the &quot;diff --stat&quot; output
was computed incorrectly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;diff --shortstat&quot; miscounted the total number of affected files
when there were unmerged paths.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot; used to try expanding malformed &quot;$keyword$&quot; that spans
across multiple lines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git update-ref -d --deref SYM&quot; to delete a ref through a symbolic
ref that points to it did not remove it correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Syntax highlighting in &quot;gitweb&quot; was not quite working.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains other minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 11 Dec 2012 00:30:03 +0000</pubDate>
      <dc:date>2012-12-11T00:30:03.609204+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.0.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.0.1.txt</link>
      <description>&lt;h1&gt;Git v1.8.0.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.8.0&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The configuration parser had an unnecessary hardcoded limit on
variable names that was not checked consistently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;say&quot; function in the test scaffolding incorrectly allowed
&quot;echo&quot; to interpret &quot;\a&quot; as if it were a C-string asking for a
BEL output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mergetool&quot; feeds /dev/null as a common ancestor when dealing
with an add/add conflict, but p4merge backend cannot handle
it. Work it around by passing a temporary empty file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -F -E --grep='&lt;ere&gt;'&quot; failed to use the given &lt;ere&gt;
pattern as extended regular expression, and instead looked for the
string literally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep -e pattern &lt;tree&gt;&quot; asked the attribute system to read
&quot;&lt;tree&gt;:.gitattributes&quot; file in the working tree, which was
nonsense.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A symbolic ref refs/heads/SYM was not correctly removed with &quot;git
branch -d SYM&quot;; the command removed the ref pointed by SYM
instead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Earlier we fixed documentation to hyphenate &quot;remote-tracking branch&quot;
to clarify that these are not a remote entity, but unhyphenated
spelling snuck in to a few places since then.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pull --rebase&quot; run while the HEAD is detached tried to find
the upstream branch of the detached HEAD (which by definition
does not exist) and emitted unnecessary error messages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The refs/replace hierarchy was not mentioned in the
repository-layout docs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sometimes curl_multi_timeout() function suggested a wrong timeout
value when there is no file descriptors to wait on and the http
transport ended up sleeping for minutes in select(2) system call.
A workaround has been added for this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Various rfc2047 quoting issues around a non-ASCII name on the
From: line in the output from format-patch have been corrected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff -G&lt;pattern&gt;&quot; did not honor textconv filter when looking
for changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bash completion script (in contrib/) did not correctly complete a
lazy &quot;git checkout $name_of_remote_tracking_branch_that_is_unique&quot;
command line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;RSS feed from &quot;gitweb&quot; had a xss hole in its title output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git config --path $key&quot; segfaulted on &quot;[section] key&quot; (a boolean
&quot;true&quot; spelled without &quot;=&quot;, not &quot;[section] key = true&quot;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout -b foo&quot; while on an unborn branch did not say
&quot;Switched to a new branch 'foo'&quot; like other cases.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains other minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 27 Nov 2012 00:30:03 +0000</pubDate>
      <dc:date>2012-11-27T00:30:03.652949+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.8.0 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.8.0.txt</link>
      <description>&lt;h1&gt;Git v1.8.0 Release Notes&lt;/h1&gt;

&lt;h2&gt;Backward compatibility notes&lt;/h2&gt;

&lt;p&gt;In the next major release (not &lt;em&gt;this&lt;/em&gt; one), we will change the
behavior of the &quot;git push&quot; command.&lt;/p&gt;

&lt;p&gt;When &quot;git push [$there]&quot; does not say what to push, we have used the
traditional &quot;matching&quot; 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 &quot;simple&quot; 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 &quot;push.default&quot; to change this, and
&quot;git push&quot; will warn about the upcoming change until you set this
variable in this release.&lt;/p&gt;

&lt;p&gt;&quot;git branch --set-upstream&quot; is deprecated and may be removed in a
relatively distant future.  &quot;git branch [-u|--set-upstream-to]&quot; has
been introduced with a saner order of arguments.&lt;/p&gt;

&lt;h2&gt;Updates since v1.7.12&lt;/h2&gt;

&lt;p&gt;UI, Workflows &amp;amp; Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A credential helper for Win32 to allow access to the keychain of
the logged-in user has been added.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An initial port to HP NonStop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A credential helper to allow access to the Gnome keyring has been
added.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git am&quot; sanitizes the &quot;Subject:&quot; line, we strip the prefix from
&quot;Re: subject&quot; and also from a less common &quot;re: subject&quot;, but left
the even less common &quot;RE: subject&quot; intact.  Now we strip that too.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It was tempting to say &quot;git branch --set-upstream origin/master&quot;,
but that tells Git to arrange the local branch &quot;origin/master&quot; to
integrate with the currently checked out branch, which is highly
unlikely what the user meant.  The option is deprecated; use the
new &quot;--set-upstream-to&quot; (with a short-and-sweet &quot;-u&quot;) option
instead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cherry-pick&quot; learned the &quot;--allow-empty-message&quot; option to
allow it to replay a commit without any log message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After &quot;git cherry-pick -s&quot; gave control back to the user asking
help to resolve conflicts, concluding &quot;git commit&quot; used to need to
be run with &quot;-s&quot; if the user wants to sign it off; now the command
leaves the sign-off line in the log template.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git daemon&quot; learned the &quot;--access-hook&quot; option to allow an
external command to decline service based on the client address,
repository path, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git difftool --dir-diff&quot; learned to use symbolic links to prepare
a temporary copy of the working tree when available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep&quot; learned to use a non-standard pattern type by default if
a configuration variable tells it to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Accumulated updates to &quot;git gui&quot; has been merged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -g&quot; learned the &quot;--grep-reflog=&lt;pattern&gt;&quot; option to limit
its output to commits with a reflog message that matches the given
pattern.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge-base&quot; learned the &quot;--is-ancestor A B&quot; option to tell if A is
an ancestor of B.  The result is indicated by its exit status code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mergetool&quot; now allows users to override the actual command used
with the mergetool.$name.cmd configuration variable even for built-in
mergetool backends.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase -i&quot; learned the &quot;--edit-todo&quot; option to open an editor
to edit the instruction sheet.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Foreign Interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git svn&quot; has been updated to work with SVN 1.7.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot; learned the &quot;--conflicts&quot; option to specify what to do when
encountering a conflict during &quot;p4 submit&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Performance, Internal Implementation, etc.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Git ships with a fall-back regexp implementation for platforms with
buggy regexp library, but it was easy for people to keep using their
platform regexp by mistake.  A new test has been added to check this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;check-docs&quot; build target has been updated and greatly
simplified.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The test suite is run under MALLOC_CHECK_ when running with a glibc
that supports the feature.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The documentation in the TeXinfo format was using indented output
for materials meant to be examples that are better typeset in
monospace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compatibility wrapper around some mkdir(2) implementations that
reject parameters with trailing slash has been introduced.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compatibility wrapper for systems that lack usable setitimer() has
been added.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The option parsing of &quot;git checkout&quot; had error checking, dwim and
defaulting missing options, all mixed in the code, and issuing an
appropriate error message with useful context was getting harder.
The code has been reorganized to allow giving a proper diagnosis
when the user says &quot;git checkout -b -t foo bar&quot; (e.g. &quot;-t&quot; is not a
good name for a branch).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Many internal uses of a &quot;git merge-base&quot; equivalent were only to see
if one commit fast-forwards to the other, which did not need the
full set of merge bases to be computed. They have been updated to
use less expensive checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The heuristics to detect and silently convert latin1 to utf8 when
we were told to use utf-8 in the log message has been transplanted
from &quot;mailinfo&quot; to &quot;commit&quot; and &quot;commit-tree&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Messages given by &quot;git &lt;subcommand&gt; -h&quot; from many subcommands have
been marked for translation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor documentation updates and code clean-ups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.7.12&lt;/h2&gt;

&lt;p&gt;Unless otherwise noted, all the fixes since v1.7.12 in the
maintenance track are contained in this release (see release notes
to them for details).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The attribute system may be asked for a path that itself or its
leading directories no longer exists in the working tree, and it is
fine if we cannot open .gitattribute file in such a case.  Failure
to open per-directory .gitattributes with error status other than
ENOENT and ENOTDIR should be diagnosed, but it wasn't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When looking for $HOME/.gitconfig etc., it is OK if we cannot read
them because they do not exist, but we did not diagnose existing
files that we cannot read.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git am&quot; is fed an input that has multiple &quot;Content-type: ...&quot;
header, it did not grok charset= attribute correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; mishandled a patch attached as application/octet-stream
(e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not
honored correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git blame MAKEFILE&quot; run in a history that has &quot;Makefile&quot; but not
&quot;MAKEFILE&quot; should say &quot;No such file MAKEFILE in HEAD&quot;, but got
confused on a case insensitive filesystem and failed to do so.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even during a conflicted merge, &quot;git blame $path&quot; always meant to
blame uncommitted changes to the &quot;working tree&quot; version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It was unclear in the documentation for &quot;git blame&quot; that it is
unnecessary for users to use the &quot;--follow&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output from &quot;git branch -v&quot; contains &quot;(no branch)&quot; that could be
localized, but the code to align it along with the names of
branches was counting in bytes, not in display columns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cherry-pick A C B&quot; used to replay changes in A and then B and
then C if these three commits had committer timestamps in that
order, which is not what the user who said &quot;A C B&quot; naturally
expects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A repository created with &quot;git clone --single&quot; had its fetch
refspecs set up just like a clone without &quot;--single&quot;, leading the
subsequent &quot;git fetch&quot; to slurp all the other branches, defeating
the whole point of specifying &quot;only this branch&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation talked about &quot;first line of commit log&quot; when it meant
the title of the commit.  The description was clarified by defining
how the title is decided and rewording the casual mention of &quot;first
line&quot; to &quot;title&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cvsimport&quot; did not thoroughly cleanse tag names that it
inferred from the names of the tags it obtained from CVS, which
caused &quot;git tag&quot; to barf and stop the import in the middle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Earlier we made the diffstat summary line that shows the number of
lines added/deleted localizable, but it was found irritating having
to see them in various languages on a list whose discussion language
is English, and this change has been reverted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch --all&quot;, when passed &quot;--no-tags&quot;, did not honor the
&quot;--no-tags&quot; option while fetching from individual remotes (the same
issue existed with &quot;--tags&quot;, but the combination &quot;--all --tags&quot; makes
much less sense than &quot;--all --no-tags&quot;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; over http had an old workaround for an unlikely server
misconfiguration; it turns out that this hurts debuggability of the
configuration in general, and has been reverted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; over http advertised that it supports &quot;deflate&quot;, which
is much less common, and did not advertise the more common &quot;gzip&quot; on
its Accept-Encoding header.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; over the dumb-http revision walker could segfault when
curl's multi interface was used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git gc --auto&quot; notified the user that auto-packing has triggered
 even under the &quot;--quiet&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After &quot;gitk&quot; showed the contents of a tag, neither &quot;Reread
references&quot; nor &quot;Reload&quot; updated what is shown as the
contents of it when the user overwrote the tag with &quot;git tag -f&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --all-match --grep=A --grep=B&quot; ought to show commits that
mention both A and B, but when these three options are used with
--author or --committer, it showed commits that mention either A or
B (or both) instead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;-Xours&quot; backend option to &quot;git merge -s recursive&quot; was ignored
for binary files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot;, when &quot;--use-client-spec&quot; and &quot;--detect-branches&quot; are used
together, misdetected branches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git receive-pack&quot; (the counterpart to &quot;git push&quot;) did not give
progress output while processing objects it received to the puser
when run over the smart-http protocol.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you misspell the command name you give to the &quot;exec&quot; action in
the &quot;git rebase -i&quot; instruction sheet you were told that 'rebase' is not a
git subcommand from &quot;git rebase --continue&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The subcommand in &quot;git remote&quot; to remove a defined remote was
&quot;rm&quot; and the command did not take a fully-spelled &quot;remove&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The interactive prompt that &quot;git send-email&quot; gives was error prone. It
asked &quot;What e-mail address do you want to use?&quot; with the address it
guessed (correctly) the user would want to use in its prompt,
tempting the user to say &quot;y&quot;. But the response was taken as &quot;No,
please use 'y' as the e-mail address instead&quot;, which is most
certainly not what the user meant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git show --format='%ci'&quot; did not give the timestamp correctly for
commits created without human readable name on the &quot;committer&quot; line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git show --quiet&quot; ought to be a synonym for &quot;git show -s&quot;, but
wasn't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule frotz&quot; was not diagnosed as &quot;frotz&quot; being an unknown
subcommand to &quot;git submodule&quot;; the user instead got a complaint
that &quot;git submodule status&quot; was run with an unknown path &quot;frotz&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git status&quot; honored the ignore=dirty settings in .gitmodules but
&quot;git commit&quot; didn't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; did not give the correct committer timezone in its feed
output due to a typo.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Mon, 22 Oct 2012 07:30:04 +0000</pubDate>
      <dc:date>2012-10-22T07:30:04.722637+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.12.4 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.12.4.txt</link>
      <description>&lt;h1&gt;Git 1.7.12.4 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.12.3&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; over the dumb-http revision walker could segfault when
curl's multi interface was used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It was possible to give specific paths for &quot;asciidoc&quot; and other
tools in the documentation toolchain, but not for &quot;xmlto&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; did not give the correct committer timezone in its feed
output due to a typo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;-Xours&quot; (and similarly -Xtheirs) backend option to &quot;git
merge -s recursive&quot; was ignored for binary files.  Now it is
honored.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;binary&quot; synthetic attribute made &quot;diff&quot; to treat the path as
binary, but not &quot;merge&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains many documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 18 Oct 2012 07:30:04 +0000</pubDate>
      <dc:date>2012-10-18T07:30:04.387439+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.12.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.12.3.txt</link>
      <description>&lt;h1&gt;Git 1.7.12.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.12.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; mishandled a patch attached as application/octet-stream
(e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not
honored correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It was unclear in the documentation for &quot;git blame&quot; that it is
unnecessary for users to use the &quot;--follow&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A repository created with &quot;git clone --single&quot; had its fetch
refspecs set up just like a clone without &quot;--single&quot;, leading the
subsequent &quot;git fetch&quot; to slurp all the other branches, defeating
the whole point of specifying &quot;only this branch&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; over http had an old workaround for an unlikely server
misconfiguration; it turns out that this hurts debuggability of the
configuration in general, and has been reverted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; over http advertised that it supports &quot;deflate&quot;, which
is much less common, and did not advertise the more common &quot;gzip&quot; on
its Accept-Encoding header.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git receive-pack&quot; (the counterpart to &quot;git push&quot;) did not give
progress output while processing objects it received to the puser
when run over the smart-http protocol.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git status&quot; honored the ignore=dirty settings in .gitmodules but
&quot;git commit&quot; didn't.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains a handful of documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 09 Oct 2012 07:30:06 +0000</pubDate>
      <dc:date>2012-10-09T07:30:06.257977+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.12.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.12.2.txt</link>
      <description>&lt;h1&gt;Git 1.7.12.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.12.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When &quot;git am&quot; is fed an input that has multiple &quot;Content-type: ...&quot;
header, it did not grok charset= attribute correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even during a conflicted merge, &quot;git blame $path&quot; always meant to
blame uncommitted changes to the &quot;working tree&quot; version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git blame MAKEFILE&quot; run in a history that has &quot;Makefile&quot; but not
&quot;MAKEFILE&quot; should say &quot;No such file MAKEFILE in HEAD&quot;, but got
confused on a case insensitive filesystem and failed to do so.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch --all&quot;, when passed &quot;--no-tags&quot;, did not honor the
&quot;--no-tags&quot; option while fetching from individual remotes (the same
issue existed with &quot;--tags&quot;, but combination &quot;--all --tags&quot; makes
much less sense than &quot;--all --no-tags&quot;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log/diff/format-patch --stat&quot; showed the &quot;N line(s) added&quot;
comment in user's locale and caused careless submitters to send
patches with such a line in them to projects whose project language
is not their language, mildly irritating others. Localization to
the line has been disabled for now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --all-match --grep=A --grep=B&quot; ought to show commits that
mention both A and B, but when these three options are used with
--author or --committer, it showed commits that mention either A or
B (or both) instead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The subcommand to remove the definition of a remote in &quot;git remote&quot;
was named &quot;rm&quot; even though all other subcommands were spelled out.
Introduce &quot;git remote remove&quot; to remove confusion, and keep &quot;rm&quot; as
a backward compatible synonym.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains a handful of documentation updates.&lt;/p&gt;
</description>
      <pubDate>Mon, 01 Oct 2012 07:30:05 +0000</pubDate>
      <dc:date>2012-10-01T07:30:05+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.12.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.12.1.txt</link>
      <description>&lt;h1&gt;Git 1.7.12.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.12&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply -p0&quot; did not parse pathnames on &quot;diff --git&quot; line
correctly.  This caused patches that had pathnames in no other
places to be mistakenly rejected (most notably, binary patch that
does not rename nor change mode).  Textual patches, renames or mode
changes have preimage and postimage pathnames in different places
in a form that can be parsed unambiguously and did not suffer from
this problem.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cherry-pick A C B&quot; used to replay changes in A and then B and
then C if these three commits had committer timestamps in that
order, which is not what the user who said &quot;A C B&quot; naturally
expects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit --amend&quot; let the user edit the log message and then
died when the human-readable committer name was given
insufficiently by getpwent(3).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some capabilities were asked by fetch-pack even when upload-pack
did not advertise that they are available.  fetch-pack has been
fixed not to do so.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff&quot; had a confusion between taking data from a path in the
working tree and taking data from an object that happens to have
name 0{40} recorded in a tree.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git for-each-ref&quot; did not correctly support more than one --sort
option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log ..&quot; errored out saying it is both rev range and a path
when there is no disambiguating &quot;--&quot; is on the command line.
Update the command line parser to interpret &quot;..&quot; as a path in such
a case.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;--topo-order&quot;, &quot;--date-order&quot; (and the lack of either means
the default order) options to &quot;rev-list&quot; and &quot;log&quot; family of
commands were poorly described in the documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git prune&quot; without &quot;-v&quot; used to warn about leftover temporary
files (which is an indication of an earlier aborted operation).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pushing to smart HTTP server with recent Git fails without having
the username in the URL to force authentication, if the server is
configured to allow GET anonymously, while requiring authentication
for POST.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The reflog entries left by &quot;git rebase&quot; and &quot;git rebase -i&quot; were
inconsistent (the interactive one gave an abbreviated object name).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git push&quot; triggered the automatic gc on the receiving end, a
message from &quot;git prune&quot; that said it was removing cruft leaked to
the standard output, breaking the communication protocol.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git show --quiet&quot; ought to be a synonym for &quot;git show -s&quot;, but
wasn't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git show --format='%ci'&quot; did not give timestamp correctly for
commits created without human readable name on &quot;committer&quot; line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git send-email&quot; did not unquote encoded words that appear on the
header correctly, and lost &quot;_&quot; from strings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The interactive prompt &quot;git send-email&quot; gives was error prone. It
asked &quot;What e-mail address do you want to use?&quot; with the address it
guessed (correctly) the user would want to use in its prompt,
tempting the user to say &quot;y&quot;. But the response was taken as &quot;No,
please use 'y' as the e-mail address instead&quot;, which is most
certainly not what the user meant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; when used with PATH_INFO failed to notice directories with
SP (and other characters that need URL-style quoting) in them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When the user gives an argument that can be taken as both a
revision name and a pathname without disambiguating with &quot;--&quot;, we
used to give a help message &quot;Use '--' to separate&quot;.  The message
has been clarified to show where that '--' goes on the command
line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When the user exports a non-default IFS without HT, scripts that
rely on being able to parse &quot;ls-files -s | while read a b c...&quot;
started to fail.  Protect them from such a misconfiguration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The attribute system may be asked for a path that itself or its
leading directories no longer exists in the working tree, and it is
fine if we cannot open .gitattribute file in such a case.  Failure
to open per-directory .gitattributes with error status other than
ENOENT and ENOTDIR should be diagnosed, but it wasn't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After &quot;gitk&quot; showed the contents of a tag, neither &quot;Reread
references&quot; nor &quot;Reload&quot; did not update what is shown as the
contents of it, when the user overwrote the tag with &quot;git tag -f&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;ciabot&quot; script (in contrib/) has been updated with extensive
documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git-jump&quot; script (in contrib/) did not work well when
diff.noprefix or diff.mnemonicprefix is in effect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Older parts of the documentation described as if having a regular
file in .git/refs/ hierarchy were the only way to have branches and
tags, which is not true for quite some time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A utility shell function test_seq has been added as a replacement
for the 'seq' utility found on some platforms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compatibility wrapper to learn the maximum number of file
descriptors we can open around sysconf(_SC_OPEN_MAX) and
getrlimit(RLIMIT_NO_FILE) has been introduced for portability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We used curl_easy_strerror() without checking version of cURL,
breaking the build for versions before curl 7.12.0.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code to work around MacOS X UTF-8 gotcha has been cleaned up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fallback 'getpass' implementation made unportable use of stdio API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;--rebase&quot; option to &quot;git pull&quot; can be abbreviated to &quot;-r&quot;,
but we didn't document it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It was generally understood that &quot;--long-option&quot;s to many of our
subcommands can be abbreviated to the unique prefix, but it was not
easy to find it described for new readers of the documentation set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The synopsis said &quot;checkout [-B branch]&quot; to make it clear the
branch name is a parameter to the option, but the heading for the
option description was &quot;-B::&quot;, not &quot;-B branch::&quot;, making the
documentation misleading.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains numerous documentation updates.&lt;/p&gt;
</description>
      <pubDate>Wed, 19 Sep 2012 06:30:04 +0000</pubDate>
      <dc:date>2012-09-19T06:30:04.374585+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.12 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.12.txt</link>
      <description>&lt;h1&gt;Git v1.7.12 Release Notes&lt;/h1&gt;

&lt;h2&gt;Updates since v1.7.11&lt;/h2&gt;

&lt;p&gt;UI, Workflows &amp;amp; Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Git can be told to normalize pathnames it read from readdir(3) and
all arguments it got from the command line into precomposed UTF-8
(assuming that they come as decomposed UTF-8), in order to work
around issues on Mac OS.&lt;/p&gt;

&lt;p&gt;I think there still are other places that need conversion
(e.g. paths that are read from stdin for some commands), but this
should be a good first step in the right direction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Per-user $HOME/.gitconfig file can optionally be stored in
$HOME/.config/git/config instead, which is in line with XDG.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The value of core.attributesfile and core.excludesfile default to
$HOME/.config/git/attributes and $HOME/.config/git/ignore respectively
when these files exist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Logic to disambiguate abbreviated object names have been taught to
take advantage of object types that are expected in the context,
e.g. XXXXXX in the &quot;git describe&quot; output v1.2.3-gXXXXXX must be a
commit object, not a blob nor a tree.  This will help us prolong
the lifetime of abbreviated object names.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply&quot; learned to wiggle the base version and perform three-way
merge when a patch does not exactly apply to the version you have.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scripted Porcelain writers now have access to the credential API via
the &quot;git credential&quot; plumbing command.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git help&quot; used to always default to &quot;man&quot; format even on platforms
where &quot;man&quot; viewer is not widely available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clone --local $path&quot; started its life as an experiment to
optionally use link/copy when cloning a repository on the disk, but
we didn't deprecate it after we made the option a no-op to always
use the optimization.  The command learned &quot;--no-local&quot; option to
turn this off, as a more explicit alternative over use of file://
URL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; and friends used to say &quot;remote side hung up
unexpectedly&quot; when they failed to get response they expect from the
other side, but one common reason why they don't get expected
response is that the remote repository does not exist or cannot be
read. The error message in this case was updated to give better
hints to the user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git help -w $cmd&quot; can show HTML version of documentation for
&quot;git-$cmd&quot; by setting help.htmlpath to somewhere other than the
default location where the build procedure installs them locally;
the variable can even point at a http:// URL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase [-i] --root $tip&quot; can now be used to rewrite all the
history leading to &quot;$tip&quot; down to the root commit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase -i&quot; learned &quot;-x &lt;cmd&gt;&quot; to insert &quot;exec &lt;cmd&gt;&quot; after
each commit in the resulting history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git status&quot; gives finer classification to various states of paths
in conflicted state and offer advice messages in its output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule&quot; learned to deal with nested submodule structure
where a module is contained within a module whose origin is
specified as a relative URL to its superproject's origin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A rather heavy-ish &quot;git completion&quot; script has been split to create
a separate &quot;git prompting&quot; script, to help lazy-autoloading of the
completion part while making prompting part always available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; pays attention to various forms of credits that are
similar to &quot;Signed-off-by:&quot; lines in the commit objects and
highlights them accordingly.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Foreign Interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;mediawiki&quot; remote helper (in contrib/) learned to handle file
attachments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot; now uses &quot;Jobs:&quot; and &quot;p4 move&quot; when appropriate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;vcs-svn has been updated to clean-up compilation, lift 32-bit
limitations, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Performance, Internal Implementation, etc. (please report possible regressions)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Some tests showed false failures caused by a bug in ecryptofs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We no longer use AsciiDoc7 syntax in our documentation and favor a
more modern style.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am --rebasing&quot; codepath was taught to grab authorship, log
message and the patch text directly out of existing commits.  This
will help rebasing commits that have confusing &quot;diff&quot; output in
their log messages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git index-pack&quot; and &quot;git pack-objects&quot; use streaming API to read
from the object store to avoid having to hold a large blob object
in-core while they are doing their thing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code to match paths with exclude patterns learned to avoid calling
fnmatch() by comparing fixed leading substring literally when
possible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -n 1 -- rarely-touched-path&quot; was spending unnecessary
cycles after showing the first change to find the next one, only to
discard it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git svn&quot; got a large-looking code reorganization at the last
minute before the code freeze.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor documentation updates and code clean-ups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.7.11&lt;/h2&gt;

&lt;p&gt;Unless otherwise noted, all the fixes since v1.7.11 in the maintenance
releases are contained in this release (see release notes to them for
details).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule add&quot; was confused when the superproject did not have
its repository in its usual place in the working tree and GIT_DIR
and GIT_WORK_TREE was used to access it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit --amend&quot; let the user edit the log message and then died
when the human-readable committer name was given insufficiently by
getpwent(3).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Tue, 21 Aug 2012 06:30:04 +0000</pubDate>
      <dc:date>2012-08-21T06:30:04.940392+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.11.5 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.11.5.txt</link>
      <description>&lt;h1&gt;Git v1.7.11.5 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.11.4&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The Makefile rule to create assembly output (primarily for
debugging purposes) did not create it next to the source.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The code to avoid mistaken attempt to add the object directory
itself as its own alternate could read beyond end of a string while
comparison.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On some architectures, &quot;block-sha1&quot; did not compile correctly
when compilers inferred alignment guarantees from our source we
did not intend to make.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When talking to a remote running ssh on IPv6 enabled host, whose
address is spelled as &quot;[HOST]:PORT&quot;, we did not parse the address
correctly and failed to connect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git-blame.el (in compat/) have been updated to use Elisp more
correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout &lt;branchname&gt;&quot; to come back from a detached HEAD state
incorrectly computed reachability of the detached HEAD, resulting
in unnecessary warnings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mergetool&quot; did not support --tool-help option to give the list
of supported backends, like &quot;git difftool&quot; does.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep&quot; stopped spawning an external &quot;grep&quot; long time ago, but a
duplicated test to check internal and external &quot;grep&quot; was left
behind.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor typofixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 16 Aug 2012 14:30:03 +0000</pubDate>
      <dc:date>2012-08-16T14:30:03.404735+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.11.4 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.11.4.txt</link>
      <description>&lt;h1&gt;Git v1.7.11.4 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.11.3&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;$GIT_DIR/COMMIT_EDITMSG&quot; file that is used to hold the commit log
message user edits was not documented.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The advise() function did not use varargs correctly to format
its message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git am&quot; failed, old timers knew to check .git/rebase-apply/patch
to see what went wrong, but we never told the users about it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit-tree&quot; learned a more natural &quot;-p &lt;parent&gt; &lt;tree&gt;&quot; order
of arguments long time ago, but recently forgot it by mistake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff --no-ext-diff&quot; did not output anything for a typechange
filepair when GIT_EXTERNAL_DIFF is in effect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In 1.7.9 era, we taught &quot;git rebase&quot; about the raw timestamp format
but we did not teach the same trick to &quot;filter-branch&quot;, which rolled
a similar logic on its own.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git submodule add&quot; clones a submodule repository, it can get
confused where to store the resulting submodule repository in the
superproject's .git/ directory when there is a symbolic link in the
path to the current directory.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor typofixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 31 Jul 2012 06:30:06 +0000</pubDate>
      <dc:date>2012-07-31T06:30:06.47121+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.11.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.11.3.txt</link>
      <description>&lt;h1&gt;Git v1.7.11.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.11.3&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The error message from &quot;git push $there :bogo&quot; (and its equivalent
&quot;git push $there --delete bogo&quot;) mentioned that we tried and failed
to guess what ref is being deleted based on the LHS of the refspec,
which we don't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A handful of files and directories we create had tighter than
necessary permission bits when the user wanted to have group
writability (e.g. by setting &quot;umask 002&quot;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;commit --amend&quot; used to refuse amending a commit with an empty log
message, with or without &quot;--allow-empty-message&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit --amend --only --&quot; was meant to allow &quot;Clever&quot; people to
rewrite the commit message without making any change even when they
have already changes for the next commit added to their index, but
it never worked as advertised since it was introduced in 1.3.0 era.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even though the index can record pathnames longer than 1&amp;lt;&amp;lt;12 bytes,
in some places we were not comparing them in full, potentially
replacing index entries instead of adding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git show&quot;'s auto-walking behaviour was an unreliable and
unpredictable hack; it now behaves just like &quot;git log&quot; does when it
walks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff&quot;, &quot;git status&quot; and anything that internally uses the
comparison machinery was utterly broken when the difference
involved a file with &quot;-&quot; as its name.  This was due to the way &quot;git
diff --no-index&quot; was incorrectly bolted on to the system, making
any comparison that involves a file &quot;-&quot; at the root level
incorrectly read from the standard input.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We did not have test to make sure &quot;git rebase&quot; without extra options
filters out an empty commit in the original history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fast-export&quot; produced an input stream for fast-import without
properly quoting pathnames when they contain SPs in them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout --detach&quot;, when you are still on an unborn branch,
should be forbidden, but it wasn't.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some implementations of Perl terminates &quot;lines&quot; with CRLF even when
the script is operating on just a sequence of bytes.  Make sure to
use &quot;$PERL_PATH&quot;, the version of Perl the user told Git to use, in
our tests to avoid unnecessary breakages in tests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor typofixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Mon, 23 Jul 2012 06:30:05 +0000</pubDate>
      <dc:date>2012-07-23T06:30:05.122121+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.11.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.11.2.txt</link>
      <description>&lt;h1&gt;Git v1.7.11.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.11.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On Cygwin, the platform pread(2) is not thread safe, just like our
own compat/ emulation, and cannot be used in the index-pack
program.  Makefile variable NO_THREAD_SAFE_PREAD can be defined to
avoid use of this function in a threaded program.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git add&quot; allows adding a regular file to the path where a
submodule used to exist, but &quot;git update-index&quot; does not allow an
equivalent operation to Porcelain writers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; incorrectly computed the header checksum; the symptom
was observed only when using pathnames with hi-bit set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git blame&quot; did not try to make sure that the abbreviated commit
object names in its output are unique.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Running &quot;git bundle verify&quot; on a bundle that records a complete
history said &quot;it requires these 0 commits&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clone --single-branch&quot; to clone a single branch did not limit
the cloning to the specified branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff --no-index&quot; did not correctly handle relative paths and
did not correctly give exit codes when run under &quot;--quiet&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff --no-index&quot; did not work with pagers correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff COPYING HEAD:COPYING&quot; gave a nonsense error message that
claimed that the treeish HEAD did not have COPYING in it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git log&quot; gets &quot;--simplify-merges/by-decoration&quot; together with
&quot;--first-parent&quot;, the combination of these options makes the
simplification logic to use in-core commit objects that haven't
been examined for relevance, either producing incorrect result or
taking too long to produce any output.  Teach the simplification
logic to ignore commits that the first-parent traversal logic
ignored when both are in effect to work around the issue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git ls-files --exclude=t -i&quot; did not consider anything under t/ as
excluded, as it did not pay attention to exclusion of leading paths
while walking the index.  Other two users of excluded() are also
updated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git request-pull $url dev&quot; when the tip of &quot;dev&quot; branch was tagged
with &quot;ext4-for-linus&quot; used the contents from the tag in the output
but still asked the &quot;dev&quot; branch to be pulled, not the tag.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor typofixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 12 Jul 2012 06:30:04 +0000</pubDate>
      <dc:date>2012-07-12T06:30:04.441096+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.11.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.11.1.txt</link>
      <description>&lt;h1&gt;Git v1.7.11.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.11&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The cross links in the HTML version of manual pages were broken.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor typofixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Fri, 22 Jun 2012 06:30:04 +0000</pubDate>
      <dc:date>2012-06-22T06:30:04.123866+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.11 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.11.txt</link>
      <description>&lt;h1&gt;Git v1.7.11 Release Notes&lt;/h1&gt;

&lt;h2&gt;Updates since v1.7.10&lt;/h2&gt;

&lt;p&gt;UI, Workflows &amp;amp; Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A new mode for push, &quot;simple&quot;, which is a cross between &quot;current&quot;
and &quot;upstream&quot;, has been introduced. &quot;git push&quot; without any refspec
will push the current branch out to the same name at the remote
repository only when it is set to track the branch with the same
name over there.  The plan is to make this mode the new default
value when push.default is not configured.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A couple of commands learned the &quot;--column&quot; option to produce
columnar output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A third-party tool &quot;git subtree&quot; is distributed in contrib/&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A remote helper that acts as a proxy and caches ssl session for the
https:// transport is added to the contrib/ area.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Error messages given when @{u} is used for a branch without its
upstream configured have been clarified.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even with the &quot;-q&quot;uiet option, &quot;checkout&quot; used to report setting up
tracking.  Also &quot;branch&quot; learned the &quot;-q&quot;uiet option to squelch
informational message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your build platform may support hardlinks but you may prefer not to
use them, e.g. when installing to DESTDIR to make a tarball and
untarring on a filesystem that has poor support for hardlinks.
There is a Makefile option NO_INSTALL_HARDLINKS for you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The smart-http backend used to always override GIT_COMMITTER_*
variables with REMOTE_USER and REMOTE_ADDR, but these variables are
now preserved when set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; learned the &quot;--include&quot; option, which is an opposite of
existing the &quot;--exclude&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git am -3&quot; needs to fall back to an application of the patch
to a synthesized preimage followed by a 3-way merge, the paths that
needed such treatment are now reported to the end user, so that the
result in them can be eyeballed with extra care.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The output from &quot;diff/log --stat&quot; used to always allocate 4 columns
to show the number of modified lines, but not anymore.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git difftool&quot; learned the &quot;--dir-diff&quot; option to spawn external
diff tools that can compare two directory hierarchies at a time
after populating two temporary directories, instead of running an
instance of the external tool once per a file pair.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;fmt-merge-msg&quot; command learned to list the primary contributors
involved in the side topic you are merging in a comment in the merge
commit template.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase&quot; learned to optionally keep commits that do not
introduce any change in the original history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push --recurse-submodules&quot; learned to optionally look into the
histories of submodules bound to the superproject and push them
out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A 'snapshot' request to &quot;gitweb&quot; honors If-Modified-Since: header,
based on the commit date.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; learned to highlight the patch it outputs even more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Foreign Interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git svn&quot; used to die with unwanted SIGPIPE when talking with an HTTP
server that uses keep-alive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git svn&quot; learned to use platform specific authentication
providers, e.g. gnome-keyring, kwallet, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot; has been moved out of the contrib/ area and has seen more
work on importing labels as tags from (and exporting tags as labels
to) p4.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Performance and Internal Implementation (please report possible regressions)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Bash completion script (in contrib/) have been cleaned up to make
future work on it simpler.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An experimental &quot;version 4&quot; format of the index file has been
introduced to reduce on-disk footprint and I/O overhead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; learned to produce its output without reading the
blob object it writes out in memory in its entirety.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git index-pack&quot; that runs when fetching or pushing objects to
complete the packfile on the receiving end learned to use multiple
threads to do its job when available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The code to compute hash values for lines used by the internal diff
engine was optimized on little-endian machines, using the same
trick the kernel folks came up with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply&quot; had some memory leaks plugged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setting up a revision traversal with many starting points was
inefficient as these were placed in a date-order priority queue
one-by-one.  Now they are collected in the queue unordered first,
and sorted immediately before getting used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;More lower-level commands learned to use the streaming API to read
from the object store without keeping everything in core.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The weighting parameters to suggestion command name typo have been
tweaked, so that &quot;git tags&quot; will suggest &quot;tag?&quot; and not &quot;stage?&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Because &quot;sh&quot; on the user's PATH may be utterly broken on some
systems, run-command API now uses SHELL_PATH, not /bin/sh, when
spawning an external command (not applicable to Windows port).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The API to iterate over the refs/ hierarchy has been tweaked to
allow walking only a subset of it more efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor documentation updates and code clean-ups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.7.10&lt;/h2&gt;

&lt;p&gt;Unless otherwise noted, all the fixes since v1.7.10 in the maintenance
releases are contained in this release (see release notes to them for
details).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule init&quot; used to report &quot;registered for path ...&quot;
even for submodules that were registered earlier.
(cherry-pick c1c259e jl/submodule-report-new-path-once later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff --stat&quot; used to fully count a binary file with modified
execution bits whose contents is unmodified, which was not quite
right.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Mon, 18 Jun 2012 06:30:04 +0000</pubDate>
      <dc:date>2012-06-18T06:30:04.162534+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.10.4 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.10.4.txt</link>
      <description>&lt;h1&gt;Git v1.7.10.4 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.10.3&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The message file for Swedish translation has been updated a bit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A name taken from mailmap was copied into an internal buffer
incorrectly and could overun the buffer if it is too long.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A malformed commit object that has a header line chomped in the
middle could kill git with a NULL pointer dereference.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An author/committer name that is a single character was mishandled
as an invalid name by mistake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The progress indicator for a large &quot;git checkout&quot; was sent to
stderr even if it is not a terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep -e '$pattern'&quot;, unlike the case where the patterns are
read from a file, did not treat individual lines in the given
pattern argument as separate regular expressions as it should.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git rebase&quot; was given a bad commit to replay the history on,
its error message did not correctly give the command line argument
it had trouble parsing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Mon, 04 Jun 2012 06:30:04 +0000</pubDate>
      <dc:date>2012-06-04T06:30:04+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.10.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.10.3.txt</link>
      <description>&lt;h1&gt;Git v1.7.10.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.10.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The message file for German translation has been updated a bit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Running &quot;git checkout&quot; on an unborn branch used to corrupt HEAD.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When checking out another commit from an already detached state, we
used to report all commits that are not reachable from any of the
refs as lossage, but some of them might be reachable from the new
HEAD, and there is no need to warn about them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some time ago, &quot;git clone&quot; lost the progress output for its
&quot;checkout&quot; phase; when run without any &quot;--quiet&quot; option, it should
give progress to the lengthy operation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The directory path used in &quot;git diff --no-index&quot;, when it recurses
down, was broken with a recent update after v1.7.10.1 release.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;log -z --pretty=tformat:...&quot; did not terminate each record with
NUL.  The fix is not entirely correct when the output also asks for
--patch and/or --stat, though.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The DWIM behaviour for &quot;log --pretty=format:%gd -g&quot; was somewhat
broken and gave undue precedence to configured log.date, causing
&quot;git stash list&quot; to show &quot;stash@{time stamp string}&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git status --porcelain&quot; ignored &quot;--branch&quot; option by mistake.  The
output for &quot;git status --branch -z&quot; was also incorrect and did not
terminate the record for the current branch name with NUL as asked.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When a submodule repository uses alternate object store mechanism,
some commands that were started from the superproject did not
notice it and failed with &quot;No such object&quot; errors.  The subcommands
of &quot;git submodule&quot; command that recursed into the submodule in a
separate process were OK; only the ones that cheated and peeked
directly into the submodule's repository from the primary process
were affected.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Sat, 26 May 2012 06:30:04 +0000</pubDate>
      <dc:date>2012-05-26T06:30:04.226202+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.10.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.10.2.txt</link>
      <description>&lt;h1&gt;Git v1.7.10.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.10.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The test scaffolding for git-daemon was flaky.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The test scaffolding for fast-import was flaky.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The filesystem boundary was not correctly reported when .git directory
discovery stopped at a mount point.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTTP transport that requires authentication did not work correctly when
multiple connections are used simultaneously.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Minor memory leak during unpack_trees (hence &quot;merge&quot; and &quot;checkout&quot;
to check out another branch) has been plugged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the older days, the header &quot;Conflicts:&quot; in &quot;cherry-pick&quot; and &quot;merge&quot;
was separated by a blank line from the list of paths that follow for
readability, but when &quot;merge&quot; was rewritten in C, we lost it by
mistake. Remove the newline from &quot;cherry-pick&quot; to make them match
again.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The command line parser choked &quot;git cherry-pick $name&quot; when $name can
be both revision name and a pathname, even though $name can never be a
path in the context of the command.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;include.path&quot; facility in the configuration mechanism added in
1.7.10 forgot to interpret &quot;~/path&quot; and &quot;~user/path&quot; as it should.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git config --rename-section&quot; to rename an existing section into a
bogus one did not check the new name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;diff --no-index&quot; codepath used limited-length buffers, risking
pathnames getting truncated.  Update it to use the strbuf API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The report from &quot;git fetch&quot; said &quot;new branch&quot; even for a non branch
ref.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The http-backend (the server side of the smart http transfer) used
to overwrite GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL with the
value obtained from REMOTE_USER unconditionally, making it
impossible for the server side site-specific customization to use
different identity sources to affect the names logged. It now uses
REMOTE_USER only as a fallback value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;log --graph&quot; was not very friendly with &quot;--stat&quot; option and its
output had line breaks at wrong places.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Octopus merge strategy did not reduce heads that are recorded in the
final commit correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push&quot; over smart-http lost progress output a few releases ago;
this release resurrects it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The error and advice messages given by &quot;git push&quot; when it fails due
to non-ff were not very helpful to new users; it has been broken
into three cases, and each is given a separate advice message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The insn sheet given by &quot;rebase -i&quot; did not make it clear that the
insn lines can be re-ordered to affect the order of the commits in
the resulting history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git repack&quot; used to write out unreachable objects as loose objects
when repacking, even if such loose objects will immediately pruned
due to its age.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A contrib script &quot;rerere-train&quot; did not work out of the box unless
user futzed with her $PATH.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rev-parse --show-prefix&quot; used to emit nothing when run at the
top-level of the working tree, but now it gives a blank line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The i18n of error message &quot;git stash save&quot; was not properly done.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule&quot; used a sed script that some platforms mishandled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When using a Perl script on a system where &quot;perl&quot; found on user's
$PATH could be ancient or otherwise broken, we allow builders to
specify the path to a good copy of Perl with $PERL_PATH.  The
gitweb test forgot to use that Perl when running its test.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Sat, 12 May 2012 06:30:06 +0000</pubDate>
      <dc:date>2012-05-12T06:30:06.15449+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.10.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.10.1.txt</link>
      <description>&lt;h1&gt;Git v1.7.10.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Additions since v1.7.10&lt;/h2&gt;

&lt;p&gt;Localization message files for Danish and German have been added.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.7.10&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git add -p&quot; is not designed to deal with unmerged paths but did
not exclude them and tried to apply funny patches only to fail.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git blame&quot; started missing quite a few changes from the origin
since we stopped using the diff minimalization by default in v1.7.2
era.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When PATH contains an unreadable directory, alias expansion code
did not kick in, and failed with an error that said &quot;git-subcmd&quot;
was not found.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clean -d -f&quot; (not &quot;-d -f -f&quot;) is supposed to protect nested
working trees of independent git repositories that exist in the
current project working tree from getting removed, but the
protection applied only to such working trees that are at the
top-level of the current project by mistake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit --author=$name&quot; did not tell the name that was being
recorded in the resulting commit to hooks, even though it does do
so when the end user overrode the authorship via the
&quot;GIT_AUTHOR_NAME&quot; environment variable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git commit --template F&quot; errors out because the user did not
touch the message, it claimed that it aborts due to &quot;empty
message&quot;, which was utterly wrong.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The regexp configured with diff.wordregex was incorrectly reused
across files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An age-old corner case bug in combine diff (only triggered with -U0
and the hunk at the beginning of the file needs to be shown) has
been fixed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rename detection logic used to match two empty files as renames
during merge-recursive, leading to unnatural mismerges.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The parser in &quot;fast-import&quot; did not diagnose &quot;:9&quot; style references
that is not followed by required SP/LF as an error.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git fetch&quot; encounters repositories with too many references,
the command line of &quot;fetch-pack&quot; that is run by a helper
e.g. remote-curl, may fail to hold all of them. Now such an
internal invocation can feed the references through the standard
input of &quot;fetch-pack&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; that recurses into submodules on demand did not check
if it needs to go into submodules when non branches (most notably,
tags) are fetched.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;log -p --graph&quot; used with &quot;--stat&quot; had a few formatting error.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Running &quot;notes merge --commit&quot; failed to perform correctly when run
from any directory inside $GIT_DIR/.  When &quot;notes merge&quot; stops with
conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits
to resolve it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The 'push to upstream' implementation was broken in some corner
cases. &quot;git push $there&quot; without refspec, when the current branch
is set to push to a remote different from $there, used to push to
$there using the upstream information to a remote unreleated to
$there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Giving &quot;--continue&quot; to a conflicted &quot;rebase -i&quot; session skipped a
commit that only results in changes to submodules.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Mon, 07 May 2012 22:30:04 +0000</pubDate>
      <dc:date>2012-05-07T22:30:04.36864+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.10 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.10.txt</link>
      <description>&lt;h1&gt;Git v1.7.10 Release Notes&lt;/h1&gt;

&lt;h2&gt;Compatibility Notes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;From this release on, the &quot;git merge&quot; command in an interactive
session will start an editor when it automatically resolves the
merge for the user to explain the resulting commit, just like the
&quot;git commit&quot; command does when it wasn't given a commit message.&lt;/p&gt;

&lt;p&gt;If you have a script that runs &quot;git merge&quot; and keeps its standard
input and output attached to the user's terminal, and if you do not
want the user to explain the resulting merge commits, you can
export GIT_MERGE_AUTOEDIT environment variable set to &quot;no&quot;, like
this:&lt;/p&gt;

&lt;p&gt; #!/bin/sh
 GIT_MERGE_AUTOEDIT=no
 export GIT_MERGE_AUTOEDIT&lt;/p&gt;

&lt;p&gt;to disable this behavior (if you want your users to explain their
merge commits, you do not have to do anything).  Alternatively, you
can give the &quot;--no-edit&quot; option to individual invocations of the
&quot;git merge&quot; command if you know everybody who uses your script has
Git v1.7.8 or newer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;--binary/-b&quot; options to &quot;git am&quot; have been a no-op for quite a
while and were deprecated in mid 2008 (v1.6.0).  When you give these
options to &quot;git am&quot;, it will now warn and ask you not to use them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you do not tell which branches and tags to push to the &quot;git
push&quot; command in any way, the command used &quot;matching refs&quot; rule to
update remote branches and tags with branches and tags with the
same name you locally have.  In future versions of Git, this will
change to push out only your current branch according to either the
&quot;upstream&quot; or the &quot;current&quot; rule.  Although &quot;upstream&quot; may be more
powerful once the user understands Git better, the semantics
&quot;current&quot; gives is simpler and easier to understand for beginners
and may be a safer and better default option.  We haven't decided
yet which one to switch to.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Updates since v1.7.9&lt;/h2&gt;

&lt;p&gt;UI, Workflows &amp;amp; Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;various &quot;gitk&quot; updates.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;show the path to the top level directory in the window title&lt;/li&gt;
&lt;li&gt;update preference edit dialog&lt;/li&gt;
&lt;li&gt;display file list correctly when directories are given on command line&lt;/li&gt;
&lt;li&gt;make &quot;git-describe&quot; output in the log message into a clickable link&lt;/li&gt;
&lt;li&gt;avoid matching the UNIX timestamp part when searching all fields&lt;/li&gt;
&lt;li&gt;give preference to symbolic font names like sans &amp;amp; monospace&lt;/li&gt;
&lt;li&gt;allow comparing two commits using a mark&lt;/li&gt;
&lt;li&gt;&quot;gitk&quot; honors log.showroot configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Teams for localizing the messages from the Porcelain layer of
commands are starting to form, thanks to Jiang Xin who volunteered
to be the localization coordinator.  Translated messages for
simplified Chinese, Swedish and Portuguese are available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The configuration mechanism learned an &quot;include&quot; facility; an
assignment to the include.path pseudo-variable causes the named
file to be included in-place when Git looks up configuration
variables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A content filter (clean/smudge) used to be just a way to make the
recorded contents &quot;more useful&quot;, and allowed to fail; a filter can
now optionally be marked as &quot;required&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Options whose names begin with &quot;--no-&quot; (e.g. the &quot;--no-verify&quot;
option of the &quot;git commit&quot; command) can be negated by omitting
&quot;no-&quot; from its name, e.g. &quot;git commit --verify&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; learned to pass &quot;-b&quot; option to underlying &quot;git mailinfo&quot;, so
that a bracketed string other than &quot;PATCH&quot; at the beginning can be kept.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clone&quot; learned &quot;--single-branch&quot; option to limit cloning to a
single branch (surprise!); tags that do not point into the history
of the branch are not fetched.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clone&quot; learned to detach the HEAD in the resulting repository
when the user specifies a tag with &quot;--branch&quot; (e.g., &quot;--branch=v1.0&quot;).
Clone also learned to print the usual &quot;detached HEAD&quot; advice in such
a case, similar to &quot;git checkout v1.0&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When showing a patch while ignoring whitespace changes, the context
lines are taken from the postimage, in order to make it easier to
view the output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff --stat&quot; learned to adjust the width of the output on
wider terminals, and give more columns to pathnames as needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;diff-highlight&quot; filter (in contrib/) was updated to produce more
aesthetically pleasing output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;fsck&quot; learned &quot;--no-dangling&quot; option to omit dangling object
information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log -G&quot; and &quot;git log -S&quot; learned to pay attention to the &quot;-i&quot;
option.  With &quot;-i&quot;, &quot;log -G&quot; ignores the case when finding patch
hunks that introduce or remove a string that matches the given
pattern.  Similarly with &quot;-i&quot;, &quot;log -S&quot; ignores the case when
finding the commit the given block of text appears or disappears
from the file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge&quot; in an interactive session learned to spawn the editor
by default to let the user edit the auto-generated merge message,
to encourage people to explain their merges better. Legacy scripts
can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior.
Both &quot;git merge&quot; and &quot;git pull&quot; can be given --no-edit from the
command line to accept the auto-generated merge message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The advice message given when the user didn't give enough clue on
what to merge to &quot;git pull&quot; and &quot;git merge&quot; has been updated to
be more concise and easier to understand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push&quot; learned the &quot;--prune&quot; option, similar to &quot;git fetch&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The whole directory that houses a top-level superproject managed by
&quot;git submodule&quot; can be moved to another place.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git symbolic-ref&quot; learned the &quot;--short&quot; option to abbreviate the
refname it shows unambiguously.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git tag --list&quot; can be given &quot;--points-at &lt;object&gt;&quot; to limit its
output to those that point at the given object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; allows intermediate entries in the directory hierarchy
that leads to a project to be clicked, which in turn shows the
list of projects inside that directory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; learned to read various pieces of information for the
repositories lazily, instead of reading everything that could be
needed (including the ones that are not necessary for a specific
task).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Project search in &quot;gitweb&quot; shows the substring that matched in the
project name and description highlighted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTTP transport learned to authenticate with a proxy if needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new script &quot;diffall&quot; is added to contrib/; it drives an
external tool to perform a directory diff of two Git revisions
in one go, unlike &quot;difftool&quot; that compares one file at a time.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Foreign Interface&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Improved handling of views, labels and branches in &quot;git-p4&quot; (in contrib).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git-p4&quot; (in contrib) suffered from unnecessary merge conflicts when
p4 expanded the embedded $RCS$-like keywords; it can be now told to
unexpand them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some &quot;git-svn&quot; updates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;vcs-svn&quot;/&quot;svn-fe&quot; learned to read dumps with svn-deltas and
support incremental imports.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git difftool/mergetool&quot; learned to drive DeltaWalker.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Performance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unnecessary calls to parse_object() &quot;git upload-pack&quot; makes in
response to &quot;git fetch&quot;, have been eliminated, to help performance
in repositories with excessive number of refs.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Internal Implementation (please report possible regressions)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Recursive call chains in &quot;git index-pack&quot; to deal with long delta
chains have been flattened, to reduce the stack footprint.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use of add_extra_ref() API is now gone, to make it possible to
cleanly restructure the overall refs API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The command line parser of &quot;git pack-objects&quot; now uses parse-options
API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The test suite supports the new &quot;test_pause&quot; helper function.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parallel to the test suite, there is a beginning of performance
benchmarking framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;t/Makefile is adjusted to prevent newer versions of GNU make from
running tests in seemingly random order.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The code to check if a path points at a file beyond a symbolic link
has been restructured to be thread-safe.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When pruning directories that has become empty during &quot;git prune&quot;
and &quot;git prune-packed&quot;, call closedir() that iterates over a
directory before rmdir() it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor documentation updates and code clean-ups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.7.9&lt;/h2&gt;

&lt;p&gt;Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
releases are contained in this release (see release notes to them for
details).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work
with versions of Perl older than 5.8.3.
(merge 5eb660e ab/perl-i18n later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git tag -s&quot; honored &quot;gpg.program&quot; configuration variable since
1.7.9, but &quot;git tag -v&quot; and &quot;git verify-tag&quot; didn't.
(merge a2c2506 az/verify-tag-use-gpg-config later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;configure&quot; script learned to take &quot;--with-sane-tool-path&quot; from the
command line to record SANE_TOOL_PATH (used to avoid broken platform
tools in /usr/bin) in config.mak.autogen.  This may be useful for
people on Solaris who have saner tools outside /usr/xpg[46]/bin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;zsh port of bash completion script needed another workaround.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Sat, 14 Apr 2012 22:30:03 +0000</pubDate>
      <dc:date>2012-04-14T22:30:03.517206+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.9.6 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.9.6.txt</link>
      <description>&lt;h1&gt;Git v1.7.9.6 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.9.5&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&quot;git merge $tag&quot; to merge an annotated tag always opens the editor
during an interactive edit session. v1.7.10 series introduced an
environment variable GIT_MERGE_AUTOEDIT to help older scripts decline
this behaviour, but the maintenance track should also support it.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 03 Apr 2012 14:30:04 +0000</pubDate>
      <dc:date>2012-04-03T14:30:04.236125+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.9.5 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.9.5.txt</link>
      <description>&lt;h1&gt;Git v1.7.9.5 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.9.4&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When &quot;git config&quot; diagnoses an error in a configuration file and
shows the line number for the offending line, it miscounted if the
error was at the end of line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fast-import&quot; accepted &quot;ls&quot; command with an empty path by
mistake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Various new-ish output decoration modes of &quot;git grep&quot; were not
documented in the manual's synopsis section.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &quot;remaining&quot; subcommand to &quot;git rerere&quot; was not documented.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; used to drop warnings in the log file when &quot;heads&quot; view is
accessed in a repository whose HEAD does not point at a valid
branch.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 27 Mar 2012 14:30:03 +0000</pubDate>
      <dc:date>2012-03-27T14:30:03.857425+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.9.4 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.9.4.txt</link>
      <description>&lt;h1&gt;Git v1.7.9.4 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.9.3&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The code to synthesize the fake ancestor tree used by 3-way merge
fallback in &quot;git am&quot; was not prepared to read a patch created with
a non-standard -p&lt;num&gt; value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git bundle&quot; did not record boundary commits correctly when there
are many of them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff-index&quot; and its friends at the plumbing level showed the
&quot;diff --git&quot; header and nothing else for a path whose cached stat
info is dirty without actual difference when asked to produce a
patch. This was a longstanding bug that we could have fixed long
time ago.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; did use quotemeta() to prepare search string when asked to
do a fixed-string project search, but did not use it by mistake and
used the user-supplied string instead.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Tue, 13 Mar 2012 15:30:04 +0000</pubDate>
      <dc:date>2012-03-13T15:30:04.406188+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.9.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.9.3.txt</link>
      <description>&lt;h1&gt;Git v1.7.9.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.9.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&quot;git p4&quot; (in contrib/) submit the changes to a wrong place when the
&quot;--use-client-spec&quot; option is set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The config.mak.autogen generated by optional autoconf support tried
to link the binary with -lintl even when libintl.h is missing from
the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When the filter driver exits before reading the content before the
main git process writes the contents to be filtered to the pipe to
it, the latter could be killed with SIGPIPE instead of ignoring
such an event as an error.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git add --refresh &lt;pathspec&gt;&quot; used to warn about unmerged paths
outside the given pathspec.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The bulk check-in codepath in &quot;git add&quot; streamed contents that
needs smudge/clean filters without running them, instead of punting
and delegating to the codepath to run filters after slurping
everything to core.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git branch --with $that&quot; assumed incorrectly that the user will never
ask the question with nonsense value in $that.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git bundle create&quot; produced a corrupt bundle file upon seeing
commits with excessively long subject line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When a remote helper exits before reading the blank line from the
main git process to signal the end of commands, the latter could be
killed with SIGPIPE. Instead we should ignore such event as a
non-error.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The commit log template given with &quot;git merge --edit&quot; did not have
a short instructive text like what &quot;git commit&quot; gives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rev-list --verify-objects -q&quot; omitted the extra verification
it needs to do over &quot;git rev-list --objects -q&quot; by mistake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; used to drop warnings in the log file when &quot;heads&quot; view is
accessed in a repository whose HEAD does not point at a valid
branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An invalid regular expression pattern given by an end user made
&quot;gitweb&quot; to return garbled response.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:54 +0000</pubDate>
      <dc:date>2012-03-08T09:28:54+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.9.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.9.2.txt</link>
      <description>&lt;h1&gt;Git v1.7.9.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.9.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Bash completion script (in contrib/) did not like a pattern that
begins with a dash to be passed to __git_ps1 helper function.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adaptation of the bash completion script (in contrib/) for zsh
incorrectly listed all subcommands when &quot;git &lt;TAB&gt;&lt;TAB&gt;&quot; was given
to ask for list of porcelain subcommands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The build procedure for profile-directed optimized binary was not
working very well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some systems need to explicitly link -lcharset to get locale_charset().&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;t5541 ignored user-supplied port number used for HTTP server testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The error message emitted when we see an empty loose object was
not phrased correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The code to ask for password did not fall back to the terminal
input when GIT_ASKPASS is set but does not work (e.g. lack of X
with GUI askpass helper).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We failed to give the true terminal width to any subcommand when
they are invoked with the pager, i.e. &quot;git -p cmd&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;map_user() was not rewriting its output correctly, which resulted
in the user visible symptom that &quot;git blame -e&quot; sometimes showed
excess '&gt;' at the end of email addresses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout -b&quot; did not allow switching out of an unborn branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you have both .../foo and .../foo.git, &quot;git clone .../foo&quot; did not
favor the former but the latter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit&quot; refused to create a commit when entries added with
&quot;add -N&quot; remained in the index, without telling Git what their content
in the next commit should be. We should have created the commit without
these paths.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff --stat&quot; said &quot;files&quot;, &quot;insertions&quot;, and &quot;deletions&quot; even
when it is showing one &quot;file&quot;, one &quot;insertion&quot; or one &quot;deletion&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The output from &quot;git diff --stat&quot; for two paths that have the same
amount of changes showed graph bars of different length due to the
way we handled rounding errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep&quot; did not pay attention to -diff (hence -binary) attribute.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The transport programs (fetch, push, clone)ignored --no-progress
and showed progress when sending their output to a terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sometimes error status detected by a check in an earlier phase of
&quot;git receive-pack&quot; (the other end of &quot;git push&quot;) was lost by later
checks, resulting in false indication of success.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rev-list --verify&quot; sometimes skipped verification depending on
the phase of the moon, which dates back to 1.7.8.x series.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search box in &quot;gitweb&quot; did not accept non-ASCII characters correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search interface of &quot;gitweb&quot; did not show multiple matches in the same file
correctly.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:53 +0000</pubDate>
      <dc:date>2012-03-08T09:28:53+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.9.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.9.1.txt</link>
      <description>&lt;h1&gt;Git v1.7.9.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.9&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The makefile allowed environment variable X seep into it result in
command names suffixed with unnecessary strings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The set of included header files in compat/inet-{ntop,pton}
wrappers was updated for Windows some time ago, but in a way that
broke Solaris build.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;rpmbuild noticed an unpackaged but installed *.mo file and failed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Subprocesses spawned from various git programs were often left running
to completion even when the top-level process was killed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git add -e&quot; learned not to show a diff for an otherwise unmodified
submodule that only has uncommitted local changes in the patch
prepared by for the user to edit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Typo in &quot;git branch --edit-description my-tpoic&quot; was not diagnosed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using &quot;git grep -l/-L&quot; together with options -W or --break may not
make much sense as the output is to only count the number of hits
and there is no place for file breaks, but the latter options made
&quot;-l/-L&quot; to miscount the hits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --first-parent $pathspec&quot; did not stay on the first parent
chain and veered into side branch from which the whole change to the
specified paths came.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge --no-edit $tag&quot; failed to honor the --no-edit option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge --ff-only $tag&quot; failed because it cannot record the
required mergetag without creating a merge, but this is so common
operation for branch that is used &lt;em&gt;only&lt;/em&gt; to follow the upstream, so
it was changed to allow fast-forwarding without recording the mergetag.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mergetool&quot; now gives an empty file as the common base version
to the backend when dealing with the &quot;both sides added, differently&quot;
case.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push -q&quot; was not sufficiently quiet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When &quot;git push&quot; fails to update any refs, the client side did not
report an error correctly to the end user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;rebase&quot; and &quot;commit --amend&quot; failed to work on commits with ancient
timestamps near year 1970.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When asking for a tag to be pulled, &quot;request-pull&quot; did not show the
name of the tag prefixed with &quot;tags/&quot;, which would have helped older
clients.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule add $path&quot; forgot to recompute the name to be stored
in .gitmodules when the submodule at $path was once added to the
superproject and already initialized.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Many small corner case bugs on &quot;git tag -n&quot; was corrected.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:51 +0000</pubDate>
      <dc:date>2012-03-08T09:28:51.652107+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.9 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.9.txt</link>
      <description>&lt;h1&gt;Git v1.7.9 Release Notes&lt;/h1&gt;

&lt;h2&gt;Updates since v1.7.8&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;gitk updates accumulated since early 2011.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git-gui updated to 0.16.0.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git-p4 (in contrib/) updates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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 new PO files
in po/ to add new translations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The code to handle username/password for HTTP transactions used in
&quot;git push&quot; &amp;amp; &quot;git fetch&quot; learned to talk &quot;credential API&quot; to
external programs to cache or store them, to allow integration with
platform native keychain mechanisms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The input prompts in the terminal use our own getpass() replacement
when possible. HTTP transactions used to ask for the username without
echoing back what was typed, but with this change you will see it as
you type.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The internals of &quot;revert/cherry-pick&quot; have been tweaked to prepare
building more generic &quot;sequencer&quot; on top of the implementation that
drives them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rev-parse FETCH_HEAD&quot; after &quot;git fetch&quot; without specifying
what to fetch from the command line will now show the commit that
would be merged if the command were &quot;git pull&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git add&quot; learned to stream large files directly into a packfile
instead of writing them into individual loose object files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout -B &lt;current branch&gt; &lt;elsewhere&gt;&quot; is a more intuitive
way to spell &quot;git reset --keep &lt;elsewhere&gt;&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout&quot; and &quot;git merge&quot; learned &quot;--no-overwrite-ignore&quot; option
to tell Git that untracked and ignored files are not expendable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit --amend&quot; learned &quot;--no-edit&quot; option to say that the
user is amending the tree being recorded, without updating the
commit log message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit&quot; and &quot;git reset&quot; 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit&quot; detects and rejects an attempt to stuff NUL byte in
the commit log message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git commit&quot; learned &quot;-S&quot; to GPG-sign the commit; this can be shown
with the &quot;--show-signature&quot; option to &quot;git log&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The set of built-in function-header patterns for various languages
knows MATLAB.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --format='&lt;format&gt;'&quot; learned new %g[nNeE] specifiers to
show information from the reflog entries when walking the reflog
(i.e. with &quot;-g&quot;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pull&quot; 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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log&quot; learned &quot;--show-signature&quot; option to show the signed tag
that was merged that is embedded in the merge commit. It also can
show the signature made on the commit with &quot;git commit -S&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git branch --edit-description&quot; can be used to add descriptive text
to explain what a topic branch is about.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fmt-merge-msg&quot; learned to take the branch description into
account when preparing a merge summary that &quot;git merge&quot; records
when merging a local branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git request-pull&quot; 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:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the tip of the branch being requested to be merged;&lt;/li&gt;
&lt;li&gt;the branch description describing what the topic is about;&lt;/li&gt;
&lt;li&gt;the contents of the annotated tag, when requesting to pull a tag.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pull&quot; learned to notice 'pull.rebase' configuration variable,
which serves as a global fallback for setting 'branch.&lt;name&gt;.rebase'
configuration variable per branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git tag&quot; learned &quot;--cleanup&quot; option to control how the whitespaces
and empty lines in tag message are cleaned up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; learned to show side-by-side diff.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor documentation updates and code clean-ups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.7.8&lt;/h2&gt;

&lt;p&gt;Unless otherwise noted, all the fixes since v1.7.8 in the maintenance
releases are contained in this release (see release notes to them for
details).&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:49 +0000</pubDate>
      <dc:date>2012-03-08T09:28:49.180349+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.8.5 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.8.5.txt</link>
      <description>&lt;h1&gt;Git v1.7.8.5 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.8.4&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dependency on our thread-utils.h header file was missing for
objects that depend on it in the Makefile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; when fed an empty file did not correctly finish reading it
when it attempts to guess the input format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep -P&quot; (when PCRE is enabled in the build) did not match the
beginning and the end of the line correctly with ^ and $.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase -m&quot; tried to run &quot;git notes copy&quot; needlessly when
nothing was rewritten.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:48 +0000</pubDate>
      <dc:date>2012-03-08T09:28:48.19194+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.8.4 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.8.4.txt</link>
      <description>&lt;h1&gt;Git v1.7.8.4 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.8.3&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The code to look up attributes for paths reused entries from a wrong
directory when two paths in question are in adjacent directories and
the name of the one directory is a prefix of the other.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A wildcard that matches deeper hierarchy given to the &quot;diff-index&quot; command,
e.g. &quot;git diff-index HEAD -- '*.txt'&quot;, incorrectly reported additions of
matching files even when there is no change.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When producing a &quot;thin pack&quot; (primarily used in bundles and smart
HTTP transfers) out of a fully packed repository, we unnecessarily
avoided sending recent objects as a delta against objects we know
the other side has.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git send-email&quot; did not properly treat sendemail.multiedit as a
boolean (e.g. setting it to &quot;false&quot; did not turn it off).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:46 +0000</pubDate>
      <dc:date>2012-03-08T09:28:46.92318+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.8.3 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.8.3.txt</link>
      <description>&lt;h1&gt;Git v1.7.8.3 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.8.2&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Attempt to fetch from an empty file pretending it to be a bundle did
not error out correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;gitweb did not correctly fall back to configured $fallback_encoding
that is not 'latin1'.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git clone --depth $n&quot; did not catch a non-number given as $n as an
error.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:45 +0000</pubDate>
      <dc:date>2012-03-08T09:28:45.48882+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.8.2 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.8.2.txt</link>
      <description>&lt;h1&gt;Git v1.7.8.2 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.8.1&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Porcelain commands like &quot;git reset&quot; 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 &quot;git status -s&quot; and &quot;git diff --name-status&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The configuration file parser used for sizes (e.g. bigFileThreshold)
did not correctly interpret 'g' suffix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The replacement implemention for snprintf used on platforms with
native snprintf that is broken did not use va_copy correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git native connection going over TCP (not over SSH) did not set
SO_KEEPALIVE option which failed to receive link layer errors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git branch -m &lt;current branch&gt; HEAD&quot; is an obvious no-op but was not
allowed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout -m&quot; did not recreate the conflicted state in a &quot;both
sides added, without any common ancestor version&quot; conflict
situation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git cherry-pick $commit&quot; (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.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You could make &quot;git commit&quot; segfault by giving the &quot;--no-message&quot;
option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;fast-import&quot; did not correctly update an existing notes tree,
possibly corrupting the fan-out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch-pack&quot; 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 &quot;refs/foo/refs/heads/master&quot; and a
'master' branch with &quot;git fetch-pack refs/heads/master&quot;, as the
command incorrectly considered the former a &quot;match&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log --follow&quot; did not honor the rename threshold score given
with the -M option (e.g. &quot;-M50%&quot;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git mv&quot; gave suboptimal error/warning messages when it overwrites
target files. It also did not pay attention to &quot;-v&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authenticated &quot;git push&quot; over dumb HTTP were broken with a recent
change and failed without asking for password when username is
given.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push&quot; to an empty repository over HTTP were broken with a
recent change to the ref handling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git push -v&quot; forgot how to be verbose by mistake. It now properly
becomes verbose when asked to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When a &quot;reword&quot; action in &quot;git rebase -i&quot; failed to run &quot;commit --amend&quot;,
we did not give the control back to the user to resolve the situation, and
instead kept the original commit log message.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:43 +0000</pubDate>
      <dc:date>2012-03-08T09:28:43.854193+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.8.1 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.8.1.txt</link>
      <description>&lt;h1&gt;Git v1.7.8.1 Release Notes&lt;/h1&gt;

&lt;h2&gt;Fixes since v1.7.8&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In some codepaths (notably, checkout and merge), the ignore patterns
recorded in $GIT_DIR/info/exclude were not honored. They now are.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git apply --check&quot; did not error out when given an empty input
without any patch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; mistakenly allowed remote clients to ask for commits
that are not at the tip of any ref.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git checkout&quot; and &quot;git merge&quot; treated in-tree .gitignore and exclude
file in $GIT_DIR/info/ directory inconsistently when deciding which
untracked files are ignored and expendable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LF-to-CRLF streaming filter used when checking out a large-ish blob
fell into an infinite loop with a rare input.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The function header pattern for files with &quot;diff=cpp&quot; attribute did
not consider &quot;type *funcname(type param1,...&quot; as the beginning of a
function.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The error message from &quot;git diff&quot; and &quot;git status&quot; when they fail
to inspect changes in submodules did not report which submodule they
had trouble with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After fetching from a remote that has very long refname, the reporting
output could have corrupted by overrunning a static buffer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git pack-objects&quot; avoids creating cyclic dependencies among deltas
when seeing a broken packfile that records the same object in both
the deflated form and as a delta.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains minor fixes and documentation updates.&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Mar 2012 09:28:42 +0000</pubDate>
      <dc:date>2012-03-08T09:28:42.816297+00:00</dc:date>
    </item>
    <item>
      <title>Git v1.7.8 Release Notes</title>
      <link>https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.8.txt</link>
      <description>&lt;h1&gt;Git v1.7.8 Release Notes&lt;/h1&gt;

&lt;h2&gt;Updates since v1.7.7&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Some git-svn, git-gui, git-p4 (in contrib) and msysgit updates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Updates to bash completion scripts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The build procedure has been taught to take advantage of computed
dependency automatically when the complier supports it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The date parser now accepts timezone designators that lack minutes
part and also has a colon between &quot;hh:mm&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The contents of the /etc/mailname file, if exists, is used as the
default value of the hostname part of the committer/author e-mail.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git am&quot; learned how to read from patches generated by Hg.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git archive&quot; talking with a remote repository can report errors
from the remote side in a more informative way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git branch&quot; learned an explicit --list option to ask for branches
listed, optionally with a glob matching pattern to limit its output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git check-attr&quot; learned &quot;--cached&quot; option to look at .gitattributes
files from the index, not from the working tree.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Variants of &quot;git cherry-pick&quot; and &quot;git revert&quot; that take multiple
commits learned to &quot;--continue&quot; and &quot;--abort&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git daemon&quot; gives more human readble error messages to clients
using ERR packets when appropriate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Errors at the network layer is logged by &quot;git daemon&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff&quot; learned &quot;--minimal&quot; option to spend extra cycles to come
up with a minimal patch output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git diff&quot; learned &quot;--function-context&quot; option to show the whole
function as context that was affected by a change.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git difftool&quot; can be told to skip launching the tool for a path by
answering 'n' to its prompt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; learned to honor transfer.fsckobjects configuration to
validate the objects that were received from the other end, just like
&quot;git receive-pack&quot; (the receiving end of &quot;git push&quot;) does.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; makes sure that the set of objects it received from the
other end actually completes the history before updating the refs.
&quot;git receive-pack&quot; (the receiving end of &quot;git push&quot;) learned to do the
same.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git fetch&quot; learned that fetching/cloning from a regular file on the
filesystem is not necessarily a request to unpack a bundle file; the
file could be &quot;.git&quot; with &quot;gitdir: &lt;path&gt;&quot; in it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git for-each-ref&quot; learned &quot;%(contents:subject)&quot;, &quot;%(contents:body)&quot;
and &quot;%(contents:signature)&quot;. The last one is useful for signed tags.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep&quot; used to incorrectly pay attention to .gitignore files
scattered in the directory it was working in even when &quot;--no-index&quot;
option was used. It no longer does this. The &quot;--exclude-standard&quot;
option needs to be given to explicitly activate the ignore
mechanism.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git grep&quot; learned &quot;--untracked&quot; option, where given patterns are
 searched in untracked (but not ignored) files as well as tracked
 files in the working tree, so that matches in new but not yet
 added files do not get missed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The recursive merge backend no longer looks for meaningless
existing merges in submodules unless in the outermost merge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git log&quot; and friends learned &quot;--children&quot; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git ls-remote&quot; learned to respond to &quot;-h&quot;(elp) requests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;mediawiki&quot; remote helper can interact with (surprise!) MediaWiki
with &quot;git fetch&quot; &amp;amp; &quot;git push&quot;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge&quot; learned the &quot;--edit&quot; option to allow users to edit the
merge commit log message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git rebase -i&quot; can be told to use special purpose editor suitable
only for its insn sheet via sequence.editor configuration variable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git send-email&quot; learned to respond to &quot;-h&quot;(elp) requests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git send-email&quot; allows the value given to sendemail.aliasfile to begin
with &quot;~/&quot; to refer to the $HOME directory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git send-email&quot; forces use of Authen::SASL::Perl to work around
issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git stash&quot; learned &quot;--include-untracked&quot; option to stash away
untracked/ignored cruft from the working tree.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule clone&quot; does not leak an error message to the UI
level unnecessarily anymore.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git submodule update&quot; learned to honor &quot;none&quot; as the value for
submodule.&lt;name&gt;.update to specify that the named submodule should
not be checked out by default.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When populating a new submodule directory with &quot;git submodule init&quot;,
the $GIT_DIR metainformation directory for submodules is created inside
$GIT_DIR/modules/&lt;name&gt;/ directory of the superproject and referenced
via the gitfile mechanism. This is to make it possible to switch
between commits in the superproject that has and does not have the
submodule in the tree without re-cloning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; leaked unescaped control characters from syntax hiliter
outputs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; can be told to give custom string at the end of the HTML
HEAD element.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;gitweb&quot; now has its own manual pages.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Also contains other documentation updates and minor code cleanups.&lt;/p&gt;

&lt;h2&gt;Fixes since v1.7.7&lt;/h2&gt;

&lt;p&gt;Unless otherwise noted, all fixes in the 1.7.7.X maintenance track are
included in this release.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;HTTP transport did not use pushurl correctly, and also did not tell
what host it is trying to authenticate with when asking for
credentials.
(merge deba493 jk/http-auth later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git blame&quot; was aborted if started from an uncommitted content and
the path had the textconv filter in effect.
(merge 8518088 ss/blame-textconv-fake-working-tree later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adding many refs to the local repository in one go (e.g. &quot;git fetch&quot;
that fetches many tags) and looking up a ref by name in a repository
with too many refs were unnecessarily slow.
(merge 17d68a54d jp/get-ref-dir-unsorted later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Report from &quot;git commit&quot; on untracked files was confused under
core.ignorecase option.
(merge 395c7356 jk/name-hash-dirent later to maint).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&quot;git merge&quot; did not understand &quot;:/&lt;pattern&gt;&quot; as a way to name a commit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt; &quot; &quot;git push&quot; on the receiving end used to call post-receive and post-update
   hooks for attempted removal of non-existing refs.
   (merge 160b81ed ph/push-to-delete-nothing later to maint).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Help text for &quot;git remote set-url&quot; and &quot;git remote set-branches&quot;
were misspelled.
(merge c49904e fc/remote-seturl-usage-fix later to maint).
(merge 656cdf0 jc/remote-setbranches-usage-fix later to maint).&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Thu, 08 Mar 2012 09:28:41 +0000</pubDate>
      <dc:date>2012-03-08T09:28:41.718824+00:00</dc:date>
    </item>
  </channel>
</rss>