Re: Feature request for automatic worktree checkout
- From
Jacob Keller <jacob.keller@gmail.com>
- Date
- Jul 19, 2016, 05:46 UTC
- Message-ID
- <CA+P7+xoeO43A+BdkdzeMpuKh=B7Ma+JVq3WR5bsX8XGYxPdmxg@mail.gmail.com>
- In-Reply-To
- <xmqqpoqakd8s.fsf@gitster.mtv.corp.google.com>
On Mon, Jul 18, 2016 at 11:33 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 16 quoted lines
> Ehsan Azarnasab <azarnasab@gmail.com> writes: > >> Currently if I have a branch checked out in a work-tree, git-checkout >> will show this error message when checking out that branch: >> >> $ git checkout master >> fatal: 'master' is already checked out at '/home/dashesy/development/feature' >> >> It would be very useful to instead of this error just change the >> current working directory, so git checkout would become a `cd` command > > That is an understandable thing to want from 10,000ft view, but it > would not be something Git, or any external command that is spawned > by the shell for that matter, can address. You'd need to teach the > shell to cooperate. > --
You could implement this for yourself as a shell function sort of, by wrapping git, but it's a bit crazy, something like:
function git() {
# check if first argument is checkout, otherwise exec git
# check second argument, and parse git-worktree to determine if it
is checked out
# if so, just cd into the directory
# else exec git normally.
}I'll leave actual implementations to the user. Note at least for BASH, you need to actually do this as a function alias.
Thanks, Jake