<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/lib/diff.tcl, branch gitgui-0.13.0</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=gitgui-0.13.0</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=gitgui-0.13.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2010-07-30T09:05:27Z</updated>
<entry>
<title>git-gui: use textconv filter for diff and blame</title>
<updated>2010-07-30T09:05:27Z</updated>
<author>
<name>Clément Poulain</name>
<email>clement.poulain@ensimag.imag.fr</email>
</author>
<published>2010-07-30T08:11:02Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=1fbaccad4dd8d6a9a893843c73f3e47c4ba8b717'/>
<id>urn:sha1:1fbaccad4dd8d6a9a893843c73f3e47c4ba8b717</id>
<content type='text'>
Create a checkbox "Use Textconv For Diffs and Blame" in git-gui options.
If checked and if the driver for the concerned file exists, git-gui calls diff
and blame with --textconv option

Signed-off-by: Clément Poulain &lt;clement.poulain@ensimag.imag.fr&gt;
Signed-off-by: Diane Gasselin &lt;diane.gasselin@ensimag.imag.fr&gt;
Signed-off-by: Axel Bonnet &lt;axel.bonnet@ensimag.imag.fr&gt;
Signed-off-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Pat Thoyts &lt;patthoyts@users.sourceforge.net&gt;
</content>
</entry>
<entry>
<title>git-gui: Support applying a range of changes at once</title>
<updated>2010-01-23T23:14:15Z</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@unpythonic.net</email>
</author>
<published>2009-12-08T00:22:43Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=ff07c3b6210fbebf07ce2820b5a9a95f0583ad8d'/>
<id>urn:sha1:ff07c3b6210fbebf07ce2820b5a9a95f0583ad8d</id>
<content type='text'>
Multiple lines can be selected in the diff viewer and applied all
at once, rather than selecting "Stage Line For Commit" on each
individual line.

Signed-off-by: Jeff Epler &lt;jepler@unpythonic.net&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Use git diff --submodule when available</title>
<updated>2010-01-23T23:14:15Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2010-01-23T22:04:12Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=a9ae14a1c50a9b5bd051be629dba0fb04b6fd67a'/>
<id>urn:sha1:a9ae14a1c50a9b5bd051be629dba0fb04b6fd67a</id>
<content type='text'>
Doing so is much faster and gives the same output.
Here are some numbers:

  $ time git submodule summary
  real	0m0.219s
  user	0m0.050s
  sys	0m0.111s

  $ time git diff --submodule
  real	0m0.012s
  user	0m0.003s
  sys	0m0.009s

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Fix applying a line when all following lines are deletions</title>
<updated>2010-01-23T23:00:09Z</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@unpythonic.net</email>
</author>
<published>2009-12-08T00:22:42Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=390425bdef450a0eb246552f94ca88a05dc11d06'/>
<id>urn:sha1:390425bdef450a0eb246552f94ca88a05dc11d06</id>
<content type='text'>
If a diff looked like:

 @@
  context
 -del1
 -del2

and you wanted to stage the deletion 'del1', the generated patch
wouldn't apply because it was missing the line 'del2' converted to
context, but this line was counted in the @@-line

