Skip to content

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

FlagDescriptionDefault/ValuesNotes
--sourceUpstream server to copy from.Domain or source idRequired; see ts import sources.
--tagCopy only this release tag.Default copies all tags on the revisions selected.
--max-historyHow many revisions of history to copy.Default 1; max 9991 is the newest revision only.
--force, -fCancel 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 --force

Output

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.

  • ts repo — Inspect or remove the repositories an import produces.
  • Hub administration — Configuring the sources imports pull from.