SVN在项目协作和管理上提供了很大的便利,但是在日常使用中我们可能会遇到以下使用困惑:

假设有以下工程目录:

Project
|--.svn
|--dir1/
|--dir2/
|--dir3/
|--dir4/
|--file1.txt
|--file2.txt
|--file3.txt
  1. 项目工程很大,而你只需要使用工程下部分目录(dir1和dir3),此时你又两种做法:一种是整个工程Checkout,但是工程很大需要花费很多时间,同时也占用了磁盘;另外一种是单独只Checkout你需要的目录,但是这种每个目录就变成一个独立的svn工程了,每个目录有自己的.svn文件,无法在他们的统一上级目录上进行更新和提交,操作不方便,那么还有没有其他更好的处理办法呢?
  2. 对于Checkout出来的目录不需要使用了,或者误Checkout了某个目录,想要从本地删除而不影响仓库,这是直接删除本地目录是没用的,因为下次Update时SVN又会将他拉下来,重新Checkout当然可以做到,难道删除本地SVN目录只能重新Checkout吗?

那么,接下来就来告诉大家如何解决上面两个问题,即:

  1. SVN如何Checkout部分目录
  2. SVN如何删除本地Checkout目录而不影响仓库

SVN从1.5版开始,提供了Sparse Directories功能,该功能允许Checkout的时候对目录设置深度(Update Depth),这个设置保存在本地工作目录上,以后SVN Update等命令都在这个设置下工作。SVN提供了以下几种Depth可供选择:

  • Working copy:工作副本,保持工作副本指定的深度,它是其它所有含有深度配置对话框的默认配置,不用于Checkout,只在Update时保持目录Checkout时的深度,如Checkout时选择”Only file chlidren”则更新时”Working copy“就等同于”Only file chlidren”;
  • Fully recursive:全递归,SVN会Checkout出完整的目录树,包含所有的文件或子目录;
  • Immediate children,including folders:直接子节点,包括文件夹和文件。只Checkout当前根下的子目录,包含其中的文件或子目录,但是不递归展开子目录;
  • Only file chlidren:仅文件子节点,Checkout出当前根下包含的所有文件,但是不检出任何子目录;
  • Only this item:仅此项,只Checkout出当前根目录,不包含其中的文件或子目录;
  • Exclude:排除,对于已经创建好的工作副本,可以使用此选项来缩减文件夹的深度,用于对已经Checkout的版本目录中移除一些不需要更新的文件和目录。

使用SVN提供的这个设置深度(Update Depth)功能就能解决上面提到的两个问题。

SVN如何Checkout部分目录:
1.新Checkout目录,在目标目录上右键选择SVN的Checkout,然后选择Choose items,勾选需要Checkout的目录,然后点OK即可;

2.本地已有仓库,新Checkout其他目录,在本地目录下右键选择 Update to revision,然后选择Choose items,勾选需要Checkout的目录,然后点OK即可;

除了上面的方法,也可以通过右键 Repo-browser 打开 Repository Browser目录,在对应想要Checkout的目录上右键选择Update item to revision,这种办法无法通过Choose items来选择选中目录下子目录,但是可以通过Update Depth控制Checkout的深度。

SVN如何删除本地Checkout目录而不影响仓库:
删除本地Checkout目录在想要删除的目录上右键选择 Update to revision,然后选择Update Depth,选择为 Exclude,然后点OK即可将该目录从本地仓库中移除,以后Update不在更新他,且不影响远程仓库。

附录:

SVN使用教程

