305 succs.update(allsuccessors(repo.obsstore, mutable)) |
305 succs.update(allsuccessors(repo.obsstore, mutable)) |
306 known = (n for n in succs if n in nm) |
306 known = (n for n in succs if n in nm) |
307 foreground = set(repo.set('%ln::', known)) |
307 foreground = set(repo.set('%ln::', known)) |
308 return set(c.node() for c in foreground) |
308 return set(c.node() for c in foreground) |
309 |
309 |
310 # logic around storing and using effect flags |
310 # effectflag field |
|
311 # |
|
312 # Effect-flag is a 1-byte bit field used to store what changed between a |
|
313 # changeset and its successor(s). |
|
314 # |
|
315 # The effect flag is stored in obs-markers metadata while we iterate on the |
|
316 # information design. That's why we have the EFFECTFLAGFIELD. If we come up |
|
317 # with an incompatible design for effect flag, we can store a new design under |
|
318 # another field name so we don't break readers. We plan to extend the existing |
|
319 # obsmarkers bit-field when the effect flag design will be stabilized. |
|
320 # |
|
321 # The effect-flag is placed behind an experimental flag |
|
322 # `effect-flags` set to off by default. |
|
323 # |
|
324 |
311 EFFECTFLAGFIELD = "ef1" |
325 EFFECTFLAGFIELD = "ef1" |
312 |
326 |
313 DESCCHANGED = 1 << 0 # action changed the description |
327 DESCCHANGED = 1 << 0 # action changed the description |
314 METACHANGED = 1 << 1 # action change the meta |
328 METACHANGED = 1 << 1 # action change the meta |
315 DIFFCHANGED = 1 << 3 # action change diff introduced by the changeset |
329 DIFFCHANGED = 1 << 3 # action change diff introduced by the changeset |