Skip to content

Commit

Permalink
git sync: unhide jj git sync
Browse files Browse the repository at this point in the history
## Summary
* [X] Get branch pre-fetch heads
* [X] Build candidates from prefetch heads
* [X] Fetch from remotes
* [X] Get branch post-fetch heads
* [X] Rebase
  * [X] Build old -> new map
  * [X] transform descendants


## Details
* Add tests
* Unhide the command, now that it's complete.
* Update CHANGELOG

Issue: #1039
  • Loading branch information
essiene committed Nov 19, 2024
1 parent 2bec61f commit e9b76c3
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
1 change: 0 additions & 1 deletion cli/src/commands/git/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ pub enum GitCommand {
Remote(RemoteCommand),
#[command(subcommand, hide = true)]
Submodule(GitSubmoduleCommand),
#[command(hide = true)]
Sync(GitSyncArgs),
}

Expand Down
24 changes: 24 additions & 0 deletions cli/tests/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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 <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 <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)
Expand Down

0 comments on commit e9b76c3

Please sign in to comment.