TortoiseSVN部分Checkout以及删除本地Checkout目录而不影响仓库相关推荐

  1. git 删除本地分支中,远程仓库不存在的分支。

    git已经删除了远程分支,本地仍然能看到 1.使用 git branch -a 命令可以查看所有本地分支和远程分支,发现很多在远程仓库已经删除的分支在本地依然可以看到. 2.使用命令 git remo ...

  2. git命令删除本地分支和远程分支

    骑士李四记录: 场景:从master上面pull代码,发现和本地冲突,所以打算把本地的分支删掉,重新checkout. 删除本地分支和远程分支解决方法: 我现在在dev2020422分支上,想删除de ...

  3. git删除本地分支和删除远程分支

    git 查看分支 git branch 查看本地分支(*号绿色高亮就是所在分支) git branch -a 查看远程分支 删除分支 删除之前要先切换到别的分支上 例:我现在在test分支上,想删除t ...

  4. 如何删除本地/远程Git分支

    目录 删除本地分支 删除远程分支 如何删除所有非合并的Git分支? 删除所有不在远程上的本地分支 删除除Master以外的所有本地Git分支 结论 在本文中,您将在定义什么是Git分支以及删除分支的副 ...

  5. linux rm -rf 通配符,linux 通配符删除文件和目录rm命令

    rm(remove)删除文件或目录 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行 rm 指令可删除文件或目录,如欲删除目录必须加上参数&qu ...

  6. git checkout 对工作目录的影响 —— Git 学习笔记 21

    git checkout 对工作目录的影响 问题的提出 本文要讨论的是:当我们用git checkout <branch_name>命令切换分支时,如果有未提交的修改,会发生什么? 如果当 ...

  7. 如何清除Git中的本地工作目录? [重复]

    本文翻译自:How do I clear my local working directory in Git? [duplicate] This question already has an ans ...

  8. 如何删除本地分支_如何上传项目到GitHub

    github作为开源的分布式版本管理系统,上面有众多的优秀开源项目,也有丰富的学习资料,熟练使用github也是程序员的一项必备技能.下面简单介绍下如何提交代码到github. 1.注册github账 ...

  9. linux 如何查看远程代码分支,linux看git 创建分支、删除本地分支、查看远程分支、本地分支例子...

    1 查看远程分支 $ git branch -a * br-2.1.2.2 master remotes/origin/HEAD -> origin/master remotes/origin/ ...

最新文章

  1. iOS----------拨打电话的3种方式
  2. 【腾讯三面】你能现场写一下LRU算法吗?
  3. Bokeh,一个超强交互式Python可视化库!
  4. python读文本文件的过程是怎样的_读写文本文件的步骤_Python读写txt文本文件的操作方法全解析...
  5. 如何判断Customer和Administor
  6. Redis分布式缓存
  7. 如何使用CNN进行物体识别和分类_可能我们之前都想错了:CNN的图像分类策略其实出奇的简单呢!...
  8. 解决 Alfred 每次开机都提示请求通讯录权限的问题
  9. pcb成型板aoi检测_smt贴片加工打样的检测设备
  10. Linux之vmstat命令
  11. Django学习笔记7
  12. switch里面变量吗c语言,讨教一下关于switch语句中变量定义的相关问题
  13. Think PHP(TP)框架基础知识
  14. Windows10没有画图软件的解决方式
  15. 路由器无线中继WDS\WISP\CLINENT+AP优劣
  16. 在失败的滴滴出行LOGO上谈APP设计
  17. 女子眉纤,额下现一弯新月;男儿气壮,胸中吐万丈长虹
  18. 老鼠流和大象流:如何检测和监控周期性流量
  19. 不改一行代码!快速迁移 Flask 应用上云
  20. 微信小程序嵌套iframe_H5嵌入微信小程序踩过的坑

热门文章

  1. hdu2066 一个人的旅行 floyd
  2. 多种方法助力小米(安卓)手机提升速度。
  3. 关系数据库-数据库习题
  4. string、byte、rune和字符在go中的区别的
  5. swagger测试导出报URL.createObjectURL: Argument 1 is not valid for any of the 1-argument overloads.
  6. 新版谷歌浏览器不支持TABLE表格标记
  7. 用自己的域名做短网址,到底有什么好处?
  8. 我记:交2中,突破boll线上轨,是否继续买入?
  9. java互联网岗位_前程无忧打造“互联网精英” Java职位需求广
  10. Pycharm下CUDA driver version is insufficient for CUDA runtime version报错解决