]> git.ipfire.org Git - thirdparty/git.git/commit
git-gui: default to full copy for linked worktrees
authorMark Levedahl <mlevedahl@gmail.com>
Mon, 21 Jul 2025 15:12:18 +0000 (11:12 -0400)
committerMark Levedahl <mlevedahl@gmail.com>
Mon, 21 Jul 2025 22:22:33 +0000 (18:22 -0400)
commit3ce650f4c93f9f3aacdb6a1d8cef21bb2009bfa3
tree493078163da4811bf854188dafa12e7e9d3931dc
parent6ff8d68ec1adf170aa57630989fde092d18e02de
git-gui: default to full copy for linked worktrees

git-gui's default clone method is git-clone's default, and this uses
hardlinks rather than copying the objects directory for local
repositories. However, this method explicitly fails if a symlink (or
.gitfile) exists in the path to the objects directory. Thus, the default
clone option fails for worktrees created by git-new-workdir or
git-worktree.  git-gui's original do_clone trapped this error for a
symlinked git-new-workdir tree, directly falling back to a full clone,
while the updated git-gui using git-clone does not. (The old do_clone
could not handle gitfile linked worktrees, however).

Let's apply the more friendly fallback to a full clone in both these
cases where git-clone behavior throws an error on the default method.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
lib/choose_repository.tcl