<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git.c, branch v1.8.2.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.8.2.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.8.2.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2013-04-03T16:25:41Z</updated>
<entry>
<title>Merge branch 'jk/alias-in-bare' into maint</title>
<updated>2013-04-03T16:25:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-04-03T16:25:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=eeecf393972b9ca4a37adb8785f16e9617eecc57'/>
<id>urn:sha1:eeecf393972b9ca4a37adb8785f16e9617eecc57</id>
<content type='text'>
An aliased command spawned from a bare repository that does not say
it is bare with "core.bare = yes" is treated as non-bare by mistake.

* jk/alias-in-bare:
  setup: suppress implicit "." work-tree for bare repos
  environment: add GIT_PREFIX to local_repo_env
  cache.h: drop LOCAL_REPO_ENV_SIZE
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2013-03-11T20:00:16Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-03-11T20:00:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ce432cac30f98b291be609a0fc974042a2156f55'/>
<id>urn:sha1:ce432cac30f98b291be609a0fc974042a2156f55</id>
<content type='text'>
* maint:
  git.c: make usage match manual page
</content>
</entry>
<entry>
<title>git.c: make usage match manual page</title>
<updated>2013-03-11T19:59:57Z</updated>
<author>
<name>Kevin Bracey</name>
<email>kevin@bracey.fi</email>
</author>
<published>2013-03-11T19:44:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=03a0fb0ccf48c831060c2243f830b6a12cd8fdf3'/>
<id>urn:sha1:03a0fb0ccf48c831060c2243f830b6a12cd8fdf3</id>
<content type='text'>
Reorder option list in command-line usage to match the manual page.
Also make it less than 80-characters wide.

Signed-off-by: Kevin Bracey &lt;kevin@bracey.fi&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2013-03-11T05:29:29Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-03-11T05:29:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0c91a6f302d8bea90f3bf4b9e8cffb1cf494f91b'/>
<id>urn:sha1:0c91a6f302d8bea90f3bf4b9e8cffb1cf494f91b</id>
<content type='text'>
* maint:
  Translate git_more_info_string consistently
</content>
</entry>
<entry>
<title>Translate git_more_info_string consistently</title>
<updated>2013-03-10T20:11:31Z</updated>
<author>
<name>Kevin Bracey</name>
<email>kevin@bracey.fi</email>
</author>
<published>2013-03-10T15:10:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=421a97694590c2be58f3ccebf301c7239289aa00'/>
<id>urn:sha1:421a97694590c2be58f3ccebf301c7239289aa00</id>
<content type='text'>
"git help" translated the "See 'git help &lt;command&gt;' for more
information..." message, but "git" didn't.

Signed-off-by: Kevin Bracey &lt;kevin@bracey.fi&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>setup: suppress implicit "." work-tree for bare repos</title>
<updated>2013-03-08T22:02:40Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2013-03-08T09:32:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2cd83d10bb6bcf768129e1c4e5a4dee4b6bcd27f'/>
<id>urn:sha1:2cd83d10bb6bcf768129e1c4e5a4dee4b6bcd27f</id>
<content type='text'>
If an explicit GIT_DIR is given without a working tree, we
implicitly assume that the current working directory should
be used as the working tree. E.g.,:

  GIT_DIR=/some/repo.git git status

would compare against the cwd.

Unfortunately, we fool this rule for sub-invocations of git
by setting GIT_DIR internally ourselves. For example:

  git init foo
  cd foo/.git
  git status ;# fails, as we expect
  git config alias.st status
  git status ;# does not fail, but should

What happens is that we run setup_git_directory when doing
alias lookup (since we need to see the config), set GIT_DIR
as a result, and then leave GIT_WORK_TREE blank (because we
do not have one). Then when we actually run the status
command, we do setup_git_directory again, which sees our
explicit GIT_DIR and uses the cwd as an implicit worktree.

It's tempting to argue that we should be suppressing that
second invocation of setup_git_directory, as it could use
the values we already found in memory. However, the problem
still exists for sub-processes (e.g., if "git status" were
an external command).

You can see another example with the "--bare" option, which
sets GIT_DIR explicitly. For example:

  git init foo
  cd foo/.git
  git status ;# fails
  git --bare status ;# does NOT fail

We need some way of telling sub-processes "even though
GIT_DIR is set, do not use cwd as an implicit working tree".
We could do it by putting a special token into
GIT_WORK_TREE, but the obvious choice (an empty string) has
some portability problems.

Instead, we add a new boolean variable, GIT_IMPLICIT_WORK_TREE,
which suppresses the use of cwd as a working tree when
GIT_DIR is set. We trigger the new variable when we know we
are in a bare setting.

