<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin, branch v2.7.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.7.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.7.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2016-02-22T21:10:21Z</updated>
<entry>
<title>Merge branch 'nd/ita-cleanup' into maint</title>
<updated>2016-02-22T21:10:21Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-22T21:10:21Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2bbea5c8f2242ee798e9bee525b485994a8e5911'/>
<id>urn:sha1:2bbea5c8f2242ee798e9bee525b485994a8e5911</id>
<content type='text'>
Paths that have been told the index about with "add -N" are not
quite yet in the index, but a few commands behaved as if they
already are in a harmful way.

* nd/ita-cleanup:
  grep: make it clear i-t-a entries are ignored
  add and use a convenience macro ce_intent_to_add()
  blame: remove obsolete comment
</content>
</entry>
<entry>
<title>Merge branch 'ah/stripspace-optstring' into maint</title>
<updated>2016-02-22T21:10:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-22T21:10:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fa7b63d2f142bec8fe0568761e1c9c22ec877bca'/>
<id>urn:sha1:fa7b63d2f142bec8fe0568761e1c9c22ec877bca</id>
<content type='text'>
* ah/stripspace-optstring:
  stripspace: call U+0020 a "space" instead of a "blank"
</content>
</entry>
<entry>
<title>Merge branch 'jk/ref-cache-non-repository-optim' into maint</title>
<updated>2016-02-05T22:54:17Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-05T22:54:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e2d7739051cadf25094c3fc7593b73b30c680696'/>
<id>urn:sha1:e2d7739051cadf25094c3fc7593b73b30c680696</id>
<content type='text'>
The underlying machinery used by "ls-files -o" and other commands
have been taught not to create empty submodule ref cache for a
directory that is not a submodule.  This removes a ton of wasted
CPU cycles.

* jk/ref-cache-non-repository-optim:
  resolve_gitlink_ref: ignore non-repository paths
  clean: make is_git_repository a public function
</content>
</entry>
<entry>
<title>Merge branch 'nd/diff-with-path-params' into maint</title>
<updated>2016-02-05T22:54:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-05T22:54:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=02dab5d399fb276f91646d7780da90596bffefab'/>
<id>urn:sha1:02dab5d399fb276f91646d7780da90596bffefab</id>
<content type='text'>
A few options of "git diff" did not work well when the command was
run from a subdirectory.

* nd/diff-with-path-params:
  diff: make -O and --output work in subdirectory
  diff-no-index: do not take a redundant prefix argument
</content>
</entry>
<entry>
<title>Merge branch 'jk/list-tag-2.7-regression' into maint</title>
<updated>2016-02-05T22:54:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-05T22:54:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=88ec75dba425be4a18309f28a8c5ae01044fd29a'/>
<id>urn:sha1:88ec75dba425be4a18309f28a8c5ae01044fd29a</id>
<content type='text'>
"git tag" started listing a tag "foo" as "tags/foo" when a branch
named "foo" exists in the same repository; remove this unnecessary
disambiguation, which is a regression introduced in v2.7.0.

* jk/list-tag-2.7-regression:
  tag: do not show ambiguous tag names as "tags/foo"
  t6300: use test_atom for some un-modern tests
</content>
</entry>
<entry>
<title>Merge branch 'js/close-packs-before-gc' into maint</title>
<updated>2016-02-05T22:54:13Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-05T22:54:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f748e6916749e35fc54c24eb6e02e1182c62a052'/>
<id>urn:sha1:f748e6916749e35fc54c24eb6e02e1182c62a052</id>
<content type='text'>
Many codepaths that run "gc --auto" before exiting kept packfiles
mapped and left the file descriptors to them open, which was not
friendly to systems that cannot remove files that are open.  They
now close the packs before doing so.

* js/close-packs-before-gc:
  receive-pack: release pack files before garbage-collecting
  merge: release pack files before garbage-collecting
  am: release pack files before garbage-collecting
  fetch: release pack files before garbage-collecting
