Mercurial > hg
comparison mercurial/bookmarks.py @ 23458:756376ec6c12
bookmarks: factor out bookmark file opening for easier extensibility
author | Ryan McElroy <rmcelroy@fb.com> |
---|---|
date | Thu, 27 Nov 2014 00:24:25 -0800 |
parents | e06daad65f85 |
children | 65e48b8d20f5 |
comparison
equal
deleted
inserted
replaced
23457:fc76f55705eb | 23458:756376ec6c12 |
---|---|
28 | 28 |
29 def __init__(self, repo): | 29 def __init__(self, repo): |
30 dict.__init__(self) | 30 dict.__init__(self) |
31 self._repo = repo | 31 self._repo = repo |
32 try: | 32 try: |
33 bkfile = None | 33 bkfile = self.getbkfile(repo) |
34 if 'HG_PENDING' in os.environ: | |
35 try: | |
36 bkfile = repo.vfs('bookmarks.pending') | |
37 except IOError, inst: | |
38 if inst.errno != errno.ENOENT: | |
39 raise | |
40 if bkfile is None: | |
41 bkfile = repo.vfs('bookmarks') | |
42 for line in bkfile: | 34 for line in bkfile: |
43 line = line.strip() | 35 line = line.strip() |
44 if not line: | 36 if not line: |
45 continue | 37 continue |
46 if ' ' not in line: | 38 if ' ' not in line: |
54 except LookupError: | 46 except LookupError: |
55 pass | 47 pass |
56 except IOError, inst: | 48 except IOError, inst: |
57 if inst.errno != errno.ENOENT: | 49 if inst.errno != errno.ENOENT: |
58 raise | 50 raise |
51 | |
52 def getbkfile(self, repo): | |
53 bkfile = None | |
54 if 'HG_PENDING' in os.environ: | |
55 try: | |
56 bkfile = repo.vfs('bookmarks.pending') | |
57 except IOError, inst: | |
58 if inst.errno != errno.ENOENT: | |
59 raise | |
60 if bkfile is None: | |
61 bkfile = repo.vfs('bookmarks') | |
62 return bkfile | |
59 | 63 |
60 def recordchange(self, tr): | 64 def recordchange(self, tr): |
61 """record that bookmarks have been changed in a transaction | 65 """record that bookmarks have been changed in a transaction |
62 | 66 |
63 The transaction is then responsible for updating the file content.""" | 67 The transaction is then responsible for updating the file content.""" |