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
cf1e1ddc2e
feat(fsmonitor): add watchman debug commands
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
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
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
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
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
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
Yuya Nishihara
6d6b87f4b0
file_util: move PathError and its helper trait from repo module
...
It's generally useful in order to attach context to io::Error.
2023-07-06 12:43:49 +09:00
dependabot[bot]
a7408d8bc9
cargo: bump smallvec from 1.10.0 to 1.11.0
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.10.0...v1.11.0 )
---
updated-dependencies:
- dependency-name: smallvec
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 22:29:49 +02:00
dependabot[bot]
0e4ef1c8d5
cargo: bump serde_json from 1.0.99 to 1.0.100
...
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.99 to 1.0.100.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.99...v1.0.100 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 15:57:54 +00:00
dependabot[bot]
aea8d1b8e7
cargo: bump regex from 1.8.4 to 1.9.0
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.8.4 to 1.9.0.
- [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.8.4...1.9.0 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 15:45:28 +00:00
dependabot[bot]
33ccd13caa
cargo: bump thiserror from 1.0.40 to 1.0.41
...
Bumps [thiserror](https://github.com/dtolnay/thiserror ) from 1.0.40 to 1.0.41.
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.40...1.0.41 )
---
updated-dependencies:
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 15:34:28 +00:00
dependabot[bot]
6208cdff2a
cargo: bump rustix from 0.38.2 to 0.38.3
...
Bumps [rustix](https://github.com/bytecodealliance/rustix ) from 0.38.2 to 0.38.3.
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.2...v0.38.3 )
---
updated-dependencies:
- dependency-name: rustix
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 15:24:13 +00:00
Martin von Zweigbergk
651a3cbe15
rewrite: delete TODOs about labels for each term in a conflict
...
I don't think we'll want to record a label for each term, because such
labels would get stale, and it seems hard to make them make sense
after transferring a remote to another repo. I think we'll probably
want to infer labels on demand instead (#1176 ).
2023-07-05 16:50:27 +02:00
Ilya Grigoriev
597a74d51b
git fetch: limit export of deleted refs to provided globs
2023-07-03 11:01:22 -07:00
Ilya Grigoriev
371e7f46e2
git fetch: do a git export
of deleted branches before fetch
2023-07-03 11:01:22 -07:00
Ilya Grigoriev
fde3c3f581
git.rs: create export_some_refs
2023-07-03 11:01:22 -07:00
Ilya Grigoriev
a50cfec008
lib/git.rs: inline functions used only once, rename others
...
I now believe that jj will need to store git-tracking refs for both local and
remote-tracking branches of the git repo for the long term. See
https://github.com/martinvonz/jj/issues/1666#issuecomment-1597806451
More refactoring will likely happen when that bug is fixed.
2023-07-03 11:01:22 -07:00
Ilya Grigoriev
59b354992a
git export: export deletion of forgotten remote-tracking branches
2023-07-03 11:01:22 -07:00
Ilya Grigoriev
b6a9423f38
git export: (almost) no-op refactor to export_refs
to use RefName
...
This follows 3779b45
, but in this case the refactor makes the logic more
complicated. The main goal here is to prepare for the next commit.
2023-07-03 11:01:22 -07:00
dependabot[bot]
88736c7017
cargo: bump rustix from 0.38.0 to 0.38.2
...
Bumps [rustix](https://github.com/bytecodealliance/rustix ) from 0.38.0 to 0.38.2.
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.0...v0.38.2 )
---
updated-dependencies:
- dependency-name: rustix
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-04 00:46:57 +09:00
Yuya Nishihara
061fbeb2f8
op_store: make RefTarget return removes/adds as slice, .clone() as needed
2023-07-02 14:39:45 +09:00
Waleed Khan
d1453a0c7c
cleanup: fix clippy lint
2023-07-01 18:10:32 -07:00
Yuya Nishihara
915f76f4d9
git: use RegexSet in place of concatenating multiple glob patterns
...
Perhaps, this would handle patterns like ["a(b", "c)"] better. It might not
be correct to error out on "(", but should be better than building wrong
regexp pattern "a(b|c)".
2023-07-02 09:49:07 +09:00
Yuya Nishihara
a07574a233
git: pass RefName enum to git_ref_filter callback
...
I think it's slightly better to compare each ref fragment than building
"refs/remotes/{remote}/{branch}" pattern to be matched.
2023-07-02 09:49:07 +09:00
Yuya Nishihara
da3c03206c
tree: remove useless pinning of Tree object
...
Since Tree is Unpin, Pin<Box<Tree>> can be moved and it's basically the same
as Box<Tree>. I heard using Box<T> still violates strict aliasing rule, but
Pin wouldn't give any additional guarantee.
https://morestina.net/blog/1868/self-referential-types-for-fun-and-profit
2023-07-01 17:56:00 +09:00
Martin von Zweigbergk
f32b67ac3d
tree: leverage Conflict::flatten()
etc
2023-06-30 14:43:58 +02:00
Martin von Zweigbergk
07dbc9fb0d
conflicts: add flatten()
for flattening nested conflicts
2023-06-30 14:43:58 +02:00
Martin von Zweigbergk
183021f559
conflicts: add try_map()
for Result
2023-06-30 14:43:58 +02:00