From 9192b33fff56205a4cabbc42c589b9b1ccd8c570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20=F0=9F=91=A8=EF=BF=BD=E2=80=8D=F0=9F=92=BB=20Coplan?= Date: Fri, 17 Feb 2023 12:13:32 -0800 Subject: [PATCH] feat(scm): Add revset aliases for `next` and `prev` (#448) Summary: feat(scm): Add revset aliases for `next` and `prev` In the same way you can `sl go top`, it seems logical to also have `sl go next`. However, instead it is `sl next`. While I normally remember to do `sl prev`, I sometimes accidentally do `sl go prev` out of habbit and get an error. Instead, let's simply add two revset aliases for `next` and `prev` to make sl more intuitive. The revset functions were added by D43383303. This change adds convenient aliases so one can use `next`, `prev` without typing `()`: next prev previous Number of steps can still be specified using the function form: next(2) prev(3) previous(4) Closes https://github.com/facebook/sapling/issues/444 Pull Request resolved: https://github.com/facebook/sapling/pull/448 Test Plan: Automated tested blocked on https://github.com/facebook/sapling/issues/447 Manually tested by running `sl go next` and `sl go prev` and verifying I ended up in the right spot. Reviewed By: muirdm Differential Revision: D43329058 Pulled By: quark-zju fbshipit-source-id: 6fa5c6e6e41971f8f15b784586176b089c5f0027 --- .../config/loader/src/builtin_static/sapling.rs | 7 +++++-- eden/scm/tests/test-movement-revset.t | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/eden/scm/lib/config/loader/src/builtin_static/sapling.rs b/eden/scm/lib/config/loader/src/builtin_static/sapling.rs index a90d7fa41e75e..fe5603da8409a 100644 --- a/eden/scm/lib/config/loader/src/builtin_static/sapling.rs +++ b/eden/scm/lib/config/loader/src/builtin_static/sapling.rs @@ -426,8 +426,11 @@ style=sl_default [revsetalias] sb(n)=first(sort(bookmark(), -rev), n) sba=sort(bookmark(), -rev) -top=heads(. ::) -bottom=first(draft() & ::.) +top=top() +bottom=bottom() +next=next() +prev=previous +previous=previous() base=last(public() & ::.) obsrelated(x)=mutrelated(x) focusedsmartlog(x)=focusedbranch(x) + draftbranch(x)^ + present(master) diff --git a/eden/scm/tests/test-movement-revset.t b/eden/scm/tests/test-movement-revset.t index 2b48d45256998..2a514fa10d879 100644 --- a/eden/scm/tests/test-movement-revset.t +++ b/eden/scm/tests/test-movement-revset.t @@ -38,6 +38,21 @@ Linear stack: $ sl log -r 'bottom()' E +With revset aliases: + + $ sl config -q --local 'revsetalias.prev=previous' 'revsetalias.previous=previous()' + + $ sl log -r prev + F + $ sl log -r 'prev(2)' + E + $ sl log -r 'previous' + F + $ sl log -r 'previous()' + F + $ sl log -r 'previous(2)' + E + Multiple choices: $ newclientrepo