Thread (15 messages) 15 messages, 2 authors, 2016-06-15

Re: [PATCH] git-init: set core.workdir when GIT_WORK_DIR is specified

flat view

From: Matthias Lederhofer <hidden>
Date: 2016-06-15 22:43:00

Possibly related (same subject, not in this thread)

Junio C Hamano [off-list ref] wrote:
Matthias Lederhofer [off-list ref] writes:
quoted
 * git init does not show the expansion of GIT_WORK_TREE to an
   absolute path, this might confuse the user
If the feature might confuse the user without extra output, it
probably is confusing to begin with, with or without it, so one
option might be to refuse relative path when running git-init.

However, as long as the expansion to absolute path is done
correctly, I do not think there is any room for confusion.  Who
would want a feature that lets you set work-tree to ../.., so
that no matter where in the working tree you cd around, git
assumes that the toplevel is two level up?  If you record the
work tree location in the configuration, you would want it to be
stable, and I do not think anybody would expect it be stored as
relative.  So I thought having the printf() would be a good way
for debugging the absolute expansion, but after that I do not
think it is needed (but again, I may well be missing some issues
you've thought about, so please tell me otherwise).
I really don't know what people would expect from git --work-tree=foo
init and therefore I thought it might help to tell them "core.worktree
= /path/to/foo".  For example one could think this would work (without
the message in brackets):

    ~/foo$ export GIT_DIR=`pwd`/repository.git
    ~/foo$ mkdir src
    ~/foo$ git --work-tree=src init
   [core.worktree = /home/user/foo/src]
    Initialized empty Git repository in /home/user/foo/repository.git/
    ~/foo$ cd ..; mv foo bar; cd bar
    ~/bar$ export GIT_DIR=`pwd`/repository.git

With the message in brackets it would be clear what breaks after
renaming the directory.

Note: git config core.worktree ../src fails after moving the working
tree because the value of core.worktree checked for validity.
Either run

    $ git --work-tree=. config [args]

or just do

    $ git --work-tree=src init

again in the new location and git-init will set core.worktree again.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help