Return-Path: X-Original-To: apmail-incubator-ooo-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-ooo-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9F4E34B01 for ; Wed, 29 Jun 2011 12:33:21 +0000 (UTC) Received: (qmail 11610 invoked by uid 500); 29 Jun 2011 12:33:21 -0000 Delivered-To: apmail-incubator-ooo-dev-archive@incubator.apache.org Received: (qmail 11595 invoked by uid 500); 29 Jun 2011 12:33:21 -0000 Mailing-List: contact ooo-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ooo-dev@incubator.apache.org Delivered-To: mailing list ooo-dev@incubator.apache.org Received: (qmail 11587 invoked by uid 99); 29 Jun 2011 12:33:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Jun 2011 12:33:20 +0000 X-ASF-Spam-Status: No, hits=0.0 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [217.72.192.234] (HELO fmmailgate03.web.de) (217.72.192.234) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Jun 2011 12:33:13 +0000 Received: from smtp04.web.de ( [172.20.0.225]) by fmmailgate03.web.de (Postfix) with ESMTP id 0E69F192EC7CA for ; Wed, 29 Jun 2011 14:32:53 +0200 (CEST) Received: from [80.171.84.197] (helo=[192.168.2.192]) by smtp04.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #2) id 1Qbtwq-0002Zb-00 for ooo-dev@incubator.apache.org; Wed, 29 Jun 2011 14:32:52 +0200 Message-ID: <4E0B1B74.8060801@web.de> Date: Wed, 29 Jun 2011 14:32:52 +0200 From: Jens-Heiner Rechtien User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Lightning/1.0b2 Thunderbird/3.1.10 MIME-Version: 1.0 To: ooo-dev@incubator.apache.org Subject: Re: Merge points in Hg repository (was: An svn question) References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: jhrechtien@web.de X-Sender: jhrechtien@web.de X-Provags-ID: V01U2FsdGVkX19SzYBQ9VHfpM63h0/Dzq5Un971XZjzsO8YQRcK ruHmWXL21Kot+Q2hr91FDfe28A2JKVahohUfWGuEpkCjxaL5lE E6XSLzHL0= X-Virus-Checked: Checked by ClamAV on apache.org Hi Greg, On 06/29/2011 07:14 AM, Greg Stein wrote: > On Sat, Jun 25, 2011 at 08:48, Jens-Heiner Rechtien wrote: >> On 06/24/2011 09:07 AM, Stephan Bergmann wrote: >> ... >>> Which gets me thinking of the next topic, how exactly to import the >>> current OOo Hg repository into SVN. While Hg has the concept that a >>> revision can have two parents (so the revision graph need not be > > After my investigation into Hg, I've found out about this. The > two-parent concept is nice. Subversion *does* have merge-tracking now, > so it understands when you merge another item into the working copy's > "parent", and it will record that fact. > > I will note that the primary Hg repository has 2005 of these merge commits. > > These merge commits will need to be handled during the Hg->svn > conversion. I don't know if the code does this today. > >>> linear), SVN only supports a single parent per revision (so has a >>> strictly linear graph). Import of Hg into SVN will have to map the >>> non-linear graph to a linear one. I think an automatic approach >>> (which is the only feasible one) in general can only work as follows: >>> Walking backwards from the head (assuming there is only one), >>> transfer the current revision to SVN and proceed to its first parent >>> (if there is one; otherwise we reached the bottom and are done). >>> Since CWS have (hopefully) always been merged into the master as the >>> second parent of a merge revision (if a merge was necessary), this >>> will loose the detailed history of most CWS. (And if a CWS ever got >>> merged as the first parent of a merge revision, and master as second, >>> we will loose history big time.) >> >> Most of the time the CWS is the second parent. Unfortunately there is no way >> that we can rely on that. I'm almost certain that there are cases where >> first and second parent are switched. > > Couldn't we just set a bookmark for the DEV300 tip? Or use one of the > tags? I don't understand how merging CWS's with "strange" parenting > would cause us a problem. I'm a Mercurial n00b, so maybe I'm missing > something? > >> So from a history-preserving point >>> >>> of view, moving from Hg to SVN is bad. Or am I missing something? >> >> Actually I wouldn't even try to do it with a history preserving approach. >> Just import it flat and have a hg repository on the side for reference. That > > That is incredibly difficult for developers who would like to explore. > For researchers look at our code. For people trying to find "why" > something exists. ... any number of reasons. It seems that we can > bring over history. Maybe some more work, but it is a one-time cost > compared to the many, MANY years that OOo will exist. > >> way we get rid of all problems regarding broken/missing/wrong copyrights of >> old files. If there ever was a time to do a clean start, it's now. Remember, >> we did the same thing when we open sourced OOo back in 2000. > > And I've seen people wishing that all the history was present. We can > do it! No reason to give up :-) If it's possible than it would be great, no doubt! It's just that I have done one SCM migration to many over the last years and know how difficult it can be to get the details right. BTW, you do know that the old SVN repository which was the basis of the 2009 migration to HG is still online? You can find it here: http://svn.services.openoffice.org/ooo/ Only /trunk was migrated, we used 'hg convert'. Heiner -- Jens-Heiner Rechtien