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.