I am developing a website in Drupal, and my development directory tree is as follows:
modules
-->moduleA
-->moduleA.inc
-->moduleA.info
-->moduleA.php
-->moduleB
-->moduleB.inc
-->moduleB.info
-->moduleB.php
themes
-->themeA
-->themeA.info
-->page.tpl.php
-->themeB
-->themeB.info
-->page.tpl.php
ShellScripts
-->scriptA.sh
-->scriptB.sh
legacyPerlScripts
-->script1.pl
-->script2.pl
There is no large development team; I am developing all the modules and themes myself. The modules and themes are somewhat independent, and each has its own version number. However, some large tasks may require an upgrade to several modules. Furthermore, the modules, themes, and scripts should be deployed together, e.g. it would not be a good idea to use the current version of module A with an older version of module B, since module B may depend on a new feature in module A.
What is the best practice for using git for revision control? The options as I see them are:
- Put everything in one large, monolithic repository.
- Create a separate repository for each module, theme and script directory.
- Use git-slave (gits) to create subprojects for each module, theme, and script directory.
- Use git submodules
- Use git subtrees
Which of these 5 options is the most common for a web development project such as this?