Domanda

Sto usando Visual Source Safe 6.0d (requisito di lavoro) e ho cercato di hackerare insieme un piccolo script di shell per permettermi di rimuovere facilmente un albero dei sorgenti o avvisarmi se i file sono stati estratti così Posso essere sicuro di non cancellare per errore il lavoro. Esiste un modo per sapere se i file sono stati estratti oltre a controllare il bit di sola lettura sui file stessi?

  1. VSS non sembra scrivere alcun file (ho preso un'istantanea della directory prima e dopo aver verificato un file e non c'era alcuna differenza nei file elencati)
  2. Non riesco a trovare nulla da Google.
  3. Ho anche verificato le differenze tra vssver.scc e non ho trovato nulla.

Intendiamoci, verificare la presenza di file scrivibili non è la cosa peggiore al mondo, ma sembra che VSS renda scrivibili diversi file nella struttura dei sorgenti (* .ncb, * .scc, * .sln) senza che io abbia verificato qualcosa fuori. Posso semplicemente escludere i file ma sto cercando di trovare una soluzione un po 'più elegante.

È stato utile?

Soluzione

Forse la tecnica più efficace è chiedere a SourceSafe stesso cosa è stato estratto e / o se sono stati estratti singoli file di interesse. Mentre mi rendo conto che non è ovvio come farlo in un piccolo script di shell, raccomanderei l'uso di PowerShell per questo.

SourceSafe espone un Modello a oggetti di automazione OLE (noto anche come modello a oggetti COM) e PowerShell può parlare con oggetti COM. Se non hai familiarità con queste cose, è molto da imparare ma alla fine ne vale la pena.

In alternativa, se PowerShell è troppo estraneo, VBScript può anche essere usato per controllare gli oggetti COM.

Altri suggerimenti

È possibile utilizzare COM per verificare se un file è stato estratto. Dai un'occhiata al IVSSItem.IsCheckedOut . Per ulteriori informazioni sull'uso di VSS tramite COM, consultare:

http://msdn.microsoft.com /en-us/library/4d44xhsd%28VS.80%29.aspx

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