From patchwork Sun Feb 16 16:37:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Phillip Wood X-Patchwork-Id: 13976578 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D9F4199EAF for ; Sun, 16 Feb 2025 16:37:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723837; cv=none; b=W4Y1JvqpuQH8fDUcwYSd2B4TrsPPsBe3lQ0rFl/gMK8zr34afQsiVVnnzLmIpw0Jtgptgw2F1H1gyjYqsQvieP9v8rE7k/wKf6imSyp/2m9CSZKfhGAanJeMjrJVWf7MlUdKWKgYeP82wlr0B8HQusyGMIe4OQSnV6sCcYmmrug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723837; c=relaxed/simple; bh=iB5wMfHI+J9P2YZV+NCaEmyVstCchgGsnuq7mfblivY=; h=Message-Id:In-Reply-To:References:From:Date:Subject:MIME-Version: Content-Type:To:Cc; b=OoU52o9x3rYnTssIXhz6ZrfESQWA6ZuelFCaVA/Xoy477bHbcgzFD4gnO500aR7WYP9WdFy2tcu2rxxUIocUgWJohWPQs0QhIYQmgbWbXEOQSgEy4yDYQIJ9MiibuzGfNy7CYXcA6Nb/6dstuei6s/6DBj+36zl9RzXHaljp8eo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WRfbEegq; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WRfbEegq" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-436ce2ab251so24529855e9.1 for ; Sun, 16 Feb 2025 08:37:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739723832; x=1740328632; darn=vger.kernel.org; h=cc:to:fcc:content-transfer-encoding:mime-version:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=XPqc6l0vee5Ni9OfLO4My72PUsnlMX1DvFM+AF0kAbE=; b=WRfbEegqokA977l+iQexnsG5E5Mw4xQ+lc9KkGRa7iq9r5C2YD+gdv05juroWsXhGC 9e/OQ9+AbITc2ZwiEXwH0S3mm3qECo6a9VBYCA2hk9YR1/txM29hrXUReJRVA04tOBOM MZvM9+VRsQvg4hly8emT0iZwdIBSiGcBmYPHS2RgydHNZdPJ9XVnJXuLi1u6wcplQWxb TNUE+QYTGIfgl7/+1lqEvSqYyA8UdWvvbKhU5PQj6kEk82a+Efi2nMphEmBaeOdpDV5l ZK7EbmL8/SUyQ46/mMoMfDl+fnm980IxOvchLYtIUxkInFpm4lnHPaYuGTt/4mLg4bYe UIOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739723832; x=1740328632; h=cc:to:fcc:content-transfer-encoding:mime-version:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XPqc6l0vee5Ni9OfLO4My72PUsnlMX1DvFM+AF0kAbE=; b=mXwlF9nsl8NXPnmaHYo4h5um59w5bMqjbyw1R5YDZhPqQrLqoLHTNoxcF0iKKGQaZe +t5EeUdH9y5QPAfCz3X9XhTHdHgvX7QQIWhi0S9aYwE2KYdoB8JCrd/M0SThoQc0Upe6 jxBCzaL+mHVwhr6UtXNkuVgt1Y0Em+6z8qIaVdAL2+Bkeo+wL6KbedP9dbAbcfU34B7U fX/ruVw78OKbk5EIgYSfpvu9F+64E8FLp8TP/tPRNUmag2En8YOo/cVsQm1NXw0qd7Jl B/HkYsqhikhBwUMdbcGcOpTivHPdu0mSfWBoPvhFf/8+9tAW6/tStuabqa8nYUI9PeYH aaaA== X-Gm-Message-State: AOJu0YwpGomLiwFe+acXhXM4GMbisHTCwZEo3mxWKvon890FQQ2KkJ+b xlhrotw64QJnQz3mNq8NEWbZT8qwNcnpHQ4lEPbji5E8NK8DcPgtsKvO9w== X-Gm-Gg: ASbGncvp0LgRjCiab7u07sVZl0HuJTYkXTj+y/XZBPSRw1kaIql3I8SEeIddWj3FHq7 16Ini9VRhwMMqEXdGFWJXp5q9X88Eu0O0jkjI+ny69J12YWIOBiB22S5TWod2wT8D/oG/ImcF8d MEv3SeJwfvyTBV2c7zntD8O5mu+Sc5xiVNSRAoeN83xU1h+6FDUklN6XYJFDcvwzqHyUFWRKlJK VsMZyz3mJGNFDAXYjAdj6kxfdWrobEA3s34eCHPyiy8fOxNCKTLGRX5jVyox/2pd1X1Yb+lUvA4 r+rKWeuSVGaR5GGd X-Google-Smtp-Source: AGHT+IEx6lk6fUiax+A6RJ179KR7olaW0Yq2OdPH3lAo1xBNUj/BgnkogLMaV9O2GML12Qj2GMdSQg== X-Received: by 2002:a05:600c:1c21:b0:439:4345:3dc4 with SMTP id 5b1f17b1804b1-4396e6c0778mr53774585e9.9.1739723832052; Sun, 16 Feb 2025 08:37:12 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-439618102f1sm97153145e9.19.2025.02.16.08.37.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 08:37:11 -0800 (PST) Message-Id: <3b3179785098580f3336bb24bdbaf0aa1366bfcd.1739723830.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Sun, 16 Feb 2025 16:37:05 +0000 Subject: [PATCH 1/5] merge-tree --stdin: flush stdout to avoid deadlock Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Fcc: Sent To: git@vger.kernel.org Cc: Elijah Newren , Phillip Wood , Phillip Wood From: Phillip Wood From: Phillip Wood If a process tries to read the output from "git merge-tree --stdin" before it closes merge-tree's stdin then it deadlocks. This happens because merge-tree does not flush its output before trying to read another line of input and means that it is not possible to cherry-pick a sequence of commits using "git merge-tree --stdin". Fix this by calling maybe_flush_or_die() before trying to read the next line of input. Flushing the output after each merge does not seem to affect the performance, any difference is lost in the noise even after increasing the number of runs. $ git rev-list --merges --parents -n100 origin/master | sed 's/^[^ ]* //' >/tmp/merges $ hyperfine -L flush 0,1 --warmup 1 --runs 30 \ 'GIT_FLUSH={flush} ./git merge-tree --stdin --- builtin/merge-tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index 9a6c8b4e4cf..57f4340faba 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -18,6 +18,7 @@ #include "tree.h" #include "config.h" #include "strvec.h" +#include "write-or-die.h" static int line_termination = '\n'; @@ -623,6 +624,7 @@ int cmd_merge_tree(int argc, } else { die(_("malformed input line: '%s'."), buf.buf); } + maybe_flush_or_die(stdout, "stdout"); if (result < 0) die(_("merging cannot continue; got unclean result of %d"), result); From patchwork Sun Feb 16 16:37:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phillip Wood X-Patchwork-Id: 13976577 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 365BC4F5E0 for ; Sun, 16 Feb 2025 16:37:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723836; cv=none; b=Zw7DV8NdlykOdsngCwbHqq+rS0Ne3aJehbNa6rlFMWl3x8kBVnIPPs7OmpxYR3OR1KO9vyW7Z7pMdnIcpMwR5K0/DHBEIJvxhn59fjnkFgt3w/w1yV1SzzGp1DRe+RULoH1BvhEYdLIE9goMOJgBDglRgE5pfQlCOikNHfQGzLs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723836; c=relaxed/simple; bh=LOpj9OoeAubJRfM5mVlpfxgtw0/Ctt6E/pVFFH1BxSM=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=eon3OEbdAJcoxqNuWudPYFZ8TOcLqKD1vRtAj4QcqXNHO1zutIl2ergOhpXzP0aZ0R5uP9t4uplxtfqDuiBM4OXK8LNSXbONbprIYQzqU8bjJNFlgAW0sXGoJLOBxcaUIOS5tfvG1qKxxlxK1yRZd+VuapvK0kGYfTPCbS7P1CY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=iY8HuFyn; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iY8HuFyn" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-43690d4605dso22169045e9.0 for ; Sun, 16 Feb 2025 08:37:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739723833; x=1740328633; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=quP5i9PEUhW2MNa4IZqC/iSl94X3H4Q3Yn9PMldR4G0=; b=iY8HuFyniEbSvMHz7z0C9eqJqPYNxuk7pB14iUhV7ZqnrUJcpASQfTrVxEXoxhfY3C dUNAuLD5uWUpC538vKM9fR18utl1Mu8jbcDnY4xt+G8p6VqmN9QTvcp5eZB9BI5Jbzty hceI+AfX7XlASWdERg/4//zRjB6R0ygv/8zpu6iUNNjplnMwsS1N4ddfhl75QnZEc9ni XMbJXyQ+o9yPOzq4Lv4F63jZhFqsEBYdt0XO4PaE8HB2ExZVzXcFF36Swoab4+ZfFfl7 qFXwKh9ZbUdkPepAPDysCUvT2dWaR9P+PmsJmuuNOM/uGifxsU6VYvu9L07TV0YbsmrA OnCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739723833; x=1740328633; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=quP5i9PEUhW2MNa4IZqC/iSl94X3H4Q3Yn9PMldR4G0=; b=JgdvBG1FzMh1um8pTb4ULVffZP8e2KAMu4Q2svqD1S1GlYL1IgQoYsqUTWNACAKyyL dTsaZeqWcnIWM82QRU8uycUk6vw44eYYIGkGas4z75NIhvipX9SsX6UhgFDFQcAy0Ml6 G+bzm8DvDB5vK69tgZ9zNVNv1kmlrRYortvTPg4rabJZTyHOIczuk2HmKBnBf9dwuggz GlwSqsm95QMp9PJ8XI7iyOaHNiGQhUwjiDv913v7YdazDxYahn/WH+LvxwEJC+5pccwB 3e7Vjx+gnTub64YV9vHrCU8c5mi9FMrYCH2ZxQD6njh4fPPz7LL+W256oyCK91Kh9EiU BS2Q== X-Gm-Message-State: AOJu0Yw4r+89L7LbNQreRmXvsF/0wNEhwUk/YzJgnUkSylgm4R/B+LXm Q0xTJutMgfCt25O//6MA/9iIejFMBQfV4cMM+h773aSw1Cv/F86EFnw09Q== X-Gm-Gg: ASbGncv4MNM1NcJhLJBZ27HEQpn5BxF0X9vIMo+6BQFAhhuEDOMM7zY/7hcbRgWsb7C dgfNMXtlc0ZCMbBNzHnY9Fm8bZSUIUztQdHXIZjIp/evh9W6N3WZ4q+npxHGieGjq1mdhn0bBjj w5Jy8eGxRCDAK3k19FBas5s9gh961Lr8NHFlSerAfBHICLo7GDRm+X+nSPXEKzCmrsR42IoCtvD 6NqxsHO0AsGR4I+RkJu3O3f4jQZmBOp1bZ6C3u8wqGlIFrDMdd0jNrpDRknGzB//h0X2nEcXsv/ R2VmaE6fIN04o2ZL X-Google-Smtp-Source: AGHT+IEDrVMNTBlGY6/5JpXYkXdaOBYeFhkq3hX4wupTbBx16ShWQM68jaMIds6ohy4PEvU4ixHqUw== X-Received: by 2002:a05:600c:3106:b0:439:4cef:3510 with SMTP id 5b1f17b1804b1-4396e6eb285mr62392795e9.10.1739723832713; Sun, 16 Feb 2025 08:37:12 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4398148f4fcsm13140175e9.7.2025.02.16.08.37.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 08:37:12 -0800 (PST) Message-Id: <16fec87766f97d46a337f5c514f1aec0668546ec.1739723830.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Sun, 16 Feb 2025 16:37:06 +0000 Subject: [PATCH 2/5] merge-tree: remove redundant code Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Elijah Newren , Phillip Wood , Phillip Wood From: Phillip Wood From: Phillip Wood real_merge() only ever returns "0" or "1" as it dies if the merge status is less than zero. Therefore the check for "result < 0" is redundant and the result variable is not needed. Signed-off-by: Phillip Wood --- builtin/merge-tree.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index 57f4340faba..3c73482f2b0 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -601,7 +601,6 @@ int cmd_merge_tree(int argc, line_termination = '\0'; while (strbuf_getline_lf(&buf, stdin) != EOF) { struct strbuf **split; - int result; const char *input_merge_base = NULL; split = strbuf_split(&buf, ' '); @@ -618,16 +617,14 @@ int cmd_merge_tree(int argc, if (input_merge_base && split[2] && split[3] && !split[4]) { strbuf_rtrim(split[2]); strbuf_rtrim(split[3]); - result = real_merge(&o, input_merge_base, split[2]->buf, split[3]->buf, prefix); + real_merge(&o, input_merge_base, split[2]->buf, split[3]->buf, prefix); } else if (!input_merge_base && !split[2]) { - result = real_merge(&o, NULL, split[0]->buf, split[1]->buf, prefix); + real_merge(&o, NULL, split[0]->buf, split[1]->buf, prefix); } else { die(_("malformed input line: '%s'."), buf.buf); } maybe_flush_or_die(stdout, "stdout"); - if (result < 0) - die(_("merging cannot continue; got unclean result of %d"), result); strbuf_list_free(split); } strbuf_release(&buf); From patchwork Sun Feb 16 16:37:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phillip Wood X-Patchwork-Id: 13976581 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AFC319D090 for ; Sun, 16 Feb 2025 16:37:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723839; cv=none; b=IyCeAmayRd07YaOSEour1mDKyp914euKIy7kYmhEZDcgt/qlY74UAJkN7mrxz6OzI/LPze3GYSPDrV+6MXAAhIEKjtsfcuqu1/dXATzxin45Va4Z2HpTv4yTVeSHam8+4E62u+wf43q4rdnbTV4TBU5r5yDDb52lPgyQDA9W7XA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723839; c=relaxed/simple; bh=fsb00xLpOxRrgT/DgrF+Cf4vGKMmdw1Ft/tXfKOD7cs=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=dIfbcehbSeLQjMDrk/sdsUypPHlFEnuVtg+O8O7Dn3z91MCuXlewb4JmvPT7JGt23C1rVSTJrUYcxqXv/x3BX9Yc+0Zao0D9xuGg3Enbc3lawgxHCg8VgOiye/TnBRDUkZqEUWTcb6eCrGwHnu/VqzImEIPbmAJnWueiVirrnHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BDQBO3Ob; arc=none smtp.client-ip=209.85.221.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BDQBO3Ob" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-38f2b7ce319so1876955f8f.2 for ; Sun, 16 Feb 2025 08:37:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739723834; x=1740328634; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=nykryX9gYlil/AYXBT+DOOFcMiqRnFeK+MsOWuNjDGI=; b=BDQBO3ObabN3j+szd3B73ZHxczEeajhPcNiIVLq1XeOS9AZIui/Syws3/Fgc6yaE6S DASE/cfRkyep+QhXsVWyeoHWNNfXu1cYEvaYK0tFICTRCmWXX/Sa+7u7GCWj5itTcWsI zFS8BCsYagQ4JBSzByiN3p6B8aitOgDEHgqW9ddue4AXs6FK8kKb8QMh2IYbRxgAOEwI zvWSrl+x87BFjjAbZXdZPd3qeLxGZdNFFqckVbZh175BQjTk+6f7Gw/6vQhpFKAIIrN6 Ws1NIQZMC6gPLA4549hJv6QMnJR+gfEFWnCXVE7TZNaLnLOz/rx3TNcFZPVWlRAo1oZa Jxtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739723834; x=1740328634; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nykryX9gYlil/AYXBT+DOOFcMiqRnFeK+MsOWuNjDGI=; b=UKZslsjg6XNj6d5Zmx6wzKtLO7NxijSynC46/1jl5aYU8zJe0WOHQLEmL41xaYvMN5 cLn/Bz4x/S2UVqvLXqyJvvUPkdbu1usHdVNaTLjfv9iknQh0iXmihhM4/IaNfZWrS70m RAZQ0n9KByO0tNddgMQODQ0DQ8khTcVsWEhrbEwV3jH6BbkapRoYAVeOr4Nw+ll6Gumu 9TLeSjKUObDRYJcFeiZltcF1XZ60cTrVwS24c1qimLMRJfkryVklcS4fmMLjFZ4juDQT 5czZ6AoRVBsMYeP3dsHm8TpG9E6mNEVrRtWb2qy4JOUk8Op4V7bf9MdvmPp7BWECqCMt E+jA== X-Gm-Message-State: AOJu0YwjvhPh7wGlsVlkPb0uJD2sNgtM/nL24yCaAM6J9dEGG2o5V64j /0iGS0dJTXNo1Qw2nOHfAb21rJlTz6Li51CipLtIT37K7dISAwvvvRKUVw== X-Gm-Gg: ASbGncvs7sh0uIpOD18GcqpsO9+LFj9P/xupmZUdhp66FoGS2/0LzfJAi3HO5M4i55R nNjhlPw//4DmWrwb/SoWAP0G50/h3HStLIJ24pj83VMcDnb5hg5RCuP8+gOCk0XzE2UsJAbiZGE wmhyyAvC5j/J8nqik2J27ghcHjjjEK3bF35Kger0AyZSQuhG60N3RSL0G2S+txDgTGTIsZVBM3x liUCoH1N3s+v5uXVeZLp1K/wFOP3X9GP4yVWa3dqzExxTed9zV8ERaceQKIhdEqVdVBT2ikFlDH eLQAIoQaoww+Oiiv X-Google-Smtp-Source: AGHT+IEkbFyTtcOPGUTxVgKZ9HE+hNIOPZsUWqD02GrLDEUkPL2cU6Svyt4dRfo6wGlQPAlGs2p2EA== X-Received: by 2002:a5d:4c82:0:b0:38d:dffc:c144 with SMTP id ffacd0b85a97d-38f33f5be49mr5377145f8f.55.1739723834043; Sun, 16 Feb 2025 08:37:14 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43983264ef8sm9712515e9.4.2025.02.16.08.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 08:37:13 -0800 (PST) Message-Id: In-Reply-To: References: Date: Sun, 16 Feb 2025 16:37:07 +0000 Subject: [PATCH 3/5] merge-tree: only use basic merge config Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Elijah Newren , Phillip Wood , Phillip Wood From: Phillip Wood From: Phillip Wood Commit 9c93ba4d0ae (merge-recursive: honor diff.algorithm, 2024-07-13) replaced init_merge_options() with init_basic_merge_config() for use in plumbing commands and init_ui_merge_config() for use in porcelain commands. As "git merge-tree" is a plumbing command it should call init_basic_merge_config() rather than init_ui_merge_config(). The merge ort machinery ignores "diff.algorithm" so the behavior is unchanged by this commit but it future proofs us against any future changes to init_ui_merge_config(). Signed-off-by: Phillip Wood --- builtin/merge-tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index 3c73482f2b0..3ec7127b3a6 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -576,7 +576,7 @@ int cmd_merge_tree(int argc, }; /* Init merge options */ - init_ui_merge_options(&o.merge_options, the_repository); + init_basic_merge_options(&o.merge_options, the_repository); /* Parse arguments */ original_argc = argc - 1; /* ignoring argv[0] */ From patchwork Sun Feb 16 16:37:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phillip Wood X-Patchwork-Id: 13976580 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2758C19D083 for ; Sun, 16 Feb 2025 16:37:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723839; cv=none; b=gGOxhePOMtlYRMq5KBRe6Zr/xEqJsyrviOjn7urVAFAXVVpyXZ4ytCQWWwfPkWNovTnjlwJbm+FaDmJgLsFAZOs97ireFqUUnJIEr0OUNm3/RZa2/hYyCaOSWEuFbLZWLQKM/nGdPdtoRzPJJ7amCLMi7OUFo60cBBJsuCuHMdk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723839; c=relaxed/simple; bh=27gytcY1iCgQodLcrldIKIbF14AesUFaoltzye8Bq/M=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=fbVzw9oiZRzyuj6ZPpBUjpIx2YoKWiiDH3IBvl7drhCPf6QDI9wbiw+vgl/a9KZdcDwG4+pnbsw0XNI1etW61lA5G4iLDzsBJ3FvS4eBrJlGZwMrQPlDaGPVUWwSZ8eYYG6gg+BUkXEQnFMthO3Px1EuSOlPPPEXhaYTUThdpKM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SrTlplo0; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SrTlplo0" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-4395dddb07dso37717725e9.2 for ; Sun, 16 Feb 2025 08:37:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739723835; x=1740328635; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=wOJwhIyFoZwHfX9r8sLv4CLLdBHhe33cH5JIcOQ4Ffw=; b=SrTlplo0J3VQaWcgwkWb9/R0wYdzWnyBNKA61/TdfdBI7GwN1GUXXn+M/JNFBJIcnI EeU+gllos8yseYAQ1RjpdiJsxAeTb1IWHLLLZZa321PfKCkNPrbulU/ZQxgGiuZfzjv+ ZvjXbYXM7+GDKUiQ+K4BQqgeFz28uoKUudmJhKQQ6upKAXRBbtFfPbiTExi16lBCya7P h64LtLLBxJMyL2d/Bh1vdJZtzXWH2Aq8jV5Lyu6Ju2f7uDk3lDWJzZ+VOa3Rgv0ry78w kglRndlgtuxB3Hhu3NqOprmt4o8aSh57zkR7gztp0+BsX2ehsgX3ucXqsfdmZCEYlOtO Ib8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739723835; x=1740328635; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wOJwhIyFoZwHfX9r8sLv4CLLdBHhe33cH5JIcOQ4Ffw=; b=mtMUpBa4m5sP/5kqCs8yxUBNzAygMx3fM8np/j8W8aF8qikJXG5jvM04gvxwf38XyK VbUmipKQQ8aiAKmOhjMOP8kndtc6dLbb1dZeuMocNlprFYHkFimYxW+H5dXMWF7yH2iD Y/bcg8zJ9qkHYQXZfZWemMriR70kJJht2yFihi+6KQY4P7jGrZH7zwIBjmnVRyFy78ut mvamckOdzi9yvg1XiQGhwjLUedq37gw6oC3tT4XBdUEWm34M8Cw/AdQpK94ok9D2ELze 3Tj2+T6zgcOQLiI6vzdThN8UIobCIxVYrzlt0MqawVmnve4HvsdZpnKlf8GsPNXTSPL8 xSBg== X-Gm-Message-State: AOJu0YyAMZxhLJPCpBFspqC1ZvQUNpfacEP1seKSksxZo9bZPJbhL+94 vncj6b0bUEIBSIwwh6c07snfum8HUXG0+qKCNJDurHq0CDvBBzfpr41WZA== X-Gm-Gg: ASbGncvUxxdtLwQ4b/+D1AUNNRZ5MD6VRq8QkHq3dSvdYlgr54k7+BQgJh2kPPf6Qry +GPQrERpZ/WLJVzbEncjSAfbsu4zt0PmdnJY5nW1X9bwz8wCSI894CDVzzlofVUiZ/ckyu+8lV0 mzZ7V5dR7/At3KSE3DMElKferib6L3GioJNOhxd/TLSR41uLvyLrzYhI6FTuPC9JZjyo8LGWUwN jxDxFMoJh6eTwjjR4Srm8K1cml0MTWZGJqU73wVt6TecbA4tFnFhpqrrWHWMNJGAA27lY8T5zl3 bOJvkOOKX8tG+pMs X-Google-Smtp-Source: AGHT+IGOg2jDn3Jm8tHK5wCuqvDZVIAomphKxWqTctxXTIg1dZgEe6Z6oJjBde90h5W5O0wxO5wNiQ== X-Received: by 2002:a5d:5a4c:0:b0:38f:2289:90f1 with SMTP id ffacd0b85a97d-38f33f4726cmr5586911f8f.29.1739723834969; Sun, 16 Feb 2025 08:37:14 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f258cccd3sm9976351f8f.23.2025.02.16.08.37.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 08:37:14 -0800 (PST) Message-Id: <4c4168506346fa3eed3d01445980044bce6c14ab.1739723830.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Sun, 16 Feb 2025 16:37:08 +0000 Subject: [PATCH 4/5] merge-tree: improve docs for --stdin Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Elijah Newren , Phillip Wood , Phillip Wood From: Phillip Wood From: Phillip Wood Add a section for --stdin in the list of options and document that it implies -z so readers know how to parse the output. Also correct the merge status documentation for --stdin as if the status is less than zero "git merge-tree" dies before printing it. Signed-off-by: Phillip Wood --- Documentation/git-merge-tree.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/git-merge-tree.txt b/Documentation/git-merge-tree.txt index 0b6a8a19b1f..efb16b4f27d 100644 --- a/Documentation/git-merge-tree.txt +++ b/Documentation/git-merge-tree.txt @@ -40,6 +40,11 @@ After the merge completes, a new toplevel tree object is created. See OPTIONS ------- +--stdin:: + Read the commits to merge from the standard input rather than + the command-line. See <> below for more + information. Implies `-z`. + -z:: Do not quote filenames in the section, and end each filename with a NUL character rather than @@ -116,8 +121,6 @@ This is an integer status followed by a NUL character. The integer status is: 0: merge had conflicts 1: merge was clean - <0: something prevented the merge from running (e.g. access to repository - objects denied by filesystem) [[OIDTLT]] OID of toplevel tree @@ -235,6 +238,7 @@ with linkgit:git-merge[1]: * any messages that would have been printed to stdout (the <>) +[[INPUT]] INPUT FORMAT ------------ 'git merge-tree --stdin' input format is fully text based. Each line From patchwork Sun Feb 16 16:37:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phillip Wood X-Patchwork-Id: 13976579 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D703519CCF5 for ; Sun, 16 Feb 2025 16:37:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723839; cv=none; b=bzaLxINyf+E6bHqaAflksPDEk7ZZ8r7poTsXKB8UFUTtipMH+ydi2JhA55TJPkwbSw22uus9qptPKD/ztSmdOXP0ZT+qHn5pAfWXud+NE+K32IE6e+TykvdkT1mqt1ggalDJ56+XaQ/a/g3lnZG4uNd8OQiIC7pDicL/EKbSrkU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739723839; c=relaxed/simple; bh=+S1zg5XbCyQ7711DWFK4Erle4f9KxWiAuUlp3bpaVVM=; h=Message-Id:In-Reply-To:References:From:Date:Subject:Content-Type: MIME-Version:To:Cc; b=rYucKocUMqL+VJqFF4tYx9VFUyHPwBLS/Oour/bR6NUGI20xkOEGRdR86qpX4mqiFdTf07IqiJkQNpz97kD5cAW6imqe2M1F3zTVdCMUMg4KBFP1zNCVz8MleKfqTMAShq3+ve3L+8EN9l+IwP0NSFewk4YLVKWJpIxD0XOEOoI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=AIvYVdy0; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AIvYVdy0" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43971025798so5240645e9.1 for ; Sun, 16 Feb 2025 08:37:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739723836; x=1740328636; darn=vger.kernel.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:from:to:cc:subject:date :message-id:reply-to; bh=a7FtHLrzUWo+GJfYTEfGjK8nJID5aIuC0/8aOGD2Gy4=; b=AIvYVdy07v+zMvTzE3OJknbPyxDIaQxDa4YpZ/hmxYr+htiQFzgdf/sfIjlfieVO4X k/t9Gsvw5Rshbz6aJT0jZGVc3pvheA69MR77h+0nDjJ24q0z1SdASWBuA+hmDbrKaqtC ev3+rMaFJXhjZKWE+faZU6/Pi02YOA/ShMLZo693mNL+KMuOX8HYrhip77ndQzd4WaFm 5NA6wL9LNRdlTBFwyvds2cpAWjCbU7578M/BWARNn6KlVYkAY7E+c+zzqBxuuaUgywBT TSGNr2FESbq6MXgfK8MPBJ3SU8iYJwC+Y76b+hi7GeKucmcOEZxV/l/QV3LCtAsUdPl6 iy4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739723836; x=1740328636; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date:from :references:in-reply-to:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a7FtHLrzUWo+GJfYTEfGjK8nJID5aIuC0/8aOGD2Gy4=; b=g3yyyqPtnRJxMWMjd5NUStKb+5ozBiNDSsV4YJQaisfYlV5F/Vn0hwjCCc62ZRXJLW 7zwH7+CvOk8XFWhSgT9GeSRQ2i9LAes63IrusV3YXLP4HOcIR69Xd9jEWzXw2D9wcH4p QCwxL6w7Ylow7Q/filSTfMohHXoX8JpTiU9hId8PKoaAKGPgSOBt5VQGwAFvVPrs1Fxl cFJpFHjQ1vUVT66b6EsXO1wwpigcTSMmrm202MgxZWY1D1lK04H5CTFg5ZMPApMObs7E 33Qw4lH6jpMcn8d/Uk0tuvaD8TfyXjPZSnW6mnGctUkK/Tr6pUUulz1HcCAOwJir6wJ1 IHwQ== X-Gm-Message-State: AOJu0Ywxs61y9gGFHRS62kxd1/uqc+g/IziW2FsbBS//5YEltpvM4oW5 krKAZ7AnSLsmOfqYSvEh+1d2sU3j/Z1leqRs0Iy5Uk6GQk2SUhjTpXLCRg== X-Gm-Gg: ASbGncvWelLb8YKonFoYkM5KhzUPTcuqqnyQFqF4GU0mEu8Bh49nf4Oks/21kAdV7u+ BDqxjGKgnYuyRy+rFqLZ+K02x5RSVk8AfaMjcLyoW79Oc/GlAkVdnonkqiR0UC45GhIlkHZqlTI q7Z8l31korcQfZxzdN8UtXhFPi8SID6MhMRC0L4CCv/mEvZswO6ok2b6FEw28A6m0mx4E5JzqP3 7WBc82r+Ydr9yla2LghZQ7EELgGpxOVOKjmT9MPsa+Me7GKP3Nu9UgLAKIrEJXBaexEe6XVo9i4 irQfMJEnhGJAYsy6 X-Google-Smtp-Source: AGHT+IFeavdtdM4q6azxZIdJ5SMJY8LA2wr51ROkRyJs50FjAXVkFzqj1+VFe3jTKqiCQZGzTe+s9A== X-Received: by 2002:a05:600c:1c28:b0:439:42c6:f11f with SMTP id 5b1f17b1804b1-4396e6ab033mr63830295e9.4.1739723835914; Sun, 16 Feb 2025 08:37:15 -0800 (PST) Received: from [127.0.0.1] ([13.74.141.28]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4395a06d22csm129754885e9.22.2025.02.16.08.37.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 08:37:15 -0800 (PST) Message-Id: <89722894c875bc0208945c036700dba74cc0068f.1739723830.git.gitgitgadget@gmail.com> In-Reply-To: References: Date: Sun, 16 Feb 2025 16:37:09 +0000 Subject: [PATCH 5/5] merge-tree: fix link formatting in html docs Fcc: Sent Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To: git@vger.kernel.org Cc: Elijah Newren , Phillip Wood , Phillip Wood From: Phillip Wood From: Phillip Wood In the html documentation the link to the "OUTPUT" section is surrounded by square brackets. Fix this by adding explicit link text to the cross reference. Signed-off-by: Phillip Wood --- Documentation/git-merge-tree.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/git-merge-tree.txt b/Documentation/git-merge-tree.txt index efb16b4f27d..cf0578f9b5e 100644 --- a/Documentation/git-merge-tree.txt +++ b/Documentation/git-merge-tree.txt @@ -49,7 +49,8 @@ OPTIONS Do not quote filenames in the section, and end each filename with a NUL character rather than newline. Also begin the messages section with a NUL character - instead of a newline. See <> below for more information. + instead of a newline. See <> below for more + information. --name-only:: In the Conflicted file info section, instead of writing a list