Qualche tempo fa ho presentato Source Control Switcher (articolo in inglese), una piccola estensione per Visual Studio che risolve un fastidio ricorrente: Visual Studio può avere attivo un solo provider del controllo del codice sorgente alla volta, e non lo sceglie in base al repository. Se al mattino lavori su una soluzione Git e al pomeriggio su una Subversion o TFVC, finisci per cambiare a mano Strumenti > Opzioni > Controllo del codice sorgente ogni volta. Source Control Switcher lo fa al posto tuo, appena apri una soluzione o una cartella.
L'ultima versione pubblicata sul Visual Studio Marketplace era ancora quella del 2020, pensata per Visual Studio 2015–2019. Oggi sono contento di annunciare Source Control Switcher 1.2.0, un aggiornamento importante che porta l'estensione sulle versioni attuali di Visual Studio.
Le novità della versione 1.2.0
- Visual Studio 2022 e Visual Studio 2026 (Community, Professional ed Enterprise, su x64 e Arm64), con un unico pacchetto. Chi usa Visual Studio 2015–2019 può continuare con la versione 1.1.2.
- Team Foundation Version Control (TFVC), rilevato dai binding TFVC nel file della soluzione o da un workspace locale TFVC.
- Strumenti > Detect Source Control Provider, un nuovo comando per ripetere il rilevamento e cambiare provider su richiesta, per esempio dopo averlo modificato a mano.
- Provider personalizzati: puoi associare il nome di un file o di una cartella a qualsiasi provider del controllo del codice sorgente tramite il suo GUID, anche per i client che l'estensione non conosce.
- Nuove opzioni: cambio automatico attivabile o disattivabile, notifiche nella barra di stato, livello di log, ricerca nelle cartelle superiori, rilevamento TFVC, rilevamento Perforce con timeout. Le scelte dei provider ora hanno nomi leggibili.
- Rilevamento migliorato: worktree e submodule Git, modalità Apri cartella e un controllo Perforce che gira in background, solo se il client Perforce è installato.
- Descrizione dell'estensione tradotta in italiano, francese e tedesco.

Ogni cambio di provider viene registrato nel riquadro Source Control Switcher della finestra Output, così è sempre chiaro quale provider è stato attivato e perché:

Dietro le quinte
Oltre alle novità, l'estensione è stata in gran parte riscritta seguendo le pratiche attuali per le estensioni di Visual Studio: caricamento in background solo quando si apre una soluzione o una cartella, nessuna operazione bloccante sul thread dell'interfaccia, e la logica di rilevamento separata da Visual Studio e coperta da unit test. Anche il pacchetto si è messo a dieta: non include più gli assembly di Visual Studio ed è passato da circa 12,9 MB a circa 32 KB. Build, test e rilasci ora girano su GitHub Actions, così le nuove versioni arrivano contemporaneamente sul Marketplace e su GitHub.
I client non più mantenuti per le versioni attuali di Visual Studio (Easy Git Integration Tools / Git Source Control Provider e i client Mercurial) sono stati rimossi; quelli supportati sono i provider Git e TFVC integrati in Visual Studio, VisualSVN, AnkhSVN e P4VS.
Ringraziamenti
Questa versione include contributi e idee della community: grazie a QianMoXi, a joe-kr (porting a Visual Studio 2022 e supporto ad AnkhSVN 2019) e a davideciarmiello, sul cui lavoro per TFVC si basa questa versione. E, come sempre, a Francesco Pretto per l'originale SccAutoSwitcher.
Download
- Da Visual Studio: Estensioni > Gestisci le estensioni, cerca Source Control Switcher.
- Source Control Switcher sul Visual Studio Marketplace
- Release 1.2.0 su GitHub (VSIX e note di rilascio)
- Codice sorgente su GitHub: issue e pull request sono benvenute.
L'estensione è gratuita e open source con licenza MIT. Nel caso in cui la trovaste utile, una valutazione sul Marketplace sarebbe davvero molto apprezzata!

