Skip to content

Mercurial history per partes #3601

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 22 commits into from
May 23, 2021
Merged

Conversation

vladak
Copy link
Member

@vladak vladak commented May 21, 2021

Converts Mercurial history handling to the per partes style done in #3589 for Git.

In Mercurial I happen to be using (5.3.1) the revision filtering for file history log is still broken, i.e. hg log -r X:Y --follow <file> does not display expected list of changesets. This is only relevant to renamed file handling. I strip the unwanted HistoryEntry objects as a workaround. Even if it worked, it would be probably unusable - thinking the revision filtering for files works, I tried it first and it resulted in some of the hg processes to consume over 12 GB RSS and the system got into unhappy place (heavy swapping, the OOM killer striking).

The history cache was much slower to generate with the repository I tried this on (OpenSolaris ON gate with some 16k changesets, the majority of files added in the first changeset), like 4 minutes vs. 10 minutes (renamed handling on, 8 GB heap), however I think this is partly due to the fact that the history cache for renamed files is generated in parallel (there are some 2800 renamed files there) and for the regular files still sequentially (#3542).

@vladak vladak added the indexer label May 21, 2021
@vladak vladak changed the title Mercurial per partes Mercurial history per partes May 21, 2021
@ahornace
Copy link
Contributor

Looks good! Awesome job! :)

@ahornace ahornace merged commit d55b51d into oracle:master May 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants