Martin von Zweigbergk
8744015f33
cli: make operation to undo or restore to a positional argument
...
I originally made the operation argument a named argument
(`--operation`) to allow for a change ID to be passed as a positional
argument, matching e.g. `hg revert -r <rev> <path>`. However, even if
we add support for undoing changes only to certain change IDs, it's
going to be done much less frequently than full undo/restore. We can
therefore make that a named argument if we ever add it.
2022-04-25 17:29:48 -07:00
Martin von Zweigbergk
0058236a43
cli: make jj restore --to <rev>
restore from the working copy
2022-04-25 17:29:48 -07:00
Martin von Zweigbergk
9f9af78c45
cli: provide better error message for no-arg jj move
2022-04-25 17:29:48 -07:00
Martin von Zweigbergk
023e3b7b90
git: fix an obsolete comment about a .jj/
path
...
The path to the file that indicates the last export to git was changed
when we added support for multiple workspaces.
2022-04-25 15:53:44 -07:00
Martin von Zweigbergk
04f11c0dc3
rebase: update bookkeeping for branches as we rebase descendants
...
The `DescendantRebaser` keeps a map of branches from the source
commit, so it gets efficient lookup of branches to update when a
commit has been rebased. This map was not kept up to date as we
rebased. That could lead to branches getting left on hidden
intermediate commits. Specifically, if a commit with a branch was
rewritten by some command, and an ancestor of it was also rewritten,
then we'd only update the branch only the first step and not update it
again when rebasing onto the rewritten ancestor.
2022-04-25 14:05:27 -07:00
Martin von Zweigbergk
cc7e20859c
tests: add tests of jj move
to ancestor, showing lost branch
...
I noticed earlier today that branches get lost (stuck on a hidden
commit) when you move part of a change to an ancestor. This patch adds
tests for both of those cases, showing the bug. There's no special
logic for this case in the CLI crate, so we should be able to test it
in the library crate instead, but since I have already written the
tests, maybe we can keep them.
2022-04-25 14:05:27 -07:00
Martin von Zweigbergk
9d440ca835
tests: remove a duplicate log output in jj move
test
2022-04-25 14:05:27 -07:00
Martin von Zweigbergk
cf7bef88fe
tests: extract a function for getting log output in jj move
test
2022-04-25 14:05:27 -07:00
Martin von Zweigbergk
99d2ef8883
cleanup: simplify some uses of Option
, mostly by using ?
2022-04-25 13:09:24 -07:00
Martin von Zweigbergk
3305e045ef
cleanup: prefer Option<&T>
over &Option<T>
...
It seems to me like `Option<&T>` is pretty much always better to
return than `&Option<T>`.
2022-04-25 13:09:24 -07:00
Tal Pressman
c2ba83af71
Remove out-of-date parenthetical in tutorial.md
2022-04-22 21:49:42 -07:00
Martin von Zweigbergk
2e0d80919d
cli: some fixes and touch-ups for jj workspace
, plus tests
2022-04-22 15:45:35 -07:00
Martin von Zweigbergk
90edd670d9
tests: move tests of Ui
from tests/
into ui
module
...
The tests only test the `Ui` type and don't need anything from
`testutils`, so it seems they should be treated as unit tests.
2022-04-22 15:45:35 -07:00
dependabot[bot]
781307ddbd
cargo: bump clap from 3.1.10 to 3.1.12
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.10 to 3.1.12.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.10...v3.1.12 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-22 08:38:27 -07:00
Martin von Zweigbergk
601638c422
op_heads_store: don't pass whole RepoLoader
into get_heads()
...
We only need to be able to read operations, so it's better to pass in
just an `OpStore`.
2022-04-21 21:55:19 -07:00
Martin von Zweigbergk
21d8c501e3
cleanup: replace .tree().id()
by tree_id()
to avoid looking up trees
2022-04-21 21:54:52 -07:00
dependabot[bot]
6076c01d20
github: bump actions/checkout from 3.0.1 to 3.0.2
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](dcd71f6466...2541b1294d
)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 09:10:26 -07:00
Martin von Zweigbergk
f5e9444456
cargo: upgrade uuid
to 1.0.0
2022-04-20 14:18:59 -07:00
dependabot[bot]
56f7478603
cargo: bump clap_mangen from 0.1.4 to 0.1.6
...
Bumps [clap_mangen](https://github.com/clap-rs/clap ) from 0.1.4 to 0.1.6.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_mangen-v0.1.4...clap_mangen-v0.1.6 )
---
updated-dependencies:
- dependency-name: clap_mangen
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-20 14:08:46 -07:00
Martin von Zweigbergk
8745ee7030
cli: use .
in output for current directory instead of empty string
2022-04-20 13:52:25 -07:00
dependabot[bot]
724e2af529
cargo: bump clap_complete from 3.1.1 to 3.1.2
...
Bumps [clap_complete](https://github.com/clap-rs/clap ) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v3.1.1...clap_complete-v3.1.2 )
---
updated-dependencies:
- dependency-name: clap_complete
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-20 13:51:31 -07:00
Martin von Zweigbergk
762c8984c6
trees: when merging trees and one is missing, treat it as empty
...
When a directory is missing in one merge input (base or one side), we
would consider that a merge conflict. This patch changes that so we
instead merge trees by treating the missing tree as empty.
2022-04-20 13:47:03 -07:00
Martin von Zweigbergk
5e729eced7
github: also run tests on our MSRV (1.58)
...
This patch sets up an additional CI strategy running tests on 1.58, to
make sure we don't accidentally use newer features. I've only made it
run on one platform (Linux) to avoid wasting resources. There's of
course a small risk that we start depending on platform-specific APIs
from newer versions.
2022-04-19 16:47:42 -07:00
dependabot[bot]
d2d0f8c03e
cargo: bump clap_mangen from 0.1.3 to 0.1.4
...
Bumps [clap_mangen](https://github.com/clap-rs/clap ) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_mangen-v0.1.3...clap_mangen-v0.1.4 )
---
updated-dependencies:
- dependency-name: clap_mangen
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-19 09:15:40 -07:00
dependabot[bot]
82c59c7f3c
cargo: bump clap from 3.1.9 to 3.1.10
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.9...v3.1.10 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-19 09:04:01 -07:00
dependabot[bot]
c94e241e12
cargo: bump clap from 3.1.8 to 3.1.9
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.8 to 3.1.9.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.8...v3.1.9 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 09:02:15 -07:00
dependabot[bot]
fae965f416
cargo: bump clap_mangen from 0.1.2 to 0.1.3
...
Bumps [clap_mangen](https://github.com/clap-rs/clap ) from 0.1.2 to 0.1.3.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_mangen-v0.1.2...clap_mangen-v0.1.3 )
---
updated-dependencies:
- dependency-name: clap_mangen
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 08:44:45 -07:00
dependabot[bot]
32a39c52e1
github: bump actions/checkout from 3.0.0 to 3.0.1
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](a12a3943b4...dcd71f6466
)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-15 08:53:12 -07:00
Martin von Zweigbergk
53911b076b
working_copy: fix crash when updating and only executable bit changed
2022-04-14 23:46:28 -07:00
Martin von Zweigbergk
bd035004b9
tests: use jj_cmd_success()
in one more place
2022-04-14 23:46:28 -07:00
Martin von Zweigbergk
3c71ae3c76
cli: make jj rebase
default to -b @
( #168 )
...
Closes #168 .
2022-04-14 23:46:28 -07:00
Martin von Zweigbergk
30f5471fc3
cli: add mode for rebasing branch onto destination ( #168 )
2022-04-14 23:46:28 -07:00
Martin von Zweigbergk
a6d0f5fe21
cli: extract functions for rebase flavor ( #168 )
2022-04-14 23:46:28 -07:00
Martin von Zweigbergk
7ec93ddb32
tests: also check output from jj rebase
...
I'd like to have tests showing the number of commits rebased. I just
missed it when adding the tests.
2022-04-14 23:46:28 -07:00
dependabot[bot]
0a68670c30
cargo: bump config from 0.13.0 to 0.13.1
...
Bumps [config](https://github.com/mehcode/config-rs ) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/mehcode/config-rs/releases )
- [Changelog](https://github.com/mehcode/config-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mehcode/config-rs/compare/0.13.0...0.13.1 )
---
updated-dependencies:
- dependency-name: config
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-14 08:57:35 -07:00
Martin von Zweigbergk
7e79f25508
revset: add a roots()
function
2022-04-13 23:24:51 -07:00
Martin von Zweigbergk
9ff21d8924
revset: add a connected()
function
...
This introduces a `connected(x)` function, which is simply the same as
`x:x`. It's occasionally useful if `x` is a long expression. It's also
useful as a building block for `root(x)` (coming soon).
2022-04-13 23:24:51 -07:00
Martin von Zweigbergk
fa6b14f166
revset: rename internal head()
to visible_heads()
2022-04-13 23:24:51 -07:00
Martin von Zweigbergk
7aac95ac80
test: add tests for jj rebase
2022-04-13 21:27:30 -07:00
Martin von Zweigbergk
c1e5f88780
cli: don't allow multiple values for jj rebase
and jj untrack
...
Somehow I had thought that setting `clap(required = true)` on a
list-type argument was not enough to convince clap to require at least
one occurrence, but it seems that it does. The `min_values = 1` I had
added to get it to work actually means that we accept multiple values
passed to a single argument (e.g. `jj rebase -d x y z`), which is not
what I had intended.
2022-04-13 21:27:30 -07:00
Martin von Zweigbergk
677dea1682
cli: require at least one destination for rebase
...
Rebasing onto no commits (i.e. onto the root commit) is almost
definitely not what you meant to do if you run `jj rebase` (without
any arguments).
2022-04-11 15:35:21 -07:00
Martin von Zweigbergk
97a1a3e20b
merge: fix modify/delete conflict to not resolve
2022-04-10 18:32:36 -07:00
Martin von Zweigbergk
5a77e88b94
cargo: specify MSRV (1.57 on lib and 1.58 on CLI)
2022-04-10 12:19:07 -07:00
Martin von Zweigbergk
109a9422f0
cli: teach jj split
to include all specified paths in first commit
2022-04-10 09:13:51 -07:00
Martin von Zweigbergk
d6d2b8b5bc
cli: allow overriding ui.editor
config by $JJ_EDITOR
variable
2022-04-10 09:13:51 -07:00
Martin von Zweigbergk
96d559a4b4
cli: allow overriding $EDITOR
variable by ui.editor
config
2022-04-10 09:13:51 -07:00
Martin von Zweigbergk
2958f5791c
cli: don't crash if $EDITOR fails
2022-04-10 09:13:51 -07:00
Martin von Zweigbergk
f8724ee5a9
tests: add tests for jj describe
2022-04-10 09:13:51 -07:00
Martin von Zweigbergk
90ca03b244
cli: make configs from environment a separate source instead of overrides
...
This addresses a TODO I had left in the code. In addition to the
reasons I mentioned in the TODO, config sources are also better
because they can be layered. I'm planning on using that for editor
configs, letting `$EDITOR` be a layer under the configs and
`$JJ_EDITOR` be a layer over (matching how `git` does it).
2022-04-10 09:13:51 -07:00
Martin von Zweigbergk
486f49435b
cli: if $JJ_CONFIG
points to a directory, read all files in it
...
It's annoying especially for tests to not be able to append to a
config file without knowing the contents (as you have to do with
TOML). Let's read all files in a directory if `$JJ_CONFIG` points to a
directory. Mercurial does that for its `$HGRCPATH` variable.
2022-04-10 09:13:51 -07:00