dependabot[bot]
db61db6de8
github: bump actions/checkout from 3.5.0 to 3.5.1
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](8f4b7f8486...83b7061638
)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-12 16:10:44 +00:00
Aaron Bull Schaefer
239f879caf
docs: fix minor typos in GitHub example commands
2023-04-11 14:41:00 -07:00
dependabot[bot]
54ff97be6c
cargo: bump serde from 1.0.159 to 1.0.160
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.159 to 1.0.160.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.159...v1.0.160 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-11 09:34:54 -07:00
Ilya Grigoriev
21128ba703
docs: add a word to docs about divergent
2023-04-09 22:56:33 -07:00
Ilya Grigoriev
d50c0f5085
Templater: label hidden commits (aka abandoned commits)
...
Looks like "change_id normal" + color. Picture for `jj obslog`:
https://user-images.githubusercontent.com/4123047/230708271-4108cf5f-255d-419e-bd3e-fc97dc8b8660.png
This should also be occasionally be useful for e.g. `jj log commit_id`.
I also considered the wording `(Was change_id)` or `change_id (old)`, `change_id (obs)`.
2023-04-09 22:56:33 -07:00
Ilya Grigoriev
c735d92e8c
formatter: allow using "default" terminal color
...
The "default" color resets the terminal color to default.
2023-04-09 22:56:33 -07:00
Martin von Zweigbergk
e468f9c97a
cargo: upgrade off of yanked crossbeam-channel
version
2023-04-09 22:36:50 -07:00
Yuya Nishihara
5351371d51
revset: resolve visible heads prior to evaluation
2023-04-10 00:39:58 +09:00
Yuya Nishihara
7e1e9efa38
revset: resolve "all()" prior to evaluation
2023-04-10 00:39:58 +09:00
Yuya Nishihara
f43f0d24b8
revset: resolve candidates of children set prior to evaluation
2023-04-10 00:39:58 +09:00
Yuya Nishihara
7974269bab
revset: remove None variant from resolved enum, use Commits([]) instead
...
We'll remove All, so it makes sense to not have None either.
2023-04-10 00:39:58 +09:00
Yuya Nishihara
0fcc13a6f4
revset: make resolve() return different type describing evaluation plan
...
New ResolvedExpression enum ensures that the evaluation engine doesn't have
to know the symbol resolution details. In this commit, I've moved Filter
and NotIn resolution to resolve_visibility(). Implicit All/VisibleHeads
resolution will be migrated later.
It's tempting to combine resolve_symbols() and resolve_visibility() to get
rid of panic!()s, but the resolution might have to be two passes to first
resolve&collect explicit commit ids, and then substitute "all()" with
"(:visible_heads())|commit_id|..". It's also possible to apply some tree
transformation after symbol resolution.
2023-04-10 00:39:58 +09:00
Yuya Nishihara
6c2525cb93
revset: add "resolve" method to RevsetExpression, always call it
...
I'll make the resolution stage mandatory, and have it return a "resolved"
type. RevsetExpression::evaluate() will be moved to the "resolved" type.
2023-04-10 00:39:58 +09:00
Yuya Nishihara
6d9b836d10
revset: extract unresolved commit references to separate enum
...
This makes it clear what should be resolved at resolve_symbols(). Symbol
is a bit special while parsing function arguments, but it's no different
than the other unresolved references at expression level.
2023-04-10 00:39:58 +09:00
Yuya Nishihara
fc65b00020
revset: extract CommitId resolution to function
...
I'm going to merge unresolved variants as RevsetExpression::CommitRef(_).
This prepares for the change.
2023-04-10 00:39:58 +09:00
Yuya Nishihara
0d991bfa4a
cli: make "debug revset" print expression for each stage
...
It helps while debugging tree substitution.
2023-04-10 00:39:58 +09:00
Ilya Grigoriev
f5a3d02638
formatter: error out on invalid color names
2023-04-08 20:58:48 -07:00
Martin von Zweigbergk
4b5b497283
tests: use absolute timestamps in the operation log
...
The current use of `timestamp.ago()` in the default template makes the
tests depend on the current time, which they shouldn't.
2023-04-08 14:02:39 -07:00
Yuya Nishihara
9e027c0aa2
build: strip newline from "git rev-parse" output
...
It works because a build command is line oriented, but it's technically
wrong to include "\n" in git_hash.
2023-04-08 13:01:37 +09:00
Ilya Grigoriev
7a8903e5e7
Fixup to ed0b23d
: make build.rs not insert color
...
Currently, the hash becomes colored if jj is used to get it at
build time and the user configured `color="always"` in jj's
config.
2023-04-07 20:39:43 -07:00
Yuya Nishihara
adfd52445b
revset: reimplement children to not scan visible ancestors twice
...
It's slightly faster, and removes the use of RevsetExpression::descendants()
API.
2023-04-08 12:13:30 +09:00
Yuya Nishihara
5dd99db250
revset: make evaluation helper not create trait object eagerly
...
We wouldn't care for the cost of virtual dispatch at this level, but I
think a concrete struct type is easier to deal with than trait object.
2023-04-08 12:13:30 +09:00
Yuya Nishihara
85fb1f74c3
revset: for roots:heads, terminate ancestor lookup at min(roots)
2023-04-08 12:13:30 +09:00
Yuya Nishihara
ddff089286
revset: do not evaluate roots() candidates three times
2023-04-08 12:13:30 +09:00
Yuya Nishihara
eef6a77aa4
revset: reuse reachable dag-range set to calculate roots
...
This also removes the use of RevsetExpression::connected() API from the
evaluation engine.
2023-04-08 12:13:30 +09:00
Yuya Nishihara
20aa31336e
revset: extract dag-range calculation to function
...
The returned reachable set can be reused to calculate roots() expression.
2023-04-08 12:13:30 +09:00
Yuya Nishihara
7dc35b82b0
revset: evaluate ancestors without using RevsetExpression builder API
...
I'm thinking of transforming RevsetExpression to a enum dedicated for
the evaluation stage. To help the migration, I want to remove the use of
the RevsetExpression builder API from the evaluation engine.
Fewer virtual dispatch is also better.
2023-04-08 12:13:30 +09:00
Martin von Zweigbergk
ed0b23d009
cli: include commit id from build in version
...
This changes the version number reported by `jj version` from "0.7.0"
to something like
"0.7.0-24a512683bc921699575b6a953624b05c068d544a". The hash is added
if running in a jj repo or a git repo.
2023-04-07 17:33:44 -07:00
dependabot[bot]
cfdfc452dc
github: bump github/codeql-action from 2.2.10 to 2.2.11
...
Bumps [github/codeql-action](https://github.com/github/codeql-action ) from 2.2.10 to 2.2.11.
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](8c8d71dde4...d186a2a36c
)
---
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-04-07 10:02:55 -07:00
Martin von Zweigbergk
24a512683b
revset: add a revset function for finding commits with conflicts
...
This adds `conflict()` revset that selects commits with conflicts. We
may want to extend it later to consider only conflicts at certain
paths.
2023-04-06 16:46:21 -07:00
dependabot[bot]
f0cc4c3ae2
github: bump github/codeql-action from 2.2.9 to 2.2.10
...
Bumps [github/codeql-action](https://github.com/github/codeql-action ) from 2.2.9 to 2.2.10.
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](04df1262e6...8c8d71dde4
)
---
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-04-06 16:27:50 -07:00
dependabot[bot]
dc9658159b
github: bump EmbarkStudios/cargo-deny-action from 1.5.0 to 1.5.1
...
Bumps [EmbarkStudios/cargo-deny-action](https://github.com/EmbarkStudios/cargo-deny-action ) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/EmbarkStudios/cargo-deny-action/releases )
- [Commits](8af37f5d0c...3d26fd4e2a
)
---
updated-dependencies:
- dependency-name: EmbarkStudios/cargo-deny-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-06 16:27:29 -07:00
David Barnett
22306af17a
Add docs on how to use GitHub CLI in repos that aren't co-located
2023-04-05 21:22:49 -06:00
Martin von Zweigbergk
ac27cdea69
cli: include total downloaded size in progress output
...
With this change, the output looks like this:
```
3% 165.9 Mi at 13.4 MiB/s [█▋ ]
```
Closes #1483 .
2023-04-05 06:21:32 -07:00
Yuya Nishihara
308a5b9eae
revset: make empty()/file(".") not load root tree for liner history
...
TreeDiffIterator wouldn't load identical subtrees, but it's up to caller to
optimize out the root tree loading.
2023-04-05 21:53:24 +09:00
dependabot[bot]
feeb83dc0f
cargo: bump libc from 0.2.140 to 0.2.141
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.140 to 0.2.141.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.140...0.2.141 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-04 10:02:26 -07:00
Ilya Grigoriev
233dda1057
cmd: prohibit creating branches at the root commit
...
Such branches lead to confusing errors on git expoert or push.
2023-04-03 23:51:47 -07:00
Ilya Grigoriev
31f7c806e2
squash
/amend
: Add -m
argument to set description
...
This prevents an editor opening, and is useful in scripts/tests.
2023-04-03 23:51:15 -07:00
Martin von Zweigbergk
e1c57338a1
revset: split out no-args head()
to visible_heads()
...
The `heads()` revset function with one argument is the counterpart to
`roots()`. Without arguments, it returns the visible heads in the
repo, i.e. `heads(all())`. The two use cases are quite different, and
I think it would be good to clarify that the no-arg form returns the
visible heads, so let's split that out to a new `visible_heads()`
function.
2023-04-03 23:46:34 -07:00
Yuya Nishihara
982062bd75
revset: do not always evaluate filter node to InternalRevset
...
This basically removes hidden 'all() &' from union/negation of filters. To
achieve that, I have two options: 1. add separate evaluation path (like the
one this commit introduced), or 2. wrap "all()" revset to override predicate
as Box::new(|_| true) function. I took the former since it's less ad-hoc.
We can add an explicit RevsetExpression node to branch between evaluate()
and evaluate_predicate(), but I don't think it would simplify the
implementation at this point. We might need such node if we want to resolve
"all()" at resolve_symbols(). It might be even better to extract a subset of
RevsetExpression enum, which only contains evaluatable nodes.
The cost of 'all() &' isn't significant for most filters. '~merges()' is
the exception. For jj repo,
revsets/:v0.3.0 & (author(martinvonz) | committer(martinvonz))
--------------------------------------------------------------
base 1.06 11.2±0.04m
new 1.00 10.5±0.05m
revsets/~merges()
-----------------
base 1.69 750.0±8.47µ
new 1.00 444.1±3.50µ
2023-04-04 15:21:21 +09:00
Yuya Nishihara
69794f2585
revset: add method to upcast InternalRevset to ToPredicateFn
2023-04-04 15:21:21 +09:00
Yuya Nishihara
426f3e4e0a
revset: simplify evaluation of "all()"
...
I think this is more readable, and apparently it produces slightly better code
maybe because the compiler can determine that there are no unwanted markers.
2023-04-04 15:21:21 +09:00
Yuya Nishihara
0bfdbcaa1e
revset: don't rewrite '~set & filter' as difference
...
Since filter is slow in general, its input set should be minimized. This has
measurable impact on artificial query like '~(v0.4.0..) & author(_)'. If it
were evaluated as a difference of sets, all commits would have to be loaded.
2023-04-04 15:21:21 +09:00
Glen Choo
707d82245f
docs/technical: add aspirational Git submodules doc
...
This document is meant to be a record of how we think about Git
submodules (and not a _current_ implementation of submodules). We will
fill it out incrementally as we get a clearer idea of what we want
submodules to look like.
As an initial version, I started with (IMO) the least controversial
points:
- We want to support most workflows Git submodules users are accustomed
to.
- A roadmap that allows us to incrementally roll out Git submodule
functionality (instead of having to boil the ocean).
2023-04-03 12:58:17 -07:00
dependabot[bot]
663f0ef697
cargo: bump pest_derive from 2.5.6 to 2.5.7
...
Bumps [pest_derive](https://github.com/pest-parser/pest ) from 2.5.6 to 2.5.7.
- [Release notes](https://github.com/pest-parser/pest/releases )
- [Commits](https://github.com/pest-parser/pest/compare/v2.5.6...v2.5.7 )
---
updated-dependencies:
- dependency-name: pest_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 09:29:53 -07:00
dependabot[bot]
658423dc78
cargo: bump test-case from 3.0.0 to 3.1.0
...
Bumps [test-case](https://github.com/frondeus/test-case ) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/frondeus/test-case/releases )
- [Changelog](https://github.com/frondeus/test-case/blob/master/CHANGELOG.md )
- [Commits](https://github.com/frondeus/test-case/compare/v3.0.0...v3.1.0 )
---
updated-dependencies:
- dependency-name: test-case
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 09:29:29 -07:00
dependabot[bot]
fb27885c5d
cargo: bump git2 from 0.16.1 to 0.17.0
...
Bumps [git2](https://github.com/rust-lang/git2-rs ) from 0.16.1 to 0.17.0.
- [Release notes](https://github.com/rust-lang/git2-rs/releases )
- [Changelog](https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/git2-rs/compare/0.16.1...git2-curl-0.17.0 )
---
updated-dependencies:
- dependency-name: git2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 09:24:05 -07:00
Ilya Grigoriev
0e2579ee6a
Switch graph node to use ◉
for commit instead of ●
...
This follows up on 5c703aeb03
.
The only reason for this change is that, subjectively, the result looks better to me. I'm not sure why, but I couldn't get used to the old symbol in spite of its seeming reasonableness. It felt really bold and heavy.
If people agree, we can wait until we need to update the screenshots for some other reason before merging this. Sorry I didn't figure this out while the discussion about the referenced commit was going on.
I'm not 100% certain how many fonts support each symbol. Please try it out and let me know if it doesn't work for you.
Compare after:
![image](https://user-images.githubusercontent.com/4123047/229251383-563b889d-7233-42e2-a3c5-bf9368a4d1fd.png )
and before:
![image](https://user-images.githubusercontent.com/4123047/229251695-7fd0ff2c-2832-4262-ade5-5120288cccdf.png )
2023-04-02 23:15:37 -07:00
Yuya Nishihara
3927c01d08
revset: make error type opaque to try_transform_expression()
...
It no longer handles RevsetResolutionError.
2023-04-03 10:55:03 +09:00
Yuya Nishihara
f1e2d19d57
revset: fully consume Present(_) node by resolve_symbols()
...
Since resolve_symbols() now removes Present(_) node, it make sense to
handle symbol resolution error there. That's why I added a "pre" callback
to try_transform_expression().
Perhaps, "operation" scope (#1283 ) can be implemented in a similar way,
(but somehow need to resolve operation id and call repo.reload_at(op).)
2023-04-03 10:55:03 +09:00