1034 return 'export' |
1034 return 'export' |
1035 elif not new: |
1035 elif not new: |
1036 return 'delete' |
1036 return 'delete' |
1037 return 'update' |
1037 return 'update' |
1038 |
1038 |
|
1039 def _abortonsecretctx(pushop, node, b): |
|
1040 """abort if a given bookmark points to a secret changeset""" |
|
1041 if node and pushop.repo[node].phase() == phases.secret: |
|
1042 raise error.Abort(_('cannot push bookmark %s as it points to a secret' |
|
1043 ' changeset') % b) |
|
1044 |
1039 def _pushb2bookmarkspart(pushop, bundler): |
1045 def _pushb2bookmarkspart(pushop, bundler): |
1040 pushop.stepsdone.add('bookmarks') |
1046 pushop.stepsdone.add('bookmarks') |
1041 if not pushop.outbookmarks: |
1047 if not pushop.outbookmarks: |
1042 return |
1048 return |
1043 |
1049 |
1044 allactions = [] |
1050 allactions = [] |
1045 data = [] |
1051 data = [] |
1046 for book, old, new in pushop.outbookmarks: |
1052 for book, old, new in pushop.outbookmarks: |
|
1053 _abortonsecretctx(pushop, new, book) |
1047 new = bin(new) |
1054 new = bin(new) |
1048 data.append((book, new)) |
1055 data.append((book, new)) |
1049 allactions.append((book, _bmaction(old, new))) |
1056 allactions.append((book, _bmaction(old, new))) |
1050 checkdata = bookmod.binaryencode(data) |
1057 checkdata = bookmod.binaryencode(data) |
1051 bundler.newpart('bookmarks', data=checkdata) |
1058 bundler.newpart('bookmarks', data=checkdata) |
1070 raise error.Abort(bookmsgmap[action][1].rstrip() % book) |
1077 raise error.Abort(bookmsgmap[action][1].rstrip() % book) |
1071 # we should not be called for part we did not generated |
1078 # we should not be called for part we did not generated |
1072 assert False |
1079 assert False |
1073 |
1080 |
1074 for book, old, new in pushop.outbookmarks: |
1081 for book, old, new in pushop.outbookmarks: |
|
1082 _abortonsecretctx(pushop, new, book) |
1075 part = bundler.newpart('pushkey') |
1083 part = bundler.newpart('pushkey') |
1076 part.addparam('namespace', enc('bookmarks')) |
1084 part.addparam('namespace', enc('bookmarks')) |
1077 part.addparam('key', enc(book)) |
1085 part.addparam('key', enc(book)) |
1078 part.addparam('old', enc(old)) |
1086 part.addparam('old', enc(old)) |
1079 part.addparam('new', enc(new)) |
1087 part.addparam('new', enc(new)) |