Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
cli/fork: Deprecate
Merged lorenz opened 3 months ago

This command is confusing in name and function. Rather than creating a hard fork of a repository, with a new identity, it pushes the default branch to the local user’s namespace.

Deprecate it and add some help text.

4 files changed +14 -3 b937a938 e63c3097
modified crates/radicle-cli/examples/rad-help.md
@@ -20,7 +20,6 @@ Commands:
  config    Manage your local Radicle configuration
  debug     Write out information to help debug your Radicle node remotely
  follow    Manage node follow policies
-
  fork      Create a fork of a repository
  id        Manage repository identities
  inbox     Manage your Radicle notifications
  init      Initialize a Radicle repository
modified crates/radicle-cli/src/commands/fork.rs
@@ -4,11 +4,12 @@ use anyhow::Context as _;

use radicle::rad;

-
use crate::terminal as term;
+
use crate::{terminal as term, warning};

pub use args::Args;

pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
+
    warning::deprecated("rad fork", "git push");
    let profile = ctx.profile()?;
    let signer = profile.signer()?;
    let storage = &profile.storage;
modified crates/radicle-cli/src/commands/fork/args.rs
@@ -1,6 +1,16 @@
use radicle::identity::RepoId;

-
const ABOUT: &str = "Create a fork of a repository";
+
const ABOUT: &str = "Create a fork of a repository
+

+
This command is deprecated and will be removed.
+

+
Instead of using `rad fork`, use `git push` to push any references to
+
your own namespace of a Radicle repository. Usually
+

+
    git push rad main
+

+
would suffice to push the default branch (here named 'main').
+
";

#[derive(Debug, clap::Parser)]
#[command(about = ABOUT, disable_version_flag = true)]
modified crates/radicle-cli/src/main.rs
@@ -68,6 +68,7 @@ enum Command {
    Config(config::Args),
    Debug(debug::Args),
    Follow(follow::Args),
+
    #[command(hide = true)] // `rad fork` command is deprecated
    Fork(fork::Args),
    Id(id::Args),
    Inbox(inbox::Args),