equal
deleted
inserted
replaced
34 extensions, |
34 extensions, |
35 fancyopts, |
35 fancyopts, |
36 help, |
36 help, |
37 hg, |
37 hg, |
38 hook, |
38 hook, |
|
39 localrepo, |
39 profiling, |
40 profiling, |
40 pycompat, |
41 pycompat, |
41 rcutil, |
42 rcutil, |
42 registrar, |
43 registrar, |
|
44 requirements as requirementsmod, |
43 scmutil, |
45 scmutil, |
44 ui as uimod, |
46 ui as uimod, |
45 util, |
47 util, |
|
48 vfs, |
46 ) |
49 ) |
47 |
50 |
48 from .utils import ( |
51 from .utils import ( |
49 procutil, |
52 procutil, |
50 stringutil, |
53 stringutil, |
937 ) |
940 ) |
938 raise |
941 raise |
939 return ret |
942 return ret |
940 |
943 |
941 |
944 |
|
945 def _readsharedsourceconfig(ui, path): |
|
946 """if the current repository is shared one, this tries to read |
|
947 .hg/hgrc of shared source if we are in share-safe mode |
|
948 |
|
949 Config read is loaded into the ui object passed |
|
950 |
|
951 This should be called before reading .hg/hgrc or the main repo |
|
952 as that overrides config set in shared source""" |
|
953 try: |
|
954 with open(os.path.join(path, b".hg", b"requires"), "rb") as fp: |
|
955 requirements = set(fp.read().splitlines()) |
|
956 if not ( |
|
957 requirementsmod.SHARESAFE_REQUIREMENT in requirements |
|
958 and requirementsmod.SHARED_REQUIREMENT in requirements |
|
959 ): |
|
960 return |
|
961 hgvfs = vfs.vfs(os.path.join(path, b".hg")) |
|
962 sharedvfs = localrepo._getsharedvfs(hgvfs, requirements) |
|
963 ui.readconfig(sharedvfs.join(b"hgrc"), path) |
|
964 except IOError: |
|
965 pass |
|
966 |
|
967 |
942 def _getlocal(ui, rpath, wd=None): |
968 def _getlocal(ui, rpath, wd=None): |
943 """Return (path, local ui object) for the given target path. |
969 """Return (path, local ui object) for the given target path. |
944 |
970 |
945 Takes paths in [cwd]/.hg/hgrc into account." |
971 Takes paths in [cwd]/.hg/hgrc into account." |
946 """ |
972 """ |
957 if not path: |
983 if not path: |
958 lui = ui |
984 lui = ui |
959 else: |
985 else: |
960 lui = ui.copy() |
986 lui = ui.copy() |
961 if rcutil.use_repo_hgrc(): |
987 if rcutil.use_repo_hgrc(): |
|
988 _readsharedsourceconfig(lui, path) |
962 lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) |
989 lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) |
963 |
990 |
964 if rpath: |
991 if rpath: |
965 path = lui.expandpath(rpath) |
992 path = lui.expandpath(rpath) |
966 lui = ui.copy() |
993 lui = ui.copy() |
967 if rcutil.use_repo_hgrc(): |
994 if rcutil.use_repo_hgrc(): |
|
995 _readsharedsourceconfig(lui, path) |
968 lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) |
996 lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) |
969 |
997 |
970 return path, lui |
998 return path, lui |
971 |
999 |
972 |
1000 |