Synchronized Projects

Synchronized projects consist of files that are mirrored on the local system as well as on one or more remote systems. Editing occurs locally and each file is synchronized with the currently active remote system when it is changed, created, or deleted. This enables faster interaction with the files and editor, more CDT editor features since the files are local, and continued interaction for editing etc. if the network connection is lost.

Requirements for Synchronized Projects

To host a synchronized project, the remote system must support the Git distributed version control system.

Creating a new Synchronized Project

To create a new Synchronized Project, use the following steps:

  1. Select File > New > Other... and in the wizard selection dialog, then select Remote > Synchronized Project.



    Or, from the context menu (right-mouse) in the Project Explorer, select New > Synchronized Project



  2. Enter a name for the project


  3. Choose Makefile Project > Empty Project for the Project type



  4. Select Next > and then Next > again.


  5. On the "Configure Remote Synchronization" page, you should see the Git Synchronization Provider is already selected (different providers may be available in the future). Select an existing connection or create a new one.



  6. Select the New... button to create a new remote connection with the Remote Tools remote service provider. The Target Environment Configuration dialog is shown. Fill in host name, user, and password (or other authentication information).



  7. Select Finish. The connection will be tested at this point before returning to the Configure Remote Synchronization page.


  8. Specify a remote location by selecting Browse...



  9. A Browse Directory dialog appears in which you can navigate to find the directory in which your new project's files will be contained on the remote system. Hit OK to finish. The Configure Remote Synchronization page now contains the location of the remote files:



  10. Hit Finish to complete project creation. If the remote location does not exist, it is created. Otherwise, the files in that directory will be synchronized to the local workspace.

Working with a Synchronized Project

Edit the files as you would any local project. Each time you save a file, it will be synchronized with the remote system. If you create or delete files, the remote system will be updated appropriately.

By default, a synchronized project is configured to build on the same remote host used for synchronization. To build the project (assuming you have already created a makefile), make sure the project is selected in the Project Explorer view, then click on the build icon (the icon that looks like a hammer). A build configuration called "Workspace" is also available to build on the local machine if this is required.

You can create configurations to synchronize and build on other remote systems using the C/C++ Build > Synchronize project properties. To bring up the Synchronize project properties, in the Project Explorer view, select the project and choose Properties from the context menu (right click).

Synchronization is done between the local workspace and the active configuration. You can change the active configuration by using the Build Configurations > Set Active... context menu on the project or via the Manage Configurations button on the Synchronize properties page. If "Workspace" is the active configuration, no synchronization is done.

Changing sync behavior with the Sync Context Menu

The sync context menu lets you alter the sync behavior and can be accessed with a right click on a sync project. From this menu, you can turn off automatic sync'ing (sync after saving files and other resource changes) so that syncs only occur on request. This setting is applied to all projects in the workspace. The "Project Auto-Sync Settings" submenu allows you to alter the behavior of automatic sync'ing per project. Finally, the last two selections allow you to force an immediate sync of the current project. A "sync all" syncs all configurations of a project. Note that this can be quite slow if your project has several configurations. When a build is requested, a sync of the active configuration, and only the active configuration, is forced regardless of any settings.

Converting a project to a Synchronized Project

The conversion wizard allows you to convert current C/C++ or Fortran projects to synchronized projects. Currently only local projects can be converted. To convert a project right-click in the workspace and select New > Other... In the wizard selection dialog, select Remote > Convert C/C++ or Fortran Project to a Synchronized Project > Next. From this dialog, you can select a project to convert and configure a remote site. See Creating a new Synchronized Project for details on configuring a remote site. This wizard will add a single new remote build configuration. Its settings are copied from the current active configuration. You can change these settings and add new configurations as with any other synchronization project. See Working with a Synchronized Project for details.

Remote Include Paths

At the time of the PTP 5.0 release (June 2011), the mechanism for supporting remote includes in CDT does not work automatically with synchronized projects yet, as it requires some integration with the remote scanner discovery (which discovers what includes/defines are set on the remote system).

You can currently manually configure remote include files as follows:

  1. Open the project properties


  2. Open the C/C++ General > Paths and Symbols page


  3. Choose the build configuration you want to use


  4. Click on GNU C and remove the existing paths


  5. Add new paths to the remote include directories using UNC notation //connection_name/usr/include where 'connnection_name' is the name of the connection you specified for the Remote Tools service provider


    For example, to add the include path /usr/include using the connection lincoln.ncsa.uiuc.edu that you previously configured, you would use the path //lincoln.ncsa.uiuc.edu/usr/include


  6. Click OK then OK again. You may be asked if you want to rebuild the index. Click Yes.

See also Synchronized Projects usage info on the PTP Wiki page for information available after PTP 5.0 release.

 

 

 

See Local Vs. Remote Projects for more information on the different kinds of local and remote projects.

 

Back to Top | Back to Table of Contents