Git development
 help / color / mirror / Atom feed
From: Shawn Pearce <spearce@spearce.org>
To: Theodore Ts'o <tytso@mit.edu>
Cc: git@vger.kernel.org
Subject: Re: What commands can and can not be used with bare repositories?
Date: Sat, 30 Dec 2006 20:57:32 -0500	[thread overview]
Message-ID: <20061231015732.GB5082@spearce.org> (raw)
In-Reply-To: <E1H0poE-0000qd-Ee@candygram.thunk.org>

Theodore Ts'o <tytso@mit.edu> wrote:
> What isn't documented is what commands actually can deal with a bare
> repository.  At the moment, it looks like a bare repository can be a
> target of a git pull, push, and merge commands

Sorry but 'git merge' cannot be used in a bare repository (no working
directory to update during the merge) and 'git merge' can only work on
the current repository, which rules out the bare repository.

> and it can be a source
> for a git clone, but that seems to be about it.  All other commands,
> such as "git log" blow up with the error message "Not a git repository".

Try "git --bare log".  Or "git --git-dir=/path/to log".

> This to me seems a bit lame, since why isn't a "bare repository" also a
> "git repository"?  All of the information is there for "git log" to
> work.  Commands that require a working directory obviously can't work,
> but there are plenty of git commands for which there's no reason why
> they shouldn't be able to operate on a bare repository.  For example,
> "git repack", "git log", "git fetch", etc.

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.)

> 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.

-- 
Shawn.

  parent reply	other threads:[~2006-12-31  1:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-31  1:48 What commands can and can not be used with bare repositories? Theodore Ts'o
2006-12-31  1:57 ` J. Bruce Fields
2006-12-31  1:57 ` Shawn Pearce [this message]
2006-12-31  2:12   ` Theodore Tso
2006-12-31  5:32     ` Michael S. Tsirkin
2006-12-31  5:52     ` Junio C Hamano

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=20061231015732.GB5082@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox