SmartGit stores its settings files per-user. Each major SmartGit version has its own default settings directory, so you can use multiple major versions independent of each other. The location of the settings directory depends on the operating system.

Default Location of SmartGit's Settings Directory

You can change the directory where the settings files are stored by changing the property smartgit.settings. This is used by the portable bundle for Windows.

Notable Files in the Settings Directory

Resetting certain parts of the configuration to defaults

To reset certain parts of SmartGit's configuration ("settings") to the defaults:

  1. locate the appropriate configuration file (*.xml)
  2. Exit SmartGit, using Repository|Exit
  3. Get rid of the file(s)
  4. Start SmartGit again

Program Updates

SmartGit stores program updates which have been downloaded automatically through SmartGit itself by default in the subdirectory updates of the Settings root directory (see Default Location of SmartGit's Settings Directory). This allows "light weight", patch-like updates which do not require write access to the actual SmartGit installation directory. As a consequence, your SmartGit installation directory is usually not up-to-date, but it will launch the downloaded updates from the updates directory. Only under specific conditions, SmartGit will detect that an upgrade of the installation directory itself is necessary ("installation update").

You can manually trigger the update of the installation directory from the About dialog, section Information, ...-button right beside Version.

If you prefer to keep your SmartGit installation always up-to-date, you can select Update SmartGit application in place in the Preferences, section SmartGit Updates. Note, that updating with this option selected may require administrator privileges.

Technical Details

The root directory of the Updates directory contains sub-directories for every major version. Such a major version directory contains a control file for the latest downloaded build and a current-file which points to the currently used build. Usually, this will be the highest build which shows up in this directory. The control-file only configures which binaries are part of the build by linking to the actual binaries which are stored in the repo-subdirectory and which are shared among all builds.

Each new build has a corresponding, digitally-signed control file which contains information about all required application files with their download location and the expected file content hash. To reduce band-width, application files only will be downloaded if they are not yet locally available. After download, the content will be verified with the hash from the control file.

When starting SmartGit, the bootloader.jar from the installation directory is launched. This uses the control file from the Updates directory to determine which updated SmartGit files to launch that contain the actual application code.

By modifying the control file or any other contents within the Updates directory, you may easily screw up your SmartGit installation. Hence, do not touch these files unless you have good reasons to do so.

JRE Search Order (Windows)

On Windows, the smartgit.exe launcher will search for a suitable JRE in the following order (from top to bottom):

Installing/running multiple SmartGit versions in parallel

You can install multiple versions of SmartGit in parallel and you can even run them at the same time. This will be useful if you want to primarily work with the Preview version, but have the latest released version still present as fall back. SmartGit has separate settings areas for different versions, so it's only an issue of "installation" :