On Sun, Jan 21, 2024 at 12:06 PM Daniel Sahlberg <daniel.l.sahlb...@gmail.com> wrote: > > Hi, > > I'm trying to do a catchup merge between two branches (incidentally within > the Subversion website tree) but I fail and I don't have enough understanding > to know what is wrong. > > I have a working copy from https://svn.apache.org/repos/asf/subversion/site > > In $WC/staging/, I run: > [[[ > $ svn merge ^/subversion/site/publish > svn: E195016: Reintegrate can only be used if revisions 1812681 through > 1915353 were previously merged from > https://svn.apache.org/repos/asf/subversion/site/staging to the reintegrate > source, but this is not the case: > subversion/site/publish > Missing ranges: > /subversion/site/staging:1898163-1898164,1898168,1898183,1899002,1899183,1899186,1899621,1905961,1905965,1909457 > ]]] > > The listed revisions all seem to be authored directly in staging and not yet > merged to publish (related to the upcoming 1.15 release). > > What has gone wrong and what can we do to get back into a working state? > > Kind regards, > Daniel Sahlberg
I also saw this when trying to reconcile staging and publish during the 1.14.3 release. I also thought this was an error, but after further examination I came to the conclusion that the message was correct. I can try to look into it later, but if you'd like to experiment with it first, I suggest looking at 'svn mergeinfo --show-revs eligible' of both branches and seeing what those unmerged revs are. I did this when I worked on the release and IIRC this is what I found: There are two different issues here (from what I remember): (1) Some time ago, there were some typos that I found in one of the release note pages and I subsequently grepped and fixed in multiple places on the staging branch. Those typos were also present in the 1.15 release notes, which are present in staging but not in publish. Unfortunately, when I fixed the typos (including in the 1.15 release notes), it didn't occur to me that they could not be merged cleanly to publish until publish also gained the 1.15 release notes. (2) svn-role updates the "upcoming changes in the next release"; since release(s) were made in the meantime, many of those "upcoming" changes are no longer listed -- svn-role deleted those texts. So, if you try cherrypicking those commits across the branches, I think you'll see text of old "upcoming changes" being added, and eventually being deleted again; the sum total is that no textual changes should remain once they're all merged, except text about the few backported changes that happened in the last 3 weeks. To get past the error, I think you can identify which revisions from that "missing ranges" list we don't actually need to merge from publish to staging (all svn-role "upcoming changes" up to the 1.14.3 release) and do a --record-only merge; that will add those revs to staging's mergeinfo without changing any text. I think that should eliminate most of the complaint. If any revs remain, we can look into those and see what happened. Alternatively, if you don't feel comfortable with a --record-only merge, you could cherrypick them one-by-one and watch the text being added and subsequently removed. All that is from memory; hopefully I remember correctly. I'll try to look into it later... Hope this helps, Nathan