Skip to main content

Redo the pull

In the same state, instead of resolving the conflict: abort the merge, drop your own pull, update the monorepo, and pull the splice again on top of the other developer's pull. That's simpler while your pull is your only local commit, and keeps the history linear.

Output​

setup.bash builds this state:

$ build_scenario scenario_concurrent_pulls
$ git merge origin/main >/dev/null; git merge --abort

--keep drops the pull commit, and refuses if that would lose uncommitted changes:

$ git reset -q --keep HEAD~1 && git merge -q --ff-only origin/main
$ git splice pull vendor/a
ok vendor/a fetched
ok vendor/a: pulled 4c1905d
$ git log --format=%s
splice: pull vendor/a from main at 4c1905d
splice: pull vendor/a from main at 72efaac
splice: clone vendor/a from main at bde4164
initial commit
$ git splice status
On branch main

up to date vendor/a