<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/t/t7400-submodule-basic.sh, branch v2.2.0</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.2.0</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.2.0'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2014-03-21T21:26:55Z</updated>
<entry>
<title>t: prefer "git config --file" to GIT_CONFIG</title>
<updated>2014-03-21T21:26:55Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2014-03-20T23:17:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f7e87141011fc55f8267ea76d3cc016ee87f9053'/>
<id>urn:sha1:f7e87141011fc55f8267ea76d3cc016ee87f9053</id>
<content type='text'>
Doing:

  GIT_CONFIG=foo git config ...

is equivalent to:

  git config --file=foo ...

The latter is easier to read and slightly less error-prone,
because of issues with one-shot variables and shell
functions (e.g., you cannot use the former with
test_must_fail).

Note that we explicitly leave one case in t1300 which checks
the same operation on both GIT_CONFIG and "git config
--file". They are equivalent in the code these days, but
this will make sure it remains so.

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 'jk/trailing-slash-in-pathspec'</title>
<updated>2013-10-17T22:55:14Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-10-17T22:55:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=be98d915bec9aadcf746192ce0c5ddc19926b8bb'/>
<id>urn:sha1:be98d915bec9aadcf746192ce0c5ddc19926b8bb</id>
<content type='text'>
Code refactoring.

* jk/trailing-slash-in-pathspec:
  reset: handle submodule with trailing slash
  rm: re-use parse_pathspec's trailing-slash removal
</content>
</entry>
<entry>
<title>Merge branch 'tb/precompose-autodetect-fix'</title>
<updated>2013-09-17T18:39:59Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-09-17T18:39:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f2ded0f807da72d2bac8cdb7f332a91f5ea5ee72'/>
<id>urn:sha1:f2ded0f807da72d2bac8cdb7f332a91f5ea5ee72</id>
<content type='text'>
On MacOS X, we detected if the filesystem needs the "pre-composed
unicode strings" workaround, but did not automatically enable it.
Now we do.

* tb/precompose-autodetect-fix:
  Set core.precomposeunicode to true on e.g. HFS+
</content>
</entry>
<entry>
<title>reset: handle submodule with trailing slash</title>
<updated>2013-09-13T19:37:35Z</updated>
<author>
<name>John Keeping</name>
<email>john@keeping.me.uk</email>
</author>
<published>2013-09-12T19:25:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2c63d6eb46da4ef0abc9c040c927818e437d2fcc'/>
<id>urn:sha1:2c63d6eb46da4ef0abc9c040c927818e437d2fcc</id>
<content type='text'>
When using tab-completion, a directory path will often end with a
trailing slash which currently confuses "git reset" when dealing with
submodules.  Now that we have parse_pathspec we can easily handle this
by simply adding the PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP flag.

To do this, we need to move the read_cache() call before the
parse_pathspec() call.  All of the existing paths through cmd_reset()
that do not die early already call read_cache() at some point, so there
is no performance impact to doing this in the common case.

Signed-off-by: John Keeping &lt;john@keeping.me.uk&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jl/submodule-mv'</title>
<updated>2013-09-09T21:36:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-09-09T21:36:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b02f5aeda6f66ac3be9b2e35f9b237d4f1f80d73'/>
<id>urn:sha1:b02f5aeda6f66ac3be9b2e35f9b237d4f1f80d73</id>
<content type='text'>
"git mv A B" when moving a submodule A does "the right thing",
inclusing relocating its working tree and adjusting the paths in
the .gitmodules file.

* jl/submodule-mv: (53 commits)
  rm: delete .gitmodules entry of submodules removed from the work tree
  mv: update the path entry in .gitmodules for moved submodules
  submodule.c: add .gitmodules staging helper functions
  mv: move submodules using a gitfile
  mv: move submodules together with their work trees
  rm: do not set a variable twice without intermediate reading.
  t6131 - skip tests if on case-insensitive file system
  parse_pathspec: accept :(icase)path syntax
  pathspec: support :(glob) syntax
  pathspec: make --literal-pathspecs disable pathspec magic
  pathspec: support :(literal) syntax for noglob pathspec
  kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
  parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
  parse_pathspec: make sure the prefix part is wildcard-free
  rename field "raw" to "_raw" in struct pathspec
  tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
  remove match_pathspec() in favor of match_pathspec_depth()
  remove init_pathspec() in favor of parse_pathspec()
  remove diff_tree_{setup,release}_paths
  convert common_prefix() to use struct pathspec
  ...
