Frage

habe ich ein paar von ANT-Projekte für verschiedene Kunden; die Verzeichnisstruktur ich für meine Projekte sieht wie folgt aus:

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

Innerhalb der Arbeitskopie der Module das Teilprojekt in eine einzige Javascript-Datei erstellen, die in dem Javascript-Verzeichnis des Master-Projektes gelegt wird.

Beispiel: , die Verzeichnisse:

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

... alles kombiniert und minimierte (Art wie kompilierte) in einen anderen Javascript Dateinamen im Verzeichnis _master-proj/js; und im letzten Schritt wird das kompilierte _master-proj auf den Server bereitgestellt werden.

Nun in Bezug auf die Art und Weise Ich mag würde diese sich mit hg setzen, was würde Ich mag Lage sein, zu tun ist, Klon das Master-Projekt und seine Teilprojekte aus der eigenen Basis-line Repositories in einen Kunden Arbeitskopie kann, so dass Module (mit hg) auf einen bestimmten Kunden Arbeitskopie hinzugefügt werden.

Zusätzlich jedoch, wenn ich einige Änderungen in der eigenen Kunden / fix Bugs auszukommen Arbeitskopie, würde Ich mag können optional auch die Änderungen / Fehlerbehebungen zurück drängen, um das Hauptprojekt / Teilprojekt Base-line-Repository, zum Zweck der schließlich die Änderungen / Korrekturen in anderen Kunde Arbeitskopien ziehen, die die gleichen Fehler, die Notwendigkeit enthalten könnten festgelegt werden.

Auf diese Weise werde ich in die Lage, die gleichen Fehlerbehebung in verschiedenen Kunden zu nutzen.

Allerdings ... Ich bin mir nicht sicher der beste Weg, dies mit hg und Eclipse zu tun.

hier lesen, dass Sie HGs verwenden Konvertieren zu verwenden Erweiterung oder wenn es wäre besser, nur jedes Haus der Module im eigenen Repository und überprüfen sie sie heraus in einem einzigen Arbeitsbereich für jeden Kunden.

War es hilfreich?

Lösung

Ja, es sieht aus wie subrepos sind, was Sie suchen vielleicht für, aber ich denke, dass die richtige Antwort auf die falsche Frage ist, und ich stark vermuten, dass Sie in ähnlich laufen werden Probleme, die bei der Verwendung von svn auftreten: externals

Stattdessen würde ich empfehlen, dass Sie „veröffentlichen“ Ihre kombiniert und minimierte JS-Dateien in ein Artefakt-Repository und verwenden, um einen Abhängigkeits Manager wie Ivy bestimmte Versionen Ihrer Artefakte in Ihr Master-Projekt zu ziehen. Dieser Ansatz gibt Ihnen viel mehr Kontrolle über die Unterprojektversionen Ihr Master-Projekt verwendet.

Wenn Sie auf Fehlerkorrekturen zu einem Teilprojekt für einen bestimmten Kunden zu machen, können Sie nur das Updates für dieses Teilprojekt auf die Hauptstrecke machen, veröffentlichen eine neue Version (im Idealfall über eine automatisiertes Build-Pipeline ) und deren Hauptprojekt aktualisieren, um die neue Version zu verwenden. Oh, Sie wollten die neue Version mit dem ihrem Hauptprojekt testen, bevor die Veröffentlichung? In diesem Fall, bevor Sie Ihre fix schieben, kombinieren und minify Ihr Teilprojekt vor Ort, veröffentlicht es zu einem

scroll top