<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/submodule.c, branch v2.10.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v2.10.3</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.10.3'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2016-10-28T16:01:23Z</updated>
<entry>
<title>Merge branch 'rs/cocci' into maint</title>
<updated>2016-10-28T16:01:23Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-10-28T16:01:23Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=c8fd2201756f9cd10a796311a1b25d7a2ab2a3b9'/>
<id>urn:sha1:c8fd2201756f9cd10a796311a1b25d7a2ab2a3b9</id>
<content type='text'>
Code cleanup.

* rs/cocci:
  use strbuf_add_unique_abbrev() for adding short hashes, part 3
  remove unnecessary NULL check before free(3)
  coccicheck: make transformation for strbuf_addf(sb, "...") more precise
  use strbuf_add_unique_abbrev() for adding short hashes, part 2
  use strbuf_addstr() instead of strbuf_addf() with "%s", part 2
  gitignore: ignore output files of coccicheck make target
  use strbuf_addstr() for adding constant strings to a strbuf, part 2
  add coccicheck make target
  contrib/coccinelle: fix semantic patch for oid_to_hex_r()
</content>
</entry>
<entry>
<title>use strbuf_add_unique_abbrev() for adding short hashes, part 3</title>
<updated>2016-10-10T18:58:25Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2016-10-08T15:38:47Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=a94bb683970a111b467a36590ca36e52754ad504'/>
<id>urn:sha1:a94bb683970a111b467a36590ca36e52754ad504</id>
<content type='text'>
Call strbuf_add_unique_abbrev() to add abbreviated hashes to strbufs
instead of taking detours through find_unique_abbrev() and its static
buffer.  This is shorter in most cases and a bit more efficient.

The changes here are not easily handled by a semantic patch because
they involve removing temporary variables and deconstructing format
strings for strbuf_addf().

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>use strbuf_add_unique_abbrev() for adding short hashes, part 2</title>
<updated>2016-09-27T21:02:40Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2016-09-27T19:11:58Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=f937d78553ce22505543580ae7958d9f5ffeeb89'/>
<id>urn:sha1:f937d78553ce22505543580ae7958d9f5ffeeb89</id>
<content type='text'>
Call strbuf_add_unique_abbrev() to add abbreviated hashes to strbufs
instead of taking detours through find_unique_abbrev() and its static
buffer.  This is shorter and a bit more efficient.

1eb47f167d65d1d305b9c196a1bb40eb96117cb1 already converted six cases,
this patch covers three more.

A semantic patch for Coccinelle is included for easier checking for
new cases that might be introduced in the future.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>use strbuf_addstr() instead of strbuf_addf() with "%s", part 2</title>
<updated>2016-09-27T21:02:40Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2016-09-27T19:08:21Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=92d52fab3af8b1d5231285ac13b364f008d1a886'/>
<id>urn:sha1:92d52fab3af8b1d5231285ac13b364f008d1a886</id>
<content type='text'>
Replace uses of strbuf_addf() for adding strings with more lightweight
strbuf_addstr() calls.  This is shorter and makes the intent clearer.

bc57b9c0cc5a123365a922fa1831177e3fd607ed already converted three cases,
this patch covers two more.

A semantic patch for Coccinelle is included for easier checking for
new cases that might be introduced in the future.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/submodule-anchor-git-dir' into maint</title>
<updated>2016-09-19T20:51:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-09-19T20:51:40Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=4c10c311376ef0cd279dace6a05e2101d60536e4'/>
<id>urn:sha1:4c10c311376ef0cd279dace6a05e2101d60536e4</id>
<content type='text'>
Having a submodule whose ".git" repository is somehow corrupt
caused a few commands that recurse into submodules loop forever.

* jc/submodule-anchor-git-dir:
  submodule: avoid auto-discovery in prepare_submodule_repo_env()
</content>
</entry>
<entry>
<title>submodule: avoid auto-discovery in prepare_submodule_repo_env()</title>
<updated>2016-09-01T21:01:29Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-09-01T20:51:48Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=10f5c526561604ba9677dc27643b5c9bfad36458'/>
<id>urn:sha1:10f5c526561604ba9677dc27643b5c9bfad36458</id>
<content type='text'>
The function is used to set up the environment variable used in a
subprocess we spawn in a submodule directory.  The callers set up a
child_process structure, find the working tree path of one submodule
and set .dir field to it, and then use start_command() API to spawn
the subprocess like "status", "fetch", etc.

