General structure and naming

Gitolite allows us to arrange repositories in folders. Here's some of the most common folders we use:

  • modules/: all open-source modules will be under modules/.
  • forge/: well, Forge modules will be hosted here.
  • enterprise/: Enterprise Edition modules and bundles.
  • internal/: Internal projects.
  • sys/: Internal systems tools. Some or all of those might be open-sourced at some point.
  • training/: All code base for training exercises
  • user/: Users are able to create their own repositories if needed. See Git usage#User repositories.

Since the main Magnolia CMS codebase doesn't really pertain in any of these folders, it sits at the top level: magnolia_main.git. Note that this repository is mirrored into magnolia_main.pub.git for public anonymous access.

Projects migrated from Subversion

Notes

Projects migrated from Subversion have been migrated as closely as possible; however, there are a few caveats to be aware of:

  • Empty directories: Git doesn't track directories. The usual technique in Git, to have an empty directory in the repository, is to add a placeholder file in it (README.txt explaining the purpose of the directory could be considered a good practice, if that directory was really necessary). For the most part, empty directories in our Subversion projects were not necessary, and haven't been migrated.
    There is however an *exception": the main projec.t For this project we manually (well, using a script) recreated the empty directories for all existing branches, and added a file called .emptydir-placeholder. If you get to work on the project, please go ahead and do find . -name .emptydir-placeholder; i'm pretty sure most of these files are unnecessary, but some are. Ideally, someone should go ahead and 1) remove the unnecessary ones, 2) replace the necessary ones by a README.txt that explains the purpose of the directory.
    If you notice another project that had such a necessarily empty directory, feel free to recreate it; alternatively, check with me - we should be able to reuse the script I used for the main project.
  • Ignores: in Subversion, ignored files are tracked/marked in the svn:ignore property, at directory level. While migrating, we took advantage of Git's .gitignore mechanism, which allows marking ignore files outside of their own directory. We converted every svn:ignore property into a single .gitignorefile at the top of the repository. One of the first things one should do when taking over one of the migrated repositories, is to clean up that file. For instance,

    foo/*.iml
    bar/*.iml
    baz/*.iml
    

    could be advantageously replaced by

    *.iml
  • Keyword expansion: we've never really used Subversion's keyword expansion consistently nor correctly. Files have been migrated as they were, and it being Git, those keyword should now simply be removed from our files.
  • Repository size: Some repositories might be too big after migration. This is due to how Git works; if a repository (STK is an example) has, or had at some point in its history, large binary files, those are kept in the repository ~forever. There are a bunch of techniques to get around that, mostly based around the powerful filter-branch feature of Git. Contact one of the administrators before attempting to do, as it might break stuff pretty bad.

List of migrated projects

The Magnolia CMS codebase has been migrated from Subversion to Git. This page lists repositories which have been migrated and their status; some modules have been renamed or moved in the process, so this should help finding your way.

Project

Previous location on SVN

Git repository

Migration status

Main project

community/magnolia

magnolia_main, magnolia_main.pub.git

(tick)

4.5 Migration

community/modules/magnolia-4-5-migration

modules/4-5-migration

(tick)

Blog module

community/modules/magnolia-module-blog

modules/blog

(tick)

Blossom module

community/modules/blossom/magnolia-module-blossom

modules/blossom/blossom

(tick)

Blossom extension data

community/modules/blossom/magnolia-module-blossom-extension-data

modules/blossom/blossom-extension-data

(tick)

Blossom samples

community/modules/blossom/samples

modules/blossom/samples

(tick)

Categorization module

community/modules/magnolia-module-categorization

modules/categorization

(tick)

Commenting module

community/modules/magnolia-module-commenting

modules/commenting

(tick)

Data module

community/modules/magnolia-module-data

modules/data

(tick)

Device-detection

forge/device-detection

modules/device-detection

(tick)

DMS module

community/modules/magnolia-module-dms

modules/dms

(tick)

Docutools module

community/modules/magnolia-module-docutools

modules/docutools

(tick)

Excelrenderer module

community/modules/magnolia-module-excelrenderer

modules/excelrenderer

(tick)

Form module

community/modules/magnolia-module-form

modules/form

(tick)

Forum module

community/modules/forum

modules/forum

(tick)

Google Analytics module

community/modules/magnolia-module-google-analytics

modules/google-analytics

(tick)

Google Sitemap module

community/modules/magnolia-module-google-sitemap

modules/google-sitemap

(tick)

Groovy module

community/modules/magnolia-module-groovy

modules/groovy

(tick)

Imaging module

community/modules/imaging

modules/imaging

(tick)

Observation module

community/modules/magnolia-module-observation

modules/observation

(tick)

Openid module

community/modules/magnolia-module-openid

modules/openid

(tick)

Public User Registration module

community/modules/magnolia-module-public-user-registration

modules/public-user-registration

(tick)

Poll module

community/modules/magnolia-module-poll

modules/poll

(tick)

RSS Aggregator

community/modules/magnolia-module-rssaggregator

modules/rssaggregator

(tick)

Resources module

community/modules/magnolia-module-resources

modules/resources

(tick)

Scheduler module

community/modules/magnolia-module-scheduler

modules/scheduler

(tick)

Snippet module

community/modules/magnolia-module-snippet

modules/snippet

(tick)

Standard Templating Kit

community/modules/standard-templating-kit

modules/standard-templating-kit

(tick)

Standard Templating Kit Prototype

community/modules/standard-templating-kit-prototpye

modules/standard-templating-kit-prototype

(tick)

Todolist module

community/modules/magnolia-module-todolist

modules/todolist

(tick)

Webdav module

community/modules/magnolia-module-webdav

modules/webdav

(tick)

Wiki module

community/modules/magnolia-module-wiki

modules/wiki

Not migrated yet

Modeshape support

community/modules/modeshape-support

modules/modeshape-support

(tick)

Maven archetypesforge/magnolia-maven-archetypesbuild/magnolia-maven-archetypes(tick)

...

 

 

 

CE bundle

community/bundle

ce-bundle

(tick)

CRX module

enterprise/magnolia-crx

enterprise/crx

(tick)

JNDI module

enterprise/magnolia-jndi

enterprise/jndi

(tick)

LDAP support

enterprise/magnolia-ldap

enterprise/ldap

(tick)

License module

enterprise/magnolia-license

enterprise/license

(tick)

Advanced Cache module

enterprise/magnolia-module-advanced-cache

enterprise/advanced-cache

(tick)

Backup module

enterprise/magnolia-module-backup

enterprise/backup

(tick)

CAS module

enterprise/magnolia-module-cas

enterprise/cas

(tick)

Content-Dependencies

enterprise/magnolia-module-content-dependencies

enterprise/content-dependencies

(tick)

Content Translation Support

enterprise/magnolia-module-content-translation-support

enterprise/content-translation-support

(tick)

Diff module

enterprise/magnolia-module-diff

enterprise/diff

(tick)

Enterprise module

enterprise/magnolia-module-enterprise

enterprise/enterprise

(tick)

Transactional Exchange module

enterprise/magnolia-module-exchange-transactional

enterprise/exchange-transactional

(tick)

ETK module

enterprise/magnolia-module-extended-templating-kit

enterprise/extended-templating-kit

(tick)

Modifystream module

enterprise/magnolia-module-modifystream

enterprise/modifystream

(tick)

NTLM module

enterprise/magnolia-module-ntlm

enterprise/ntlm

(tick)

Packager module

enterprise/magnolia-module-packager

enterprise/packager

(tick)

Shortulr module

enterprise/magnolia-module-shorturl

enterprise/shorturl

(tick)

Soft-Locking module

enterprise/magnolia-module-soft-locking

enterprise/soft-locking

(tick)

Sync module

enterprise/magnolia-module-synchronization

enterprise/synchronization

(tick)

Weblogic module

enterprise/magnolia-module-weblogic

enterprise/weblogic

(tick)

Websphere module

enterprise/magnolia-module-websphere

enterprise/websphere

(tick)

Protlet-Bridge module

enterprise/magnolia-module-portlet-bridge

enterprise/portlet-bridge

(tick)

Tools module

enterprise/magnolia-tools

enterprise/tools

(tick)

Newsletter module

enterprise/newsletter

enterprise/newsletter

(tick)

EE bundle

enterprise/bundle

ee-bundle

(tick)

...

 

 

 

  • No labels