随笔 - 97  文章 - 20  评论 - 94  阅读 - 22万

使用"_svn"替代".svn"的转换脚本

使用"_svn"替代".svn"的转换脚本

在项目团队开发过程中使用TortoiseSvn,遇到一个问题:有些同事使用的_SVN,有些同事使用.SVN(.svn在VS2003等情况下会有问题)。于是想将.SVN 设置成_svn,但改变相关设置不会使已存在的工作拷贝中的管理文件夹从“_svn”自动转换到“.svn”。以下是一种解决方法。

VS.NET在新创建一个Web工程和刷新该工程时,遇到“.*”文件夹就会出问题,但Subversion是要用“.svn”文件夹来储存自己的内部信息的。这可不是Subversion的bug,这bug是VS.NET和它使用的frontpage扩展带来的。

可以通过TSVN的常规设置中的使用“_svn”替代“.svn”目录选项来改变以后生成的工作拷贝中的管理文件夹的名字。使此操作生效需要重启系统
你应该注意到:改变该选项将不会使已存在的工作拷贝中的管理文件夹从“_svn”自动转换到“.svn”。
你需要使用脚本来自行完成这项工作,或是简单地重新检出一个新的工作拷贝。但当项目很大时,重新检出并非明智选择。
下面从Subversion Mailing List Archives里搜索了一些实现的简单脚本:

rename_svn.bat
复制内容到剪贴板
代码:
rem @ECHO OFF
FOR /R %%f IN (.svn) DO IF EXIST "%%f" (
    ATTRIB -h "%%f"
    RENAME "%%f" _svn
    ATTRIB +h "%%~pf\_svn"
)
renamedotsvn.bat
复制内容到剪贴板
代码:
rem @ECHO OFF
FOR /R %%f IN (_svn) DO IF EXIST "%%f" (
    ATTRIB -h "%%f"
    RENAME "%%f" .svn
    ATTRIB +h "%%~pf\.svn"
)
只需将相应的脚本文件拷到要变更的工作拷贝根目录下,然后在图形界面下直接双击执行就可以了。
脚本所在的路径及其所有子路径下的“.svn”都会被自动替换成“_svn”。

注:也许你在执行renamedotsvn.bat之后,虽然可以重新取回对项目的版本控制,但那些overlay绿色角标仍然没有刷新出来。
解决问题的办法是kill掉你的TSVNcache.exe,然后点击F5刷新,以重新启动TSVNcache,看,角标又出现了:)

注2:开启TSVNchche.exe的任务栏图标的方法:在注册表中新建HKCU\\Software\\TortoiseSVN\\CacheTrayIcon变量,类型DWORD,取值为1。它允许你来优雅地关闭TSVNCache,而不是在进程列表里kill掉它。(托盘图标可以显示当前已缓存了的文件夹数目)
posted on   关寒融冰  阅读(1047)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
< 2009年5月 >
26 27 28 29 30 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

鲁ICP备07018066号-1
点击右上角即可分享
微信分享提示