<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/t/t7400-submodule-basic.sh, branch v2.8.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.8.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.8.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2016-03-23T02:26:43Z</updated>
<entry>
<title>submodule: fix regression for deinit without submodules</title>
<updated>2016-03-23T02:26:43Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2016-03-22T23:42:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=84ba959bbdf083ff7036619fa08152e46b9473a5'/>
<id>urn:sha1:84ba959bbdf083ff7036619fa08152e46b9473a5</id>
<content type='text'>
Per Cederqvist wrote:
&gt; It used to be possible to run
&gt;
&gt;    git submodule deinit -f .
&gt;
&gt; to remove any submodules, no matter how many submodules you had.  That
&gt; is no longer possible in projects that don't have any submodules at
&gt; all.  The command will fail with:
&gt;
&gt;     error: pathspec '.' did not match any file(s) known to git.

This regression was introduced in 74703a1e4dfc (submodule: rewrite
`module_list` shell function in C, 2015-09-02), as we changed the
order of checking in new module listing to first check whether it is
a gitlin before feeding it to match_pathspec().  It used to be that
a pathspec that does not match any path were diagnosed as an error,
but the new code complains for a pathspec that does not match any
submodule path.

Arguably the new behaviour may give us a better diagnosis, but that
is inconsistent with the suggestion "deinit" gives, and also this
was an unintended accident.  The new behaviour hopefully can be
redesigned and implemented better in future releases, but for now,
switch these two checks to restore the same behavior as before.  In
an empty repository, giving the pathspec '.' will still get the same
"did not match" error, but that is the same bug we had before 1.7.0.

Reported-by: Per Cederqvist &lt;cederp@opera.com&gt;
Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>submodule helper list: respect correct path prefix</title>
<updated>2016-02-24T22:33:02Z</updated>
<author>
<name>Stefan Beller</name>
<email>sbeller@google.com</email>
</author>
<published>2016-02-24T21:15:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2b56bb7a87ab429c225f6325f2870cbeac0d19f9'/>
<id>urn:sha1:2b56bb7a87ab429c225f6325f2870cbeac0d19f9</id>
<content type='text'>
This is a regression introduced by 74703a1e4d (submodule: rewrite
`module_list` shell function in C, 2015-09-02).

Add a test to ensure we list the right submodule when giving a
specific pathspec.

Reported-By: Caleb Jorden &lt;cjorden@gmail.com&gt;
Signed-off-by: Stefan Beller &lt;sbeller@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>t: fix trivial &amp;&amp;-chain breakage</title>
<updated>2015-03-20T17:20:14Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2015-03-20T10:07:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=99094a7ad484085b9f6849a8ebe1e23467c5bc14'/>
<id>urn:sha1:99094a7ad484085b9f6849a8ebe1e23467c5bc14</id>
<content type='text'>
These are tests which are missing a link in their &amp;&amp;-chain,
but during a setup phase. We may fail to notice failure in
commands that build the test environment, but these are
typically not expected to fail at all (but it's still good
to double-check that our test environment is what we
expect).

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 'ps/submodule-sanitize-path-upon-add'</title>
<updated>2015-02-22T20:28:26Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-02-22T20:28:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=070f6fed052ca0cf6625f6566d23c71530d7abf9'/>
<id>urn:sha1:070f6fed052ca0cf6625f6566d23c71530d7abf9</id>
<content type='text'>
"git submodule add" failed to squash "path/to/././submodule" to
"path/to/submodule".

* ps/submodule-sanitize-path-upon-add:
  git-submodule.sh: fix '/././' path normalization
</content>
</entry>
<entry>
<title>git-submodule.sh: fix '/././' path normalization</title>
<updated>2015-02-02T20:35:16Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2015-01-30T15:14:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8196e728955a084303e99affff2ebc1120112516'/>
<id>urn:sha1:8196e728955a084303e99affff2ebc1120112516</id>
<content type='text'>
When we add a new submodule the path of the submodule is being
normalized. We fail to normalize multiple adjacent '/./', though.
Thus 'path/to/././submodule' will become 'path/to/./submodule' where
it should be 'path/to/submodule' instead.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Acked-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<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>
</feed>
