hg remove directory from repo?

你离开我真会死。 提交于 2020-01-01 04:05:27

问题


I'd like to remove a directory and all the files in it from a repo.

I have removed all the files with 'hg remove', but how do I remove the directory itself?

Will it just automatically vanish once I commit all the removed files?

thanks!


回答1:


Yes. Because mercurial doesn't track directories at all, only files, it only creates directories that have files in them, and if someone hg updates to a revision any directories that become empty are automatically removed. So if you do:

hg remove directory/*
hg commit -m 'removed all files in directory'
hg update -r 0   # updates to a different revision
hg update tip    # jump back to the tip

That last update would remove the directory. For everyone else it's even easier. When they hg update to your new changes their directory will just vanish (provided they have no uncommitted file in it).




回答2:


hg remove dir

If you end up with empty directories and you want to get rid of them, an easy way is the purge extension. (add purge= under the [extensions] group in your .hrgc file to unlock).

You can then use

hg purge

to clean up the empty dirs... You must be careful with the purge command as it removes everything that is untracked in your repos. I strongly suggest you run a

hg purge -p

beforehand to see what the command will do ( -p will print a "test run" without doing anything.) Never forget the --help option! ;)

edit: I prefer using purge to hg update in succession as updating triggers rebuilds in my IDE if it is open (and it's a good bet it is when I do that). hg purge will probably be smoother. And you can use --all to include ignored files too (must be careful though).




回答3:


To remove a directory, Just do

hg remove <dir>
hg commit -m "..."

This will remove the directory and all files under it.



来源:https://stackoverflow.com/questions/3917275/hg-remove-directory-from-repo

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