diff -ur v7/fsyn.py v8/fsyn.py --- v7/fsyn.py 2020-05-03 01:43:08.000000000 +0900 +++ v8/fsyn.py 2020-05-03 13:13:09.000000000 +0900 @@ -162,7 +162,7 @@ msg_done( 'commit', id ) def curr(): - msg = 'curr ' + get_curr() + msg = get_curr() dbg.out( msg ) def log(): @@ -231,21 +231,25 @@ def clatest(): dbg.out( get_clatest() ) - def get_prev(id): + def get_prev(id=''): + if not id: + id = get_curr() link = get_link( id ) return link.from_ def prev(): - id = get_prev( get_curr() ) + id = get_prev() if id: dbg.out( id ) - def get_next(id): + def get_next(id=''): + if not id: + id = get_curr() link = get_link( id ) return sorted_ids( link.to ) def next(): - ids = get_next( get_curr() ) + ids = get_next() show_ids( ids, 'next' ) def ckout_org(): @@ -313,7 +317,45 @@ ckout_org() ckout( targ_id ) + def alias_cnv(id): + d = { + 'latest': get_latest, + 'clatest': get_clatest, + 'prev': get_prev, + } + ds = { + 'next': get_next, + 'tail': get_tails, + 'ctail': get_ctails, + } + + if id in d: + f = d.get( id ) + return f() + + if id in ds: + f = ds.get( id ) + ids = f() + if len( ids ) == 1: + return ids[ 0 ] + label = id + show_ids( ids, label ) + dbg.err_exit( 'select' ) + + for k in ds.keys(): + if id.startswith( k ): + f = ds.get( k ) + ids = f() + i = id[ len( k ) : ] + try: + i = int( i ) + return ids[ i ] + except: + dbg.err_exit( 'id {} ?'.format( id ) ) + return id + def checkout(id): + id = alias_cnv( id ) ckout( id ) msg_done( 'checkout', id ) @@ -558,7 +600,7 @@ arg.cmd_new( 'clatest', comment='show latest id in current chidren' ), arg.cmd_new( 'prev', comment='show prev id' ), arg.cmd_new( 'next', comment='show next ids' ), - arg.cmd_new( 'checkout', [ 'id' ] ), + arg.cmd_new( 'checkout', [ 'id' ], comment='alias is used instead of id' ), arg.cmd_new( 'check', comment='show dirty' ), arg.cmd_new( 'fixlink', comment='fix link info' ), arg.cmd_new( 'push', [ 'to_path' ] ),