---
title: "Synchronize items on demand"
slug: "synchronize-items-on-demand"
abstract: "Overview of the on-demand item synchronization in Sitecore for Visual Studio."
---
# Synchronize items on demand

You can use Sitecore for Visual Studio (SVS) to push or pull items between your file system and a Sitecore instance on demand. The synchronization operation is performed in the **Push items to Sitecore** and **Pull items from Sitecore** windows (generally known as the **Sync** window), which contains the following functions:

| Function | Description |
| --- | --- |
| **Environments** | Select the Sitecore instance environment to synchronize the file system items to. |
| **Filters** | Toggle between including or excluding items. |
| **Refresh** | Click to validate the serialized items in your file system against the Sitecore instance. |

To synchronize items:

1. In Sitecore Module Explorer:
    - To evaluate all modules for serialization, right-click **Sitecore Configuration Root** and click **Push items to Sitecore** or **Pull items from Sitecore**.
    - To evaluate a particular module only, right-click the module and click **Push items to Sitecore** or **Pull items from Sitecore**.

    SVS validates the serialized items in your file system against the items in the target Sitecore instance. This is the same process as if you ran the `sitecore ser validate` command.

    After validation, the **Sync** window compares the items defined by the modules with the items in the selected Sitecore environment and show the results.

    If there are no differences between the two, the **Sync** window remains empty:

    ![Illustration showing the Sync window with no item differences.](https://doc.sitecore.com/api/markdown-image/xp/en/developers/100/developer-tools/images/SyncWIndow_NoItems.png)

    If there are differences, the **Sync** window shows the differences grouped by module:

    ![Illustration showing the Sync window with item differences.](https://doc.sitecore.com/api/markdown-image/xp/en/developers/100/developer-tools/images/SyncWindow_Differences.png)

    In this example, an item was added and two others were updated. To see the field differences on an updated item, click the expand button for the item on the right side of the window:

    ![Illustration showing the Sync window with item differences expanded.](https://doc.sitecore.com/api/markdown-image/xp/en/developers/100/developer-tools/images/SyncWindow_DifferencesExpanded.png)

    The information shown for the updated item is the same information you would see if you ran the `sitecore ser pull -w -v` command.

2. Select the check boxes for the items you want to synchronize. The check box in the blue module area selects all items in the module. The **Select All** check box selects or de-selects all items in all modules.
3. To start the synchronization operation, click **Sync** . If there *are no synchronization errors*, the items are removed from the **Sync** window. If there *are synchronization errors*, the **Sync** window displays the errors, and the **Refresh** button changes to a **Validate** button.

    ![Illustration showing the Sync window with synchronization errors.](https://doc.sitecore.com/api/markdown-image/xp/en/developers/100/developer-tools/images/SyncWindow_Errors.png)

4. To see a list of all the synchronization errors, click **Validate** :

    ![Illustration showing Sync windows with the expanded list of synchronization errors.](https://doc.sitecore.com/api/markdown-image/xp/en/developers/100/developer-tools/images/SyncWindow_Validate.png)

5. To let SVS attempt to fix the differences on the list, click **Fix Errors**. This is the same process as if you ran the `sitecore ser validate --fix` command.

    > [!note]
    > You must manually fix errors displayed as Manual Fix.

6. To check the fixes, click **Validate** again. If there are no errors, the **Sync** window is refreshed, and you can resume pulling or pushing items to the Sitecore instance.