代码之家  ›  专栏  ›  技术社区  ›  Brian Boatright

如何删除文件夹的Subversion控件?

svn
  •  250
  • Brian Boatright  · 技术社区  · 16 年前

    我有一个文件夹, c:\websites\test ,它包含从不再存在的存储库中签出的文件夹和文件。如何让Subversion停止跟踪该文件夹以及任何子文件夹和文件?

    我知道我可以简单地删除 .svn 文件夹,但在许多层中有许多子文件夹。

    27 回复  |  直到 13 年前
        1
  •  262
  •   crashmstr    13 年前

    http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

    Subversion 1.7的更新答案:
    在Subversion 1.7中,工作副本已被广泛修改。只有一个.svn文件夹,位于工作副本的底部。如果您使用的是1.7,那么只需删除.svn文件夹及其内容是一个简单的解决方案(无论使用的是OrtoiseSVN还是命令行工具)。

        2
  •  156
  •   T.Rob    13 年前

    在Linux上,这将起作用:

      find . -iname ".svn" -print0 | xargs -0 rm -r
    
        3
  •  119
  •   pkaeding    16 年前

    svn export .

    您应该能够执行以下操作:

    svn export /path/to/old/working/copy /path/to/plain/code
    

    然后删除旧的工作副本。

    export feature ,其行为方式相同。

        4
  •  32
  •   Peter Mortensen icecrime    12 年前

    如果您正在运行Windows,则可以在该文件夹中搜索 .svn 这将列出所有这些。紧迫的 Ctrl键 +

        5
  •  24
  •   avpaderno    13 年前

    在Linux上,命令是:

    svn delete --keep-local file_name
    
        6
  •  21
  •   I. J. Kennedy ShankarSangoli    14 年前

    我发现你甚至不需要拷贝到临时位置。你可以做一个

    svn export --force .
    

    并且.svn文件将被删除

        7
  •  11
  •   Peter Mortensen icecrime    8 年前

    在Linux中没有要删除的子shell .svn

    find . -name .svn -exec rm -r -f {} +
    
    rm = remove
    -r = recursive (folders)
    -f = force, avoids a lot of "a your sure you want to delete file XY".
    
        8
  •  9
  •   brazilianldsjaguar    10 年前

    这些答案都不符合我的情况。我在subversion 1.8上,我有一个工作副本,只有一个 .svn 文件夹位于第一个文件夹root。然而,我想从工作副本中删除一些分支。

    无论我做了什么,每当我运行“更新”时,它都会恢复这些文件并将它们全部恢复。我不想将它们从存储库中删除,只想从我的计算机中删除——但我需要保留工作副本的其余部分(因此不能只删除.svn文件夹)。

    解决方案 svn update --set-depth exclude <dir>

    这是排除特定目录的客户端“更新”。可在以下网址的手册中找到: svnbook.com . 简而言之,它将此描述为:

    从Subversion 1.6开始,您可以采取不同的方法。首先,完整地检查目录。然后运行svn update——在您不关心的一个子目录上设置depth exclude。

    Update to revision... Exclude ,如此屏幕截图所示:

    enter image description here

        9
  •  8
  •   IgorGanapolsky    8 年前

    find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf
    
        10
  •  7
  •   Peter Mortensen icecrime    13 年前

    使用 svn export 命令:

    cd c:\websites\test
    svn export c:\websites\test_copy
    

    将导出版本控制下的所有文件。仔细检查,确保没有遗漏任何内容。

        11
  •  5
  •   Ramudu    14 年前

        12
  •  4
  •   Tobias    13 年前

    只需启动此注册表脚本:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN]
    @="Delete SVN Folders"
    
    [HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN\command]
    @="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
    

    这将在右键单击菜单中添加一个名为“删除SVN文件夹”的项目。这将删除此文件夹和所有子文件夹中的所有.svn文件夹。

    http://www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/

        13
  •  2
  •   andy.gurin    16 年前

    您可以使用“svn导出”创建没有svn数据的文件夹副本,也可以将该文件夹添加到忽略列表中

        14
  •  2
  •   Ladik    14 年前

    对于那些将NetBeans与SVN结合使用的用户,有一个选项“Subversion>“出口”。

        15
  •  2
  •   Martin Buberl    14 年前

    还有一个很好的开源工具,叫做 SVN Cleaner 这将向Windows资源管理器上下文菜单添加三个选项:

    • 删除除Root.svn以外的所有
        16
  •  2
  •   Unknown_Guy    13 年前

    在Windows 7上,如果启用了隐藏文件,只需打开项目文件夹并搜索“.svn”,然后删除所有找到的.svn文件夹。

        18
  •  1
  •   Srikanth    12 年前

    将文件夹导出到自身 ! OrtoiseSVN检测到这种特殊情况,并询问您是否要使工作副本未版本化。如果您回答是,控制目录将被删除,您将拥有一个普通的、未版本化的目录树。

        19
  •  1
  •   Peter Mortensen icecrime    8 年前

    rm -r `find /path/to/foo -name .svn`
    
        20
  •  1
  •   Peter Mortensen icecrime    8 年前

    最好最简单的方法

    正如您所知,Xcode下的常规最佳实践是删除左侧项目窗格中的文件。如果你错过了它,并在Finder中以某种方式删除了它,你就有麻烦了。大麻烦!但是如果你做得好的话,你可以解决这个问题并抽出时间。

    1. 如果您可以将文件/文件夹从垃圾箱中放回,或者在删除它时撤消最后一步,那么。。。

    2. 去候机楼-是的,是旧的好候机楼-然后去那个地方。 最好的方法就是打字

    cd/Users/UserName/Documents/Apps\u Developing/。。。

    你可以查一下你在哪里

    ls

    命令列出您的文件。

    1. 然后需要使用svn命令删除svn引用:

      svn delete--保留本地文件名\u toDelete

        21
  •  0
  •   yeeking    12 年前

    我使用rsync:

    # copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
    rsync -av --exclude .svn src srcStripped
    
        22
  •  0
  •   Peter Mortensen icecrime    8 年前

    NetBeans IDE用户可以按以下方式执行:

    1. 选择项目

      右击 颠覆

    2. 在对话框中

      导出到文件夹 /var/tmp/projectname 新闻输出 等待 将显示完整的 我会问你想打开它吗?马上打开

    3. 现在可以切换到Git:)

        23
  •  0
  •   Peter Mortensen icecrime    8 年前

    我的想法是删除.svn文件夹,然后将所有其他文件移到一个新文件夹中。就这么简单。

        24
  •  0
  •   Peter Mortensen icecrime    8 年前

    SVN

        25
  •  0
  •   Peter Mortensen icecrime    8 年前

    svn export 很好,但我认为这是:

    svn rm --keep-local <folder/file>
    

    它会将其从本地存储库中删除。

        26
  •  0
  •   Peter Mortensen icecrime    8 年前

    当您使用 要删除.svn文件夹,您需要 -深度 发现

    “查找:./.svn:没有这样的文件或目录”

    因此,您可以使用 find 命令如下:

    cd [dir_to_delete_svn_folders]
    find . -depth -name .svn -exec rm -fr {} \;
    
        27
  •  0
  •   Michael Ross    6 年前

    从Windows命令行:

    rmdir .svn /s /q
    
        28
  •  0
  •   Ryan    5 年前

    使用以下命令:

    svn rm --keep-local <folder name> 删除文件夹及其内的所有内容。

    svn rm --keep-local <folder name>/*

    以下是发生的情况的示例:

    ~/code/web/sites/testapp $ svn rm --keep-local includes/data/*
    D         includes/data/json
    D         includes/data/json/index.html
    D         includes/data/json/oembed
    D         includes/data/json/oembed/1.0
    D         includes/data/json/oembed/1.0/embed1.json
    D         includes/data/json/oembed/1.0/embed2.json
    D         includes/data/json/oembed/1.0/embed3.json
    
        29
  •  -1
  •   CodeMouse92    9 年前

    Windows Explorer ,然后前往 View 并选中复选框 View hidden files .

    .svn 文件夹/文件。