Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows propset svn问题:忽略-可能与Vista相关_Windows_Svn_Version Control - Fatal编程技术网

Windows propset svn问题:忽略-可能与Vista相关

Windows propset svn问题:忽略-可能与Vista相关,windows,svn,version-control,Windows,Svn,Version Control,据我所知,使用SVN忽略目录内容的命令如下: svn propset svn:ignore "*" tmp/ 这应该在tmp目录的内容上设置ignore属性,对吗?换句话说,通配符被设置为tmp目录上的忽略值。问题是,以下是我的Windows box上发生的情况: > svn propset svn:ignore "*" ./tmp property 'svn:ignore' set on 'app' property 'svn:ignore' set on 'config' prope

据我所知,使用SVN忽略目录内容的命令如下:

svn propset svn:ignore "*" tmp/
这应该在
tmp
目录的内容上设置ignore属性,对吗?换句话说,通配符被设置为tmp目录上的忽略值。问题是,以下是我的Windows box上发生的情况:

> svn propset svn:ignore "*" ./tmp
property 'svn:ignore' set on 'app'
property 'svn:ignore' set on 'config'
property 'svn:ignore' set on 'db'
property 'svn:ignore' set on 'doc'
property 'svn:ignore' set on 'lib'
property 'svn:ignore' set on 'log'
property 'svn:ignore' set on 'nbproject'
property 'svn:ignore' set on 'public'
[etc...]
那是不对的。我是做错了什么事(或者可能会发疯),还是我的svn在Windows上坏了

一些注意事项:

  • 计算机正在运行Windows Vista SP1
  • 通过Tortoise设置此属性非常有效
  • 我正在使用:
>svn——版本
svn,版本1.5.2(r32768)
2008年8月28日19:05:34编译



更新:我刚刚在Windows XP机器上试用过,效果如预期。因此,要么这是一个特定于Vista的问题,要么我的Vista配置有问题。还有人能在Vista上重现这个问题吗?我刚刚发现Vista没有被列为上支持的平台之一。

请尝试不使用尾随斜杠。此外,tmp目录本身也必须添加到存储库中。

命令应能按预期工作

*
正在全球化,这是不应该的。那么,您正在运行:
svn propset svn:ignore[value]app config db doc lib log nbproject public。。。tmp

(由于应用程序是第一个受影响的文件夹,我猜在它之前还有另一个文件夹)

你可以尝试两件事:

  • 指定列表文件:
    svn propset svn:ignore tmp-F.svnignore
  • 只需指定路径:
    svn propset svn:ignore tmp
    。这将打开默认文本编辑器(如果已配置),允许您写入和保存列表

  • 回复评论

    由于您现在正在尝试更正设置,
    propedit
    propdel
    可以正常工作,尤其是在目录中有其他更改的情况下


    但是,如果您不需要担心任何其他更改(请检查
    svn st
    ),那么使用
    svn revert-R
    svn propset
    会更快。这并不能回答您的svn问题,但为什么您要尝试忽略目录的所有内容呢?在我看来,如果您想在构建中的某个点上创建一个临时目录,那么应该将该目录作为构建的一部分,而不是从repo中创建

    您是否试图忽略它,因为它已经存在,您无法删除它

    无论如何,在我的unix命令行中,我忽略了一个名为tmp的目录中未跟踪的文件

    $ svn --version svn, version 1.5.1 (r32289) compiled Aug 28 2008, 10:00:12 $ svn propset svn:ignore '*' tmp $svn—版本 svn,版本1.5.1(r32289) 2008年8月28日10:00:12编译 $svn propset svn:忽略“*”tmp
    Windows会占用您的引用吗?

    我觉得为Windows编译的svn.exe二进制文件正在执行内置的globbing,这是它在unix构建中通常不会执行的操作,因为unix shell在构建命令行时需要执行globbing。我会考虑这种意外的行为,尤其是因为你似乎不能在全球化中工作。

    正如其他人指出的,您可以使用
    -F
    选项或在文本编辑器中以交互方式提供
    *

    然而,我认为你可能不会用最简单的方式来做这件事。要忽略整个子目录,我将执行以下操作:

    svn propset svn:ignore tmp .
    

    这将设置
    上的
    svn:ignore
    属性(当前目录,是
    tmp/
    的父目录),告诉它忽略
    tmp
    子目录及其下的所有内容。

    您使用的是哪个版本的subversion

    我在Windows上尝试了1.5.2,但它只更改了tmp目录的属性:

    [C:\Temp\temp] :svn propset svn:ignore "*" tmp/
    property 'svn:ignore' set on 'tmp'
    
    以及:


    看起来微软凭借其无穷的智慧:

    因此,不再传入转义通配符,而是将其展开:

    在Win 95、98、2000、XP下,应用程序按预期运行:当参数类似于«*.txt»时,应用程序进行通配符扩展;当参数类似于«*.txt»时,应用程序不进行通配符扩展。在WindowsVista下,通配符扩展总是发生,或者说,双引号不会抑制它


    上有关于这个问题的进一步讨论使用GUI SVN客户端是合理的(除非你是受虐狂!)。如果您使用的是Windows TortoiseSVN,那么它应该是您的第一个呼叫端口。右键单击要忽略的文件,然后单击“Ortoisesvn->Properties”。在“属性”对话框中,单击“名称”下拉箭头并选择“svn:忽略”,可以忽略整个目录。然后在“值”框中键入“*”表示所有值。当然,这些都没有引号。

    对于在shell脚本中使用“-F”选项的单行程序,只需尝试以下方法:

    echo "*" > .svnignore && svn propset svn:ignore <path> -F .svnignore && rm .svnignore
    
    echo“*”>.svnignore&&svn propset svn:ignore-F.svnignore&&rm.svnignore
    
    tmp目录肯定会添加到回购协议中。删除尾随斜杠没有任何区别。请参阅我的svn版本的原始问题。你使用的是同一版本吗?还有,你使用的是什么版本的Windows?是的,这是一个很好的观点。我可能会在某个时候将其从回购协议中删除。这是一个Rails应用程序,当你创建应用程序时,它会作为标准生成(一些子目录也会在其中创建)。我接受了这个答案。Jonathan对出现的问题给出了清晰的解释(部分-完整的解释请参见我自己的答案),并提供了两种解决方案。谢谢Jonathan。是的,我在尝试解决此问题时进行了多次恢复。:)请注意,您在回复的第一部分仍然有一些拼写错误。在我的Mac的bash shell中也有同样的错误,通配符总是扩展的。如果我通过“*”对其进行转义,它实际上在svn:ignore属性中以这种方式结束,包括ba
    echo "*" > .svnignore && svn propset svn:ignore <path> -F .svnignore && rm .svnignore