[PATCH] dim: add additional prompts for pushing merges

Jani Nikula jani.nikula at intel.com
Wed Aug 11 10:58:45 UTC 2021


It's not exactly trivial to add the smarts to properly check for pushing
backmerges, rebases, topic branches and subtree branches (such as
gvt). For a start, prompt the user with hints about what's going on.

Cc: Daniel Vetter <daniel at ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula at intel.com>

---

Untested.
---
 dim | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/dim b/dim
index 56463eb0c0a6..9fc2d78b8617 100755
--- a/dim
+++ b/dim
@@ -989,7 +989,7 @@ function checkpatch_commit_push_range
 # push.
 function dim_push_branch
 {
-	local branch remote committer_email count
+	local branch remote committer_email commit_count merge_count
 
 	branch=${1:?$usage}
 	shift
@@ -1004,9 +1004,15 @@ function dim_push_branch
 
 	# Apart from maintainers pushing merges or rebases, most patches should
 	# be pushed in small batches.
-	count=$(git rev-list --count --first-parent "$branch@{u}..$branch")
-	if [[ $count -gt 10 ]]; then
-		if ! ask_user "Pushing $count commits. Are you sure?"; then
+	commit_count=$(git rev-list --count --no-merges --first-parent "$branch@{u}..$branch")
+	merge_count=$(git rev-list --count --merges --first-parent "$branch@{u}..$branch")
+	if [[ $merge_count -gt 0 ]]; then
+		if ! ask_user "Pushing $merge_count merges and $commit_count non-merge commits. Merges should only be pushed by maintainers. Are you sure?"; then
+			echoerr "NOTE: Branch not pushed."
+			return 1
+		fi
+	elif [[ $commit_count -gt 10 ]]; then
+		if ! ask_user "Pushing $commit_count commits. Commits should be only be pushed in relatively small batches. Are you sure?"; then
 			echoerr "NOTE: Branch not pushed."
 			return 1
 		fi
-- 
2.20.1



More information about the dim-tools mailing list