Publishing (Komodo IDE only)

Publishing synchronizes groups of files between local and remote systems over FTP, SFTP, FTPS or SCP. You can upload a group of files from your local system or download a group from the remote system and keep the synchronized. Local changes are pushed to the remote server, and remote changes are pulled to the local system.

Komodo keeps track of the synchronization details to avoid copying files that haven't changed and uses advanced conflict detection to avoid overwriting changes made by others.

You can use Publishing for deploying websites to the hosting web server, or use it with remote storage as a simple backup utility.

Creating a Configuration

To launch the Publishing configuration wizard, click Tools|Publishing|New Configuration. You will be prompted to set up:

  • Name: A convenient name for your saved configuration.
  • Local path: The full path to the local directory. Use the Browse button or enter the path manually.
  • Remote path: The URI of the remote directory, including the hostname and full path. Use the Browse button to navigate to a previously configured server, or enter the URI manually (e.g. scp://username@servername/path/to/dir)
  • Includes: File types to be included in the synchronization. Use glob syntax separated by semi-colons (e.g. ";.xml") or leave blank.
  • Excludes: File types to be excluded from the synchronization. Same syntax as above. If you use both, the Excludes list takes priority if there are conflicts.
  • Auto-push on file save: With this option enabled, when a local publishing file is saved in the Komodo editor, it will be automatically pushed to the remote server location.

Clicking "Save" opens the Synchronization dialog box and shows the details of the pending synchronization.

Synchronizing

The Synchronization dialog box shows:

  • which local files will be uploaded to the server
  • which remote files will be downloaded from the server
  • which files cannot be synchronized because of a conflict

Synchronization dialog box

The following actions are available:

  • Check All: selects all items in the list.
  • Uncheck All: de-selects all items in the list.
  • Diff Changes: shows a unified diff of all pending changes (selected files).
  • Synchronize: starts the pending uploads and downloads.

When synchronizing, Komodo will examine the local and remote locations for any file differences and present the changes for your inspection. Check the files you wish to be transferred (or use Check All). Clicking Synchronize will copy the files between the local and remote file systems. The synchronization be aborted at any time by pressing the Stop button.

Conflicts

If a file has been modified locally and remotely, the conflict will be highlighted in the file list. Right click on any file in the file list to bring up a context menu with the following options:

  • Diff: Show the line-by-line differences between the files.
  • Resolve conflict: Lets you choose one file or the other - Upload the local file or Download the remote file.

You can highlight ALL conflicting files and perform any action on them at one once to save clicks.

Force Sync Action

If changes have occurred either remotely or locally that you don't wish to sync you can select all effected files and use the following context menu options to get your desired state: * Force Upload: If Komodo is going to "download" a deleted or edited file or folder and you don't want it to, you can force it to upload the local state instead with this option. * Force Download: The opposite action of Force Upload. Force download if you wish your local files to reflect the remote files but Komodo is suggesting the opposite.

NOTE: If Komodo is trying to download or upload NEW/ADDED files then you cannot FORCE the opposite action to occur. You also cannot "Force Down/Upload" an item that already planned to do the same action. The menu item will be disable on single items and on multiple items Komodo will simply skip those cases and not set them. NOTE: You can select as many files as you want to perform this action on.

Publishing Commands

There are also the following publishing commands available on a per-file basis (through the Places or the editor tab context menus):

  • Push: Pushes the locally changed file/s to the remote server.
  • Force Push: This overwrites the remote file even if there are changes there. If there is a conflict this command allows you to force push the file without opening the Publishing dialog.
  • Pull: Pulls the remote changed file/s locally.
  • Force Pull: This overwrites the local file even if there are changes there. If there is a conflict this command allows you to force pull the file without opening the Publishing dialog.
  • Diff: Shows the line-by-line differences between the local and remote file.