Date: Fri, 10 Jul 2020 21:39:42 +0200 From: =?UTF-8?Q?Stefan_E=c3=9fer?= <se@freebsd.org> To: "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net> Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Re: Huge mergeinfo list after merge from vendor branch Message-ID: <09e7f77b-7d7d-f5ee-5432-c63f4932e979@freebsd.org> In-Reply-To: <202007101640.06AGeloK096110@gndrsh.dnsmgr.net> References: <202007101640.06AGeloK096110@gndrsh.dnsmgr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 10.07.20 um 18:40 schrieb Rodney W. Grimes: >> We have gathered lots of mergeinfo junk in the source tree over the >> decades, but I did not know it was so bad ... >> >> >> I had not performed any merges for a long time and now that I have >> to merge from the vendor branch to contrib in -CURRENT, I'm surprised >> by the long mergeinfo list I got: >> >> $ svn propget svn:mergeinfo -R /usr/src/contrib/bc >> . - /projects/bectl/contrib/bc:336666-337662 >> /projects/bsd_rdma_4_9/contrib/bc:319973-326168 >> /projects/bsnmp-improved-ipv6-support/contrib/bc:301868 >> /projects/building-blocks/contrib/bc:275142-275143,275198,275297,275306-275307,275309,275311,275556,275558,275600,277445,277670,277673 >> /projects/clang-sparc64/contrib/bc:262258-262612 >> /projects/clang-trunk/contrib/bc:283596-287505 >> [...] >> /vendor/bc/dist:362987-363077 >> /vendor/device-tree/dist/contrib/bc:303380 >> /vendor/resolver/dist/contrib/bc:1540-186085 >> >> A total of 56 lines, which are not relevant to this software, except for >> the 3rd last line: >> >> /vendor/bc/dist:362987-363077 >> >> Before causing a mess in the repo by committing the merged sources, >> I'd like to know whether this is "normal" behavior, or whether I need >> to clean up the mergeinfo before the commit. >> >> Thanks in advance, STefan >> >> PS: The committers handbook has quite some information regarding this >> kind of merge, but it makes me think that only the relevant mergeinfo >> line should have been registered ... Hi Rodney, thank you for responding. I'm holding back a bug-fix commit due to this situation, and I'd like to get the commit done ... > Was a merge done from the wrong working directory? I do not think that this was the case. BTW: Chapter 5.3 of the Developers Handbook gives this advice: % cd head/contrib/foo % svn update % svn merge --accept=postpone ^/vendor/foo/dist I have reverted the merge in my check-out, verified that the mergeinfo was gone and then performed the MFV again with the following command, just to be sure: % cd /usr/svn/base/head % svn merge --accept=postpone ^/vendor/bc/dist contrib/bc The result is exactly the state of before the revert and reapplied MFV, with 56 lines of mergeinfo (pre-dating the vendor import, and applying to other contrib/bc paths, e.g.: /projects/pf/head/contrib/bc:263908. > Merges need to be done while cwd is the top level of the src tree. Yes, I know, and I did it that way (despite the differing advice given in the Developers Handbook). > If done in a subdirectory a massive pile of unwanted mergeinfo is created. And I have repeated the same merge command from within /usr/svn/base (i.e. one level below the head directory), again with identical results. > You can step back through the merge commits and see when this happened. The contents of contrib/bc has been created via "svn copy" from the vendor area, this is the first attempted MFV that updates the contrib directory beyond the initial import. The mergeinfo is for prior revisions of files in **/contrib/bc, e.g. in project or user directories in our SVN repository, which are in no way related to the commit I'm about to do. If I do not receive any direct advice how to resolve this situation, I'll do the commit, anyway. I could force a correct mergeinfo with propset svn:mergeinfo, I assume, but I'm afarid this could lead to breakage or consistency problems later-on. Best regards, STefan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?09e7f77b-7d7d-f5ee-5432-c63f4932e979>