Skip to content

virtualized remote backend for JJ

Notifications You must be signed in to change notification settings

benbrittain/jj-yak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yak

An experimental remote backend for the jj version control tool

yak is somewhat of a placeholder name.

Architecture

A high-level overview of how jj-yak is intended to work.

There are three primary pieces of software.

  • JJ CLI w/ jj-yak backend
  • Daemon
  • Remote Backend
  1. CLI

The CLI is the primary way an end-user interacts with jj-yak. It communicates with the daemon over gRPC. The CLI stores no persistent data. It can be used to initiate new jj-yak repositories by requesting the daemon to mount the repo.

jj yak init [email protected]/repo # initialize a local copy of a repo as bwb
  1. Daemon

Runs on the end user machine. It is intended to be a long-lived process that is capable of being restarted. It implements a control interface over gRPC which communicates with the JJ CLI (backend and working copy interfaces). It implements an NFS server and manages the local mounting of repos via an NFS client implementation. It caches reads and writes that interact with the backend.

jj yak ls # List locally mounted repos
  1. Backend Stores all commit and repo data for all users.

About

virtualized remote backend for JJ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages