起因:
由于项目中的IDE Jdeveloper在某些指定目录下面会生成server.xml以及common文件夹,且包含一个名为bc4j.xcfg的文件,每次当IDE设置发生变化,或者新建某些目录,这些文件都会被修改或者新增,而我不愿意将这些变化体现在SVN提交列表中.
正如SVN官方指南所言:如果你不小心添加了一些应该被忽略的文件,你如何将它们从版本控制中去除而不会丢失它们?或许你有自己的IDE配置文件,不是项目的一部分,但将会花费很多时间使之按照自己的方式工作。(忽略文件和目录,忽略已经版本控制的文件)
不能忽略已添加至SVN的文件或目录,若要忽略,只能选择删除重新添加并以新增文件的方式被忽略。
正如官方指南所言:
由于项目中存在的server.xml以及common/bc4j.xcfg文件多而且分布复杂,一个个取取消并添加至忽略列表太麻烦,于是将整个过程分成了两步.
1.取消版本控制.
a.使用batch脚本删除本地的server.xml以及common/bc4j.xcfg(工作环境在window下)
脚本如下:
@REM ######################################################### @REM Name: 递归删除指定的目录,请把此文件放在你希望执行的那个目录 @REM Desciption: @REM Author: HONGBO @REM Date: 2016-03-06 @REM Version: 1.1 @REM Copyright: Up to you. @REM YOUR FILE PATH 中不能包含中文,否则便会直接遍历delCommon.bat脚本所在的磁盘 @REM ######################################################### @echo on setlocal enabledelayedexpansion @REM 设置你想删除的目录 @REM YOUR FILE PATH 中不能包含中文,否则便会直接遍历delCommon.bat脚本所在的磁盘 set folder_path=YOUR_FILE_PATH cd %folder_path% set WHAT_SHOULD_BE_DELETED=common for /r . %%a in (!WHAT_SHOULD_BE_DELETED!) do ( if exist %%a ( echo "delete"%%a rd /s /q "%%a" ) ) @REM /s 递归 @REM /q 静默 @REM call 与 不call都行 call del server.xml /s pause
b.提交删除,排除需要保留的文件
2.添加至忽略列表
在根目录建立server.xml 和common目录,此时有两种忽略方式,
i.本地忽略方式,不体现到整个SVN项目团队中.
使用SVN客户端的全局忽略样式 ,右键->设置->全局忽略样式 ,此时该两种文件仍然以问号文件的样式显示,但是在SVN提交时,这些文件会被忽略,不会体现在未控制版本的文件列表中.
ii.全局忽略方式,即服务端忽略方式,体现到整个SVN项目团队中
右键->增加至忽略列表->server.xml(recursively),此种方式会与服务端同步,整个团队的所有人将会同步此忽略,所有该两种文件会以忽略图标的样式显示.
如图:
若是在某些特定情况下被忽略的的文件或文件夹仍然需要提交,只需要将此文件像普通文件一样add, commit即可.