comparison mercurial/commands.py @ 50824:aad6e62d64f8

bookmark: migrate `opts` to native kwargs There are a bunch of callers for `ui.formatter()`, so convert to bytes only for that call.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 20 Aug 2023 00:44:15 -0400
parents 36901c182d70
children 13ad1b2ad3b4
comparison
equal deleted inserted replaced
50823:36901c182d70 50824:aad6e62d64f8
1237 1237
1238 - print only the active bookmark name:: 1238 - print only the active bookmark name::
1239 1239
1240 hg book -ql . 1240 hg book -ql .
1241 """ 1241 """
1242 opts = pycompat.byteskwargs(opts) 1242 force = opts.get('force')
1243 force = opts.get(b'force') 1243 rev = opts.get('rev')
1244 rev = opts.get(b'rev') 1244 inactive = opts.get('inactive') # meaning add/rename to inactive bookmark
1245 inactive = opts.get(b'inactive') # meaning add/rename to inactive bookmark 1245
1246 1246 action = cmdutil.check_at_most_one_arg(opts, 'delete', 'rename', 'list')
1247 action = cmdutil.check_at_most_one_arg(opts, b'delete', b'rename', b'list')
1248 if action: 1247 if action:
1249 cmdutil.check_incompatible_arguments(opts, action, [b'rev']) 1248 cmdutil.check_incompatible_arguments(opts, action, ['rev'])
1250 elif names or rev: 1249 elif names or rev:
1251 action = b'add' 1250 action = 'add'
1252 elif inactive: 1251 elif inactive:
1253 action = b'inactive' # meaning deactivate 1252 action = 'inactive' # meaning deactivate
1254 else: 1253 else:
1255 action = b'list' 1254 action = 'list'
1256 1255
1257 cmdutil.check_incompatible_arguments( 1256 cmdutil.check_incompatible_arguments(opts, 'inactive', ['delete', 'list'])
1258 opts, b'inactive', [b'delete', b'list'] 1257 if not names and action in {'add', 'delete'}:
1259 )
1260 if not names and action in {b'add', b'delete'}:
1261 raise error.InputError(_(b"bookmark name required")) 1258 raise error.InputError(_(b"bookmark name required"))
1262 1259
1263 if action in {b'add', b'delete', b'rename', b'inactive'}: 1260 if action in {'add', 'delete', 'rename', 'inactive'}:
1264 with repo.wlock(), repo.lock(), repo.transaction(b'bookmark') as tr: 1261 with repo.wlock(), repo.lock(), repo.transaction(b'bookmark') as tr:
1265 if action == b'delete': 1262 if action == 'delete':
1266 names = pycompat.maplist(repo._bookmarks.expandname, names) 1263 names = pycompat.maplist(repo._bookmarks.expandname, names)
1267 bookmarks.delete(repo, tr, names) 1264 bookmarks.delete(repo, tr, names)
1268 elif action == b'rename': 1265 elif action == 'rename':
1269 if not names: 1266 if not names:
1270 raise error.InputError(_(b"new bookmark name required")) 1267 raise error.InputError(_(b"new bookmark name required"))
1271 elif len(names) > 1: 1268 elif len(names) > 1:
1272 raise error.InputError( 1269 raise error.InputError(
1273 _(b"only one new bookmark name allowed") 1270 _(b"only one new bookmark name allowed")
1274 ) 1271 )
1275 oldname = repo._bookmarks.expandname(opts[b'rename']) 1272 oldname = repo._bookmarks.expandname(opts['rename'])
1276 bookmarks.rename(repo, tr, oldname, names[0], force, inactive) 1273 bookmarks.rename(repo, tr, oldname, names[0], force, inactive)
1277 elif action == b'add': 1274 elif action == 'add':
1278 bookmarks.addbookmarks(repo, tr, names, rev, force, inactive) 1275 bookmarks.addbookmarks(repo, tr, names, rev, force, inactive)
1279 elif action == b'inactive': 1276 elif action == 'inactive':
1280 if len(repo._bookmarks) == 0: 1277 if len(repo._bookmarks) == 0:
1281 ui.status(_(b"no bookmarks set\n")) 1278 ui.status(_(b"no bookmarks set\n"))
1282 elif not repo._activebookmark: 1279 elif not repo._activebookmark:
1283 ui.status(_(b"no active bookmark\n")) 1280 ui.status(_(b"no active bookmark\n"))
1284 else: 1281 else:
1285 bookmarks.deactivate(repo) 1282 bookmarks.deactivate(repo)
1286 elif action == b'list': 1283 elif action == 'list':
1287 names = pycompat.maplist(repo._bookmarks.expandname, names) 1284 names = pycompat.maplist(repo._bookmarks.expandname, names)
1288 with ui.formatter(b'bookmarks', opts) as fm: 1285 with ui.formatter(b'bookmarks', pycompat.byteskwargs(opts)) as fm:
1289 bookmarks.printbookmarks(ui, repo, fm, names) 1286 bookmarks.printbookmarks(ui, repo, fm, names)
1290 else: 1287 else:
1291 raise error.ProgrammingError(b'invalid action: %s' % action) 1288 raise error.ProgrammingError(
1289 b'invalid action: %s' % pycompat.sysbytes(action)
1290 )
1292 1291
1293 1292
1294 @command( 1293 @command(
1295 b'branch', 1294 b'branch',
1296 [ 1295 [