【SVN】命令行忽略不必要的文件和文件夹
SVN命令参考: https://www.cnblogs.com/wlsxmhz/p/5775393.html
我们需要明白命令行设置忽略文件和文件夹是通过设置svn:ignore属性设置的,propset(ps,pset)用于设置属性的值,propget(pg,pget)用于获取属性的值。用法如下:
svn pg svn:ignore #获取属性值
svn ps svn:ignore 'value' path #设置属性值
一、忽略单个目录
1.我们创建一个文件夹并且忽略该文件夹;
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ mkdir test1 #创见目录 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn status #查看状态
M .
? test1 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn propset svn:ignore 'test1' ./ 忽略该文件夹
property 'svn:ignore' set on '.' Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn status
M .
测试
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ cd test1/ #进入被忽略的文件夹 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject/test1
$ echo xx >> xx.txt #创建一个文件 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject/test1
$ cat xx.txt
xx Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn status #查看状态
M .
此后无论如何修改都不会管理test1文件夹,如果我们想加到索引里面,可以设置svn:ignore属性
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn propget svn:ignore #获取属性的值
test1 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore '' ./ #清空svn:ignore的值
property 'svn:ignore' set on '.' Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn status
M .
? test1
2.有时候我们可能想提交文件夹 忽略文件夹内容(前提是文件夹未在版本控制内)
svn propset svn:ignore '*' test
svn ci -m 'adding "test1" and ignore its contents.'
3、若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容:
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn export test1/ ./test1-tmp #导出一个不受版本控制的目录
Export complete. Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ ls
test.txt test1/ test1-tmp/ test2/ Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn rm test1 #删除目录
D test1 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn ci -m 'delete test1' #提交
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn status
? test1-tmp Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ mv ./test1-tmp/ ./test1 #重名名文件 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ ls
test.txt test1/ test2/ Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore 'test1' ./ #将新文件忽略掉
property 'svn:ignore' set on '.' Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn status
对于没有加入版本控制的,可以直接设定成ignore,但不能对加入版本控制的文件和目录这么做。解决办法是,先删除再ignore, 上面的命令其实也是这个方式,只不过有导出再mv的过程。
二、忽略多个目录
如果有多个目录需要删除,逐个目录按照上面步骤操作,那么操作完成后,前面操作的目录执行svn st又会显示成 ? 状态,而最后执行的那个目录才不会显示出来,所以说这样前面的目录都白弄了
如果有多个目录需要同时忽略,需要这样弄
比如说我们加了几个目录:
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn st
M .
? d1
? d2
? d3
? d4
? test1
方法一:给属性设置多个值
现在我们忽略掉上面的d1,d2,d3文件
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore " #设置
> d1
> d2
> d3
> " .
property 'svn:ignore' set on '.' Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn st
M .
? d4
? test1 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn pg svn:ignore d1
d2
d3
注意:写值的时候不要一下将两个引号写完,否则回车会直接执行命令。
svn:ignore的值每行一个
方法二:通配符
属性值也可以使用通配符,但是通配符不可以加在末尾,只能加在前面,如下用通配符过滤掉d2目录:
Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore 'd*' . #通配符加在末尾会报错
'd2' is not under version control
svn: E155010: The node 'C:\Users\Administrator\Desktop\ww\danger\myProject\d2' was not found. Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore '*2' . #通配符加在前面不会报错
property 'svn:ignore' set on 'test2'
property 'svn:ignore' set on '.' Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn st
M .
? d1
? d3
? d4
? test1
M test2 Administrator@MicroWin10- MINGW64 ~/Desktop/ww/danger/myProject
$ svn pg svn:ignore
d2
【SVN】命令行忽略不必要的文件和文件夹的更多相关文章
- 转自: linux svn命令行无法拉取中文名称的文件
转自: https://blog.csdn.net/shaohui/article/details/3996274#commentBox svn: Can't convert string from ...
- 转:svn命令行操作
原文:http://zhumeng8337797.blog.163.com/blog/static/10076891420115218821912/SVN命令行 -- ::| 分类: CVS |字号 ...
- Linux环境SVN命令行使用经验总结(转)
在windows机器上开发得差不多了之后,打包传送到开发机编译,在开发机上解决编译错误. [缺点] 浪费时间在打包解包,机器间传输代码. 在windows机器上开发之后,check in代码进分支,在 ...
- svn命令行批量删除和批量添加
svn命令行批量删除和批量添加 如果使用svn的命令行,例如在linux下的终端中使用,svn的添加命令是svn add,删除命令是svn del,但是缺乏批量的操作,如果我在资源管理器中,手动添加了 ...
- Mac SVN 命令行
Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...
- svn命令行修改已提交的版本备注
svn命令行修改已提交的版本备注 参考文章: stackoverflow.com/questions/304383/how-do-i-edit-a-log-message-that-i-already ...
- [MAC] Mac下的SVN命令行
转载自: http://www.cnblogs.com/snandy/p/4072857.html Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.1 ...
- Windows下SVN命令行工具使用详解
根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...
- SVN命令行笔记
SVN命令行笔记 近期玩了一下命令行,记录如下. svn info <path> #查看文件,路径信息 svn log <path> #查看文件,路径历史记录 svn st(s ...
- pycharm不支持svn,是需要svn命令行工具没有安装(for windows)
1. 安装svn命令行工具 Subversion for Windows下载https://sourceforge.net/projects/win32svn/?source=typ_redirect ...
随机推荐
- 第四次Scrum meeting
第四次Scrum meeting 会议内容: 沟通方面:与学霸在线组.学霸手机客户端组进行沟通,了解现阶段各个小组的进度,并针对接口结构方面进行调整 前后端:我们完全可以是不需要界面的,但是为了用户的 ...
- 20135327郭皓--Linux内核分析第四周 扒开系统调用的三层皮(上)
Linux内核分析第四周 扒开系统调用的三层皮(上) 郭皓 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/U ...
- 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程
第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...
- [转帖]第二个显示屏上禁用Windows任务栏
http://os.51cto.com/art/201812/589207.htm 这个过程非常简单,你可以在一分钟内摆脱第二个屏幕上的任务栏. 您需要做的就是按照以下步骤操作: --打开设置,然后转 ...
- PSP(4.6——4.12)以及周记录
1.PSP 4.6 8:30 10:30 20 100 博客 B Y min 12:00 13:00 5 55 Account A Y min 13:05 13:15 0 10 站立会议 A Y mi ...
- html5 & upload files
html5 & upload files https://www.sitepoint.com/html5-ajax-file-upload/ https://www.webcodegeeks. ...
- iOS 打开系统设置的常用功能
说明: 跳转到系统设置不同功能界面,只要知道路径都很简单,路径可以自己打开手机设置界面看, 照着模板把对应的名称替换就可以了,但是得知道对应功能的英文名称. 1. prefs:root=Privacy ...
- JVM学习笔记(三):类文件结构
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步. 实现语言无关性的基础是虚拟机和字节码存储格式.Java虚拟机不和包括Java在内的任何语言绑定,只与&quo ...
- BZOJ4066 简单题(KD-Tree)
板子题. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...
- Day25-博客系统
1. 搭建环境请参考:http://www.cnblogs.com/momo8238/p/7508677.html 2.创建3张表备用 models.py from django.db import ...