Re: [PATCH] git-init: set up GIT_DIR/workdir if GIT_WORK_DIR is set
- From
- Matthias Lederhofer <matled@gmx.net>
- Date
- Mar 12, 2007, 14:08 UTC
- Message-ID
- <20070312140808.GA17450@moooo.ath.cx>
- In-Reply-To
- <fcaeb9bf0703120636r7038a7fat24e571e7c087d13d@mail.gmail.com>
Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
> Let users create $GIT_DIR/workdir themselves. Your way may be less > confusing to you but might be more confusing to me because I _might_ > expect a relative workdir setting (for example I move the repository > and the working directory together to another place).
Well, without this patch you havo to do one of these:
/tmp$ mkdir repository working_directory
/tmp$ git --git-dir=repository init
/tmp$ git --git-dir=repository config core.bare false
/tmp$ echo ../working_directory > repository/workdiror
/tmp$ mkdir repository working_directory
/tmp/repository$ cd repository
/tmp$ git init
/tmp/repository$ mv .git/* .
/tmp/repository$ rmdir .git
/tmp$ echo ../working_directory > repository/workdirWhere the second example is probably better because git init creates a bare repository in the first case which might have more settings different from a 'normal' repository (it actually sets also core.logallrefupdates = true which probably should be added to the first example).
With this patch you'd have to do
/tmp$ mkdir repository working_directory
/tmp$ git --git-dir=repository --work-dir=working_directory init
/tmp$ echo ../working_directory > repository/workdirin case you really want a relative path.
Because the first two ways are so long I think git init should have some way to handle this case.
I don't want to put $GIT_WORK_DIR 'as is' to $GIT_DIR/workdir because $GIT_WORK_DIR is normally interpreted as relative path to the current working directory and not relative to $GIT_DIR.
Perhaps we could add another flag to git init which will be used 'as is'
for $GIT_DIR/workdir:
git --git-dir=repository init --work-dir=../working_directoryOther things I can think of:
Add a --not-bare flag to git init:
$ git --git-dir=repository init --not-bare
$ echo ../working_directory > repository/workdir Tell the user what to do in case the path should be relative:
$ git --git-dir=repository --work-dir=working_directory init
You specified a relative working directory and git has
automatically expanded this to /tmp/working_directory. If you
prefer a relative path you can do:
echo relative_path > repository/workdir