• G
    git-gui: handle non-standard worktree locations · 21985a11
    Giuseppe Bilotta 提交于
    Don't rely on the git worktree being the updir of the gitdir, since it
    might not be. Instead, define (and use) a new _gitworktree global
    variable, setting it to $GIT_WORK_TREE if present, falling back to
    core.worktree if defined, and finally to whatever we guess the correct
    worktree is. Getting core.worktree requires the config from the alleged
    git dir _gitdir to be loaded early.
    
    Supporting non-standard worktree locations also breaks the git-gui
    assumption (made when calling gitk) that the worktree was the dirname of
    $_gitdir and that, by consequence, the git dir could be set to the tail
    of $_gitdir once we changed to the worktree root directory. Therefore,
    we need to export a GIT_DIR environment variable set to the full,
    normalized path of $_gitdir instead. We also skip changing to the worktree
    directory if it's empty (i.e. if we're working on a bare repository).
    Signed-off-by: NGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
    Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
    21985a11
git-gui.sh 88.9 KB