cli/fork: Deprecate

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.
This commit is contained in:
Lorenz Leutgeb 2026-01-23 14:53:23 +01:00 committed by Fintan Halpenny
parent b937a93892
commit e63c30976e
5 changed files with 19 additions and 3 deletions

View File

@ -22,6 +22,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Deprecations ## Deprecations
- The `rad fork` command was confusing, and mislead users as to what its purpose
was. Many believed it to create a hard-fork of the repository. Instead, it
pushed the default branch to the local user's namespace. The command is now
deprecated, and the user should use `git push` instead.
## 1.6.1 ## 1.6.1
## Fixed Bugs ## Fixed Bugs

View File

@ -20,7 +20,6 @@ Commands:
config Manage your local Radicle configuration config Manage your local Radicle configuration
debug Write out information to help debug your Radicle node remotely debug Write out information to help debug your Radicle node remotely
follow Manage node follow policies follow Manage node follow policies
fork Create a fork of a repository
id Manage repository identities id Manage repository identities
inbox Manage your Radicle notifications inbox Manage your Radicle notifications
init Initialize a Radicle repository init Initialize a Radicle repository

View File

@ -4,11 +4,12 @@ use anyhow::Context as _;
use radicle::rad; use radicle::rad;
use crate::terminal as term; use crate::{terminal as term, warning};
pub use args::Args; pub use args::Args;
pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> { pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
warning::deprecated("rad fork", "git push");
let profile = ctx.profile()?; let profile = ctx.profile()?;
let signer = profile.signer()?; let signer = profile.signer()?;
let storage = &profile.storage; let storage = &profile.storage;

View File

@ -1,6 +1,16 @@
use radicle::identity::RepoId; 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)] #[derive(Debug, clap::Parser)]
#[command(about = ABOUT, disable_version_flag = true)] #[command(about = ABOUT, disable_version_flag = true)]

View File

@ -68,6 +68,7 @@ enum Command {
Config(config::Args), Config(config::Args),
Debug(debug::Args), Debug(debug::Args),
Follow(follow::Args), Follow(follow::Args),
#[command(hide = true)] // `rad fork` command is deprecated
Fork(fork::Args), Fork(fork::Args),
Id(id::Args), Id(id::Args),
Inbox(inbox::Args), Inbox(inbox::Args),