Thread (1 message) 1 message, 1 author, 2018-11-18

Re: [PATCH v3 0/1] Fix scissors bug during merge conflict

From: Junio C Hamano <hidden>
Date: 2018-11-18 06:54:18

Denton Liu [off-list ref] writes:
quoted
I wonder if this is what you really meant to have instead:
quoted
 		else if (cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS &&
-			 whence == FROM_COMMIT)
- 			wt_status_add_cut_line(s->fp);
+			 whence == FROM_COMMIT) {
+			 if (!merge_contains_scissors)
+				wt_status_add_cut_line(s->fp);
+		}
 		else /* COMMIT_MSG_CLEANUP_SPACE, that is. */
 			status_printf(s, GIT_COLOR_NORMAL,
That is, the only behaviour change in "merge contains scissors"
mode is to omit the cut line and nothing else.
Thanks for catching this. I noticed that the originally behaviour is
buggy too: in the case where we're merging a commit and scissors are
printed from the `if (whence != FROM_COMMIT)` block, the original
behaviour would drop us into the else (COMMIT_MSG_CLEANUP_SPACE)
statement, which is undesired.
The original calls add-cut-line in the "whence != FROM_COMMIT" when
cleanup_mode is CLEANUP_SCISSORS (and then in that block it also adds
the message about committing a merge or cherry-pick).  After that,
the original does the three-arm if/else if/else cascade and we end
up showing the "lines starting with # will be kept" message.

Yeah, you read the original correctly and I agree that in that block
the right thing to do is not to say anything in CLEANUP_SCISSORS
mode.

Thanks for carefully reading the code again.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help