Appearance
ts import
Copy a repository from an upstream Turbo server into this one. The copy runs on the server, so the command returns as soon as the work is queued.
Usage
text
ts import <namespace/name> --source=<domain> [--tag=TAG] [--max-history=N]
ts import sources
ts import cancel <id>Description
ts import sources lists the upstream servers this server is configured to pull from. A source has to exist before anything can be imported from it; sources are configured in the Administration site.
ts import <namespace/name> --source=<domain> queues the copy and returns immediately with a run id. Nothing is downloaded while you wait — the server does the work in the background, which is what makes importing a large repository safe to start from a script or over a slow connection. Watch it with ts imports.
By default only the newest revision is copied. --max-history copies more of the history, and --tag restricts the copy to one release tag.
ts import cancel <id> drops a run that has not started yet. Once the server has begun copying, a run can no longer be canceled and the command says so rather than appearing to succeed.
Starting and canceling an import are both recorded in the audit log.
Options
| Flag | Description | Default/Values | Notes |
|---|---|---|---|
--source | Upstream server to copy from. | Domain or source id | Required; see ts import sources. |
--tag | Copy only this release tag. | Default copies all tags on the revisions selected. | |
--max-history | How many revisions of history to copy. | Default 1; max 999 | 1 is the newest revision only. |
--force, -f | Cancel without confirming. | Applies to cancel. |
Examples
bash
# What can we pull from?
ts import sources
# Newest revision only
ts import turbo/git --source=https://hub.turbo.net
# A specific release, with more history
ts import turbo/git --source=https://hub.turbo.net --tag=2.44 --max-history=10
# Start several, then watch them
ts import turbo/git --source=https://hub.turbo.net
ts import turbo/python --source=https://hub.turbo.net
ts imports --active
# Change your mind before it starts
ts import cancel 7 --forceOutput
text
Queued import of turbo/git from https://hub.turbo.net (run 1).
Watch it with 'ts imports --active'.ts imports shows progress and, for a run that failed, the reason the server recorded:
text
ID REPOSITORY TAG STATUS PROGRESS STARTED BY QUEUED
2 turbo/git - Running 3/10 rev, 41% alice 2026-07-30T00:58:53Z
1 turbo/py - Error 0/1 rev alice 2026-07-29T22:10:02Z
turbo/py: Repository 'turbo/py' was not found on 'https://hub.turbo.net'.Exit Codes
0 on success, including when a run is queued but later fails — the queueing succeeded. -1 when the source is unknown or the run can no longer be canceled. -5 when the account is not a Server Administrator.
Related Commands
- ts repo — Inspect or remove the repositories an import produces.
- Hub administration — Configuring the sources imports pull from.
