Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Open multiple repos with tabbed interface #1247

Open
craigwardman opened this issue Jul 14, 2022 · 1 comment
Open

Feature Request: Open multiple repos with tabbed interface #1247

craigwardman opened this issue Jul 14, 2022 · 1 comment

Comments

@craigwardman
Copy link

Hello git-cola team,

I think it would be really nice if you could open multiple repositories at once within a single instance of the app and be able to navigate between them using a tabbed interface (i.e. like web browser tabs).

This is useful when you're working on something that spans across several related repos, or when you want to leave open your most frequently used repos for when you next start the app.

Cheers.

@davvid
Copy link
Member

davvid commented Jul 15, 2022

This is a pretty sweet idea. There are a few small technical hurdles, but I think they're things we can overcome.

There are a few places where we use global state. A few singletons but over the years we've just about moved all of them into the context object that gets passed around.

The OpenRepo class in cola/cmds.py is what's used to switch repositories when you double click on a repo from the Favorites or Recent widgets. That action switches the repo in-session, and it touches this global state.

The fsmonitor, for example, would need to be able to have multiple instances of it around. These all seem doable.

We could even "fake" it out by remembering the selection and commit messages and just updating the widgets in-place, but a tabbed interface with an actual separate widget hierarchy could be nice.

This probably isn't a simple thing to implement, but we have eliminated many of the technical hurdles that might prevent this from working over the years so it should be doable without a huge overhaul.

I think if we could work in UI elements without them being overly obtrusive then this would be worth it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants