Yuya Nishihara
b7eb8ee438
cli: include command args in "snapshot working copy" op log
...
Since "import git refs" includes the args, there would be no point to exclude
snapshot_working_copy().
2023-02-28 12:59:30 +09:00
Yuya Nishihara
a81c78cf5a
tests: use template to filter out uninteresting parts from op log
2023-02-28 12:59:30 +09:00
dependabot[bot]
f633534fc7
github: bump github/codeql-action from 2.2.4 to 2.2.5
...
Bumps [github/codeql-action](https://github.com/github/codeql-action ) from 2.2.4 to 2.2.5.
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](17573ee1cc...32dc499307
)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 11:08:02 -08:00
dependabot[bot]
2f47934290
cargo: bump crossterm from 0.26.0 to 0.26.1
...
Bumps [crossterm](https://github.com/crossterm-rs/crossterm ) from 0.26.0 to 0.26.1.
- [Release notes](https://github.com/crossterm-rs/crossterm/releases )
- [Changelog](https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md )
- [Commits](https://github.com/crossterm-rs/crossterm/compare/0.26...0.26.1 )
---
updated-dependencies:
- dependency-name: crossterm
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 11:07:41 -08:00
dependabot[bot]
7de17ce4e7
cargo: bump tempfile from 3.3.0 to 3.4.0
...
Bumps [tempfile](https://github.com/Stebalien/tempfile ) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/Stebalien/tempfile/releases )
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/NEWS )
- [Commits](https://github.com/Stebalien/tempfile/commits )
---
updated-dependencies:
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 11:06:51 -08:00
dependabot[bot]
b34daa9423
cargo: bump prost from 0.11.7 to 0.11.8
...
Bumps [prost](https://github.com/tokio-rs/prost ) from 0.11.7 to 0.11.8.
- [Release notes](https://github.com/tokio-rs/prost/releases )
- [Commits](https://github.com/tokio-rs/prost/commits/v0.11.8 )
---
updated-dependencies:
- dependency-name: prost
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 10:59:19 -08:00
Martin von Zweigbergk
4c5695f0cd
index_store: take OperationId when writing new index
...
By taking an `OperationId` argument to `IndexStore::write_index()`, we
can remove `associate_file_with_operation()` from the trait. That
simplifies the interace a little bit. The reason I noticed this was
that I'm trying to extract a trait for `IndexStore`, and the word
"file" in it is too specific for e.g. a cloud-based implementation.
2023-02-27 09:44:28 -08:00
Martin von Zweigbergk
346e3c849b
repo: propagate error when failing to look up backend type
2023-02-27 09:44:28 -08:00
Martin von Zweigbergk
011d9e3486
workspace: make WorkspaceLoader::load() return WorkspaceLoadError
...
I plan to make `RepoLoader::init()` return a `Result`, which means
that `WorkspaceLoader::load()` will need to return more kinds of
errors. Making it return `WorkspaceLoadError` is a good start. By also
extracting a function for converting `WorkspaceLoadError` to
`CommandError`, we can reuse a the handling of `PathError` in
`cli_util`.
2023-02-27 09:44:28 -08:00
Martin von Zweigbergk
ea6a238c7c
cli: avoid creating new WorkspaceLoader for jj config edit --repo
...
This is mostly about not having to handle errors twice (or document an
`unwrap()` after `WorkspaceLoader::init()`).
2023-02-27 09:44:28 -08:00
Martin von Zweigbergk
37e1ed403a
tests: add test of jj config edit --repo
outside of repo
...
I'm about to change the implementation a bit, so let's have a test for
it.
2023-02-27 09:44:28 -08:00
Martin von Zweigbergk
491ecc6b2e
repo: replace load_at_head() by helper in tests
...
I'm about to make `RepoLoader::init()` return a `Result`, and I don't
want to have to wrap that in a new error in
`ReadonlyRepo::load_at_head()` since that's only used in tests.
2023-02-27 09:44:28 -08:00
Samuel Tardieu
c5e41a99c3
git remote rename: rename git refs as well
2023-02-26 15:22:18 +01:00
Samuel Tardieu
b515d14f18
git_fetch: when removing a remote branch, remove git ref as well
2023-02-26 15:22:18 +01:00
Samuel Tardieu
1056cfa41a
test_git_fetch: make different remotes in test contain different commits
...
Using the same commits (and thus the same commit id) in multiple remotes
makes it harder to see what comes from where.
2023-02-24 20:29:03 +01:00
Yuya Nishihara
0b083b2ddb
conflicts: in materialize_merge_result(), always use adds.get(index)
...
I don't think this is more readable than the original code, but it gives
diff1/right1 and diff2/right2 pairs consistent names.
2023-02-24 19:58:10 +09:00
Yuya Nishihara
410be93339
conflicts: in materialize_merge_result(), borrow both adds/removes sides
...
Just for consistency.
2023-02-24 19:58:10 +09:00
Yuya Nishihara
da16bf340c
conflicts: fix off-by-one error in materialize_merge_result()
...
This should fix #1304 . I think the added test simulates the behavior of
multiple rebase conflicts, but I don't have expertise around this.
add_index could be replaced with a peekable iterator, but the iterator version
wouldn't be as readable as the current implementation.
2023-02-24 19:58:10 +09:00
dependabot[bot]
0224b52ffc
cargo: bump prost-build from 0.11.6 to 0.11.7
...
Bumps [prost-build](https://github.com/tokio-rs/prost ) from 0.11.6 to 0.11.7.
- [Release notes](https://github.com/tokio-rs/prost/releases )
- [Commits](https://github.com/tokio-rs/prost/commits )
---
updated-dependencies:
- dependency-name: prost-build
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-24 11:55:41 +09:00
dependabot[bot]
bd16e96693
cargo: bump prost from 0.11.6 to 0.11.7
...
Bumps [prost](https://github.com/tokio-rs/prost ) from 0.11.6 to 0.11.7.
- [Release notes](https://github.com/tokio-rs/prost/releases )
- [Commits](https://github.com/tokio-rs/prost/commits )
---
updated-dependencies:
- dependency-name: prost
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-23 15:32:35 +00:00
Yuya Nishihara
bfbb7d1399
cli: on finish_transaction(), print check-out summary by caller
...
This makes sense because the status is also printed by caller.
2023-02-23 14:15:38 +09:00
Yuya Nishihara
1cb473ab2a
cli: on finish_transaction(), look up check-out commit by caller
...
So the caller can print a commit summary.
It's getting less clear why cli_util::update_working_copy() takes a repo
argument. It might be better to extract a helper struct that operates on
repo + workspace (minus CLI stuff), and move it to the lib crate.
2023-02-23 14:15:38 +09:00
Yuya Nishihara
3dd8b9a5f0
cli: extract update_working_copy() from finish_transaction()
...
I'll move some bits from the free update_working_copy() function to
deduplicate parse_commit_summary_template() call.
2023-02-23 14:15:38 +09:00
Yuya Nishihara
61d6604d3d
cli: add workspace_command.get_wc_commit_id() for short
...
We can't replace all callers, but I think it's common enough to add a helper
function.
2023-02-23 14:15:38 +09:00
Ilya Grigoriev
49fd177c47
templater: Allow separate styling for change and commit ids
2023-02-21 22:50:27 -08:00
Ilya Grigoriev
00b18bcd18
templater: Upper and lowercase ids and strings
2023-02-21 22:50:27 -08:00
Ilya Grigoriev
643fe9a218
Remove no longer needed clippy bug workaround
2023-02-21 18:33:40 -08:00
Ilya Grigoriev
30d03a66e6
cmd: --branch
option for git fetch
.
...
Thanks to @samueltardieu for noticing a subtle bug in the refspecs, providing
the fix, as well as the two `conflicting_branches` tests.
2023-02-21 18:33:40 -08:00
Ilya Grigoriev
cd8a18daf8
test_git_fetch.rs: Move some helper methods
2023-02-21 18:33:40 -08:00
dependabot[bot]
c53544aecf
cargo: bump slab from 0.4.7 to 0.4.8
...
Bumps [slab](https://github.com/tokio-rs/slab ) from 0.4.7 to 0.4.8.
- [Release notes](https://github.com/tokio-rs/slab/releases )
- [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/slab/compare/v0.4.7...v0.4.8 )
---
updated-dependencies:
- dependency-name: slab
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-20 13:03:41 -08:00
Yuya Nishihara
4ec0bfb8f7
cli: rename op "head" color label to "current_operation"
...
FWIW, this change means a boolean "current_operation" keyword will be
highlighted even if it's false.
2023-02-21 00:24:58 +09:00
Yuya Nishihara
4f36367aee
cli: rename "op-log" color label to "op_log"
...
Per discussion in #1289 .
2023-02-21 00:24:58 +09:00
Samuel Tardieu
e9009cf21e
style: simplify topo_order()
...
- Calling `.into_iter()` on an iterator is a no-op.
- There is no need to wrap index entries into another type to unwrap
them right after sorting.
2023-02-20 11:05:54 +01:00
Yuya Nishihara
c2df989fe9
cli: add "op log -T" option and basic tests for template keywords
2023-02-20 18:20:41 +09:00
Yuya Nishihara
b5f1728ffb
templater: migrate op log to template language
...
The outermost "op-log" label isn't moved to the default template. I think
it belongs to the command's formatter rather than the template.
Old bikeshedding items:
- "current_head", "is_head", or "is_head_op"
=> renamed to "current_operation"
- "templates.op-log" vs "templates.op_log" (the whole template is labeled
as "op-log")
=> renamed to "op_log"
- "template-aliases.'format_operation_duration(time_range)'"
=> renamed to 'format_time_range(time_range)'
2023-02-20 18:20:41 +09:00
Yuya Nishihara
eafbd977a3
templater: add TimestampRange type, migrate operation time to it
2023-02-20 18:20:41 +09:00
Yuya Nishihara
da3c1d2286
templater: extract helpers to build expression of specific types
2023-02-20 18:20:41 +09:00
Yuya Nishihara
c2e0ebca12
templater: implement .into_template() helper on formattable property
...
So that I can blindly write property.into_template() to convert any property
type to template.
2023-02-20 18:20:41 +09:00
Yuya Nishihara
854a3e64fa
templater: split IntoTemplate trait
...
The next commit will implement .into_template() on Box<dyn TemplateProperty>,
so I want a trait for this particular method.
2023-02-20 18:20:41 +09:00
Ilya Grigoriev
9c51d74b2c
cmd: Allow multiple -b
for jj rebase
...
This also makes `rebase_branch` reuse `rebase_descendants`.
This addresses a portion of #1158
2023-02-20 00:36:32 -08:00
Ilya Grigoriev
f04458a245
cmd: Allow multiple -s
for jj rebase
...
This addresses a portion of #1158
One application (not the prettiest, but useful until we have `jj sync`):
jj rebase -s oldmain+~:main -d main -L
2023-02-20 00:36:32 -08:00
Ilya Grigoriev
39dd1a99c1
Add comment for topo_order
2023-02-20 00:36:32 -08:00
Ilya Grigoriev
53476a77f7
cmd: Make jj restore
work if @
is a merge commit
...
To be clear, this applies to `jj restore` without any arguments.
Fixes #1228
2023-02-19 22:55:53 -08:00
Martin von Zweigbergk
bc9f66dad3
revset: replace RevsetIterator wrapper by extension
...
The type doesn't seem to provide any benefit. I don't think I had a
good reason for creating it in the first place; it was probably just
unfamiliarity with Rust.
2023-02-19 21:37:26 -08:00
Martin von Zweigbergk
91e56c7f2f
revset: add type parameters to remaining iterator adapters
...
This is another step towards removing `RevsetIterator`. These types
are private, so someone using the library can't accidentally create a
`UnionRevsetIterator` with inputs in different order, for example.
2023-02-19 21:37:26 -08:00
Martin von Zweigbergk
44e6ef9bae
revset: make into_predicate_fn() a free function
...
I'm about to convert `RevsetIterator` to a trait and I don't want
`into_predicate_fn()` on it.
2023-02-19 21:37:26 -08:00
Martin von Zweigbergk
36aa6e0be6
revset: add type parameter in commit iterator adapters
...
The standard way of creating iterator adapters seems to have the input
iterator type by a parameter to the function, so let's follow that
pattern.
2023-02-19 21:37:26 -08:00
Martin von Zweigbergk
30160f4d20
revset: pass revset, not iterator, into RevsetGraphIterator
...
I was thinking of replacing `RevsetIterator` by a regular
`Iterator<Item=IndexEntry>`. However, that would make it easier to
pass in an iterator that produces revisions in a non-topological order
into `RevsetGraphIterator`, which would produce unexpected results (it
would result in nodes that are not connected to their parents, if
their parents had already been emitted). I think it makes sense to
instead pass in a revset into `RevsetGraphIterator`.
Incidentally, it will also be useful to have the full revset available
in `RevsetGraphIterator` if we rewrite the algorithm to be more
similar to Mercurial's and Sapling's algorithm, which involves asking
the revset if it contains parent revisions.
2023-02-19 21:37:26 -08:00
Yuya Nishihara
a3efb74cfc
commit_templater: make commit/change_id typed again
...
This basically undoes d6c6cdb45c
"templater: store type-erased version of
commit/change id." Since they are looked up differently, they should preserve
the original types.
2023-02-20 13:41:44 +09:00
Samuel Tardieu
863a6e6d09
git push: add --deleted option
2023-02-19 18:18:53 +01:00