mirror of
https://github.com/martinvonz/jj.git
synced 2024-09-11 05:45:30 +03:00
project: rename project from Jujube to Jujutsu
"Jujutsu" is probably much more familiar and relatable to most people. Also, I'm still not sure how "jujube" is supposed to be pronounced :P
This commit is contained in:
parent
1cdac0f902
commit
d42e6c77b2
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -541,7 +541,7 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jujube"
|
||||
name = "jujutsu"
|
||||
version = "0.1.1"
|
||||
dependencies = [
|
||||
"blake2",
|
||||
@ -554,7 +554,7 @@ dependencies = [
|
||||
"git2",
|
||||
"hex",
|
||||
"indoc",
|
||||
"jujube-lib",
|
||||
"jujutsu-lib",
|
||||
"pest",
|
||||
"pest_derive",
|
||||
"protobuf",
|
||||
@ -569,7 +569,7 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jujube-lib"
|
||||
name = "jujutsu-lib"
|
||||
version = "0.1.1"
|
||||
dependencies = [
|
||||
"backoff",
|
||||
|
@ -1,13 +1,13 @@
|
||||
[package]
|
||||
name = "jujube"
|
||||
name = "jujutsu"
|
||||
version = "0.1.1"
|
||||
authors = ["Martin von Zweigbergk <martinvonz@google.com>"]
|
||||
edition = "2018"
|
||||
license = "Apache-2.0"
|
||||
description = "Jujube (an experimental VCS)"
|
||||
description = "Jujutsu (an experimental VCS)"
|
||||
homepage = "https://github.com/martinvonz/jj"
|
||||
repository = "https://github.com/martinvonz/jj"
|
||||
documentation = "https://docs.rs/jujube"
|
||||
documentation = "https://docs.rs/jujutsu"
|
||||
readme = "README.md"
|
||||
keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"]
|
||||
categories = ["command-line-utilities", "development-tools"]
|
||||
@ -30,7 +30,7 @@ dirs = "3.0.1"
|
||||
git2 = "0.13.14"
|
||||
hex = "0.4.2"
|
||||
indoc = "1.0.3"
|
||||
jujube-lib = { version = "=0.1.1", path = "lib"}
|
||||
jujutsu-lib = { version = "=0.1.1", path = "lib"}
|
||||
pest = "2.1.3"
|
||||
pest_derive = "2.1.0"
|
||||
protobuf = { version = "2.22.1", features = ["with-bytes"] }
|
||||
|
19
README.md
19
README.md
@ -1,4 +1,4 @@
|
||||
# Jujube
|
||||
# Jujutsu
|
||||
|
||||
|
||||
## Disclaimer
|
||||
@ -20,8 +20,9 @@ blobs. However, the blobs are actually split into three types: normal files,
|
||||
symlinks (Unicode paths), and conflicts (more about that later).
|
||||
|
||||
The command-line tool is called `jj` for now because it's easy to type and easy
|
||||
to replace (rare in English). The project is called "Jujube" (a fruit) because
|
||||
that's the first word I could think of that matched "jj".
|
||||
to replace (rare in English). The project is called "Jujutsu" because it matches
|
||||
"jj" (I initially called it "Jujube", but changed since jujutsu is more
|
||||
well-known).
|
||||
|
||||
|
||||
## Features
|
||||
@ -34,7 +35,7 @@ readers who are already familiar with other VCSs.
|
||||
The tool currently has two backends. One is called "local store" and is very
|
||||
simple and inefficient. The other backend uses a Git repo as storage. The
|
||||
commits are stored as regular Git commits. Commits can be read from and written
|
||||
to an existing Git repo. This makes it possible to create a Jujube repo and use
|
||||
to an existing Git repo. This makes it possible to create a Jujutsu repo and use
|
||||
it as an alternative interface for a Git repo (it will be backed by the Git repo
|
||||
just like additional Git worktrees are).
|
||||
|
||||
@ -58,7 +59,7 @@ running.
|
||||
|
||||
### Supports Evolution
|
||||
|
||||
Jujube copies the Evolution feature from Mercurial. It keeps track of when a
|
||||
Jujutsu copies the Evolution feature from Mercurial. It keeps track of when a
|
||||
commit gets rewritten. A commit has a list of predecessors in addition to the
|
||||
usual list of parents. This lets the tool figure out where to rebase descendant
|
||||
commits to when a commit has been rewritten (amended, rebased, etc.). See
|
||||
@ -123,14 +124,14 @@ yet.)
|
||||
|
||||
The criss-cross merge case becomes simpler. In Git, the virtual ancestor may
|
||||
have conflicts and you may get nested conflict markers in the working copy. In
|
||||
Jujube, the result is a merge with multiple parts, which may even get simplified
|
||||
Jujutsu, the result is a merge with multiple parts, which may even get simplified
|
||||
to not be recursive.
|
||||
|
||||
The in-tree conflicts make it natural and easy to define the contents of a merge
|
||||
commit to be the difference compared to the merged parents (the so-called "evil"
|
||||
part of the merge), so that's what Jujube does. Rebasing merge commits therefore
|
||||
works as you would expect (Git and Mercurial both handle rebasing of merge
|
||||
commits poorly). It's even possible to change the number of parents while
|
||||
part of the merge), so that's what Jujutsu does. Rebasing merge commits
|
||||
therefore works as you would expect (Git and Mercurial both handle rebasing of
|
||||
merge commits poorly). It's even possible to change the number of parents while
|
||||
rebasing, so if A is non-merge commit, you can make it a merge commit with `jj
|
||||
rebase -r A -d B -d C`. `jj diff -r <commit>` will show you the diff compared to
|
||||
the merged parents.
|
||||
|
@ -1,13 +1,13 @@
|
||||
[package]
|
||||
name = "jujube-lib"
|
||||
name = "jujutsu-lib"
|
||||
version = "0.1.1"
|
||||
authors = ["Martin von Zweigbergk <martinvonz@google.com>"]
|
||||
edition = "2018"
|
||||
license = "Apache-2.0"
|
||||
description = "Library for Jujube (an experimental VCS)"
|
||||
description = "Library for Jujutsu (an experimental VCS)"
|
||||
homepage = "https://github.com/martinvonz/jj"
|
||||
repository = "https://github.com/martinvonz/jj"
|
||||
documentation = "https://docs.rs/jujube"
|
||||
documentation = "https://docs.rs/jujutsu"
|
||||
readme = "../README.md"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
extern crate test;
|
||||
|
||||
use jujube_lib::diff;
|
||||
use jujutsu_lib::diff;
|
||||
use test::Bencher;
|
||||
|
||||
fn unchanged_lines(count: usize) -> (String, String) {
|
||||
|
@ -24,7 +24,7 @@ pub enum GitImportError {
|
||||
InternalGitError(#[from] git2::Error),
|
||||
}
|
||||
|
||||
// Reflect changes made in the underlying Git repo in the Jujube repo.
|
||||
// Reflect changes made in the underlying Git repo in the Jujutsu repo.
|
||||
pub fn import_refs(
|
||||
mut_repo: &mut MutableRepo,
|
||||
git_repo: &git2::Repository,
|
||||
|
@ -133,7 +133,7 @@ impl Debug for ReadonlyRepo {
|
||||
|
||||
#[derive(Error, Debug, PartialEq)]
|
||||
pub enum RepoLoadError {
|
||||
#[error("There is no Jujube repo in {0}")]
|
||||
#[error("There is no Jujutsu repo in {0}")]
|
||||
NoRepoHere(PathBuf),
|
||||
}
|
||||
|
||||
|
@ -14,8 +14,8 @@
|
||||
|
||||
use std::path::Path;
|
||||
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::testutils;
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::testutils;
|
||||
use tempfile::TempDir;
|
||||
use test_case::test_case;
|
||||
|
||||
|
@ -12,11 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::repo_path::FileRepoPath;
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::tree::DiffSummary;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::repo_path::FileRepoPath;
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::tree::DiffSummary;
|
||||
use test_case::test_case;
|
||||
|
||||
#[test_case(false ; "local store")]
|
||||
|
@ -15,8 +15,8 @@
|
||||
use std::cmp::max;
|
||||
use std::thread;
|
||||
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::{dag_walk, testutils};
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::{dag_walk, testutils};
|
||||
use test_case::test_case;
|
||||
|
||||
fn count_non_merge_operations(repo: &ReadonlyRepo) -> usize {
|
||||
|
@ -12,9 +12,9 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::repo_path::FileRepoPath;
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::tree::DiffSummary;
|
||||
use jujutsu_lib::repo_path::FileRepoPath;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::tree::DiffSummary;
|
||||
use test_case::test_case;
|
||||
|
||||
#[test_case(false ; "local store")]
|
||||
|
@ -14,15 +14,15 @@
|
||||
|
||||
#![feature(assert_matches)]
|
||||
|
||||
use jujube_lib::commit::Commit;
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::evolution::{
|
||||
use jujutsu_lib::commit::Commit;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::evolution::{
|
||||
DivergenceResolution, DivergenceResolver, OrphanResolution, OrphanResolver,
|
||||
};
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::repo_path::FileRepoPath;
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujube_lib::testutils;
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::repo_path::FileRepoPath;
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
use jujutsu_lib::testutils;
|
||||
use test_case::test_case;
|
||||
|
||||
#[must_use]
|
||||
|
@ -17,12 +17,12 @@ use std::path::PathBuf;
|
||||
use std::sync::Arc;
|
||||
|
||||
use git2::Oid;
|
||||
use jujube_lib::commit::Commit;
|
||||
use jujube_lib::git::{GitFetchError, GitPushError};
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujube_lib::store::CommitId;
|
||||
use jujube_lib::{git, testutils};
|
||||
use jujutsu_lib::commit::Commit;
|
||||
use jujutsu_lib::git::{GitFetchError, GitPushError};
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
use jujutsu_lib::store::CommitId;
|
||||
use jujutsu_lib::{git, testutils};
|
||||
use maplit::hashset;
|
||||
use tempfile::TempDir;
|
||||
|
||||
@ -69,7 +69,7 @@ fn test_import_refs() {
|
||||
let mut tx = repo.start_transaction("test");
|
||||
let mut_repo = tx.mut_repo();
|
||||
let heads_before: HashSet<_> = repo.view().heads().clone();
|
||||
jujube_lib::git::import_refs(mut_repo, &git_repo).unwrap_or_default();
|
||||
jujutsu_lib::git::import_refs(mut_repo, &git_repo).unwrap_or_default();
|
||||
let view = mut_repo.view();
|
||||
let expected_heads: HashSet<_> = heads_before
|
||||
.union(&hashset!(
|
||||
@ -118,7 +118,7 @@ fn test_import_refs_reimport() {
|
||||
|
||||
let heads_before = repo.view().heads().clone();
|
||||
let mut tx = repo.start_transaction("test");
|
||||
jujube_lib::git::import_refs(tx.mut_repo(), &git_repo).unwrap_or_default();
|
||||
jujutsu_lib::git::import_refs(tx.mut_repo(), &git_repo).unwrap_or_default();
|
||||
tx.commit();
|
||||
|
||||
// Delete feature1 and rewrite feature2
|
||||
@ -129,7 +129,7 @@ fn test_import_refs_reimport() {
|
||||
repo = repo.reload().unwrap();
|
||||
let mut tx = repo.start_transaction("test");
|
||||
let mut_repo = tx.mut_repo();
|
||||
jujube_lib::git::import_refs(mut_repo, &git_repo).unwrap_or_default();
|
||||
jujutsu_lib::git::import_refs(mut_repo, &git_repo).unwrap_or_default();
|
||||
|
||||
let view = mut_repo.view();
|
||||
// TODO: commit3 and commit4 should probably be removed
|
||||
@ -201,7 +201,7 @@ fn test_import_refs_merge() {
|
||||
git_ref(&git_repo, "refs/heads/forward-remove", commit1.id());
|
||||
git_ref(&git_repo, "refs/heads/remove-forward", commit1.id());
|
||||
let mut tx = repo.start_transaction("initial import");
|
||||
jujube_lib::git::import_refs(tx.mut_repo(), &git_repo).unwrap_or_default();
|
||||
jujutsu_lib::git::import_refs(tx.mut_repo(), &git_repo).unwrap_or_default();
|
||||
tx.commit();
|
||||
repo = repo.reload().unwrap();
|
||||
|
||||
@ -214,7 +214,7 @@ fn test_import_refs_merge() {
|
||||
delete_git_ref(&git_repo, "refs/heads/remove-forward");
|
||||
git_ref(&git_repo, "refs/heads/add-add", commit3.id());
|
||||
let mut tx1 = repo.start_transaction("concurrent import 1");
|
||||
jujube_lib::git::import_refs(tx1.mut_repo(), &git_repo).unwrap_or_default();
|
||||
jujutsu_lib::git::import_refs(tx1.mut_repo(), &git_repo).unwrap_or_default();
|
||||
tx1.commit();
|
||||
|
||||
// The other concurrent operation:
|
||||
@ -226,7 +226,7 @@ fn test_import_refs_merge() {
|
||||
git_ref(&git_repo, "refs/heads/remove-forward", commit2.id());
|
||||
git_ref(&git_repo, "refs/heads/add-add", commit4.id());
|
||||
let mut tx2 = repo.start_transaction("concurrent import 2");
|
||||
jujube_lib::git::import_refs(tx2.mut_repo(), &git_repo).unwrap_or_default();
|
||||
jujutsu_lib::git::import_refs(tx2.mut_repo(), &git_repo).unwrap_or_default();
|
||||
tx2.commit();
|
||||
|
||||
// Reload the repo, causing the operations to be merged.
|
||||
@ -283,7 +283,7 @@ fn test_import_refs_empty_git_repo() {
|
||||
let heads_before = repo.view().heads().clone();
|
||||
let mut tx = repo.start_transaction("test");
|
||||
let mut_repo = tx.mut_repo();
|
||||
jujube_lib::git::import_refs(mut_repo, &git_repo).unwrap_or_default();
|
||||
jujutsu_lib::git::import_refs(mut_repo, &git_repo).unwrap_or_default();
|
||||
assert_eq!(*mut_repo.view().heads(), heads_before);
|
||||
assert_eq!(mut_repo.view().git_refs().len(), 0);
|
||||
tx.discard();
|
||||
|
@ -14,14 +14,14 @@
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
use jujube_lib::commit::Commit;
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::index::IndexRef;
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujube_lib::store::CommitId;
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::testutils::{create_random_commit, CommitGraphBuilder};
|
||||
use jujutsu_lib::commit::Commit;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::index::IndexRef;
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
use jujutsu_lib::store::CommitId;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::testutils::{create_random_commit, CommitGraphBuilder};
|
||||
use test_case::test_case;
|
||||
|
||||
#[must_use]
|
||||
|
@ -12,8 +12,8 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::testutils;
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::testutils;
|
||||
|
||||
#[test]
|
||||
fn test_init_local() {
|
||||
|
@ -12,8 +12,8 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::repo::{ReadonlyRepo, RepoLoadError, RepoLoader};
|
||||
use jujube_lib::testutils;
|
||||
use jujutsu_lib::repo::{ReadonlyRepo, RepoLoadError, RepoLoader};
|
||||
use jujutsu_lib::testutils;
|
||||
use test_case::test_case;
|
||||
|
||||
#[test]
|
||||
|
@ -12,10 +12,10 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::repo_path::{DirRepoPath, FileRepoPath, RepoPath};
|
||||
use jujube_lib::store::{ConflictPart, TreeValue};
|
||||
use jujube_lib::tree::Tree;
|
||||
use jujube_lib::{testutils, trees};
|
||||
use jujutsu_lib::repo_path::{DirRepoPath, FileRepoPath, RepoPath};
|
||||
use jujutsu_lib::store::{ConflictPart, TreeValue};
|
||||
use jujutsu_lib::tree::Tree;
|
||||
use jujutsu_lib::{testutils, trees};
|
||||
use test_case::test_case;
|
||||
|
||||
#[test_case(false ; "local store")]
|
||||
|
@ -14,12 +14,12 @@
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::repo_path::FileRepoPath;
|
||||
use jujube_lib::store::{Conflict, ConflictId, ConflictPart, TreeValue};
|
||||
use jujube_lib::store_wrapper::StoreWrapper;
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::testutils::CommitGraphBuilder;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::repo_path::FileRepoPath;
|
||||
use jujutsu_lib::store::{Conflict, ConflictId, ConflictPart, TreeValue};
|
||||
use jujutsu_lib::store_wrapper::StoreWrapper;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::testutils::CommitGraphBuilder;
|
||||
use test_case::test_case;
|
||||
|
||||
// TODO Many of the tests here are not run with Git because they end up creating
|
||||
|
@ -14,10 +14,10 @@
|
||||
|
||||
use std::path::Path;
|
||||
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::repo::RepoRef;
|
||||
use jujube_lib::store::CommitId;
|
||||
use jujube_lib::testutils;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::repo::RepoRef;
|
||||
use jujutsu_lib::store::CommitId;
|
||||
use jujutsu_lib::testutils;
|
||||
use test_case::test_case;
|
||||
|
||||
fn list_dir(dir: &Path) -> Vec<String> {
|
||||
|
@ -12,12 +12,12 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::repo::RepoRef;
|
||||
use jujube_lib::revset::{evaluate_expression, parse, resolve_symbol, RevsetError};
|
||||
use jujube_lib::store::{CommitId, MillisSinceEpoch, Signature, Timestamp};
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::testutils::CommitGraphBuilder;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::repo::RepoRef;
|
||||
use jujutsu_lib::revset::{evaluate_expression, parse, resolve_symbol, RevsetError};
|
||||
use jujutsu_lib::store::{CommitId, MillisSinceEpoch, Signature, Timestamp};
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::testutils::CommitGraphBuilder;
|
||||
use test_case::test_case;
|
||||
|
||||
#[test_case(false ; "local store")]
|
||||
|
@ -12,10 +12,10 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::revset::revset_for_commits;
|
||||
use jujube_lib::revset_graph_iterator::RevsetGraphEdge;
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::testutils::CommitGraphBuilder;
|
||||
use jujutsu_lib::revset::revset_for_commits;
|
||||
use jujutsu_lib::revset_graph_iterator::RevsetGraphEdge;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::testutils::CommitGraphBuilder;
|
||||
use maplit::hashset;
|
||||
use test_case::test_case;
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::testutils::CommitGraphBuilder;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::testutils::CommitGraphBuilder;
|
||||
use maplit::hashset;
|
||||
use test_case::test_case;
|
||||
|
||||
|
@ -18,13 +18,13 @@ use std::io::{Read, Write};
|
||||
use std::os::unix::fs::PermissionsExt;
|
||||
use std::sync::Arc;
|
||||
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::repo_path::{FileRepoPath, RepoPath};
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujube_lib::store::TreeValue;
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::tree_builder::TreeBuilder;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::repo_path::{FileRepoPath, RepoPath};
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
use jujutsu_lib::store::TreeValue;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::tree_builder::TreeBuilder;
|
||||
use test_case::test_case;
|
||||
|
||||
#[test_case(false ; "local store")]
|
||||
|
@ -16,12 +16,12 @@ use std::cmp::max;
|
||||
use std::collections::HashSet;
|
||||
use std::thread;
|
||||
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::repo::ReadonlyRepo;
|
||||
use jujube_lib::repo_path::FileRepoPath;
|
||||
use jujube_lib::store::CommitId;
|
||||
use jujube_lib::testutils;
|
||||
use jujube_lib::working_copy::CheckoutError;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::repo::ReadonlyRepo;
|
||||
use jujutsu_lib::repo_path::FileRepoPath;
|
||||
use jujutsu_lib::store::CommitId;
|
||||
use jujutsu_lib::testutils;
|
||||
use jujutsu_lib::working_copy::CheckoutError;
|
||||
use test_case::test_case;
|
||||
|
||||
#[test_case(false ; "local store")]
|
||||
|
@ -28,30 +28,30 @@ use std::{fs, io};
|
||||
|
||||
use clap::{crate_version, App, Arg, ArgMatches, SubCommand};
|
||||
use criterion::Criterion;
|
||||
use jujube_lib::commit::Commit;
|
||||
use jujube_lib::commit_builder::CommitBuilder;
|
||||
use jujube_lib::dag_walk::topo_order_reverse;
|
||||
use jujube_lib::evolution::{
|
||||
use jujutsu_lib::commit::Commit;
|
||||
use jujutsu_lib::commit_builder::CommitBuilder;
|
||||
use jujutsu_lib::dag_walk::topo_order_reverse;
|
||||
use jujutsu_lib::evolution::{
|
||||
DivergenceResolution, DivergenceResolver, OrphanResolution, OrphanResolver,
|
||||
};
|
||||
use jujube_lib::files::DiffLine;
|
||||
use jujube_lib::git::GitFetchError;
|
||||
use jujube_lib::index::HexPrefix;
|
||||
use jujube_lib::op_store::{OpStore, OpStoreError, OperationId};
|
||||
use jujube_lib::operation::Operation;
|
||||
use jujube_lib::repo::{MutableRepo, ReadonlyRepo, RepoLoadError, RepoLoader};
|
||||
use jujube_lib::repo_path::RepoPath;
|
||||
use jujube_lib::revset::{RevsetError, RevsetParseError};
|
||||
use jujube_lib::revset_graph_iterator::RevsetGraphEdgeType;
|
||||
use jujube_lib::rewrite::{back_out_commit, merge_commit_trees, rebase_commit};
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujube_lib::store::{StoreError, Timestamp, TreeValue};
|
||||
use jujube_lib::store_wrapper::StoreWrapper;
|
||||
use jujube_lib::transaction::Transaction;
|
||||
use jujube_lib::tree::Tree;
|
||||
use jujube_lib::trees::Diff;
|
||||
use jujube_lib::working_copy::{CheckoutStats, WorkingCopy};
|
||||
use jujube_lib::{conflicts, files, git, revset};
|
||||
use jujutsu_lib::files::DiffLine;
|
||||
use jujutsu_lib::git::GitFetchError;
|
||||
use jujutsu_lib::index::HexPrefix;
|
||||
use jujutsu_lib::op_store::{OpStore, OpStoreError, OperationId};
|
||||
use jujutsu_lib::operation::Operation;
|
||||
use jujutsu_lib::repo::{MutableRepo, ReadonlyRepo, RepoLoadError, RepoLoader};
|
||||
use jujutsu_lib::repo_path::RepoPath;
|
||||
use jujutsu_lib::revset::{RevsetError, RevsetParseError};
|
||||
use jujutsu_lib::revset_graph_iterator::RevsetGraphEdgeType;
|
||||
use jujutsu_lib::rewrite::{back_out_commit, merge_commit_trees, rebase_commit};
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
use jujutsu_lib::store::{StoreError, Timestamp, TreeValue};
|
||||
use jujutsu_lib::store_wrapper::StoreWrapper;
|
||||
use jujutsu_lib::transaction::Transaction;
|
||||
use jujutsu_lib::tree::Tree;
|
||||
use jujutsu_lib::trees::Diff;
|
||||
use jujutsu_lib::working_copy::{CheckoutStats, WorkingCopy};
|
||||
use jujutsu_lib::{conflicts, files, git, revset};
|
||||
use pest::Parser;
|
||||
|
||||
use self::chrono::{FixedOffset, TimeZone, Utc};
|
||||
@ -699,7 +699,7 @@ fn get_app<'a, 'b>() -> App<'a, 'b> {
|
||||
)
|
||||
.subcommand(SubCommand::with_name("index").about("Show commit index stats"))
|
||||
.subcommand(SubCommand::with_name("reindex").about("Rebuild commit index"));
|
||||
App::new("Jujube")
|
||||
App::new("Jujutsu")
|
||||
.global_setting(clap::AppSettings::ColoredHelp)
|
||||
.setting(clap::AppSettings::SubcommandRequiredElseHelp)
|
||||
.version(crate_version!())
|
||||
|
@ -16,13 +16,13 @@ use std::path::{Path, PathBuf};
|
||||
use std::process::Command;
|
||||
use std::sync::Arc;
|
||||
|
||||
use jujube_lib::repo_path::{DirRepoPath, RepoPath};
|
||||
use jujube_lib::store::{StoreError, TreeId, TreeValue};
|
||||
use jujube_lib::store_wrapper::StoreWrapper;
|
||||
use jujube_lib::tree::Tree;
|
||||
use jujube_lib::tree_builder::TreeBuilder;
|
||||
use jujube_lib::trees::merge_trees;
|
||||
use jujube_lib::working_copy::{CheckoutError, TreeState};
|
||||
use jujutsu_lib::repo_path::{DirRepoPath, RepoPath};
|
||||
use jujutsu_lib::store::{StoreError, TreeId, TreeValue};
|
||||
use jujutsu_lib::store_wrapper::StoreWrapper;
|
||||
use jujutsu_lib::tree::Tree;
|
||||
use jujutsu_lib::tree_builder::TreeBuilder;
|
||||
use jujutsu_lib::trees::merge_trees;
|
||||
use jujutsu_lib::working_copy::{CheckoutError, TreeState};
|
||||
use tempfile::tempdir;
|
||||
use thiserror::Error;
|
||||
|
||||
@ -58,7 +58,7 @@ fn add_to_tree(
|
||||
TreeValue::Conflict(conflict_id) => {
|
||||
let conflict = store.read_conflict(conflict_id)?;
|
||||
let materialized_value =
|
||||
jujube_lib::conflicts::conflict_to_materialized_value(store, repo_path, &conflict);
|
||||
jujutsu_lib::conflicts::conflict_to_materialized_value(store, repo_path, &conflict);
|
||||
tree_builder.set(repo_path.clone(), materialized_value);
|
||||
}
|
||||
_ => {
|
||||
|
@ -12,9 +12,9 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube::commands::dispatch;
|
||||
use jujube::ui::Ui;
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujutsu::commands::dispatch;
|
||||
use jujutsu::ui::Ui;
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
|
||||
fn main() {
|
||||
// TODO: We need to do some argument parsing here, at least for things like
|
||||
|
@ -16,7 +16,7 @@ use std::collections::HashMap;
|
||||
use std::io;
|
||||
use std::io::{Error, Read, Write};
|
||||
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
|
||||
// Lets the caller label strings and translates the labels to colors
|
||||
pub trait Styler: Write {
|
||||
|
@ -15,9 +15,9 @@
|
||||
extern crate pest;
|
||||
|
||||
use chrono::{FixedOffset, TimeZone, Utc};
|
||||
use jujube_lib::commit::Commit;
|
||||
use jujube_lib::repo::RepoRef;
|
||||
use jujube_lib::store::{CommitId, Signature};
|
||||
use jujutsu_lib::commit::Commit;
|
||||
use jujutsu_lib::repo::RepoRef;
|
||||
use jujutsu_lib::store::{CommitId, Signature};
|
||||
use pest::iterators::{Pair, Pairs};
|
||||
use pest::Parser;
|
||||
|
||||
|
@ -16,9 +16,9 @@ use std::borrow::BorrowMut;
|
||||
use std::io;
|
||||
use std::ops::Add;
|
||||
|
||||
use jujube_lib::commit::Commit;
|
||||
use jujube_lib::repo::RepoRef;
|
||||
use jujube_lib::store::{CommitId, Signature};
|
||||
use jujutsu_lib::commit::Commit;
|
||||
use jujutsu_lib::repo::RepoRef;
|
||||
use jujutsu_lib::store::{CommitId, Signature};
|
||||
|
||||
use crate::styler::Styler;
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
use std::io::Cursor;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use jujube_lib::testutils::{new_user_home, user_settings};
|
||||
use jujutsu_lib::testutils::{new_user_home, user_settings};
|
||||
|
||||
use crate::commands;
|
||||
use crate::ui::Ui;
|
||||
|
@ -17,9 +17,9 @@ use std::path::{Path, PathBuf};
|
||||
use std::sync::{Mutex, MutexGuard};
|
||||
use std::{fmt, io};
|
||||
|
||||
use jujube_lib::commit::Commit;
|
||||
use jujube_lib::repo::RepoRef;
|
||||
use jujube_lib::settings::UserSettings;
|
||||
use jujutsu_lib::commit::Commit;
|
||||
use jujutsu_lib::repo::RepoRef;
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
|
||||
use crate::styler::{ColorStyler, PlainTextStyler, Styler};
|
||||
use crate::templater::TemplateFormatter;
|
||||
|
@ -12,7 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube::testutils;
|
||||
use jujutsu::testutils;
|
||||
use regex::Regex;
|
||||
|
||||
#[test]
|
||||
|
@ -12,7 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use jujube::testutils;
|
||||
use jujutsu::testutils;
|
||||
|
||||
#[test]
|
||||
fn test_init_git_internal() {
|
||||
|
Loading…
Reference in New Issue
Block a user