* git-1.5 and bare repos
@ 2007-03-13 16:09 Florian La Roche
2007-03-13 17:03 ` Junio C Hamano
0 siblings, 1 reply; 2+ messages in thread
From: Florian La Roche @ 2007-03-13 16:09 UTC (permalink / raw)
To: git
Here a patch to correctly allow also bare
repositories.
regards,
Florian La Roche
--- git-sh-setup.sh 2007-03-05 03:15:33.000000000 +0100
+++ git-sh-setup 2007-03-13 17:08:22.000000000 +0100
@@ -49,8 +49,8 @@
require_work_tree () {
test $(is_bare_repository) = false &&
- test $(git-rev-parse --is-inside-git-dir) = false ||
- die "fatal: $0 cannot be used without a working tree."
+ { test $(git-rev-parse --is-inside-git-dir) = false ||
+ die "fatal: $0 cannot be used without a working tree."; }
}
if [ -z "$LONG_USAGE" ]
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: git-1.5 and bare repos
2007-03-13 16:09 git-1.5 and bare repos Florian La Roche
@ 2007-03-13 17:03 ` Junio C Hamano
0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2007-03-13 17:03 UTC (permalink / raw)
To: Florian La Roche; +Cc: git
Florian La Roche <laroche@redhat.com> writes:
> Here a patch to correctly allow also bare
> repositories.
>
> ...
>
> --- git-sh-setup.sh 2007-03-05 03:15:33.000000000 +0100
> +++ git-sh-setup 2007-03-13 17:08:22.000000000 +0100
> @@ -49,8 +49,8 @@
>
> require_work_tree () {
> test $(is_bare_repository) = false &&
> - test $(git-rev-parse --is-inside-git-dir) = false ||
> - die "fatal: $0 cannot be used without a working tree."
> + { test $(git-rev-parse --is-inside-git-dir) = false ||
> + die "fatal: $0 cannot be used without a working tree."; }
> }
>
> if [ -z "$LONG_USAGE" ]
Changing the meaning of the function and call the change "to
correctly allow" needs a bit more explanation. The function is
supposed to be called by certain operations to make sure that
they are not run from anywhere other than inside a working tree
associated with the repository, and that is why it says "we are
happy when the repository is not bare and we are not inside .git
directory --- otherwise we are unhappy".
I suspect that you found a command that calls this function,
when it should also be usable in a bare repository. If that is
the case, the caller needs to be fixed, perhaps not to call this
function at all, or perhaps call it only before performing an
operation that _needs_ working tree (I do not think of an
example offhand, but it is conceivable that a command can work
fine in a bare repository under an option but requires a working
tree with a different option). Changing the meaning of this
function so that it is always happy with bare repository means
you are breaking the assumption of other callers.
For example, git-fetch in a bare repository is fine. It is an
operation to update the object database and (optionally) advance
the refs used to track the other side. On the other hand,
git-pull, git-reset nor git-checkout are not. As they are meant
to update the working tree from the repository, running them in
a bare repository, which lacks the working tree by definition,
does not make sense. That is why they use this function.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-03-13 17:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-13 16:09 git-1.5 and bare repos Florian La Roche
2007-03-13 17:03 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).