Concurrent operations: allow doing actions on repo while SmartGit is busy

Ram Rachum 10 months ago updated by Marc Strapetz 10 months ago 0

This is a complex and difficult feature that I've wanted for many years, and have bugged the SmartGit team about several times.

One of the frustrating things when you're working with SmartGit is that every time you're doing an action (like fetch or commit or cherry-pick) you can't do almost anything with the interface until it completes. It means that when I'm working with SmartGit, I spend a lot of my time twiddling my thumbs waiting for it to do one action before I issue the next one, and computers aren't supposed to be like this. 

It'll be nice if SmartGit had some kind of command queue, so I could do another command while a command is already taking place, and then it'll get executed automatically when the first command is done.

For example, I could be pushing to a remote repo, which might take 5 seconds. Once I started the push, I might want to switch to a different branch. I should be able to do that. Right now what I do is use the command line `git checkout` instead, but staying inside SmartGit would be preferable.

This is a really complex feature, because SmartGit would have to have a queue of outstanding commands. We'll need to think about cases where a command failed in the queue, making the other commands not able to run.

Despite of the complexities, I think that this can be a huge improvement to SmartGit.