The variable is left intentionally undocumented, as this is
an internal detail (for now, anyway). If somebody comes up
with a good alternate use for it, and once we are confident
we have shaken any bugs out of it, we can consider promoting
it further.

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>Merge branch 'as/check-ignore'</title>
<updated>2013-01-24T05:19:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-01-24T05:19:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a39b15b4f6a3f08b67b17d968935d177821e680f'/>
<id>urn:sha1:a39b15b4f6a3f08b67b17d968935d177821e680f</id>
<content type='text'>
Add a new command "git check-ignore" for debugging .gitignore
files.

The variable names may want to get cleaned up but that can be done
in-tree.

* as/check-ignore:
  clean.c, ls-files.c: respect encapsulation of exclude_list_groups
  t0008: avoid brace expansion
  add git-check-ignore sub-command
  setup.c: document get_pathspec()
  add.c: extract new die_if_path_beyond_symlink() for reuse
  add.c: extract check_path_for_gitlink() from treat_gitlinks() for reuse
  pathspec.c: rename newly public functions for clarity
  add.c: move pathspec matchers into new pathspec.c for reuse
  add.c: remove unused argument from validate_pathspec()
  dir.c: improve docs for match_pathspec() and match_pathspec_depth()
  dir.c: provide clear_directory() for reclaiming dir_struct memory
  dir.c: keep track of where patterns came from
  dir.c: use a single struct exclude_list per source of excludes

Conflicts:
	builtin/ls-files.c
	dir.c
</content>
</entry>
<entry>
<title>add git-check-ignore sub-command</title>
<updated>2013-01-06T22:26:38Z</updated>
<author>
<name>Adam Spiers</name>
<email>git@adamspiers.org</email>
</author>
<published>2013-01-06T16:58:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=368aa52952deb631b38a89837c4abbb00c5261c1'/>
<id>urn:sha1:368aa52952deb631b38a89837c4abbb00c5261c1</id>
<content type='text'>
This works in a similar manner to git-check-attr.

Thanks to Jeff King and Junio C Hamano for the idea:
http://thread.gmane.org/gmane.comp.version-control.git/108671/focus=108815

Signed-off-by: Adam Spiers &lt;git@adamspiers.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>add global --literal-pathspecs option</title>
<updated>2012-12-19T22:58:59Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2012-12-19T22:37:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=823ab40fd4adc5bf5b5c66b6d189deae34d2a138'/>
<id>urn:sha1:823ab40fd4adc5bf5b5c66b6d189deae34d2a138</id>
<content type='text'>
Git takes pathspec arguments in many places to limit the
scope of an operation. These pathspecs are treated not as
literal paths, but as glob patterns that can be fed to
fnmatch. When a user is giving a specific pattern, this is a
nice feature.

However, when programatically providing pathspecs, it can be
a nuisance. For example, to find the latest revision which
modified "$foo", one can use "git rev-list -- $foo". But if
"$foo" contains glob characters (e.g., "f*"), it will
erroneously match more entries than desired. The caller
needs to quote the characters in $foo, and even then, the
results may not be exactly the same as with a literal
pathspec. For instance, the depth checks in
match_pathspec_depth do not kick in if we match via fnmatch.

This patch introduces a global command-line option (i.e.,
one for "git" itself, not for specific commands) to turn
this behavior off. It also has a matching environment
variable, which can make it easier if you are a script or
porcelain interface that is going to issue many such
commands.

This option cannot turn off globbing for particular
pathspecs. That could eventually be done with a ":(noglob)"
magic pathspec prefix. However, that level of granularity is
more cumbersome to use for many cases, and doing ":(noglob)"
right would mean converting the whole codebase to use
"struct pathspec", as the usual "const char **pathspec"
cannot represent extra per-item flags.

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>Move setup_diff_pager to libgit.a</title>
<updated>2012-10-29T07:08:30Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2012-10-26T15:53:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4914c9629c046f7f5abf4109ad756040f9ebe2bf'/>
<id>urn:sha1:4914c9629c046f7f5abf4109ad756040f9ebe2bf</id>
<content type='text'>
This is used by diff-no-index.c, part of libgit.a while it stays in
builtin/diff.c. Move it to diff.c so that we won't get undefined
reference if a program that uses libgit.a happens to pull it in.

While at it, move check_pager from git.c to pager.c. It makes more
sense there and pager.c is also part of libgit.a

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Jeff King &lt;peff@peff.net&gt;
</content>
</entry>
</feed>
