Your comments

I think I liked the dropdowns. Can't say if they how helpful they are, because they're too new and I'm not used to them yet.

Hunspell seems to be very widely adopted now. Every other spell checker I have here works with Hunspell. There's definitely point in supporting this format :)


Currently, SmartGit seems to support a limited subset of Hunspell format, having difficulties with:

1) UTF8 dictionaries with leading BOM mark in dictionary file

2) Dictionary encodings


Also, while implementing, please keep avoiding mistakes other software has:

1) Not supporting non-english characters (SmartGit currently OK)

2) Requiring all dictionaries to be in the same folder (SmartGit currently OK)

3) Requiring specific dictionary file names (SmartGit currently OK, I think)

4) Imposing one-per-language limit (SmartGit currently OK, I think)


You should try DeepGit which is specifically designed to follow code movements during investigation. With it, you will no longer need to do any artificial commits.

Wow, this feature is well-hidden! I guess I had no chance to learn about it! I believe the suggestion list shall open automatically as you type, in addition to being able to Ctrl+Space.


Keywords in diff basically means that you parse any full words from current commit's diff and suggest them. For example, I have changed the line:

void MyClassName::MyMethodName(string a_ArgumentName)
to
void MyBetterClassName::MyMethodName(string a_ArgumentName)

You will suggest every full word of non-trivial length:

  • MyClassName
  • MyBetterClassName
  • MyMethodName
  • string
  • a_ArgumentName

I do such analysis a lot myself, using Line history in Blame. It works rather well even with just one line inspected. My typical algorithm is as follows:

  1. Understand the bug and which line is culprit
  2. Open blame, inspect line history
  3. Among all line modifications, find the interesting one
  4. Click on its commit (to the left of line contents) to restart Blame from this commit
  5. If line is new in this commit and still have the bug, verify it's not moved from somewhere else (this is currently being impoved)
  6. If it was indeed moved, go to (2) and continue.

That's something I would love to have! I split commits once in a while, and have to resort to commandline for that.

Quite often, I start SmartGit to begin working on something, and it will instead run its update for a few minutes! That's frustrating.


But most of the time consuming work SmartGit does to update itself can be done while SmartGit is running, namely extracting new files and validating old files. The only thing that will remain is activating new SmartGit copy.

I believe renamed files should be recognized automatically, it would totally make the main window easier to read in case of file renames.

Good idea. Branch name is something you often want to share with a colleague. So far, I have to open 'Log' and copy branch name from there, which isn't the best way to do it. You could also use 'Rename' for local branches, but that doesn't work for remote branches, and that's still not the best way possible.

Sounds like a reasonable idea.


I usually work with local repo, backed up on local drive as remote repo. However, sometimes I want a public read-only copy of that repository, for example on GitHub. Having GitHub as the only backup isn't what I like, because:

  • Having no internet connection at the moment leaves me without any backup
  • It breaks my scheme of doing things

Also, check the score on this StackOverflow question:

https://stackoverflow.com/questions/849308/pull-push-from-multiple-remote-locations