OCVS — OneDrive Code Versioning System
Un sistema di controllo versione decentralizzato per VS Code che usa OneDrive (o qualsiasi cartella condivisa) come remote.
Funzionalità
- Repository su OneDrive — init, clone, repair
- Branch — crea, switcha, elimina, lock/unlock
- Commit — stage, commit, snapshot, manifest SHA-256
- Pull Request — crea, approva, chiudi, merge con three-way merge
- Deploy — pubblica file con cache-busting versioning
- Deduplicazione — gli oggetti dei commit sono salvati una sola volta per hash SHA-256
- Publish incrementale — il codice pubblicato resta completo, ma i file invariati non vengono riscritti
- TypeScript — compila
.ts → .js con sourcemap inline al deploy
- UI — pannello SCM nativo, tree view, webview grafo commit, webview PR
Requisiti
- VS Code ^1.105.0
- Node.js 20+ (solo per sviluppo)
- OneDrive o cartella remota condivisa
Configurazione
| Chiave |
Default |
Descrizione |
ocvs.remoteRoot |
"" |
Path assoluto della cartella remote |
ocvs.userId |
"anonymous" |
ID utente nei metadata |
ocvs.compileTypeScript |
true |
Compila .ts al deploy |
ocvs.sharePointDriveId |
"" |
Id della document library SharePoint (drive) |
ocvs.sharePointRootPath |
"" |
Cartella root dentro la document library |
Integrazione SharePoint (Microsoft Graph)
OCVS può usare una SharePoint document library come storage tramite Microsoft Graph.
Permessi richiesti
Il comando richiede l'autorizzazione Files.ReadWrite (e quindi una sessione Microsoft
https://graph.microsoft.com/Files.ReadWrite). Al primo utilizzo VS Code mostra il
consenso OAuth; l'estensione non memorizza né stampa mai il token.
Come trovare ocvs.sharePointDriveId
Apri il sito SharePoint e la document library.
Il drive id è l'id della library. Recuperalo con Graph:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drive
oppure, se la library è di un gruppo/team:
GET https://graph.microsoft.com/v1.0/groups/{group-id}/drive
nella risposta, il campo id è il driveId da configurare.
In alternativa puoi chiamare
GET https://graph.microsoft.com/v1.0/drives per elencare tutte le library
accessibili e copiare l'id di quella giusta.
Imposta ocvs.sharePointDriveId in VS Code (Settings → OCVS).
Come configurare ocvs.sharePointRootPath
È la cartella (relativa alla root della library) dove OCVS lavora, in forward slashes:
"" → root della library
"OCVS" → cartella OCVS in root
"OCVS/Data" → sottocartella
Verifica rapida
Esegui OCVS: Test SharePoint Storage (anche dalla tree view). Il comando:
- Autentica con Microsoft Graph (se non c'è una sessione).
- Elenca i children della cartella configurata.
- Mostra una QuickPick con numero e nomi degli elementi trovati.
Se qualcosa non va, mostra l'errore HTTP di Graph (401/403/404/…).
Storage e publish
I commit salvano i contenuti nel content store objects/<prefisso>/<hash> e i
snapshot storici contengono soltanto il manifest. Questo evita di caricare più
volte lo stesso contenuto su OneDrive; i repository esistenti con snapshot fisici
restano leggibili.
Ogni destinazione di publish mantiene .ocvs-publish-manifest.json. Il publish
calcola l'hash del contenuto finale, scrive soltanto file nuovi o modificati e
rimuove quelli eliminati dal workspace. La destinazione risultante è comunque
sempre una copia completa e recuperabile del codice.