[[!comment format=mdwn
 username="joey"
 subject="""comment 1"""
 date="2018-06-04T16:44:39Z"
 content="""
I think checkuuid=false has always had this problem; it's never been
actually usable.

Problem is that checkuuid=false prevents reading the git config, so
the Repo is LocalUnknown, and such repositories are assumed to not be
currently available to use.

To get from LocalUnknown to Local, it would have to read the repo's 
config to determine if the repo is bare or not. But reading the repo's
config every time is exactly what checkuuid=false is intended to prevent.

Only path I can see is to make the DeferredUUIDCheck that's done
with checkuuid=false return the Local Repo. That could be done in
Remote.Git. But, other modules use Remote.repo to look at the Repo too,
including Command.Sync, and Assistant.TransferSlots. Remote.repo can't
be updated after it's constructed without some mess of updating the remote
list, which does not seem like a good idea. Seems that Remote.repo would
need to be converted to an IO action. 

(So would Remote.gitconfig, which incidentally doesn't contain the config
of the remote when checkuuid=false, which could also be considered a bug
with checkuuid=false.)
"""]]