Signed-off-by: Jeff Epler &lt;jepler@unpythonic.net&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Ensure submodule path is quoted properly</title>
<updated>2009-08-27T00:42:50Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2009-08-27T00:39:45Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=118d938812f3fc660f43bad9b546e7dadc3571a9'/>
<id>urn:sha1:118d938812f3fc660f43bad9b546e7dadc3571a9</id>
<content type='text'>
When quoting an arbitrary user string in Tcl, its better to use
[list ...] than to use {...}, in case the user string has spaces
or { embedded within it.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: fix diff for partially staged submodule changes</title>
<updated>2009-08-27T00:35:16Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2009-08-26T20:25:15Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=af413de47b8b285ffa489df14023180456986c05'/>
<id>urn:sha1:af413de47b8b285ffa489df14023180456986c05</id>
<content type='text'>
When a submodule commit had already been staged and another commit had
been checked out inside the submodule, the diff always displayed the
submodule commit log messages between the last supermodule commit and
the working tree, totally ignoring the commit in the index.

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: display summary when showing diff of a submodule</title>
<updated>2009-08-10T15:30:26Z</updated>
<author>
<name>Jens Lehmann</name>
<email>Jens.Lehmann@web.de</email>
</author>
<published>2009-07-21T17:32:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=246295bdeb00ec6d533f22937992d1f9a06f8e71'/>
<id>urn:sha1:246295bdeb00ec6d533f22937992d1f9a06f8e71</id>
<content type='text'>
As it is hard to say what changed in a submodule by looking at the hashes,
let's show the colored submodule summary instead.

Signed-off-by: Jens Lehmann &lt;Jens.Lehmann@web.de&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Avoid an infinite rescan loop in handle_empty_diff.</title>
<updated>2009-02-08T19:50:11Z</updated>
<author>
<name>Alexander Gavrilov</name>
<email>angavrilov@gmail.com</email>
</author>
<published>2009-02-07T16:24:01Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=584fa9ccf4b467e7633c100333cadf92e0c07894'/>
<id>urn:sha1:584fa9ccf4b467e7633c100333cadf92e0c07894</id>
<content type='text'>
If the index update machinery and git diff happen to disagree
on whether a particular file is modified, it may cause git-gui
to enter an infinite index rescan loop, where an empty diff
starts a rescan, which finds the same set of files modified,
and tries to display the diff for the first one, which happens
to be the empty one. A current example of a possible disagreement
point is the autocrlf filter.

This patch breaks the loop by using a global counter to track
the auto-rescans. The variable is reset whenever a non-empty
diff is displayed.

Another suggested approach, which is based on giving the
--exit-code argument to git diff, cannot be used, because
diff-files seems to trust the timestamps in the index, and
returns a non-zero code even if the file is actually
unchanged, which essentially defeats the purpose of the
auto-rescan logic.

Signed-off-by: Alexander Gavrilov &lt;angavrilov@gmail.com&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Fix the after callback execution in rescan.</title>
<updated>2008-11-16T21:33:09Z</updated>
<author>
<name>Alexander Gavrilov</name>
<email>angavrilov@gmail.com</email>
</author>
<published>2008-11-16T18:46:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=7cf4566f48b7f17c68ab215a9ca6ef7792d9d791'/>
<id>urn:sha1:7cf4566f48b7f17c68ab215a9ca6ef7792d9d791</id>
<content type='text'>
The rescan function receives a callback command
as its parameter, which is supposed to be executed
after the scan finishes. It is generally used to
update status. However, rescan may initiate a
loading of a diff, which always calls ui_ready after
completion. If the after handler is called before
that, ui_ready will override the new status.

This commit ensures that the after callback is
properly threaded through the diff machinery.

Since it uncovered the fact that force_first_diff
actually didn't work due to an undeclared global
variable, and the desired effects appeared only
because of the race condition between the diff
system and the rescan callback, I also reimplement
this function to make it behave as originally
intended.

Signed-off-by: Alexander Gavrilov &lt;angavrilov@gmail.com&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Do not munge conflict marker lines in a normal diff</title>
<updated>2008-11-01T23:12:29Z</updated>
<author>
<name>Johannes Sixt</name>
<email>johannes.sixt@telecom.at</email>
</author>
<published>2008-10-14T11:48:37Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=63aa1d0cb78e8fcf36ea2b8b65750d9a45d59f63'/>
<id>urn:sha1:63aa1d0cb78e8fcf36ea2b8b65750d9a45d59f63</id>
<content type='text'>
Previously, conflict markers were highlighted in two ways: (1) They
received a distinguishing color; and (2) they had the '+' removed at the
beginning of the line. However, by doing (2), a hunk that contained
conflict markers could not be staged or unstaged because the resulting
patch was corrupted. With this change we no longer modify the diff text
of a 2-way diff, so that "Stage Hunk" and friends work.

Note that 3-way diff of a conflicted file is unaffected by this change,
and '++' before conflict markers is still removed. But this has no negative
impact because in this mode staging hunks or lines is disabled anyway.

Signed-off-by: Johannes Sixt &lt;johannes.sixt@telecom.at&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
</feed>
