I can move unversioned files via
mv * subfolder/
and versioned files via
svn mv * subfolder/
(apart from the problem that subfolder
is in *
)
But how can I move files if half of them are versioned and the other half is not?
I can move unversioned files via
mv * subfolder/
and versioned files via
svn mv * subfolder/
(apart from the problem that subfolder
is in *
)
But how can I move files if half of them are versioned and the other half is not?
我会做 afind . \! \( -name .svn -prune \)
并将其传递给 a (让这个简单,假设没有包含制表符或字符的while read
目录或文件)。\n
然后,svn mv
对该文件执行一个操作。如果失败了,你知道它是一个未版本控制的文件,你可以mv
对它做一个简单的操作:
$ find . \! \( -name .svn -prune \) | while read file
do
if ! svn mv $file $new_location
then
mv $file $new_location
fi
done
实际的代码会比这更棘手。如果要移动文件的目录存在怎么办?如果它不存在怎么办?这是您要移动的目录还是文件?所有这些都会影响您移动文件的方式。
真正的问题是你为什么突然发现自己在做这件事。所有这些未版本控制的文件是从哪里来的,为什么它们也必须移动到您工作区中的另一个目录?
您可以执行以下操作:
for f in svn ls .; do svn mv $f subfolder; done
mv * subfolder
你仍然必须处理subfolder
. .svn
不匹配*
,但是您可能需要处理名称以点开头的文件和目录。