Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.

Commit

Permalink
cli: Suggest correct command for pushing
Browse files Browse the repository at this point in the history
In cases where there is an existing remote, the user has to specify the
branch name when pushing, so we update the help string to suggest that.
  • Loading branch information
cloudhead committed Jan 5, 2024

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
1 parent 5046084 commit 59c101f
Showing 3 changed files with 62 additions and 2 deletions.
42 changes: 42 additions & 0 deletions radicle-cli/examples/rad-init-with-existing-remote.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Let's try to `rad init` a repo which already has a remote tracking branch for `master`.

First we have to create a valid remote repository.

```
$ git init --bare remote
Initialized empty Git repository in [..]
```

Then we add it as a remote.

```
$ git remote add origin file://$PWD/remote
$ git push -u origin master:master
branch 'master' set up to track 'origin/master'.
$ git branch -vv
* master f2de534 [origin/master] Second commit
```

Then we initialize.

```
$ rad init --name heartwood --description "Heartwood Protocol & Stack" --no-confirm --public
Initializing public radicle 👾 project in .
✓ Project heartwood created.
Your project's Repository ID (RID) is rad:z2D6wQnKapY7dn5meBnbH2rUKNZbT.
You can show it any time by running `rad .` from this directory.
Your project will be announced to the network when you start your node.
You can start your node with `rad node start`.
To push changes, run `git push rad master`.
```

Finally we run the suggested command.

``` (stderr)
$ git push rad master
Everything up-to-date
```
4 changes: 2 additions & 2 deletions radicle-cli/src/commands/init.rs
Original file line number Diff line number Diff line change
@@ -271,7 +271,7 @@ pub fn init(options: Options, profile: &profile::Profile) -> anyhow::Result<()>
&repo,
&name,
&description,
branch,
branch.clone(),
visibility,
&signer,
&profile.storage,
@@ -304,7 +304,7 @@ pub fn init(options: Options, profile: &profile::Profile) -> anyhow::Result<()>
radicle::git::refs::workdir::branch(proj.default_branch()),
)?;
} else {
push_cmd = format!("git push {}", *radicle::rad::REMOTE_NAME);
push_cmd = format!("git push {} {branch}", *radicle::rad::REMOTE_NAME);
}

if options.setup_signing {
18 changes: 18 additions & 0 deletions radicle-cli/tests/commands.rs
Original file line number Diff line number Diff line change
@@ -146,6 +146,24 @@ fn rad_init() {
.unwrap();
}

#[test]
fn rad_init_with_existing_remote() {
let mut environment = Environment::new();
let profile = environment.profile(config::profile("alice"));
let working = tempfile::tempdir().unwrap();

// Setup a test repository.
fixtures::repository(working.path());

test(
"examples/rad-init-with-existing-remote.md",
working.path(),
Some(&profile.home),
[],
)
.unwrap();
}

#[test]
fn rad_init_no_git() {
let mut environment = Environment::new();

0 comments on commit 59c101f

Please sign in to comment.