Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
remote-helper: Change default push option 'sync' to 'no-sync'
◌ 0/1 checks passed ade wants to merge 3 commits into master · opened 3 months ago

To support safer defaults and prevent new users accidentally pushing sensistive repository contents, this patch changes the default behaviour of push to no-sync from sync.

The prior behaviour can be restored with either:

  • -o sync for each git push you wish to sync.
  • Setting the git config push.pushOption to sync with:
    $ git config --local push.pushOption "sync"
    
Checks in progress — 0 passed, 1 pending View logs ↗
37 files changed +171 -65 30701cc6 90ab1a1b
modified CHANGELOG.md
@@ -20,6 +20,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
  to create temporary patches.
- The `rad id` command will provide a better error message when a non-delegate
  attempts to modify the identity document.
+
- `git-remote-helper` is now safer by default, the push option `no-sync` has 
+
  replaced the existing value of `sync`. Repositories do not sync with the
+
  network on push. You can restore the old behaviour in one of two ways:
+
  1. Use `-o sync` for each `git push` you wish to sync.
+
  2. Set the git config `push.pushOption` to `sync` with:
+
      ```
+
      $ git config --local push.pushOption "sync"
+
      ```

## Fixed Bugs

modified crates/radicle-cli/examples/git/git-push-amend.md
@@ -20,7 +20,7 @@ $ git commit --amend -m "Neue Änderungen" --allow-empty -q
```

``` ~alice (stderr)
-
$ git push rad master -f
+
$ git push rad master -f -o sync
✓ Canonical reference refs/heads/master updated to target commit 9170c8795d3a78f0381a0ffafb20ea69fb0f5b6b
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
modified crates/radicle-cli/examples/git/git-push-canonical-annotated-tags.md
@@ -96,7 +96,7 @@ tag
```

``` ~alice (stderr)
-
$ git push rad --tags
+
$ git push rad --tags -o sync
✓ Canonical reference refs/tags/v1.0-hotfix updated to target tag ac51a0746a5e8311829bc481202909a1e3acc0c2
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -139,7 +139,7 @@ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential s
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-
$ git push rad master
+
$ git push rad master -o sync
```

``` ~alice
@@ -179,7 +179,7 @@ ac51a0746a5e8311829bc481202909a1e3acc0c2

``` ~bob (stderr)
$ git tag -a -m "Release 2" v2.0
-
$ git push rad --tags
+
$ git push rad --tags -o sync
warn: could not determine target for canonical reference 'refs/tags/v2.0', no object with at least 2 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 1 seed(s)
@@ -206,7 +206,7 @@ $ git tag v2.0 bob/tags/v2.0
```

``` ~alice (stderr)
-
$ git push rad --tags
+
$ git push rad --tags -o sync
✓ Canonical reference refs/tags/v2.0 updated to target tag 89f935f27a16f8ed97915ade4accab8fe48057aa
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -223,7 +223,7 @@ reference is created:

``` ~bob (stderr)
$ git tag qa/v2.1
-
$ git push rad --tags
+
$ git push rad --tags -o sync
✓ Canonical reference refs/tags/qa/v2.1 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
modified crates/radicle-cli/examples/git/git-push-canonical-lightweight-tags.md
@@ -94,7 +94,7 @@ $ git tag v1.0-hotfix
```

``` ~alice (stderr)
-
$ git push rad --tags
+
$ git push rad --tags -o sync
✓ Canonical reference refs/tags/v1.0-hotfix updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -137,7 +137,7 @@ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential s
✓ Target met: 1 seed(s)
✓ Remote alice added
✓ Remote-tracking branch alice/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
-
$ git push rad master
+
$ git push rad master -o sync
```

``` ~alice
@@ -170,7 +170,7 @@ no quorum was found for the new tag:

``` ~bob (stderr)
$ git tag v2.0
-
$ git push rad --tags
+
$ git push rad --tags -o sync
warn: could not determine target for canonical reference 'refs/tags/v2.0', no object with at least 2 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 1 seed(s)
@@ -197,7 +197,7 @@ $ git tag v2.0 bob/tags/v2.0
```

