2010-10-11 9 views
18

sto cercando di commettere una nuova versione per il mio repository SVN, ma sono incontrati con questo errore:commettere l'errore fallito quando impegnandosi nuova versione di repository svn

svn: Commit failed (details follow):
svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found new-computers-computer:trunk newcomputer$

Cosa c'è di sbagliato?

+0

@Ether, quel messaggio di errore non significa nulla se sei nuovo a SVN o alla riga di comando. Controlla la risposta accettata da Blackcoat per vedere una risposta utile. – Sandy

risposta

26

Justin,

Ogni volta che si impegnano con Subversion, è necessario scrivere un riassunto di ciò che viene commesso (vale a dire il messaggio di commit). L'errore è dovuto al fatto che Subversion sta tentando di avviare un editor di testo in modo da poter scrivere un messaggio di commit, ma l'editor non viene mai avviato. Impostare lo SVN_EDITOR nel tuo .bash_profile farà il trucco. Ecco alcune dettagliate istruzioni passo-passo su come impostare vim come editor predefinito usato da svn: Original link dead, replaced with archive.is mirror

In alternativa, come suggerito nel messaggio di errore, è possibile caricare un messaggio di commit da un file esistente con -f, o passare un messaggio con -m.

Esempi:

svn commit -m "Fixed a regression that prevented pigs from flying (resolves issue #123, but causes strange behavior elsewhere)" 
svn commit -f /path/to/a/file/with/a/long/commit/message.txt 
+0

Cosa succede se voglio rendere TextMate l'editor di testo predefinito? –

+1

Nel file .bash_profile, aggiungi: export EDITOR = "$ HOME/bin/mate -w" – Blackcoat

+0

Analogamente, puoi impostare Sublime come predefinito facendo 'export EDITOR =' subl -w''. Per i dettagli completi sulla configurazione della riga di comando per Sublime, vedere http://www.sublimetext.com/docs/2/osx_command_line.html – Blackcoat

16

Se si desidera impostare editor predefinito che verrà utilizzato ogni volta che si esegue

svn commit 

Provate il seguente comando nella shell:

export SVN_EDITOR=nano 

Questo imposterà nano come editor di testo per i messaggi di commit. D'ora in poi, quando chiami svn commit senza il flag -m, si aprirà nano. Alla chiusura di nano, SVN continuerà a impegnarsi.

+0

E cosa accadrà? Per favore considera di aggiungere una descrizione alla tua risposta. – bahrep

+0

fondamentalmente quando è necessario impostare l'editor di default, è necessario utilizzare il comando dall'alto. – Kersh

0

Ho avuto un problema simile durante il tentativo di importare un codice non versione in un nuovo repository, in base alle risposte pubblicate su questa domanda sono stato in grado di risolvere il mio problema (grazie ragazzi).

sto condividendo il comando che ho usato per importare un progetto locale per SVN sull'uso apache/http:

Dove TestCodeDir è il progetto e non è stato ancora di versione.

svn import /var/svn/TestCodeDir http://localhost/svn/TestCodeDir -m "Initial Commit" 

Nota: è necessario che il server Apache sia configurato correttamente e che sia in esecuzione.

Spero che questo possa aiutare qualcuno.

2

Avevo anche lo stesso problema, tuttavia era su Windows. Sono stato in grado di risolvere il problema usando -m (--message) e fornendo il messaggio di commit.

Ho anche provato a utilizzare cygwin con un messaggio di commit e ha funzionato.