summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b3678ba)
raw | patch | inline | side by side (parent: b3678ba)
author | Shawn O. Pearce <spearce@spearce.org> | |
Thu, 16 Nov 2006 03:13:45 +0000 (22:13 -0500) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Sat, 18 Nov 2006 04:56:15 +0000 (23:56 -0500) |
Some users may want to start us by running "git --git-dir=... gui"
rather than trying to cd into the directory first. This is especially
true if they want to just make a shortcut to our executable on Windows
and always have that associated with a certain repository.
Since Tcl on Windows throws away our environment and doesn't pass it
down to the child process correctly we cannot call git-rev-parse to
get the GIT_DIR environment variable. So instead we ask for it
specifically ourselves; if its not defined then we ask rev-parse.
This should actually reduce startup by 1 fork/exec if we were started
as "git gui" as GIT_DIR will be set for us.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
rather than trying to cd into the directory first. This is especially
true if they want to just make a shortcut to our executable on Windows
and always have that associated with a certain repository.
Since Tcl on Windows throws away our environment and doesn't pass it
down to the child process correctly we cannot call git-rev-parse to
get the GIT_DIR environment variable. So instead we ask for it
specifically ourselves; if its not defined then we ask rev-parse.
This should actually reduce startup by 1 fork/exec if we were started
as "git gui" as GIT_DIR will be set for us.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui | patch | blob | history |
index 844966453847ee8b16ad2978c5705e8a5dcab06a..7c2f803fec4551e6f0d2dbf24a5a2f73edf8d765 100755 (executable)
--- a/git-gui
+++ b/git-gui
##
## repository setup
-if { [catch {set cdup [exec git rev-parse --show-cdup]} err]
- || [catch {set gitdir [exec git rev-parse --git-dir]} err]} {
+if { [catch {set gitdir $env(GIT_DIR)}]
+ && [catch {set gitdir [exec git rev-parse --git-dir]} err]} {
catch {wm withdraw .}
error_popup "Cannot find the git directory:\n\n$err"
exit 1
}
-if {$cdup ne ""} {
- cd $cdup
+if {[catch {cd [file dirname $gitdir]} err]} {
+ catch {wm withdraw .}
+ error_popup "No working directory [file dirname $gitdir]:\n\n$err"
+ exit 1
}
-unset cdup
set single_commit 0
if {$appname eq {git-citool}} {