``` ~alice (stderr)
-
$ git push rad --tags
+
$ git push rad --tags -o sync
✓ Canonical reference refs/tags/v2.0 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -214,7 +214,7 @@ reference is created:

``` ~bob (stderr)
$ git tag qa/v2.1
-
$ git push rad --tags
+
$ git push rad --tags -o sync
✓ Canonical reference refs/tags/qa/v2.1 updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
modified crates/radicle-cli/examples/git/git-push-converge.md
@@ -93,7 +93,7 @@ She can then force push to update the canonical head to the new agreed upon
commit:

``` ~alice (stderr)
-
$ git push rad -f
+
$ git push rad -f -o sync
warn: could not determine target for canonical reference 'refs/heads/master', no object with at least 3 vote(s) found (threshold not met)
warn: it is recommended to find an object (either commit or tag) to agree upon
✓ Synced with 2 seed(s)
@@ -118,7 +118,7 @@ that Alice, Bob, and Eve all have this commit as part of their history it has
become the canonical `master`.

``` ~bob (stderr)
-
$ git push rad
+
$ git push rad -o sync
✓ Canonical reference refs/heads/master updated to target commit 3a75f66dd0020c9a0355cc6ec21f15de989e2001
✓ Synced with 2 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -139,7 +139,7 @@ HEAD is now at 0f9bd80 Merge remote-tracking branch 'eve/master'
```

``` ~eve (stderr)
-
$ git push rad
+
$ git push rad -o sync
✓ Canonical reference refs/heads/master updated to target commit 0f9bd8035c04b3f73f5408e73e8454879b20800b
✓ Synced with 2 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
modified crates/radicle-cli/examples/git/git-push-delete.md
@@ -9,6 +9,8 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master

``` (stderr) RAD_SOCKET=/dev/null
$ git push rad :alice/1
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 - [deleted]         alice/1
```
@@ -24,12 +26,16 @@ $ git checkout alice/2
Switched to a new branch 'alice/2'
$ git push rad HEAD:refs/patches
✓ Patch bb9b0d5b8de8d5e2a4cba45f02bd35b3e2678fbe opened
+
hint: [..]
+
hint: [..]
To [..]
 * [new reference]   HEAD -> refs/patches
```

``` (stderr) RAD_SOCKET=/dev/null
$ git push rad alice/2 -d
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 - [deleted]         alice/2
```
modified crates/radicle-cli/examples/git/git-push-diverge.md
@@ -19,7 +19,7 @@ $ rad inspect --delegates
did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (alice)
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (bob)
$ git commit -m "Third commit" --allow-empty -q
-
$ git push rad
+
$ git push rad -o sync
$ git branch -arv
  alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master f2de534 Second commit
  rad/master                                                    319a7dc Third commit
@@ -42,7 +42,7 @@ If we try to push now, we get an error with a hint, telling us that we need to
integrate Bob's changes before pushing ours:

``` ~alice (stderr)
-
$ git push rad
+
$ git push rad -o sync
warn: could not determine target commit for canonical reference 'refs/heads/master', found diverging commits 2e8758fc512cbdef298c86feddff5ba3280e94b4 and 319a7dc3b195368ded4b099f8c90bbb80addccd3, with base commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 and threshold 1
warn: it is recommended to find a commit to agree upon
✓ Synced with 1 seed(s)
@@ -63,6 +63,8 @@ f2de534 Second commit
``` ~alice RAD_SOCKET=/dev/null (stderr)
$ git push rad -f
✓ Canonical reference refs/heads/master updated to target commit f6cff86594495e9beccfeda7c20173e55c1dd9fc
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + 2e8758f...f6cff86 master -> master (forced update)
```
@@ -76,6 +78,8 @@ $ git reset --hard HEAD^ -q
``` ~alice RAD_SOCKET=/dev/null (stderr)
$ git push -f
✓ Canonical reference refs/heads/master updated to target commit 319a7dc3b195368ded4b099f8c90bbb80addccd3
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + f6cff86...319a7dc master -> master (forced update)
```
modified crates/radicle-cli/examples/git/git-push-force-with-lease.md
@@ -18,6 +18,8 @@ the last time you pushed.
$ git commit --amend -m "Neue Änderungen" --allow-empty -q
$ git push rad master --force-with-lease
✓ Canonical reference refs/heads/master updated to target commit 9170c8795d3a78f0381a0ffafb20ea69fb0f5b6b
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + fb25886...9170c87 master -> master (forced update)
```
@@ -29,6 +31,8 @@ value, to `--force-push-lease`:
$ git commit --amend -m "Noch mehr Änderungen" --allow-empty -q
$ git push rad master --force-with-lease=master
✓ Canonical reference refs/heads/master updated to target commit 1e4213811eb4ce67360e4a0222cab81ad11a7ffe
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + 9170c87...1e42138 master -> master (forced update)
```
@@ -39,6 +43,8 @@ As well as the named reference, and its expected value:
$ git commit --amend -m "Even more changes" --allow-empty -q
$ git push rad master --force-with-lease=master:1e4213811eb4ce67360e4a0222cab81ad11a7ffe
✓ Canonical reference refs/heads/master updated to target commit c4b74ef30953598852a82e0cd22b2ebb0d8d9e18
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + 1e42138...c4b74ef master -> master (forced update)
```
@@ -75,6 +81,8 @@ So, let's create a new branch:

``` (stderr)
$ git push rad master:dev --force-with-lease=dev:
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new branch]      master -> dev
```
modified crates/radicle-cli/examples/git/git-push-rollback.md
@@ -16,7 +16,7 @@ Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential s
✓ Target met: 1 seed(s)
🌱 Fetched from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
$ git commit -m "Third commit" --allow-empty -q
-
$ git push rad
+
$ git push rad -o sync
$ git branch -arv
  alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master f2de534 Second commit
  rad/master                                                    319a7dc Third commit
@@ -34,7 +34,7 @@ Fast-forward
```

