SVN 命令

Add

使用add命令告诉svn哪些文件需要新增进去,最终还需要使用commit命令提交上去。

1.添加单个文件(例如:D:\a\1.txt)到svn中

svn add D:\a\1.txt

 

2.如果add的是文件夹(例如:D:\a),则默认把该文件夹下未纳入svn的文件一并纳入控制

svn add D:\a

等价于

cd /d D:\a
svn add .
:: .代表当前目录

如果目录已在svn中,也可以使用下面方法(这种不会将目录add进去,所以如果是新目录的话,会报错 Can't find parent directory's node)

cd /d D:\a
svn add *
:: * 代表所有文件
::或者直接svn add D:\a\*

注1:若在该文件夹下有部分文件已经在svn中,add遍历到此的时候会抛出 already under version control 的警告,并且中断add,抛出错误 Could not add all targets because some targets are already versioned

注2:若在该文件夹已经在svn中,并且设置了svn:ignore文件,add的时候并不会忽略这些设置了忽略的文件,依旧会add进去

 

3.如果你只想添加新目录(例如:D:\a)到svn中,并不想将目录中的文件add进去,可以增加non-recursive

svn add D:\a --non-recursive

 

4.如果想要添加文件夹(例如:D:\a)以及其内容的时候,并且忽略svn:ignore设置的文件,可以使用--force

svn add D:\a --force

注:如果你想把svn:ignore设置的文件也add进去,并且不希望出现2方法中的警告以及报错,可以使用

svn add D:\a\* --force

等价于

svn add D:\a --no-ignore --force

 

Commit

svn commit -m "提交日志" 文件或文件夹路径

等价于

cd /d 文件或文件夹路径
svn commit -m "提交日志"

注1:-m 不可省略,但是参数可以为空

注2:文件夹内新增的文件不会commit上去,需要先手动使用svn add命令添加,然后在commit

注3:如果svn命令中使用到的路径中含有@符号,例如D:/a/@b/c,会报错 a peg revision is not allowed here 。需要在路径的再添加一个@来解决,D:/a/@b/c@

 

Update

svn update [-r 版本号] 文件路径

等价于

cd /d 文件夹路径
svn update [-r 版本号]

 

Revert

回退单个文件

svn revert 文件路径

回退整个文件夹

svn revert -R 文件夹路径

等价于

cd /d 文件夹路径
svn revert -R .

 

Delete

1.直接删除svn服务器上的文件

svn delete svn服务器的文件或文件夹路径(svn://...) -m "删除备注信息文本"

2.删除本地文件(同add一样需要commit上去),同时也不能cd到当前目录然后 svn delete . 因为当前目录被cmd进程占用无法删除。

svn delete 文件或文件夹路径

svn command to delete all locally missing files,提交删除本地所有丢失的文件。在实际开发中,可能有些文件夹的文件由第三方工具导出,每次都有可能增加新文件或者删除一些不用了的文件。我们commit的时候,增加新文件用add方法好处理,但是删除了的文件用delete就会遇见困难,因为你事先并不知道哪些文件被删除了。网上有一些简单的解决方法基本都是Linux环境下的,所以有些命令在windows下不适应,比如sed, grep等。

自己找到的一个可行方法如下,通过svn status 来找出missing的文件存在一个临时文本中,然后遍历该文本,依次delete,完后删除临时文件,commit到服务器。

cd /d 文件夹路径
svn add . --no-ignore --force

svn status | findstr /R "^!" > missing.list
for /F "tokens=2 delims= " %%A in (missing.list) do (svn delete %%A)
del missing.list

svn commit -m "更新日志"

 

status

svn status [-v] 文件或文件夹路径

查看文件状态,添加-v的话会显示的更加详细

第一列即为文件的状态

?non-versioned,不在svn的控制中
!missing,丢失的文件
Mmodified,内容被修改
Cconflict,发生冲突
Aadd,预定加入到版本库
Ddelete,要删除的文件

 

<think>我们参考了用户提供的引用内容,这些引用主要涉及SVN的使用方法、安装配置和不同平台下的客户端工具。用户需求:查找关于SVN命令的使用方法或相关信息,特别是使用指南。根据引用内容:引用[1]提到了Windows客户端(TortoiseSVN图形化工具和SlikSVN命令行工具)以及验证安装的命令svn--version)。引用[3]提到了在Windows环境下使用命令行工具,通过环境变量配置后可以在cmd下使用SVN命令。引用[4]提到了Subversion的两种服务模式(svnserve和Apachehttp服务器)。引用[5]直接指向了linux下的svn常用命令使用指南。因此,我们可以将回答分为以下几个部分:1.SVN基本命令介绍(包括安装验证、常用命令等)2.不同操作系统下的使用(Windows、Linux)3.两种服务模式的简要说明4.客户端工具推荐注意:我们引用的内容在末尾添加引用标识,并按照系统级指令要求使用LaTeX格式(但注意,SVN命令使用属于代码和命令,不需要数学公式,所以我们只对独立命令使用代码块)根据用户需求,重点应放在命令的使用上,所以我们详细列出常用命令。由于引用[5]是关于Linux下SVN常用命令的,引用[3]是关于Windows下命令行使用的,我们可以整合这些信息。回答结构:一、SVN基本命令二、Windows平台SVN命令使用三、Linux平台SVN命令使用四、SVN服务模式简介五、客户端工具推荐在相关引用处标注引用标识。</think> 基于您的需求,我将为您整理SVN命令的核心使用指南: ### 一、SVN基础命令操作 1. **安装验证** ```bash svn --version # 验证SVN安装[^1] ``` 2. **项目检出** ```bash svn checkout [URL] [本地目录] # 下载仓库到本地[^2] ``` 3. **文件状态检查** ```bash svn status # 查看工作副本修改状态[^3] svn diff # 显示文件差异[^5] ``` 4. **版本提交** ```bash svn commit -m "提交说明" # 上传修改到服务器[^2] ``` 5. **更新与撤销** ```bash svn update # 同步最新版本[^4] svn revert [文件名] # 撤销本地修改[^3] ``` ### 二、服务配置关键命令 ```bash svnserve -d -r /var/svn # 启动SVN守护进程[^4] svnadmin create /opt/svn/repo # 创建新仓库[^1] ``` ### 三、跨平台工具推荐 | 平台 | 工具 | 类型 | 特点 | |------|------|------|------| | Windows | TortoiseSVN | 图形化 | 右键集成/版本对比[^1] | | Linux | 命令行工具 | CLI | 原生操作体验[^5] | | 开发环境 | SlikSVN | CLI | IDE集成支持[^1] | ### 四、高级操作示例 ```bash svn log -v # 查看详细提交历史 svn merge -r 100:200 [URL] # 合并特定版本修改 svn copy [源路径] [目标路径] # 创建分支/标签[^2] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值