Can I split a Mercurial repository?

2020-01-30 03:39发布

I have a largish Mercurial repository that I've decided would be better as several smaller repositories. Is there a way that I can split the repository and have each piece retain its revision history?

3条回答
▲ chillily
2楼-- · 2020-01-30 04:06

Just clone it and delete the unwanted stuff out of each copy.

查看更多
太酷不给撩
3楼-- · 2020-01-30 04:08

The best way to do this is using the 'convert' extension. You'll use mercurial and both source and destination type and then use a --filemap with entries like:

exclude path/you/do/not/want
rename path/you/do/want .

The rename is only necessary if you want to take the parts you're keeping and move them "higher" in the directory hierarchy.

查看更多
可以哭但决不认输i
4楼-- · 2020-01-30 04:30

I found a detailed guide here:

Create a file map new-repo.filemap such as

include vendor/FooBackend
rename vendor/FooBackend .

Create another file map rewrite-old-repo.filemap:

exclude vendor/FooBackend

Create the new repository:

hg convert /path/to/current/repo /path/to/new/repo --filemap new-repo.filemap

The new repository is now finished. The directory is empty, but a hg update will bring its contents up to speed.

Create the modified repository:

hg convert /path/to/current/repo /path/to/rewritten/repo --filemap rewrite-old-repo.filemap
查看更多
登录 后发表回答