<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git, branch gitgui-0.8.2</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=gitgui-0.8.2</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=gitgui-0.8.2'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2007-08-25T03:15:50Z</updated>
<entry>
<title>git-gui: Correct 'git gui blame' in a subdirectory</title>
<updated>2007-08-25T03:15:50Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-25T03:15:50Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=c80d25dbce759a8483ffc1f085fdf4cd63cf9f05'/>
<id>urn:sha1:c80d25dbce759a8483ffc1f085fdf4cd63cf9f05</id>
<content type='text'>
David Kastrup pointed out that the following sequence was not
working as we had intended:

  $ cd lib
  $ git gui blame console.tcl
  fatal: cannot stat path lib/console.tcl: No such file or directory

The problem here was we disabled the chdir to the root of the
working tree when we are running with a "bare allowed" feature
such as blame or browser, but we still kept the prefix we found via
`git rev-parse --show-prefix`.  This caused us to try and look for
the file "console.tcl" within the subdirectory but also include
the subdirectory's own path from the root of the working tree.
This is unlikely to succeed, unless the user just happened to have
a "lib/lib/console.tcl" file in the repository, in which case we
would produce the wrong result.

In the case of a bare repository we shouldn't get back a value from
`rev-parse --show-prefix`, so really $_prefix should only be set
to the non-empty string if we are in a working tree and we are in a
subdirectory of that working tree.  If this is true we really want
to always be at the top level of the working tree, as all paths are
accessed as though they were relative to the top of the working tree.
Converting $_prefix to a ../ sequence is a fairly simple approach
to moving up the requisite levels.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;</content>
</entry>
<entry>
<title>git-gui: Do not offer to stage three-way diff hunks into the index</title>
<updated>2007-08-23T06:44:13Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-23T06:44:13Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=9c9f5fa97fe078b59be14a6bcabb851745ddd48c'/>
<id>urn:sha1:9c9f5fa97fe078b59be14a6bcabb851745ddd48c</id>
<content type='text'>
git-apply does not accept a patch that was generated as a three-way
combined diff format such as we see during merge conflicts.  If we
get such a diff in our diff viewer and try to send it to git-apply
it just errors out and the user is left confused wondering why they
cannot stage that hunk.

Instead of feeding a known to be unacceptable hunk to git-apply we
now just disable the stage/unstage context menu option if the hunk
came from a three way diff.  The user may still be confused about
why they cannot work with a combined diff, but at least they are
only confused as to why git-gui is not offering them the action.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;</content>
</entry>
<entry>
<title>git-gui: Refactor diff pane popup support for future improvements</title>
<updated>2007-08-23T06:39:45Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-23T06:39:45Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=9f4119eb7651c7898f385198409be4ca051bc7ef'/>
<id>urn:sha1:9f4119eb7651c7898f385198409be4ca051bc7ef</id>
<content type='text'>
The current popup_diff_menu procedure is somewhat messy as it has a
few duplications of the same logic in each of the different legs of
the routine.  We can simplify these by setting a few state variables
in the different legs.

No functional change, just a cleanup to make it easier to implement
future functional changes within this block.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;</content>
</entry>
<entry>
<title>git-gui: Fix "unoptimized loading" to not cause git-gui to crash</title>
<updated>2007-08-22T06:41:00Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-22T06:41:00Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=875b7c93686d16e083dcea8b544e4f204113d8de'/>
<id>urn:sha1:875b7c93686d16e083dcea8b544e4f204113d8de</id>
<content type='text'>
If the tclsh command was not available to us at the time we were
"built" our lib/tclIndex just lists all of our library files and
we source all of them at once during startup, rather than trying
to lazily load only the procedures we need.  This is a problem as
some of our library code now depends upon the git-version proc,
and that proc is not defined until after the library was fully
loaded.

I'm moving the library loading until after we have determined the
version of git we are talking to, as this ensures that the required
git-reversion procedure is defined before any library code can be
loaded.  Since error_popup is defined in the library we instead use
tk_messageBox directly for errors found during the version detection.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;</content>
</entry>
<entry>
<title>git-gui: Paper bag fix "Stage Hunk For Commit" in diff context menu</title>
<updated>2007-08-21T06:22:53Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-21T06:22:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=ce015c213fbef39140b6192db28110bc666dc6c8'/>
<id>urn:sha1:ce015c213fbef39140b6192db28110bc666dc6c8</id>
<content type='text'>
In a13ee29b975d3a9a012983309e842d942b2bbd44 I totally broke the
"Stage Hunk For Commit" feature by making this menu item always
appear in a disabled state, so it was never invokable.  A "teaser
feature", just sitting there taunting the poor user who has become
used to having it available.

