我一直在使用Mercurial版本控制系统已经有几段时间了,我已经看到系统警告过我有关不同的重命名。为什么mercurial会提醒我不同的重命名?
我所做的是让一个大文件的两个不同的后代。例如,我有一个名为HttpRequest
的类,它是CGI.pm
的包装。后来,当我决定转向PSGI
协议时,我已经制作了这个文件的两个副本,即Cgi.pm
和Psgi.pm
。原始类继续存在,并且随着从中继承而来的新类变得抽象。
我一直认为这是处理这种情况的首选方式,因为每个文件都保留了它所基于的文件的历史记录。但是当我将更改推送到远程服务器时,它告诉我:
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 2 changesets with 2 changes to 2 files (+1 heads)
remote: warning: detected divergent renames of lib/HttpRequest.pm to:
remote: lib/HttpRequest/Cgi.pm
remote: lib/HttpRequest/Psgi.pm
这是坏的吗?我应该以其他方式做吗?
您提到的'+1头部'出现在这里,因为我一直在功能分支中工作,然后将它与'default'分支合并。这个添加的头只是在合并后添加到功能分支的结束变更集。 但奇怪的是,我不能用干净的存储库重现此警告,所以你是对的,这不是由同一个文件的两个副本造成的。我一定犯了错误,然后忘了它。 – 2012-04-20 12:45:58