From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4271 invoked by alias); 22 Jul 2019 09:05:58 -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 4263 invoked by uid 89); 22 Jul 2019 09:05:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=june, June, publish X-HELO: mail-lf1-f68.google.com Received: from mail-lf1-f68.google.com (HELO mail-lf1-f68.google.com) (209.85.167.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 22 Jul 2019 09:05:56 +0000 Received: by mail-lf1-f68.google.com with SMTP id b29so18821019lfq.1 for ; Mon, 22 Jul 2019 02:05:55 -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=+uuuKzdrMHRvuvQfalCe3NeUNyDD7dJbMdS2DXdUo/c=; b=kkHQUt+/PbZtQsmY704bqZcQHUjLxxhkWiZ5nP6yZMUcT26h6vc/jM9LX+g47WzxvF XlHwV5qpPdiV0hyBD3gdHfFXT6115BheS54QxpsuedeK1eddeYFehxvd8+1cjP9zQIi6 pvBes5YMrcyoRoD8HsxoOeNGEwSA82gF8qekO4Ulejtcl5f3mw5f+bX9N44yBJ7eRkX7 tYUAPELuFJ7u8/m+DbmKGbU5oPN+L69pBgEG0MHtqr7OJuU1P+tjE30Z27u/DmVJk+tk WY8g8nxdSbOAUmHGvOZ5xZkywTBIVBOL/H9JwD7jTfymkKJojtUg50WigG8/HeJzZ5B1 KcVQ== Return-Path: Received: from [192.168.1.199] ([94.25.171.21]) by smtp.gmail.com with ESMTPSA id t3sm5904703lfk.59.2019.07.22.02.05.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jul 2019 02:05:52 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) Subject: Re: [Contrib PATCH] Add scripts to convert GCC repo from SVN to Git From: Maxim Kuvyrkov In-Reply-To: Date: Mon, 22 Jul 2019 09:35:00 -0000 Cc: Jason Merrill , GCC Patches , Paolo Bonzini Content-Transfer-Encoding: quoted-printable Message-Id: <7FA7C370-04F5-448E-95D2-426607B99CF4@linaro.org> References: <8C62F814-2F57-4D1A-B66F-5C5ACFF37D6C@linaro.org> <4E46E435-F95C-46AD-87F0-8220D2BF4CD4@linaro.org> To: Maxim Kuvyrkov X-SW-Source: 2019-07/txt/msg01380.txt.bz2 > On Jul 16, 2019, at 5:14 PM, Maxim Kuvyrkov w= rote: >=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 t= ime to digest all the feedback I've got on GCC's conversion from SVN to Git. >>>=20 >>> The scripts have heavily evolved from the initial version posted here. = They have become fairly generic in that they have no implied knowledge abo= ut GCC's repo structure. Due to this I no longer plan to merge them into G= CC tree, but rather publish as a separate project on github. For now, you = can track the current [hairy] version at https://review.linaro.org/c/toolch= ain/gcc/+/31416 . >>>=20 >>> The initial version of scripts used heuristics to construct branch tree= , which turned out to be error-prone. The current version parse entire his= tory of SVN repo to detect all trees that start at /trunk@1. Therefore all= branches in the converted repo converge to the same parent at the beginnin= g of their histories. >>>=20 >>> As far as GCC conversion goes, below is what I plan to do and what not = 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 git= mirror. >>> 2. Compare the resulting git repo with current GCC mirror -- they shoul= d match on the commit hash level for trunk, branches/gcc-*-branch, and othe= r "normal" branches. >>> 3. Investigate any differences between converted GCC repo and current G= CC 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 a= s it was several years ago when you setup the current mirror.=20=20 Unfortunately, current mirror does not and could not account for rewrites o= f SVN commit log messages. For trunk the histories of diverge in 2008 due = 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 mes= sage change (for gcc-6-branch see r259978). 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: 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 Cons of using GCC mirror: - Poor author / committer IDs (this breaks patch statistics software) - Several commit messages will not be the current "fixed" version Thoughts? -- Maxim Kuvyrkov www.linaro.org