git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Fix new-workdir (again) to work on bare repositories

From
Shawn O. Pearce <spearce@spearce.org>
Date
Aug 22, 2007, 03:36 UTC
Message-ID
<20070822033625.GN27913@spearce.org>
In-Reply-To
<7v1wdwntc6.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> wrote:
Show 5 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes:
> > My day-job workflow involves using multiple workdirs attached to a
> > bunch of bare repositories.
> 
> Are you sure the patch would help?

Yes. I tested it in this use case. It works with the patch, it fails rather nicely without. Fun errors about not being able to cp HEAD from a directory that shouldn't have a HEAD...

> For one thing, I do not think we supported such a layout,
> officially or unofficially --- the thing is in contrib so it
> could not be official, but that is besides the point ;-).  Older
> git might have worked by accident, though.
True, but it works, and uh, we have this new fangled --work-tree
thing to go along with --git-dir, so why can't I symlink my entire
.git content over to somewhere else and pretend like the mess that
is --work-tree doesn't exist?
 
Show 7 quoted lines
> You may have made the part to create the new directory and make
> bunch of symbolic links to work with your patch, but as far as I
> know, new-workdir is designed to share the .git/config file with
> the borrowed repository, which means the configuration would say
> "core.bare = yes" for a bare repository.  So I suspect that the
> initial checkout after creating the new directory and populating
> its .git would barf, although I haven't tested it.

Indeed. I have a driver script that sets up my bare repos, it removes core.bare from their configs. So if you go into the bare repo our auto-sensing bare thing gets activated and says "Hmm, it ends in .git but isn't exactly .git so its bare!" (correct answer). If you cd into a workdir created by git-new-workdir the auto-sensing bare thing gets activated and says "Hmm, it is exactly .git so its not-bare!" (correct answer).

So removing that core.bare thing makes the magic work. But if you leave core.bare in foo.git/config, yes, a workdir created from it is mighty confused.

-- 
Shawn.
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 6 in “Fix new-workdir (again) to work on bare repositories”
  1. Fix new-workdir (again) to work on bare repositoriesShawn O. Pearce, Aug 22, 2007
  2. Junio C HamanoAug 22, 2007
  3. Shawn O. PearceAug 22, 2007
  4. Junio C HamanoAug 22, 2007
  5. Shawn O. PearceAug 22, 2007
  6. Junio C HamanoAug 22, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.