Saphan StudioDocs
Reference/Commands

saphan absorb

Merges the branch a stream will land on into the stream's own branch, so the stream catches up with its base before it is merged.

Merges the branch a stream will land on into the stream's own branch, so the stream catches up with its base before it is merged. Both branches must exist locally in the stream's repository; a remote-tracking branch is never used, and on success the stream's branch moves to the new merge commit. It is the reverse direction of saphan merge, and the step a merge refused for conflicts points you to. It resolves nothing for you: alongside any conflicts it lists the changed paths git did not flag but that you should read, and it refuses to hand-resolve a generated file, naming the generator that rebuilds it instead. When every conflicting path is a generated file whose header names a go generate command, it regenerates them itself and lands the result only if two generator passes agree, no conflict marker remains and the merged tree builds; otherwise it lands nothing.

The absorption is not reported as settled until the checks have been run against the merged commit and the stream's return names the new tip; run the same command again afterwards to take that reading. Rehearse it with saphan dry-run absorb, which computes the same conflicts and findings and moves nothing.

saphan absorb payments-refactor
saphan dry-run absorb payments-refactor
saphan absorb <stream>

Global options apply to every command — see Every command.