Utilizzo di TortoiseSVN tramite la riga di comando


254

Voglio usare le opzioni SVN della riga di comando. Uso TortoiseSVN, eseguo diversi comandi e visualizzo 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 usare TortoiseSVN dalla riga di comando?


4
Suggerirei sovversione slik . E dopo l'installazione basta aggiungere la sua directory bin al tuo percorso. -bhups
bhups,

3
TortoiseSVN è probabilmente il client SVN della GUI di Windows più utilizzato che ci sia ed è ampiamente documentato. Non lo definirei pseudo-client solo perché non è l'implementazione della riga di comando di riferimento.
Joey,

18
L'ultima versione di TortoiseSVN (1.7.1 della presente scrittura) ha un'opzione durante l'installazione per gli strumenti da riga di comando. Non è attivato per impostazione predefinita ma installerà i file della riga di comando standard per svn. Quindi non è più necessario installare un pacchetto di sovversione separato come Silk.
V,

1
Solo una rapida FYI, se si utilizza Slik svn e si ottiene quell'errore: "'svn' non viene riconosciuto ..." potrebbe essere necessario aprire la finestra di dialogo Proprietà del sistema. Mentre Slik aggiunge la voce corretta alla variabile Path, potresti dover fare clic su modifica e 'ok' (anche se non hai apportato modifiche) per abilitare la variabile. Almeno questa è stata la mia esperienza con Windows Vista. Dopo averlo fatto, Windows ha riconosciuto la modifica nel percorso e il mio comando svn è stato riconosciuto.
Jesse,

1
Ho aggiunto il percorso SlikSvn / bin alla variabile d'ambiente ma ho ancora questo errore ...
Lion789,

Risposte:


464

Per impostazione predefinita, TortoiseSVN ha sempre una GUI (Graphical User Interface) ad essa associata. Ma sul programma di installazione (della versione 1.7 e successive) è possibile selezionare l'opzione "Strumenti client della riga di comando" in modo da poter chiamare i comandi svn (come svn commit e svn update) dalla riga di comando.

Ecco uno screenshot dell'opzione "Strumenti client da riga di comando" nel programma di installazione, devi assicurarti di selezionarlo:

Come--TortoiseSVN-CommandLineTools da installare


52
Personalmente, preferisco questa risposta a quella accettata: nessuna installazione secondaria e pieno accesso alla riga di comando SVN standard.
Haroldo_OK,

2
Ha anche l'ulteriore vantaggio che le versioni dello strumento da riga di comando rimangono sincronizzate con la versione TortoiseSVN.
the_mandrill,

4
... il che significa, in modo più dettagliato: il formato della directory di lavoro di Subversion è cambiato alcune volte, ad esempio nelle versioni 1.7 e 1.8. Un client 1.7 non utilizzerà una directory di lavoro precedente a meno che non sia svn upgraded; successivamente, un client 1.6 non sarà più in grado di utilizzarlo.
Tobias,

38
Come suggerimento, se Tortoise è già installato, non è necessario reinstallare. Puoi semplicemente aprire il file .msi del programma di installazione originale e invece di scegliere "Disinstalla" puoi scegliere "Modifica". Aggiornerà semplicemente la tua attuale installazione di Tortoise senza rovinare nulla.
Trevor,

5
Come suggerimento, se Tortoise è già installato e non è presente il file .msi , è possibile accedere al Pannello di controllo -> Programmi e funzionalità, quindi selezionare TortoiseSVN -> Modifica.
zvi,

131

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

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

Ma una nota praticamente in alto dice già:

Ricordare che TortoiseSVN è un client GUI e questa guida di automazione mostra come far apparire le finestre di dialogo TortoiseSVN per raccogliere l'input dell'utente. Se si desidera scrivere uno script che non richiede input, è necessario utilizzare invece il client della riga di comando ufficiale di Subversion.

Un'altra opzione sarebbe 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.


2
Solo per aggiungere a questo - assicurati che Tortoise sia sulla tua strada. Altrimenti, niente funzionerà.
Thomas Owens,

2
Sulla base di questa risposta, penso che la soluzione migliore sarebbe quella di installare l'attuale client della riga di comando SVN piuttosto che apprendere una seconda interfaccia della riga di comando. Non so come farlo, però.
giovedì

2
Thomas: Di default sia TortoiseSVN che Slik SVN modificheranno il percorso di conseguenza.
Joey,

23
Questa soluzione è semplicemente obsoleta, il programma di installazione di TortosieSVN ora include gli strumenti da riga di comando.
Josh,

1
Potrebbe essere necessario riavviare dopo l'installazione in modo da ottenere la modifica alla variabile di ambiente PATH.
Oliver Bock,

91

Se hai già installato la GUI di TortoiseSVN e ti stai chiedendo come aggiornare agli strumenti da riga di comando, ecco i passaggi ...

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

    Abilitazione riga comandi TortoiseSVN

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


La tua risposta non è stata già formattata. E aveva informazioni indesiderate. Ha fatto sia la formattazione che la modifica della risposta in modo corretto. Per ulteriori informazioni, leggi il Centro assistenza. ;)
Lucky

Win10 è "App e funzionalità" .. ma questo è probabilmente ovvio
sottile

Ok non credermi. Si prega di porre questo come una domanda in meta se la modifica è legittima o meno. Non solo ha formattato la tua risposta, ha anche rimosso le informazioni indesiderate che non sono necessarie per la risposta. Si chiama moderazione. E le persone con alti rappresentanti generalmente puliscono il sito moderando e contribuendo, motivo per cui ti ho suggerito di consultare il centro assistenza. Ma vuoi solo discutere invece di acquisire conoscenza. Buona fortuna.😉
Lucky

