0

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?

4

2 回答 2

0

我会做 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

实际的代码会比这更棘手。如果要移动文件的目录存在怎么办?如果它不存在怎么办?这是您要移动的目录还是文件?所有这些都会影响您移动文件的方式。

真正的问题是你为什么突然发现自己在做这件事。所有这些未版本控制的文件是从哪里来的,为什么它们也必须移动到您工作区中的另一个目录?

于 2013-05-06T14:52:16.900 回答
0

您可以执行以下操作:

for f in svn ls .; do svn mv $f subfolder; done
mv * subfolder

你仍然必须处理subfolder. .svn不匹配*,但是您可能需要处理名称以点开头的文件和目录。

于 2013-05-06T14:58:39.117 回答