使用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. Jmeter5.1.1+python调用python脚本

    1.下载jython https://www.jython.org/downloads.html 下载Download Jython 2.7.0 - Standalone Jar : For embe ...

  2. Hive 特殊日期获取 tips

    获取当前日期 SELECT CURRENT_DATE, CURRENT_TIMESTAMP, from_unixtime(unix_timestamp()); 上个月1号 concat(substr( ...

  3. 基于SSM的CRUD项目的详解

    创一个maven工程 创建web的目录和web.xml------------右击项目,build projet--->configure  project---->Project fac ...

  4. MySql数据库时区异常,java.sql.SQLException: The server time zone value '?й???׼ʱ?' is unrecognized or represents more than one time zone.

    JDBC访问MySql异常 Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException ...

  5. leetcode数据库题目及答案汇总

    1. 第二高的薪水 select ifnull((select distinct Salary from Employee order by Salary desc limit 1,1),null) ...

  6. nginx 的安装、启动、停止与重启

    一.nginx 基本介绍 1.Nginx 是单进程单线程模型,也就是启动的工作进程只有一个线程响应客户端请求,而 apache 可以在一个进程内启动多个线程响应客户端请求.所以 nginx 的内存占用 ...

  7. Linux 下安装 tomcat

    前提:已经安装配置好了 JDK 1.下载二进制文件 wget http://us.mirrors.quenda.co/apache/tomcat/tomcat-9/v9.0.19/bin/apache ...

  8. SHA-256算法和区块链原理初探

    组内技术分享的内容,目前网上相关资料很多,但读起来都不太合自己的习惯,于是自己整理并编写一篇简洁并便于(自己)理解和分享的文章. 因为之前对密码学没有专门研究,自己的体会或理解会特别标注为" ...

  9. nodejs 开启http服务器

    1.首先安装node.js windows地址:https://nodejs.org/dist/v10.15.3/node-v10.15.3-x64.msi 配置成功的标志: 若没成功,也有可能是没有 ...

  10. 【c# 数据库】对数据库进行增删查改

    1.DataGridView链接数据库 2.链接数据库 using System.Data.SqlClient; SqlConnection con = null; //创建SqlConnection ...