Index: tools/common-includes.sh |
diff --git a/tools/common-includes.sh b/tools/common-includes.sh |
index 2b806caa5f44e143ebf70b7d25e55f27786b98b8..b0c20b296fdbab52ce2a1fac4aec81baa19423b9 100644 |
--- a/tools/common-includes.sh |
+++ b/tools/common-includes.sh |
@@ -180,10 +180,23 @@ the uploaded CL." |
done |
} |
+wait_for_resolving_conflicts() { |
+ echo "Applying the patch failed. Either type \"ABORT<Return>\", or \ |
+resolve the conflicts, stage the touched files with 'git add' and \ |
+type \"RESOLVED<Return>\"" |
+ unset ANSWER |
+ while [ "$ANSWER" != "RESOLVED" ] ; do |
+ [[ "$ANSWER" == "ABORT" ]] && die "Applying the patch failed." |
+ [[ -n "$ANSWER" ]] && echo "That was not 'RESOLVED' or 'ABORT'." |
+ echo -n "> " |
+ read ANSWER |
+ done |
+} |
+ |
# Takes a file containing the patch to apply as first argument. |
apply_patch() { |
patch $REVERSE_PATCH -p1 < "$1" > "$PATCH_OUTPUT_FILE" || \ |
- { cat "$PATCH_OUTPUT_FILE" && die "Applying the patch failed."; } |
+ { cat "$PATCH_OUTPUT_FILE" && wait_for_resolving_conflicts; } |
tee < "$PATCH_OUTPUT_FILE" >(grep "patching file" \ |
| awk '{print $NF}' >> "$TOUCHED_FILES_FILE") |
rm "$PATCH_OUTPUT_FILE" |