In base alla mia esperienza, un front-end GUI ben progettato, come TortoiseHG non crea di per sé problemi, cosa invece causa problemi sono incomprensioni e disattenzione dell'utente.
Uso thg come esempio perché la mia esposizione a TortoiseSVN e TortoiseGit è limitato.
Con uno strumento GUI, è molto facile per un utente inesperto non notare che lo strumento farà qualcosa che non si aspetta. Ad esempio, con Mercurial , puoi avere un numero arbitrario di teste remote senza nome. Normalmente Hg si lamenterà se proverai a spingere una testina remota senza nome, ma se hai l'opzione 'force push' selezionata nella GUI, non si lamenterà e non farà altro che alzare la testa comunque. Ciò può causare confusione poiché le persone si chiedono a cosa serve questo ramo, è stabile e dovrei usarlo? .
Con uno strumento da riga di comando, tali situazioni provocheranno un errore o un avvertimento e gli utenti dovranno capire l'errore per capire come correggere l'errore (unione nel ramo che causa l'errore ) o ignorarlo (rinominare il ramo in modo che lo scopo sia ovvio e quindi forzare il push se non dovrebbe essere unito in questo momento).
In definitiva, mentre gli strumenti della GUI semplificano l'avvio con un VCS , sono non un sostituto per comprendere come funziona realmente VCS . Questo è il motivo per cui molte persone consigliano di imparare prima la riga di comando e poi di migrare alcune attività in strumenti della GUI in seguito per ottimizzare il flusso di lavoro.