]> git.ipfire.org Git - thirdparty/git.git/commit - t/t0001-init.sh
init: teach --separate-git-dir to repair linked worktrees
authorEric Sunshine <sunshine@sunshineco.com>
Mon, 31 Aug 2020 06:57:59 +0000 (02:57 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 31 Aug 2020 18:47:45 +0000 (11:47 -0700)
commit42264bc841d416aab5a980cb4eeedf687f1190a5
tree637581d0c237af428efb6b6bb110e7dc663e6d70
parentb214ab5aa597e748c228e657d4eb7c18960e6a67
init: teach --separate-git-dir to repair linked worktrees

A linked worktree's .git file is a "gitfile" pointing at the
.git/worktrees/<id> directory within the repository. When `git init
--separate-git-dir=<path>` is used on an existing repository to relocate
the repository's .git/ directory to a different location, it neglects to
update the .git files of linked worktrees, thus breaking the worktrees
by making it impossible for them to locate the repository. Fix this by
teaching --separate-git-dir to repair the .git file of each linked
worktree to point at the new repository location.

Reported-by: Henré Botha <henrebotha@gmail.com>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/init-db.c
t/t0001-init.sh