Skip to main content

Scenario: pushed-then-changed

The monorepo pushed a change, then changed the splice again. Upstream has nothing but that push.

  • Monorepo (vendor/a/): cloned at seed, a commit pushed with git splice push, then another local commit.
  • Upstream: seed, then the pushed commit.
  • Synced commit: still seed -- a push doesn't write to the monorepo.

The rebuild is deterministic, so it rebuilds the pushed commit exactly. Upstream's tip is an ancestor of the rebuild, and the next push fast-forwards it.

Output​

setup.bash builds this state:

$ build_scenario scenario_pushed_then_changed
$ git splice status
On branch main

ahead 1 vendor/a
$ git splice log
=== vendor/a (main)
< 8b60a90 later change (Test <test@example.com>)
$ git splice push vendor/a
ok vendor/a: pushed 8b60a90 to main
$ git splice status
On branch main

up to date vendor/a