rust-revset: support explicit `.` revision
authorRaphaël Gomès <rgomes@octobus.net>
Sat, 11 Sep 2021 00:09:29 +0200
changeset 48079 3da7bf75fdb2
parent 48078 ddde80830aea
child 48082 789475ef2b22
rust-revset: support explicit `.` revision This is basically the same thing as not specifying a revision, except this is done in the revset resolution function. This allows calls like `rhg cat some-file -r .` to work without falling back. Differential Revision: https://phab.mercurial-scm.org/D11402
rust/hg-core/src/revset.rs
--- a/rust/hg-core/src/revset.rs	Sat Sep 11 00:05:08 2021 +0200
+++ b/rust/hg-core/src/revset.rs	Sat Sep 11 00:09:29 2021 +0200
@@ -19,6 +19,10 @@
     let changelog = repo.changelog()?;
 
     match input {
+        "." => {
+            let p1 = repo.dirstate_parents()?.p1;
+            return Ok(changelog.revlog.rev_from_node(p1.into())?);
+        }
         "null" => return Ok(NULL_REVISION),
         _ => {}
     }