> ## Documentation Index
> Fetch the complete documentation index at: https://docs.diversion.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Syncing

> Understand how to pause/resume, toggle automatic updates and selectively sync your repositories

## Repositories

By default your workspaces are synced in full, but there will be cases when you might want to:

* pause temporarily the syncing of your workspace.
* just sync a subset of your workspaces.

## Pause workspace sync

You can temporarily pause syncing for any workspace through the desktop app:

Open the workspace's "THIS WORKSPACE" sync settings, reached via the **... (more options) button** next to the workspace selector

<img style={{width: '350px', height: '54px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/410ATEhIJpZrdWhu/images/syncing/SettingsMenu.png?fit=max&auto=format&n=410ATEhIJpZrdWhu&q=85&s=4dba8b68faee32bf5589f00d88e682e3" alt="Diversion's Desktop App Workspace Sync Settings Button" width="290" height="42" data-path="images/syncing/SettingsMenu.png" />

Toggle **Sync** off to pause ("Upload and download file changes with the cloud")

<img style={{width: '182px', height: '136px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/410ATEhIJpZrdWhu/images/syncing/PauseSyncMenu.png?fit=max&auto=format&n=410ATEhIJpZrdWhu&q=85&s=efb587cebdfafc6b496948dd52bb9a33" alt="Diversion's Desktop App Pause Sync" width="423" height="291" data-path="images/syncing/PauseSyncMenu.png" />

Confirm to pause syncing for the current workspace

<img style={{width: '264px', height: '145px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/410ATEhIJpZrdWhu/images/syncing/ConfirmPauseSyncMenu.png?fit=max&auto=format&n=410ATEhIJpZrdWhu&q=85&s=3d1ad8840914f07eef0245914d76ba40" alt="Diversion's Desktop App Confirm Pause Sync" width="536" height="286" data-path="images/syncing/ConfirmPauseSyncMenu.png" />

While paused:

Your local changes are preserved and you can continue working
Remote commits from other team members won't sync to your workspace
Your commits won't be pushed to the repository

This is useful when you need to work offline or want to prevent interruptions during intensive work sessions. Remember to resume syncing when you're ready to collaborate again.

## Workspace Automatic Update

<img style={{width: '340px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/410ATEhIJpZrdWhu/images/syncing/AutoForwardingToggle.png?fit=max&auto=format&n=410ATEhIJpZrdWhu&q=85&s=3a4a3b0c71711203f868c7fa0bd330d1" alt="Diversion's Desktop App Workspace's Auto-Update Toggle" width="407" height="50" data-path="images/syncing/AutoForwardingToggle.png" />

While sync pause/resume controls the syncing between your local copy to the cloud workspace, auto-update controls the merging of new commits from the shared branch into your cloud workspace.

#### How it works

<CardGroup cols={2}>
  <Card title="Auto-Update ON" icon="toggle-on">
    Remote commits to the current branch will be automatically merged to the cloud workspace.
  </Card>

  <Card title="Auto-Update OFF" icon="toggle-off">
    Remote commits to the current branch will **not** be automatically merged to the cloud workspace.

    In case of remote commits to the branch, a notification "Updates available" will be displayed.
  </Card>
</CardGroup>

<Note>Toggling auto-update from off to on will trigger an automatic workspace update in case of pending updates.</Note>

<div style={{width: '80%', margin: '0 auto'}}>
  ```mermaid theme={null}
  flowchart TD

  G[Local Workspace Updated] --> H{Sync Status}
  H -->|Resumed| I[Local changes automatically synced with cloud workspace]
  H -->|Paused| J[No sync to / with cloud workspace]

  A[Remote Branch Commit] --> B{Auto-Update}
  B -->|Enabled| C[New commits automatically merged to cloud workspace]
  B -->|Disabled| K[No sync with cloud workspace]
  C --> H{Sync Status}
  ```
</div>

#### When should I turn it off?

In most cases it is better to be in sync with the remote branch, it allows finding and fixing conflicts fast and to avoid complex merges in the future.

Turn it off if you don't want remote branch updates to automatically be synced into your cloud workspace, for example if you think that changes from other teammates might break your current project state.

#### Alternative to disabling auto-update

It is possible to branch-out to a side branch in order to avoid receiving new commits from the shared branch into your local workspace while you are working on a feature or a fix. The advantages of this approach are:

* You can commit in more granular steps, and retain fine-grained control over your project history.
* When you are ready to merge your changes into the shared branch, you can create a Review Request to have your changes reviewed by your team members.
* Whenever you start working on a new feature, you can be sure that you are working on the latest version of the shared branch.

#### Default automatic update setting

<img style={{width: '81px', height: '79px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/410ATEhIJpZrdWhu/images/syncing/DefAutoForwardingToggle.png?fit=max&auto=format&n=410ATEhIJpZrdWhu&q=85&s=0fedf41f809d110962bc82cf2dce4b5c" alt="Diversion's Desktop App Workspace's Auto-Update Toggle" width="114" height="120" data-path="images/syncing/DefAutoForwardingToggle.png" />

Repo admins and owners can set the default auto-update value of new workspaces created in the selected repo.

To change the setting, open the settings sidebar (via your avatar -> `Your organizations`) and go to `Organization` -> `Repositories`.

<Note>This will **not** affect existing workspaces' settings. Users can control the auto-update setting for their individual workspaces regardless of the default setting for new workspaces.</Note>

## Selective sync

Control exactly which folders sync to your local workspace through the workspace's "THIS WORKSPACE" sync settings (the **... (more options) menu** next to the workspace selector).

<img style={{width: '350px', height: '54px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/410ATEhIJpZrdWhu/images/syncing/SettingsMenu.png?fit=max&auto=format&n=410ATEhIJpZrdWhu&q=85&s=4dba8b68faee32bf5589f00d88e682e3" alt="Diversion's Desktop App Workspace Sync Settings Button" width="290" height="42" data-path="images/syncing/SettingsMenu.png" />

Choose **Selective sync** ("Choose which folders sync to this machine")

<img style={{width: '182px', height: '136px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/410ATEhIJpZrdWhu/images/syncing/SelectiveSyncMenu.png?fit=max&auto=format&n=410ATEhIJpZrdWhu&q=85&s=3cab0de48519a86a44387be77a011fd9" alt="Diversion's Desktop App Selective Sync" width="423" height="291" data-path="images/syncing/SelectiveSyncMenu.png" />

Check (for sync) or uncheck (for unsync) the desired directories

<img style={{width: '308px', height: '200px', borderRadius: '0.5rem', border: '.1rem solid #555', boxShadow: '0 0 1rem #888' }} src="https://mintcdn.com/diversion-2/HhHa-PhS49hu7GIa/images/syncing/ConfirmSelectiveSyncMenu.png?fit=max&auto=format&n=HhHa-PhS49hu7GIa&q=85&s=ebc15a5b75fe7ac64d0ef77fbb55dc12" alt="Diversion's Desktop App Confirm Selective Sync" width="616" height="400" data-path="images/syncing/ConfirmSelectiveSyncMenu.png" />

How it works:

Checked folders: Contents sync locally, including all subfolders
Unchecked folders: Won't sync locally
Partially checked folders: Only checked subfolders will sync
Previously synced folders: Will be deleted locally if unchecked

Important notes:

Selective sync settings apply only to the current workspace
Settings cannot be changed while you have pending changes—commit or stash first
Each workspace can have different selective sync configurations

This feature is particularly useful for large repositories where you only need specific assets or code sections for your current task.

### Partially clone a repo with selective sync

You can use selective sync to clone only specific folders from a repository, reducing disk space usage and sync time.

<Steps>
  <Step title="Locate the repository">
    Find the repository that you want to partially clone.

    <img alt="Find your repo" src="https://mintcdn.com/diversion-2/kHkON9nxKTMPAEAM/images/find-your-repo.png?fit=max&auto=format&n=kHkON9nxKTMPAEAM&q=85&s=81e4d3593cc99b899863af47a2dc5ace" width="1770" height="1185" data-path="images/find-your-repo.png" />
  </Step>

  <Step title="Create a new workspace">
    Open the workspace selector (top-right of the repo sub-header), click `+ New workspace`, and enter a name for your new workspace.

    <img alt="Workspace selector with New workspace" src="https://mintcdn.com/diversion-2/Ro_2EfA8JfapE5By/images/branch-and-workspace-view.png?fit=max&auto=format&n=Ro_2EfA8JfapE5By&q=85&s=4b79a3166c5e8da927b0974da50cc647" width="427" height="96" data-path="images/branch-and-workspace-view.png" />
  </Step>

  <Step title="Enable selective sync">
    In the new workspace settings, select `Selective sync` to configure folder selection.

    <img alt="Enable selective sync" src="https://mintcdn.com/diversion-2/Ro_2EfA8JfapE5By/images/choose-selective-sync.png?fit=max&auto=format&n=Ro_2EfA8JfapE5By&q=85&s=483fec49466b5ed36f0add30d58e890c" width="423" height="291" data-path="images/choose-selective-sync.png" />
  </Step>

  <Step title="Select folders to sync">
    Choose which folders you want to include in your partial clone.

    <img alt="Selective sync select folders" src="https://mintcdn.com/diversion-2/Aw_zyWVcVChQlHD5/images/select-folders-to-sync.png?fit=max&auto=format&n=Aw_zyWVcVChQlHD5&q=85&s=ea5ee89952731bca540f86aacb9276cb" width="898" height="981" data-path="images/select-folders-to-sync.png" />
  </Step>

  <Step title="Clone the workspace">
    Navigate to the desktop app (if not already there) and open the workspace selector. Your new workspace appears under the **Remote** section (workspaces that aren't cloned to this machine yet). Locate it, click the **...** (more options) menu next to it, and select `Clone`.

    <img alt="Clone workspace" src="https://mintcdn.com/diversion-2/byT8FECKa2zLvaOH/images/clone-new-workspace.png?fit=max&auto=format&n=byT8FECKa2zLvaOH&q=85&s=b8b4f81c90e093c7be552a286a8cb59d" width="930" height="648" data-path="images/clone-new-workspace.png" />
  </Step>
</Steps>

That's it! You've successfully set up a partial clone with only the folders you need. Your workspace is now lighter and faster to sync.
