我可以通過移動混合物
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