我可以通过移动混合物
mv * subfolder/
和版本控制文件经由
svn mv * subfolder/
(除了问题subfolder
是在*
)
但是如果一半文件被版本化而另一半文件不存在,我该如何移动文件?
我可以通过移动混合物
mv * subfolder/
和版本控制文件经由
svn mv * subfolder/
(除了问题subfolder
是在*
)
但是如果一半文件被版本化而另一半文件不存在,我该如何移动文件?
我会做一个find . \! \(-name .svn -prune \)
和管道,为一个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-06 20:09:44
你可以这样做:
for f in svn ls .; do svn mv $f subfolder; done
mv * subfolder
你仍然必须处理subfolder
。 .svn
与*
不匹配,但是您可能需要处理名称以点开头的文件和目录。
你有没有试过后者?如果是这样,你会得到什么错误? – alroc 2013-05-06 14:19:27
@alroc'svn:'file.end'不在版本控制下'然后svn停止并且不会继续处理其他文件 – 2013-05-06 20:03:53