Domanda

Ho un paio di progetti ANT per diversi clienti; La struttura di directory che ho per i miei progetti aspetto:

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

Nell'ambito del lavoro di copia dei moduli compilare il sotto-progetto in un unico file JavaScript che viene inserito nella directory Javascript del progetto principale.

Ad esempio , le directory:

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

... tutti sono combinati e ridotte di (un po 'come compilato) in un diverso nome di file JavaScript nella directory _master-proj/js; e nella fase finale del _master-proj viene compilato per essere distribuito al server.

Ora per quanto riguarda il modo in cui mi piacerebbe impostare questo con hg, quello che mi piacerebbe essere in grado di fare è clone il progetto principale e dei suoi sotto-progetti dai loro base-line repository in un client di lavoro-copia, in modo che i moduli possono essere aggiunti (utilizzando Hg) alla copia di lavoro di un particolare cliente.

In aggiunta però, quando faccio apportare alcune modifiche a / bug fix in copia di lavoro di un cliente, mi piacerebbe essere in grado di spingere eventualmente le modifiche e / o correzioni di bug di nuovo al repository linea di base del progetto principale / di sotto-progetto, ai fini della fine tirando le modifiche / correzioni in copie di lavoro di altri clienti che potrebbero contenere gli stessi errori che hanno bisogno di essere risolto.

In questo modo sarò in grado di utilizzare le stesse correzioni di bug attraverso diversi clienti.

Comunque ... Io sono incerto il modo migliore per farlo utilizzando hg ed Eclipse.

I leggere qui che è possibile utilizzare hg di Convertire Estensione per dividere un sub-directory in un progetto separato utilizzando l'opzione --filemap.

Tuttavia, sono ancora un po 'confuso da se sarebbe meglio usare il Convert Estensione o se sarebbe meglio solo ospitare ciascuno dei moduli nel proprio repository e check them out in un unico spazio di lavoro per ogni cliente.

È stato utile?

Soluzione

Sì, sembra che subrepos sono quello che stai cercando per, ma penso che forse questa è la risposta giusta per la domanda sbagliata e ho il forte sospetto che si incorrerà in simili problemi che si verificano quando si usa svn: gli esterni

Invece io vi consiglio di "pubblicare" i tuoi file JS combinati e minified a un manufatto repository utilizzare un gestore di dipendenza, come Ivy per tirare le versioni specifiche dei vostri artefatti nel vostro progetto principale. Questo approccio si dà gran lunga maggiore controllo sulle versioni sub-progetto i vostri usi progetto principale.

Se avete bisogno di fare correzioni di bug a un sotto-progetto per un particolare client, si può solo fare le correzioni sulla linea principale per questo sotto-progetto, pubblicare una nuova versione (idealmente attraverso un automatizzato costruzione gasdotto ) e aggiornare il loro progetto principale per utilizzare la nuova versione. Oh, si voleva testare la nuova versione con il loro progetto principale prima di pubblicare? In questo caso, prima di spingere il fix, combinare e minify vostro sub-progetto a livello locale, pubblicarlo a un locale repository e hanno progetto principale del client di pick up che la versione per la vostra prova.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top