开发者

Would like to do a mercurial clone with filter of patterns in hgignore

Over time a number of the developers have committed files that were then added to the .hgignore. From what I hear there is no way to remove items from the history of mercurial, which is ok. But I also heard that there is a way to do a cl开发者_JS百科one, I think using the convert plugin, to clone/export a repo while specifying which files to not include in the conversion.

I can't help but think that someone out there has a script that does this export/filter/convert using the patterns from the .hgignore file.

Has anyone created such a beast?


You could create a filemap from .hgignore doing something like this:

hg clone -U yourrepo temprepo # create a temp repo with no files in working dir
cd tmprepo
hg revert --all # put files in working dir
hg forget **   # un-add the files
hg status --ignored --no-status | sed 's/^/exclude /' > ../filemap

that will get you a filemap you can pass into hg convert that removes all the added files that would be ignored given your .hgignore.

Do understand though, that running convert creates a whole new repo that is unrelated to your previous repo. All existing clones will be unusable with the new one. It's not normally worth it.


hg convert is indeed the thing you want to use.

You will want to create a file map (just a text file) which will list all of the things you either want to include, exclude, or rename:

include subfolder
exclude subfolder/supersub
etc...

Read the following for a more concrete example:
https://www.mercurial-scm.org/wiki/ConvertExtension#A--filemap

Once you have created this file you will just use the following command:

$ hg convert --filemap my_file_map /path/to/source/repo /path/to/dest/repo

The source repo will not be modified and a dest repo will be created. I don't want to just copy verbatim what the documentation already says so here is the link:

How to keep just a subdirectory (or run on the mercurial repo):
https://www.mercurial-scm.org/wiki/ConvertExtension#Converting_from_Mercurial

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