Git fork

Merge branch 'jc/breaking-changes-early-adopter-option'

Describe the policy to introduce breaking changes.

* jc/breaking-changes-early-adopter-option:
BreakingChanges: early adopter option

+20 -1
+20 -1
Documentation/BreakingChanges.txt
··· 59 59 something may need to be revisited from time to time. So do not take items on 60 60 this list to mean "it is settled, do not waste our time bringing it up again". 61 61 62 + == Procedure 63 + 64 + Discussing the desire to make breaking changes, declaring that breaking 65 + changes are made at a certain version boundary, and recording these 66 + decisions in this document, are necessary but not sufficient. 67 + Because such changes are expected to be numerous, and the design and 68 + implementation of them are expected to span over time, they have to 69 + be deployable trivially at such a version boundary. 70 + 71 + The breaking changes MUST be guarded with the a compile-time switch, 72 + WITH_BREAKING_CHANGES, to help this process. When built with it, 73 + the resulting Git binary together with its documentation would 74 + behave as if these breaking changes slated for the next big version 75 + boundary are already in effect. We may also want to have a CI job 76 + or two to exercise the work-in-progress version of Git with these 77 + breaking changes. 78 + 79 + 62 80 == Git 3.0 63 81 64 82 The following subsections document upcoming breaking changes for Git 3.0. There 65 - is no planned release date for this breaking version yet. 83 + is no planned release date for this breaking version yet. The early 84 + adopter configuration used for changes for this release is `feature.git3`. 66 85 67 86 Proposed changes and removals only include items which are "ready" to be done. 68 87 In other words, this is not supposed to be a wishlist of features that should