Subject: Re: What commands can and can not be used with bare repositories?

From: Theodore Tso <[email-masked]>
Date: Sat, 30 Dec 2006 21:12:49 -0500

On Sat, Dec 30, 2006 at 08:57:32PM -0500, Shawn Pearce wrote:
> Try "git --bare log".  Or "git --git-dir=/path/to log".
>
> Actually most commands work on a bare repository.
> Very few don't: the ones that require a working directory.
> E.g. status/revert/cherry-pick/commit/am/merge/pull.  (You can
> pull from a bare repository, but you cannot run pull *in* a bare
> repository.)

Ah, right.  Thanks, I missed the --bare option.  It should probably be
mentioned in the git-clone man page, instead of only in the top-level
git manpage.

> > confused, but maybe we could fix that.  What if we were to change "git
> > clone --bare" to create the .git -> . symlink, and then add a check to
> > commands that require a working directory to see if ".git" is a symlink
> > to ., and if so, give an error message, "operation not supported on bare
> > repository"?
> 
> No.  Better would be to make git's repository setup logic
> automatically detect if "." is a Git repository, and if so let the
> commands that work without a working directory run.

That makes sense, although the hueristic for determining whether or
not "." is a Git repository might be a little interesting.  Say, if
there is no containing directory which has a .git directory, and the
directories "objects", "info", and "refs" are present?

						- Ted