File: core_tenets.md

package info (click to toggle)
jujutsu 0.37.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 11,740 kB
  • sloc: sh: 283; makefile: 34
file content (25 lines) | stat: -rw-r--r-- 1,282 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
## Jujutsu's Core Tenets

Jujutsu's core tenets are:

 * Separation of logic and UI: It should be easy to create new UIs (CLIs, GUIs,
   TUIs, servers) without having to duplicate logic.
 * Easy-to-use APIs: It should be easy to create new commands. For example,
   each command should not have to worry about concurrency, working-copy state,
   and rebasing descendants of rewritten commits.
 * User-friendliness: Making the working copy a commit is simpler. This is
   how the project started.
 * The repo is the source of truth: Most commands should operate on the commit
   graph. The working copy is just one way of editing commits.
 * Pluggable storage: Must be easy to integrate with different commit storage,
   virtual file systems and more.
 * Git-interoperability: Git is everywhere. We need to have good
   interoperability to be adopted.
 * All operations must be able to scale to Google-scale repos (lots of commits,
   lots of files): Laziness is important, must avoid accessing data
   unnecessarily.
 * Having as few states as possible.
 * Make it incredibly hard to lose work in your repo.
 * Concurrent modifications to the repo should be safe.
 * Allow concurrent edits on any commit, pending or finished.
 * Make a "stacked diffs" workflow as easy as possible.