``` ~alice (stderr)
-
$ git push rad
+
$ git push rad -o sync
✓ Canonical reference refs/heads/master updated to target commit 319a7dc3b195368ded4b099f8c90bbb80addccd3
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -53,7 +53,7 @@ Since the canonical head is still decidable from this commit she is allowed to
push and the new canonical head becomes the previous commit again:

``` ~alice (stderr)
-
$ git push rad -f
+
$ git push rad -f -o sync
✓ Canonical reference refs/heads/master updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
modified crates/radicle-cli/examples/git/git-push.md
@@ -6,6 +6,8 @@ $ git commit -m "Alice's commit" --allow-empty -s

``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:alice/1
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new branch]      HEAD -> alice/1
```
modified crates/radicle-cli/examples/git/git-tag.md
@@ -11,7 +11,7 @@ $ git tag v1.0 -a -m "Release v1.0"
```

``` ~alice (stderr)
-
$ git push rad v1.0
+
$ git push rad v1.0 -o sync
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new tag]         v1.0 -> v1.0
@@ -63,7 +63,7 @@ Updated tag 'v1.0' (was be18ed6)
```

``` ~alice (stderr)
-
$ git push rad v1.0 -f
+
$ git push rad v1.0 -f -o sync
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + be18ed6...9dbdebc v1.0 -> v1.0 (forced update)
modified crates/radicle-cli/examples/rad-id-threshold.md
@@ -65,6 +65,8 @@ $ git commit -v -m "Define power requirements"
``` ~alice (stderr) RAD_SOCKET=/dev/null
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit 3e674d1a1df90807e934f9ae5da2591dd6848a33
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   f2de534..3e674d1  master -> master
```
@@ -87,6 +89,8 @@ $ git commit -v -m "Add README file"
``` ~alice (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
✓ Patch b09b2aa0ee055671c811e9ad4ba73eed211ebaa3 opened
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
modified crates/radicle-cli/examples/rad-inbox.md
@@ -9,11 +9,11 @@ $ cd heartwood
$ rad issue open --title "No license file" --description "..." -q
✓ Synced with 1 seed(s)
$ git commit -m "Change copyright" --allow-empty -q
-
$ git push rad HEAD:bob/copy
+
$ git push rad HEAD:bob/copy -o sync
$ cd ..
$ cd radicle-git
$ git commit -m "Change copyright" --allow-empty -q
-
$ git push rad -o patch.message="Copyright fixes" HEAD:refs/patches
+
$ git push rad -o patch.message="Copyright fixes" HEAD:refs/patches -o sync
```

``` ~alice
modified crates/radicle-cli/examples/rad-merge-after-update.md
@@ -5,6 +5,8 @@ $ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -17,6 +19,8 @@ $ git checkout master -q
$ git merge feature/1 -q
$ git push rad master
✓ Canonical reference refs/heads/master updated to target commit 954bcdb5008447ce294a61a21d7eb87afbe7f4a6
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   f2de534..954bcdb  master -> master
```
@@ -29,6 +33,8 @@ $ git checkout feature/1 -q
$ git push -f
✓ Patch 696ec55 updated to revision [...]
✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + 20aa5dd...954bcdb feature/1 -> patches/696ec5508494692899337afe6713fe1796d0315c (forced update)
```
modified crates/radicle-cli/examples/rad-merge-no-ff.md
@@ -5,6 +5,8 @@ $ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -38,6 +40,8 @@ Finally, we push master and expect the patch to be merged.
$ git push rad master
✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
✓ Canonical reference refs/heads/master updated to target commit 737a10cfa29111afeb0d43cf3545cee386b939ec
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   f2de534..737a10c  master -> master
```
modified crates/radicle-cli/examples/rad-merge-via-push.md
@@ -8,6 +8,8 @@ $ git commit --allow-empty -m "First change"
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -19,6 +21,8 @@ $ git commit --allow-empty -m "Second change"
``` (stderr) RAD_SOCKET=/dev/null
$ git push rad HEAD:refs/patches
✓ Patch 356f73863a8920455ff6e77cd9c805d68910551b opened
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -71,6 +75,8 @@ $ git push rad master
✓ Patch 356f73863a8920455ff6e77cd9c805d68910551b merged
✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
✓ Canonical reference refs/heads/master updated to target commit d6399c71702b40bae00825b3c444478d06b4e91c
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   f2de534..d6399c7  master -> master
```
@@ -151,6 +157,8 @@ $ git reset --hard HEAD^
$ git push -f rad
! Patch 356f73863a8920455ff6e77cd9c805d68910551b reverted at revision 356f738
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + d6399c7...20aa5dd master -> master (forced update)
```
modified crates/radicle-cli/examples/rad-patch-change-base.md
@@ -15,10 +15,14 @@ $ git commit -v -m "Define power requirements"
```
``` (stderr)
$ git push rad flux-capacitor-power
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new branch]      flux-capacitor-power -> flux-capacitor-power
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -36,6 +40,8 @@ $ git commit --message "Add README, just for the fun"
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
✓ Patch 183d343ab47d7fe18baf1b24b7209ad033d7fe5c opened
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
modified crates/radicle-cli/examples/rad-patch-checkout-force.md
@@ -12,7 +12,7 @@ $ git commit -v -m "Define power requirements"
```

``` ~alice (stderr)
-
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
+
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches -o sync
✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
✓ Synced with 1 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -45,7 +45,7 @@ $ git commit --message "Add README, just for the fun"
```

``` ~alice (stderr)
-
$ git push rad -o patch.message="Add README, just for the fun"
+
$ git push rad -o patch.message="Add README, just for the fun" -o sync
✓ Patch aa45913 updated to revision 3156bed9d64d4675d6cf56612d217fc5f4e8a53a
To compare against your previous revision aa45913, run:

