diff mbox

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

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

Commit Message

Jani Nikula Oct. 22, 2015, 9:36 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.

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

Comments

Daniel Vetter Oct. 22, 2015, 9:44 a.m. UTC | #1
On Thu, Oct 22, 2015 at 12:36:57PM +0300, Jani Nikula wrote:
> 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.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  dim     | 8 +++++++-
>  dim.rst | 3 ++-
>  2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/dim b/dim
> index bd7cae828ee7..3bd5b759f8a7 100755
> --- a/dim
> +++ b/dim
> @@ -808,7 +808,13 @@ 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 branches
> +			git branch --contains $1 drm-intel-* master topic/* | sed 's/^[ \*]*//'

Shouldn't we check the remote branches instead? Since at least for me the
local -fixes branches are usually rather old ... We could sed the remote
prefix away again I guess. lgtm otherwise.
-Daniel

> +		fi
>  		;;
>  	check-patch|cp)
>  		dim_checkrange $@
> diff --git a/dim.rst b/dim.rst
> index ebbc04bc3604..a1da6e0b4621 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 branches that contain it.
>  
>  check-patch|cp [*commit-ish* [.. *commit-ish*]]
>  -----------------------------------------------
> -- 
> 2.1.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/dim b/dim
index bd7cae828ee7..3bd5b759f8a7 100755
--- a/dim
+++ b/dim
@@ -808,7 +808,13 @@  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 branches
+			git branch --contains $1 drm-intel-* master topic/* | sed 's/^[ \*]*//'
+		fi
 		;;
 	check-patch|cp)
 		dim_checkrange $@
diff --git a/dim.rst b/dim.rst
index ebbc04bc3604..a1da6e0b4621 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 branches that contain it.
 
 check-patch|cp [*commit-ish* [.. *commit-ish*]]
 -----------------------------------------------