From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 108066 invoked by alias); 2 Aug 2019 08:41:49 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 108056 invoked by uid 89); 2 Aug 2019 08:41:49 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:3779 X-HELO: mail-lj1-f195.google.com Received: from mail-lj1-f195.google.com (HELO mail-lj1-f195.google.com) (209.85.208.195) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 02 Aug 2019 08:41:47 +0000 Received: by mail-lj1-f195.google.com with SMTP id z28so17853705ljn.4 for ; Fri, 02 Aug 2019 01:41:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=+B/cKsX5PMPNSHckr4pgu8Quh+PxX9wPLhWoi3RaJLc=; b=g2hIkU5C4Wbjo+busFVPB/8AyIDvShIWkl0VVap1qZAoKH9wgcG/3tmbDEoI2yp9vh FBgosrvi3Jj3ubWLsJZmZ4BiQnT1XmIstbidRgvXpu3miE48bMnXi3u2m82qgXr/YRpo amiMwyR1pxR2b2n0ceSLE82zUxluQkvLFER/JJ88JBJs44w9KieRZfbuCl8BHEbtEH5A zMsGL0LyK2gNW6xmOSWi6phwCXNB1RJWhMc3QuKhrZq6kzM+SLJbqwUwpacY6VJ23yXG c2wPUyVEIi2Z8vr4wFVp6I5ht0SfLlltN19cmw2NoryytbrF7J8eSe7tRMhdi1fhelWd qFaQ== Return-Path: Received: from [192.168.43.225] ([31.173.83.43]) by smtp.gmail.com with ESMTPSA id 2sm15004635lji.94.2019.08.02.01.41.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Aug 2019 01:41:44 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: [Contrib PATCH] Add scripts to convert GCC repo from SVN to Git From: Maxim Kuvyrkov In-Reply-To: Date: Fri, 02 Aug 2019 08:41:00 -0000 Cc: GCC Patches , Paolo Bonzini Content-Transfer-Encoding: quoted-printable Message-Id: <846D2EF4-879F-4518-ABA5-7DD74E6B4F18@linaro.org> References: <8C62F814-2F57-4D1A-B66F-5C5ACFF37D6C@linaro.org> <4E46E435-F95C-46AD-87F0-8220D2BF4CD4@linaro.org> <7FA7C370-04F5-448E-95D2-426607B99CF4@linaro.org> To: Jason Merrill X-SW-Source: 2019-08/txt/msg00112.txt.bz2 > On Aug 1, 2019, at 11:43 PM, Jason Merrill wrote: >=20 > On Mon, Jul 22, 2019 at 5:05 AM Maxim Kuvyrkov > wrote: >>=20 >>> On Jul 16, 2019, at 5:14 PM, Maxim Kuvyrkov = wrote: >>>=20 >>>> On Jul 16, 2019, at 3:34 PM, Jason Merrill wrote: >>>>=20 >>>> On Tue, Jul 16, 2019 at 12:18 PM Maxim Kuvyrkov >>>> wrote: >>>>>=20 >>>>> Hi Everyone, >>>>>=20 >>>>> I've been swamped with other projects for most of June, which gave me= time to digest all the feedback I've got on GCC's conversion from SVN to G= it. >>>>>=20 >>>>> The scripts have heavily evolved from the initial version posted here= . They have become fairly generic in that they have no implied knowledge a= bout GCC's repo structure. Due to this I no longer plan to merge them into= GCC tree, but rather publish as a separate project on github. For now, yo= u can track the current [hairy] version at https://review.linaro.org/c/tool= chain/gcc/+/31416 . >>>>>=20 >>>>> The initial version of scripts used heuristics to construct branch tr= ee, which turned out to be error-prone. The current version parse entire h= istory of SVN repo to detect all trees that start at /trunk@1. Therefore a= ll branches in the converted repo converge to the same parent at the beginn= ing of their histories. >>>>>=20 >>>>> As far as GCC conversion goes, below is what I plan to do and what no= t to do. This is based on comments from everyone in this thread: >>>>>=20 >>>>> 1. Construct GCC's git repo from SVN using same settings as current g= it mirror. >>>>> 2. Compare the resulting git repo with current GCC mirror -- they sho= uld match on the commit hash level for trunk, branches/gcc-*-branch, and ot= her "normal" branches. >>>>> 3. Investigate any differences between converted GCC repo and current= GCC mirror. These can be due to bugs in git-svn or other misconfigurations. >>>>> 4. Import git-only branches from current GCC mirror. >>>>> 5. Publish this "raw" repo for community to sanity-check its contents. >>>>=20 >>>> Why not start from the current mirror? Perhaps a mirror of the mirror? >>>=20 >>> To check that git-svn is self-consistent and generates same commits now= as it was several years ago when you setup the current mirror. >>=20 >> Unfortunately, current mirror does not and could not account for rewrite= s of SVN commit log messages. For trunk the histories of diverge in 2008 d= ue to commit message change of r138154. This is not a single occurrence; I= 've compared histories only of trunk and gcc-6-branch, and both had commit = message change (for gcc-6-branch see r259978). >>=20 >> It's up to the community is to weigh pros and cons of re-using existing = GCC mirror as conversion base vs regenerating history from scratch: >>=20 >> Pros of using GCC mirror: >> + No need to rebase public git-only branches >> + No need to rebase private branches >> + No need to rebase current clones, checkouts, work-in-progress trees >>=20 >> Cons of using GCC mirror: >> - Poor author / committer IDs (this breaks patch statistics software) >> - Several commit messages will not be the current "fixed" version >>=20 >> Thoughts? >=20 > I'm still inclined to stick with the mirror. I would expect patch > statistics software to be able to be taught about multiple addresses > for the same person. Patch tracking software breaks on emails like , where 38bc75d-0d04-0410-961f-82ee72b054a4 is not a re= asonable domain name. For completeness, I'll generate and upload a repo based on current mirror w= ith all branches and tags converted. In the end, I don't care much to which version of the repo we switch, as lo= ng as we switch. -- Maxim Kuvyrkov www.linaro.org