Re: [git-gui] bug report: "Open existing repository" dialog fails on submodules
- From
Rémi Rampin <remirampin@gmail.com>
- Date
- Feb 2, 2015, 15:59 UTC
- Message-ID
- <CAMto89CHf4OT_S05SaRrVRZvF-PH2_6DrcEpdGiUfaRGutJQHw@mail.gmail.com>
- In-Reply-To
- <CAFOYHZBpVf0Dk=aM3hbpVjwc-f_WtZx+Myaja6=V2KXCDijsQA@mail.gmail.com>
2015-02-02 3:41 UTC-05:00, Chris Packham <judge.packham@gmail.com>:
Show 5 quoted lines
> [...] > But it actually looks like git rev-parse --resolve-git-dir $path needs > to be run inside a git repository _any_ git repository, which seems a > bit backwards to me. > [...]
Indeed, looking at git-rev-parse(1), the correct option might be --show-toplevel, which will print the cwd if it is the top-level of a non-bare repository:
cd $candidate && test $(git rev-parse --show-toplevel) = $candidate
or
test $(git --git-dir=$candidate rev-parse --show-toplevel) = $candidate
Of course Git will resolve symlinks at this point, so $candidate has to be resolved first for the equality to make sense.
Other solution is to parse the "gitdir: ..." format and recurse, which is not exactly hard (provided you speak Tcl).