Mercurial > hg
comparison mercurial/localrepo.py @ 1839:876e4e6ad82b
Create local ui object per repository, so .hg/hgrc don't get mixed.
This is needed for hooks, but may be important for other settings, too.
Fixes issue113, also integrated push-hook-lock.sh as a test case for this.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Mon, 06 Mar 2006 17:47:41 +0100 |
parents | 429bf036f2cb |
children | 5ac811b720de |
comparison
equal
deleted
inserted
replaced
1838:429bf036f2cb | 1839:876e4e6ad82b |
---|---|
8 import struct, os, util | 8 import struct, os, util |
9 import filelog, manifest, changelog, dirstate, repo | 9 import filelog, manifest, changelog, dirstate, repo |
10 from node import * | 10 from node import * |
11 from i18n import gettext as _ | 11 from i18n import gettext as _ |
12 from demandload import * | 12 from demandload import * |
13 demandload(globals(), "re lock transaction tempfile stat mdiff errno") | 13 demandload(globals(), "re lock transaction tempfile stat mdiff errno ui") |
14 | 14 |
15 class localrepository(object): | 15 class localrepository(object): |
16 def __del__(self): | 16 def __del__(self): |
17 self.transhandle = None | 17 self.transhandle = None |
18 def __init__(self, ui, path=None, create=0): | 18 def __init__(self, parentui, path=None, create=0): |
19 if not path: | 19 if not path: |
20 p = os.getcwd() | 20 p = os.getcwd() |
21 while not os.path.isdir(os.path.join(p, ".hg")): | 21 while not os.path.isdir(os.path.join(p, ".hg")): |
22 oldp = p | 22 oldp = p |
23 p = os.path.dirname(p) | 23 p = os.path.dirname(p) |
28 | 28 |
29 if not create and not os.path.isdir(self.path): | 29 if not create and not os.path.isdir(self.path): |
30 raise repo.RepoError(_("repository %s not found") % path) | 30 raise repo.RepoError(_("repository %s not found") % path) |
31 | 31 |
32 self.root = os.path.abspath(path) | 32 self.root = os.path.abspath(path) |
33 self.ui = ui | 33 self.ui = ui.ui(parentui=parentui) |
34 self.opener = util.opener(self.path) | 34 self.opener = util.opener(self.path) |
35 self.wopener = util.opener(self.root) | 35 self.wopener = util.opener(self.root) |
36 self.manifest = manifest.manifest(self.opener) | 36 self.manifest = manifest.manifest(self.opener) |
37 self.changelog = changelog.changelog(self.opener) | 37 self.changelog = changelog.changelog(self.opener) |
38 self.tagscache = None | 38 self.tagscache = None |
43 | 43 |
44 if create: | 44 if create: |
45 os.mkdir(self.path) | 45 os.mkdir(self.path) |
46 os.mkdir(self.join("data")) | 46 os.mkdir(self.join("data")) |
47 | 47 |
48 self.dirstate = dirstate.dirstate(self.opener, ui, self.root) | 48 self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root) |
49 try: | 49 try: |
50 self.ui.readconfig(self.join("hgrc")) | 50 self.ui.readconfig(self.join("hgrc")) |
51 except IOError: | 51 except IOError: |
52 pass | 52 pass |
53 | 53 |