modified crates/radicle-cli/examples/rad-patch-checkout.md
@@ -23,6 +23,8 @@ Once the code is ready, we open (or create) a patch with our changes for the pro
``` (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -64,6 +66,8 @@ To compare against your previous revision aa45913, run:

   git range-diff f2de534[..] 3e674d1[..] 27857ec[..]

+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   3e674d1..27857ec  patch/aa45913 -> patches/aa45913e757cacd46972733bddee5472c78fa32a
```
modified crates/radicle-cli/examples/rad-patch-delete.md
@@ -9,7 +9,7 @@ $ git commit -m "Introduce license"
```

``` ~alice (stderr)
-
$ git push rad -o patch.draft -o patch.message="Define LICENSE for project" HEAD:refs/patches
+
$ git push rad -o patch.draft -o patch.message="Define LICENSE for project" HEAD:refs/patches -o sync
✓ Patch 6c61ef1716ad8a5c11e04dd7a3fec51e01fba70b drafted
✓ Synced with 2 seed(s)
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
@@ -68,7 +68,7 @@ $ git commit -am "Add MIT License"
```

``` ~alice (stderr)
-
$ git push -f
+
$ git push -f -o sync
✓ Patch 6c61ef1 updated to revision 93915b9afa94a9dc4f52f12cdf077d4613ea3eb3
To compare against your previous revision 6c61ef1, run:

