Windows下删除.svn文件夹的最简易方法

SVN是我认为目前最方便的版本管理体系。我最早一次接触版本管理是2004年,当时学校BBS的代码要求用CVS管理;第二次亲密接触是在2006年,当时公司的代码使用Eclipse+CVS管理;而第一次使用SVN则是在2007年的一个封闭开发项目。

我十分喜欢SVN的方便,无论是在Linux下的命令行操作还是在Windows下的资源管理器插件,都十分简易。而且code.google.com也支持SVN来供我们发布、维护开源项目(例如我的WordPress主题TES)然而,久而久之,SVN文件夹下会有许多.svn的“meta数据”。这些数据久而久之会带来不少麻烦。尤其是基于资源管理器交互的Windows系统。

今天看了Jon Galloway的一个注册表脚本,十分方便,分享如下:

建立一个文本文件,取名为kill-svn-folders.reg(扩展名由txt改为reg),内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREClassesFoldershellDeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINESOFTWAREClassesFoldershellDeleteSVNcommand]
@="cmd.exe /c "TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r "%1" %%f IN (.svn) DO RD /s /q "%%f" ""

保存之后,双击这个reg文件。成功后,在每一个文件夹上点击右键都会有一个“Delete SVN Folders”的选项,点击之后,既可以删除这个文件下下面所有的.svn文件了:

Advertisements

41 thoughts on “Windows下删除.svn文件夹的最简易方法

    1. 1、删除.svn文件夹的目的就是要脱离svn控制。
      2、即便没有commit,再次commit也很容易啊,完全谈不上“危险”:)

    1. export的方法很久前就有人提过了:)

      我说的是对现有的.svn文件进行“抛弃版本控制”的操作。举个简单的例子:

      你周末从svn更新了一些code,但周一的时候网络突然坏掉了,这时候你没有办法export,但有需要有一份干净的code,就可以用这个方法了。

      1. 恩,有.svn的时候的确是可以export的,下面有一个gif

        不过export依赖于SVN的客户端环境,因此Jon Galloway的方法也并非完全没有用处:)

      2. 确实,如果没有客户端支持的话,删除.svn的方法确实比较直接。
        不过,难道这个方法真的比F3“.svn”更简单么…………

      1. Hello, I have been watching your blog for quite a long time. You are a good man.
        I sent you an invitation on Linkedin, would you please take it on?

      2. 这个指令的正确形式恐怕是下面这样的,Linux管道用多了总有一些坏毛病,呵呵,见谅见谅。
        find . -name “.svn” –exec rm -rf {}

    1. 这个方法果然不错……多谢!

      不过也必须借助于客户端环境。如果是别人发给你的含有.svn文件夹的svn代码,但你又没客户端环境,就只能用我文章里的方法了:)

  1. 照做了一下,结果目录下所有文件都被删除了,呜呜,
    幸亏只是找了个不用的目录做测试,太危险了,还是自己手工删除比较保险。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s