</content>
</entry>
<entry>
<title>Merge branch 'jl/some-submodule-config-are-not-boolean'</title>
<updated>2013-09-04T19:36:51Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-09-04T19:36:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5fb0e0868c25d4be66ead46992c393ed5f91c2d1'/>
<id>urn:sha1:5fb0e0868c25d4be66ead46992c393ed5f91c2d1</id>
<content type='text'>
* jl/some-submodule-config-are-not-boolean:
  avoid segfault on submodule.*.path set to an empty "true"
</content>
</entry>
<entry>
<title>Set core.precomposeunicode to true on e.g. HFS+</title>
<updated>2013-08-27T14:41:32Z</updated>
<author>
<name>Torsten Bögershausen</name>
<email>tboegi@web.de</email>
</author>
<published>2013-08-27T13:50:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=92b0c8bed0d3f6ed5442e3ffa178413772faa31b'/>
<id>urn:sha1:92b0c8bed0d3f6ed5442e3ffa178413772faa31b</id>
<content type='text'>
When core.precomposeunicode was introduced in 76759c7d,
it was set to false on a unicode decomposing file system like HFS+
to be compatible with older versions of Git.

The Mac OS users need to find out that this configuration exist
and change it manually from false to true.

A smoother workflow can be achieved,
so set core.precomposeunicode to true on a decomposing file system.

Signed-off-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>avoid segfault on submodule.*.path set to an empty "true"</title>
<updated>2013-08-19T20:47:56Z</updated>
<author>
<name>Jharrod LaFon</name>
<email>jlafon@eyesopen.com</email>
</author>
<published>2013-08-19T16:26:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4b05440283350ec3b01afabe847d9ce5cf4cbdb7'/>
<id>urn:sha1:4b05440283350ec3b01afabe847d9ce5cf4cbdb7</id>
<content type='text'>
Git fails due to a segmentation fault if a submodule path is empty.
Here is an example .gitmodules that will cause a segmentation fault:

    [submodule "foo-module"]
      path
      url = http://host/repo.git
    $ git status
    Segmentation fault (core dumped)

This is because the parsing of "submodule.*.path" is not prepared to
see a value-less "true" and assumes that the value is always
non-NULL (parsing of "ignore" has the same problem).

Fix it by checking the NULL-ness of value and complain with
config_error_nonbool().

Signed-off-by: Jharrod LaFon &lt;jlafon@eyesopen.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rm: delete .gitmodules entry of submodules removed from the work tree</title>
<updated>2013-08-06T21:11:00Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2013-08-06T19:15:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=95c16418f0375e2fc325f32c3d7578fba9cfd7ef'/>
<id>urn:sha1:95c16418f0375e2fc325f32c3d7578fba9cfd7ef</id>
<content type='text'>
Currently using "git rm" on a submodule removes the submodule's work tree
from that of the superproject and the gitlink from the index. But the
submodule's section in .gitmodules is left untouched, which is a leftover
of the now removed submodule and might irritate users (as opposed to the
setting in .git/config, this must stay as a reminder that the user showed
interest in this submodule so it will be repopulated later when an older
commit is checked out).

Let "git rm" help the user by not only removing the submodule from the
work tree but by also removing the "submodule.&lt;submodule name&gt;" section
from the .gitmodules file and stage both. This doesn't happen when the
"--cached" option is used, as it would modify the work tree. This also
silently does nothing when no .gitmodules file is found and only issues a
warning when it doesn't have a section for this submodule. This is because
the user might just use plain gitlinks without the .gitmodules file or has
already removed the section by hand before issuing the "git rm" command
(in which case the warning reminds him that rm would have done that for
him). Only when .gitmodules is found and contains merge conflicts the rm
command will fail and tell the user to resolve the conflict before trying
again.

Also extend the man page to inform the user about this new feature. While
at it promote the submodule sub-section to a chapter as it made not much
sense under "REMOVING FILES THAT HAVE DISAPPEARED FROM THE FILESYSTEM".

In t7610 three uses of "git rm submod" had to be replaced with "git rm
--cached submod" because that test expects .gitmodules and the work tree
to stay untouched. Also in t7400 the tests for the remaining settings in
the .gitmodules file had to be changed to assert that these settings are
missing.

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'fg/submodule-clone-depth'</title>
<updated>2013-07-15T17:28:48Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-07-15T17:28:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2bb7aface663f4d9f01d08282ee38cf8f636df0d'/>
<id>urn:sha1:2bb7aface663f4d9f01d08282ee38cf8f636df0d</id>
<content type='text'>
Allow shallow-cloning of submodules with "git submodule update".

* fg/submodule-clone-depth:
  Add --depth to submodule update/add
</content>
</entry>
</feed>
