fioan89 / sourcesync

A powerful plugin for performing one-way file synchronization for Intellij Idea and Pycharm projects
Other
89 stars 36 forks source link

Sourcesync Plugin

"Buy Me A Coffee" Donate Sourcesync Plugin Build

A fast, one-way file synchronization tool for your projects.

Local changes can be transferred on the remote infrastructure using the SCP or SSH protocols. Other notable features include:

Upgrade to Sourcesync Pro for more features and a more streamlined way of transferring code.

Features Sourcesync Sourcesync Pro
License Free & opensource Starts at $5.99 USD per user/month
SCP File Upload Yes Yes
SCP Folder Upload No Yes - Recursive Upload
SSH/SFTP File Upload Yes Yes
SSH/SFTP Folder Upload No Yes - Recursive Upload
Auto Transfer On File Save No Yes
Support For Comparing Local vs Remote Files No Yes
SCP/SSH Password Authentication Yes Yes
SCP/SSH Key-Pair Authentication With & Without Passphrase Yes Yes
SCP/SSH timestamp preserving Modification Time Permissions, Access & Modification times
File Filtering Yes Yes
User-friendly UI with support for IntelliJ's New UI feature Yes Yes
Customizable keyboard shortcuts Yes Yes
VCS Changes Upload Yes Yes
Multi-selection File Upload Yes Yes
Multi-selection Folder Upload No Yes
Editor File Upload Yes Yes

How to install

Sourcesync plugin can be found at http://plugins.jetbrains.com/plugin/7374?pr=idea_ce

Details about how to install a plugin from JetBrains plugin repository can be found at: http://www.jetbrains.com/idea/webhelp/installing-updating-and-uninstalling-repository-plugins.html

Getting started

  1. Launch the IDE and install the plugin.

  2. Restart the IDE.

  3. Configure one or more remote sync configurations to target the remote environment where you would like to transfer your changes. To create or edit your sync configurations you would have to:

    1. locate the Sourcesync Configurations combo box in the IntelliJ's main toolbar panel. sync_selector_on_main_toolbar

    2. Click the combo box drop down icon and then hit the Edit Sourcesync Configurations button.

    3. In the new Sourcesync Remote Configurations dialog, click + on the toolbar or press Alt + Insert. The list shows the SCP&SSH templates available for configuration. sync_configuration_dialog

    4. Specify the sync configuration name in the Name field. This name will be shown in the list of the available sync configurations.

    5. Fill in the connection details like host, username and password or certificate, depending on the desired authentication type.

    6. Specify the remote base path (excluding the project name) where your files will be transferred.

    7. Apply the changes and close the dialog.

  4. From the Sourcesync Configurations combo box select a sync configuration as primary target sync_configuration_selector

  5. Select one or more files, right click, and in the context menu select Sync selected files to target name. Alternatively, press Ctrl + Shift + F2

  6. Alternatively only the file under edit (focused editor) could be transferred by right click in the editor, and in the context menu select Sync this file to target name or just press Ctrl + Shift + F1

  7. A third option is to sync all Git changed files by right click in the editor or Project toolbar, and then select Sync changed files to target name. Alternatively, press Ctrl + Shift + F3

FAQ

  1. Where are my files transferred?

    Files are transferred on the remote host selected as the main target in the Sourcesync Configurations combo box. Sourcesync keeps the remote project structure similar to the local one, except the project's base path which will be replaced on the remote target with the Workspace configuration value.

    For example, say the Workspace remote path is configured to /home/ifaur/workspace, and your local project is placed in C:\\Users\\ifaur\\IdeaProjects\\my-awesome-project then a local file placed in src\\main\\kotlin\\com\\mypackage\\MyFile.kt will be transferred to /home/ifaur/workspace/my-awesome-project/src/main/kotlin/com/mypackage/MyFile.kt

  2. Where are the sync configurations stored?

    Sourcesync keeps sync configurations per project, and it stores its data in the project's .idea/sourcesync.xml

  3. Where are passwords and certificate passphrases stored?

    Sourcesync makes use of IntelliJ's own credential store framework to securely save sensitive data. IntelliJ IDEA does not have its own password store. It uses either the native password management system or KeePass.

  4. There are errors when trying to load or persist sync configurations. What do I do next?

    You can simply remove .idea/sourcesync.xml from the project's folder and restart IntelliJ. You will have to reconfigure your sync targets.

License

Sourcesync is licensed under MIT License. Please take a look at the LICENSE file for more informations.

Issues

Bugs can be reported at https://github.com/fioan89/sourcesync/issues