我一直在使用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