When this happens, we expect that the ".git" (either a directory or
a gitfile that points at the real location) in the current working
directory of the subprocess MUST be the repository for the submodule.

If this ".git" thing is a corrupt repository, however, because
prepare_submodule_repo_env() unsets GIT_DIR and GIT_WORK_TREE, the
subprocess will see ".git", thinks it is not a repository, and
attempt to find one by going up, likely to end up in finding the
repository of the superproject.  In some codepaths, this will cause
a command run with the "--recurse-submodules" option to recurse
forever.

By exporting GIT_DIR=.git, disable the auto-discovery logic in the
subprocess, which would instead stop it and report an error.

The test illustrates existing problems in a few callsites of this
function.  Without this fix, "git fetch --recurse-submodules", "git
status" and "git diff" keep recursing forever.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bc/cocci'</title>
<updated>2016-07-19T20:22:16Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-07-19T20:22:16Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=a63d31b4d3640960d9a71606eee80c32459f906e'/>
<id>urn:sha1:a63d31b4d3640960d9a71606eee80c32459f906e</id>
<content type='text'>
Conversion from unsigned char sha1[20] to struct object_id
continues.

* bc/cocci:
  diff: convert prep_temp_blob() to struct object_id
  merge-recursive: convert merge_recursive_generic() to object_id
  merge-recursive: convert leaf functions to use struct object_id
  merge-recursive: convert struct merge_file_info to object_id
  merge-recursive: convert struct stage_data to use object_id
  diff: rename struct diff_filespec's sha1_valid member
  diff: convert struct diff_filespec to struct object_id
  coccinelle: apply object_id Coccinelle transformations
  coccinelle: convert hashcpy() with null_sha1 to hashclr()
  contrib/coccinelle: add basic Coccinelle transforms
  hex: add oid_to_hex_r()
</content>
</entry>
<entry>
<title>diff: convert struct diff_filespec to struct object_id</title>
<updated>2016-06-28T18:39:02Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2016-06-24T23:09:23Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=a0d12c4433e25e87b67df78b45635df8a098fb23'/>
<id>urn:sha1:a0d12c4433e25e87b67df78b45635df8a098fb23</id>
<content type='text'>
Convert struct diff_filespec's sha1 member to use a struct object_id
called "oid" instead.  The following Coccinelle semantic patch was used
to implement this, followed by the transformations in object_id.cocci:

@@
struct diff_filespec o;
@@
- o.sha1
+ o.oid.hash

@@
struct diff_filespec *p;
@@
- p-&gt;sha1
+ p-&gt;oid.hash

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>use string_list initializer consistently</title>
<updated>2016-06-13T17:37:51Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2016-06-13T10:04:20Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=2721ce21e439ee0726dc69073acd7e0d2b2407b3'/>
<id>urn:sha1:2721ce21e439ee0726dc69073acd7e0d2b2407b3</id>
<content type='text'>
There are two types of string_lists: those that own the
string memory, and those that don't. You can tell the
difference by the strdup_strings flag, and one should use
either STRING_LIST_INIT_DUP, or STRING_LIST_INIT_NODUP as an
initializer.

Historically, the normal all-zeros initialization has
corresponded to the NODUP case. Many sites use no
initializer at all, and that works as a shorthand for that
case. But for a reader of the code, it can be hard to
remember which is which. Let's be more explicit and actually
have each site declare which type it means to use.

This is a fairly mechanical conversion; I assumed each site
was correct as-is, and just switched them all to NODUP.

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/submodule-c-credential'</title>
<updated>2016-05-17T21:38:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-05-17T21:38:25Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=e059388fb200fb2b5281ce211242ef3525a9c2c7'/>
<id>urn:sha1:e059388fb200fb2b5281ce211242ef3525a9c2c7</id>
<content type='text'>
An earlier addition of "sanitize_submodule_env" with 14111fc4 (git:
submodule honor -c credential.* from command line, 2016-02-29)
turned out to be a convoluted no-op; implement what it wanted to do
correctly, and stop filtering settings given via "git -c var=val".

* jk/submodule-c-credential:
  submodule: stop sanitizing config options
  submodule: use prepare_submodule_repo_env consistently
  submodule--helper: move config-sanitizing to submodule.c
  submodule: export sanitized GIT_CONFIG_PARAMETERS
  t5550: break submodule config test into multiple sub-tests
  t5550: fix typo in $HTTPD_URL
</content>
</entry>
</feed>
