Return-Path: X-Original-To: apmail-ignite-dev-archive@minotaur.apache.org Delivered-To: apmail-ignite-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 8562E18AFF for ; Sat, 22 Aug 2015 16:00:53 +0000 (UTC) Received: (qmail 10104 invoked by uid 500); 22 Aug 2015 16:00:53 -0000 Delivered-To: apmail-ignite-dev-archive@ignite.apache.org Received: (qmail 10055 invoked by uid 500); 22 Aug 2015 16:00:53 -0000 Mailing-List: contact dev-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list dev@ignite.apache.org Received: (qmail 10044 invoked by uid 99); 22 Aug 2015 16:00:53 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 22 Aug 2015 16:00:53 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id C8B6E19A60A for ; Sat, 22 Aug 2015 16:00:52 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 3.745 X-Spam-Level: *** X-Spam-Status: No, score=3.745 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=3, KAM_INFOUSMEBIZ=0.75, RP_MATCHES_RCVD=-0.006, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id EaqKXVUxK-bk for ; Sat, 22 Aug 2015 16:00:37 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id 8285438327 for ; Sat, 22 Aug 2015 12:29:21 +0000 (UTC) Received: (qmail 25354 invoked by uid 99); 22 Aug 2015 12:29:20 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 22 Aug 2015 12:29:20 +0000 Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 16D9F1A00AE for ; Sat, 22 Aug 2015 12:29:20 +0000 (UTC) Received: by lbbpu9 with SMTP id pu9so57491155lbb.3 for ; Sat, 22 Aug 2015 05:29:18 -0700 (PDT) X-Gm-Message-State: ALoCoQnYkPHQmXBsr9Zw13Rgno6LTm2N2PbpxGuo1iWjjy0+SnO1jCbv3x9mG/guA9pGljNALgIG X-Received: by 10.112.63.201 with SMTP id i9mr12411096lbs.93.1440246558377; Sat, 22 Aug 2015 05:29:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.25.152.202 with HTTP; Sat, 22 Aug 2015 05:28:58 -0700 (PDT) X-Originating-IP: [104.238.169.113] In-Reply-To: References: From: Raul Kripalani Date: Sat, 22 Aug 2015 13:28:58 +0100 Message-ID: Subject: Re: New module for C++/.Net integration. To: dev@ignite.incubator.apache.org Content-Type: multipart/alternative; boundary=001a11c3f386806267051de588c7 --001a11c3f386806267051de588c7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Fri, Aug 21, 2015 at 4:47 PM, Vladimir Ozerov wrote: > 1) We have 4 distinct parts: Java supporting code, common CPP/JNI layer > which depends on Java, .Net implementation which depends on Java and JNI, > CPP platform implementation which depends on Java and JNI. And very often > it is necessary to update several of them in scope of a single ticket. I= t > will be a nightmare to update them in different repos - tons of patches > and/or pull requests. > I see what you mean; if I understood, it's a matter of (1) convenience and (2) being able to push commits that contain all changes to support a given functionality across all platforms. Have you considered Git Subtrees? With that approach I think you can get the best of both worlds (separation in different Git repos, and mapping of "satellite" repos into directories of a core repo). In my mind, we would be having 3 repos: * Repo "ignite" =3D> Ignite (Java) + CPP/JNI layer. This is essentially Ignite + the contract and interop layer for other languages to leverage Ignite. * Repo "ignite-cpp" =3D> platform implementation for Ignite in C++. * Repo "ignite-dotnet" =3D> platform implementation for .NET. The ignite repo would map the ignite-cpp and ignite-dotnet repos into the source tree via git subtree. Considerations: * Folks only wanting to interact only with ignite's Java code would not need to fetch the ignite-cpp and ignite-dotnet repos. Most people will fall in this category, I assume. * Git subtree automatically takes care of splitting commits that span multiple repos, for them to be applied individually to each repo. * Tagging commits with JIRA ticket ids allow us to group commits across a number of repos under the "umbrella" of a single functionality. For those people who are not familiar with Git subtrees, this is a nice walkthrough: [1]. [1] https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844 *Ra=C3=BAl Kripalani* Apache Camel PMC Member & Committer | Enterprise Architect, Open Source Integration specialist http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani http://blog.raulkr.net | twitter: @raulvk --001a11c3f386806267051de588c7--