From: Junio C Hamano Date: Sat, 25 Jan 2020 23:57:45 +0000 (-0500) Subject: merge-recursive: use subtraction to flip stage X-Git-Tag: v2.25.2~21^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c616c2ba1c176573bd1ae7c4ec3271d1f175448;p=thirdparty%2Fgit.git merge-recursive: use subtraction to flip stage The flip_stage() helper uses a bit-flipping xor to switch between "2" and "3". While clever, this relies on a property of those two numbers that is mostly coincidence. Let's write it as a subtraction; that's more clear and would extend to other numbers if somebody copies the logic. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- diff --git a/merge-recursive.c b/merge-recursive.c index e6aedd3cab..aee1769a7a 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -1713,12 +1713,11 @@ static char *find_path_for_conflict(struct merge_options *opt, } /* - * Toggle the stage number between "ours" and "theirs" (2 and 3) by flipping - * the 1-bit. + * Toggle the stage number between "ours" and "theirs" (2 and 3). */ static inline int flip_stage(int stage) { - return stage ^ 1; + return (2 + 3) - stage; } static int handle_rename_rename_1to2(struct merge_options *opt,