equal
deleted
inserted
replaced
119 if n in parents: |
119 if n in parents: |
120 marks[mark] = node |
120 marks[mark] = node |
121 update = True |
121 update = True |
122 if update: |
122 if update: |
123 write(repo) |
123 write(repo) |
|
124 |
|
125 def listbookmarks(repo): |
|
126 # We may try to list bookmarks on a repo type that does not |
|
127 # support it (e.g., statichttprepository). |
|
128 if not hasattr(repo, '_bookmarks'): |
|
129 return {} |
|
130 |
|
131 d = {} |
|
132 for k, v in repo._bookmarks.iteritems(): |
|
133 d[k] = hex(v) |
|
134 return d |
|
135 |
|
136 def pushbookmark(repo, key, old, new): |
|
137 w = repo.wlock() |
|
138 try: |
|
139 marks = repo._bookmarks |
|
140 if hex(marks.get(key, '')) != old: |
|
141 return False |
|
142 if new == '': |
|
143 del marks[key] |
|
144 else: |
|
145 if new not in repo: |
|
146 return False |
|
147 marks[key] = repo[new].node() |
|
148 write(repo) |
|
149 return True |
|
150 finally: |
|
151 w.release() |