diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ad6f286581..05ca28d20d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### New features +* Implement `jj git sync`. + * Templates now support the `==` and `!=` logical operators for `Boolean`, `Integer`, and `String` types. diff --git a/cli/src/commands/git/mod.rs b/cli/src/commands/git/mod.rs index f43a3e11bff..da2c783600b 100644 --- a/cli/src/commands/git/mod.rs +++ b/cli/src/commands/git/mod.rs @@ -64,7 +64,6 @@ pub enum GitCommand { Remote(RemoteCommand), #[command(subcommand, hide = true)] Submodule(GitSubmoduleCommand), - #[command(hide = true)] Sync(GitSyncArgs), } diff --git a/cli/tests/cli-reference@.md.snap b/cli/tests/cli-reference@.md.snap index e3da2f4863f..88829bc0b4d 100644 --- a/cli/tests/cli-reference@.md.snap +++ b/cli/tests/cli-reference@.md.snap @@ -59,6 +59,7 @@ This document contains the help content for the `jj` command-line program. * [`jj git remote remove`↴](#jj-git-remote-remove) * [`jj git remote rename`↴](#jj-git-remote-rename) * [`jj git remote set-url`↴](#jj-git-remote-set-url) +* [`jj git sync`↴](#jj-git-sync) * [`jj help`↴](#jj-help) * [`jj init`↴](#jj-init) * [`jj interdiff`↴](#jj-interdiff) @@ -1049,6 +1050,7 @@ For a comparison with Git, including a table of commands, see https://martinvonz * `init` — Create a new Git backed repo * `push` — Push to a Git remote * `remote` — Manage Git remotes +* `sync` — Sync the local JJ repo to specified Git remote branch(es) @@ -1263,6 +1265,28 @@ Set the URL of a Git remote +## `jj git sync` + +Sync the local JJ repo to specified Git remote branch(es). + +The sync command will first fetch from the Git remote, then rebase all local changes onto the appropriate updated heads that were fetched. + +Changes that are made empty by the rebase are dropped. + +**Usage:** `jj git sync [OPTIONS]` + +###### **Options:** + +* `-b`, `--branch ` — Fetch only some of the branches + + By default, the specified name matches exactly. Use `glob:` prefix to expand `*` as a glob. The other wildcard characters aren't supported. + + Default value: `glob:*` +* `--remote ` — The remote to fetch from (only named remotes are supported, can be repeated) +* `--all-remotes` — Fetch from all remotes + + + ## `jj help` Print this message or the help of the given subcommand(s)