modified crates/radicle-cli/examples/rad-patch-detached-head.md
@@ -29,7 +29,7 @@ Now, we can create a commit on top of this and create a patch, as usual:

``` (stderr) RAD_HINT=1
$ git commit -a -m "Add things" -q --allow-empty
-
$ git push -o patch.message="Add things #1" -o patch.message="See commits for details." rad HEAD:refs/patches
+
$ git push -o patch.message="Add things #1" -o patch.message="See commits for details." rad HEAD:refs/patches -o sync
✓ Patch 6035d2f582afbe01ff23ea87528ae523d76875b6 opened
hint: offline push, your node is not running
hint: to sync with the network, run `rad node start`
modified crates/radicle-cli/examples/rad-patch-draft.md
@@ -10,6 +10,8 @@ To open a patch in draft mode, we use the `--draft` option:
``` (stderr)
$ git push -o patch.draft -o patch.message="Nothing yet" rad HEAD:refs/patches
✓ Patch 97e18f8598237a396a1c0ac1509c89028e666c97 drafted
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
modified crates/radicle-cli/examples/rad-patch-edit.md
@@ -17,6 +17,8 @@ $ git commit --message "Add README, just for the fun"
``` (stderr)
$ git push rad -o patch.message="Add README, just for the fun" HEAD:refs/patches
✓ Patch 89f7afb1511b976482b21f6b2f39aef7f4fb88a2 opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -37,6 +39,8 @@ To compare against your previous revision 89f7afb, run:

   git range-diff f2de534[..] 03c02af[..] 8945f61[..]

+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   03c02af..8945f61  changes -> patches/89f7afb1511b976482b21f6b2f39aef7f4fb88a2
```
modified crates/radicle-cli/examples/rad-patch-fetch-1.md
@@ -7,7 +7,7 @@ $ git checkout -b alice/1 -q
$ git commit --allow-empty -m "Change #1" -q
$ git rev-parse HEAD
7461703ce0fda972df450d071d1d3702057a6352
-
$ git push rad HEAD:alice/1
+
$ git push rad HEAD:alice/1 -o sync
```

``` ~bob
modified crates/radicle-cli/examples/rad-patch-merge-draft.md
@@ -5,6 +5,8 @@ $ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push -o patch.draft rad HEAD:refs/patches
✓ Patch 8dfb4dcafc4346158c8160410dd3f2b0616ad4fe drafted
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -15,6 +17,8 @@ $ git merge feature/1
$ git push rad master
✓ Patch 8dfb4dcafc4346158c8160410dd3f2b0616ad4fe merged
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   f2de534..20aa5dd  master -> master
```
modified crates/radicle-cli/examples/rad-patch-open-explore.md
@@ -3,7 +3,7 @@ When preferred seeds are configured, opening a patch outputs the patch URL.
``` (stderr)
$ git checkout -b changes -q
$ git commit --allow-empty -q -m "Changes"
-
$ git push rad HEAD:refs/patches
+
$ git push rad HEAD:refs/patches -o sync
✓ Patch acab0ec777a97d013f30be5d5d1aec32562ecb02 opened
✓ Synced with 1 seed(s)

@@ -17,7 +17,7 @@ If we update the patch, the URL is also output.

``` (stderr)
$ git commit --amend --allow-empty -q -m "Other changes"
-
$ git push -f
+
$ git push -f -o sync
✓ Patch acab0ec updated to revision f7a830d829d0cdf398f63a32b0d5ee31f08e21ab
To compare against your previous revision acab0ec, run:

@@ -36,7 +36,7 @@ While simply pushing a commit outputs a URL to the new source tree.
``` (stderr)
$ git checkout master -q
$ git merge changes -q
-
$ git push rad master
+
$ git push rad master -o sync
✓ Patch acab0ec777a97d013f30be5d5d1aec32562ecb02 merged
✓ Canonical reference refs/heads/master updated to target commit b2b6432af93f8fe188e32d400263021b602cfec8
✓ Synced with 1 seed(s)
modified crates/radicle-cli/examples/rad-patch-pull-update.md
@@ -42,7 +42,7 @@ our fork:

