ok/jj
1
0
Fork 0
forked from mirrors/jj
Commit graph

315 commits

Author SHA1 Message Date
Yuya Nishihara
e0965c4533 git: on push, update jj's view of remote branches without using import_refs()
This means that the commits previously pinned by remote branches are no longer
abandoned. I think that's more correct since "push" is the operation to
propagate local view to remote, and uninteresting commits should have been
locally abandoned.
2023-10-17 15:06:03 +09:00
Yuya Nishihara
9cafff87e1 cli: add API and branch subcommand to track/untrack remote branches
This patch adds MutableRepo::track_remote_branch() as we'll probably need to
track the default branch on "jj git clone". untrack_remote_branch() is also
added for consistency.
2023-10-16 23:21:05 +09:00
Yuya Nishihara
4cd2518be0 git: on import_refs(), respect tracking state of existing remote refs
In this commit, new behavior is tested by using in-memory view data. Data
persistence and track/untrack commands will be implemented soon.
2023-10-16 23:21:05 +09:00
Infra
56a1686925 Add build-essential to install instructions 2023-10-05 09:07:37 -07:00
Ilya Grigoriev
048f993a17 docs index.md: explain that the website sidebar may be hidden
This happens on mobile browsers or when the browser window is too
narrow.
2023-10-04 05:25:37 -07:00
Ilya Grigoriev
7cfeb72328 docs index.md: Make README link a bit more reliable
The original link would likely be broken by the change to
the heading title in https://github.com/martinvonz/jj/pull/2273.
2023-10-04 00:22:12 -07:00
Ilya Grigoriev
2218143968 docs: create a basic homepage for the docs website
Before, https://martinvonz.github.io/jj/latest redirected to
https://martinvonz.github.io/jj/latest/install-and-setup.html.

Now, it will direct people to a basic page with a link to
the repo and a few other useful pages.

An additional motivation is the desire to have a homepage to
link to from
https://github.com/martinvonz/jj/pull/2273#discussion_r1331008117.

Better something very basic than nothing.
2023-10-03 19:58:22 -07:00
Waleed Khan
d9597c55ec docs: use code block for ui.pager config example 2023-10-02 23:37:33 -05:00
Yuya Nishihara
ce0821f06d docs: adjust tracking branches design to deal with "fetch/push && undo"
The original idea was to completely replace git_refs with remotes["git"] by
introducing "forgotten" state, but it turned out to break "fetch && undo"
scenario. There are other ways around, but they also have problems:

* Sets tombstone on forgotten/deleted remote refs, exports remote refs without
  comparing to the known refs.
  * `jj undo` would need to insert tombstone by diffing old/new views.
  * `jj branch forget` would need to preserve the @git branch whereas the other
    remote branches would be forgotten.
* Always overwrites remote refs on export.
  * `jj git export` without importing would discard remote refs.

So, I decided to not remove git_refs. Apparently, it also improves the undo
behavior. In the new model, `jj git fetch && jj undo && jj git fetch` works
even if git_refs isn't rolled back. So we can unify the default of
`jj undo --what`.
2023-09-28 18:00:25 +09:00
Philip Metzger
e158423cb0 Docs: Make github.md a bit clearer
This adresses #1989
2023-09-28 01:11:47 +02:00
Emily Fox
35f11e2cdc docs: add missing word to config.md 2023-09-27 12:26:08 -05:00
Hong Shin
e5ad32e29e docs: update basic workflow to use autogenned branch name 2023-09-26 13:16:44 -07:00
Hong Shin
0c0b924e7a docs: add revset clarification to github.md 2023-09-26 10:59:38 -07:00
Martin von Zweigbergk
a6ef3f0b6c cli: make set of immutable commits configurable
This adds a new `revset-aliases.immutable_heads()s` config for
defining the set of immutable commits. The set is defined as the
configured revset, as well as its ancestors, and the root commit
commit (even if the configured set is empty).

This patch also adds enforcement of the config where we already had
checks preventing rewrite of the root commit. The working-copy commit
is implicitly assumed to be writable in most cases. Specifically, we
won't prevent amending the working copy even if the user includes it
in the config but we do prevent `jj edit @` in that case. That seems
good enough to me. Maybe we should emit a warning when the working
copy is in the set of immutable commits.

