"有人"已提取
/giant-repo/trunk/sublib
到
/fancyname/trunk
使用svn cp
和svn mv
正确复制或移动了部分目录和文件,从而保留了历史记录。
其他文件和目录都是在从原始位置复制文件内容(即无版本)之前在新位置新构建的(从sublib
到fancyname
的同构模式重命名)。 / 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"这些更改,正确复制文件,然后重新应用更改?
答案 0 :(得分:2)
您无法修改SVN中的历史记录(不转储存储库并修改转储文件,这是繁重且繁琐的工作)。
所以最简单(不正确!)的方式是
svn rename foo.txt foo_wrong.txt
,然后
svn copy foo.txt@950 foo.txt
(现在提交)
这样你就从现在起修复了foo.txt的历史记录。版本历史之间的时间被打破。你无法用svn客户端解决它。