``` ~bob (stderr)
$ cd heartwood
-
$ git push rad master
+
$ git push rad master -o sync
✓ Synced with 1 seed(s)
To rad://zhbMU4DUXrzB8xT6qAJh6yZ7bFMK/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
 * [new branch]      master -> master
@@ -53,7 +53,7 @@ Bob then opens a patch.
``` ~bob (stderr)
$ git checkout -b bob/feature -q
$ git commit --allow-empty -m "Bob's commit #1" -q
-
$ git push rad -o sync -o patch.message="Bob's patch" HEAD:refs/patches
+
$ git push rad -o sync -o patch.message="Bob's patch" HEAD:refs/patches -o sync
✓ Patch 55b9721ed7f6bfec38f43729e9b6631c5dc812fb opened
✓ Synced with 1 seed(s)
To rad://zhbMU4DUXrzB8xT6qAJh6yZ7bFMK/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
@@ -82,7 +82,7 @@ Bob then updates the patch.

``` ~bob (stderr)
$ git commit --allow-empty -m "Bob's commit #2" -q
-
$ git push rad -o sync -o patch.message="Updated."
+
$ git push rad -o sync -o patch.message="Updated." -o sync
✓ Patch 55b9721 updated to revision f91e056da05b2d9a58af1160c76245bc3debf7a8
To compare against your previous revision 55b9721, run:

modified crates/radicle-cli/examples/rad-patch-revert-merge.md
@@ -5,6 +5,8 @@ $ git checkout -b feature/1 -q
$ git commit --allow-empty -q -m "First change"
$ git push rad HEAD:refs/patches
✓ Patch 696ec5508494692899337afe6713fe1796d0315c opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
$ git checkout master
@@ -13,6 +15,8 @@ $ git merge feature/1
$ git push rad master
✓ Patch 696ec5508494692899337afe6713fe1796d0315c merged
✓ Canonical reference refs/heads/master updated to target commit 20aa5dde6210796c3a2f04079b42316a31d02689
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   f2de534..20aa5dd  master -> master
```
@@ -52,6 +56,8 @@ When pushing, notice that we're told our patch is reverted.
$ git push rad master --force
! Patch 696ec5508494692899337afe6713fe1796d0315c reverted at revision 696ec55
✓ Canonical reference refs/heads/master updated to target commit f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + 20aa5dd...f2de534 master -> master (forced update)
```
modified crates/radicle-cli/examples/rad-patch-update.md
@@ -7,6 +7,8 @@ $ git commit -q -m "Not a real change" --allow-empty
``` (stderr)
$ git push rad HEAD:refs/patches
✓ Patch b6a23eb08656de0ef1fcc0b5fe8820841e5cb2e5 opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
modified crates/radicle-cli/examples/rad-patch-via-push.md
@@ -9,9 +9,9 @@ Switched to a new branch 'feature/1'
$ git commit -a -m "Add things" -q --allow-empty
$ git push -o patch.message="Add things #1" -o patch.message="See commits for details." rad HEAD:refs/patches
✓ Patch 6035d2f582afbe01ff23ea87528ae523d76875b6 opened
-
hint: to update, run `git push` or `git push rad --force-with-lease HEAD:patches/6035d2f582afbe01ff23ea87528ae523d76875b6`
-
hint: offline push, your node is not running
-
hint: to sync with the network, run `rad node start`
+
hint: [..]
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -81,6 +81,8 @@ $ git checkout -b feature/2 -q master
$ git commit -a -m "Add more things" -q --allow-empty
$ git push rad HEAD:refs/patches
✓ Patch 95808913573cead52ad7b42c7b475260ec45c4b2 opened
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -119,6 +121,8 @@ To compare against your previous revision 9580891, run:

   git range-diff f2de534[..] 8b0ea80[..] 02bef3f[..]

