Hg: How to move files (to subfolder) without losing history?

ぃ、小莉子 提交于 2019-12-03 06:28:24

问题


How to move files (to subfolder) without losing their history?

In my Mercurial repository (I mean the folder with the .hg in it) I have MyProject/ folder with all project files. Now I need to create src/ folder inside and move all files to it (from MyProject/ to MyProject/src/). How can I do it without losing all history?


回答1:


hg mv 

does do the right thing, but hg log does not list entries past the move unless you give it the -f option. See this question for more info

Why 'hg mv' (mercurial) doesn't move a file's history by default?

After you do this, you likely want to add the -f option to hg log to the hgrc file for the repo.

.hg/hgrc

[defaults] 
log = -f 



回答2:


Since you have a "tortoisehg" tag, I figured I'd explain the way I do this using the GUI.

Usually, I just rename/move files in my IDE, or from windows explorer, then when I go to commit, THG will show a bunch of (?) unknown files and (R) removed files. Just right click on any of the files and choose "Detect Renames...", then click the "Find Renames" button.

You might have to adjust the "Min Similarity" slider until you get all the files you want and only the files you want, but it's usually very straightforward.




回答3:


In Windows with Tortoise HG installed, there is a windows shell extension that handles this very nicely.

In Windows Explorer, simply right-click and drag the file(s) you wish to move into the destination folder. You are then presented with a pop-up that give you these choices:

HG Move versioned item(s) here

HG Copy versioned item(s) here




回答4:


Use hg mv to move your files and then use hg log -f (follow) to see history including renames.



来源:https://stackoverflow.com/questions/22045248/hg-how-to-move-files-to-subfolder-without-losing-history

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!