Repository Settings

After selecting a Repository, you can use the Repository | Settings menu command or the Settings context menu on the highlighted repository. This opens a dialog to configure certain options of your repository (<repository>/.git/config) file.

Note:

  • Changes made to a repository’s configuration only affects the selected repository. You can set option defaults globally by using Edit | Preferences | Git Config settings. This will become the configuration default for all repositories, although you can still override settings on individual repositories through Repository | Settings on that repository.
  • You can also edit the Git configuration directly by manualy updating your .gitconfig file, although you will lose the validation safety net that SmartGit provides.

User Tab

Use this tab to configure your name and email address - this information will be used to identify the commit author when committing to this repository.

Fetch and Pull Tab

These settings allow you to configure options related to the Pull command:

  • Whether to Merge from, or Rebase the local branch commits ahead onto the fetched changes, when pulling updates from a tracked remote branch.
  • Whether to delete (prune) obsolete remote branches
  • How to treat Submodule synchronization when pulling:
    • Always fetch new commits, tags, and branches from the submodule’s remote
    • Update registered submodules
    • Initialize new submodules which have been added to the tracked remote branch

Push Tab

This configuration allows you to choose what happens when you attempt to push, and a referenced submodule which has changes (only applicable to repositories containing submodules).

  • Abort if changes to submodules - Your push operation will abort, and you will need to resolve the submodule synchronization, e.g. by explicitly pushing changes to submodules before pushing changes in the current (dependent) repository.
  • Ignore submodules - Will only push changes in the current repository. Submodule changes will NOT be pushed to the remote.
  • Push submodules first - SmartGit will automatically attempt to push changes to Submodules,before pushing changes to your current repository.

Note: If your changes depend on the changes you’ve made to your local submodule repository, and you choose Ignore submodule changes, other users may not be able to compile your changes.

Signing Tab

This allows you to configure the GPG program and your private signing key to Sign Tags and Commits, to prove author identify.

Please refer to Signing for further information.

Note

You need to ensure the specified GPG program is configured to use an agent that can ask you for your key’s passphrase using a GUI.

Otherwise you may get a gpg error “cannot open tty `/dev/tty’: Device not configured”.

Encoding Tab

Here you can also configure the text encoding SmartGit should assume when viewing text files in the Changes view or Compare window, or when editing files, e.g. with the Compare, Index Editor or Conflict Solver.

SmartGit will automatically detect UTF-8 encoding, with or without leading byte order markers (BOM).

  • UTF-8 with BOM, UTF-16 with Byte Order Markers (BOMs) are detected automatically.
  • Files with UTF-8 and without BOMs are usually automatically detected from the content, so you don’t usually need to explicitly add BOMs to UTF-8 encoded files.

Unless you have a specific reason for changing the encoding settings, it is recommended that the default UTF-8 encoding be used.

Tag-Grouping

This tab provides advanced configuration options how SmartGit will group tags, branches, or other refs that match this configuration.

Tag grouping:

  • Allows a more compact display of a range of tags in the Log Graph.
  • Introduces additional “group”-nodes in the Branches view.
  • Adds Closest Tags category to the Commit view.

For details on how tag-grouping patterns are specified, hover over the blue markers.

Other Options

SmartGit supports other options either in <repository>/.git/config or ~/.gitconfig:

  • smartgit.gui.prefixAddBranch: this value defines the default prefix in the Branch | Add Branch dialog
  • smartgit.gui.prefixStartFeature: this value defines the default prefix in the Branch | Git-Flow | Start Feature dialog