Return-Path: X-Original-To: apmail-aries-dev-archive@www.apache.org Delivered-To: apmail-aries-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8A257C340 for ; Tue, 8 May 2012 15:45:55 +0000 (UTC) Received: (qmail 24789 invoked by uid 500); 8 May 2012 15:45:55 -0000 Delivered-To: apmail-aries-dev-archive@aries.apache.org Received: (qmail 24762 invoked by uid 500); 8 May 2012 15:45:55 -0000 Mailing-List: contact dev-help@aries.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@aries.apache.org Delivered-To: mailing list dev@aries.apache.org Received: (qmail 24754 invoked by uid 99); 8 May 2012 15:45:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 May 2012 15:45:55 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of anpieber@gmail.com designates 74.125.82.178 as permitted sender) Received: from [74.125.82.178] (HELO mail-we0-f178.google.com) (74.125.82.178) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 May 2012 15:45:47 +0000 Received: by wera13 with SMTP id a13so4799078wer.23 for ; Tue, 08 May 2012 08:45:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=+n3bqerUTuHJRG3bQArj3nfwRxJK+Zp7GfPBOYONHdk=; b=hi6N+nKS41ezb/H3I6alLUWguGxdDOlFQlZ+vNiCdQgIf4mbk4C9BCPBZsKGiRABVJ NCH3q/Ftr8NA4Mq8ASestIaOjKs+arkqejE5k5j+s1RV3rwjb1Oks/KIM+FeKjaorkEc PowM+R/LoyVKbStCaftBZqb8tqTMUaUZnDAIIvUsbealpIjcM+zQkvtTspR4WPR1npzC Oh/C7KSz/R9yUOLCxkVcxJQLHSuylfnvgpJ2EzW/i9KIn0j2Btg2Y+yQBAYAN35QzKxo Vk1f0U0eKHc0WBM2J1WvnfNYx7piJGtkFWEBFlj6MBXmnRUzmlZV4SQmWfUTjDtR/IG7 1Tgw== MIME-Version: 1.0 Received: by 10.50.186.132 with SMTP id fk4mr11189936igc.23.1336491925980; Tue, 08 May 2012 08:45:25 -0700 (PDT) Received: by 10.50.207.97 with HTTP; Tue, 8 May 2012 08:45:25 -0700 (PDT) In-Reply-To: <4721F3A5-62CF-48D8-BE1A-ADB98044624F@yahoo.com> References: <4721F3A5-62CF-48D8-BE1A-ADB98044624F@yahoo.com> Date: Tue, 8 May 2012 17:45:25 +0200 Message-ID: Subject: Re: Repository Layout From: Andreas Pieber To: dev@aries.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On Tue, May 8, 2012 at 5:24 PM, David Jencks wrote= : > IIUC you are proposing that we change the svn structure to work better wi= th git by creating an svn project and git mirror for each bundle, and then = reassembling the current project tree with aggregator poms using svn:extern= als? Exactly > I don't know enough about git to know how you'd get the aggregator pom la= yer. =A0Do you have an specific example of a project that has done this? I have, but nothing public :-( We've worked that way at my company before we've switched completely to git. We used repo (those python scripts from the android project) to retrieve the correct project (including branches and tags). For the remaining pom structure we simply didn't cared, but rather created a small script visiting all dirs and creating the parent pom structure back the way up it gos. In fact you're really not interested into those "hold-them-together-poms". You even don't release them (we'vent done so for the svn neither; although they where checked in there). In addition, we've used the same approach for our itests. Although having quite a large number of bundles we hadn't had that much versions we required to test together. E.g. to guarantee that bundle a version x.y works with bundle b in two different version we've created a new part in our svn called hudson where we collected all relevant bundles with the correct branches together (using svn:external), created the pseudo parent structure using our little script. Once checked in automatically checks every change to the specific version combination. Of cause for a huge number of combinations (or even all) this is quite too much, but for our 20-30 combinations it was quite perfect. > I've certainly been annoyed working on felix with git that I get all of f= elix, not just scr that I'm working on. I second you on that :-) > This is an interesting idea that I will have to think about some more. > > With the current svn structure, I think there's a tendency for release ma= nagers to be too cautious and create a branch for a release and then a tag = from the branch. =A0 I would prefer to just release from trunk directly. = =A0For example I think Holly has probably more than doubled her work by cre= ating a branch for 1.0 and now trying to merge it back. +1 Thanks for considering and kind regards, Andreas > > thanks > david jencks > > On May 7, 2012, at 8:38 PM, Andreas Pieber wrote: > >> Hey Aries Team, >> >> I follow the dev list for several months now (actually as it still was >> in incubator) and I know the topic was on the dev list (in one or the >> other way) several times by now. Nevertheless, since I start using >> Aries more and more in source level and building each project for >> itself it starts nagging more and more on me: the current way of >> handling branches and tags. On one hand each project is handled on >> it's own, on the other hand they're mixed in different ways all over >> the project. For example release branches are started sometimes by >> creating a new folder and copying over all projects to release. >> Sometimes single branches are copied, sometimes everything. Imagine >> for one moment how this will result in the history for a single >> project (or a git-mirror for a single project in may case): >> catastrophic. There are dangling branches (tons of them), unnecessary >> commits mangled up, no clear way to find release tags of a single >> project and so on. >> >> Before I wrote this mail I scanned the mailing lists again for the >> several options and the reasons not to create trunk/branches/tags per >> project, but in all those discussions there was one version not >> brought up to the table, which would allow both; a) a clean and >> correct repository layout AND b) the option to commit to several of >> them quite easily at once AND c) create arbitrary branches as they're >> required, over several branches: Why not using svn:externals to >> structure the repository as required. We could create >> ARIES[https://svn.apache.org/repos/asf/aries/]projects which contain >> e.g. ARIES/blueprint/blueprint-core/trunk_tags_branches and so forth. >> Then we create ARIES/trunk where the project is added as svn:external >> in blueprint/. That way there could be a complete super-pom-structure >> which would allow to compile all projects (and release them at once). >> In the same manner ARIES/branches could create any folder combination >> liked containing the required projects as svn:externals instead of >> real projects. The projects would still stay in ARIES/projects in a >> completely correct structure which could a) be easily mirrored by git >> and b) will always present a correct single project history. >> >> Why I bring this up exactly now: because Holly has started some weeks >> ago to preparing the 1.0.0 releases of Aries and I think directly >> after a merge, but before the release would be a good chance to change >> the repository layout once more. >> >> I know that e.g. Felix and ACE don't do it that way, but e.g. SMX does >> some parts in quite similar way (yes there are differences, but >> conceptionally they do something quite similar), so it seams that >> there is room for more than one solution, and the one I proposed would >> definitely be the best for us poor git-svn users but should still be >> working fair enough for SVN users. In addition it will help >> structuring the repositories a) per project and b) still per context. >> >> Kind regards, >> Andreas >