All smartgit.properties settings should be discoverable and editable in a UI dialog

Christopher Kline 1 year ago • updated by Thomas Singer 4 months ago 8

There's a large number of very useful customizations that can be made via smartgit.properties.


  1. It's very hard to know what all the available options are (they're scattered across various web pages, and these docs are sometimes updated sporadically or slowly)
  2. There's no way to know when a new setting become available unless it happens to be mentioned in the release notes (which it often is not), and you are diligent enough to read every release note
  3. When properties are removed from the application, they can remain (non-functional) in your smartgit.properties
  4. If the setting is misspelled in smartgit.properties, there's no obvious indication of a problem

What I would like is for a UI dialog (perhaps "Customize") to list, document (via a tooltip) and allow editing of every supported setting that can be configured in smartgit.properties.

I'm fine with the editing being raw text like it is now. I just want everything in one place.

A bonus would be a column listing what version the setting was introduced in, so it's easy to see when new settings have been added.

Satisfaction mark by Christopher Kline 4 months ago

Implementing this along with the "All SmartGit settings in a single dialog" request would go a long way towards improving the usability and discoverability of all the powerful features in SmartGit.

And then we will know all defaults too! :) Now documentation page specifies them not for all parameters.


Maybe do the same as about:config in Firefox ?

Currently, we use VM properties for options that should not be exposed to the GUI and because it is easy to implement (calling something like System.getProperty(key, defaultValue)). If this would become harder to implement, we would implement fewer options and hence need to reject some configuration requests.

Would it become harder to implement if the UI dialog was just an interface (again, key-value string pairs, no fancy widgets) that read from and wrote to the existing smartgit.properties file?

If smartgit did the following at startup:

  • read in smartgit.properties
  • wrote out smartit.properties after inserting any missing properties with their default values, perhaps with a comment containing the documentation

and then the dialog was just an interface to that document, would that be an acceptable level of work?


I'm also having in mind just a UI interface to smartgit.properties. This will be a one-time work, no problem with that.

As Thomas has pointed out, the maintenance of system properties (including adding new properties) should not require more effort than currently: (1) adding a single definition line in code and (2) adjusting documentation (Confluence). As you may already have guessed, (2) usually require more work than (1) :)

Hence we have to evaluate possible solutions/designs how (1) and (2) can be combined in code. I'm rather optimistic that it can be done with roughly the same effort as currently.