2011-06-14 55 views
1

所以我通过SVN做了很大的重新安排文件。激烈地说,我的意思是一次移动数十个文件夹并创建数十个文件夹。我在与SVN搏斗时遇到了很多麻烦。其中一部分是我一直忘记使用'svn mv'和其他相关的svn命令。这部分虽然是内置的工具(find,xargs等)给我更多的权力来做某些事情。通过svn的剧烈重新安排

为了长话短说我不断收到我移动目录的情况,并且源目标显示标记为'!'和新的目的地为'?'这是有道理的。但是,当我尝试添加标记为'?'的新目标时它说它已经在颠覆。我假设它的.svn目录是造成问题,但如果我删除它,然后我得到“不是工作副本”的错误。

所以更高层次的问题是,我坚持svn mv,svn删除,svn mkdir等...? 我已经搜索并找到了对git-svn的引用,但它不是一个选项。任何通过svn重新安排文件的建议?是否有相当于类似的东西:

找到。 -type d -name somefolder -exec touch somefile \;

使用svn命令不会造成麻烦。 或多个相关,如果我做的编辑这样的:

的mkdir -p {A,B,C}/{d,E}/F

我该怎么做,使用SVN的mkdir?

谢谢。

回答

3

要解决当前问题,您可以从移动的文件夹中删除.svn目录。之后,您可以再次添加它们。

但是我真的会推荐使用svn mv,因为如果没有引用文件的版本历史记录的话。

使用svn命令不会导致麻烦。或多个相关,如果我做的编辑这样的:

的mkdir -p {A,B,C}/{d,E}/F

你可以试试这个:

mkdir -p {a,b,c}/{d,e}/f 
svn add {a,b,c}/{d,e}/f 
+0

工作,谢谢。虽然我刚才注意到一个限制。如果我需要做'{a,b,c}/*/{d,e}'怎么办?现在mkdir以'*'为名创建一个新目录。有没有办法“逃避”*,并将其解释为“该文件夹中的所有内容”。 – yarian 2011-06-14 15:13:47

+0

@YGomez:我想我回答了我自己的问题。似乎: 'A在{a,b,c};在$ {A}/*中为B做;做mkdir $ {B}/f;完成;完成;' 做这项工作。我不确定这是否是一种可怕的方式。 – yarian 2011-06-14 15:26:55

+0

@YGomez:类似'*/non-existing_path'的东西永远不会工作,因为shell不会找到不存在的部分。我认为循环确实是最简单的选择。 – Wolph 2011-06-14 22:26:36

0

我在做大型svn操作时经常使用xargs,与使用普通命令相比,我没有发现这种限制。