From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 126200 invoked by alias); 2 Jan 2020 10:58:50 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 126190 invoked by uid 89); 2 Jan 2020 10:58:50 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-5.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=H*f:sk:ormub6w, H*i:sk:ormub6w, H*MI:sk:ormub6w, manufacture X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.110.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 02 Jan 2020 10:58:49 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 86B2331B; Thu, 2 Jan 2020 02:58:47 -0800 (PST) Received: from [192.168.1.2] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3323C3F703; Thu, 2 Jan 2020 02:58:46 -0800 (PST) Subject: Re: Proposal for the transition timetable for the move to GIT To: Alexandre Oliva Cc: Maxim Kuvyrkov , GCC Development , Joseph Myers , "Eric S. Raymond" , Jeff Law , Segher Boessenkool , Mark Wielaard , Jakub Jelinek References: <20191216133632.GC3152@gate.crashing.org> <20191216135451.GA3142@thyrsus.com> <20191216140514.GD3152@gate.crashing.org> <20191216153649.GE3152@gate.crashing.org> <20191225120747.GA96669@thyrsus.com> <20191226111633.GJ10088@tucnak> <5DCEA32B-3E36-4400-B931-9F4E2A8F3FA5@linaro.org> <155B5BFD-6ECF-4EBF-A38C-D6DD178FB497@linaro.org> <2b6330f2-1a00-ac89-fd3c-4b70e5454f4b@arm.com> <9B71A0F7-CD93-4636-BFC7-1D1DBC040F07@linaro.org> <6EE7BD53-6677-49D2-BCDD-56CD7DA855E9@linaro.org> From: "Richard Earnshaw (lists)" Message-ID: Date: Thu, 02 Jan 2020 10:58:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2020-01/txt/msg00007.txt.bz2 On 02/01/2020 02:58, Alexandre Oliva wrote: > On Dec 30, 2019, "Richard Earnshaw (lists)" wrote: > >> Right, (and wrong). You have to understand how the release branches and >> tags are represented in CVS to understand why the SVN conversion is done >> this way. > > I'm curious and ignorant, is the convoluted representation that Maxim > described what SVN normally uses for tree copies, that any conversion > tool from SVN to GIT thus ought to be able to figure out, or is it just > an unusual artifact of the conversion from CVS to SVN, that we'd like to > fix in the conversion from SVN to GIT with some specialized recovery for > such errors in repos poorly converted from CVS? > > Thanks in advance for cluing me in, > I think it mostly comes from cvs2svn. You probably could manufacture something similar directly in SVN, but you'd have to try very hard to create such brain damage. Some thing like svn cp ^/trunk ^/branches/foo svn rm -f ^/branches/foo/fred.c svn cp ^/branches/bar/fred ^/branches/foo/fred.c ... svn ci Which would create a copy of trunk in foo with a copy of fred.c from the bar branch etc. Normal SVN copies to a branch use a simple node copy of the top-level directory, which is why branching in SVN is cheap (essentially O(1) in time). R.