<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin, branch v2.2.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v2.2.2</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.2.2'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2015-01-12T22:02:19Z</updated>
<entry>
<title>Merge branch 'mg/add-ignore-errors' into maint</title>
<updated>2015-01-12T22:02:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-01-12T22:02:19Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=d0879b33a6c34285a870e351e8eaee5cd695e92d'/>
<id>urn:sha1:d0879b33a6c34285a870e351e8eaee5cd695e92d</id>
<content type='text'>
* mg/add-ignore-errors:
  add: ignore only ignored files
</content>
</entry>
<entry>
<title>Merge branch 'jk/push-simple' into maint</title>
<updated>2014-12-22T20:18:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-22T20:18:08Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=0eeb9b86d686fb4f1f833890a6e5d880e7e78109'/>
<id>urn:sha1:0eeb9b86d686fb4f1f833890a6e5d880e7e78109</id>
<content type='text'>
Git 2.0 was supposed to make the "simple" mode for the default of
"git push", but it didn't.

* jk/push-simple:
  push: truly use "simple" as default, not "upstream"
</content>
</entry>
<entry>
<title>Merge branch 'mh/config-flip-xbit-back-after-checking' into maint</title>
<updated>2014-12-22T20:18:00Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-22T20:18:00Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=e524fb497a0259cee4559f60d815218fc01ac466'/>
<id>urn:sha1:e524fb497a0259cee4559f60d815218fc01ac466</id>
<content type='text'>
"git init" (hence "git clone") initialized the per-repository
configuration file .git/config with x-bit by mistake.

* mh/config-flip-xbit-back-after-checking:
  create_default_files(): don't set u+x bit on $GIT_DIR/config
</content>
</entry>
<entry>
<title>Merge branch 'rs/receive-pack-use-labs' into maint</title>
<updated>2014-12-22T20:17:32Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-22T20:17:32Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=8d5134399c8f87d57b7199b8886f7aa8169e3df5'/>
<id>urn:sha1:8d5134399c8f87d57b7199b8886f7aa8169e3df5</id>
<content type='text'>
* rs/receive-pack-use-labs:
  use labs() for variables of type long instead of abs()
</content>
</entry>
<entry>
<title>Merge branch 'jk/colors-fix' into maint</title>
<updated>2014-12-22T20:16:58Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-22T20:16:58Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=5d509d5e1cf1feb9e218b431f4ea41b10e39d06e'/>
<id>urn:sha1:5d509d5e1cf1feb9e218b431f4ea41b10e39d06e</id>
<content type='text'>
"git config --get-color" did not parse its command line arguments
carefully.

* jk/colors-fix:
  t4026: test "normal" color
  config: fix parsing of "git config --get-color some.key -1"
  docs: describe ANSI 256-color mode
</content>
</entry>
<entry>
<title>Merge branch 'jk/checkout-from-tree' into maint</title>
<updated>2014-12-22T20:16:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-12-22T20:16:29Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=447c39a9b25e222a96711f7736078e4f33001388'/>
<id>urn:sha1:447c39a9b25e222a96711f7736078e4f33001388</id>
<content type='text'>
"git checkout $treeish $path", when $path in the index and the
working tree already matched what is in $treeish at the $path,
still overwrote the $path unnecessarily.

* jk/checkout-from-tree:
  checkout $tree: do not throw away unchanged index entries
</content>
</entry>
<entry>
<title>clean: typofix</title>
<updated>2014-12-22T17:57:42Z</updated>
<author>
<name>Alexander Kuleshov</name>
<email>kuleshovmail@gmail.com</email>
</author>
<published>2014-12-19T08:37:47Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=bef111d0a5e4b5dcac07f92b0fc918bb31184066'/>
<id>urn:sha1:bef111d0a5e4b5dcac07f92b0fc918bb31184066</id>
<content type='text'>
Signed-off-by: Alexander Kuleshov &lt;kuleshovmail@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>push: truly use "simple" as default, not "upstream"</title>
<updated>2014-12-01T02:11:25Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2014-11-27T03:43:06Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=00a6fa0720283b93eb011adcfea850fe21345548'/>
<id>urn:sha1:00a6fa0720283b93eb011adcfea850fe21345548</id>
<content type='text'>
The plan for the push.default transition had all along been
to use the "simple" method rather than "upstream" as a
default if the user did not specify their own push.default
value. Commit 11037ee (push: switch default from "matching"
to "simple", 2013-01-04) tried to implement that by moving
PUSH_DEFAULT_UNSPECIFIED in our switch statement to
fall-through to the PUSH_DEFAULT_SIMPLE case.

