• 关于linux svn添加忽略目录的梗


    一、忽略单个目录

    1、忽略文件夹【文件夹不在svn版本里,是新增的目录】注:如果目录已在svn中,则需要进一步操作【见下】

    假如目录是从svn checkout出来的,在服务器本地目录添加了material,但是不希望把material加入版本控制,因此我们需要忽略掉这个目录
    首先使用svn status命令查看当前状态
    [root@localhost oa.youxi.com]# svn status
    ? htdocs/admin/adv/material

    添加需要忽略的目录,貌似必须得进入该目录之下

    [root@localhost oa.youxi.com]# cd htdocs/admin/adv/
    [root@localhost adv]# svn propset svn:ignore 'material' ./
    property 'svn:ignore' set on '.'
    
    [root@localhost adv]# svn ci -m 'ignore a directory called "material".'
    Sending adv
    Committed revision 2.

    再次查看状态

    [root@localhost adv]# svn status
    [root@localhost adv]#

    此后无论material目录如何修改,都不会提交到仓库去

    2、提交文件夹,忽略文件夹内内容 【忽略文件夹内容】注:如果目录已经在版本控制中,可以使用该方法忽略本目录所有内容更新

    [root@localhost adv]# svn propset svn:ignore '*' material
    [root@localhost adv]# svn ci -m 'adding "material" and ignore its contents.'

    3、若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容:

    [root@localhost adv]# svn export material material-tmp
    [root@localhost adv]# svn rm material
    [root@localhost adv]# svn ci -m 'Removing inadvertently added directory "material".'
    [root@localhost adv]# mv material-tmp material
    [root@localhost adv]# svn propset svn:ignore 'material' ./
    [root@localhost adv]# svn ci -m 'Ignoring a directory called "material".'

    对于没有加入版本控制的,可以直接设定成ignore,但不能对加入版本控制的文件和目录这么做。解决办法是,先删除再ignore, 上面的命令其实也是这个方式,只不过有导出再mv的过程。

    二、忽略多个目录

    如果有多个目录需要删除,逐个目录按照上面步骤操作,那么操作完成后,前面操作的目录执行svn st又会显示成 ? 状态,而最后执行的那个目录才不会显示出来,所以说这样前面的目录都白弄了
    如果有多个目录需要同时忽略,需要这样弄

    [root@localhost adv]# svn st
    ? ad
    ? material
    ? logs
    ? images
    [root@localhost adv]# svn delete url -m="delete ad"    #删除版本库相应目录
    [root@localhost adv]# mv ad material logs images /tmp      #先备份
    [root@localhost adv]# svn propset svn:ignore ".svnignore
    > ad
    > material
    > logs
    > images
    > " ./
    property 'svn:ignore' set on '.'
    [root@localhost adv]# svn propget svn:ignore .

    到这里就大功告成了,无论怎么修改上面的几个目录里面文件svn st都不会列出来,无论怎么svn up当前目录,上面几个目录都不会受到影响。

    参考:https://www.cnblogs.com/fjping0606/p/4743009.html

    示例:

    解决由于从其他环境,如测试环境等,将整个项目copy过来,导致该目录的svn版本信息出现问题:

    1 现将不对的版本svn版本信息删除

    2 修改下当前本文件的目录名如,file_bak

    3 使用svn rm file(旧目录名)  ,并提交 svn ci ....

    4 将备份的文件重命名指定文件名,并svn add ... 添加到版本信息,并提交

  • 相关阅读:
    扩展json序列化datatime类型数据
    用select实现socket的IO多路复用
    Python单例模式
    Django(信号相关)
    将字符串按固定长度分隔成子串
    Android Handler介绍
    Android activity生命周期
    Java 启动线程的方式
    java线程中的sleep和wait区别
    JAVA 统计字符串中中文,英文,数字,空格的个数
  • 原文地址:https://www.cnblogs.com/sien6/p/8297188.html
Copyright © 2020-2023  润新知