diff mbox

[maintainer-tools] dim: print branches containing commit-ish if no tag contains it

Message ID 1445508878-12948-1-git-send-email-jani.nikula@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jani Nikula Oct. 22, 2015, 10:14 a.m. UTC
dim tc is useful for checking when and where a commit has landed, so one
can decide where, for example, a fix to that commit should be queued.

If the commit is not in a tagged upstream Linux release, fall back to
printing the i915 upstream development branches that contain it.

v2: check for remote branches (Daniel)

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 dim     | 12 +++++++++++-
 dim.rst |  3 ++-
 2 files changed, 13 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/dim b/dim
index bd7cae828ee7..cdb48b9f8976 100755
--- a/dim
+++ b/dim
@@ -808,7 +808,17 @@  case "$subcommand" in
 		;;
 	tc)
 		cd $DIM_PREFIX/$DIM_DRM_INTEL
-		git tag --contains $1 | grep ^v | sort -V | head -n 1
+		tag=$(git tag --contains $1 | grep ^v | sort -V | head -n 1)
+		if [[ -n "$tag" ]]; then
+			echo "$tag"
+		else
+			# not in a tagged release, show upstream branches
+			git branch -r --contains $1 \
+			    $DIM_DRM_INTEL_REMOTE/* \
+			    $DIM_DRM_UPSTREAM_REMOTE/drm-next \
+			    $DIM_DRM_UPSTREAM_REMOTE/drm-fixes \
+			    origin/master | sed 's/^ *//'
+		fi
 		;;
 	check-patch|cp)
 		dim_checkrange $@
diff --git a/dim.rst b/dim.rst
index ebbc04bc3604..d5ec5c8128fd 100644
--- a/dim.rst
+++ b/dim.rst
@@ -174,7 +174,8 @@  Apply a patch to the i-g-t repository.
 
 tc *commit-ish*
 ---------------
-Prints the linux kernel tag which contains the supplied commit-ish
+Print the oldest Linux kernel release or -rc tag that contains the supplied
+*commit-ish*, or, if none do, print the upstream branches that contain it.
 
 check-patch|cp [*commit-ish* [.. *commit-ish*]]
 -----------------------------------------------