简体   繁体   中英

Can I split a Mercurial repository?

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?

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 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

只需克隆它并从每个副本中删除不需要的东西。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM