SVN递归添加未被忽略的文件

时间:2015-07-15 22:02:55

标签: svn

我试图以递归方式添加未被忽略的新文件,似乎没有办法做到这一点。我试过做svn add。 --force和svn add。 --depth infinity,都添加所有文件,包括被忽略的文件。我也试过使用TortoiseSVN添加,这似乎做同样的事情。问题是我需要在一个非常大的目录结构中添加很多文件,我不能单独完成它们。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

使用(如果“WC中的所有新文件”是一项任务)只是svn add *

示例:

我在(空)WC中创建了这样的树

>dir /B /S
z:\WC\a.txt
z:\WC\Sub
z:\WC\.svn\pristine
z:\WC\.svn\tmp
z:\WC\.svn\wc.db
z:\WC\.svn\entries
z:\WC\.svn\format
z:\WC\Sub\a.txt
z:\WC\Sub\Sub
z:\WC\Sub\Sub\a.txt

因为\ Sub也是无版本的,svn st会看到真实WC的一小部分

>svn st
?       Sub
?       a.txt

svn add *会找到并添加所有

>svn add *
svn: Skipping argument: E200025: '.svn' ends in a reserved name
A         a.txt
A         Sub
A         Sub\Sub
A         Sub\Sub\a.txt
A         Sub\a.txt

如果您为非空WC重复执行相同的命令,您将获得更多警告,但无论如何都会添加对象

>svn add *
svn: Skipping argument: E200025: '.svn' ends in a reserved name
svn: warning: W150002: 'Z:\WC\a.txt' is already under version control
A         b.txt
svn: warning: W150002: 'Z:\WC\Sub' is already under version control
svn: E200009: Could not add all targets because some targets are already versioned
svn: E200009: Illegal target for the requested operation

更长,但不太脏,可能正在使用svn add --targets FILE,而FILE包含所有换行符分隔的对象。

FILE的源数据必须是svn st的稍后处理输出(如果只需添加版本化父级中的无版本对象)

>svn st
A       Sub
A       Sub\Sub
A       Sub\Sub\a.txt
?       Sub\Sub\b.txt
A       Sub\a.txt
?       Sub\b.txt
A       a.txt
A       b.txt

grep字符串,以“?”开头,打印第2个字段,获取

Sub\Sub\b.txt
Sub\b.txt

并使用它