* Help planning a git repo layout
@ 2008-09-18 8:37 Leevi Graham
2008-09-18 11:48 ` Boaz Harrosh
0 siblings, 1 reply; 3+ messages in thread
From: Leevi Graham @ 2008-09-18 8:37 UTC (permalink / raw)
To: git
Hey everyone,
I'm after some advice on how to layout my git repo(s).
Here's my current situation:
I am developing 10 different ExpressionEngine addons that all live
inside one ExpressionEngine installation. A simplified EE installation
has the following folders (all cruft removed):
|-root
|-ee-admin
|---extensions
|---language
|---modules
|-themes
|---site_themes
My addons are a combination of files located in the extensions,
language, modules and themes folders. An simple extension may look like:
|-root
|-ee-admin
|---extensions
|-----ext.lg_data_matrix.php
|---language
|-----english
|---------lang.lg_data_matrix.php
|---modules
|-themes
|---site_themes
The extension above contains two files:
- /ee-admin/extensions/ext.lg_data_matrix.php
- /ee-admin/language/english/ext.lg_data_matrix.php
I will be developing multiple extensions in the one EE install to make
sure they all work with the core and do not conflict with each other.
So my directory will have more than one addon in it:
|-root
|-ee-admin
|---extensions
|-----ext.lg_data_matrix.php
|-----ext.lg_minify.php
|-----ext.lg_better_meta_ext.php
|---language
|-----english
|---------lang.lg_data_matrix.php
|---------lang.lg_minify.php
|---------lang.lg_better_meta.php
|---------lang.lg_better_meta_ext.php
|---modules
|-----lg_better_meta
|---------mcp.lg_better_meta.php
|---------mod.lg_better_meta.php
|-themes
|---site_themes
My problem comes when I want to tag and release an individual addon
which is a collection of files in multiple folders.
Just say I wanted to tag and release LG Better Meta. Ideally I would
like to export a folder structure like:
- /ee-admin/extensions/ext.lg_better_meta.php
- /ee-admin/language/english/ext.lg_better_meta.php
- /ee-admin/language/english/ext.lg_better_meta_ext.php
- /ee-admin/modules/lg_better_meta/mcp.lg_better_meta.php
- /ee-admin/modules/lg_better_meta/mod.lg_better_meta.php
I would also like to give people the ability to clone each of the
addons either as a full repo or part thereof.
Any advice would be greatly appreciated.
Cheers Leevi
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Help planning a git repo layout
2008-09-18 8:37 Help planning a git repo layout Leevi Graham
@ 2008-09-18 11:48 ` Boaz Harrosh
[not found] ` <076A189D-66E9-4683-9C24-1C0A7A451892@leevigraham.com>
0 siblings, 1 reply; 3+ messages in thread
From: Boaz Harrosh @ 2008-09-18 11:48 UTC (permalink / raw)
To: Leevi Graham, Git Mailing List
Leevi Graham wrote:
> Hey everyone,
>
> I'm after some advice on how to layout my git repo(s).
>
> Here's my current situation:
>
> I am developing 10 different ExpressionEngine addons that all live
> inside one ExpressionEngine installation. A simplified EE installation
> has the following folders (all cruft removed):
>
> |-root
> |-ee-admin
> |---extensions
> |---language
> |---modules
> |-themes
> |---site_themes
>
> My addons are a combination of files located in the extensions,
> language, modules and themes folders. An simple extension may look like:
>
> |-root
> |-ee-admin
> |---extensions
> |-----ext.lg_data_matrix.php
> |---language
> |-----english
> |---------lang.lg_data_matrix.php
> |---modules
> |-themes
> |---site_themes
>
> The extension above contains two files:
>
> - /ee-admin/extensions/ext.lg_data_matrix.php
> - /ee-admin/language/english/ext.lg_data_matrix.php
>
> I will be developing multiple extensions in the one EE install to make
> sure they all work with the core and do not conflict with each other.
> So my directory will have more than one addon in it:
>
> |-root
> |-ee-admin
> |---extensions
> |-----ext.lg_data_matrix.php
> |-----ext.lg_minify.php
> |-----ext.lg_better_meta_ext.php
> |---language
> |-----english
> |---------lang.lg_data_matrix.php
> |---------lang.lg_minify.php
> |---------lang.lg_better_meta.php
> |---------lang.lg_better_meta_ext.php
> |---modules
> |-----lg_better_meta
> |---------mcp.lg_better_meta.php
> |---------mod.lg_better_meta.php
> |-themes
> |---site_themes
>
> My problem comes when I want to tag and release an individual addon
> which is a collection of files in multiple folders.
>
> Just say I wanted to tag and release LG Better Meta. Ideally I would
> like to export a folder structure like:
>
> - /ee-admin/extensions/ext.lg_better_meta.php
> - /ee-admin/language/english/ext.lg_better_meta.php
> - /ee-admin/language/english/ext.lg_better_meta_ext.php
> - /ee-admin/modules/lg_better_meta/mcp.lg_better_meta.php
> - /ee-admin/modules/lg_better_meta/mod.lg_better_meta.php
>
> I would also like to give people the ability to clone each of the
> addons either as a full repo or part thereof.
>
> Any advice would be greatly appreciated.
>
> Cheers Leevi
>
Have branches with individual views of files like the above
LG-Better-Meta starts from a clean tree and only adds
- /ee-admin/extensions/ext.lg_better_meta.php
- /ee-admin/language/english/ext.lg_better_meta.php
- /ee-admin/language/english/ext.lg_better_meta_ext.php
- /ee-admin/modules/lg_better_meta/mcp.lg_better_meta.php
- /ee-admin/modules/lg_better_meta/mod.lg_better_meta.php
Other branches with other individual views of files.
Commits will have to be on the individual branches.
Lets call these product-branches
Then you have integration branches that merge from time
to time the product-branches, master been the merge of
all.
Users that only need a single product-branch will checkout
that one. Users needing all will checkout master.
For your convenience, you can locally clone the master
git, and have checkouts of single product-branches so
you can commit patches in parallel. Then push and merge.
Don't forget to give all empty branches at least one
common ancestor before adding files. Like with .gitignore
Boaz
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-09-18 13:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-18 8:37 Help planning a git repo layout Leevi Graham
2008-09-18 11:48 ` Boaz Harrosh
[not found] ` <076A189D-66E9-4683-9C24-1C0A7A451892@leevigraham.com>
2008-09-18 13:25 ` Boaz Harrosh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).