From 7656933d5c9ed18e5deb8e0a8633aebc714a13c5 Mon Sep 17 00:00:00 2001 From: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Thu, 4 Oct 2018 12:44:33 +0200 Subject: [PATCH] dim: Add range-diff convenience wrapper range-diff is awesome, but the interface is a bit silly. Add a bunch of shortcuts, inspired by what git diff does. v2: Add it to the developer commmands list. With this dim range-diff is useable on any git repo, not just a dim managed one. v3: Comments from Lucas: - Forward additional arguments. There's no --no-patch in upstream git, but I tested this with --no-color and --no-dual-color. Slightly a hack since detecting whether it's a branch or not became even more fun, but works in all cases. - Remove impossible "$branch" == "" check - I added a default. v4: Update docs. Cc: Lucas De Marchi <lucas.de.marchi@gmail.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- dim | 19 +++++++++++++++++++ dim.rst | 10 ++++++++++ 2 files changed, 29 insertions(+) diff --git a/dim b/dim index 72c86db..aeaea05 100755 --- a/dim +++ b/dim @@ -475,6 +475,24 @@ function dim_retip git rebase --onto $new_upstream $upstream $branch "$@" } +function dim_range_diff +{ + local branch + + branch=${1:-@\{1\}} + + if [[ $(git rev-parse $branch | wc -l) -eq 1 ]] ; then + if [[ $(git rev-parse $branch) == "$branch" ]] ; then + branch="@{1}" + else + shift || true + fi + git range-diff $branch...HEAD "$@" + else + git range-diff "$@" + fi +} + # update for-linux-next and for-linux-next-fixes branches function update_linux_next # branch next next-fixes fixes { @@ -2190,6 +2208,7 @@ function list_developer_commands "cite" "fixes" "retip" + "range-diff" "sparse" "tc" # help commands diff --git a/dim.rst b/dim.rst index b149fa3..5a093b0 100644 --- a/dim.rst +++ b/dim.rst @@ -95,6 +95,16 @@ retip [*branch*] [*git-rebase option* ...] Rebase the given local branch, current branch by default, onto drm-tip. Options after the branch will be passed to **git-rebase**. +range-diff [ *commit-ish* ] [ *git-range-diff options* ] +------------------------------------------------------------------------------------- + +Convenience wrapper around the git range-diff command which automatically +compares against HEAD if you only specify a commit-ish. In all other cases +forwards to git range-diff. Defaults to @{1}, which is very useful for reviewing +rebases. Additional options after the commit-ish will be passed to +**git-range-diff**. Anything that can't be parsed as a commit-ish will also be +forward in its entirety. + COMMANDS FOR COMMITTERS AND MAINTAINERS ======================================= -- GitLab