зеркало из https://github.com/microsoft/git.git
git-gui: Correctly handle GIT_DIR environment variable.
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>
This commit is contained in:
Родитель
b3678bacbc
Коммит
fbee8500a5
11
git-gui
11
git-gui
|
@ -161,16 +161,17 @@ proc info_popup {msg} {
|
|||
##
|
||||
## 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}} {
|
||||
|
|
Загрузка…
Ссылка в новой задаче