jj/Cargo.toml

49 lines
1.2 KiB
TOML
Raw Normal View History

[package]
name = "jujutsu"
version = "0.2.0"
authors = ["Martin von Zweigbergk <martinvonz@google.com>"]
edition = "2018"
2021-01-03 19:45:07 +03:00
license = "Apache-2.0"
description = "Jujutsu (an experimental VCS)"
2021-01-03 19:45:07 +03:00
homepage = "https://github.com/martinvonz/jj"
repository = "https://github.com/martinvonz/jj"
documentation = "https://docs.rs/jujutsu"
2021-01-03 19:45:07 +03:00
readme = "README.md"
keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"]
categories = ["command-line-utilities", "development-tools"]
[[bin]]
name = "jj"
path = "src/main.rs"
[workspace]
members = ["lib"]
[dependencies]
blake2 = "0.9.1"
bytes = "1.0.0"
chrono = "0.4.19"
clap = "2.33.3"
config = "0.10.1"
criterion = "0.3.3"
dirs = "3.0.1"
git2 = "0.13.14"
hex = "0.4.2"
indoc = "1.0.3"
itertools = "0.10.1"
jujutsu-lib = { version = "=0.2.0", path = "lib"}
pest = "2.1.3"
pest_derive = "2.1.0"
protobuf = { version = "2.22.1", features = ["with-bytes"] }
protobuf-codegen-pure = "2.22.1"
rand = "0.8.0"
serde_json = "1.0.60"
tempfile = "3.1.0"
commands: add an interactive mode for `jj restore` This adds an interactive mode for `jj restore`. It works by first creating two temporary directories with the contents of the subset of files that differ between the two trees, and then letting the user edit the directory representing the right/after side. This has some advantages compared to the interactive modes in Git and Mercurial: * It lets the user edit the final state as opposed to the diff itself (depending on the diff tool, of course). I think most users find it easier to edit the file contents than to edit the patch format. * It delegates the hard work to a tool that is already written (this is a big advantage for an immature tool like Jujube, but it is not an advantage from the user's point of view). Almost all of the work in this commit went into adding a function that takes two trees, lets the user edit the diff, and returns a new tree id. I plan to reuse that function for other interactive commands. One planned command is `jj edit`, which will let the user edit the changes in a commit. `jj edit -r abc123` will be mostly about providing a more intuitive name for `jj restore --source abc123^ --destination abc123`, plus it will be different for merge commits (it will edit only the changes in the merge commit). I also plan to add `jj split` by letting the user edit the full diff, leaving only the parts that should go into the first commit. Perhaps there will also be commands for moving part of a commit out of or into a parent commit.
2020-12-26 06:13:01 +03:00
thiserror = "1.0.22"
uuid = { version = "0.8.1", features = ["v4"] }
zstd = "0.6.0"
[dev-dependencies]
test-case = { git= "https://github.com/martinvonz/test-case", branch="remove-unneeded-unit-expression" }
regex = "1.4.2"