From patchwork Fri May 31 07:56:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13681281 Received: from fout2-smtp.messagingengine.com (fout2-smtp.messagingengine.com [103.168.172.145]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E79C249F5 for ; Fri, 31 May 2024 07:56:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.145 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142199; cv=none; b=QPZ6+huoUWBdgBRbUvTDoMh29fyhGv0wywNBn+nU6oEBmM6SxZWryuay9mM+yrU+WCL2MTeL0ccEV2Q2VRwnRtjOrmZXsNKdpZqgDWbMO97v01aCM5SOlIEma7/sAmonFZxlxVgQ6lbheGIrMrO5//ASwGqNqjRsrVE/vDqoFCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142199; c=relaxed/simple; bh=1w/Xwx91LgQMkKhIgLNks3cDmYt3401euyV+nuHMgfs=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=ZVGGew86E9doMV4Onc9A1oC+iorXih7X/5d7wBe6hDipK3AdL0894Jn/3u41oRbQqzXMjX1R30Dao7LSvT2f1FiM9JuYYPBQEFyY6SROebN/4xMtG+IphKx+aIGdNqmQUgn2dxPR8EjmTgfv2DC/Xx8Ts8yT7gz6hiGzkSNXZM8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=egyStNJZ; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=nZJHMYoh; arc=none smtp.client-ip=103.168.172.145 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="egyStNJZ"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="nZJHMYoh" Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailfout.nyi.internal (Postfix) with ESMTP id 5E9DB13800BC; Fri, 31 May 2024 03:56:36 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 31 May 2024 03:56:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1717142196; x=1717228596; bh=GB/7nVw+Oa lL3vXgDoFon2gRz/6K8R8DXJQdpgqjb2o=; b=egyStNJZyiZ/2diEAvGkWnoT5J D1vJoWzaMY7g7ktJxMFJRmtMq05f3YYy5DdHQT3l8Gy/XZcP3jUQbxBHfLyASOoW KEbzwibLOFByI370uVi4iZhjtFw0hZrVKNK2rcZJiIicuAhvWiWLwmYPNTezk5Gv 2fiE+ReR6uWlZgkVe2WLTaCiP/EVSYq90GYEE1O4KGUH5Sxz0JZhBY4NWEC/7L2v QHOUem7p8hvG+WnkqsyBQ6GwYm72Sdl9iQlRxaLf3kmWfMM9UofQ5iXS0R1eXQv3 AO7qGpqWDWJ2TGbipACtC4HtQnmRq86DuHYjdbP0Rnd8LgsY5sJ2BGxF9JRQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1717142196; x=1717228596; bh=GB/7nVw+OalL3vXgDoFon2gRz/6K 8R8DXJQdpgqjb2o=; b=nZJHMYohEJST2Rh399cMOnpUkDUwN3wxaIQCcLfzBqvW Lq9iZ0h62UxwPycSyKNHLgpD0Sx9R0PLT8lizDmsFEtQXbYABha4SGZAz/ZOjpb/ gpMG+H+22KPhyzJcokyX0ORRaSX3Nd8RGPxAT3+fwXFNKrZ4/e8VF3V3+Fo4gCbM Cpl7/d905FWRFCunX9FX9vGzo0HTIe2gSXHYoSRkwOw9x13FK2mjn7JpTfrkCIWP QfmFmCJnv1KSkc0JfK9GGOU9AcoLVuRF/EfFl6L3rWxL+PcwHv/GUg6pcozjQaub R8/55+VxrcjFdDltaTwpo8CT6bGQKegQI3XfM99oaA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdekhedguddvvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefrrght rhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrihhmqeenucggtffrrghtth gvrhhnpeeiveektdfggfeluefgvdelvdeftdfhgeeugeefveejleeufeekgeefffehgfel gfenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepphhssehpkhhsrdhimh X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 31 May 2024 03:56:34 -0400 (EDT) Received: by localhost (OpenSMTPD) with ESMTPSA id 1920ca17 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 31 May 2024 07:56:16 +0000 (UTC) Date: Fri, 31 May 2024 09:56:32 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Justin Tobler , Junio C Hamano , Dragan Simic , Karthik Nayak Subject: [PATCH v4 1/4] docs: introduce document to announce breaking changes Message-ID: <993b9363484627cd828362e39f15c4905ecaf3e2.1717141598.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Over time, Git has grown quite a lot. With this evolution, many ideas that were sensible at the time they were introduced are not anymore and are thus considered to be deprecated. And while some deprecations may be noted in manpages, most of them are actually deprecated in the "hive mind" of the Git community, only. Introduce a new document that tracks such breaking changes, but also deprecations which we are not willing to go through with, to address this issue. This document serves multiple purposes: - It is a way to facilitate discussion around proposed deprecations. - It allows users to learn about deprecations and speak up in case they have good reasons why a certain feature should not be deprecated. - It states intent and documents where the Git project wants to go, both in the case where we want to deprecate, but also in the case where we don't want to deprecate a specific feature. The document is _not_ intended to cast every single discussion into stone. It is supposed to be a living document that may change over time when there are good reasons for it to change. Signed-off-by: Patrick Steinhardt --- Documentation/BreakingChanges.md | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Documentation/BreakingChanges.md diff --git a/Documentation/BreakingChanges.md b/Documentation/BreakingChanges.md new file mode 100644 index 0000000000..d8a26c9bf9 --- /dev/null +++ b/Documentation/BreakingChanges.md @@ -0,0 +1,66 @@ +# Upcoming breaking changes + +The Git project aims to ensure backwards compatibility to the best extent +possible. Minor releases will not break backwards compatibility unless there is +a very strong reason to do so, like for example a security vulnerability. + +Regardless of that, due to the age of the Git project, it is only natural to +accumulate a backlog of backwards-incompatible changes that will eventually be +required to keep the project aligned with a changing world. These changes fall +into several categories: + + - Changes to long established defaults. + + - Concepts that have been replaced with a superior design. + + - Concepts, commands, configuration or options that have been lacking in major + ways and that cannot be fixed. + +The Git project will thus irregularly release major versions that deliberately +break backwards compatibility with older versions. This is done to ensure that +Git remains relevant, safe and maintainable going forward. The release cadence +of major versions is typically measured in multiple years. + +The intent of this document is to track upcoming deprecations for the next +major Git release. Furthermore, this document also tracks what will _not_ be +deprecated. This is done such that the outcome of discussions documente both +when the discussion favors deprecation, but also when it rejects a deprecation. + +Items should have a self-sufficient explanation why we want or do not want to +deprecate a given feature. If there are alternatives to the deprecated feature, +those alternatives should be pointed out to our users. + +All items should be accompanied by references to relevant mailing list threads +where the deprecation was discussed. These references use message-IDs, which +can visited via + + https://lore.kernel.org/git/$message_id/ + +to see the message and its surrounding discussion. Such a reference is there to +make it easier for you to find how the project reached concensus on the +described item back then. + +This is a living document as the environment surrounding the project changes +over time. An earlier decision to deprecate or change something may need to be +revisited from time to time. So do not take items on this list to mean "it is +settled, do not waste our time bringing it up again". + +## Git 3.0 + +The following subsections document upcoming breaking changes for Git 3.0. There +is no planned release date for this major version yet. + +Proposed changes and removals only include items which are "ready" to be done. +In other words, this is not supposed to be a wishlist of features that should +be changed to or replaced in case the alternative was implemented already. + +### Changes + +### Removals + +## Superseded features that will not be deprecated + +Some features have gained newer replacements that aim to improve the design in +certain ways. The fact that there is a replacement does not automatically mean +that the old way of doing things will eventually be removed. This section tracks +those superseded features. From patchwork Fri May 31 07:56:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13681282 Received: from fhigh1-smtp.messagingengine.com (fhigh1-smtp.messagingengine.com [103.168.172.152]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA612249F5 for ; Fri, 31 May 2024 07:56:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.152 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142203; cv=none; b=MEqKawzlT6QWPyQ6f4vHSpwo/VDhTxiH3cQs0jcIms2Z1tTs2vqypWzHHkFypH1s4s1Y+HgYkaMWVxFb6Wb3p9TgvUVjMwkYoYpj3+XKYSxh9wkwPwR3TKimehqxtQ6iurfsGzPxvWCpUeVKFqSLPA1baqiF6BF8MeY8M/Sx7x8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142203; c=relaxed/simple; bh=G+0rjS9J64NY8ImBa78mOHr1P1gvNUgmo7ok+onKmIA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=ncHKcW9/Uxu84kUe2nr85NGW9mb36JDK2IPqm2iCQOS43r+CI3fsoiFlg10gh3SWmZiT6jZUu8AhHiOJWE6MuTVGTkS2YfrQilxSH4Pnxgbb2+HFwitVeTmqUil+lR5ZZUXn88h0CrbuSvzQxBOlFNU4dNP6+wXjDzBgD9w8RCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=TGyjn4ix; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=qXh+JnDZ; arc=none smtp.client-ip=103.168.172.152 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="TGyjn4ix"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="qXh+JnDZ" Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfhigh.nyi.internal (Postfix) with ESMTP id EDA871140107; Fri, 31 May 2024 03:56:40 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Fri, 31 May 2024 03:56:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1717142200; x=1717228600; bh=kVFO6k+WaQ gSvcpL4raf4AgDkh1KxOo8+ffwxixsh64=; b=TGyjn4ixoXgv5U+FDFRpm2pM3k jcSpcVpK8eIFvDB9SdVovGc/bMgA4VN9xL16fUS4/klSDq9d8851vX9zf8jmUihv xduBg3tXz7wPduHSGVCrbxacdBf+qNMJxKkE9eu7zYIZ1LDx/DcdveTgh+b3QFZv +Twbe50BcoqangQxDn2EgzyPQb62SSapT0XOygEecx8xu5wkp9qqmnkW0XZgXQeQ twbA+QAJ4b9E2EMRIIE741IVE3R1xWXrVLb3RmKoXb05/AFJlsKc6zY3H/07j33S gOZhXy7lgI6LZwjTd2/GuaL/0Li9zky5Uj3E6MQpo641hFG1c0Usza5GTM0g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1717142200; x=1717228600; bh=kVFO6k+WaQgSvcpL4raf4AgDkh1K xOo8+ffwxixsh64=; b=qXh+JnDZWRpw6U6R6WIQ9Y2Mx2zD/uXZlQOQ/3mJnW9f 6mKY3n+oq6Gm2Qkjye7QZdSQ7zUKHCWfdciVuKwU4eDeVd/C+ZsWRRpwNDSdopGM gOOkMS5bNXlqo+WvThYu1dqlXwdmB2h2hTYxKcqbCPkrhd6A/EqSxD2w1EkwgH/q ha/p3YC5LqccgFr5ZgrXAb4WqPUgkU8iv2Jau2weV4PF7dDb59ol//+Xr7e1OnjL DqvYH2bgjDXMZy2ySwrCfEAEww+ifvHhzmsmtgvpqGLQ+rUxtUP1Rp1DQD9mMw6P uddot+nMF4anhRH0zc6vCxtrb8cYWmBe9cL1x+fobQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdekhedguddvfecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefrrght rhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrihhmqeenucggtffrrghtth gvrhhnpeeukedtvedtffevleejtefgheehieegkeeluddvfeefgeehgfeltddtheejleff teenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpsh esphhkshdrihhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 31 May 2024 03:56:39 -0400 (EDT) Received: by localhost (OpenSMTPD) with ESMTPSA id fb9a91ab (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 31 May 2024 07:56:21 +0000 (UTC) Date: Fri, 31 May 2024 09:56:37 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Justin Tobler , Junio C Hamano , Dragan Simic , Karthik Nayak Subject: [PATCH v4 2/4] BreakingChanges: document upcoming change from "sha1" to "sha256" Message-ID: <7c84b2f957595a3d8bc6d28970a009339c5fbf5c.1717141598.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Starting with 8e42eb0e9a (doc: sha256 is no longer experimental, 2023-07-31), the "sha256" object format is no longer considered to be experimental. Furthermore, the SHA-1 hash function is actively recommended against by for example NIST and FIPS 140-2, and attacks against it are becoming more practical both due to new weaknesses (SHAppening, SHAttered, Shambles) and due to the ever-increasing computing power. It is only a matter of time before it can be considered to be broken completely. Let's plan for this event by being active instead of waiting for it to happend and announce that the default object format is going to change from "sha1" to "sha256" with Git 3.0. All major Git implementations (libgit2, JGit, go-git) support the "sha256" object format and are thus prepared for this change. The most important missing piece in the puzzle is support in forges. But while GitLab recently gained experimental support for the "sha256" object format though, to the best of my knowledge GitHub doesn't support it yet. Ideally, announcing this upcoming change will encourage forges to start building that support. Signed-off-by: Patrick Steinhardt --- Documentation/BreakingChanges.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Documentation/BreakingChanges.md b/Documentation/BreakingChanges.md index d8a26c9bf9..1b0a357e65 100644 --- a/Documentation/BreakingChanges.md +++ b/Documentation/BreakingChanges.md @@ -56,6 +56,33 @@ be changed to or replaced in case the alternative was implemented already. ### Changes + - The default hash function for new repositories will be changed from "sha1" + to "sha256". SHA-1 has been deprecated by NIST in 2011 and is nowadays + recommended against in FIPS 140-2 and similar certifications. Furthermore, + there are practical attacks on SHA-1 that weaken its cryptographic properties: + + - The SHAppening (2015). The first demonstration of a practical attack + against SHA-1 with 2^57 operations. + + - SHAttered (2017). Generation of two valid PDF files with 2^63 operations. + + - Birthday-Near-Collision (2019). This attack allows for chosen prefix + attacks with 2^68 operations. + + - Shambles (2020). This attack allows for chosen prefix attacks with 2^63 + operations. + + While we have protections in place against known attacks, it is expected + that more attacks against SHA-1 will be found by future research. Paired + with the ever-growing capability of hardware, it is only a matter of time + before SHA-1 will be considered broken completely. We want to be prepared + and will thus change the default hash algorithm to "sha256" for newly + initialized repositories. + + Cf. <2f5de416-04ba-c23d-1e0b-83bb655829a7@zombino.com>, + <20170223155046.e7nxivfwqqoprsqj@LykOS.localdomain>, + . + ### Removals ## Superseded features that will not be deprecated From patchwork Fri May 31 07:56:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13681283 Received: from fout2-smtp.messagingengine.com (fout2-smtp.messagingengine.com [103.168.172.145]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A9F0249F5 for ; Fri, 31 May 2024 07:56:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.145 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142208; cv=none; b=i8sCgrAbqPw3PT2t5MNmPk2ubV3n9NUmH6x8ippfKowFN5iczoWRGri8FixIjiMFcIY1RSBKkH5l7bWi/n+XQmK+0ra+GiqnMU5nMS6B/9aVHd1FnEM++GuMP2gLF/jRsauN3os1pzbcGteGJBX+yHB5ND9JuEmDIExj3wyYN/8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142208; c=relaxed/simple; bh=Sn9SWXpQaJ2xQK0FoCUN/mp0TKZvbmqti34i9WMPvxQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=UiyGvpKRcvGijt7pt7apbfnMwxrzvgXrWQqqT2upXsiBnQlB4j7y+hd6coTs1QpNoOQgByrG3GAMK5RjwdZ8GKTulPMU6FoZ0wUAdPgwTIYgC09IIYmOO4u0YxiMfUPM6vA2nhQg8C0yhCOmFn/ngxnyfTe0M1oLOBJ7t4lJxx8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=MVxkHbkW; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=BBG7DmcL; arc=none smtp.client-ip=103.168.172.145 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="MVxkHbkW"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="BBG7DmcL" Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.nyi.internal (Postfix) with ESMTP id 955291380117; Fri, 31 May 2024 03:56:45 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Fri, 31 May 2024 03:56:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1717142205; x=1717228605; bh=QmznWf3Rwu PveYjck0NoQC/qccvQ9116Fy4VNy9c2aE=; b=MVxkHbkWLue4L6NqsYi5NnaQy2 WVazP0VTP/3oUfYfr/Y4pLZiQWpCr1MHH8bytvfiHbQ8xyJiMnWBvwLbV/AWmHCt g29hl5C6BT79GZ/+gWRoYD0tyJVhucz116lIHSQhX//wzXl/VCwD+cI1/o/xG7oj 6oyCuqCkJhWfvyKeUyJJZh+LOQ4XqsCyKNhI0DUpqGrV3kBNR8Hg2E1sDHG4xgVb SMDrCBYCr8SdrnY+KUQrMVTcJtkdjgh0FA8mp4lFVfhbQWy70to71bS8h4wdhbh2 iln3TYKK1iR55z4c+oatcgjq6szXKMHhsDBPAqLGTl8U6zARu2uhT7k2gChA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1717142205; x=1717228605; bh=QmznWf3RwuPveYjck0NoQC/qccvQ 9116Fy4VNy9c2aE=; b=BBG7DmcLORa4AjXlp/goDFuT2Wm+a/cD0mOjGxXnB2rY N2e4xRdmVqLwefCJqEEUI+evAMzD02f6+O5L4Pn8ZXOtmo5aNrOm0CkLuuL5gx3Z HGge7fGv5/8JCheDKHrE+dHoh3AXGOizAP89U2hmsuGn6NUVfojCBnaQ3t3JzLWw 2VJo1xsJRkNvUyMqbsjDOWUyS0rZF2hdts6K526J9PU7UkzuAQMufl0wmuGlmruJ ZXz9kcOBjNkx8JoHla6SsLdfiY2LQ2zwr1kXjfPiRqThOxX8yBXHwo+trLw6RQuE 5/Z42ku/cuStKMQy2quGtkTDfXioj55WGKNnuqazBA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdekhedguddvfecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefrrght rhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrihhmqeenucggtffrrghtth gvrhhnpeeukedtvedtffevleejtefgheehieegkeeluddvfeefgeehgfeltddtheejleff teenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpehpsh esphhkshdrihhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 31 May 2024 03:56:44 -0400 (EDT) Received: by localhost (OpenSMTPD) with ESMTPSA id a674f896 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 31 May 2024 07:56:26 +0000 (UTC) Date: Fri, 31 May 2024 09:56:41 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Justin Tobler , Junio C Hamano , Dragan Simic , Karthik Nayak Subject: [PATCH v4 3/4] BreakingChanges: document removal of grafting Message-ID: <91d78490c2358b417e32694d8dc125b93a4e389d.1717141598.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The grafting mechanism for objects has been deprecated in e650d0643b (docs: mark info/grafts as outdated, 2014-03-05), which is more than a decade ago. The mechanism can lead to hard-to-debug issues and has a superior replacement with replace refs. Follow through with the deprecation and mark grafts for removal in Git 3.0. Signed-off-by: Patrick Steinhardt --- Documentation/BreakingChanges.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/BreakingChanges.md b/Documentation/BreakingChanges.md index 1b0a357e65..14c0972b08 100644 --- a/Documentation/BreakingChanges.md +++ b/Documentation/BreakingChanges.md @@ -85,6 +85,14 @@ be changed to or replaced in case the alternative was implemented already. ### Removals + - Support for grafting commits has long been superseded by git-replace(1). + Grafts are inferior to replacement refs as the mechanism can lead to + hard-to-diagnose problems when transferring objects between repositories. + They have been outdated since e650d0643b (docs: mark info/grafts as outdated, + 2014-03-05) and will be removed. + + Cf. <20140304174806.GA11561@sigill.intra.peff.net>. + ## Superseded features that will not be deprecated Some features have gained newer replacements that aim to improve the design in From patchwork Fri May 31 07:56:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13681284 Received: from fout2-smtp.messagingengine.com (fout2-smtp.messagingengine.com [103.168.172.145]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A554249F5 for ; Fri, 31 May 2024 07:56:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.145 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142214; cv=none; b=iyNAXI5Sw5J16naR+FmE2sTcuefPg6wWdqg1Rt7rXhDtTyhJxaYXS+voniEH8p919v7Q0r09tx6HF/ZAVBk33iVLgYMLcQiY3JVd2hatkrz5V0NYU2OHPje29fzz92INg+1/BsM/iWG2BjzcQwsendXVNOn38RduJwx/GbAhcFs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717142214; c=relaxed/simple; bh=Zw+EpuPgWpsV6MFxK/sELM0jT0q2HWkcrZuZMnwMvxY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=miqf9RbdfP+Utg8N5RqvYiQcqjBy1iDCUCPLoEQ0RktdEiraEA/yWqwsgfpiIjFm1rFnWK79/oxxbELq7mRv8ElAcoQdQQ7+2Yw89/II3f2/iRmgZCylBpAkomybX8WOjUev7omQhjR2urZmJ0y1B2lvyi/nndJTMI+H82ERQ74= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=mPBurAwo; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=d4thBKxi; arc=none smtp.client-ip=103.168.172.145 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="mPBurAwo"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="d4thBKxi" Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfout.nyi.internal (Postfix) with ESMTP id 190251380117; Fri, 31 May 2024 03:56:51 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Fri, 31 May 2024 03:56:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1717142211; x=1717228611; bh=4sAc2Wg3jA PHoq+8jItbEAGb5nmR64qPde2+mugyQt4=; b=mPBurAwoKtMTWKiIKKLLInqyLG EHJ3nJgKQPIUp3DLgyRQsUhpA3UAq7pd79LhYCyv2pz8Hasv5ODHHf/cj959i2qK cyX+FGTLwI4+mpxQvs7U5MHQEu3QSjIC/ifJa/33b8el4V6wi9w2dydWGtr7Q9LV IgL3Gf9YYrNKw/nhu3lvhgPuB8HGpQZ+ffmcNdxF3fJT86QTwTTBVcJlGqUAMXi3 L6TnPx227CGdfCPC/hZzZ0mE2iTXOfY5kzdwuAT1DAIJ9THU5Y2G65nkRiNjDKwg Z8r9Jucf23bwvW3iAP8RDix7kuTaWLa4RH5gipljCdQRLaGtWUVziqrWZ13g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1717142211; x=1717228611; bh=4sAc2Wg3jAPHoq+8jItbEAGb5nmR 64qPde2+mugyQt4=; b=d4thBKxiKh8iQjVM9qIaJYwWXpXpG5bsFvZDcdGWkP7E qHkRYkvry0wmWWhPkN6BZ8yRZKzaPHBs6zAAr8YMSHqYJ8SydkanOBNDvluy9we9 ayNdjvfnuYaUF3DX/J33jp5Af6mJK4VKkeOt/WJlr8qxJK0GC+F0sCjSpc1eZUWv uJHewf0SQFrgyokrUir020qQqUbOFTAdiJHJjb9HwFhUv2xLQwgKTM/0H+usve53 Cb4kvCj3RrzwAmlUAdVasi4oOCplABPi4oTHU4j6aGpnTL8fU4cBmzV2y9+REIex HKtSbKUHyx6kFRP0e2J8TIm+7GO7OfiJdQUIHRCdVw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdekhedguddvvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvvefukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefrrght rhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrihhmqeenucggtffrrghtth gvrhhnpeeukedtvedtffevleejtefgheehieegkeeluddvfeefgeehgfeltddtheejleff teenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpehpsh esphhkshdrihhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 31 May 2024 03:56:49 -0400 (EDT) Received: by localhost (OpenSMTPD) with ESMTPSA id 1e9bbd82 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 31 May 2024 07:56:31 +0000 (UTC) Date: Fri, 31 May 2024 09:56:46 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Justin Tobler , Junio C Hamano , Dragan Simic , Karthik Nayak Subject: [PATCH v4 4/4] BreakingChanges: document that we do not plan to deprecate git-checkout Message-ID: <40594bda5c8050c2a863df8c9f6f92cd98ea8484.1717141598.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The git-checkout(1) command is seen by many as hard to understand because it connects two somewhat unrelated features: switching between branches and restoring worktree files from arbitrary revisions. In 2019, we thus implemented two new commands git-switch(1) and git-restore(1) to split out these separate concerns into standalone functions. This "replacement" of git-checkout(1) has repeatedly triggered concerns for our userbase that git-checkout(1) will eventually go away. This is not the case though: the use of that command is still widespread, and it is not expected that this will change anytime soon. Document that neither of these commands will not go away anytime soon. This decision may be revisited in case we ever figure out that most everyone has given up on any of the commands. Signed-off-by: Patrick Steinhardt --- Documentation/BreakingChanges.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Documentation/BreakingChanges.md b/Documentation/BreakingChanges.md index 14c0972b08..fb2c8ddf5a 100644 --- a/Documentation/BreakingChanges.md +++ b/Documentation/BreakingChanges.md @@ -99,3 +99,15 @@ Some features have gained newer replacements that aim to improve the design in certain ways. The fact that there is a replacement does not automatically mean that the old way of doing things will eventually be removed. This section tracks those superseded features. + + - git-restore(1) and git-switch(1) have been introduced as a replacement for + git-checkout(1). As git-checkout(1) is quite established, and as the benefit + of switching to git-restore(1) and git-switch(1) is contended, all three + commands will stay. + + This decision may get revisited in case we ever figure out that there are + almost no users of any of the commands anymore. + + Cf. , + , + <112b6568912a6de6672bf5592c3a718e@manjaro.org>.