+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   8b0ea80..02bef3f  feature/2 -> patches/95808913573cead52ad7b42c7b475260ec45c4b2
```
@@ -199,7 +203,7 @@ error: failed to push some refs to 'rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLr
hint: [..]
hint: [..]
hint: [..]
-
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+
hint: [..]
```

The push fails because it's not a fast-forward update. To remedy this, we can
@@ -212,6 +216,8 @@ To compare against your previous revision d7040c6, run:

   git range-diff f2de534[..] 02bef3f[..] 9304dbc[..]

+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 + 02bef3f...9304dbc feature/2 -> patches/95808913573cead52ad7b42c7b475260ec45c4b2 (forced update)
```
@@ -273,7 +279,9 @@ HEAD is now at 831e838 Going into detached HEAD
$ git push rad HEAD:refs/patches -o patch.branch
✓ Patch e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 opened
✓ Branch patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 created
-
hint: to update, run `git push rad patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3`
+
hint: [..]
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -291,6 +299,8 @@ To compare against your previous revision e0fd879, run:

   git range-diff [..] [..] [..]

+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   831e838..d0ff2a1  patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 -> patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3
```
@@ -302,7 +312,9 @@ $ git checkout 831e838 -q
$ git push rad HEAD:refs/patches -o patch.branch='feature/3'
✓ Patch e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3 opened
✓ Branch feature/3 created
-
hint: to update, run `git push rad feature/3`
+
hint: [..]
+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -319,6 +331,8 @@ To compare against your previous revision e0fd879, run:

   git range-diff [..] [..] [..]

+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   831e838..d0ff2a1  feature/3 -> patches/e0fd879ac0a7d3ddcf3b440d8db656f5d7cebea3
```
modified crates/radicle-cli/examples/rad-patch.md
@@ -27,6 +27,8 @@ Once the code is ready, we open (or create) a patch with our changes for the pro
``` (stderr)
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
✓ Patch aa45913e757cacd46972733bddee5472c78fa32a opened
+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
 * [new reference]   HEAD -> refs/patches
```
@@ -133,6 +135,8 @@ To compare against your previous revision aa45913, run:

   git range-diff f2de534[..] 3e674d1[..] 27857ec[..]

+
hint: [..]
+
hint: [..]
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
   3e674d1..27857ec  flux-capacitor-power -> patches/aa45913e757cacd46972733bddee5472c78fa32a
```
modified crates/radicle-cli/examples/rad-push-and-pull-patches.md
@@ -4,7 +4,7 @@ Testing pulling, fetching and the `FETCH_HEAD`.
$ git push rad
$ git checkout -b bob/1 -q
$ git commit --allow-empty -m "Changes #1" -q
-
$ git push -o patch.message="Changes" rad HEAD:refs/patches
+
$ git push -o patch.message="Changes" rad HEAD:refs/patches -o sync
```

``` ~alice
@@ -32,7 +32,7 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
``` ~alice (stderr)
$ git checkout patch/d004b67 -q
$ git commit --allow-empty -m "Changes #2" -q
-
$ git push
+
$ git push -o sync
✓ Patch d004b67 updated to revision 2eb705c3da98e05c083df15be5b1bd6856a0bd77
To compare against your previous revision d004b67, run:

@@ -45,7 +45,7 @@ To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkE

``` ~bob
$ git commit --allow-empty -m "Changes #2" -q
-
$ git push
+
$ git push -o sync
```

``` ~alice (stderr)
@@ -55,7 +55,7 @@ From rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji
 + c2aaf1c...8d5f1ba patches/d004b67355456c46de10c0d287e4a791ad1a6945 -> rad/patches/d004b67355456c46de10c0d287e4a791ad1a6945  (forced update)
$ git checkout - -q
$ git commit --allow-empty -m "Changes #3" -q
-
$ git push
+
$ git push -o sync
✓ Patch d004b67 updated to revision 7b5015a8dac188bb0d44a334aa68a51298750b07
To compare against your previous revision d004b67, run:

modified crates/radicle-cli/examples/rad-watch.md
@@ -12,7 +12,7 @@ f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
$ git commit --allow-empty -m "Minor update" -q
$ git rev-parse master
e09c4dc1b54443ceea715ea648afecdcfd1dd7d0
-
$ git push rad master
+
$ git push rad master -o sync
```

``` ~bob
modified crates/radicle-cli/examples/workflow/4-patching-contributor.md
@@ -83,6 +83,8 @@ To compare against your previous revision e4934b6, run:

   git range-diff f2de534[..] 3e674d1[..] 27857ec[..]

