Comparison with GitHub
Most of what you do on GitHub has a direct counterpart on Tangled. Git itself is unchanged: commits, branches, tags and remotes work the same. What differs is who stores what: your account, your git data, and your CI can each live on a different server. Tangled is federated: those servers can be run by different people, including you, and still work together.
Accounts
Section titled “Accounts”GitHub hosts every account itself. On Tangled, your account lives with
an account provider (a PDS), and Tangled is one app that uses it. If you
sign up with Tangled you get a handle like alice.tngl.sh. If you
already have an atproto account, sign in with that handle instead; there
is nothing to link.
Repositories and hosting
Section titled “Repositories and hosting”On GitHub, the website and the git server are one service. On Tangled, the git server is a knot, and anyone can run one. Host repositories with Tangled on the knots we run, or on your own knot; the web app shows both the same way.
Issues and pull requests are stored on the same knot as the code, not in your account. That keeps a project’s discussion with the project, and the knot enforces who may write it.
Pull requests
Section titled “Pull requests”A GitHub pull request tracks a moving branch: force-push and the old commits disappear from the review. In contrast, pull request submissions in Tangled are immutable.
When you create a pull request, it creates an immutable “round”. To update your pull request, you may push to the same branch, and hit “resubmit” on the interface. This creates a new round. Each round records a fixed base and head commit, reviewers can read earlier rounds and observe a pull request as it evolves.
Tangled also has support for the Jujutsu version control system: it can automatically detect Jujutsu change-ids and can calculate interdiffs across rounds. Pull requests covers the workflow and its current limits.
Workflows live in .tangled/workflows/*.yml and run on a spindle:
run CI with Tangled, or run your own spindle. Writing
workflows has working examples.
To move an existing repository over, see Migrating from GitHub.