使用svn进行文件和文件夹的忽略

黑泥卡 关注

 0.3 2016.08.16 22:42* 字数 786 阅读 20554评论 7喜欢 15

如何使用svn忽略文件和文件夹
如果你之前尝试过git,你就知道svn的忽略在命令行上有多么繁琐。
我从事android开发,我希望svn可以这样忽略:

# Built application files
*.apk
*.ap_ # Files for the ART/Dalvik VM
*.dex # Java class files
*.class # Generated files
bin/
gen/
out/ # Gradle files
.gradle/
build/ # Local configuration file (sdk path, etc)
local.properties # Proguard folder generated by Eclipse
proguard/ # Log Files
*.log # Android Studio Navigation editor temp files
.navigation/ # Android Studio captures folder
captures/ # Intellij
*.iml
.idea/workspace.xml
.idea/libraries # Keystore files
*.jks

我本以为svn的忽略会很简单,但实际上达到最终的忽略效果花掉了我相当长的时间。所以在这做个记录,将我的经验分享一下。

SVN的ignore属性

svn通过属性来判断如何处理仓库中的文件。其中有一个属性便是svn:ignore。你可以使用 svn propset 来设置svn:ignore在单独的目录。你可以给svn:ignore设置一个值,文件名或者是表达式。
例如:

svn propset svn:ignore *.class .

这时你使用svn status命令,就看不到。class文件了。如果你也想查看忽略的文件,你可以输入:

svn status --no-ignore

忽略文件夹

忽略文件夹,千万不要加斜杠。

svn propset svn:ignore bin . # yes
svn propset svn:ignore /bin . # nope
svn propset svn:ignore bin/ . # nope

使用 —R 递归属性配置

使用上面的方法只能忽略当前目录,如果你想要自己的子文件夹也进行忽略 要使用-R惊醒操作。

svn propset svn:ignore -R *.class .

忽略多种类型的文件

通过以下的命令你可以忽略 *.class,*.apk, and Thumbs.db

svn propset svn:ignore -R *.class .
svn propset svn:ignore -R *.apk .
svn propset svn:ignore -R Thumbs.db .

或者,你可以这样:

svn propset svn:ignore -R "*.class
> *.apk
> Thumbs.db" .

使用-F通过配置文件来忽略

如android的,eclipse工程中需要忽略一些文件。
于是新建一个文本文档.svnignore并在其中写入:

build
bin
gen
proguard
.classpath
.project
local.properties
Thumbs.db
*.apk
*.ap_
*.class
*.dex

然后执行:

svn propset svn:ignore -R -F .svnignore .

全局忽略完成。

注意事项

进行上述步骤之后,每个文件夹内的bin,gen等目录都会被忽略。所以起名字的时候不要起和忽略的名字相同的文件。

对忽略进行查看,删除

查看全部

svn status --no-ignore

查看指定目录

svn proplist -v [PATH]

删除忽略

svn status --no-ignore

额你以为到这里就结束了?

svn还有坑。。。
当你使用add的时候,千万不要使用

svn add *

这样会把忽略中的文件也添加到仓库。应该使用下面的命令行代替

svn add --force .

注意是点,千万别写成*

如果在忽略之前,文件应经被add,应先删除

svn delete [path]

只从svn中忽略,而不删除文件

svn delete --keep-local [path]

svn add后的数据如何 恢复/取消/还原

有时候你发现svn add后,这个提交的数据又不需要了。这时候需要有svn revert来处理了。

比如

A testcase/perday.php

如何取消呢?

svn revert testcase/perday.php

会出现下面的提示:

已恢复“testcase/perday.php”

说明脚本已经恢复了到原来的状态,不受SVN 版本控制了。

如何恢复整个目录??有时候你将整个目录都svn add了,整个目录有不同深度的文件夹,这时候你需要用其他方式来解决

svn revert --depth=infinity .

参考资料:
http://stackoverflow.com/questions/116074/how-do-i-ignore-a-directory-with-svn
http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/
https://www.coder4.com/archives/4244

 

