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,要删除的文件

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值