Source code control (also called "revision control", "version control" or "code management") is the practice of managing changes to a set of files in a common repository. Files can be checked out from the repository, edited, reverted, merged, checked in or compared with other versions.
Komodo supports common operations for the following SCC systems:
From within Komodo, you can perform the following SCC actions:
Depots, repositories, branches, and projects cannot be created or configured from within Komodo. This must be done using the SCC software directly. Komodo's SCC features become available when files are checked out from the source code repository.
Komodo is can work in conjunction with external graphial SCC
clients such as TortoiseCVS and TortoiseSVN, and P4Win.
However, the command line executables (i.e. cvs
,
svn
and p4
) must be present on the local
system.
SCC functions are available in the following locations:
The Source Control submenu options are the same regardless of which method is used to access the menu.
Access common source code control commands from the SCC Toolbar at the top of the Komodo workspace. Refer to the command descriptions below for more information. The toolbar commands only apply to the file currently active in the Editor Pane.
To access source code control functions, select File|Source Control.
Invoke source code control context menus by right-clicking files or folders in the following areas:
The SCC Output tab is located in the Bottom Pane of the Komodo workspace. As you execute source code control commands, such as editing or checking in files, details of the commands are displayed on the SCC Output tab.
Error messages and warnings are also displayed on the SCC Output tab. Additionally, error messages and warnings are displayed on the status bar in the bottom left corner of the Komodo workspace.
As described above, source code control commands are invoked from the toolbar, the File menu and the Source Control context menu. The following commands are available, depending on the context:
Under Perforce, to open files for edit from within a Komodo project, you must first add files to the project using options on the Project menu. To accomplish the same under CVS, use the following procedure:
cvs co
<projname>
to open working copies of the
files.If Perforce, CVS or Subversion is enabled in Komodo's Preferences, the status of files in the source code repository is indicated by icons that appear on file tabs in the Editor Pane and next to files and projects on the Projects sidebar.
The icons can appear in a variety of combinations, depending on the status of the file and where they are displayed in the Komodo workspace. For example, a pencil icon next to a padlock icon on a tab in the Editor Pane indicates that the file has been locally modified and that the version of the file in your local directory is in sync with the version in the source code repository.
![]() |
The file is being added to the source code repository. |
![]() |
The file is being deleted from the source code repository. |
![]() |
The file has been locally modified. |
![]() |
The version of the file in your local directory is in sync with the version in the source code repository (i.e. there are no pending updates from the SCC server). |
![]() |
The file is read-only. |
![]() |
The version of the file in your local directory is out of sync with the version in the source code repository. |
![]() |
There is a conflict between the version of the file in your local directory and the source file that cannot be resolved by simply syncing your directory with the source code repository. The discrepancy must be manually resolved. |
To refresh the SCC status of the current file do one of the following:
To refresh the SCC status of an entire folder, do one of the following:
Komodo's Checkout command launches a wizard which steps through downloading a local copy of a set of version controlled files (e.g. a branch).
Set the following options:
Each SCC handler will have different additional paramenters which can be set:
Options mentioned above are explained with more detail in the documentation for each SCC handler:
The last step in the wizard shows the command to be executed based on the options chosen in the previous two steps. Click Checkout to run the command. Current status and command output will be displayed as the command runs.
Note: The SCC Checkout wizard does not correctly handle password authentication. SCC checkouts requiring password authentication should be done at the command line. You can do this by copying the command shown in the command line summary and pasting it into a terminal.
Changelists are a way of grouping associated files together so they can be committed in a single SCC operation. Perforce has native changelist functionality, but Komodo IDE offers its own generic changelist feature which can be used with Subversion, Perforce and CVS.
The Change Lists sidebar in the right pane allows you to create new changelists, modify existing ones, and drag files from one list to another.
Right-click on a list to perform SCC operations or view the list properties.
When Komodo handles a modified SCC file that does not yet belong to an existing change list, the file is added to a Default Changes list. Separate default change lists are created for SVN, P4, and CVS.
The Default Changes list can be renamed and modified as desired; new ones are created by Komodo as necessary.
Use the Add New Change List button in the Change Lists sidebar to create a new change list. You will be prompted to specify a unique name for the change list.
Right-clicking on a change list brings up a context menu. Select Properties to bring up the Changelist Properties dialog box with the following fields:
Only checked files will be included when the change list is submitted. Unchecked files (those that are under the same base path with pending SCC operations) are displayed so that they can be added easily if desired. Select Only show checked files to hide these.
The Base path displayed above the file list is the longest path prefix (lowest level directory) that can include all files in the list. If you add a new file file or directory that is outside of this base path, Komodo re-computes the base path and updates the relative paths displayed in the list.
The Show Diff will display a unified diff of all checked files using the base path described above. This is an excellent way to create patches.
If Diff Display Style is set to Create new window, copy the diff into a new file and save it. If this is set to Open editor tab, use File|Save As....
cvs
from the
command line (e.g. 'cvs checkout repository
...
').cvs
executable is available in your PATH
or is
specified with a full pathname.Komodo should now recognize that the file is under CVS source code control and the SCC menus and status icons should be enabled. If not, click Refresh Status on the File menu (or Ctrl-K, R) to force it to reset.
Some CVS repositories (e.g. SourceForge) will only support CVS access over SSH (secure shell). When accessing these repositories, an SSH client is required. See Configuring SSH Support for CVS and Subversion below for details on configuring SSH support.
svn
from the
command line (e.g. 'svn checkout URL
...
').svn
executable is available in your
PATH
or is specified with a full pathname.Komodo should now recognize that the file is under Subversion source code control and the SCC menus and status icons should be enabled. If not, click Refresh Status on the File menu (or Ctrl-K, R) to force it to reset.
Some Subversion repositories only support Subversion access over SSH (secure shell). When accessing these repositories, an SSH client is required. See Configuring SSH Support for CVS and Subversion below for details on configuring SSH support.
p4
from the
command line (e.g. 'p4 sync path
').p4
executable is available in your
PATH
or is specified with a full pathname.Komodo should now recognize that the file is under Perforce source code control and the SCC menus and status icons should be enabled. If not, click Refresh Status on the File menu (or Ctrl-K, R) to force it to reset.
Users of Perforce's P4CONFIG feature may find that Komodo's source code control doesn't work unless Komodo is started from within the client view of the Perforce repository.
Use the Source Code Control page in Komodo's Preferences to configure Source Code Control integration. To open the Komodo Preferences dialog box, select Edit|Preferences.
Tunneling your CVS or Subversion connections over SSH can provide an added level of security for your repository access. CVS and Subversion use very similar methods for tunneling over an SSH connection. On Windows, download and install Putty or Cygwin to provide SSH support. Linux and OS X distributions typically include SSH support.
This is a basic guideline for configuring CVS and Subversion to use SSH, however, because server configurations can vary, you should consult the documentation for the control system you are using, or request help from you system administrator.
The use of Pageant (on Windows) or ssh-agent (OS X and Linux) with Komodo is strongly recommended.
Putty is a free SSH, Telnet and Rlogin client for Windows.
1. Install Putty
Download Putty (version 0.52 or greater) and associated programs from:
http://www.chiark.greenend.org.uk/~sgtatham/putty/To connect to a server via SSH, the following programs are required:
Ensure that the directory where Putty is installed is
specified in your system's PATH
environment
variable.
2. Generate the Putty Key
Run the puttygen
utility. Configure as
follows:
3. Load and Configure the Putty Authentication Agent
Run the pageant
program. This loads the Putty
Authentication Agent into the Windows System Tray.
Right-click the Pageant icon in the Windows System Tray. Select Add Key. Navigate to the directory where you saved the public and private keys in the previous step, and select the file private1.key.ppk.
4. Configure Putty To Use Pageant
Run the putty
program. Configure as follows:
5. Store the Public Key on the Server
You must store the public key file generated in step 2 (public1-openssh.key) on the CVS or Subversion server.
cmd
in the Windows Run dialog box.pscp c:\path\to\public1-openssh.key username@server.com:public1-openssh.key
...where c:\path\to\public1-openssh.key specifies the location of the key file created in step two, and username@server.com specifies your username and URL on the remote server. You are prompted to confirm the legitimacy of the host, and may be prompted to enter your password for the server.
putty
program. In the Saved
Sessions field, double-click the configuration created
in Step 4. This establishes a connection to the server.mkdir ~/.ssh chmod 700 .ssh cat ~/public1-openssh.key >> ~/.ssh/authorized_keys rm ~/public1-openssh.key chmod 600 ~/.ssh/*
exit
to close the session of the server.6. Test the Configuration
Restart Putty. In the Saved Sessions field, double-click the configuration created in Step 4. You should not be prompted to log in. If you are, the configuration failed. Review the steps above and ensure that they were completed correctly.
Use the following additional steps if you are using CVS with Komodo.
7. Check Out a CVS Module
set CVS_RSH=plink set PLINK_PROTOCOL=ssh cvs -d :ext:username@cvs.server.com:/repository_name co cvs_module
...where username@cvs.server.com specifies your username on the CVS server and the URL of the CVS server, repository_name specifies the name of the repository on the server, and cvs_module specifies the name of the module in the chosen working repository.
Login is handled by SSH. The files are copied to the local system. These environment variables do not interfere with non-SSH repositories.
Ensure that these variables are permanently configured in your system environment (for example, by adding them to the autoexec.bat file or configuring them in the system properties).
8. Using Komodo and CVS
Before starting Komodo, perform the following steps:
PLINK_PROTOCOL
to "ssh".CVS_RSH
to "plink".pageant
program to enable the authentication
agent. Ensure that the private1.key is loaded.
You can also execute Pageant and load the key via a batch file. For example:
C:\PuTTY\pageant.exe c:\path\to\private.key c:\path\to\private2.key
Use the following additional steps if you are using Subversion with Komodo.
7. Check Out a Subversion Repository
svn checkout svn+ssh://svn.server.com/repository_path/module/ local_path
...where svn.server.com specifies the server domain name of the Subversion server, repository_path/module specifies the path of the repository on the server, and local_path specifies the preferred location on your local system for your copy of the repository. The local_path can be ommited, in which case the local path is the last part of the repository_path.
Login is handled by SSH. The files are copied to the local system.
Ensure that these variables are permanently configured in your system environment (for example, by adding them to the autoexec.bat file or configuring them in the system properties).
8. Using Komodo and Subversion
Set the following environment variables in Environment Preferences:
PLINK_PROTOCOL=ssh
SVN_SSH=c:/path/to/plink.exe -batch
Specify the full path to plink.exe
using forward
slashes "/" or escaped back slashes "\\". The -batch
argument is used to prevent plink from prompting for user input.
You can specify a specific private key by adding "-i
C:/path/to/private_keyfile
". For example:
SVN_SSH="c:/path/to/plink.exe" -i "c:/path/to/private_keyfile"
You can use the Subversion configuration file instead of setting the SVN_SSH environment variable:
[tunnels] ssh = $SVN_SSH plink.exe
This permits configuration of different connection types. The config file is located in the Subversion directory, typically inside the Application Data area of the user's profile directory (eg. C:\Documents and Settings\USERNAME\Application Data\Subversion). See the Subversion documentation for more information.
If you use "plink = $SVN_SSH plink.exe" in the tunnels section of the config file, use "svn+plink" for your checkout url rather than "svn+ssh".
Run pageant
to enable the authentication agent.
Ensure that the private1.key is loaded. You can start
Pageant and load the key using a batch file. For example:
C:\PuTTY\pageant.exe c:\path\to\private.key c:\path\to\private2.key
To configure CVS to use SSH, refer to http://forrest.apache.org/docs_0_70/howto/cvs-ssh/howto-cvs-ssh.html.
On all platforms, create an environment variable as follows:
CVS_RSH=ssh
CVS determines when to use SSH, depending on how you check out the modules. If you use the "cvs login" method with the "pserver" protocol, CVS does not use SSH, even if CVS_RSH=ssh is set in the environment.
On Windows, also configure the cygwin SSH Agent as follows:
exec ssh-agent bash
.ssh-add
/path/to/public/key (e.g.
'ssh-add /.ssh/id_rsa.pub
')cvs -d :ext:username@cvs.server.com:/repository_name co cvs_module
...where username@cvs.server.com specifies your username on the CVS server and the URL of the CVS server, repository_name specifies the name of the repository on the server, and cvs_module specifies the name of the module in the chosen working repository.
/path/to/komodo/bin/komodo
After completing the configuration steps above, follow these steps to open Komodo with CVS-SSH enabled:
exec ssh-agent bash
.ssh-add
/path/to/public/key (e.g.
'ssh-add ~/.ssh/id_rsa.pub')/path/to/komodo/komodo.exe
Subversion determines when to use SSH depending on how you check out the modules. If you use http:// or file:/// URIs, Subversion will not use SSH.
To use subversion with SSH, do the following before starting Komodo:
exec ssh-agent bash
.ssh-add
/path/to/public/key (e.g.
'ssh-add ~/.ssh/id_rsa.pub
')svn checkout svn+ssh://svn.server.com/repository_path/module/ local_path
...where svn.server.com specifies the server domain name of the Subversion server, repository_path/module specifies the path of the repository on the server, and local_path specifies the preffered location on your local system for your copy of the repository. The local_path can be ommited, in which case the local path is the last part of the repository_path.
Refer to http://svnbook.red-bean.com/en/1.0/ch06s03.html#svn-ch-6-sect-3.3 for more detailed instructions, including information on configuring svn+ssh to be non-interactive (i.e. no password prompt).