summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Paul <seanpaul@chromium.org>2018-08-28 14:31:00 -0400
committerSean Paul <seanpaul@chromium.org>2018-08-28 15:22:37 -0400
commit2857b71d368a3ce7909bb64c60b986d9f656b07c (patch)
treecf36f05a49a9334838984d8b8811bd8d5c16e8eb
parent03203669f4006f64632def1216c83b09fbcec81e (diff)
dim: Add dim rebase command
Since -fixes and -fixes-next (to a lesser extent) are rebasing trees in drm-misc, add a dim rebase command that sanity checks the upstream and adds SoB for the committer. Changes in v2: - s/validate_upstream_branch/validate_upstream_baseline/ (Daniel) - Use check_conflicts instead of hand rolling (Daniel) Cc: Boris Brezillon <boris.brezillon@bootlin.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Sean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20180828183100.189905-1-sean@poorly.run
-rwxr-xr-xdim42
-rw-r--r--dim.rst8
2 files changed, 45 insertions, 5 deletions
diff --git a/dim b/dim
index 5040d6b046b2..3f5fdb9233f7 100755
--- a/dim
+++ b/dim
@@ -1014,12 +1014,12 @@ function dim_apply_pull
return $rv
}
-function dim_backmerge
+function validate_upstream_baseline
{
- local branch upstream patch_file
+ local branch upstream
- branch=${1:?$usage}
- upstream=${2:?$usage}
+ branch=${1}
+ upstream=${2}
cd $DIM_PREFIX/drm-tip
@@ -1041,6 +1041,16 @@ function dim_backmerge
assert_branch $branch
assert_repo_clean
+}
+
+function dim_backmerge
+{
+ local branch upstream patch_file
+
+ branch=${1:?$usage}
+ upstream=${2:?$usage}
+
+ validate_upstream_baseline $branch $upstream
git merge --rerere-autoupdate --no-commit $upstream >& /dev/null || true
@@ -1059,7 +1069,7 @@ function dim_backmerge
HERE
- if git diff | grep -q '\(<<<<<<<\|=======\|>>>>>>>\||||||||\)' ; then
+ if ! check_conflicts "$upstream" ; then
echoerr "Conflicts found while merging $upstream into $branch."
echoerr "This should only happen when git rerere gets confused"
echoerr "or if there's a manual fixup patch in drm-rerere."
@@ -1072,6 +1082,28 @@ function dim_backmerge
git commit -s
}
+function dim_rebase
+{
+ local branch upstream patch_file
+
+ branch=${1:?$usage}
+ upstream=${2:?$usage}
+
+ validate_upstream_baseline $branch $upstream
+
+ git rebase --signoff $upstream >& /dev/null || true
+ if ! check_conflicts "$upstream" ; then
+ echoerr "Conflicts found while rebasing $branch onto $upstream."
+ echoerr "Please proceed with extreme caution."
+ echoerr "Resolve the conflict and test it. Once the conflict "
+ echoerr "is resolved, commit it with: "
+ echoerr " git commit -a"
+ echoerr "And continue the rebase with: "
+ echoerr " git rebase --continue"
+ exit 1
+ fi
+}
+
function dim_add_link
{
local branch file message_id
diff --git a/dim.rst b/dim.rst
index 6d7528ce497f..4137d1be6f52 100644
--- a/dim.rst
+++ b/dim.rst
@@ -338,6 +338,14 @@ Backmerges *upstream* into *branch*, making a few sanity checks on the way. The
using **pull-request**. Alternatively it can also be a tag, which if available
should be preferred.
+rebase *branch* *upstream*
+-----------------------------
+
+Rebases *branch* onto *upstream*, making a few sanity checks on the way. The
+*upstream* we rebase onto should be the same as used for sending out pull requests
+using **pull-request**. Alternatively it can also be a tag, which if available
+should be preferred.
+
update-next
-----------
Pushes out the latest dinq to drm-intel-next and tags it. Also