Sì, in realtà mi interessa condividere le conoscenze e non rivendicare il lavoro e la predicazione di qualcuno. Inoltre non sono un seguace cieco di alte ripetizioni.
Devendra Vaja,

mentre abilitiamo la riga di comando, richiede il percorso dell'applicazione che è necessario scaricare. percorso: osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…
Amit Joshi

27

Per utilizzare il supporto comandi, attenersi alla seguente procedura:

  1. Definisci percorso nelle variabili di ambiente:

    • aprire " Proprietà del sistema ";
    • nella scheda " Avanzate " fai clic sul pulsante " Variabili d'ambiente "
    • nella sezione " Variabili di sistema " selezionare l'opzione " Percorso " e fare clic su " modifica "
    • aggiungere il valore della variabile con il percorso del file TortoiseProc.exe , ad esempio:

      C: \ Programmi \ TortoiseSVN \ bin

  2. Poiché hai registrato TortoiseProc , puoi utilizzarlo secondo la documentazione di TortoiseSVN .

    Esempi:

    TortoiseProc.exe / comando: commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" messaggio registro test "/ closeonend: 0

    TortoiseProc.exe / comando: aggiornamento / percorso: "c: \ svn_wc \" / closeonend: 0

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

PS Per utilizzare un nome descrittivo come 'svn' invece di 'TortoiseProc', posizionare il file 'svn.bat' nella directory di 'TortoiseProc.exe'. C'è un esempio di svn.bat:

TortoiseProc.exe %1 %2 %3

Il problema principale non è il nome dell'eseguibile (e come trovarlo) ma la sintassi della riga di comando totalmente diversa; vedi la mia risposta che parla del mio tsvnprogramma (che non esisteva al momento della risposta di Warlock). Le versioni recenti di Windows consentono di specificare tutti gli argomenti come %*(anziché %1 %2 %3...).
Tobias,

10

Per abilitare svn eseguire nuovamente il programma di installazione di TortoiseSVN, selezionare "Modifica" (Consente agli utenti di cambiare il modo in cui sono installate le funzionalità) e installare "Strumenti client da riga di comando".


per quelli di voi che si chiedono dove sia l'opzione "Modifica" - prova a reinstallare Tortoise SVN
maya

@maya Se lo hai già installato, non provare a disinstallarlo e reinstallarlo. Vai a Control Panel\Programs\Programs and Featurescercare Tortoise SVN e fai Changeclic su, quindi fai clic su Modify.
Lucky

9

La mia soluzione era usare DOSKEY per impostare alcuni alias per i comandi che utilizzo 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 apri il prompt dei comandi come un file. * Rc in Unix.


Grande! Questa è l'unica risposta che in realtà invoca TortoiseSVN, non ordinaria svn, dalla riga di comando.
Warlike Chimpanzee,

4

Puoi avere sia TortoiseSVN che gli strumenti da riga di comando di Apache Subversion installati. Di solito installo gli strumenti Apache SVN dal sito di download di VisualSVN: https://www.visualsvn.com/downloads/

Una volta installato, posiziona Subversion \ bin nel PATH impostato. Quindi sarai in grado di usare TortoiseSVN quando vuoi usare la GUI e hai gli strumenti della riga di comando SVN appropriati da usare dalla riga di comando.


3

C'è una confusione che sta facendo sì che molti utenti TortoiseSVN utilizzino gli strumenti errati della riga di comando quando in realtà stavano cercando un svn.execlient della riga di comando.

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

svn.exe

Se si desidera eseguire i comandi Subversion dal prompt dei comandi, è necessario eseguire il svn.execlient della riga di comando. TortoiseSVN 1.6.xe 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 dover installare TortoiseSVN, controllare la pagina delle distribuzioni binarie SVN o semplicemente scaricare l'ultima versione dalla pagina dei download di VisualSVN .

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

TortoiseProc.exe

A parte svn.exe, viene fornito TortoiseSVN TortoiseProc.exeche può essere chiamato dal prompt dei comandi. Nella maggior parte dei casi, non è necessario utilizzare questo strumento, poiché dovrebbe essere utilizzato solo per l'automazione della GUI. TortoiseProc.exenon sostituisce il client della riga di comando SVN.


2

Come sottolineato da Joey, TortoiseSVN ha una sua sintassi a riga di comando. Sfortunatamente è abbastanza brutto, se sei abituato ai svncomandi, e ignora l'attuale directory di lavoro, quindi non è molto utilizzabile - tranne che per gli script.

Ho creato un piccolo programma Python ( tsvn) che imita la svnsintassi della riga di comando il più vicino possibile e chiama TortoiseSVN di conseguenza. Pertanto, la differenza tra chiamare i normali strumenti a riga di comando e chiamare TortoiseSVN è ridotta a una piccola lettera tall'inizio.

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


Per chi non ha familiarità con Python: è necessario un interprete Python 2.x recente. Se hai easy_installo pip install, specifica semplicemente tsvn; altrimenti è possibile scaricare ed estrarre il tarball ed eseguire lo setup.pyscript di installazione contenuto . Dal momento che è interpretato, è possibile ispezionarlo in dettaglio ;-)
Tobias,

2

Dopo qualche 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%

2

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

È inoltre possibile 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

L'aggiunta del cestino al percorso dovrebbe farlo funzionare senza duplicare i file, ma non ha funzionato per me.


Questo approccio non funziona, mostra ancora'svn' is not recognized as an internal or external command
Suraj M

0

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

Inserisci qui la descrizione dell'immagine


5
Questo è il risultato desiderato, tuttavia questa risposta non dice come raggiungere effettivamente questo obiettivo.
BogdanBiv,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.