首页 文章

如何忽略SVN目录?

提问于
浏览
735

我刚开始使用SVN,我有一个在源代码控制下不需要的缓存目录 . 如何忽略SVN的整个目录/文件夹?

我在OS X和命令行上使用VersionsTextMate .

23 回答

  • 0

    ...如果你想忽略多个目录(例如 build/ temp/*.tmp 文件),你可以分两步完成(忽略第一个和编辑忽略属性(参见其他答案)或者可以写一些像

    svn propset svn:ignore "build
    temp
    *.tmp" .
    

    在命令行上 .

  • 5

    如果您使用的是特定的SVN客户端TortoiseSVN,则在提交时,您可以选择右键单击项目并选择"Add to ignore list" .

  • 18

    忽略多个条目的命令有点棘手,需要反斜杠 .

    svn propset svn:ignore "cache\
    tmp\
    null\
    and_so_on" .
    

    此命令将忽略当前目录中名为 cachetmpnulland_so_on 的任何内容 .

  • 3

    设置父目录的 svn:ignore 属性:

    svn propset svn:ignore dirname .
    

    如果您有多个要忽略的内容,请按属性值中的换行符分隔 . 在这种情况下,使用外部编辑器编辑属性值更容易:

    svn propedit svn:ignore .
    
  • 1

    这是一个示例目录结构:

    \project
        \source
        \cache
        \other
    

    project 中,您会看到未添加缓存目录并显示为此目录 .

    > svn st
    M  source
    ?  cache
    

    要设置ignore属性,请执行

    svn propset svn:忽略缓存 .

    其中 svn:ignore 是您正在设置的属性的名称, cache 是属性的值, . 是您要设置此属性的目录 . 它应该是 cache 目录的父目录,需要该属性 .

    要检查设置了哪些属性:

    > svn proplist
    Properties on '.':
      svn:ignore
    

    要查看 svn:ignore 的值:

    > svn propget svn:ignore
    cache
    

    要删除先前设置的属性:

    svn propdel svn:ignore
    
  • 3

    重要提一下:

    在命令行上你不能使用

    svn add *
    

    这也将添加被忽略的文件,因为命令行扩展 * 因此 svn add 认为您希望添加所有文件 . 因此请改用:

    svn add --force .
    
  • 776

    由于我花了一些时间试图让它工作,应该注意的是,如果文件已经存在于SVN中,则需要 svn delete ,然后编辑 svn:ignore 属性 .

    我知道这似乎很明显,但是当我认为它会在本地忽略它们时,它们在我的 svn status 列表中一直显示为 ? .

  • 1

    要稍微扩展,如果您使用svn命令行工具执行此操作,则需要键入:

    svn propedit svn:ignore path/to/dir
    

    这将打开您选择的文本编辑器,然后键入'*'忽略其中的所有内容,并保存退出 - 这将包括svn中的目录本身,但忽略其中的所有文件,忽略该目录,使用路径的父级,然后键入该文件中的目录的名称 . 保存后,运行更新('svn up'),然后检查相应的路径 .

  • 68

    在父目录上设置 svn:ignore 属性:

    $ cd parentdir
    $ svn ps svn:ignore . 'cachedir'
    

    这将覆盖 svn:ignore 的任何当前值 . 您可以使用以下命令编辑值:

    $ svn pe svn:ignore .
    

    哪个会打开你的编辑器 . 您可以添加多个模式,每行一个 .

    您可以使用以下方式查看当前值:

    $ svn pg svn:ignore .
    

    如果您使用的是GUI,则应该有一个菜单选项来执行此操作 .

  • 12

    感谢上面的所有贡献 . 我只是想忽略文件,从我的经验中分享一些额外的信息 .


    When the folders are already under revision control

    在svn import和svn co文件之后,我们通常第一次做什么 .

    所有运行时缓存,附件文件夹都将受版本控制 . 所以,在svn ps svn:ignore之前,我们需要从存储库中删除它 .

    使用上面的SVN 1.5版,我们可以使用 svn del --keep-local your_folder ,但对于早期版本,我的解决方案是:

    • svn导出文件夹的干净副本(不带 .svn 隐藏文件夹)

    • svn del本地和存储库,

    • svn ci

    • 复制文件夹

    • 执行svn st并确认文件夹被标记为'?'

    • 现在我们可以根据解决方案做svn ps


    When we need more than one folder to be ignored

    • 在一个目录中,我有两个文件夹需要设置为 svn:ignore

    • 如果我们设置一个,则另一个将被删除 .

    • 然后我们想知道我们需要svn pe

    svn pe 将需要编辑文本文件,如果需要,您可以使用此命令使用vi设置文本编辑器:

    export SVN_EDITOR=vi
    
    • 使用"o",您可以打开一个新行

    • 输入要忽略的所有文件夹名称

    • 按'esc'键退出编辑模式

    • 键入":wq"然后按Enter键保存并退出

    该文件看起来像这样:

    runtime
    cache
    attachments
    assets
    
  • 3

    首先删除它...

    如果您的目录 foo 已经受版本控制,请先将其删除:

    svn rm --keep-local foo
    

    ...然后忽略:

    svn propset svn:ignore foo .
    
  • 1

    我有问题让嵌套目录被忽略;我想忽略的顶级目录不会显示'svn status'但所有子目录都显示 . 这可能是对其他人不言而喻,但我想我会分享它:

    例:

    / trunk / trunk / cache / trunk / cache / subdir1 / trunk / cache / subdir2

    cd /trunk
    svn ps svn:ignore . /cache
    cd /trunk/cache
    svn ps svn:ignore . *
    svn ci
    
  • 3

    Bash oneliner多次忽略:

    svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"
    
  • 398

    如果项目目录名为/ Project,并且缓存目录名为/ Project / Cache,则需要在/ Project上设置subversion属性 . 属性名称应为“svn:ignore”,属性值应为“Cache” .

    有关属性的更多信息,请参阅Subversion手册中的this页面 .

  • 129

    杰森的回答将成功 . 但是,如果缓存目录并不总是存在,则可能需要在父目录的svn:ignore属性中包含"cache",而不是在缓存目录中设置svn:ignore到"." . 我在许多"throwaway"文件夹上执行此操作 .

  • 79

    "Thank-you" svn用于忽略文件的这种可怕的,虚假的和困难的方式 .

    所以我写了一个脚本svn-ignore-all

    #!/bin/sh
    
    # svn-ignore-all
    
    # usage: 
    #   1. run svn status to see what is going on at each step 
    #   2. add or commit all files that you DO want to have in svn
    #   3. remove any random files that you don't want to svn:ignore
    #   4. run this script to svn:ignore everything marked '?' in output of `svn status`
    
    svn status |
    grep '^?' |
    sed 's/^? *//' |
    while read f; do
        d=`dirname "$f"`
        b=`basename "$f"`
        ignore=`svn propget svn:ignore "$d"`
        if [ -n "$ignore" ]; then
            ignore="$ignore
    "
        fi
        ignore="$ignore$b"
        svn propset svn:ignore "$ignore" "$d"
    done
    

    另外,要忽略特定的文件/路径名列表,我们可以使用此变体svn-ignore . 我想svn-ignore-all应该真的像xargs svn-ignore .

    #!/bin/sh
    
    # svn-ignore
    
    # usage:
    #   svn-ignore file/to/ignore ...
    
    for f; do
        d=`dirname "$f"`
        b=`basename "$f"`
        ignore=`svn propget svn:ignore "$d"`
        if [ -n "$ignore" ]; then
            ignore="$ignore
    "
        fi
        ignore="$ignore$b"
        svn propset svn:ignore "$ignore" "$d"
    done
    

    还有一件事:我倾向于用许多随机文件污染我的svn签出 . 在提交时,我将这些文件移动到“旧”子目录中,并告诉svn忽略'old' .

  • 20

    TO KEEP DIRECTORIES THAT SVN WILL IGNORE:

    • 这将从存储库中删除文件,但保持目录在SVN控制下:

    svn delete --keep-local path / directory_to_keep / *

    • 然后设置为忽略目录(和所有内容):

    svn propset svn:忽略“*”path / directory_to_keep

  • 11

    如果您使用像TortoiseSVN这样的SVN的前端,或者某种IDE集成,那么在同一菜单中也应该有一个忽略选项,如提交/添加操作 .

  • 4

    设置svn:ignore property . 大多数UI svn工具都有一种方法可以执行此操作以及链接中的命令行讨论 .

  • 6

    由于您使用的是版本,实际上非常简单:

    • 浏览签出的副本

    • 单击要忽略的目录

    • 在右侧的“忽略”框中单击“编辑”

    • 键入* . 忽略所有文件(或 .jpg仅用于jpg文件等)

  • 1

    观看你的尾随斜杠 . 我发现在我的忽略设置文件中包含 images/* 并没有忽略 ./images/ . 当我运行 svn status -u 时,它仍显示 ? images . 所以,我只是将忽略设置更改为 images ,没有斜线 . 进行状态检查并将其清除 .

  • 28

    用下一个方法解决Eclipse

    首先,将文件夹同步到项目:

    团队 - >同步

    在下一个视图团队视图中,您可以看到可以提交给SVN服务器的所有资源 .

    因此,选择要忽略的资源的资源文件夹,然后可以使用它忽略它

    团队 - >添加到svn:忽略 .

    之后,在确认窗口中,选择第一个选项:“按名称忽略” .

    例如,如果我想忽略目标文件夹及其.class资源,我将进行同步,并在同步视图中,我将选择目标文件夹 . 在那之后,我会选择

    团队 - >添加

    svn:ignore 然后我将确认确认窗口中的第一个选项 .

  • 2

    在失去了很多时间寻找如何做这个简单的活动后,我决定发布它并不难找到一个体面的解释 .

    首先让样本结构

    $ svn st?项目/主干/目标?项目/主干/ myfile.x

    1 - 首先配置编辑器,在mycase vim export SVN_EDITOR = vim中

    2 - “svn propedit svn:ignore project / trunk /”将打开一个新文件,您可以在我们的案例类型“target”中添加您的文件和子目录保存并关闭文件并正常工作

    $ svn st?项目/主干/ myfile.x

    谢谢 .

相关问题