---
name: "repo-smartsync"
section: "1"
platform: "linux"
package: "repo"
version: "2.67-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/repo-smartsync"
---

# repo-smartsync(1)

repo smartsync - manual page for repo smartsync

## NAME

repo - repo smartsync - manual page for repo smartsync

## SYNOPSIS

**repo** *smartsync* \[*\<project\>*...\]

## DESCRIPTION

Summary

Update working tree to the latest known good revision

## OPTIONS

- **-h**, **--help**

  show this help message and exit

- **-j** JOBS, **--jobs**=*JOBS*

  number of jobs to run in parallel (default: based on number of CPU cores)

- **--jobs-network**=*JOBS*

  number of network jobs to run in parallel (defaults to **--jobs** or 1). Ignored unless **--no-interleaved** is set

- **--jobs-checkout**=*JOBS*

  number of local checkout jobs to run in parallel (defaults to **--jobs** or 8). Ignored unless **--no-interleaved** is set

- **-f**, **--force-broken**

  obsolete option (to be deleted in the future)

- **--fail-fast**

  stop syncing after first error is hit

- **--force-sync**

  overwrite an existing git directory if it needs to point to a different object directory. WARNING: this may cause loss of data

- **--force-checkout**

  force checkout even if it results in throwing away uncommitted modifications. WARNING: this may cause loss of data

- **--force-remove-dirty**

  force remove projects with uncommitted modifications if projects no longer exist in the manifest. WARNING: this may cause loss of data

- **--rebase**

  rebase local commits regardless of whether they are published

- **-l**, **--local-only**

  only update working tree, don't fetch

- **--no-manifest-update**, **--nmu**

  use the existing manifest checkout as-is. (do not update to the latest revision)

- **--interleaved**

  fetch and checkout projects in parallel (default)

- **--no-interleaved**

  fetch and checkout projects in phases

- **-n**, **--network-only**

  fetch only, don't update working tree

- **-d**, **--detach**

  detach projects back to manifest revision

- **-c**, **--current-branch**

  fetch only current branch from server

- **--no-current-branch**

  fetch all branches from server

- **-m** NAME.xml, **--manifest-name**=*NAME*.xml

  temporary manifest to use for this sync

- **-g** GROUP, **--groups**=*GROUP*

  sync projects matching the specific groups.  Not persistent unlike when used on init

- **--clone-bundle**

  enable use of */clone.bundle* on HTTP/HTTPS

- **--no-clone-bundle**

  disable use of */clone.bundle* on HTTP/HTTPS

- **-u** MANIFEST\_SERVER\_USERNAME, **--manifest-server-username**=*MANIFEST\_SERVER\_USERNAME*

  username to authenticate with the manifest server

- **-p** MANIFEST\_SERVER\_PASSWORD, **--manifest-server-password**=*MANIFEST\_SERVER\_PASSWORD*

  password to authenticate with the manifest server

- **--recurse-submodules**

  sync submodules from server

- **--no-recurse-submodules**

  don't sync submodules from server

- **--use-superproject**

  use the manifest superproject to sync projects; implies **-c**

- **--no-use-superproject**

  disable use of manifest superprojects

- **--superproject-revision**=*SUPERPROJECT\_REVISION*

  sync to superproject revision (applies to outer manifest)

- **--tags**

  fetch tags

- **--no-tags**

  don't fetch tags (default)

- **--optimized-fetch**

  only fetch projects fixed to sha1 if revision does not exist locally

- **--retry-fetches**=*RETRY\_FETCHES*

  number of times to retry fetches on transient errors

- **--prune**

  delete refs that no longer exist on the remote (default)

- **--no-prune**

  do not delete refs that no longer exist on the remote

- **--auto-gc**

  run garbage collection on all synced projects

- **--no-auto-gc**

  do not run garbage collection on any projects (default)

### Logging options:

- **-v**, **--verbose**

  show all output

- **-q**, **--quiet**

  only show errors

### Multi-manifest options:

- **--outer-manifest**

  operate starting at the outermost manifest

- **--no-outer-manifest**

  do not operate on outer manifests

- **--this-manifest-only**

  only operate on this (sub)manifest

- **--no-this-manifest-only**, **--all-manifests**

  operate on this manifest and its submanifests

### repo Version options:

- **--no-repo-verify**

  do not verify repo source code

### post-sync hooks:

- **--no-verify**

  Do not run the post-sync hook.

- **--verify**

  Run the post-sync hook without prompting.

- **--ignore-hooks**

  Do not abort if post-sync hooks fail.

Run \`repo help smartsync\` to view the detailed manual.

## DETAILS

The 'repo smartsync' command is a shortcut for sync **-s**.
