How to relocate common and workdir?
- From
- Jörg Sommer <joerg@jo-so.de>
- Date
- Jan 2, 2025, 09:30 UTC
- Message-ID
- <h7zchkwkm7djm5qrxnwyh7jvzymrtuzlc4rllnllrcxlrvgtx7@jiu7eiekjit5>
Hello,
the KAS project currently discusses a patch [1] to relocate the common dir and adjust the .git file in the worktree to match the new location. Is there something else to adjust than just the .git file?
[1] https://groups.google.com/g/kas-devel/c/OM7bm-tjyLM
The background is that the git repository gets mounted inside a Docker container at a fixed position /repo. This works fine for pure git repositories, but with shared worktrees this fails, because the location in the file /repo/.git is not inside the container.
Now, the idea is to mount $(git rev-parse --common-dir) at /repo-common inside the container, and overlay /repo/.git (via bind-mount) with a new file that refers to /repo-common: `sed "s|gitdir: ${git_com_dir}/|gitdir: /repo-common/|" "${KAS_REPO_DIR}/.git"`.
I saw that there are also the files *commondir* and *gitdir* in *.git/worktrees/…*. I suspect there are circumstances these files need adjustments, too.
Is it really that easy and safe to modify the .git file and point to a new location of the common-dir, or has to be done more?
Thanks for your help.
Kind regards, Jörg
-- Mit Statistik kann man alles zeigen – sogar das Gegenteil.