使用svn进行文件和文件夹的忽略的更多相关文章

  1. Eclipse Svn 取消某些文件或文件夹的版本控制

    SVN提交时,我们有时候需要将一些文件忽略掉,例如:maven项目中的target文件夹,可以将这些文件或文件夹设置成ignore来忽略这些文件或文件夹 1. 将文件夹或文件从Eclipse中删除.记 ...

  2. svn设置提交忽略某些文件或文件夹

    在svn客户端,想设置忽略提交.class文件,通过 properties > New > Other 添加一个忽略的属性,,还是不行:部分屏蔽了,部分class还是在列表中 再次参考了一 ...

  3. 如何彻底删除SVN中的文件和文件夹(附恢复方法)

    在SVN中如果删除某个文件或文件夹也可以在历史记录中进行找回,有的时候需要彻底删除某些文件,即不希望通过历史记录进行恢复,需要在服务器上对SVN的数据进行重新整理 这里假设SVN项目的目录为 /dat ...

  4. Linux命令行下svn ignore忽略文件或文件夹用法

    一.忽略单个目录 1.忽略文件夹 假如目录oa.youxi.com是从svn checkout出来的,在服务器本地目录添加了material,但是不希望把material加入版本控制,因此我们需要忽略 ...

  5. 设置SVN忽略文件和文件夹(文件夹)

    在多数项目中你总会有文件和文件夹不须要进行版本号控制.这可能包含一些由编译器生成的文件,*.obj,*.lst,也许是一个用于存放可运行程序的输出文件夹.仅仅要你提交改动,TortoiseSVN 就会 ...

  6. SVN同步时忽略特定文件或文件夹

    在MyEclipse中使用SVN同步的时候,经常会提示一些比如.classpath等不需要同步的配置文件,可以通过设置来忽略这一部分的文件或者文件夹. 1.选择菜单Window→Preferences ...

  7. eclipse svn不能忽略文件及文件夹,ignore设置无效 ?

    https://blog.csdn.net/zengmingen/article/details/79025445 https://blog.csdn.net/zengmingen/article/d ...

  8. 如何将指定文件或文件夹直接提交到svn指定目录

    以下步骤适用于客户端是Tortoisesvn  服务端是VisualSVN Server的SVN库: 安装Tortoisesvn 获取配置库路径 checkout想要提交到的SVN库或目录 将需要提交 ...

  9. 【SVN】命令行忽略不必要的文件和文件夹

    SVN命令参考:   https://www.cnblogs.com/wlsxmhz/p/5775393.html 我们需要明白命令行设置忽略文件和文件夹是通过设置svn:ignore属性设置的,pr ...

随机推荐

  1. kubenetes服务发现

    一.基于 iptables 的 Service 实现 Pod的ip地址不是固定了.Service通过selector属性和后端Pod关联,被selector选中的Pod被称为Service的Endpo ...

  2. Storm实现实时大数据分析(storm介绍,与Hadoop比较,)

    一.storm与Hadoop对比 Hadoop: 全量数据处理使用的大多是鼎鼎大名的hadoop或者hive,作为一个批处理系统,hadoop以其吞吐量大.自动容错等优点,在海量数据处理上得到了广泛的 ...

  3. 快乐!ajax入门(1)

    今天试着默写ajax时出现了神秘的问题,出现如图所示的错误: 百度了一下,说是跨源问题,我以为放在同一个文件夹不也是同源嘛!结果打扰了,属实是弟弟,协议,域名,端口相同的算同源,其他的不是!!! 最后 ...

  4. Spring使用Quartz定时调度Job无法Autowired注入Service的解决方案

    1)自定义JobFactory,通过spring的AutowireCapableBeanFactory进行注入,例如: public class MyJobFactory extends  org.s ...

  5. drf框架使用之 路飞学城(第一天)

    1. 路飞学城第一天: 知识点 使用的是序列化与反序列化的使用: 1.创建一个公共相应的Json方法: #创建一个公共响应的类: class LuffyResponse(): def __init__ ...

  6. random-----随机数

    1 import random 2 3 print(random.random())#(0,1)----float 大于0且小于1之间的小数 4 5 print(random.randint(1,3) ...

  7. 20175213 2018-2019-2 《Java程序设计》第6周学习总结

    教材学习内容总结 1.第七章:内部类与异常类 ①.内部类和外嵌类之间的重要关系: ·内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法. ·内部类的类体中不可以声明类变 ...

  8. HTTP 学习心得

    一.什么是HTTP? 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的 ...

  9. Django SCRF跨站点请求伪造

    使用Django发POSTt请求的时候经常会遇到Forbidden的错误,然后直接了当的方法就是去setting里面吧csrf中间件注释掉,其实csrf是django给我们提供的防护措施. CSRF就 ...

  10. 安装setuptools 报错缺少zlib

    # yum install zlib # yum install zlib-devel 下载成功后,进入python2.7的目录,重新执行 #make #make install 此时先前执行的 软连 ...