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

FR: Daemon for managing multiple repositories. #4854

Open
Dietr1ch opened this issue Nov 14, 2024 · 4 comments
Open

FR: Daemon for managing multiple repositories. #4854

Dietr1ch opened this issue Nov 14, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@Dietr1ch
Copy link

Is your feature request related to a problem? Please describe.

In git managing multiple repositories often becomes a burden, so tools to help there come out,

I'd very much like that jj helped here instead of leaving people doing silly manual labor, or to start their own repository manager because they don't know about one existing solution yet.

Describe the solution you'd like

Ideally a user daemon that was able to watch for remotes and update on a user set schedule.

What other tools can do for git,

  • Watch multiple code forges.
  • Synchronise the "master" branch.
  • Run commands on all repos.
  • Manage multiple sets of repositories.
    • This allows doing things like, nix flake update on all the projects within an organisation.

I think there's definitely space to think beyond this, but I don't want to get distracted by things like automatically rebasing your work once your local master is updated and tests pass.

Describe alternatives you've considered

I have not done any research here, but I'm hoping that we can avoid the issue in the first place by having an official daemon.

@PhilipMetzger
Copy link
Contributor

There's a daemon on the roadmap, see https://github.com/martinvonz/jj/blob/main/docs/roadmap.md#open-source-cloud-based-repos-server-and-daemon-process and the related issues around jj api (#3869, #3219) or jj run (#1869) which all benefit from having it.

If I understand you correctly, you want it purely for managing repos which we haven't discussed yet.

@PhilipMetzger PhilipMetzger added the enhancement New feature or request label Nov 14, 2024
@Dietr1ch
Copy link
Author

Thanks for linking that. I did not know there was a daemon planned.

Yes, I was only thinking about the repo sync+management problem and I think it's not explicitly discussed in there.

From skimming the API, it's trying to avoid having others to "link" to the rust library and to avoid having to start a jj subprocess to interact with a single repo (like the mess that happened early on with git pre-libgit2).

The Cloud-based repos (server and daemon process) are mostly about allowing jj forges to exist and operate, but the client side part of it is more akin to a CitC client for a single repo than to a daemon to manage and sync all the repos on your machine.

@arxanas
Copy link
Contributor

arxanas commented Nov 14, 2024

In terms of prior work, the git maintenance subsystem is kind of similar.

I think there's two main categories alluded to in this issue's text:

  • Regularly-scheduled maintenance work
  • Interactive "for-each-repo" kind of work

It might be worth considering whether they should have separate solutions or not.

@PhilipMetzger
Copy link
Contributor

I think there's two main categories alluded to in this issue's text:

  • Regularly-scheduled maintenance work
  • Interactive "for-each-repo" kind of work

The Thing I forgot is that I definitely want to run hooks out-of-processs (#3577), which would belong in the interactive "for-each-repo" bucket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants