Usando TortoiseSVN tramite la riga di comando

Voglio usare le opzioni SVN della riga di comando. Uso TortoiseSVN e eseguo diversi comandi e ottengo il seguente errore.

svn‘ non è riconosciuto come comando interno o esterno

Ho usato il comando

svn checkout [-N] [--ignore-externals] [-r rev] URL PATH 

Penso che dovrei aggiungere qualche variabile d’ambiente o qualcos’altro.

Cosa devo fare o non posso utilizzare TortoiseSVN dalla riga di comando?

Di default TortoiseSVN ha sempre una GUI (Graphical User Interface) ad essa associata. Ma sul programma di installazione (della versione 1.7 e successive) è ansible selezionare l’opzione “Strumenti client della riga di comando” in modo da poter richiamare comandi svn (come svn commit e svn update) dalla riga di comando.

Ecco uno screenshot dell’opzione “Strumenti client della riga di comando” nel programma di installazione, è necessario assicurarsi di selezionarlo:

How-to-install-TortoiseSVN-CommandLineTools

TortoiseSVN ha un’interfaccia a riga di comando che può essere utilizzata per l’automazione della GUI TortoiseSVN ed è diversa dalla normale versione di Subversion.

È ansible trovare informazioni sulle opzioni della riga di comando di TortoiseSVN nella documentazione: Appendice D. Automazione di TortoiseSVN . Il programma principale su cui lavorare è TortoiseProc.exe .

Ma una nota in cima ci dice già:

Ricorda che TortoiseSVN è un client GUI e questa guida all’automazione ti mostra come far apparire le windows di dialogo TortoiseSVN per raccogliere l’input dell’utente. Se vuoi scrivere uno script che non richiede input, dovresti usare invece il client ufficiale della riga di comando di Subversion.

Un’altra opzione potrebbe essere quella di installare i binari di Subversion. Slik SVN è una bella build (e non richiede una registrazione come Collabnet). Le versioni recenti di TortoiseSVN includono anche il client della riga di comando se si sceglie di installarlo.

Se hai già installato la GUI TortoiseSVN e ti sei chiesto come eseguire l’upgrade agli strumenti da riga di comando, ecco i passaggi …

  1. Vai a Pannello di controllo di Windows → Programma e funzionalità (Windows 7 e versioni successive)
  2. Localizza TortoiseSVN e fai clic su di esso.
  3. Seleziona “Cambia” tra le opzioni disponibili.
  4. Fare riferimento a questa immagine per ulteriori passaggi.

    Abilita riga di comando TortoiseSVN

  5. Dopo il completamento degli strumenti client della riga di comando, aprire un prompt dei comandi e digitare svn help per verificare l’installazione corretta.

Per utilizzare il supporto dei comandi, devi seguire questa procedura:

  1. Definisci il percorso nelle variabili d’ambiente:

    • aprire ‘ Proprietà di sistema ‘;
    • nella scheda ‘ Avanzate ‘ fai clic sul pulsante ‘ Variabili d’ambiente
    • nella sezione ‘ Variabili di sistema ‘ seleziona l’opzione ‘ Percorso ‘ e fai clic su ‘ modifica
    • aggiungi un valore variabile con il percorso del file TortoiseProc.exe , ad esempio:

      C: \ Programmi \ TortoiseSVN \ bin

  2. Poiché hai registrato TortoiseProc , puoi utilizzarlo in base alla documentazione di TortoiseSVN.

    Esempi:

    TortoiseProc.exe / comando: commit /path:”c:\svn_wc\file1.txt*c:\svn_wc\file2.txt “/ logmsg:” messaggio del registro di prova “/ closeonend: 0

    TortoiseProc.exe / comando: update / percorso: “c: \ svn_wc \” / closeonend: 0

    TortoiseProc.exe / comando: log /path:”c:\svn_wc\file1.txt “/ startrev: 50 / endrev: 60 / closeonend: 0

PS Per usare un nome descrittivo come “svn” invece di “TortoiseProc”, inserisci il file “svn.bat” nella directory di “TortoiseProc.exe”. C’è un esempio di svn.bat:

 TortoiseProc.exe %1 %2 %3 

Per abilitare svn eseguire nuovamente il programma di installazione TortoiseSVN, selezionare “Modifica” (consente agli utenti di modificare il modo in cui sono installate le funzionalità) e installare “strumenti client della riga di comando”.

La mia soluzione era usare DOSKEY per impostare alcuni alias per i comandi che uso di più:

 DOSKEY svc=TortoiseProc.exe /command:commit /path:. DOSKEY svu=TortoiseProc.exe /command:update /path:. DOSKEY svl=TortoiseProc.exe /command:log /path:. DOSKEY svd=TortoiseProc.exe /command:diff /path:$* 

Google “doskey persist” per suggerimenti su come impostare un file .cmd che viene eseguito ogni volta che si apre il prompt dei comandi come un file. * Rc in Unix.

È ansible installare sia TortoiseSVN che gli strumenti della riga di comando di Apache Subversion. Di solito installo gli strumenti SVN di Apache dal sito di download di VisualSVN: https://www.visualsvn.com/downloads/

Una volta installato, posiziona Subversion \ bin nel tuo PATH impostato. Quindi sarai in grado di utilizzare TortoiseSVN quando desideri utilizzare la GUI e disponi degli strumenti da riga di comando SVN appropriati da utilizzare dalla riga di comando.

Come ha sottolineato Joey, TortoiseSVN ha una propria syntax della riga di comando. Sfortunatamente è abbastanza brutto, se sei abituato a comandi svn , e ignora la directory di lavoro corrente, quindi non è molto utilizzabile, tranne che per lo scripting.

Ho creato un piccolo programma Python ( tsvn ) che simula la syntax della riga di comando svn più vicino ansible e chiama TortoiseSVN di conseguenza. Quindi, la differenza tra chiamare i normali strumenti della linea di comando e chiamare TortoiseSVN è ridotta a una piccola lettera t all’inizio.

Il mio programma tsvn non è ancora completo ma già utile. Può essere trovato nel cheeseshop ( https://pypi.python.org/pypi/tsvn/ )

Dopo un po ‘di tempo, ho usato questa soluzione alternativa …

(nel file .bat)

 SET "CHECKOUT=http://yoururl.url"; SET "PATH=your_folder_path" start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH% 

La mia correzione per ottenere i comandi SVN era copiare i file .exe e .dll dalla directory TortoiseSVN e incollarli nella cartella system32.

È anche ansible eseguire il comando dalla directory TortoiseSVN e aggiungere il percorso della directory di lavoro a ciascun comando. Per esempio:

 C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout 

Aggiungere il cestino al percorso dovrebbe farlo funzionare senza duplicare i file, ma non ha funzionato per me.

C’è una confusione che sta causando un sacco di utenti di TortoiseSVN a utilizzare gli strumenti della riga di comando sbagliati mentre cercavano il client della riga di comando svn.exe . *

Cosa devo fare o non posso utilizzare TortoiseSVN dalla riga di comando?

svn.exe

Se si desidera eseguire i comandi di Subversion dal prompt dei comandi, è necessario eseguire il client della riga di comando svn.exe . TortoiseSVN 1.6.x e versioni precedenti non includevano gli strumenti da riga di comando SVN, ma le versioni moderne lo fanno.

Se si desidera ottenere gli strumenti della riga di comando SVN senza installare TortoiseSVN, controllare la pagina delle distribuzioni binarie SVN o semplicemente scaricare la versione più recente dalla pagina dei download di VisualSVN .

Se sul proprio sistema sono installati gli strumenti della riga di comando SVN, ma si ottiene comunque che l’errore 'svn' is not recognized as an internal or external command , è necessario controllare la variabile di ambiente %PATH% . %PATH% deve includere il percorso della directory degli strumenti SVN, ad esempio C:\Program Files (x86)\VisualSVN\bin .

TortoiseProc.exe

Oltre a svn.exe , TortoiseSVN viene fornito con TortoiseProc.exe che può essere richiamato dal prompt dei comandi. Nella maggior parte dei casi, non è necessario utilizzare questo strumento, perché dovrebbe essere utilizzato solo per l’automazione della GUI. TortoiseProc.exe non è un sostituto per il client della riga di comando SVN.

Dopo aver selezionato “Strumenti da riga di comando SVN” diventerà così:

Inserisci qui la descrizione dell'immagine

Avevo già installato gli strumenti della riga di comando, ma ancora non ero in grado di correggere questo errore.

  • Ho riavviato Android Studio, ma non ha risolto il mio problema

Poi ho capito che dopo aver installato SVN non avevo riavviato il PC, e quello era il problema principale.