sapling/eden/scm/edenscm
Jun Wu bc80499084 git: avoid deadlock with nested submodules of same URL
Summary:
Some submodules (ex. gflags) have submodules (ex. gflags/doc) that share the same
URL with the parent repo. Previously those 2 repos would deadlock on the
backing repo wlock on checkout, and the git reference would conflict.

Fix them by:
- Skip the submodule backing repo wlock, since nobody uses the backing repo's
  working copy.
- Escape `/` to `_` in the git reference name to avoid conflict.

Reviewed By: muirdm

Differential Revision: D42949672

fbshipit-source-id: fc471f9c6aeec05212911e3ffeb8f53f0427fa38
2023-02-02 11:32:30 -08:00
..
cext cext: drop pathencode C path 2022-11-22 17:27:05 -08:00
cffi Add annotations to eden/scm/edenscm/cffi/osutil.py 2023-01-10 05:24:26 -08:00
commands changelog: support migrating from lazy to lazytext 2023-01-30 10:55:11 -08:00
ext Add annotations to eden/scm/edenscm/ext/remotefilelog/cacheclient.py 2023-02-02 08:56:53 -08:00
help docs: replace ":hg:" with ":prog:" 2022-11-13 19:24:12 -08:00
hgdemandimport collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
httpclient defer importing of eden.thrift.windows_thrift.WindowsSocketHandle 2022-10-26 17:03:07 -07:00
pure collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
testing upgrade pyre version in fbcode/eden - batch 1 2023-02-01 20:39:41 -08:00
thirdparty Add annotations to eden/scm/edenscm/thirdparty/attr/validators.py 2022-12-06 03:21:20 -08:00
utils collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
__init__.py chg: change server process name 2022-10-06 13:03:25 -07:00
__main__.py codemod: update license headers 2022-01-05 14:43:32 -08:00
ancestor.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
annotate.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
archival.py replace various ".hg" instances w/ identity.dotdir() 2022-10-05 12:20:12 -07:00
autopull.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
bdiff.c collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
bdiff.h collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
bitmanipulation.h collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
blackbox.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
blobstore.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
bookmarks.py replace hardcoded hg and Mercurial with @prog@ and @Product@ outside of helptext.py 2022-10-10 16:39:36 -07:00
branchmap.py Add annotations to eden/scm/edenscm/branchmap.py 2023-01-26 10:32:25 -08:00
bundle2.py upgrade pyre version in fbcode/eden - batch 1 2023-02-01 20:39:41 -08:00
bundlerepo.py git clone: set up repo config earlier 2022-10-21 14:45:29 -07:00
byterange.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
changegroup.py Lint failure adding annotations to eden/scm/edenscm/changegroup.py 2022-12-01 03:42:59 -08:00
changelog2.py changelog: support migrating from lazy to lazytext 2023-01-30 10:55:11 -08:00
changelog.py support signing Git commits using a GPG key 2022-12-12 14:26:34 -08:00
chgserver.py util: kill quotecommand 2022-12-20 13:58:53 -08:00
clone.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
cloneuri.py --no-git should skip git.maybegiturl() check 2022-10-12 18:36:42 -07:00
cmdutil.py rename update to goto in hints/messages/etc. 2022-12-09 13:16:27 -08:00
color.py color: use "backslashreplace" instead of "replace" for invalid utf8 2023-01-31 11:31:48 -08:00
commandserver.py chg: use new server if the client has higher RLIMIT_NOFILE 2022-11-21 15:17:34 -08:00
compat.h collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
config.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
configitems.py copytrace: use gitcopytrace in Python code 2023-01-27 19:02:01 -08:00
connectionpool.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
context.py git: fix amend submodule change 2022-12-20 18:43:33 -08:00
copies.py copytrace: use gitcopytrace in Python code 2023-01-27 19:02:01 -08:00
crecord.py split: fix crash issue when doing split and resize terminal window 2023-01-12 15:48:37 -08:00
dagop.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
dagparser.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
debugcommands.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
destutil.py rename update to goto in hints/messages/etc. 2022-12-09 13:16:27 -08:00
detectissues.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
dirstate.py Lint failure adding annotations to eden/scm/edenscm/dirstate.py 2023-01-24 17:25:14 -08:00
dirstateguard.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
discovery.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
dispatch.py test-debugrevset: fix debugruntest compat 2023-02-01 12:05:24 -08:00
drawdag.py doc: fix '@prog' -> '@prog@' 2023-01-12 13:40:08 -08:00
dummycert.pem collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
eagerepo.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
eagerpeer.py git clone: set up repo config earlier 2022-10-21 14:45:29 -07:00
eden_dirstate_fs.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
eden_dirstate_map.py Add annotations to eden/scm/edenscm/eden_dirstate_map.py 2022-12-15 07:12:38 -08:00
eden_dirstate.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
eden_update.py rename update to goto in hints/messages/etc. 2022-12-09 13:16:27 -08:00
edenapi_upload.py improve ux if edenapi can not be reached 2022-11-22 10:45:45 -08:00
edenapi.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
edenfs.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
EdenThriftClient.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
encoding.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
error.py Add annotations to eden/scm/edenscm/error.py 2022-11-17 06:41:47 -08:00
exchange.py use phases information returned from the server to speed up 2023-01-19 11:00:32 -08:00
extensions.py checkmessagehook: inline extension 2023-02-01 12:05:24 -08:00
filelog.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
filemerge.py filemerge: add metrics for copytracing rename prompt 2022-12-07 14:31:44 -08:00
fileset.py docs: replace ":hg:" with ":prog:" 2022-11-13 19:24:12 -08:00
filesystem.py status: hack up various things to not assume ".hg" dot dir 2022-08-31 17:05:41 -07:00
formatter.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
fscap.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
git.py git: avoid deadlock with nested submodules of same URL 2023-02-02 11:32:30 -08:00
gituser.py gituser: use ui.username() instead of direct config query 2023-01-23 10:40:34 -08:00
gpg.py support signing Git commits using a GPG key 2022-12-12 14:26:34 -08:00
graphmod.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
hbisect.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
help.py Add annotations to eden/scm/edenscm/help.py 2022-12-09 05:29:48 -08:00
helptext.py dirstate: remove treedirstate support 2023-01-19 21:38:51 -08:00
hg.py rename update to goto in hints/messages/etc. 2022-12-09 13:16:27 -08:00
hintutil.py Fix typo in warning message (#442) 2023-01-09 13:29:06 -08:00
hook.py Add annotations to eden/scm/edenscm/hook.py 2022-11-14 03:36:51 -08:00
hooks.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
httpconnection.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
i18n.py identity: support SAPLING_SCRIPT in addition to HGPLAIN 2022-09-28 13:41:46 -07:00
identity.py bisect: update docstring 2022-11-14 22:21:54 -08:00
json.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
keepalive.py upgrade pyre version in fbcode/eden - batch 1 2023-02-01 20:39:41 -08:00
localrepo.py git: avoid deadlock with nested submodules of same URL 2023-02-02 11:32:30 -08:00
lock.py Add annotations to eden/scm/edenscm/lock.py 2022-11-15 05:42:26 -08:00
lsprof.py Add annotations to eden/scm/edenscm/lsprof.py 2023-01-10 05:18:50 -08:00
lsprofcalltree.py Add annotations to eden/scm/edenscm/lsprofcalltree.py 2022-12-02 06:46:37 -08:00
mail.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
manifest.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
match.py match: use dynmatcher if possible 2022-10-31 11:44:55 -07:00
mdiff.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
mercurialshim.py dispatch: add shim to support legacy edenscm.mercurial imports 2022-08-24 13:45:53 -07:00
merge.py git: fix rebasing conflicted submodule changes 2022-12-21 10:58:58 -08:00
mergeutil.py replace hardcoded hg and Mercurial with @prog@ and @Product@ outside of helptext.py 2022-10-10 16:39:36 -07:00
metrics.py Re-sync with internal repository 2022-10-25 12:19:26 -07:00
minirst.py docs: replace ":hg:" with ":prog:" 2022-11-13 19:24:12 -08:00
mononokepeer.py defer importing of eden.thrift.windows_thrift.WindowsSocketHandle 2022-10-26 17:03:07 -07:00
mpatch.c collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
mpatch.h collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
mutation.py Add annotations to eden/scm/edenscm/mutation.py 2022-10-05 06:00:38 -07:00
namespaces.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
node.py node: remove Python 2 support 2022-12-21 13:50:31 -08:00
obsolete.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
parser.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
patch.py remove usages of untrusted option for config related code in Python 2022-10-16 09:56:58 -07:00
pathutil.py fix path traversal issue vulnerability on Windows 2022-11-30 20:07:44 -08:00
peer.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
perftrace.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
phases.py phases: Delete dead code (#461) 2023-01-19 10:52:53 -08:00
posix.py posix: track lock creation stacktrace in deadlock detection 2023-02-02 11:32:30 -08:00
profiling.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
progress.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
pushkey.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
pvec.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
pycompat.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
rcutil.py rcutil: support deleting config items 2022-12-21 19:08:24 -08:00
registrar.py update: make "goto" the primary name in sapling 2022-11-14 19:39:34 -08:00
repair.py Add annotations to eden/scm/edenscm/repair.py 2023-01-10 04:24:05 -08:00
replay.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
repository.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
result.py util: adding a Rust like Result type for Python 2022-11-30 20:36:12 -08:00
revlog.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
revset.py kill "extdata()" revset/template func 2022-12-20 13:58:53 -08:00
revsetlang.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
rewriteutil.py replace hardcoded hg and Mercurial with @prog@ and @Product@ outside of helptext.py 2022-10-10 16:39:36 -07:00
scmposix.py scmposix: kill some dead code 2022-12-21 19:08:24 -08:00
scmutil.py dirstate: remove treedirstate support 2023-01-19 21:38:51 -08:00
scmwindows.py scmposix: kill some dead code 2022-12-21 19:08:24 -08:00
server.py kill hgweb 2022-10-05 12:20:12 -07:00
setdiscovery.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
similar.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
simplemerge.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
smallcommitmetadata.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
smartset.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
sparse.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
sshpeer.py util: kill quotecommand 2022-12-20 13:58:53 -08:00
sshserver.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
sslutil.py replace hardcoded hg and Mercurial with @prog@ and @Product@ outside of helptext.py 2022-10-10 16:39:36 -07:00
statprof.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
stdiopeer.py git clone: set up repo config earlier 2022-10-21 14:45:29 -07:00
store.py cext: drop pathencode C path 2022-11-22 17:27:05 -08:00
streamclone.py remove usages of untrusted option for config related code in Python 2022-10-16 09:56:58 -07:00
streams.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
templatefilters.py kill hgweb 2022-10-05 12:20:12 -07:00
templatekw.py Add annotations to eden/scm/edenscm/templatekw.py 2022-10-10 05:09:04 -07:00
templatenew.py templates: set open source log template 2022-11-15 11:26:14 -08:00
templater.py kill "extdata()" revset/template func 2022-12-20 13:58:53 -08:00
traceimport.py Add annotations to eden/scm/edenscm/traceimport.py 2023-01-24 17:24:07 -08:00
tracing.py tracing: fix tracing when running via chg 2022-07-28 17:54:34 -07:00
transaction.py Add annotations to eden/scm/edenscm/transaction.py 2022-10-31 05:07:50 -07:00
treestate.py dirstate: remove treedirstate support 2023-01-19 21:38:51 -08:00
txnutil.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
types.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
ui.py pyconfigloader: drop validate 2022-12-15 18:24:16 -08:00
uiconfig.py pyconfigloader: drop validate 2022-12-15 18:24:16 -08:00
url.py phabricator: fix compatibility 2022-11-28 16:23:10 -08:00
urllibcompat.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
util.py upgrade pyre version in fbcode/eden - batch 1 2023-02-01 20:39:41 -08:00
verify.py Add annotations to eden/scm/edenscm/verify.py 2023-01-24 17:29:21 -08:00
vfs.py windows: back out "fix things when CWD is a UNC path" 2022-11-18 13:49:25 -08:00
visibility.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
win32.py color: use Rust "should color?" determination 2022-09-21 12:31:41 -07:00
windows.py util: kill quotecommand 2022-12-20 13:58:53 -08:00
winutil.py collapse edenscm.mercurial package into edenscm 2022-08-24 13:45:53 -07:00
wireproto.py replace hardcoded hg and Mercurial with @prog@ and @Product@ outside of helptext.py 2022-10-10 16:39:36 -07:00
worker.py terms: remove "master" and "slave" used in combination 2022-12-07 14:54:55 -08:00