8

Sono in un gruppo che sta iniziando a sviluppare utilizzando InterSystems Ensemble (un framework di integrazione basato su InterSystems Caché).Controllo versione per InterSystems Ensemble/Caché

InterSystems non ha reso il Source Management Control di Ensemble Source-control-aware e questa sembra una fonte di problemi per il team di sviluppo che vorremmo affrontare.

Mi piacerebbe sapere quale sistema di controllo versione stai usando per Ensemble/Caché e come stai strutturando il processo di sviluppo attorno ad esso.

risposta

4

Ho trovato VC/m, un sistema di controllo versione progettato per Caché.

Sentiti libero di aggiungere commenti se hai avuto esperienze con esso.

4

Un'altra alternativa sembra TrackWare che è anche progettata specificamente per Caché.

3

Se non si ha paura del lavoro di sviluppo, è possibile eseguire alcuni sviluppi per collegare Studio al proprio strumento di controllo del codice sorgente corrente. Nella cache sono presenti degli hook che consentono di rilevare le modifiche sui file e di interagire con lo strumento di controllo del codice sorgente.

Ecco un link ad un pdf della descrive la base: Using the Studio Source Control Hooks

Naturalmente con questa soluzione si dovrà fare un sacco di lavoro al vostro fianco.

+0

Questa è una soluzione per Caché, ma InterSystems non ha reso il Source Management Portal sensibile all'organo in modo che i hook non vengano attivati ​​quando le produzioni di Ensemble sono modificate:/ – fglez

+1

Grazie per l'informazione. Le altre composizioni che hai proposto sono in grado di gestire la parte Ensemble? – FrenchData

+0

Non lo sono, perché implementano gli stessi hook :(. Volevo sapere se qualcun altro ha affrontato questo e come stanno avendo a che fare (impostare un processo di aggiornamento che coinvolga le persone è l'unica soluzione che viene in mente) – fglez

0

Risposta tardiva, ma comunque, è possibile dare un'occhiata a CodeTools di Synerva. . CodeControl funziona come plug-in Studio

0

Synerva's CodeTools offrire una soluzione piuttosto buona per questo. l'ho usato su diversi progetti da un po 'di tempo.

1

Sto usando Mercurial e sebbene io usi un hook di controllo del codice sorgente di Cache Studio (non sto usando ensemble), penso che fondamentalmente la stessa soluzione potrebbe funzionare per voi.

La chiave è che è il controllo del codice sorgente distribuito. Quindi tutto ciò che fa è, su un salvataggio, esportare il file corrente in una cartella sul mio disco rigido, e controllarlo nel mio repository locale. Quando le cose funzionano correttamente localmente, lo sposto nel repository centrale - in altre parole, uso solo il controllo distribuito del codice sorgente in un modo normale.

È bello commettere ogni salvataggio poiché questo mi dà un modo di eseguire il rollback se rovino qualcosa, ma non è veramente necessario. Puoi scrivere qualcosa che spinge il codice al tuo repository locale quando lo chiami dal prompt dei comandi di Cache.

Con il controllo distribuito della sorgente il fatto che le funzionalità di check-in e check-out non siano supportate non ha importanza, si gestiscono tali problemi mediante l'unione quando si spinge al repository centrale (o comunque si decide di strutturare i repository).

Un avvertimento: per le definizioni di classe cache, vengono esportate come XML in un formato non definito. Include un timestamp di quando il file è stato generato e una data di ultima modifica. Questi imbrogliano il sistema di controllo del codice sorgente nel pensare che siano cambiati quando non lo hanno fatto. Quindi dovrai analizzare l'XML almeno quanto basta per eliminare quelli.Non conosco una bandiera per impedire che vengano generati in primo luogo.

+0

$ system.OBJ.Export accetta come terzo parametro una stringa contenente flag (documentati come qspec). Invio "/ diffexport = 1 "(escluse le virgolette) in questo parametro escluderà i timestamp delle modifiche (e un paio di altre cose) dall'esportazione –

+0

@SteveMallam - Grazie! Sapete dove è documentato. Non è nel metodo ShowFlags o nella documentazione della classe – psr

+0

Scuse: ho appena visto questa domanda. Non so sulla documentazione, ma da% Reference di classe SYSTEM.OBJ (ad esempio http://docs.intersystems.com/cache20122/csp /documatic/%25CSP.Documatic.cls?CSPCHD=00c00v3d00002bwfZO2x6U0000EYSBS6XxkRToTmb6F2qrGw--) "qspec è un elenco di bandiere o qualificatori che possono essere visualizzati con 'Do $ system.OBJ.ShowQualifiers()' e 'Do $ system.OBJ .ShowFlags() '" –