Maybe we should add support for something more like [Mercurial's
phases](https://wiki.mercurial-scm.org/Phases), which is propagated on
push and pull. There's already some affordance for that in the view
object's `public_heads` field. However, this is simpler, especially
since we can't propagate the phase to Git remotes, and seems like a
good start. Also, it lets you say that commits authored by other users
are immutable, for example.

For now, the functionality is in the CLI library. I'm not sure if we
want to move it into the library crate. I'm leaning towards letting
library users do whatever they want without being restricted by
immutable commits. I do think we should move the functionality into a
future `ui-lib` or `ui-util` crate. That crate would have most of the
functionality in the current `cli_util` module (but in a
non-CLI-specific form).
2023-09-25 15:41:45 -07:00
Waleed Khan
409356fa5b merge_tools: enable :builtin as default diff/merge editor 2023-09-21 03:29:27 +02:00
Ilya Grigoriev
6d5390d1db cli: add upstream remote to default trunk()
This makes trunk() correct after `jj git fetch --remote upstream --branch
main`.
2023-09-19 20:51:23 -07:00
Ilya Grigoriev
0c31e0ba61 trunk() docs fix: commits aren't tried in order; newest commit wins
That's my understanding of how `latest()` revset works.
2023-09-19 20:51:23 -07:00
Yuya Nishihara
96cb3a6053 docs: use branch@remote syntax in trunk() example
It's simpler, and user-specified trunk() wouldn't need fallback.
2023-09-19 21:29:08 +09:00
Ruben Slabbert
f2f5ded5f0 revsets: add trunk alias with default to main/master/root 2023-09-17 10:17:23 +10:00
Ilya Grigoriev
c45216ed02 templates.md docs: Document string literal format
We are a little weird about which string escapes we support, and we don't
support raw strings.  I thought this might be worth documenting.

Inspired by https://github.com/martinvonz/jj/pull/2251
2023-09-15 20:16:09 -07:00
Ilya Grigoriev
c5f74bc466 docs: mention git pack-refs for co-located repos
As suggested by @yuja in
https://github.com/martinvonz/jj/issues/1841#issuecomment-1720451152

Thanks to @lazywei for pointing out that `git pack-refs --all` is better, at
least on the first run. I haven't checked, but suspect, that because of the
number of `refs/jj` refs jj creates, it might always be better.
2023-09-15 19:49:11 -07:00
Martin von Zweigbergk
21921cfd73 docs: add a section about profiling 2023-09-14 21:15:03 -07:00
Philip Metzger
09a99e36dc docs/design: Clarify run.md a bit.
This is essentially a new version, which clarifies multiple statements about
`jj run`. Notably, it cleans up some mistakes which were overlooked or deemed
good enough in the Google Docs version.
2023-09-14 16:39:40 +02:00
Philip Metzger
5b729a90a9 docs/design: Move the run doc to github.
This ticks another box in #1869.

Co-Authored-By: arxanas <me@waleedkhan.name>
Co-Authored-By: hooper <hooper@google.com>
Co-Authored-By: martinvonz <martinvonz@google.com>
2023-09-14 16:39:40 +02:00
Glen
2c74fa8c7c docs: document script to colocate a jj-only repo
https://github.com/martinvonz/jj/discussions/2230 indicates a lot of
interest in this, so we'd probably want to support this officially at
some point. Until then, document a script that has worked well-enough
for some of us.
2023-09-14 10:00:39 +08:00
Ilya Grigoriev
0cf83ea306 contributing.md: add section about contributing to the docs 2023-09-11 18:22:56 -07:00
Ilya Grigoriev
21f4015cbf install-and-setup.md: explain how to compile the latest release
Also a few minor updates.
2023-09-11 18:21:56 -07:00
Martin von Zweigbergk
70f6e0a452 cargo: enable the watchman feature by default
I think the feature is requested by enough users that we should
include it by default, also for people who install from source (we
include it in the `packaging` feature already).

It increases the size of the binary from 16.5 MiB to 17.8 MiB. I
suspect we'd see some of that increase in size soon anyway, as I'm
probably going to use Tokio for making async backend requests.
2023-09-08 09:34:55 -07:00
Martin von Zweigbergk
1c8d27dc39 faq: add entry about accidentally amended working copy 2023-09-08 08:59:59 -07:00
Ilya Grigoriev
5fc71018d6 config docs: minor fixups
mkdocs can't seem to handle backticks in link anchors for out-of-text links.
2023-09-07 11:01:12 -07:00
James Sully
0946934ca6 revset: Add optional argument n to ancestors() in revset language 2023-09-08 02:50:58 +10:00
Martin von Zweigbergk
233b31fdf2 docs: try to clarify that we want contributors to squash fixup commits
It's happened a few times that contributors misunderstood the
guidelines, so they're clearly not clear enough. Hopefully this
clarifies.
2023-09-07 09:31:45 -07:00
Ilya Grigoriev
2911f414bd docs: remove v0.7.0 shell completion instructions
Now that v0.9.0 is released, it seems appropriate.
2023-09-06 15:35:01 -07:00
Martin von Zweigbergk
d047512115 docs: prefer new revset operator :: over deprecated :
Now that we're very close to a release, it should be fine to use the
new syntax in our documentation. This effecttively backs out
37436f7344.
2023-09-06 13:09:14 -07:00
Martin von Zweigbergk
c7d1932546 release: release version 0.9.0
Thanks to everyone who's contributed!
2023-09-06 10:57:57 -07:00
Ilya Grigoriev
18bcc87794 docs: make co-located repos more prominent, more details
At this point, they are stable enough that I think we should
advertise them and encourage their use. This also explains
some caveats.
2023-09-06 09:15:27 -07:00
Ilya Grigoriev
be8be2e55a docs: More info about syncing jj repo with rsync
This will be used for context in the next commit

Includes a mention of
https://github.com/martinvonz/jj/issues/2193.
2023-09-06 09:15:27 -07:00
Yuya Nishihara
b0c8e9ef62 revset: add 0-ary "::" and ".." operators as short for "all()" and "~root()"
Suppose "x::y" is the operator that defaults to "root()::visible_heads()"
respectively, "::" is identical to "all()". Since we've just changed the
behavior of "..y", ".." is now "root()..visible_heads()" meaning "~root()".
2023-09-05 10:40:04 +09:00
Yuya Nishihara
6b2ad23f8f revset: evaluate "..y" expression to "root()..y"
This seems useful since the root commit is often uninteresting. It's also
consistent with "x::y" in a way that the left operand defaults to "root()".
2023-09-05 10:40:04 +09:00
Yuya Nishihara
e3c85d6ecc revset: convert root symbol to function
The idea is that we can fully eliminate special symbols that would otherwise
shadow user branches, tags, or change ID prefixes.

Closes #2095
2023-09-04 10:36:30 +09:00
Yuya Nishihara
c08fab60da docs: update description of @ revset expression, mention name@remote syntax
Since I'm going to remove the root symbol, it doesn't make sense to leave
@ in the priority list.
2023-09-04 10:36:30 +09:00
Yuya Nishihara
4394bf8de8 templater: add boolean literals
They are implemented as literal expressions so that user cannot override
them by false and true aliases.
2023-09-03 07:01:40 +09:00
Vincent Breitmoser
e8239c7f4e docs: add information about Change ID scope to glossary 2023-08-29 22:24:48 -07:00
Ilya Grigoriev
b67c115c29 docs: goodbye Github, hello GitHub 2023-08-28 10:43:48 -07:00
Ilya Grigoriev
c8bb8fbeb2 Github actions to build docs
One action publishes the 'prerelease' version on every push
to `main`.

The other publishes a 'latest' version on every releasse.

I tested both of them, but not with branch protection rules.
2023-08-28 10:43:48 -07:00
Ilya Grigoriev
8f29afaafd docs: markdown fixups, mostly to remove links pointing outside docs
This makes mkdocs compile cleanly
2023-08-28 10:43:48 -07:00
Ilya Grigoriev
fc49258d2f docs: Set up mkdocs and poetry
I initially was thinking of using `mdbook`, which looks a little better, but I
think versioning the docs is important, and the features I want are pretty much
only supported by the Mkdocs' "Material" theme. 

Mkdocs is written in Python. The prerequesites for building docs on your
machine should be to install Python and Poetry, everything else should be
installed automatically by Poetry. See the edits to `contributing.md` for more details.
2023-08-28 10:43:48 -07:00
Ilya Grigoriev
623c5e28c2 docs: change "shell script" codeblock to "shell"
```shell script
    ```

breaks mkdocs rendering
2023-08-28 10:43:48 -07:00
Ilya Grigoriev
64140c34b7 docs: Move installation instructions from README to docs/
This allows the tutorial to reference them and will make it
easier to have different instructions for different versions.

We can later restore some instructions to the README, but I
think this is important since the installation instructions
do change in important (even if slight) ways from time to
time.
2023-08-28 10:43:48 -07:00
Ilya Grigoriev
d3bd1af37b docs: minor markdown fixups
I am not sure these are necessary with `mkdocs` that I settled on,
but this allows `mdbook` to parse the markdown properly.
2023-08-28 10:43:48 -07:00