博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用svn进行文件和文件夹的忽略
阅读量:6911 次
发布时间:2019-06-27

本文共 2413 字,大约阅读时间需要 8 分钟。

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

# Built application files*.apk*.ap_# Files for the ART/Dalvik VM*.dex# Java class files*.class# Generated filesbin/gen/out/# Gradle files.gradle/build/# Local configuration file (sdk path, etc)local.properties# Proguard folder generated by Eclipseproguard/# Log Files*.log# Android Studio Navigation editor temp files.navigation/# Android Studio captures foldercaptures/# 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并在其中写入:

buildbin  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

转载地址:http://hlbcl.baihongyu.com/

你可能感兴趣的文章
搭建阿里云博客
查看>>
Xcode证书路径和缓存清理路径
查看>>
在oracle数据库里创建自增ID字段的步骤
查看>>
LC.81. Search in Rotated Sorted Array II
查看>>
使用Jacob操作Wrod文档的工具类代码
查看>>
JavaScript-严格模式
查看>>
将博客搬至CSDN
查看>>
270. Closest Binary Search Tree Value - Easy
查看>>
JavaScript核心语法学习部分(五)
查看>>
TCP包结构
查看>>
1111
查看>>
旅行家的预算
查看>>
OneZero第四周——预完成功能点统计
查看>>
java贝塞尔曲线翻页效果
查看>>
(转)android开发中WebView的使用(附完整程序)
查看>>
C语言编译过程总结详解
查看>>
matplotlib
查看>>
Python执行效率测试模块timei的使用方法与与常用Python用法的效率比较
查看>>
The Little Prince-12/02
查看>>
调用微信jssdk失败
查看>>