2

我需要使用 sudo 在我的项目上运行 svn 命令。我在自己的 .bash_profile 以及 root 用户的 .bash_profile 中将 SVN_EDITOR 设置为 vi,但是当我尝试执行 svn propedit 时,我得到了

svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found

每次我开始一个新会话时,我都必须设置 SVN_EDITOR。这是一种痛苦。关于如何/在哪里可以永久设置 SVN_EDITOR 的任何建议?这是在 CentOS 5.4 上。

4

3 回答 3

4

通过 sudo 运行命令不会启动登录或“交互式”shell,因此将其添加到各种bashrc配置文件资源文件将无济于事。

正如DES所说,快速而肮脏的方法是:

sudo env "SVN_EDITOR=$SVN_EDITOR" svn propedit svn:ignore .

但正如 derobert 评论的那样,更好更持久的解决方案是运行sudo visudo编辑/etc/sudoers,并添加SVN_EDITORenv_keep 选项

于 2011-04-20T18:30:53.443 回答
2

sudo在运行命令之前清除大部分环境。这是一件好事™。快速而肮脏的解决方法是使用env

sudo env SVN_EDITOR=$SVN_EDITOR svn propedit svn:ignore .

定义SVN_EDITORin~root/.bashrc应该可以,但更好的解决方案是定义 in/etc/profile以便每个用户都获得相同的值。

于 2010-12-21T19:17:19.520 回答
0

~/.bashrc

我记得 .bash_profile 在连接时被调用。(当你 ssh 到机器时)并且 .bashrc 会在每个 bash 进程启动时被调用。但我可以把这个倒过来。

Centos 是当今为数不多的严格遵守这一点的发行版之一。据我所知。

于 2010-12-21T18:56:10.223 回答