Commit graph

143 commits

Author SHA1 Message Date
Martin von Zweigbergk
0c8c33df73 readme: update asciinema links
As @huyz noticed, I accidentally lost the undo demo in 0d1bf7cb3b. I
also didn't update the working-copy demo. This patch fixes that by
updating all demos, so we also get the recent styling change from
af145c998ea4..
2022-10-02 21:55:26 -07:00
Yuya Nishihara
c9c3735faf cli: add basic support for 'jj log PATH'
In the current implementation, tree is diffed twice if both PATH and -p
are specified. If this adds significant cost, we'll need to reimplement
it without using a revset abstraction (or maybe adjust revset/graph API.)
2022-09-16 13:02:58 +09:00
Ilya Grigoriev
802125aa3c Reword paragraph about jj and other VCS in README
Fixes two pedantic issues with this paragraph:

* "either" describing more than two things

* I am not an expert, but I suspect that Pijul
  supports "automatic rebase".
2022-09-12 20:12:07 -07:00
Martin von Zweigbergk
cc77a232a1 readme: explain that Rust >= 1.60 is needed
We have `rust-version = "1.60"` in `Cargo.toml`, but Cargo doesn't
check that until after dependency resolution, which fails if you have
an older version (I don't know why).
2022-08-29 17:24:57 -07:00
Martin von Zweigbergk
c83e563879 readme: make link to Discard a button 2022-08-28 14:36:25 -07:00
Martin von Zweigbergk
0d1bf7cb3b cli: disable open commits by default 2022-08-26 23:34:52 -07:00
Martin von Zweigbergk
36354e4fa5 readme: add a pointer to the Discord server 2022-08-18 20:15:35 -07:00
Martin von Zweigbergk
7722223902 readme: clarify in the heading that this is a VCS 2022-08-18 20:15:35 -07:00
Martin von Zweigbergk
9c55d98842 cli: rename jj edit to jj touchup 2022-07-01 08:58:08 +08:00
Tal Pressman
0028c0e295 Update installation instructions
Update installation instructions to only install `jj` (excluding test fakes).
2022-06-28 06:38:16 +08:00
Martin von Zweigbergk
a15192c05b docs: update to use new jj branch syntax 2022-06-09 22:24:46 -07:00
Waleed Khan
aedc23176f docs: add missing . in .jjconfig.toml 2022-05-26 18:59:31 -07:00
Martin von Zweigbergk
0865b1ccff cli: show placeholder text for empty commit message
It can be confusing that some commits (typically the working copy)
don't have a description. Let's show a placeholder text in such cases.

I chose the format to match the "(no email configured)" message we
already have.
2022-05-18 09:16:04 -07:00
Martin von Zweigbergk
71c789f50b cli: make log show only local commits by default
The default log output of showing all commits is not very useful when
contributing to an existing repo. Let's have it default to showing
commits not on any remote branch instead. I think that's the best we
can do since we don't have a configurable main branch yet, and we
don't even have per-repo configuration..

Closes #250.
2022-05-14 11:50:05 -07:00
Martin von Zweigbergk
96849da332 docs: prefer ~/.jjconfig.toml on all platforms
It's much easier to tell users on all platforms to put their config in
`~/.jjconfig.toml` than in a path that varies across the platforms, so
let's do that. It also seems like a less controversial location for
the file.

Closes ##233.
2022-05-10 10:21:22 -07:00
Waleed Khan
ed2b8643f8 docs: update README.md
The intention is to make it easier to jump to the Installation section.
2022-05-02 13:57:10 -07:00
Jason R. Coombs
2d4e653e90 Add hint on including completions with xonsh shell. 2022-04-26 16:31:51 -07:00
Jason R. Coombs
99cce19774 Avoid hard-coding homebrew install prefix. 2022-04-26 16:31:51 -07:00
Jason R. Coombs
c2dbbf434d Minor editorial changes for native backend footnote. 2022-04-26 16:31:51 -07:00
Martin von Zweigbergk
095fb9fef4 config: drop support for ~/.jjconfig
I'm a little hesitant to do this because most tools I'm familiar with
have the config file directly in `~/`. It's also easier to describe
where to put the file if it doesn't vary across platforms. But we're
still early in the project, so let's try it and see if we get any
complaints.
2022-03-23 09:57:42 -07:00
Martin von Zweigbergk
2a76572653 docs: add pointer to pre-built binary releases (#73)
Users now have the option of installing from source or directly
installing a binary.

I also corrected some text that effectively said that installing a Nix
flake is not installing from source, but I think it actually does
install from source.
2022-03-16 22:57:38 -07:00
Martin von Zweigbergk
630f8069d0 docs: explain that the there's no reason to use the native backend
A few people in different forums asked if there's any reason to use
the native backend and what the reason for its existance is, so let's
document that.
2022-03-09 07:48:31 -08:00
Martin von Zweigbergk
fbd376df43 docs: mention that libssl-dev and openssl are needed for installation
Closes #75.
2022-03-02 18:38:36 -08:00
Martin von Zweigbergk
78dadcc1ba docs: restructure installation instructions to be per platform
The only overlap between the instructions for Linux, Mac, and Windows
is the `cargo install` step, so let's instead split it up so it's easy
for the user to skip to the relevant part, especially as we add more
platform-specific instructions.

I promoted some sections to one level higher sections to try to
clarify that the initial configuration and the command-line completion
applies to all platforms.
2022-03-02 18:38:36 -08:00
Martin von Zweigbergk
e11e373427 docs: describe how to set up completion for each shell
Setting up completion is particularly non-obvious for Zsh, so let's
provide the exact command(s) for each supported shell.

Closes #67.
2022-02-28 19:35:06 -08:00
Martin von Zweigbergk
70811669fc docs: remove $ from shell scripts for easy copy&paste 2022-02-28 19:35:06 -08:00
Martin von Zweigbergk
1978a7d038 docs: use stable Rust toolchain for installation
We don't need the nightly toolchain anymore since #70 (thanks,
@arxanas!).
2022-02-27 12:49:00 -08:00
Martin von Zweigbergk
1a0b5b9c9e docs: mention user-specific config path on different platforms
Since #85, we load the user's config from a path under
`dirs::config_dir()`. It's probably not obvious to all users where to
put the file, so let's describe that. (I didn't know where to put the
file on my Mac until I looked at the function's documentation.)
2022-02-27 11:48:45 -08:00
Cole Mickens
fbe8eb47db lib/settings: try to load from platform config_dir 2022-02-26 00:09:34 -08:00
Jelle Besseling
9fb580b6ee
Add nix installation instructions 2022-02-20 22:53:04 +01:00
Martin von Zweigbergk
f4cadff6e1 README: description additional installation steps for Mac
I'm not sure which steps are needed and what they depend on (I didn't
need the `pkg-config` bits), so the steps are a little vague for now.

