Commit graph

53 commits

Author SHA1 Message Date
Samuel Tardieu
6e72b1cfb0 git: add --remote option to clone command
This makes it easier to work with multiple remotes at once while
tracking the default branch of the remote used to create the local
repository:

```shell
$ jj git clone --remote upstream https://github.com/upstream-org/repo
$ cd repo
$ jj git remote add origin git@github.com:your-org/repo
$ jj config set --repo git.fetch upstream
```

In the example above, `upstream` is the repository containing the
reference source code that you might want to patch, while `origin` is
your fork where pull-request will be pushed. The branch `main@upstream`
will be tracked.
2024-09-13 18:14:57 +02:00
Philip Metzger
d9c68e08b1 everything: Rename branches to bookmarks
Jujutsu's branches do not behave like Git branches, which is a major
hurdle for people adopting it from Git. They rather behave like
Mercurial's (hg) bookmarks. 

We've had multiple discussions about it in the last ~1.5 years about this rename in the Discord, 
where multiple people agreed that this _false_ familiarity does not help anyone. Initially we were 
reluctant to do it but overtime, more and more users agreed that `bookmark` was a better for name 
the current mechanism. This may be hard break for current `jj branch` users, but it will immensly 
help Jujutsu's future, by defining it as our first own term. The `[experimental-moving-branches]` 
config option is currently left alone, to force not another large config update for
users, since the last time this happened was when `jj log -T show` was removed, which immediately 
resulted in breaking users and introduced soft deprecations.

