ok/jj
1
0
Fork 0
forked from mirrors/jj
Commit graph

3674 commits

Author SHA1 Message Date
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
Martin von Zweigbergk
8af22eb83c working_copy: remove matching that's always against _ 2023-07-06 14:24:38 +02:00
Yuya Nishihara
868188c84e repo: handle empty .jj repo gracefully, include file path in error message 2023-07-06 20:48:46 +09:00
Yuya Nishihara
9560ca94c5 local_backend: remove global error conversion impls for BackendError
We don't care much about error handling in the local backend, but these
conversion impls are globally available and can be misused.
2023-07-06 20:48:46 +09:00
Yuya Nishihara
5346bd734f git_backend: translate io::Error of read_conflict() to ReadObject error
This is the last place in Git backend where io::Error is magically converted
to BackendError::Other.
2023-07-06 20:48:46 +09:00
Yuya Nishihara
4e4ca46998 git_backend: wrap TableStoreError to preserve source error object 2023-07-06 20:48:46 +09:00
Yuya Nishihara
cf8a0466c4 backend: introduce error types specific to init/load phases
Errors that may occur while loading backend would vary per backends, and
it's unlikely that these errors could be mapped to BackendError variants
other than BackendError::Other. So let's extract Other(_) of that kind as
a separate type to clarify there would be no other error variants.

Perhaps, Backend/Error will be renamed to CommitBackend/Error or
CommitStore/Error?, whereas I think BackendInit/LoadError can be shared
among store factories.
2023-07-06 20:48:46 +09:00
Yuya Nishihara
e1e75daa8e backend: make BackendError::Other preserve source error object 2023-07-06 20:48:46 +09:00
Martin von Zweigbergk
b3691e93fb cli_util: don't clone arguments when resolving default command 2023-07-06 11:39:16 +02:00
Martin von Zweigbergk
1094109dfb cli_util: avoid cloning args when resolving aliases 2023-07-06 11:39:16 +02:00
Martin von Zweigbergk
99226bb96d tree: simplify diff iterator by leveraging Tree::value()
This is much simpler and I was slightly surprised that it doesn't have
much impact on performance. I tried `jj --ignore-working-copy diff -s
--from root --to v5.15` in the Linux kernel repo, and there was
perhaps a 1.5% slowdown (508 ms -> 515 ms). In more normal cases (like
diffing a single commit against its parent), I couldn't measure any
difference at all.
2023-07-06 11:21:21 +02:00
Martin von Zweigbergk
c93cbbee50 cli: remove author field from clap command
I'm not the only author, and it doesn't seem very useful to display
that information anyway (if it even appear anywhere).
2023-07-06 10:56:45 +02:00
Yuya Nishihara
5b78fe75b1 git_backend: propagate load() error to caller
#1794
2023-07-06 12:43:49 +09:00
Yuya Nishihara
84060d750b git_backend: propagate init_internal() error to caller 2023-07-06 12:43:49 +09:00
Yuya Nishihara
2db4c906ad git_backend: attach file path to initialization error 2023-07-06 12:43:49 +09:00
Yuya Nishihara
31bb68486e git_backend: insert error type specific to backend initialization
This helps to map initialization error to BackendError without too general
From impl. I don't think io::Error (or our PathError) should be automatically
translated to BackendError::Other because BackendError has more specific
variants depending on context. If the error is specific to initialization,
it makes sense to translate it to Other variant.
2023-07-06 12:43:49 +09:00
Yuya Nishihara
a09a406817 git_backend: leverage std::fs::read/write() helpers 2023-07-06 12:43:49 +09:00