localrepo: write .hg/reponame on repo creation

Summary: Make dynamicconfig pick up the repo name because hgrc gets written.

Reviewed By: DurhamG

Differential Revision: D29428878

fbshipit-source-id: fbf578cd7c770a4541fff3b85ff40c40cd5a6cc5
This commit is contained in:
Jun Wu 2021-06-28 12:24:09 -07:00 committed by Facebook GitHub Bot
parent 8186a5400b
commit e454f71fa9
7 changed files with 17 additions and 2 deletions

View File

@ -471,6 +471,7 @@ def clone(
# Create the destination repo before we even open the connection to the
# source, so we can use any repo-specific configuration for the connection.
try:
# Note: This triggers hgrc.dynamic generation with empty repo hgrc.
destpeer = peer(ui, peeropts, dest, create=True)
except OSError as inst:
if inst.errno == errno.EEXIST:

View File

@ -455,6 +455,12 @@ class localrepository(object):
elif create:
raise errormod.RepoError(_("repository %s already exists") % path)
# Prepare .hg/reponame in localvfs before calling into dynamicconfig.
if created:
reponame = self.ui.config("remotefilelog", "reponame")
if reponame and not self.localvfs.exists("reponame"):
self.localvfs.writeutf8("reponame", reponame.strip())
self.ui.reloadconfigs(self.root)
self._loadextensions()

View File

@ -184,6 +184,7 @@ Make sure bundlerepo doesn't leak tempfiles (issue2491)
00changelog.i
blackbox
hgrc.dynamic
reponame
requires
store
treestate

View File

@ -44,7 +44,7 @@ Verify it can be automatically synchronously generated
value
$ cat .hg/hgrc.dynamic
# version=4.4.2* (glob)
# reponame=
# reponame=reponame-default
# canary=None
# username=
# Generated by `hg debugdynamicconfig` - DO NOT MODIFY
@ -224,7 +224,7 @@ Verify we load and verify dynamicconfigs during clone
Hook ran!
$ cat client2/.hg/hgrc.dynamic
# version=4.4.2* (glob)
# reponame=
# reponame=reponame-default
# canary=None
# username=
# Generated by `hg debugdynamicconfig` - DO NOT MODIFY

View File

@ -28,6 +28,7 @@ sh % "ls .hg" == r"""
00changelog.i
blackbox
hgrc.dynamic
reponame
requires
store
treestate"""
@ -54,6 +55,7 @@ sh % "ls .hg" == r"""
dirstate
hgrc
hgrc.dynamic
reponame
requires
store
treestate

View File

@ -121,6 +121,7 @@ you can't check out.
importing git objects into hg
warning: path 'nested/.hg/00changelog.i' is within a nested repository, which Mercurial cannot check out.
warning: path 'nested/.hg/hgrc.dynamic' is within a nested repository, which Mercurial cannot check out.
warning: path 'nested/.hg/reponame' is within a nested repository, which Mercurial cannot check out.
warning: path 'nested/.hg/requires' is within a nested repository, which Mercurial cannot check out.
warning: path 'nested/.hg/store/metalog/blobs/index2-id' is within a nested repository, which Mercurial cannot check out.
warning: path 'nested/.hg/store/metalog/blobs/log' is within a nested repository, which Mercurial cannot check out.

View File

@ -58,6 +58,7 @@ store is setgid
00770 ./.hg/
00600 ./.hg/00changelog.i
00600 ./.hg/hgrc.dynamic
00600 ./.hg/reponame
00600 ./.hg/requires
00770 ./.hg/store/
00600 ./.hg/store/requires
@ -79,6 +80,7 @@ new directories are setgid
00660 ./.hg/dirstate
00600 ./.hg/hgrc.dynamic
00660 ./.hg/last-message.txt
00600 ./.hg/reponame
00600 ./.hg/requires
00770 ./.hg/store/
006?0 ./.hg/store/00changelog.d (glob)
@ -122,6 +124,7 @@ group can write everything
00770 ../push/.hg/
00660 ../push/.hg/00changelog.i
00660 ../push/.hg/hgrc.dynamic
00660 ../push/.hg/reponame
00660 ../push/.hg/requires
00770 ../push/.hg/store/
00660 ../push/.hg/store/requires
@ -138,6 +141,7 @@ XXX: treestate and allheads do not really respect this rule
00660 ../push/.hg/00changelog.i
00660 ../push/.hg/dirstate
00660 ../push/.hg/hgrc.dynamic
00660 ../push/.hg/reponame
00660 ../push/.hg/requires
00770 ../push/.hg/store/
006?0 ../push/.hg/store/00changelog.d (glob)