This name change will also make it easier to introduce Topics (#3402) as _topological branches_ 
with a easier model. 

This was mostly done via LSP, ripgrep and sed and a whole bunch of manual changes either from
me being lazy or thankfully pointed out by reviewers.
2024-09-11 18:54:45 +02:00
Martin von Zweigbergk
b05593fdf5 docs: add git ls-files to command comparison table
This came up in #4323.
2024-08-22 22:30:31 -07:00
Ilya Grigoriev
46b37aca2f docs: replace jj files -> jj file list
`jj files` is now deprecated
2024-06-24 21:01:55 -07:00
Benjamin Tan
f75461efc1 rebase: add --insert-after and --insert-before options for --revisions 2024-04-29 14:19:09 +08:00
Philip Metzger
3ac61a4984 docs: Replace some mentions of jj co with jj new.
Also move some sentences away from "check out" to "create a new revision ...",
even if it isn't the phrasing we want.

Fixes #3487
2024-04-19 18:03:22 +02:00
Matthew Davidson
e4053ead64 docs: Add missing "jj" to swap rebase example
`jj rebase -r C -d A; rebase -s B -d C` is missing the second jj.

Although it would be cool if jj had syntax to chain commands like this, so I could write a "swap" alias.
2024-03-19 05:58:52 -07:00
Martin von Zweigbergk
e9655dba13 move: deprecate the command
Per discussion in
https://github.com/martinvonz/jj/discussions/2882. `jj squash` now has
all the functionality.
2024-03-11 09:25:17 -07:00
Benjamin Tan
f135e09951 Docs: Add note about jj edit to Git comparison 2024-03-03 16:23:28 +08:00
Yuya Nishihara
8d0414549b cli: unblock "jj git init --colocate" in existing Git repo directory
I'm not sure what's the conclusion in #2747, but I don't think there is a
disagreement on allowing --colocate to import existing Git repo.
2024-02-28 09:03:16 +09:00
jyn
bca905a26e document the jj equivalent of git reset --soft
i did the following things:

1. make some changes to the working copy
2. run `jj commit`
3. before i added a description, i decided i didn't want to commit yet. in git, the way to do this is to delete the contents of the editor; git sees that it is blank and aborts the commit. in jj, this doesn't work, because descriptions are allowed to be empty.

now i have the following jj state:
```
; jj log --stat
@  pokrsyvs github@jyn.dev 2024-02-06 21:48:17.000 -05:00 ddd6217f
│  (empty) (no description set)
│  0 files changed, 0 insertions(+), 0 deletions(-)
◉  lqqmzmku github@jyn.dev 2024-02-06 21:48:02.000 -05:00 HEAD@git b03bf3de
│  (no description set)
│  config/jj.toml | 2 +-
│  1 file changed, 1 insertion(+), 1 deletion(-)
◉  xqkmwvwp github@jyn.dev 2024-02-06 21:47:08.000 -05:00 master b673f97b
```
i want to undo the most recent commit, `lqqmzmku`. i'm used to doing this with `git reset --soft HEAD~`, which makes the parent `xqkmwvwp` and leaves the change to `config/jj.toml` on disk while removing it from the git history; basically `lqqmzmku` would go back to being the working copy.

i found that `jj move` does what i want, but it took a lot of trawling the options, it wasn't obvious, and i couldn't find `git reset` mentioned in the docs.
2024-02-10 08:49:03 -08:00
Austin Seipp
3f13ea39e2 cli: deprecate jj checkout
Summary: As discussed in Discord, on GitHub, and elsewhere, this change
deprecates the use of `jj checkout` and suggests users use `jj new` exclusively
instead. The verb `checkout` is a relic of a bygone era the — days of RCS
file locking, before 3-way merge — and is not a good, fitting name for the
functionality it provides.

To further drive the bit home, by default, `jj checkout` (and `jj co`) is now
hidden. This will hopefully stop new users from running into it.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Change-Id: I7a1adfc9168fce1f25cf5d4c4c313304769e41a1
2024-02-03 17:21:56 -06:00
Ilya Grigoriev
fa123bbfee docs: emphasize and clarify log revsets relevant to people coming from git
I couldn't come up with a Git analogue of `jj log`, but I think it's OK
leaving it as a TODO makes the point. Perhaps somebody can figure it
out.

Also, all the correspondences are not completely precise, so I didn't
emphasize it every single time.
2024-01-31 15:51:40 -08:00
Martin von Zweigbergk
63c4de3cf7 docs: try to clarify that jj doesn't need a staging area
Wol on lwn.net pointed out that our current description in the Git
Comparison doc for why there is no staging area can be interpreted as
saying that it's because it simplifies the CLI. It took me a while to
see that interpretation, but it makes sense to me now. This patch
tries to clarify that we have better tools than the staging area for
manipulating commits.
2024-01-22 15:47:24 -08:00
Martin von Zweigbergk
fc2b595098 git-comparison: explain why equivalent of git stash is not needed
Someone felt that our "Not needed" sounded dismissive. This patch
tries to clarify that it's the *command* (not the use case) we
consider not needed.
2024-01-21 21:13:19 -08:00
Martin von Zweigbergk
ed3c95cde6 docs: clarify that while named branches are not needed, they are supported
The "No need for branch names" can be interpreted as implying that we
don't support named branches, which is of course not true. Try to
clarify it.
2024-01-20 08:33:28 -08:00
Valentin Gatien-Baron
8783a05551 doc: suggest ripgrep as an equivalent of git grep
Sadly, ripgrep won't honor the .gitignore files in the absence of a
.git directory, so we need to pass an annoying flag (for non-colocated
repos).

That seems worth adding despite the existing suggestion, because rg is
faster, and for existing users for rg, it would teach them how to make
rg work as expected.
2024-01-12 17:01:14 -05:00
Valentin Gatien-Baron
f0dd311354 docs: add git comparison for jj workspace root
To make the jj command more discoverable.
2024-01-11 07:45:13 -05:00
Gabriel Scherer
dafc900cca git comparison: include a 'git grep' equivalent 2023-12-21 00:20:45 +01:00
Benjamin Saunders
78cdc0843a docs: add forgotten code tags 2023-11-14 14:48:44 -08:00
Benjamin Saunders
257fbe35c7 docs: Document jj backout/git revert correspondence 2023-11-13 18:10:03 -08:00
Łukasz Kurowski
e4955d29f3 git-comparison.md: show log of ancestors
This question was raised on the discord, it might be helpful for others.
2023-11-11 15:24:24 +01:00
tp-woven
a112a93c14 Small addition to index comparison
Based on https://github.com/martinvonz/jj/discussions/2068#discussioncomment-6717072
2023-08-14 13:48:46 +09:00
Glen Choo
16ef3f7edc docs: call out manual branch management
Many new users coming from Git get confused that branches don't
automatically follow commits. Call this out and give hints to the
expected workflow.
2023-08-03 11:28:00 -07:00
Martin von Zweigbergk
3f23508b5f docs: mention jj split for git commit -p use case 2023-07-31 23:26:06 +00:00
mlcui
2c7de2045c git-comparison: update git's "remove file" command 2023-07-11 15:42:45 +10:00
mlcui
2756f2f3da git-comparison: add more diff commands
`jj diff` works a bit differently to `git diff`, so add more examples of
`jj diff` using `--from`.
2023-07-11 15:42:19 +10:00
Martin von Zweigbergk
01755176c6 docs: use git switch/restore in command-equivalence table
IIUC, the consensus in the Git project is that the overloaded nature
of `git checkout` for many use cases was a mistake, and `git
switch/restore` are meant to replace it.
2023-05-07 21:48:40 -07:00
Benjamin Saunders
64fbe8aea3 docs: document equivalent to git checkout -- <paths>... 2023-05-07 09:43:40 -07:00
Ilya Grigoriev
c9706fc0d4 Rename jj touchup to jj diffedit 2022-12-21 08:15:06 -08:00
Martin von Zweigbergk
57ff990fe8 docs: describe git commit --fixup equivalent
It's probably not obvious that `jj move` can be used for the `git
commit --fixup` usecase.
2022-11-19 14:22:34 -08:00
Martin von Zweigbergk
0d1bf7cb3b cli: disable open commits by default 2022-08-26 23:34:52 -07:00
Martin von Zweigbergk
b8f59f419c docs: hyphenate "working-copy" when used as a compound modifier 2022-08-25 18:08:36 -07:00
Martin von Zweigbergk
8bc4574ee5 cli: push only branches pointing to @ by default
Since we now allow pushing open commits, we can implement support for
pushing the "current" branch by defining a "current" branch as any
branch pointing to `@`. That definition of a current/active seems to
have been the consensus in discussion #411.

Closes #246.
2022-07-13 16:23:13 -07:00
Martin von Zweigbergk
9c55d98842 cli: rename jj edit to jj touchup 2022-07-01 08:58:08 +08:00
Martin von Zweigbergk
a15192c05b docs: update to use new jj branch syntax 2022-06-09 22:24:46 -07:00
Martin von Zweigbergk
45830a0203 docs: mention jj rebase -b in git-comparison doc
I forgot to update the document in 30f5471fc3.
2022-05-14 11:10:52 -07:00
Martin von Zweigbergk
5bad272e90 docs: update stale references to -o argument deleted in 8744015f33 2022-05-01 16:33:27 -07:00
Martin von Zweigbergk
6902c703b3 docs: start describing differences compared to Git
I've surely missed a lot here, but one has to start somewhere.
2022-03-11 22:47:36 -08:00
Martin von Zweigbergk
05734138e8 docs: add cherry-picking to Git-comparison table 2022-03-11 22:47:36 -08:00
Martin von Zweigbergk
f86c3b488b docs: add jj move to Git-comparison table 2022-03-11 22:47:36 -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
9e591def26 cli: add jj show command for showing commit description and diff
This functionality is probably what I miss most from git/hg.
2021-12-17 13:28:09 -08:00
Martin von Zweigbergk
c185b395f6 revsets: swap meaning of operators ~ and - (#46)
As suggested by @arxanas, this makes `-` symmetric with `+` and `-` is
easier to type than `~`.
2021-12-12 23:02:29 -08:00
Martin von Zweigbergk
63c90c04c8 revsets: change parent/children operators to foo~/foo+ (#46) 2021-12-11 23:47:34 -08:00
Martin von Zweigbergk
813ae0276d docs: use simpler jj undo alias instead of jj op undo 2021-11-20 10:33:55 -08:00
Martin von Zweigbergk
ae3ff4e1be cli: add command aliases such as "commit" for "close"
Although "commit" isn't technically correct for what `close` does,
it's how new users think of it, so let's make it a bit easier for
them.
2021-11-10 11:11:09 -08:00
Martin von Zweigbergk
6687f98d8a cli and docs: replace "id" by more correct "ID" 2021-10-27 15:06:10 -07:00
Martin von Zweigbergk
ae7f00e7b1 cli: rename jj prune to jj abandon
The command's help text says "Abandon a revision", which I think is a
good indication that the command's name should be `abandon`. This
patch renames the command and other user-facing occurrences of the
word. The remaining occurrences should be removed when I remove
support for evolution.
2021-09-19 22:51:12 -07:00
Martin von Zweigbergk
1f2ce49e89 docs: remove unnecessary git steps in git-comparison doc
The table describes the simplified Git workflow of always using `git
commit -a`. With that workflow, you don't need to `git add` or `git
rm` to stage changes.
2021-09-12 12:01:28 -07:00