When the commit that became 11037ee was originally written,
that would have been enough. We would fall through to
calling setup_push_upstream() with the "simple" parameter
set to 1. However, it was delayed for a while until we were
ready to make the transition in Git 2.0.

And in the meantime, commit ed2b182 (push: change `simple`
to accommodate triangular workflows, 2013-06-19) threw a
monkey wrench into the works. That commit drops the "simple"
parameter to setup_push_upstream, and instead checks whether
the global "push_default" is PUSH_DEFAULT_SIMPLE. This is
right when the user has explicitly configured push.default
to simple, but wrong when we are a fall-through for the
"unspecified" case.

We never noticed because our push.default tests do not cover
the case of the variable being totally unset; they only
check the "simple" behavior itself.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>add: ignore only ignored files</title>
<updated>2014-11-21T18:19:14Z</updated>
<author>
<name>Michael J Gruber</name>
<email>git@drmicha.warpmail.net</email>
</author>
<published>2014-11-21T16:08:19Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=1d31e5a2cd9f90799330d5095783e7b972357f0e'/>
<id>urn:sha1:1d31e5a2cd9f90799330d5095783e7b972357f0e</id>
<content type='text'>
"git add foo bar" adds neither foo nor bar when bar is ignored, but dies
to let the user recheck their command invocation. This becomes less
helpful when "git add foo.*" is subject to shell expansion and some of
the expanded files are ignored.

"git add --ignore-errors" is supposed to ignore errors when indexing
some files and adds the others. It does ignore errors from actual
indexing attempts, but does not ignore the error "file is ignored" as
outlined above. This is unexpected.

Change "git add foo bar" to add foo when bar is ignored, but issue
a warning and return a failure code as before the change.

That is, in the case of trying to add ignored files we now act the same
way (with or without "--ignore-errors") in which we act for more
severe indexing errors when "--ignore-errors" is specified.

Signed-off-by: Michael J Gruber &lt;git@drmicha.warpmail.net&gt;
Reviewed-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>config: fix parsing of "git config --get-color some.key -1"</title>
<updated>2014-11-20T18:52:23Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2014-11-20T15:15:51Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=d0e08d62335ce9685ac547287771e589587334b6'/>
<id>urn:sha1:d0e08d62335ce9685ac547287771e589587334b6</id>
<content type='text'>
Most of git-config's command line options use OPT_BIT to
choose an action, and then parse the non-option arguments
in a context-dependent way. However, --get-color and
--get-colorbool are unlike the rest of the options, in that
they are OPT_STRING, taking the option name as a parameter.

This generally works, because we then use the presence of
those strings to set an action bit anyway. But it does mean
that the option-parser will continue looking for options
even after the key (because it is not a non-option; it is an
argument to an option). And running:

  git config --get-color some.key -1

(to use "-1" as the default color spec) will barf, claiming
that "-1" is not an option. Instead, we should treat
--get-color and --get-colorbool as action bits, just like
--add, --get, and all the other actions, and then check that
the non-option arguments we got are sane. This fixes the
weirdness above, and makes those two options like all the
others.

This "fixes" a test in t4026, which checked that feeding
"-2" as a color should fail (it does fail, but prior to this
patch, because parseopt barfed, not because we actually ever
tried to parse the color).

This also catches other errors, like:

  git config --get-color some.key black blue

which previously silently ignored "blue" (and now will
complain that you gave too many arguments).

There are some possible regressions, though. We now disallow
these, which currently do what you would expect:

  # specifying other options after the action
  git config --get-color some.key --file whatever

  # using long-arg syntax
  git config --get-color=some.key

However, we have never advertised these in the
documentation, and in fact they did not work in some older
versions of git. The behavior was apparently switched as an
accidental side effect of d64ec16 (git config: reorganize to
use parseopt, 2009-02-21).

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