zoukankan      html  css  js  c++  java
  • 使用svn进行文件和文件夹的忽略

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

    黑泥卡 
     0.3 2016.08.16 22:42* 字数 786 阅读 20554评论 7

    如何使用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

     
  • 相关阅读:
    为什么股票一买就跌,一卖就涨?终于找到答案了!
    搜集的一些股票讲师的博客
    一位操盘手的临别赠言
    VMware网络连接 桥接、NAt、host-only模式
    我常用的网络测试工具
    linux下性能测试工具netperf使用
    vm10虚拟机安装Mac OS X10.10教程
    ACE_Svc_Handler 通信原理
    mypwd实现
    2019-2020-1 20175307 20175308 20175319 实验五 通讯协议设计
  • 原文地址:https://www.cnblogs.com/mouseleo/p/10788346.html
Copyright © 2011-2022 走看看