Projets dans le cadre de projets à l'aide de Git

Comment puis-je configurer un projet Git contient d'autres projets?

par exemple. Je travaille sur une application de cartographie en ligne. Nous avons développé un outil GPS avec une tenue en SF. Nous avons dans le même temps développé un Python Geomapping script avec une autre préoccupation (qui se soucie uniquement de geomapping). Nos propres fichiers de base de réunir les deux, et s'en inspirer pour l'application dont nous avons besoin.

Chacun des projets doit exister par elle - même, les gens qui ont un intérêt dans le GPS seulement avoir un intérêt dans le GPS mais le "parent" du projet qui comprend tous les autres doivent être accessibles dans un projet.

J'ai passé du temps à essayer de comprendre submodules, mais ils semblent avoir trop de l'indépendance pour ce qui est nécessaire.

Également, si possible, ce serait bien si chacun de ces projets pourrait contenir un ou deux cumul des scripts. Pourrait un projet Git inclure un fichier qui ne fait pas partie de ses "racines", de sorte que lorsque ce fichier est mis à jour par une équipe à la fois peut en bénéficier?

Est-ce faisable avec Git? Avec Mercurial? Ne l'hôte (GitHub, Gitorious) de la matière?

J'ai l'idée d'utiliser Subversion pour le "parent", ignorant le .git dossiers, et l'utilisation de Git pour les projets (en l'ignorant .svn dossiers) - mais ce n'est qu'un dernier recours.

edit:

Pour expliquer pourquoi je ne veux pas Submodules:

  1. Lorsque les utilisateurs télécharger le zip ne comprennent pas les submodules (ici & ici).
    Idem quand même des collaborateurs essayons de mettre en place le projet. C'est un show stopper.
  2. Submodules gelés, ils ne le font pas (facilement) ramasser la dernière version du projet qui est en train d'être souligné.
  3. D'autres raisons comme l'a souligné dans le fantastique réponses ci-dessous et dans ce monologue à NoPugs.

Sous-arbre de fusion (présenté à moi par Paul, ci-dessous) ne fera pas: Il est difficile de mettre à jour la source [d'un sous-arbre] de l'intérieur le projet, il est fusionné, et que la source doivent résider à l'extérieur de la "racine" du dossier du projet. Étant une application web, il est essentiel que toutes mes pages un lien interne vers un dossier, et que les essais et les mises à jour se faire directement dans ce dossier. (J'espère que cela est clair et utile pour les autres.)

Encore l'étude de la configuration à distance des branches", mais d'autres idées sont toujours les bienvenus.

  • Les raisons pour lesquelles je suis contre git-sous-module: a) je ne peux pas le faire fonctionner. GIT Bash se bloque sur la commande pour ajouter des sous-module.. b) Submodules doivent être mis à jour indépendamment. Mieux pour moi d'avoir la dernière version de la submodules automatiquement. c) Ne submodules avoir le code, ou un pointeur?
  • Paul - avez-vous des tutoriels pour la deuxième méthode. Je viens de trouver GIT assez difficile. Aussi, importe-t-il que les sous-projets sont stockées localement dans le projet parent avec ces méthodes (super-classe/classes/subproject1)?
  • La sous-Arborescence de la méthode pour les mettre dans un sous-répertoire distinct, mais qui peut être n'importe où. Git pistes de l'ensemble de l'arborescence du projet, plutôt que des fichiers individuels, de sorte que toute disposition de fichier fonctionne pour la télécommande de la ramification de la méthode. Je ne sais pas d'une écriture-up de la dernière méthode; j'ai ajouté les liens de la sous-arborescence de la méthode.
InformationsquelleAutor SamGoody | 2009-04-06