我可以在subversion中重新连接不正确提取的库的历史记录吗?

时间:2016-11-22 15:38:03

标签: svn

"有人"已提取

/giant-repo/trunk/sublib

/fancyname/trunk

使用svn cpsvn mv正确复制或移动了部分目录和文件,从而保留了历史记录。

其他文件和目录都是在从原始位置复制文件内容(即无版本)之前在新位置新构建的(从sublibfancyname的同构模式重命名)。 / p>

我所看到的是:

~/work/fancyname> svn log -r 1234 --verbose
...
   A /fancyname/trunk/foo.txt
   A /fancyname/trunk/bar.txt (from /giant-repo/trunk/sublib/bar.txt:950)
...

目前共有大约140个文件和100个提交到/fancyname/trunk

有没有办法告诉subversion foo.txt中添加的r1234真的应该是sublib/foo.txt:950的副本?

如果没有(我怀疑是这种情况),我怎么能将其破解成形? 我想象一下,在新的仓库中没有任何提交的文件,最简单的解决方案是删除新文件(是否有"超级"恢复从存储库恢复添加?)然后发出正确的svn cp

新回购中有变化的文件怎么样?有没有办法去" pickle"这些更改,正确复制文件,然后重新应用更改?

1 个答案:

答案 0 :(得分:2)

您无法修改SVN中的历史记录(不转储存储库并修改转储文件,这是繁重且繁琐的工作)。

所以最简单(不正确!)的方式是

svn rename foo.txt foo_wrong.txt,然后

svn copy foo.txt@950 foo.txt(现在提交)

这样你就从现在起修复了foo.txt的历史记录。版本历史之间的时间被打破。你无法用svn客户端解决它。