Reputation: 56242
I have just created a mercurial repo created from a heterogeneous ecosystems of other repos. Before I publish it to my co-workers, I want to clean it as much as possible. To this end, I'd like to entirely remove a few big old files from history (pretend they never existed), so repo will be smaller.
Is this possible with mercurial?
Upvotes: 35
Views: 4753
Reputation: 177516
Check out the convert
extension, particularly the --filemap
option.
Enable by adding the following to mercurial.ini
:
[extensions]
convert =
Create a map of files to exclude:
exclude path/to/file1
exclude path/to/file2
Then convert the repo:
hg convert srcrepo destrepo --filemap <map>
Note there is a bug in Mercurial 2.1.1 causing an error with the above command:
initializing destination destrepo repository
abort: invalid mode ('r') or filename
Just add the --splicemap <nonexistent file>
option to fix the problem.
Upvotes: 36