Skip to main content
Version: 0.1.124

Upstream sync

Upstream sync brings changes made outside the platform into the project. It exists because the modernized codebase is a real repository your developers also work in, and a platform that assumed otherwise would overwrite their work.

When you need it​

  • A developer committed directly to the modernized repository.
  • Another team merged something into the base branch.
  • A project combining several source repositories, where each moves on its own.

What it does​

Inbound sync builds the project's workspace from the source repositories as they now stand. For a combined project, commits are pulled from each source repository into the combined feature branch, and work done in the combined workspace is pushed back out to the repositories it belongs to.

That round trip is the point: developers keep working in the repositories they know, and the platform keeps a coherent view across them.

Reading a sync​

Each sync is recorded with what it brought in. Open one to see which repositories moved and what came across — worth doing when an implementation starts behaving differently for no reason you can see in the platform.

Feature branches and a base that has moved​

A base branch that moves after a feature branch was cut is normal, not an error. The base branch can be merged into a feature branch to bring it current, and a reused feature worktree is kept current with the base branch automatically.

In pull-request mode, a base branch that moves before the pull request is opened is handled rather than producing a stale request.

Conflicts​

A conflicted merge into the integration branch leaves the checkout clean. You do not end up with a half-applied merge in the workspace that somebody has to unpick — the merge fails as a unit, and a failed merge job does not mark the feature itself as failed.

Resolve the conflict the way you normally would, in the web IDE or locally, and merge again.

Where a project is linked to GitHub, the link maintains itself: it pushes on creation, syncs both ways, and pushes again at merge time. You should not need to move branches by hand to keep the two in step.