Closes #62.
2022-02-19 23:23:58 -08:00
Martin von Zweigbergk
4a0bd07e8c README: add note about use of libgit2 C library
Closes #56.
2022-02-19 22:55:48 -08:00
Martin von Zweigbergk
819ad475f5 docs: give Google credit for letting this be my 20% project
This has been my 20% for at least a year (dedicating most of my
Wednesdays to it), so let's give Google some credit for that in the
README.
2022-02-08 09:59:28 -08:00
Martin von Zweigbergk
8fe21b0438 docs: mention history rewriting as a feature in README
I think we have better support rewriting history than most other tools
do, so it seems worth mentioning.
2022-01-28 23:07:52 -08:00
Martin von Zweigbergk
377741c5c6 docs: make "features" in readme a heading with sub-headings instead of bullets
The list of features outgrew the bullet form a long time ago...
2022-01-28 22:45:55 -08:00
Martin von Zweigbergk
67b731b34a docs: mention concurrency as a feature in README 2022-01-10 13:05:29 -08:00
Martin von Zweigbergk
037d66965d docs: start documenting Git compatibility 2022-01-03 22:40:58 -08:00
Martin von Zweigbergk
93250fe6c8 docs: link from README to post about rebase speed
For now, the best documentation we have of how fast `jj` is is the
GitHub discussion about rebase speed.
2022-01-03 21:36:56 -08:00
Martin von Zweigbergk
f9e6b263a1 docs: explain how not exposing "the index" in the UI is a good thing 2021-12-18 09:22:35 -08:00
Martin von Zweigbergk
71b0233efb docs: add doc about a first-class conflicts 2021-12-18 08:07:28 -08:00
Martin von Zweigbergk
ef4dbf216f docs: add links from README to detailed docs 2021-12-18 08:01:47 -08:00
Martin von Zweigbergk
423a894cba docs: consistently use hyphens in filenames 2021-12-18 07:56:48 -08:00
Martin von Zweigbergk
4c71c763e9 docs: document revsets (#46)
Now that revset operators are not as embarrassing as before, let's
document them.
2021-12-15 16:56:45 -08:00
Martin von Zweigbergk
6b0a568e44 docs: add pointer from README to Git-comparison doc 2021-11-18 22:06:15 -08:00
Martin von Zweigbergk
9375106a05 cli: use same color for timestamps in operation log as in commit log 2021-11-07 21:41:22 -08:00
Martin von Zweigbergk
798b4bc897 demos: add demo showing how conflicting commits can be rebased etc 2021-11-07 15:17:51 -08:00
Martin von Zweigbergk
bf64f89521 demos: update conflict-resolution demo with recent changes
Conflicts are now preserved in the working copy until their conflict
markers are gone (they used to be considered resolved).
2021-11-07 15:17:51 -08:00
Martin von Zweigbergk
d37e484fc8 docs: explain what the tool is about, not why I started it 2021-10-28 15:01:19 -07:00
Martin von Zweigbergk
c293638028 docs: add more detail about the project status (like what's missing) 2021-10-28 15:01:19 -07:00
Martin von Zweigbergk
5c0e929b29 docs: add a "Related Work" section to README 2021-10-28 15:01:19 -07:00
Martin von Zweigbergk
98337e819d demos: add more jj log calls to the working-copy demo
Thanks to @arxanas for the suggestion.
2021-10-27 21:16:29 -07:00
Martin von Zweigbergk
4f8632519b docs: update demo links with recent changes 2021-10-27 18:12:21 -07:00
Martin von Zweigbergk
3c6a922b97 docs: don't hide demos in collapsed regions in the README 2021-10-27 16:09:05 -07:00
Martin von Zweigbergk
a3a13f8bbf demos: update demo recordings with stable graph edge ordering 2021-10-23 20:45:51 -07:00
Martin von Zweigbergk
5acd360e86 demos: update conflict-resolution demo link to a lower-resolution version
I forgot to make my terminal window smaller before recording the
previous version.
2021-10-23 14:48:08 -07:00
Martin von Zweigbergk
c661181e08 demos: add demo of basic conflict resolution 2021-10-23 14:40:33 -07:00
Martin von Zweigbergk
97612f9e99 demos: add demo of the operation log 2021-10-22 23:52:16 -07:00
Martin von Zweigbergk
74e21acd02 demos: add demo of automatic working copy commit 2021-10-22 21:59:07 -07:00
Martin von Zweigbergk
2dd0bf7b12 demos: type faster, pause more
I find it frustrating to wait for the typing, but I need much more
time to think between commands (and users who are new to the tool
surely need even more time).
2021-10-22 18:36:00 -07:00
Martin von Zweigbergk
234cb15ff8 demos: add automated demo of cloning Git repo
The automation is mostly copied from
https://github.com/arxanas/git-branchless/tree/master/demos, so big
thanks to @arxanas for writing that!
2021-10-22 13:56:30 -07:00
Martin von Zweigbergk
ca796b49f0 docs: describe how to set up commmand-line completion 2021-10-13 20:45:55 -07:00
Martin von Zweigbergk
56e0f1254b docs: move initial configuration from tutorial to README
It seems better to have all the one-time setup in the README.
2021-10-13 20:37:48 -07:00
Martin von Zweigbergk
8fef1c2068 docs: move installation instructions from tutorial to README
I also changed the instructions to use `cargo install --git` pointing
straight to GitHub, so we don't have the naming conflict with the jj
repo created in the tutorial.
2021-10-13 08:52:40 -07:00
Martin von Zweigbergk
0e3b4b406a README: remove the empty "Future plans" section
This section has always been empty (IIRC). I think we'll use GitHub
issues for tracking remaining work instead.
2021-10-13 08:44:29 -07:00
Martin von Zweigbergk
f33117b2f8 README: update to describe "automatic rebase" instead of evolution (#32) 2021-10-03 12:01:14 -07:00
Martin von Zweigbergk
880d469b5f readme: fix typoed "tutorial" 2021-09-20 09:02:40 -07:00
Martin von Zweigbergk
4aa1fd7cbb docs: move tutorial from README.md to docs/tutorial.md 2021-09-09 11:10:40 -07:00
Martin von Zweigbergk
77662c0674 readme: add "Status" section and stop saying it's not ready for use
I have been using the tool myself for 7-8 months now, and the UX has
improved substantially, so I think it's ready for use.
2021-09-08 10:40:13 -07:00
Martin von Zweigbergk
538bec22ff tutorial: clarify that rustup install nightly doesn't change the default 2021-09-01 08:08:18 -07:00
Martin von Zweigbergk
f13f15e057 cli: add jj rebase -s and make jj rebase -r rebase descendants onto parents
I think it makes sense to have a version of rebase that rebases the
descendants of the rebased commit onto the parents of the rebased
commit. Let's make `jj rebase -r` do just that. Let's also add `jj
rebase -s` (matching Mercurial's `hg rebase -s`) for rebasing a commit
and its descendants onto another commit.

Since both flavors of the command now explicitly rebase the
descendants (just to different destinations), I also made the command
not evolve orphans afterwards. That would have made sense regardless
of this commit.
2021-08-28 10:01:00 -07:00
Martin von Zweigbergk
52678237a7 cli: after cloning git repo, update to remote's HEAD 2021-08-25 21:42:32 -07:00
Martin von Zweigbergk
aeab6660d9 revsets: add branches() and tags() functions
The `branches()` function resolves to all "adds" on both local and
remote branches.
2021-08-04 12:03:13 -07:00
Martin von Zweigbergk
15132a1166 cli: replace git refs by branches and tags in log output
Now that our own branches and tags are updated when git refs are
updated and the user can use them to specify revisions, we can start
displaying them instead of the git refs. This commit adds new
`branches` and `tags` template keywords and updates the default
templates to use them instead of `git_refs`.
2021-08-04 11:53:37 -07:00
Martin von Zweigbergk
203843fc75 readme: some clarifications and minor grammatical corrections 2021-07-08 15:45:49 -07:00
Martin von Zweigbergk
443528159e conflicts: use new multi-way diff for materialized multi-way conflicts
This copies the conflict marker format I added a while ago to
Mercurial (https://phab.mercurial-scm.org/D9551), except that it uses
`+++++++` instead of `=======` for sections that are pure adds. The
reason I made that change is because we also have support for pure
removes (Mercurial never ends up in that situation because it has
exactly one remove and two adds).

This change resolves part of issue #19.
2021-06-30 12:29:20 -07:00
Martin von Zweigbergk
d34a651087 tutorial: update installation instructions to use nightly toolchain 2021-06-04 08:11:17 -07:00
Martin von Zweigbergk
fc86b3f693 tutorial: prefer change ids over commit ids 2021-06-02 13:56:16 -07:00
Martin von Zweigbergk
ae5d1a985e tutorial: delete obsolete reference to "<--" in the log output 2021-06-02 13:44:13 -07:00
Martin von Zweigbergk
4e3ac9de1b tutorial: update git change ids to use new (bit-reversed) values
I forgot to update the tutorial in commit ca1df00e05.
2021-06-02 13:42:25 -07:00
Martin von Zweigbergk
edef604c88 cli: use "@" in graph to indicate the current checkout and head operation
This both helps find the current checkout and head operation and
hopefully helps teach the user that "@" is the symbol for the working
copy. I removed the current "<--" indication from the graph (and
non-graph) log template. Hopefully the "@" is clear enough on its own,
but we may want to add back some further indication later. We'll see.
2021-05-31 10:54:00 -07:00
Martin von Zweigbergk
03ea8779df cli: make diff editor configurable
This patch adds a simple `ui.diff-editor` config, which defaults to
`meld`. This fixes issue #10.
2021-05-31 09:40:29 -07:00
Martin von Zweigbergk
38a3462d4e cli: clarify "Now at: <commit>" message as "Working copy now at: <commit>"
I considered even changing the message to "Checking out: <commit>" as
that's technically more correct (the message is printed when the
view's checkout is updated, i.e. before the working copy is
updated). However, I worried that users would find it confusing that
e.g. `jj close` would result in a "Checking out: " message, even
though that's what actually happens.
2021-05-31 09:01:59 -07:00
Martin von Zweigbergk
83c460449b cli: remove overly verbose "Leaving: <commit>" message
I remember adding that message a long time ago so the user has a trace
of working copy commit ids in the terminal output. They should be able
to get the same information from the operation log combined with
e.g. `jj st --at-op`.
2021-05-31 08:55:08 -07:00
Martin von Zweigbergk
082b34206e cli: abbreviate operation ids to 12 hex digits 2021-05-28 22:48:39 -07:00
Martin von Zweigbergk
0328381c6c docs: rewrite README to target users, not developers
The project is starting to work well enough that I think it's time
that the documentation targets users instead of VCS hackers. This
patch rewrites much of the README to describe how the features help
the user instead of describing how they work. It also adds a tutorial.
2021-05-26 15:12:20 -07:00
Martin von Zweigbergk
d42e6c77b2 project: rename project from Jujube to Jujutsu
"Jujutsu" is probably much more familiar and relatable to most
people. Also, I'm still not sure how "jujube" is supposed to be
pronounced :P
2021-05-15 10:28:40 -07:00
Martin von Zweigbergk
2879d817dd readme: some further touch-up, plus a correction about in-tree conflicts 2021-01-20 00:06:42 -08:00
Martin von Zweigbergk
7572a32077 readme: some very minor improvements 2021-01-05 22:39:11 -08:00
Erjan Kalybek
06401fc30d Fix typo 2020-12-26 12:12:24 -08:00
Martin von Zweigbergk
2d9aa08334 readme: fix two more little typos 2020-12-18 15:46:49 -08:00
Martin von Zweigbergk
9f4c3bab5e readme: drop repeated "a merge commit" 2020-12-18 14:35:12 -08:00
Martin von Zweigbergk
4f045561e6 replace placeholder README.md with real content 2020-12-14 08:41:52 -08:00
Martin von Zweigbergk
25caaa0081 Boilerplate for new Google open source project 2020-12-11 23:37:59 -08:00