[PATCH] dim: Add range-diff convenience wrapper
Daniel Vetter
daniel.vetter at ffwll.ch
Fri Oct 5 19:10:55 UTC 2018
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 at gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
---
dim | 19 +++++++++++++++++++
dim.rst | 10 ++++++++++
2 files changed, 29 insertions(+)
diff --git a/dim b/dim
index 72c86db560a7..aeaea05dac4b 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 b149fa39445e..5a093b03c24a 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
=======================================
--
2.19.0.rc2
More information about the dim-tools
mailing list