假设我已经使用Windows资源管理器将文件A
更名为文件B
,并创建了新的文件C
。撤销TortoiseSVN中的修复移动
在Tortoise SVN中,我无意中使用文件A
和C
上的“修复移动”,而不是A
和B
。有没有简单的方法来撤消修复(并用正确的文件重做)?在这一点上不会进行更改。
我目前知道的唯一方法是恢复删除和添加,这将恢复文件A
,然后再次手动删除该文件并正确地重做关联。由于涉及多个文件,这有些涉及意外恢复本地更改的风险,所以如果有更好的方法,我很感兴趣。
注意:尽管TortoiseSVN被用来产生问题,但svn控制台的答案也是可以接受的。
这里是文件A.txt
,B.txt
的例子和C.txt
一步一步:
后A
被重命名为B
和C
被本地添加
>svn st
! A.txt
? B.txt
? C.txt
之后乌龟SVN“修复移动“错误应用A
- >C
>svn st
D A.txt
> moved to C.txt
? B.txt
A + C.txt
> moved from A.txt
我的工作流程解决的情况,这我不是真正的快乐:
>ren C.txt C.txt.bak
>svn revert C.txt A.txt
>ren C.txt.bak C.txt
>del A.txt
从那里我可以重做修复与正确的文件
>svn st
! A.txt
? B.txt
? C.txt
在出发状况可能引发
我会爱,但似乎并不存在
svn mv --force --ignore-files A.txt B.txt
svn add --force C.txt
的方式,它忽略了一个已标记删除,并允许从A到B的历史记录转移,从A重新诠释C作为清洁的添加而不是transfering历史
我可能会弄错它,但不想做的是从分段中删除更改,然后手动修复重命名,然后执行阶段提交。是对的吗?如果是这样,那么这个过程的自动版本究竟是什么 - 即 - 你将如何告诉SVN你真正想要的变化? –
还有几件事 - 风险究竟是什么?如果您提交错误的文件,您会丢失数据/工作吗?我们在谈论多少个文件? –
@LeftyGBalogh我莫名其妙地希望有一种方法可以恢复SVN状态(例如'deleted')而不实际恢复文件。这将允许我正确地重做关联。风险是在项目元文件和代码文件之间获得不一致的状态,破坏版本历史记录或丢失本地更改。我们正在谈论过去发生在我身上的一件事情,并可能在未来再次发生。我照顾过去的事件,但我对我的工作流程并不满意。 – grek40