969 if delete or rename or names or inactive: |
969 if delete or rename or names or inactive: |
970 wlock = lock = tr = None |
970 wlock = lock = tr = None |
971 try: |
971 try: |
972 wlock = repo.wlock() |
972 wlock = repo.wlock() |
973 lock = repo.lock() |
973 lock = repo.lock() |
974 cur = repo.changectx('.').node() |
|
975 marks = repo._bookmarks |
974 marks = repo._bookmarks |
976 if delete: |
975 if delete: |
977 tr = repo.transaction('bookmark') |
976 tr = repo.transaction('bookmark') |
978 bookmarks.delete(repo, tr, names) |
977 bookmarks.delete(repo, tr, names) |
979 elif rename: |
978 elif rename: |
983 elif len(names) > 1: |
982 elif len(names) > 1: |
984 raise error.Abort(_("only one new bookmark name allowed")) |
983 raise error.Abort(_("only one new bookmark name allowed")) |
985 bookmarks.rename(repo, tr, rename, names[0], force, inactive) |
984 bookmarks.rename(repo, tr, rename, names[0], force, inactive) |
986 elif names: |
985 elif names: |
987 tr = repo.transaction('bookmark') |
986 tr = repo.transaction('bookmark') |
988 newact = None |
987 bookmarks.addbookmarks(repo, tr, names, rev, force, inactive) |
989 for mark in names: |
|
990 mark = bookmarks.checkformat(repo, mark) |
|
991 if newact is None: |
|
992 newact = mark |
|
993 if inactive and mark == repo._activebookmark: |
|
994 bookmarks.deactivate(repo) |
|
995 return |
|
996 tgt = cur |
|
997 if rev: |
|
998 tgt = scmutil.revsingle(repo, rev).node() |
|
999 marks.checkconflict(mark, force, tgt) |
|
1000 marks[mark] = tgt |
|
1001 if not inactive and cur == marks[newact] and not rev: |
|
1002 bookmarks.activate(repo, newact) |
|
1003 elif cur != tgt and newact == repo._activebookmark: |
|
1004 bookmarks.deactivate(repo) |
|
1005 elif inactive: |
988 elif inactive: |
1006 if len(marks) == 0: |
989 if len(marks) == 0: |
1007 ui.status(_("no bookmarks set\n")) |
990 ui.status(_("no bookmarks set\n")) |
1008 elif not repo._activebookmark: |
991 elif not repo._activebookmark: |
1009 ui.status(_("no active bookmark\n")) |
992 ui.status(_("no active bookmark\n")) |