+
hint: the sync default recently changed from 'sync' to 'no-sync'
+
hint: you can use `-o sync` with git push or set `git config --local push.pushOption "sync"` to restore the previous behaviour
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
   3e674d1..27857ec  flux-capacitor-power -> patches/e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46
```
modified crates/radicle-cli/examples/workflow/5-patching-maintainer.md
@@ -91,7 +91,7 @@ Fast-forward
 create mode 100644 REQUIREMENTS.md
```
``` (stderr)
-
$ git push rad master
+
$ git push rad master -o sync
✓ Patch e4934b6d9dbe01ce3c7fbb5b77a80d5f1dacdc46 merged at revision 9d62420
✓ Canonical reference refs/heads/master updated to target commit f567f695d25b4e8fb63b5f5ad2a584529826e908
✓ Synced with 1 seed(s)
@@ -128,7 +128,7 @@ $ rad patch show e4934b6
To publish our new state to the network, we simply push:

```
-
$ git push
+
$ git push -o sync
```

Finally, we will close the issue that was opened for this
modified crates/radicle-remote-helper/src/main.rs
@@ -193,7 +193,7 @@ impl Branch {
#[derive(Debug, Default, Clone)]
struct Options {
    /// Don't sync after push.
-
    no_sync: bool,
+
    no_sync: Option<bool>,
    /// Sync debugging.
    sync_debug: bool,
    /// Enable hints.
@@ -404,9 +404,9 @@ fn run_loop<R: BufRead, W: Write, G: service::GitService, N: service::NodeSessio
fn push_option(args: &[&str], opts: &mut Options) -> Result<(), Error> {
    match args {
        ["hints"] => opts.hints = true,
-
        ["sync"] => opts.no_sync = false,
+
        ["sync"] => opts.no_sync = Some(false),
        ["sync.debug"] => opts.sync_debug = true,
-
        ["no-sync"] => opts.no_sync = true,
+
        ["no-sync"] => opts.no_sync = Some(true),
        ["patch.draft"] => opts.draft = true,
        ["patch.branch"] => opts.branch = Branch::MirrorUpstream,
        _ => {
modified crates/radicle-remote-helper/src/push.rs
@@ -455,21 +455,29 @@ pub(super) fn run(
            }
        }

-
        if !opts.no_sync {
-
            if profile.policies()?.is_seeding(&stored.id)? {
-
                // Connect to local node and announce refs to the network.
-
                // If our node is not running, we simply skip this step, as the
-
                // refs will be announced eventually, when the node restarts.
-
                if node.is_running() {
-
                    // Nb. allow this to fail. The push to local storage was still successful.
-
                    node.sync(stored, ok.into_values().flatten().collect(), opts, profile)
-
                        .ok();
-
                } else if hints {
-
                    hint("offline push, your node is not running");
-
                    hint("to sync with the network, run `rad node start`");
+
        match opts.no_sync {
+
            None => {
+
                hint("the sync default recently changed from 'sync' to 'no-sync'");
+
                hint("you can use `-o sync` with git push or set `git config --local push.pushOption \"sync\"` to restore the previous behaviour");
+
            }
+
            Some(no_sync) => {
+
                if !no_sync {
+
                    if profile.policies()?.is_seeding(&stored.id)? {
+
                        // Connect to local node and announce refs to the network.
+
                        // If our node is not running, we simply skip this step, as the
+
                        // refs will be announced eventually, when the node restarts.
+
                        if node.is_running() {
+
                            // Nb. allow this to fail. The push to local storage was still successful.
+
                            node.sync(stored, ok.into_values().flatten().collect(), opts, profile)
+
                                .ok();
+
                        } else if hints {
+
                            hint("offline push, your node is not running");
+
                            hint("to sync with the network, run `rad node start`");
+
                        }
+
                    } else if hints {
+
                        hint("you are not seeding this repository; skipping sync");
+
                    }
                }
-
            } else if hints {
-
                hint("you are not seeding this repository; skipping sync");
            }
        }
    }