comparison hgext/rebase.py @ 50406:2cd959fe631a

extras: extract function for projecting names from a gettable object
author Jason R. Coombs <jaraco@jaraco.com>
date Tue, 21 Mar 2023 17:17:09 -0400
parents a44e489940e0
children e8f1e0e295bb
comparison
equal deleted inserted replaced
50405:c0fbd63d66a7 50406:2cd959fe631a
82 82
83 def _nothingtorebase(): 83 def _nothingtorebase():
84 return 1 84 return 1
85 85
86 86
87 graft_extras = b'source', b'intermediate-source'
88
89
90 def _project(orig, names):
91 """Project a subset of names from orig."""
92 values = (orig.get(name, None) for name in names)
93 return {
94 name: value for name, value in zip(names, values) if value is not None
95 }
96
97
87 def _savegraft(ctx, extra): 98 def _savegraft(ctx, extra):
88 s = ctx.extra().get(b'source', None) 99 extra.update(_project(ctx.extra(), graft_extras))
89 if s is not None:
90 extra[b'source'] = s
91 s = ctx.extra().get(b'intermediate-source', None)
92 if s is not None:
93 extra[b'intermediate-source'] = s
94 100
95 101
96 def _savebranch(ctx, extra): 102 def _savebranch(ctx, extra):
97 extra[b'branch'] = ctx.branch() 103 extra[b'branch'] = ctx.branch()
98 104