Ilya Grigoriev
e684010a68
test_git_import_export: no-op change to a test
2023-07-03 12:28:06 -07:00
Ilya Grigoriev
89651465d3
test_undo: three versions of the git_push_undo test
...
The original test is copied from @martinvonz 's [PR draft] (thanks!).
The three versions show differences in behavior due to import/export
of remote-tracking branches, and due to repo being colocated.
The former is relevant for [the discussion] of whether `jj git export` should
export remote-tracking branches. The latter will change in a follow-up commit.
Outstanding TODO: check if we have similar tests for undoing `fetch`
[PR draft]: https://github.com/martinvonz/jj/pull/1541
[the discussion]: https://github.com/martinvonz/jj/pull/1739
2023-07-03 12:28:06 -07:00
Ilya Grigoriev
51d61b6a20
test utilities: advance_test_rng_seed_to_multiple_of
function
2023-07-03 12:28:06 -07: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]
706df8c2b5
cargo: bump serde from 1.0.164 to 1.0.165
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.164 to 1.0.165.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.164...v1.0.165 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-04 00:47:33 +09: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
Waleed Khan
4030a4fa81
docs: remove linebreak in installation command
2023-07-03 10:43:29 -05:00
Yuya Nishihara
d3c031b277
tests: add helper method to capture both stdout/stderr outputs
...
This pattern is common, and should have a shorthand so that we can easily
add warning messages.
2023-07-03 22:03:05 +09:00
Yuya Nishihara
cefbeba776
cli: add revset filter to "branch list"
...
Typical query would be something like -r 'mine()' or -r 'branches()' to
exclude remote-only branches #1136 .
The query matches against local targets only. This means there's no way to
select deleted/forgotten branches by -r option. If we add a default revset
configuration, we'll need some way to turn the default off.
2023-07-02 14:39:45 +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
dependabot[bot]
0eddf7c80d
cargo: bump clap from 4.3.9 to 4.3.10
...
Bumps [clap](https://github.com/clap-rs/clap ) from 4.3.9 to 4.3.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/v4.3.9...v4.3.10 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 22:51:58 -07:00
Ilya Grigoriev
335e86d8e7
test_branch_command: use bare repositories
...
Otherwise, those tests cannot use `jj git push`. This is an issue with a test
in the next commit, and I don't want people to copy these tests and be surprised.
2023-06-30 21:29:24 -07:00
Ilya Grigoriev
333c348fb9
branch forget & delete: report if forgot/deleted multiple branches
2023-06-30 21:29:24 -07:00
Ilya Grigoriev
f6ddd775b9
branch delete
: allow deleting globs of branches
2023-06-30 21:29:24 -07:00
Ilya Grigoriev
97815851f7
branch.rs: move find_globs
function out of cmd_branch_forget
...
This prepares for using it in `cmd_branch_delete`.
2023-06-30 21:29:24 -07:00
Ilya Grigoriev
144a44914a
branch forget
: error message if no globs match
2023-06-30 21:29:24 -07:00
Ilya Grigoriev
7fde64fe8f
branch list
: request pager
...
I have too many branches :)
2023-06-30 21:29:24 -07: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
Martin von Zweigbergk
24c0190f74
conflicts: rename try_map()
to maybe_map()
...
I'm going to add a `Result` version and it makes more sense to call
that `try_map()`.
2023-06-30 14:43:58 +02:00
Martin von Zweigbergk
83fefa9a3b
conflicts: add a map()
, use in extract_as_single_hunk()
...
Now that we've replaced `MergeHunk` by a `Conflict`, it makes sense to
convert the input `Conflict<FileId>` by mapping each term. Unlike
`Option::map()` I made `Conflict::map()` take a reference `self`,
because it's not uncommon to want to map the same conflict multiple
times. I'm going to use that for producing a
`Conflict<Option<TreeValue>>` from a `Conflict<Tree>` and a set of
paths.
2023-06-30 14:43:58 +02:00
Martin von Zweigbergk
6bd13382f4
backend: add a function for setting or removing a tree entry
2023-06-30 14:43:58 +02:00
Martin von Zweigbergk
c0ffce781e
store: cache tree on write and return it
...
This matches what we do when writing commits.
2023-06-30 14:12:36 +02:00
Martin von Zweigbergk
b297c0c0d8
rewrite: propagate errors from merge_trees()
2023-06-30 14:12:36 +02:00
Martin von Zweigbergk
134efabcef
test_merge_trees: make merge_trees()
wrapper's signature match original
2023-06-30 14:12:36 +02:00
Kevin Liao
eac90fd113
Update init_external to return an error instead of unwrapping
2023-06-29 10:03:13 -07:00
dependabot[bot]
00d8cd740d
cargo: bump num_cpus from 1.15.0 to 1.16.0
...
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus ) from 1.15.0 to 1.16.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases )
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.15.0...v1.16.0 )
---
updated-dependencies:
- dependency-name: num_cpus
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-29 18:49:48 +02:00
Yuya Nishihara
458ae45905
cli: ensure log revset expression tree is optimized
...
I don't think we have any substitution rules applied to union or intersection
with single file predicate, but there might be something in future.
2023-06-29 19:33:32 +09:00
Yuya Nishihara
e601a30b15
cli: make log accept multiple -rREVISION expressions
...
For scripting scenario, multiple -r options are easier to construct than
concatenating expressions with ")|(".
2023-06-29 19:33:32 +09:00
Yuya Nishihara
7ad6357c10
revset: add union_all(...) helper to concatenate multiple -rREV options
2023-06-29 19:33:32 +09:00
Yuya Nishihara
f0b9969e74
cli: document that "git push --all" includes deleted branches
...
Since deleted branches are a bit special, I couldn't be sure that --all
includes deleted without reading the source code.
2023-06-29 17:05:53 +09:00
Yuya Nishihara
b1267cae4b
cli: remove redundant deduplication of branch names from cmd_git_push()
2023-06-29 17:05:53 +09:00
Yuya Nishihara
237dd98b87
cli: in cmd_git_push(), narrow scope of seen_branches
2023-06-29 17:05:53 +09:00
Martin von Zweigbergk
68e696d673
cargo: upgrade clap from 4.3.8 to 4.3.9
...
The new version has a change that makes `ignore_errors()` not ignore
the error from `--help` (clap handles `--help` by returning an
error). To compensate for that, I disabled the `--help` and
`--version` flag and the `help` subcommand while parsing early
arguments.
2023-06-28 23:22:09 +02:00
Martin von Zweigbergk
9995415440
cli: propagate clap error from handle_early_args()
...
If we fail to parse the command line, even with `ignore_errors(true)`
set, we currently let clap exit the process for us because we call
`get_matches_from()`. We should instead propagate any errors and
exit in `CliRunner::run()` as usual..
2023-06-28 23:22:09 +02:00
dependabot[bot]
db87cb2c39
cargo: bump rustix from 0.37.20 to 0.38.0
...
Bumps [rustix](https://github.com/bytecodealliance/rustix ) from 0.37.20 to 0.38.0.
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.37.20...v0.38.0 )
---
updated-dependencies:
- dependency-name: rustix
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-28 22:16:49 +02:00
Yuya Nishihara
3779b45b94
git: use type-safe RefName enum extensively in import_some_refs()
...
I was thinking of adding GitRefName newtype, but the RefName type can serve
the same role.
2023-06-28 23:11:08 +09:00
Yuya Nishihara
1d9552406b
git: leverage parse_git_ref() to test reference kind
2023-06-28 23:11:08 +09:00
Martin von Zweigbergk
e6d5df1010
docs: add doc comparing jj to Sapling ( #1708 )
2023-06-28 06:56:57 +02:00
Martin von Zweigbergk
779b8ba318
files: replace uses of MergeHunk
by Conflict<ContentHunk>
...
Since `Conflict`s can represent the resolved state, so
`Conflict<ContentHunk>` can represent the states that we use
`MergeHunk` for. `MergeHunk` does force the user to handle the
resolved case, which may be useful. I suppose one could use the same
argument for making `Conflict` an enum, i.e. if we think that
`MergeHunk`'s two variants are beneficial, then we should consider
making `Conflict` an enum with those two variants.
2023-06-28 06:51:37 +02:00