svn propedit给了我一个空白文件

时间:2009-12-11 15:59:49

标签: svn

我知道我的工作副本中填充了svn:ignore属性,但是当我这样做时

svn propedit svn:ignore . --editor-cmd notepad

我得到一个空白文件;编辑和保存空白文件对属性没有影响。使用其他编辑器会得到类似的结果。

为什么这不起作用?

我在Windows XP上使用1.4.2服务器和1.6.6客户端。

更新

我已经尝试过Notepad,UltraEdit-32和Sublime Text,无论有没有start /wait命令,都没有任何工作。我已经让它在Debian机器上运行,而不是在Windows XP上运行。任何人都可以提供具有所需结果的命令示例,或者我需要在Windows中更改的设置吗?

2 个答案:

答案 0 :(得分:2)

您必须使用不自行分叉的编辑器(即在后台启动实例然后立即返回)。对于Windows,我不确定哪个编辑器不起作用。

要尝试,请从命令行启动编辑器。如果在关闭编辑器窗口之前收到新提示,它将无效。

答案 1 :(得分:2)

您配置的编辑器必须与您完成编辑操作的SVN通信。这种通信是通过让SVN等到exitor关闭来完成的。

通常,在Windows命令行上调用程序时,它们不会让调用进程等待,而是分叉一个新进程并让调用命令继续。因此,SVN认为编辑操作立即完成并忽略了您的更改。

为了防止您喜欢的编辑器分支另一个进程,您必须通过start实用程序通过/wait选项调用它。您可以通过以下方式配置首选编辑器:

set SVN_EDITOR="start /wait notepad++.exe"

之前,您现在调用svn propedit命令,您必须确保编辑器(上例中的Notepad ++)实际上已关闭。否则,它不会再次启动,因此\wait选项不起作用!

现在你可以调用

svn propedit svn:ignore .

编辑器现在打开了。您可以编辑属性文件,保存并关闭编辑器。编辑器关闭后,SVN会更新该属性。