Question

J'ai deux ou trois projets ANT pour plusieurs clients différents; la structure de répertoires que j'ai pour mes projets se présente comme suit:

L___standard_workspace
    L___.hg
    L___validation_commons-sub-proj  <- JS Library/Module
    |   L___java
    |   |   L___jar
    |   L___old_stuff
    |   L___src
    |   |   L___css
    |   |   L___js
    |   |       L___validation_commons
    |   L___src-test
    |       L___js
    L___v_file_attachment-sub-proj  <- JS Library/Module
    |   L___java
    |   |   L___jar
    |   L___src
    |   |   L___css
    |   |   L___js
    |   L___src-test
    |       L___js
    L___z_business_logic-sub-proj  <- JS Library/Module
    |   L___java
    |   |   L___jar
    |   L___src
    |       L___css
    |       L___js
    L____master-proj               <- Master web-deployment module where js libraries are compiled to.
        L___docs
        L___java
        |   L___jar
        |   L___src
        |       L___AntTasks
        |           L___build
        |           |   L___classes
        |           |       L___com
        |           |           L___company
        |           L___dist
        |           L___nbproject
        |           |   L___private
        |           L___src
        |               L___com
        |                   L___company
        L___remoteConfig
        L___src
        |   L___css
        |   |   L___blueprint
        |   |   |   L___plugins
        |   |   |   |   L___buttons
        |   |   |   |   |   L___icons
        |   |   |   |   L___fancy-type
        |   |   |   |   L___link-icons
        |   |   |   |   |   L___icons
        |   |   |   |   L___rtl
        |   |   |   L___src
        |   |   L___jsmvc
        |   L___img
        |   |   L___background-shadows
        |   |   L___banners
        |   |   L___menu
        |   L___js
        |   |   L___approve
        |   |   L___cart
        |   |   L___confirm
        |   |   L___history
        |   |   L___jsmvc
        |   |   L___mixed
        |   |   L___office
        |   L___stylesheets
        |   L___swf
        L___src-standard

Dans le CdT les modules compilez le sous-projet dans un seul fichier Javascript qui est placé dans le répertoire Javascript du projet maître.

Par exemple , les répertoires suivants:

  • validation_commons-sub-proj
  • v_file_attachment-sub-proj
  • z_business_logic-sub-proj

... tous sont combinés et minifiés (un peu comme compilé) dans un nom différent Javascript dans le répertoire _master-proj/js; et dans l'étape finale du _master-proj est compilé pour être déployé sur le serveur.

Maintenant en ce qui concerne la façon dont je voudrais le mettre en place avec hg, ce que je voudrais être en mesure de faire est clone le projet maître et ses sous-projets de leurs propres référentiels de ligne de base dans un de client travail-copie, de sorte que les modules peuvent être ajoutés (en utilisant hg) à la copie de travail d'un client particulier.

De plus cependant, quand je fais des changements à / bugs fix dans un exemplaire de travail du client, je voudrais être en mesure de pousser en option les modifications / corrections de bugs retour au projet maître / sous-projet de référentiel ligne de base, aux fins de tirer éventuellement les modifications / corrections dans les copies de travail d'autres clients qui pourraient contenir les mêmes bugs qui doivent être fixés.

De cette façon, je serai en mesure d'utiliser les mêmes corrections de bugs dans les différents clients.

Mais ... Je ne suis pas sûr de la meilleure façon de le faire en utilisant hg et Eclipse.

lire ici que vous pouvez utiliser hg Convert d'extension ou s'il serait préférable de simplement loger chacun des modules dans leur propre référentiel et vérifiez-les en un seul espace de travail pour chaque client.

Était-ce utile?

La solution

Oui, il ressemble à subrepos sont ce que vous cherchez pour, mais je pense peut-être que la bonne réponse est la mauvaise question et je soupçonne fort que vous tomberez dans la même problèmes qui se produisent lors de l'utilisation svn: externals

Au lieu de cela, je vous recommande de « publier » vos combinés et minified fichiers JS à un dépôt artefact utiliser un gestionnaire de dépendance tels que Ivy pour tirer des versions spécifiques de vos objets dans votre projet maître. Cette approche vous donne beaucoup plus de contrôle sur les versions sous-projet utilise votre projet maître.

Si vous avez besoin de faire des corrections de bugs à un sous-projet pour un client particulier, vous pouvez simplement faire les corrections sur la ligne principale pour ce sous-projet, publier une nouvelle version (idéalement par un pipeline de construction automatisée ) et mettre à jour leur projet principal d'utiliser la nouvelle version. Oh, vous vouliez tester la nouvelle version avec le projet leur maître avant de publier? Dans ce cas, avant de pousser votre solution, combiner et rapetisser votre sous-projet au niveau local, publier un

scroll top