Gestione del codice Firma in un ambiente controllato sorgente

8

Solo una breve domanda, si spera:

Il mio team gestisce un software che utilizza la distribuzione ClickOnce ed è firmato con un certificato. Manteniamo il certificato pubblico effettivamente utilizzato su una macchina separata che viene utilizzata solo per la firma. Funziona bene.

Dove occasionalmente ci imbattiamo in problemi, però, è quando qualcuno deve firmarlo localmente con un nuovo certificato di test in modo che possano costruire e testare la soluzione. Inevitabilmente, questa nuova impronta digitale del certificato viene sottoposta al controllo della versione come parte del file delle impostazioni del progetto. Non causa un problema nella casella di firma poiché le sue impostazioni del certificato non vengono mai trasferite al server Git, quindi le estrazioni da quel computer non sovrascrivono le modifiche locali. Tuttavia, causa problemi a tutti gli altri in quanto hanno il proprio certificato di test che viene utilizzato sul proprio computer locale.

Esiste un modo corretto per gestire questa situazione? Forse in qualche modo in Git per escludere le modifiche da una parte specifica di un file di configurazione, piuttosto che dall'intera cosa?

    
posta Locke 18.06.2015 - 20:38
fonte

1 risposta

9

In Git non è possibile escludere le modifiche solo in parte di un file. In genere, ciò che si può fare è esternalizzare quella parte del file in un altro file di configurazione e quindi aggiungere l'altro file di configurazione al file .gitignore. Ciò consente ad ogni sviluppatore di personalizzare la configurazione in base alle esigenze, ma impedisce loro di verificare accidentalmente le modifiche e influire sugli altri.

Il modo in cui lo fai varia ovviamente a seconda della lingua / struttura. Come menzioni ClickOnce assumerò che sia una soluzione .Net in questo caso. Supponiamo che tu abbia un web.config con il seguente contenuto

<signingInfo>
  <certificate path="C:\test\whatever.cert">
</signingInfo>

Puoi sostituirlo con

<signingInfo configSource="signing.config">

"signing.config" è aggiunto al file .gitignore. Ogni sviluppatore quindi imposta signing.config come necessario a livello locale e non è necessario ricordare esplicitamente di non impegnare le modifiche su di esso.

    
risposta data 18.06.2015 - 21:04
fonte

Leggi altre domande sui tag