Ошибка Commit с ошибкой при передаче новой версии в svn-репозиторий
Я пытаюсь перенести новую версию в свой SVN-репозиторий, но я встретил эту ошибку:
svn: Commit failed (подробности следуют):
svn: Не удалось использовать внешний редактор для извлечения сообщения журнала; рассмотрите возможность установки переменной среды SVN_EDITOR или с помощью параметров -message (-m) или -file (-F)
svn: ни одна из переменных окружения SVN_EDITOR, VISUAL или EDITOR не установлена, и не была выбрана опция конфигурации "run-time-cmd" new-computers-computer: trunk newcomputer $
Что не так?
Ответы
Ответ 1
Джастин
Каждый раз, когда вы совершаете транзакцию с помощью Subversion, вам необходимо написать сводку того, что происходит (т.е. сообщение фиксации). Ошибка заключается в том, что Subversion пытается запустить текстовый редактор, чтобы вы могли написать сообщение фиксации, но редактор никогда не запускается. Установка SVN_EDITOR
в ваш .bash_profile сделает трюк. Вот несколько подробных пошаговых инструкций о том, как установить vim в качестве редактора по умолчанию, используемого svn: Исходная ссылка мертва, заменена на archive.is mirror
В качестве альтернативы, как указано в сообщении об ошибке, вы можете загрузить сообщение фиксации из существующего файла с помощью -f
или передать сообщение с -m
.
Примеры:
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
Ответ 2
Если вы хотите установить редактор по умолчанию, который будет использоваться каждый раз при запуске
svn commit
Попробуйте выполнить следующую команду в оболочке:
export SVN_EDITOR=nano
Это установит nano в качестве текстового редактора для сообщений фиксации. С этого момента, когда вы вызываете svn commit
без флага -m
, откроется nano. После закрытия nano SVN продолжит фиксацию.
Ответ 3
У меня также была такая же проблема, однако она была в Windows. Я смог решить проблему, используя -m (--message) и предоставив сообщение о фиксации.
Я также попытался использовать cygwin с сообщением фиксации, и это сработало.
Ответ 4
У меня была аналогичная проблема при попытке импортировать код без версии в новый репозиторий, на основе ответов, опубликованных по этому вопросу, я смог решить мою проблему (спасибо вам, ребята).
Я использую команду, которую я использовал для импорта локального проекта в SVN при использовании apache/http:
Где TestCodeDir является проектом и еще не был версией.
svn import /var/svn/TestCodeDir http://localhost/svn/TestCodeDir -m "Initial Commit"
Примечание. Необходимо, чтобы ваш сервер Apache был настроен правильно, и он должен быть запущен.
Надеюсь, это может помочь кому-то.
Ответ 5
У меня была такая же проблема при выполнении:
svn copy $svn_source_path $svn_destination_path
Мне не хватало добавления -m "log msg", т.е.
svn copy $svn_source_path $svn_destination_path -m -m "Test tag creation"