SVN】命令行忽略不必要的文件和文件夹

本文详细介绍了如何在SVN版本控制系统中设置和管理svn:ignore属性,以忽略单个或多个目录,包括创建文件夹、添加忽略、删除并重新纳入版本控制的过程。适合SVN开发者快速掌握文件管理技巧。
部署运行你感兴趣的模型镜像

  SVN命令参考:    https://www.cnblogs.com/wlsxmhz/p/5775393.html

我们需要明白命令行设置忽略文件和文件夹是通过设置svn:ignore属性设置的,propset(ps,pset)用于设置属性的值,propget(pg,pget)用于获取属性的值。用法如下:

svn pg svn:ignore   #获取属性值

svn ps svn:ignore 'value' path  #设置属性值

一、忽略单个目录

1.我们创建一个文件夹并且忽略该文件夹;

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ mkdir test1          #创见目录

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn status      #查看状态
 M      .
?       test1

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn propset svn:ignore 'test1' ./      忽略该文件夹
property 'svn:ignore' set on '.'

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn status
 M      .

测试

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ cd test1/  #进入被忽略的文件夹

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject/test1
$ echo xx >> xx.txt  #创建一个文件


Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject/test1
$ cat xx.txt
xx


Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn status    #查看状态
 M      .

此后无论如何修改都不会管理test1文件夹,如果我们想加到索引里面,可以设置svn:ignore属性

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn propget svn:ignore    #获取属性的值
test1


Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore '' ./        #清空svn:ignore的值
property 'svn:ignore' set on '.'    

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn status  
 M      .
?       test1

2.有时候我们可能想提交文件夹  忽略文件夹内容(前提是文件夹未在版本控制内)

 svn propset svn:ignore '*' test
 svn ci -m 'adding "test1" and ignore its contents.'

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

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn export test1/ ./test1-tmp      #导出一个不受版本控制的目录
Export complete.

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ ls
test.txt  test1/  test1-tmp/  test2/

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn rm test1      #删除目录
D         test1

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn ci -m 'delete test1'    #提交

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn status
?       test1-tmp

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ mv ./test1-tmp/ ./test1    #重名名文件

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ ls
test.txt  test1/  test2/

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore 'test1' ./  #将新文件忽略掉
property 'svn:ignore' set on '.'

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn status

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

二、忽略多个目录

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

比如说我们加了几个目录:

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn st
 M      .
?       d1
?       d2
?       d3
?       d4
?       test1

方法一:给属性设置多个值

现在我们忽略掉上面的d1,d2,d3文件

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore "      #设置
> d1
> d2
> d3
> " .
property 'svn:ignore' set on '.'

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn st
 M      .
?       d4
?       test1

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn pg svn:ignore

d1
d2
d3

注意:写值的时候不要一下将两个引号写完,否则回车会直接执行命令。

  svn:ignore的值每行一个

 

方法二:通配符

属性值也可以使用通配符,但是通配符不可以加在末尾,只能加在前面,如下用通配符过滤掉d2目录:

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore 'd*' .        #通配符加在末尾会报错
'd2' is not under version control
svn: E155010: The node 'C:\Users\Administrator\Desktop\ww\danger\myProject\d2' was not found.

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn ps svn:ignore '*2' .        #通配符加在前面不会报错
property 'svn:ignore' set on 'test2'
property 'svn:ignore' set on '.'

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn st
 M      .
?       d1
?       d3
?       d4
?       test1
 M      test2

Administrator@MicroWin10-1535 MINGW64 ~/Desktop/ww/danger/myProject
$ svn pg svn:ignore
d2

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在 Windows 系统上下载 SVN 仓库文件通常可以通过图形化工具或命令行完成。以下是两种常用方法: ### 使用 TortoiseSVN 下载 SVN 仓库文件 TortoiseSVN 是一个非常流行的 SVN 客户端,提供了图形界面操作,适合初学者普通用户。 #### 步骤 1:安装 TortoiseSVN 首先需要下载并安装 [TortoiseSVN](https://tortoisesvn.net/downloads.html) 客户端。安装完成后,右键菜单中会出现 TortoiseSVN 的相关选项。 #### 步骤 2:检出(Checkout)仓库 1. 在本地文件夹中右键,选择 **SVN Checkout**。 2. 在弹出的窗口中输入 SVN 仓库的 URL 地址。 3. 设置本地目标路径,选择需要检出的版本(如 HEAD 最新版本)。 4. 点击 **OK** 开始下载仓库文件到本地目录。 #### 步骤 3:更新文件(可选) 如果仓库内容有更新,可以通过右键菜单中的 **SVN Update** 来获取最新版本。 ### 使用命令行下载 SVN 仓库文件 对于熟悉命令行操作的用户,可以通过 `svn` 命令来下载仓库文件。 #### 步骤 1:安装 SVN 命令行工具 可以从 [Slik SVN](https://sliksvn.com/download/) 或 [VisualSVN Server](https://www.visualsvn.com/server/download/) 下载命令行工具并安装。 #### 步骤 2:执行 `svn checkout` 命令 打开命令行窗口,输入以下命令: ```bash svn checkout <仓库URL> <本地路径> ``` 例如: ```bash svn checkout http://svn.example.com/repository/project C:\Users\Username\project ``` 该命令会将远程仓库中的文件下载到指定的本地路径中。 #### 步骤 3:更新文件(可选) 如果需要更新至最新版本,可以使用以下命令: ```bash svn update <本地路径> ``` 例如: ```bash svn update C:\Users\Username\project ``` ### 忽略不必要文件(可选) 在下载或更新仓库文件时,可能需要忽略某些不需要的文件文件夹。可以通过 `.svnignore` 文件配置需要忽略的内容,避免不必要文件被下载或提交。 ### 常见问题与解决 - **权限问题**:确保用户拥有访问仓库的权限,必要时联系管理员。 - **网络问题**:检查网络连接是否正常,确保能够访问仓库地址。 - **路径冲突**:确保本地路径不存在同名文件,避免覆盖或冲突。 通过上述方法,可以在 Windows 系统上轻松下载 SVN 仓库文件,并进行版本控制管理[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值