这是在Win2k3sp2上,使用TortoiseSVN 1.6.5和SlikSVN 1.6.3。
我在回购中有一个文件夹,把它叫做/ a / b,我想在同一个回购中成为/ a / c / d。 我已经尝试过移动文件夹并重命名,然后提交,显然它感到困惑,因为.svn文件夹认为它仍然是旧的名称,如果它能工作,这是一个双提交的事情/ a / b被删除,/ a / c / d是全新的,这是不好的,因为那样我就失去了附加在每个文件上的历史logging。
我开始捅了一跤,发现“搬迁”,带来了巨大的警告,并说服我不要使用它。 然后是“切换”,尽pipe我认为“重新定位”是描述我想要做的更直观的方式,但似乎是合适的select。 所以我这样做了,花了很长时间,即使在/ a / b中只有几个文件(如可能是8个文件夹,每个文件包含一个或两个文件),现在:
那么我的问题分两部分:
你的问题是使用了错误的命令; “开关”做了你想要的东西的确切补充 – 它改变了工作副本“指向”的存储库位置,而不需要改变存储库。 (开关然后提交会产生一些结果,但在一个真正的破碎的方式,这不是你的意思,你是对的;诱人的“重新定位”是一个特殊情况的“开关”,应该避免的相同的原因。)
“更新”命令然后更新工作副本,以匹配目前在“新”位置的存储库中的内容 – 什么都没有!
Subversion没有真正的移动/重命名。 颠覆 – 安全的方法是复制然后删除。 TortoiseSVN包括一个方便的“移动”选项,它可以作为一个操作进行复制和删除。
最简单的方法来做你想要的:
1.在TortoiseSVN中打开回购浏览器。
2. 右键单击并将文件夹从旧位置拖到新位置。
3.从上下文菜单中select“移动”。
这也适用于你的工作副本,并且是安全的乌龟/颠覆方式来移动或重命名文件和文件夹在WC而不会失去历史。
回答你的第二点,这里是我如何用Tortoise-SVN移动文件夹:
当你更新时,Tortoise SVN将删除它所在的文件夹,并在你移动它的地方重新创build它。
要正确移动文件,请使用移动命令 。
编辑:
注意,move,mv,rename,ren是同一个命令的别名。 它可以在TortoiseSVN下find“TortoiseSVN” – >“重命名…”, 见这里
我有一个类似的问题。 但在我的情况下,目录/ a / b和/ a / c分别被检查。
此解决scheme与稀疏(部分)结帐已解决问题。