<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/diff-lib.c, branch v1.7.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v1.7.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v1.7.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2010-06-11T20:33:17Z</updated>
<entry>
<title>Add optional parameters to the diff option "--ignore-submodules"</title>
<updated>2010-06-11T20:33:17Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-06-08T16:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=dd44d419d30afa52b863efa07aeec738c4531ea9'/>
<id>urn:sha1:dd44d419d30afa52b863efa07aeec738c4531ea9</id>
<content type='text'>
In some use cases it is not desirable that the diff family considers
submodules that only contain untracked content as dirty. This may happen
e.g. when the submodule is not under the developers control and not all
build generated files have been added to .gitignore by the upstream
developers. Using the "untracked" parameter for the "--ignore-submodules"
option disables checking for untracked content and lets git diff report
them as changed only when they have new commits or modified content.

Sometimes it is not wanted to have submodules show up as changed when they
just contain changes to their work tree. An example for that are scripts
which just want to check for submodule commits while ignoring any changes
to the work tree. Also users having large submodules known not to change
might want to use this option, as the - sometimes substantial - time it
takes to scan the submodule work tree(s) is saved.

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 'jl/submodule-diff-dirtiness'</title>
<updated>2010-03-24T23:25:43Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-03-24T23:25:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b6a7a06aa6f083f21b0fca2558c737324eda1602'/>
<id>urn:sha1:b6a7a06aa6f083f21b0fca2558c737324eda1602</id>
<content type='text'>
* jl/submodule-diff-dirtiness:
  git status: ignoring untracked files must apply to submodules too
  git status: Fix false positive "new commits" output for dirty submodules
  Refactor dirty submodule detection in diff-lib.c
  git status: Show detailed dirty status of submodules in long format
  git diff --submodule: Show detailed dirty status of submodules
</content>
</entry>
<entry>
<title>git status: ignoring untracked files must apply to submodules too</title>
<updated>2010-03-14T05:56:35Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-03-13T22:00:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3bfc45047654c7dd38b32033321228e97fc8f60e'/>
<id>urn:sha1:3bfc45047654c7dd38b32033321228e97fc8f60e</id>
<content type='text'>
Since 1.7.0 submodules are considered dirty when they contain untracked
files. But when git status is called with the "-uno" option, the user
asked to ignore untracked files, so they must be ignored in submodules
too. To achieve this, the new flag DIFF_OPT_IGNORE_UNTRACKED_IN_SUBMODULES
is introduced.

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>git status: Fix false positive "new commits" output for dirty submodules</title>
<updated>2010-03-13T06:17:24Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-03-12T21:23:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=85adbf2f751a91429de6b431c45737ba9d7e9e00'/>
<id>urn:sha1:85adbf2f751a91429de6b431c45737ba9d7e9e00</id>
<content type='text'>
Testing if the output "new commits" should appear in the long format of
"git status" is done by comparing the hashes of the diffpair. This always
resulted in printing "new commits" for submodules that contained untracked
or modified content, even if they did not contain new commits. The reason
was that match_stat_with_submodule() did set the "changed" flag for dirty
submodules, resulting in two-&gt;sha1 being set to the null_sha1 at the call
sites, which indicates that new commits are present. This is changed so
that when no new commits are present, the same object names are in the
sha1 field for both sides of the filepair, and the working tree side will
have the "dirty_submodule" flag set when appropriate. For a submodule to
be seen as modified even when it just has a dirty work tree, some
conditions had to be extended to also check for the "dirty_submodule"
flag.

Unfortunately the test case that should have found this bug had been
changed incorrectly too. It is fixed and extended to test for other
combinations too.

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>Refactor dirty submodule detection in diff-lib.c</title>
<updated>2010-03-13T06:17:17Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-03-11T21:50:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ae6d5c1b6f78ef48f606e5a267915fa31b37a679'/>
<id>urn:sha1:ae6d5c1b6f78ef48f606e5a267915fa31b37a679</id>
<content type='text'>
Moving duplicated code into the new function match_stat_with_submodule().
Replacing the implicit activation of detailed checks for the dirtiness of
submodules when DIFF_FORMAT_PATCH was selected with explicitly setting
the recently added DIFF_OPT_DIRTY_SUBMODULES option in diff_setup_done().

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>revision: introduce setup_revision_opt</title>
<updated>2010-03-09T09:11:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-03-09T06:58:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=32962c9bd5149005b163dff230670872eb99286a'/>
<id>urn:sha1:32962c9bd5149005b163dff230670872eb99286a</id>
<content type='text'>
So far the last parameter to setup_revisions() was to specify the default
ref when the command line did not give any (typically "HEAD").  This changes
it to take a pointer to a structure so that we can add other information without
touching too many codepaths in later patches.

There is no functionality change.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>git status: Show detailed dirty status of submodules in long format</title>
<updated>2010-03-08T23:49:23Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-03-08T12:53:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9297f77e6d350f33de961e149dc33c77e7392db4'/>
<id>urn:sha1:9297f77e6d350f33de961e149dc33c77e7392db4</id>
<content type='text'>
Since 1.7.0 there are three reasons a submodule is considered modified
against the work tree: It contains new commits, modified content or
untracked content. Lets show all reasons in the long format of git status,
so the user can better asses the nature of the modification. This change
does not affect the short and porcelain formats.

Two new members are added to "struct wt_status_change_data" to store the
information gathered by run_diff_files(). wt-status.c uses the new flag
DIFF_OPT_DIRTY_SUBMODULES to tell diff-lib.c it wants to get detailed
dirty information about submodules.

A hint line for submodules is printed in the dirty header when dirty
submodules are present.

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>git diff --submodule: Show detailed dirty status of submodules</title>
<updated>2010-03-05T06:16:33Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-03-04T21:20:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c7e1a73641e24340bf93f6f1792220fa9154cda3'/>
<id>urn:sha1:c7e1a73641e24340bf93f6f1792220fa9154cda3</id>
<content type='text'>
When encountering a dirty submodule while doing "git diff --submodule"
print an extra line for new untracked content and another for modified
but already tracked content. And if the HEAD of the submodule is equal
to the ref diffed against in the superproject, drop the output which
would just show the same SHA1s and no commit message headlines.

To achieve that, the dirty_submodule bitfield is expanded to two bits.
The output of "git status" inside the submodule is parsed to set the
according bits.

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 'jl/diff-submodule-ignore'</title>
<updated>2010-01-27T06:53:13Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2010-01-27T06:53:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d539de9f25920f099e4e56b0acbb4ebf246ff0f4'/>
<id>urn:sha1:d539de9f25920f099e4e56b0acbb4ebf246ff0f4</id>
<content type='text'>
* jl/diff-submodule-ignore:
  Teach diff --submodule that modified submodule directory is dirty
  git diff: Don't test submodule dirtiness with --ignore-submodules
  Make ce_uptodate() trustworthy again
</content>
</entry>
<entry>
<title>git diff: Don't test submodule dirtiness with --ignore-submodules</title>
<updated>2010-01-25T05:03:23Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-01-23T16:37:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4d34477f4c5dbebc55aa1362fd705440590a85f1'/>
<id>urn:sha1:4d34477f4c5dbebc55aa1362fd705440590a85f1</id>
<content type='text'>
The diff family suppresses the output of submodule changes when
requested but checks them nonetheless. But since recently submodules
get examined for their dirtiness, which is rather expensive. There is
no need to do that when the --ignore-submodules option is used, as
the gathered information is never used anyway.

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
