All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Richard Weinberger <richard@nod.at>,
	git@vger.kernel.org, Jeff King <peff@peff.net>
Subject: Re: git ate my home directory :-(
Date: Mon, 25 Mar 2013 15:08:22 -0700	[thread overview]
Message-ID: <20130325220822.GG1414@google.com> (raw)
In-Reply-To: <7vfvzjw334.fsf@alter.siamese.dyndns.org>

Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:

>> In git versions including the patch 2cd83d10bb6b (setup: suppress
>> implicit "." work-tree for bare repos, 2013-03-08, currently in "next"
>> but not "master"), you can set GIT_IMPLICIT_WORK_TREE=0 to avoid this
>> behavior.
>
> WAT?

Is that false?

If I understand the history correctly, the ability to set the GIT_DIR
envvar was meant to allow a person to keep their .git directory outside
the worktree.  So you can do:

	git init my-favorite-repo
	cd my-favorite-repo
	...work as usual...

	# cleaning time!
	mv .git ~/my-favorite-repo-metadata.git
	GIT_DIR=$HOME/my-favorite-repo-metadata.git; export GIT_DIR
	... work as usual...

If you want to set GIT_DIR and treat it as a bare repository, the
sane way to do that is simply

	cd ~/my-favorite-bare-repository.git
	... use git as usual ...

But if something (for example relative paths used by your script)
ties your cwd somewhere else, you might really want to do

	GIT_DIR=~/my-favorite-bare-repository.git; export GIT_DIR
	... work as usual ...

and as a side effect of Jeff's patch there is now a mechanism to do
that:

	GIT_IMPLICIT_WORK_TREE=0; export GIT_IMPLICIT_WORK_TREE
	GIT_DIR=~/my-favorite-bare-repository.git; export GIT_DIR
	... work as usual ...

This is of course unsafe because it ties your usage to a specific
version of git.  And the variable is not advertised in the
documentation.

  reply	other threads:[~2013-03-25 22:08 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-25 21:38 git ate my home directory :-( Richard Weinberger
2013-03-25 21:43 ` Jonathan Nieder
2013-03-25 22:02   ` Junio C Hamano
2013-03-25 22:08     ` Jonathan Nieder [this message]
2013-03-25 22:15       ` Junio C Hamano
2013-03-25 22:06   ` Junio C Hamano
2013-03-25 22:09     ` Richard Weinberger
2013-03-25 22:15       ` Jonathan Nieder
2013-03-25 22:20       ` Junio C Hamano
2013-03-25 22:27         ` Richard Weinberger
2013-03-25 22:13     ` Jonathan Nieder
2013-03-25 22:21       ` Brandon Casey
2013-03-26  8:02     ` Philip Oakley
2013-03-26  9:48       ` Duy Nguyen
2013-03-26 15:04         ` Jeff King
2013-03-26 16:32           ` Junio C Hamano
2013-03-27 13:05           ` Duy Nguyen
2013-03-26 21:47         ` Philip Oakley
2013-03-26 13:07       ` Richard Weinberger
2013-03-26 14:56         ` Jeff King
2013-03-26 17:06           ` Richard Weinberger
2013-03-26 17:20             ` demerphq
2013-03-26 17:48               ` Jeff King
2013-03-26 19:08                 ` demerphq
2013-03-26 17:41             ` Jeff King
2013-03-26 18:20               ` Junio C Hamano
2013-03-26 20:08                 ` Jeff King
2013-03-26 20:11                   ` [DONOTAPPLY PATCH 1/3] environment: set GIT_WORK_TREE when we figure out work tree Jeff King
2013-03-26 20:16                     ` Jonathan Nieder
2013-03-26 20:12                   ` [DONOTAPPLY PATCH 2/3] setup: warn about implicit worktree with $GIT_DIR Jeff King
2013-03-26 20:21                     ` Jonathan Nieder
2013-03-26 20:27                       ` Jeff King
2013-03-26 20:35                         ` Jonathan Nieder
2013-03-27  8:24                         ` Matthieu Moy
2013-03-26 20:13                   ` [DONOTAPPLY PATCH 3/3] setup: treat GIT_DIR without GIT_WORK_TREE as a bare repo Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130325220822.GG1414@google.com \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=richard@nod.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.