代码之家  ›  专栏  ›  技术社区  ›  Charles Roper

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

  •  4
  • Charles Roper  · 技术社区  · 18 年前

    据我所知,忽略 所容纳之物 使用SVN的目录类型如下:

    svn propset svn:ignore "*" tmp/
    

    tmp 目录,对吗?换句话说,通配符被设置为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 --version
    svn, version 1.5.2 (r32768)
    compiled Aug 28 2008, 19:05:34


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

    8 回复  |  直到 18 年前
        1
  •  8
  •   Charles Roper    18 年前

    看起来微软凭借其无穷的智慧 changed the behavior of wildcard expansion in Windows Vista :

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

    关于这一问题,会议上还有进一步的讨论 Collabnet forum .

        2
  •  5
  •   Czechnology    14 年前

    命令 按照你的期望工作。

    这个 *
    svn propset svn:ignore [value] app config db doc lib log nbproject public ... tmp
    (由于应用程序是第一个受影响的文件夹,我猜在它之前还有另一个文件夹)。

    你可以尝试两件事:

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

    对评论的答复

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

    但是,如果您没有其他需要担心的更改(请检查 svn st ),使用它会更快 svn revert -R 和 svn propset .

        3
  •  3
  •   brian d foy    18 年前

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

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

    $ svn --version
    svn, version 1.5.1 (r32289)
       compiled Aug 28 2008, 10:00:12
    
    $  svn propset svn:ignore '*' tmp
    

    你的报价中有没有窗户?

        4
  •  3
  •   Greg Hewgill    18 年前

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

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

    svn propset svn:ignore tmp .
    

    这就决定了 svn:ignore . (当前目录,是 tmp/ )这告诉它忽略 tmp 子目录及其下的所有内容。

        5
  •  2
  •   Lasse V. Karlsen    18 年前

    您使用的是哪个版本的subversion?

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

    以及:

    [C:\Temp\temp] :svn proplist *
    svn: Skipping argument: '.svn' ends in a reserved name
    Properties on 'tmp':
      svn:ignore
    
        6
  •  1
  •   Alexander Klimetschek    16 年前

    echo "*" > .svnignore && svn propset svn:ignore <path> -F .svnignore && rm .svnignore
    
        7
  •  0
  •   Matthias Winkelmann    18 年前

        8
  •  0
  •   pat pat    17 年前

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