Repositories View: 'Working Sets' to switch between my personal or my company repositories

Helder Rossa 4 years ago updated by Thomas Singer 1 month ago 25

I would like to use SmartGit with different repositories depending on what I'm working on. Has an example. I could be at home working in my open source or personal projects and I could be at the office and I just wan't to see my company repositories that I'm working on.

To do that SmartGit could have a notion of a 'Working Set' that sets the list of the group/repositories that I'm seeing. When having multiple 'Working Sets' I could switch between the active 'Working Set'.


Maybe you should consider to group your repositories?

I have groups, and I would like to be able to change the User settings for the entire group at once.

What exactly you mean with "User settings" - the email address used for commits? Do you usually switch that multiple times or is it just a one-time change? In other words, do you commit to the same repository with different accounts/names?

I use Groups, but normally I work with big projects with several repositories. I use groups to 'join' the repositories of my Products/Projects/Modules/Libraries. I have several groups ordered by alphabetic order (mixing personal, company work and multiple-projects).

Having groups inside groups would sort of fix the problem. But even if you work on several projects would be easier to have only the 'working set' of the repositories and groups that you really need.


Every company should alow you to open-source at workingtime. Good idea in general but the example is bad. :)


I found out that GitKraken has support for profiles "Multiple profiles for work & personal".

Another advantage of working sets in addition to groups: groups, which are not relevant for the current working set will be hidden entirely. So you will just have all the entries you need right now.

Nested groups would be nice to have.

Some projects contain several repositories. Sometime of different types (hg, svn, git). It would be nice to group them together under some global groups like 'job', 'tutorials', 'hobby projects' etc.

I personally prefer to something like define a 'Working Set'/Session/Project that I could have only the repositories and groups that I'm focus on. If I switch context (different project / environment / whatever) then I can load a different 'Working Set' and display other repositories and groups. This would be a better workflow for me.

But I would be glad to have nested groups has an alternative.

Does anybody has a good suggestion how to change from the current state with groups? We are happy to have abandoned projects because a lot of users did not understand this concept. What tiny change we should do to make you happy and keep it right for other users, too?

I would like something like this. Support for Sets and/or Inner groups.

Thanks. Unfortunately, this looks like a total rework, no simple addition. Hard to sell for users that mostly tend to like sticking with the existing.

BTW, what exactly should be changed beside the repositories view?

For me, "working sets" would be more like having different profiles for SmartGit. Like multiple user profiles, but for the current (Windows, ...) user only.

If I could create Profiles and change between them in SmartGit. And a Profile means different settings and repositories. Then it will do the job also (altough I would need to reconfigure my settings per every Profile I want to create).

You already can do something similar on Windows by using the portable bundle.

Although not perfect in my eyes, the Inner Groups (group in group) would be a simpler addition, and almost does the job (just expand the ones you need... and collapse and expand the other when changing context).

I just made a mockup that made sense, in terms of use, for me. But, configuration of 'Sets' could be just a User Preference and no major change in the 'Repositories View' would be added. Also, the 'Sets Dropdown' only is visible if a user configures some 'Sets'. So, most users would see much of a difference when not using 'Sets'.


SmartGit 18.2 preview provides support for nested groups.

How do you think this should be implemented? Should SmartGit really write ~/.gitconfig before each command execution?

I didn't understood your question and not sure it was related to the 'grouping' issue

I assumed you mean to replace one global ~/.gitconfig for your private repositories with another one for your company's repositories. Maybe this was a wrong assumption? What exact options do you want to be switched between private and company profiles - name, e-mail or also additional stuff?

I want to replace my working set (the repositories and associations to groups) with other set of repositories and groups.

Let say, at work. I want some file structure like:

  • Common Libs
    • Lib1 (git)
    • Lib2 (git)
  • Project X
    • FrontEnd (git)
    • BackEnd (git)
    • Core (git)
    • Console (git)
  • Project N (bunch of other projects groups)
    • .... n repos

Let say, at home. I want some file structure like:

  • GitHub

    • bootstrap (git)
    • Lib2 (git)
  • Personal Project X

    • FrontEnd (git)
    • BackEnd (git)
    • Core (git)
    • Console (git)
  • Personal Project N (bunch of other projects groups)

    • .... n repos

Just wan't to swith between 'sets', in this case, work and personal. But could be much more then just that.

If you are on Windows, multiple portable installations would help you.

Sorry, I'm not using Windows.

But I'm guessing this feature is useful to anyone (even Windows users without the need for the hack) who works with multiple big projects and don't want to have dozens of groups in their setup.

Less groups will provide:

  • much better responsiveness and performance (if you have favorite repos it will degrade performance)
  • much better usability (you are constantly searching the repo in a big tree of groups).