The issue caused by a13ee was I added a test to look at the data
in $file_states, but I didn't do that test correctly as it was
always looking at a procedure local $file_states array, which is
not defined, so the test was always true and we always disabled
the menu entry.

Instead we only want to disable the menu entry if the current file
we are looking at has no file state information (git-gui is just a
very confused little process) or it is an untracked file (and we
cannot stage individual hunks).

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;</content>
</entry>
<entry>
<title>git-gui: Allow git-merge to use branch names in conflict markers</title>
<updated>2007-08-20T06:17:05Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-20T06:17:05Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=18a01a0da428c9e1034247e2b40c62e506b73580'/>
<id>urn:sha1:18a01a0da428c9e1034247e2b40c62e506b73580</id>
<content type='text'>
Earlier when I rewrote the merge implementation for git-gui I broke
it such that the conflict markers for the "theirs" side of the hunk
was using a full SHA-1 ID in hex, rather than the name of the branch
the user had merged.  This was because I got paranoid and passed off
the full SHA-1 to git-merge, instead of giving it the reference name
the user saw in the merge dialog.

I'd still like to resolve the SHA-1 upfront in git-gui and always use
that value throughout the merge, but I can't do that until we have a
full implementation of git-merge written in Tcl.  Until then its more
important that the conflict markers be useful to the end-user, so we
need to pass off the ref name and not the SHA-1 ID.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;</content>
</entry>
<entry>
<title>git-gui: Fix window manager problems on ion3</title>
<updated>2007-08-20T04:38:13Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-20T04:53:04Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=c6951ddb522a7d8ee0fc371cf9c37e727e676989'/>
<id>urn:sha1:c6951ddb522a7d8ee0fc371cf9c37e727e676989</id>
<content type='text'>
cehteh on #git noticed that secondary windows such as console
windows from push/fetch/merge or the blame browser failed on ion
when we tried to open them a second time.

The issue turned out to be the fact that on ion [winfo ismapped .]
returns false if . is not visible right now because it has been
obscured by another window in the same panel.  So we need to keep
track of whether or not the root window has been displayed for this
application, and once it has been we cannot ever assume that ismapped
is going to return true.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Added support for OS X right click</title>
<updated>2007-08-04T06:47:30Z</updated>
<author>
<name>Väinö Järvelä</name>
<email>v@pp.inet.fi</email>
</author>
<published>2007-08-03T09:27:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=51b8c5021a19195e0f138832b081a356a2247bca'/>
<id>urn:sha1:51b8c5021a19195e0f138832b081a356a2247bca</id>
<content type='text'>
OS X sends Button-2 on a "real" right click, such as with a three
button mouse, or by using the two-finger trackpad click.

Signed-off-by: Väinö Järvelä &lt;v@pp.inet.fi&gt;
Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
<entry>
<title>git-gui: Avoid Tcl error in popup menu on diff viewer</title>
<updated>2007-08-03T02:55:22Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-08-03T02:55:22Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=a13ee29b975d3a9a012983309e842d942b2bbd44'/>
<id>urn:sha1:a13ee29b975d3a9a012983309e842d942b2bbd44</id>
<content type='text'>
If there is no path currently shown in the diff viewer then we
were getting Tcl errors anytime the user right-clicked on the
diff viewer to bring up its popup menu.  The bug here is caused
by trying to get the file_state for the empty string; this path
is never seen so we never have file_state for it.  In such cases
we now disable the Stage Hunk For Commit option.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;</content>
</entry>
<entry>
<title>git-gui: Minor refactoring of merge command line in merge support</title>
<updated>2007-07-30T03:44:52Z</updated>
<author>
<name>Shawn O. Pearce</name>
<email>spearce@spearce.org</email>
</author>
<published>2007-07-30T00:21:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=84f67537b13bf0a959b1cad50b0d490071dc921a'/>
<id>urn:sha1:84f67537b13bf0a959b1cad50b0d490071dc921a</id>
<content type='text'>
This is just a small code movement to cleanup how we generate
the command line for a merge.  I'm only doing it to make the
next series of changes slightly more readable.

Signed-off-by: Shawn O. Pearce &lt;spearce@spearce.org&gt;
</content>
</entry>
</feed>
