cli: Allow force-push with single delegates

It's not currently possible to force-push rad/master if it's not a
rollback, even if you are the only delegate. Since there is no risk
in doing that, we allow it in this patch.
This commit is contained in:
cloudhead 2023-12-11 11:28:29 +01:00
parent 9aee9b2436
commit 8196027f35
No known key found for this signature in database
1 changed files with 6 additions and 2 deletions

View File

@ -226,11 +226,15 @@ pub fn run(
let (canonical_ref, canonical_oid) = &canonical;
// If we're trying to update the canonical head, make sure
// we don't diverge from the current head.
// we don't diverge from the current head. This only applies
// to repos with more than one delegate.
//
// Note that we *do* allow rolling back to a previous commit on the
// canonical branch.
if dst == *canonical_ref && delegates.contains(&Did::from(nid)) {
if dst == *canonical_ref
&& delegates.contains(&Did::from(nid))
&& delegates.len() > 1
{
let head = working.find_reference(src.as_str())?;
let head = head.peel_to_commit()?.id();
// Rollback is allowed and head is an ancestor of the canonical head.