Just a note: we don't actually modify code in GeoServer and GeoNetwork, we simply pull in pre-built artifacts (from OpenGeo's Maven repository for GeoServer, and from an ad-hoc HTTP server for GeoNetwork) and add a couple of extensions to each. We could (should?) avoid cloning these into git.

--
David Winslow
OpenGeo - http://opengeo.org/

On 05/25/2010 06:49 PM, Ariel Nunez wrote:
Thanks for pushing this up in the queue David.

    2 - We mirror all our SVN externals so we can use git submodules
    <http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html>
    to do the same thing.
        Pros - slightly better integration than braid on the client
    end (checkout consists of "install git,
          git clone, git submodule update --init";)
        Cons - maintaining git clones of svn projects, two-tier
    process to push changes back

I like this option a lot, we are using outside dependencies and the submodule step makes this crystal clear.

From my conversation with David on IRC, the projects are the following:
 {
geoext (we follow trunk)
openlayers (we follow trunk)
geoserver ( we modify )
geonetwork (we modify)
ext (we follow trunk)
gsconfig.py (we follow trunk)
 }

The idea would be to setup git forks for those repos under the geonode git account, like this:
github.com/geonode/geoext <http://github.com/geonode/geoext>
github.com/geonode/openlayers <http://github.com/geonode/openlayers>
github.com/geonode/geoserver <http://github.com/geonode/geoserver>
github.com/geonode/geonetwork <http://github.com/geonode/geonetwork>
github.com/geonode/ext <http://github.com/geonode/ext>
github.com/geonode/gsconfig.py <http://github.com/geonode/gsconfig.py>

And put git submodules in this main repo:
github.com/geonode/geonode <http://github.com/geonode/geonode>

If anybody does not like the fact that we depend on Github, we always have the option to setup:
git.geonode.org <http://git.geonode.org>

    3 - We commit all SVN externals directly to the git repository,
    kind of like svn vendor branches
    <http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html>.
        Pros - even better integration than git submodule, when you
    checkout the project you get
          everything.
        Cons - it takes a bit of digging in the repository to extract
    diffs to submit upstream patches, and
          even bringing in updates is kind of a pain.

It is true this option may be the simplest for new users but I don't like the fact that patches are against "Geonode's version of X project" instead of the actual project. "Explicit is better than implicit", so #2 is still my favorite.

    But I'm open to alternatives/arguments.  However, let's try and be
    git-friendly by, say, Friday next week?  I'm not aware of a hard
    deadline but at the rate this discussion's been going we'll never
    get converted.


 +1 The sooner the better.

Ariel

Reply via email to