0

我正在开发一个用 Ruby 编写的自动化程序。在程序执行过程中,我需要一个 SVN 回购忽略 2 个或更多文件。此过程没有用户输入,因此svn propedit svn:ignore .不可能使用类似的命令,因为它会打开文本编辑器来请求文件。

通常,我直接从 shell 处理这个问题的方法是利用propset svn:ignore并点击[ENTER]中间文件名来继续语句:

svn propset svn:ignore "filename1
> filename2" .

我尝试使用以下 Ruby 语句对此进行模拟:

system("svn propedit svn:ignore 'filename1")
system("filename2' .")

但是在执行时我收到以下错误:

sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file

我也尝试dir-props在目录中创建一个文件,.svn但无法将更改注册到存储库。我用 验证了这一点svn proplist -v -R。即使这确实有效,我也不能保证它在我使用该程序的所有可能情况下都能成功。

我在这方面已经有一段时间了,并且已经没有想法了。我尝试搜索允许我在命令的两行之间模拟按键的 Ruby 命令,propedit svn:ignore但未成功。

任何人都有我应该如何处理这个问题的解决方案?它对我的程序正确运行至关重要。先感谢您。

4

1 回答 1

1

通过创建一个忽略文件并将其提供给svn propset. 不确定是否有更好的解决方案,但这至少可以满足我的需求:

    File.open("ignore.txt", "wb") { |f| f.write("filename1\nfilename2\n") }
    system("svn propset svn:ignore -F ignore.txt .")
    File.delete("ignore.txt")
于 2013-06-25T00:23:51.417 回答