</content>
</entry>
<entry>
<title>Merge branch 'js/fopen-harder' into maint</title>
<updated>2016-02-05T22:54:11Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-05T22:54:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=da07df3ee3ff8c9d676db6be04a76ead1d9919d8'/>
<id>urn:sha1:da07df3ee3ff8c9d676db6be04a76ead1d9919d8</id>
<content type='text'>
Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
(e.g. COMMIT_EDITMSG) that is meant to be left after the command is
done.  This however did not work well if the repository is set to
be shared with core.sharedRepository and the umask of the previous
user is tighter.  They have been made to work better by calling
unlink(2) and retrying after fopen(3) fails with EPERM.

* js/fopen-harder:
  Handle more file writes correctly in shared repos
  commit: allow editing the commit message even in shared repos
</content>
</entry>
<entry>
<title>Merge branch 'jk/clang-pedantic' into maint</title>
<updated>2016-02-05T22:54:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-02-05T22:54:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6e29ac23027ed9993c32e1f68d79068498a25165'/>
<id>urn:sha1:6e29ac23027ed9993c32e1f68d79068498a25165</id>
<content type='text'>
A few unportable C construct have been spotted by clang compiler
and have been fixed.

* jk/clang-pedantic:
  bswap: add NO_UNALIGNED_LOADS define
  avoid shifting signed integers 31 bits
</content>
</entry>
<entry>
<title>stripspace: call U+0020 a "space" instead of a "blank"</title>
<updated>2016-01-30T00:02:34Z</updated>
<author>
<name>Alex Henrie</name>
<email>alexhenrie24@gmail.com</email>
</author>
<published>2016-01-29T03:10:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f562d7de32fe4202c3d0d245b87fe671011ad698'/>
<id>urn:sha1:f562d7de32fe4202c3d0d245b87fe671011ad698</id>
<content type='text'>
I couldn't find any other examples of people referring to this
character as a "blank".

Signed-off-by: Alex Henrie &lt;alexhenrie24@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>tag: do not show ambiguous tag names as "tags/foo"</title>
<updated>2016-01-26T21:34:10Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2016-01-26T03:00:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0571979bd60837d3c0802ecc1a47c48b4a6114d0'/>
<id>urn:sha1:0571979bd60837d3c0802ecc1a47c48b4a6114d0</id>
<content type='text'>
Since b7cc53e9 (tag.c: use 'ref-filter' APIs, 2015-07-11),
git-tag has started showing tags with ambiguous names (i.e.,
when both "heads/foo" and "tags/foo" exists) as "tags/foo"
instead of just "foo". This is both:

  - pointless; the output of "git tag" includes only
    refs/tags, so we know that "foo" means the one in
    "refs/tags".

and

  - ambiguous; in the original output, we know that the line
    "foo" means that "refs/tags/foo" exists. In the new
    output, it is unclear whether we mean "refs/tags/foo" or
    "refs/tags/tags/foo".

The reason this happens is that commit b7cc53e9 switched
git-tag to use ref-filter's "%(refname:short)" output
formatting, which was adapted from for-each-ref. This more
general code does not know that we care only about tags, and
uses shorten_unambiguous_ref to get the short-name. We need
to tell it that we care only about "refs/tags/", and it
should shorten with respect to that value.

In theory, the ref-filter code could figure this out by us
passing FILTER_REFS_TAGS. But there are two complications
there:

  1. The handling of refname:short is deep in formatting
     code that does not even have our ref_filter struct, let
     alone the arguments to the filter_ref struct.

  2. In git v2.7.0, we expose the formatting language to the
     user. If we follow this path, it will mean that
     "%(refname:short)" behaves differently for "tag" versus
     "for-each-ref" (including "for-each-ref refs/tags/"),
     which can lead to confusion.

Instead, let's add a new modifier to the formatting
language, "strip", to remove a specific set of prefix
components. This fixes "git tag", and lets users invoke the
same behavior from their own custom formats (for "tag" or
"for-each-ref") while leaving ":short" with its same
consistent meaning in all places.

We introduce a test in t7004 for "git tag", which fails
without this patch. We also add a similar test in t3203 for
"git branch", which does not actually fail. But since it is
likely that "branch" will eventually use the same formatting
code, the test helps defend against future regressions.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
