All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre Habouzit <madcoder@madism.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git ML <git@vger.kernel.org>
Subject: Re: fixing workdirs
Date: Mon, 19 Jul 2010 11:02:48 +0200	[thread overview]
Message-ID: <20100719090248.GA10802@madism.org> (raw)
In-Reply-To: <7vy6dkl2d0.fsf@alter.siamese.dyndns.org>

On Fri, Jul 09, 2010 at 03:25:15PM -0700, Junio C Hamano wrote:
> Pierre Habouzit <madcoder@madism.org> writes:
> 
> > On Thu, Jul 08, 2010 at 12:40:11PM -0700, Junio C Hamano wrote:
> >> Pierre Habouzit <madcoder@madism.org> writes:
> >> 
> >> > for the first one, the fix is simple: workdirs have now a name, and
> >> > their HEAD reflog lives in the "master" git repository reflog namespace
> >> > under logs/workdir/$workdir_name/HEAD. The workdir HEAD reflog is then a
> >> > symlink to the masters.
> >> 
> >> I think this is a sane thing to do, except for the "symlink" part but that
> >> would be just a minor implementation detail.
> >
> > What would you suggest instead of the symlink then ? (knowing that all
> > the workdir is just a full symlink farm at them moment).
> 
> I can imagine that we may want to have a general mechanism to help an
> object store that belongs to one "primary" repository be aware of ref-like
> things that live outside of the repoistory itself, and not just a special
> purpose hack suitable only to handle the workdirs.  E.g., we have talked
> about a "fork" created by "clone -s" wanting the forkee repository to be
> aware of its refs, so that rewinding the refs in the forkee repository and
> then running gc there won't remove the objects now unnecessary in the
> forkee but still needed by the forker repository.
> 
> It shouldn't be hard to do something similar to "gitdir: " support for
> this without using a symlink, no?

Sorry for the delay, I was on vacation.

Okay, I see, this makes sense. I'll see what I can do on this path,
though it's probably harder than simply extending gitfiles. We still
want a .git/ directory as we want most of the top level stuff to be
local to each repository (HEAD, ORIG_HEAD, ...) but not:

  - subdirectories (most of them being references, logs, ...)
  - the lock (which is kind of the weak point in my proposal atm, yours
    is nicer)
  - config (or do we want a cascading semantics: local workdir config,
    master repository config, user .gitconfig, /etc/.... ? I think not
    but ...)
  - packed-refs

Plus, to make everything work, the reflogs of a given "workdir" (or
shared clone) must be put in a different namespace to avoid clashes.
Though this is probably the simplest bit.

All in all, I'm afraid to have to look at every single git script that
for now writes without thinking twice under .git/ :/
-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

  reply	other threads:[~2010-07-19  9:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-08 11:08 fixing workdirs Pierre Habouzit
2010-07-08 18:37 ` Tait
2010-07-08 18:56   ` Joshua Jensen
2010-07-09  7:49   ` Pierre Habouzit
2010-07-08 19:40 ` Junio C Hamano
2010-07-08 19:56   ` Avery Pennarun
2010-07-09  7:56   ` Pierre Habouzit
2010-07-09 22:25     ` Junio C Hamano
2010-07-19  9:02       ` Pierre Habouzit [this message]
2010-08-17 18:34 ` Jan Hudec

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=20100719090248.GA10802@madism.org \
    --to=madcoder@madism.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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.