4 ms·
I want a variant of this where I make a worktree that has no ability to push anywhere including its parent. Instead the parent worktree pulls from it automatic
by amluto 11mo ago
I want a variant of this where I make a worktree that has no ability to push anywhere including its parent. Instead the parent worktree pulls from it automatically. That way I can run some sandboxed workflow that might arbitrarily corrupt the work tree, possibly overwriting everything in it and symlinked from it, without losing data.
- Normal_gaussian 11mo agoThe easy way to do this is to create a worktree and then just run it in some form of sandbox - e.g. a Docker container. In the worktree there is no .git directory, just a .git file which has a single line: "gitdir: <path to gitdir>". If your sandbox doesn't have access to the gitdir, you're golden.
- gcr 11mo agoWhat if the sandbox needs access to the history? Imagine asking for help bisecting something, for example
- deleted 11mo ago[deleted]
- Normal_gaussian 11mo agoThen you'll probably want a clone; which will cost in more space. Just remember to remove the remotes. You could always use an overlayFS with the main (non-worktree) repo as the lowerdir (and then remove the remotes in the overlayFS), but that relies on you not trying to keep working on the git repo at the same time.
- amluto 11mo agoOr if I want the sandbox to be able to create commits, which is extremely useful.
- adastra22 11mo agoMount the parent read-only.
- gcr 11mo agoDon’t you just want a clone in that case?
- amluto 11mo agoBy itself, that doesn’t help if the thing in the sandbox does useful work for two hours and then does rm -rf /