On Mon, Feb 12, 2018 at 12:39 PM, Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > Hi Sergey, > > On Mon, 12 Feb 2018, Sergey Organov wrote: >> > Have a look at https://github.com/git/git/pull/447, especially the >> > latest commit in there which is an early version of the deprecation I >> > intend to bring about. >> >> You shouldn't want a deprecation at all should you have re-used >> --preserve-merges in the first place, and I still don't see why you >> haven't. > > Keep repeating it, and it won't become truer. > > If you break formats, you break scripts. Git has *so* many users, there > are very likely some who script *every* part of it. > > We simply cannot do that. > > What we can is deprecate designs which we learned on the way were not only > incomplete from the get-go, but bad overall and hard (or impossible) to > fix. Like --preserve-merges. > > Or for that matter like the design you proposed, to use --first-parent for > --recreate-merges. Or to use --first-parent for some --recreate-merges, > surprising users in very bad ways when it is not used (or when it is > used). I get the impression that you still think it would be a good idea, > even if it should be obvious that it is not. If we consider the addition of new todo list elements as "user breaking", then yes this change would be user-script breaking. Since we did not originally spell out that todo-list items are subject to enhancement by addition of operations in the future, scripts are likely not designed to allow addition of new elements. Thus, adding recreate-merges, and deprecating preserve-merges, seems to me to be the correct action to take here. One could argue that users should have expected new todo list elements to be added in the future and thus design their scripts to cope with such a thing. If you can convincingly argue this, then I don't necessarily see it as a complete user breaking change to fix preserve-merges in order to allow it to handle re-ordering properly.. I think I lean towards agreeing with Johannes, and that adding recreate-merges and removing preserve-merges is the better solution. Thanks, Jake