equal
deleted
inserted
replaced
169 del marks[mark] |
169 del marks[mark] |
170 deleted = True |
170 deleted = True |
171 return deleted |
171 return deleted |
172 |
172 |
173 def update(repo, parents, node): |
173 def update(repo, parents, node): |
|
174 deletefrom = parents |
174 marks = repo._bookmarks |
175 marks = repo._bookmarks |
175 update = False |
176 update = False |
176 cur = repo._bookmarkcurrent |
177 cur = repo._bookmarkcurrent |
177 if not cur: |
178 if not cur: |
178 return False |
179 return False |
179 |
180 |
180 if marks[cur] in parents: |
181 if marks[cur] in parents: |
181 old = repo[marks[cur]] |
182 old = repo[marks[cur]] |
182 new = repo[node] |
183 new = repo[node] |
|
184 divs = [repo[b] for b in marks |
|
185 if b.split('@', 1)[0] == cur.split('@', 1)[0]] |
|
186 anc = repo.changelog.ancestors([new.rev()]) |
|
187 deletefrom = [b.node() for b in divs if b.rev() in anc or b == new] |
183 if old.descendant(new): |
188 if old.descendant(new): |
184 marks[cur] = new.node() |
189 marks[cur] = new.node() |
185 update = True |
190 update = True |
186 |
191 |
187 if deletedivergent(repo, parents, cur): |
192 if deletedivergent(repo, deletefrom, cur): |
188 update = True |
193 update = True |
189 |
194 |
190 if update: |
195 if update: |
191 marks.write() |
196 marks.write() |
192 return update |
197 return update |