我有一个自动化程序,我正在编写用Ruby编写的程序。在程序的过程中,我需要SVN repo忽略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
命令的两行之间的按键,但是没有成功。
任何人都有解决方案我应该如何处理这个问题?它对我的程序正常运行至关重要。提前谢谢。
答案 0 :(得分: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")