cli: prevent identical revision for `rad patch update`
Prevent `rad patch update` to create an identical revision to any other revision in the patch, rather than just the latest revision. Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com> X-Clacks-Overhead: GNU Terry Pratchett
This commit is contained in:
parent
e4f06e9c9d
commit
9f9df6264e
|
|
@ -30,12 +30,16 @@ pub fn run(
|
||||||
None => storage.backend.merge_base(*target_oid, *head_oid)?,
|
None => storage.backend.merge_base(*target_oid, *head_oid)?,
|
||||||
};
|
};
|
||||||
|
|
||||||
let (_, revision) = patch.latest();
|
// N.b. we don't update if both the head and base are the same as
|
||||||
// N.b. we don't update if both the head and base are the same
|
// any previous revision
|
||||||
if revision.head() == head_oid && **revision.base() == base_oid {
|
if patch
|
||||||
|
.revisions()
|
||||||
|
.any(|(_, revision)| revision.head() == head_oid && **revision.base() == base_oid)
|
||||||
|
{
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let (_, revision) = patch.latest();
|
||||||
let message = term::patch::get_update_message(message, workdir, revision, &head_oid)?;
|
let message = term::patch::get_update_message(message, workdir, revision, &head_oid)?;
|
||||||
let signer = term::signer(profile)?;
|
let signer = term::signer(profile)?;
|
||||||
let revision = patch.update(message, base_oid, *head_oid, &signer)?;
|
let revision = patch.update(message, base_oid, *head_oid, &signer)?;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue