Waleed Khan
6f15a27079
perf: add chrome tracing layer
...
This generates profiles in the Google Chrome JSON tracing format. They can be opened in Chrome's `chrome://tracing` page or in tools like https://ui.perfetto.dev . Enable by running e.g. `JJ_TRACE=1 cargo run -- status`.
2023-07-10 23:23:53 +03:00
dependabot[bot]
e618b2c14f
cargo: bump the cargo-dependencies group with 3 updates
...
Bumps the cargo-dependencies group with 3 updates: [regex](https://github.com/rust-lang/regex ), [serde](https://github.com/serde-rs/serde ) and [tokio](https://github.com/tokio-rs/tokio ).
Updates `regex` from 1.9.0 to 1.9.1
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.9.0...1.9.1 )
Updates `serde` from 1.0.167 to 1.0.168
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.167...v1.0.168 )
Updates `tokio` from 1.28.2 to 1.29.1
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.28.2...tokio-1.29.1 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 17:19:33 +01:00
Waleed Khan
e445d36824
fix(docs): fix protobuf job build
2023-07-10 18:56:34 +03:00
Waleed Khan
54dba51a08
docs: warn about missing docs for jj-lib
crate
2023-07-10 18:28:59 +03:00
Waleed Khan
24c7b59a80
docs: add docstring for jj-lib
crate
2023-07-10 18:28:59 +03:00
Waleed Khan
80b86e653d
docs: add missing copyright header
2023-07-10 18:28:59 +03:00
Austin Seipp
f1e09e3f3f
chore(github): reduce compile time in build, nix, and release workflows
...
Summary: When building in CI, we just build everything from scratch in the `dev`
profile, so just turn off debuginfo and incremental compilation data. These
aren't reused, but more importantly take up more space and CPU time to generate;
that's more expensive on slower machines and when using The Cloud(TM) to build.
Together, these take a fresh build (`rm -rf target/` ahead of time) from about
40s to 30s on my machine.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Change-Id: Id6e706634dbaf88f6ccd7f457409ad7c
2023-07-10 06:18:38 -05:00
Ilya Grigoriev
d81c599153
clippy: fix nightly clippy warnings *except* for needless_raw_string_hashes
...
This is (almost) a result of running
cargo +nightly clippy --workspace --all-targets --fix \
-- -A 'clippy::needless_raw_string_hashes'
with yesterday's nightly clippy.
https://github.com/mitsuhiko/insta/issues/389 causes numerous additional
`needless_raw_string_hashes` warnings, but it will hopefully be fixed soon.
For now, I recommend appending the second line to your invocations.
2023-07-09 22:28:22 -07:00
Yuya Nishihara
9aa308fb4a
revset: include pseudo @git remote in suggestion
...
Since collect_branch_symbols() doesn't have to be fast, I made it simply
build a new branches map.
2023-07-10 06:17:44 +09:00
Yuya Nishihara
528f6e23c1
refs: simplify inner loop of find_pair_to_remove() too
2023-07-10 06:14:47 +09:00
Yuya Nishihara
fe3be99f0d
refs: directly assign ancestor (index, id) pair in find_pair_to_remove()
2023-07-10 06:14:47 +09:00
Yuya Nishihara
9140e5b686
conflicts: relax from_legacy_form() to accept any iterable
...
This will help to rewrite refs::merge_ref_targets() to leverage Conflict
type. I'm not pretty sure if we'll want to do that, but this change seems
also good for the existing code.
2023-07-10 06:14:47 +09:00
Yuya Nishihara
afb1e1693e
conflicts: simplify inner loop of simplify() a bit
2023-07-10 06:14:47 +09:00
Martin von Zweigbergk
aac5b7aa25
cargo: rename crates from jujutsu
/jujutsu-lib
to jj-cli
/jj-lib
...
Almost everyone calls the project "jj", and there seeems to be
consensus that we should rename the crates. I originally wanted the
crates to be called `jj` and `jj-lib`, but `jj` was already
taken. `jj-cli` is probably at least as good for it anyway.
Once we've published a 0.8.0 under the new names, we'll release 0.7.1
versions under the old names with pointers to the new crates names.
2023-07-09 06:40:43 +02:00
Yuya Nishihara
3e294ca2d6
revset: do not suggest deleted local branches, suggest @remote branches
...
It seemed too verbose to always include @remote branches, so synced remotes
are omitted by default. If the given symbol contained '@', all remote symbols
are populated so that the distance of remote fragment is taken into account.
2023-07-09 10:42:14 +09:00
Yuya Nishihara
4a5060a618
revset: don't resolve deleted branch symbol to empty set
...
A deleted branch disappears immediately if there's no remote counterpart,
so I don't think a local name should be resolvable like zombie.
2023-07-09 10:42:14 +09:00
Yuya Nishihara
5c1352d31c
revset: add tests for branch symbol resolution
...
I'm going to fix resolution of remote-only branches. This also includes some
typo tests because I need to fix suggestion as well.
2023-07-09 10:42:14 +09:00
Yuya Nishihara
d58702cd63
templater: include pseudo @git targets in branches keyword
...
#1666
2023-07-09 10:39:43 +09:00
Yuya Nishihara
2c3dd99f17
templater: cache reverse index of ref names
...
I'm going to add @git remote support to the branches keyword, and I feel
it would be too dumb to build a unified branches map per template evaluation.
Indexes are cached globally and shared by Rc. We could build a cache local
to keyword, but that means 'if(branches, branches)' would have to build two
separate indexes. I don't think such template expression is uncommon.
2023-07-09 10:39:43 +09:00
Yuya Nishihara
2606a1073d
git: extract helper that merges pseudo @git targets in branches map
2023-07-09 10:39:43 +09:00
Yuya Nishihara
895ebef55c
git: refactor git_ref_filter construction in fetch()
...
branch_name_filter() can be dynamically dispatched, but I think branching
by Some(regex)|None is simpler here.
2023-07-09 10:08:46 +09:00
Yuya Nishihara
a934547720
git: consistently ignore unrelated refs on fetch()
...
Since "jj git fetch --branch '*'" doesn't import unrelated remote and local
refs, "jj git fetch" shouldn't do either.
2023-07-09 10:08:46 +09:00
Yuya Nishihara
564506a7c7
tests: fix test_fetch_prune_deleted_ref() to set up refs on remote
...
This is broken since aa78f97d55
"git: refactor tests by extracting some
common setup."
2023-07-09 10:08:46 +09:00
Yuya Nishihara
a21397bfff
git: move remove/rename remote logic to library
...
These functions are somewhat similar to git::import/export_refs() in that
git_refs and branches are manipulated.
2023-07-09 10:08:07 +09:00
Yuya Nishihara
f3d6616057
view: add default formatting to RefName, use it to print unexported branches
2023-07-09 00:51:15 +09:00
Waleed Khan
f15c1d3c53
docs(fsmonitor): add filesystem monitor/Watchman documentation
2023-07-08 18:48:14 +03:00
Waleed Khan
cf1e1ddc2e
feat(fsmonitor): add watchman debug commands
2023-07-08 18:48:14 +03:00
Waleed Khan
9bb8e4fe2a
feat(fsmonitor): add .watchmanconfig
to repo
...
This identifies the directory as Watchman-enabled. Additional config settings can go in this file. The contents of this file are based on fb8ed41881/.watchmanconfig
.
2023-07-08 18:48:14 +03:00
Waleed Khan
ef83f2beeb
feat(fsmonitor): Watchman filesystem monitor implementation
2023-07-08 18:48:14 +03:00
Waleed Khan
d8705644b5
refactor(repo_path): accept AsRef<Path>
in RepoPath::parse_fs_path
...
Used in later commit.
2023-07-08 18:48:14 +03:00
Waleed Khan
de9cbace22
refactor(working_copy): create WorkItem struct
2023-07-08 18:48:14 +03:00
Waleed Khan
092dce0625
refactor(working_copy): create SnapshotOptions
struct
...
Required in a later commit.
2023-07-08 18:48:14 +03:00
Yuya Nishihara
85d87e2658
cli: warn if loosely selected push targets include conflicted branches
2023-07-08 10:23:21 +09:00
Yuya Nishihara
a3d080580e
cli: on git push, do not ignore conflicting branch at @
...
If @ is pointed by any branch, we shouldn't fall back to @-.
2023-07-08 10:23:21 +09:00
Yuya Nishihara
908520dcf5
cli: flatten nested loop that intersects branch targets and commit ids
2023-07-08 10:23:21 +09:00
Yuya Nishihara
78e8790e10
cli: inline branch_updates_for_push()
...
There are only two callers, and one of them knows that the branch exists.
2023-07-08 10:23:21 +09:00
Yuya Nishihara
d564c94548
cli: extract helper that maps BranchPushAction to BranchPushUpdate
...
We could add .as_update() -> Option<BranchPushUpdate>, but we'll probably
want to map a conflict message to warning.
2023-07-08 10:23:21 +09:00
Yuya Nishihara
7af45819b9
cli: split "git push --all"/"--deleted" handling
...
It's easier to follow than dispatching inside loop, and the match arms will
be deduplicated later.
2023-07-08 10:23:21 +09:00
Yuya Nishihara
16bf861e3b
tests: add "git push" tests involving conflicting branches
2023-07-08 10:23:21 +09:00
dependabot[bot]
22a84c8e97
cargo: bump the cargo-dependencies group with 2 updates
...
Bumps the cargo-dependencies group with 2 updates: [serde](https://github.com/serde-rs/serde ) and [thiserror](https://github.com/dtolnay/thiserror ).
Updates `serde` from 1.0.166 to 1.0.167
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.166...v1.0.167 )
Updates `thiserror` from 1.0.41 to 1.0.43
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.41...1.0.43 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-07 17:52:36 +02:00
Martin von Zweigbergk
e28ce91d41
dependabot: also group cargo updates
...
It looks like I accidentally applied the grouping only to GitHub
actions updates.
2023-07-07 17:36:45 +02:00
Yuya Nishihara
43aca696c8
templater: inline RefTarget::has_add()
...
Since RefTarget::adds() now returns a slice, we don't need has_add() to bypass
temporary allocation of Vec<CommitId>.
2023-07-08 00:06:07 +09:00
Martin von Zweigbergk
eebc2ef5a1
commit_templater: avoid looking up tree only to get its id
2023-07-07 16:43:34 +02:00
Martin von Zweigbergk
7bcb01ae5e
conflicts: move repeated definition of c()
in tests to module level
...
Also remove an obsolete "Irreducible" in a comment.
2023-07-07 16:42:07 +02:00
Martin von Zweigbergk
2bc58ebacf
tree: avoid "file" in name of variables that can be non-files
2023-07-07 05:15:39 +02:00
Martin von Zweigbergk
76b1d53b1d
tree: avoid redoing a RepoPath::join()
...
I also renamed the variable from `file` to `path` to clarify.
2023-07-07 05:15:39 +02:00
Martin von Zweigbergk
7e48033a65
tree: remove dir
argument from TreeDiffIterator::new()
...
The argument is always the root directory.
2023-07-07 05:15:39 +02:00
Martin von Zweigbergk
1d8e9ec215
tree: inline two trivial functions
2023-07-07 05:15:39 +02:00
Martin von Zweigbergk
5da131f937
tree: add a Diff::from_options()
constructor
...
I'm not sure `Diff` is worth keeping, but as long as we have, it seems
that it should have this constructor.
2023-07-06 15:19:58 +02:00
Martin von Zweigbergk
b738f884c4
tree: drop Diff::as_options()
, use Diff::into_options()
instead
...
We don't have any current callers that only have a reference to a
`Diff`, so we don't need `.as_options()`.
2023-07-06 15:19:58 +02:00