Re: [RFC] GIT_WORK_TREE
- From
- Matthias Lederhofer <matled@gmx.net>
- Date
- Jun 3, 2007, 19:32 UTC
- Message-ID
- <20070603193203.GA24781@moooo.ath.cx>
- In-Reply-To
- <loom.20070603T175743-376@post.gmane.org>
Sergio <sergio.callegari@gmail.com> wrote:
Show 10 quoted lines
> Matthias Lederhofer <matled <at> gmx.net> writes: > If I am not wrong, with this we detach the WT from the REPO by letting git know > our working tree if the working tree does not include a repo (.git) directory. > And this is done either: > - by setting the GIT_WORK_TREE environment variable whenever needed > - by passing the --work-tree parameter to git when needed > - by setting the core.worktree config option in the git repo, so that the > repository knows where its default work tree is... > > Is this correct? or am I missing some other ways?
That's right, you'd set GIT_DIR and core.worktree/GIT_WORK_TREE.
Show 6 quoted lines
> Would it make sense to make the _WT_ know where its repo is? > > I.e. having something like a .git-repo file a the top dir of a WT, so that when > git is invoked within the WT it can scan up the WT until it finds the .git-repo > file and automatically decide that GIT_WORK_TREE is at the dir containing that > .git-repo file and that GIT_DIR is at the file pointed by that .git-repo?
Symlinking the .git directory is quite similar to this and works already without this patch series. Anyway I spontaneously can think of the following use cases, so it might be interesting to add this feature: - The use case Nguyen mentioned, e.g. the filesystem does not support symlinks and for some reason it is not possible to use the git repository next to the working tree. - When executing potentially 'dangerous' programs in the working tree it is safer to have a file pointing to the repository than placing the repository or a symlink to the repository in the working tree (breaking the .git-repo file might be confusing but is not as bad as breaking the repository). - In case of a publicly available working tree it might be ok to publish the path to the repository accidentially (which might happen if the permissions for the .git-repo file are too loose) but there would be no risk that wrong permissions could disclose the repository itself.
What I haven't thought through is if it could make sense to honor the GIT_WORK_TREE/core.worktree setting when such a .git-repo file is used or just use the directory containing the file as work tree.