È possibile utilizzare variabili in una specifica di configurazione ClearCase?
-
22-08-2019 - |
Domanda
Ad esempio, invece di scrivere quanto segue:
element * .../my_branch_01/LATEST
element * .../base_branch/LATEST -mkbranch my_branch_01
Vorrei scrivere qualcosa del genere:
MY_BRANCH=my_branch_01
element * .../%MY_BRANCH%/LATEST
element * .../base_branch/LATEST -mkbranch %MY_BRANCH%
È possibile?Qual è la sintassi corretta?
Soluzione
L'unico modo nativo per farlo in ClearCase è utilizzare attributo All'interno di una specifiche di configurazione.
Secondo il selettore di versione regole, puoi creare una regola di "selezione per query", basata ad esempio su un attributo:
element * ...{MY_ATTRIBUTE_NAME=="aValue"}
selezionerebbe il LATEST
versione su qualsiasi ramo con un attributo 'MY_ATTRIBUTE_NAME
' con 'aValue
' dentro.
Ciò significa che devi modificare il valore dell'attributo sul vecchio ramo, inserirlo nel nuovo ramo, 'cleartool setcs
' di nuovo la tua visualizzazione e dovresti avere un nuovo contenuto basato sulla selezione di una nuova versione.
Non è molto semplice, ma potrebbe funzionare, ad eccezione della parte mkbranch (che necessita di un nome fisso).
Per quanto riguarda La risposta di GeekCyclist, alcuni commenti:
La soluzione per includere una specifica di configurazione comune può funzionare per la soluzione Base ClearCase, ma:
- deve essere in una condivisione disponibile per tutti gli sviluppatori interessati
- IL setcs è infatti necessario che Ccuses view_server pulisca le sue cache e rivaluti le specifiche di configurazione correnti, che sono archiviate nel file config_spec nella directory di archiviazione della vista.Ciò comprende:
- Valutazione di regole temporali con specifiche non assolute (ad esempio, adesso, martedì)
- Rivalutazione delle regole –config, possibilmente selezionando oggetti derivati diversi rispetto a prima
- Rilettura dei file nominati nelle regole di inclusione
- tutti gli altri sviluppatori devono essere informati quando cambia il file delle specifiche di configurazione incluso comune (non è inclusa alcuna notifica nativa in ClearCase)
Se è necessario avere un "ambiente" (ad es.una "vista" o area di lavoro) con un contenuto variabile (a seconda di un ramo diverso), è necessario definire un collegamento simbolico (o un sostituto di Windows) che punti a viste diverse (ciascuna con le proprie specifiche di configurazione)
In questo modo, devi solo modificare il collegamento (o il percorso sostituito) per modificare le specifiche di configurazione associate a un dato fisso sentiero.
Altri suggerimenti
E 'stato un po' da quando ho lavorato in ClearCase (siamo passati a Subversion), ma se non ricordo male non v'è alcun modo per farlo nativo di ClearCase.
Si può usare o scrivere un generatore di script che creerebbe il file spec e quindi includere che nella specifica attuale:
element * CHECKEDOUT
include scripted_file_output
Quindi eseguire
cleartool setcs -current
Il problema di questo approccio è che credo che la comprendono spec avrebbe bisogno di essere rigenerato e le setcs cleartool eseguito ogni volta che si modifica il valore di MY_BRANCH.