Merged
Conversation
Owner
|
Ooh exciting. I'll make time to review these on Saturday |
Contributor
|
Wow, this is awesome! |
junglerobba
commented
Apr 4, 2025
src/repos.rs
Outdated
Comment on lines
+90
to
+98
| let user_settings = UserSettings::from_config(StackedConfig::with_defaults()) | ||
| .change_context(TmsError::GitError)?; | ||
| let mut store_factories = StoreFactories::default(); | ||
| store_factories.add_backend( | ||
| GitBackend::name(), | ||
| Box::new(|settings, store_path| { | ||
| Ok(Box::new(GitBackend::load(settings, store_path)?)) | ||
| }), | ||
| ); |
Collaborator
Author
There was a problem hiding this comment.
This part I'm a bit uncertain about. Do we care about user settings in order to load a repo?
Collaborator
There was a problem hiding this comment.
Not sure we care currently, but there's always the future and as far as I know gix loads the user settings before trying to load a repo as well
Owner
|
sorry still haven't gotten around to reviewing this. I'll be graduating in a few weeks and will definitely have more time then |
b311238 to
1bafd14
Compare
63ffa11 to
af37516
Compare
uses jj-lib crate This adds a config option `vcs_providers`, where both `git` and `jj` can be added. By default only git is enabled. Providers are used lazily in order, so if jujutsu is configured before git, git will not find a colocated jj repository if jj found it first. Worktrees/workspaces are handled differently depending on vcs provider. Git should behave the same as before, with the exception that on non-bare repos worktrees will be opened as new windows as well. jj doesn't have bare repos, and so far there doesn't seem to be a reliable way to refer from the "base" repo to its workspaces, so instead tms will scan all configured search paths for workspaces belonging to the base workspace that is opened, and then open a new window for each of them. (jj workspaces are identified by `.jj/repo` not being the actual repo, but instead a file that points to the main workspace where the repo is stored)
jrmoulton
approved these changes
May 16, 2025
Owner
jrmoulton
left a comment
There was a problem hiding this comment.
LGTM!
Sorry this took so long to review
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#124
builds on top of #159
uses jj-lib crate
This adds a config option
vcs_providers, where bothgitandjjcan be added. By default only git is enabled.
Providers are used lazily in order, so if jujutsu is configured before git,
git will not find a colocated jj repository if jj found it first.
Worktrees/workspaces are handled differently depending on vcs provider.
Git should behave the same as before, with the exception that on non-bare
repos worktrees will be opened as new windows as well.
jj doesn't have bare repos, and so far there doesn't seem to be a reliable
way to refer from the "base" repo to its workspaces, so instead tms will
scan all configured search paths for workspaces belonging to the base
workspace that is opened, and then open a new window for each of them.
(jj workspaces are identified by
.jj/reponot being the actual repo,but instead a file that points to the main workspace where the repo is
stored)
I haven't used this a lot for actual work yet, I will do that for the coming
days starting next week to see if this causes any issues. Otherwise I'd appreciate
if others who are interested could test as well :)
( @mrcjkb ? )