From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20953 invoked by alias); 6 Dec 2019 17:21:15 -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 20944 invoked by uid 89); 6 Dec 2019 17:21:15 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=0.1 required=5.0 tests=AWL,BAYES_50,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=role, sk:maximk, post-process, maximkuvyrkovlinaroorg X-HELO: snark.thyrsus.com Received: from thyrsus.com (HELO snark.thyrsus.com) (71.162.243.5) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Dec 2019 17:21:13 +0000 Received: by snark.thyrsus.com (Postfix, from userid 1000) id C917E4704C3C; Fri, 6 Dec 2019 12:21:11 -0500 (EST) Date: Fri, 06 Dec 2019 17:21:00 -0000 From: "Eric S. Raymond" To: Maxim Kuvyrkov Cc: "Richard Earnshaw (lists)" , gcc@gcc.gnu.org Subject: Re: Proposal for the transition timetable for the move to GIT Message-ID: <20191206172111.GA116282@thyrsus.com> Reply-To: esr@thyrsus.com References: <1685e719-738f-dd4e-c39c-c08e495b202e@arm.com> <9E009921-96EA-44A2-A06A-232711227E69@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-IsSubscribed: yes X-SW-Source: 2019-12/txt/msg00108.txt.bz2 Maxim Kuvyrkov : > The general conversion workflow is (this really is a poor-man's translator of one DAG into another): > > 1. Parse SVN history of entire SVN root (svn log -qv file:///svnrepo/) and build a list of branch points. > 2. From the branch points build a DAG of "basic blocks" of revision history. Each basic block is a consecutive set of commits where only the last commit can be a branchpoint. > 3. Walk the DAG and ... > 4. ... use git-svn to individually convert these basic blocks. > 4a. Optionally, post-process git result of basic block conversion using "git filter-branch" and similar tools. > > Git-svn is used in a limited role, and it does its job very well in this role. Your approach sounds pretty reasonable except for that part. I don't trust git-svn at *all* - I've collided with it too often during past conversions. It has a nasty habit of leaving damage in places that are difficult to audit. I agree that you've made a best possible effort to avod being bitten by using it only for basic blocks. That was clever and the right thing to do, and I *still* don't trust it. -- Eric S. Raymond