使用手动移动的文件修复颠覆存储库



我已经重构了一个Java Ant项目,以便使用Maven。该任务主要包括将文件从一个路径移动到另一个路径,同时在这里和那里添加pom.xml,但是当我想提交更改时,问题出现了。由于我已经手动移动了文件(不使用svn mv(,因此颠覆失去了对文件的跟踪,并且所有历史记录都损坏了。

我知道我应该使用svn mv来保留历史,但是来自git,我才意识到需要直到为时已晚。我的问题是:有什么方法可以告诉subversion哪个存储库文件对应于每个工作复制文件?似乎有可能手动执行SVN命令,但是我需要通过文件进行文件,坦率地说,这是很多工作。我可以编写一个脚本,该脚本,对于我的"破碎"工作副本搜索中的每个文件,按名称/MD5进行搜索,然后执行正确的svn mv,但我不想重新发明轮子,因为我认为这可能是一个常见错误。

任何建议?

稍作搜索后,我发现乌龟SVN有些能够修复这种"不良动作",但仅用于单个文件,还有一个称为smartsvn的工具能够为大量文件进行操作,但是由于不是免费的,所以我无法尝试。

最后,我编写了一个小型bash脚本,对于"错误"工作副本中的每个文件,都试图找到其原始路径,请撤消其并执行正确的svn mv。我将其上传到GitHub,但请自行使用它。

最新更新