svn 一次性提交整个目录包括子目录

本文详细介绍了如何优化SVNadd脚本,使其能够更精准地处理未版本控制的文件,避免误操作。同时,深入解析了SVNadd命令的用法,包括其各种选项和实际应用场景,如添加文件、目录及符号链到版本库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

svn st|awk '{print $2}'|xargs svn add。

 

乍看之下觉得更加精炼,仔细看下就会发现这个脚本没有区分文件状态。所以完善了以下这个脚本:

 

 

 

svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add

 

这样,以后我可能使用这个脚本成百上千次。(当然这个脚本也没有考虑过滤不要添加的文件)

 

当你第三次做一件事情的时候,就应该考虑将其工具化,自动化!

 

 

 

名称

svn add — 添加文件、目录或符号链。

 

概要

SVN子命令add PATH...描述

文件、目录或符号链到你的工作拷贝并且预定添加到版本库。它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。

 

选项--targets FILENAME--non-recursive (-N)--quiet (-q)--config-dir DIR--no-ignore--auto-props--no-auto-props--force

 

例子:

我们通过一个例子来看一下SVN子命令add,添加一个文件到工作拷贝:

$ svn add foo.c 

A         foo.c

当添加一个目录,svn add缺省的行为方式是递归的:

$ svn add testdir

A         testdir

A         testdir/a

A         testdir/b

A         testdir/c

A         testdir/d

你可以只添加一个目录而不包括其内容:

$ svn add --non-recursive otherdir

A         otherdir

通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:

$ svn add * --force

A         foo.c

A         somedir/bar.c

A         otherdir/docs/baz.doc。SVN子命令add的用法介绍讲解完毕。

 

svn add *

svn add */**/*
等同于
svn add * --force

 

文章来源:良玉的博客 http://www.uouo123.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向良玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值