Skip to content
Snippets Groups Projects
  • Pierre-Yves David's avatar
    12f13b13f414
    revlog: avoid possible collision between directory and temporary index · 12f13b13f414
    Pierre-Yves David authored
    Since 6.4, we create a temporary index file to write the split data without
    overwriting the inline version too early. However, the store encoding does not
    prevent these new `.i.s` file to collide with a directory with the same name.
    While the odds for such a collision to happens are fairly low, the collision
    would prevent Mercurial from working.
    
    The store encoding have a mitigation solution in place to prevent such
    collisions from happening for `.i` and `.d` files, but not for other extensions.
    We cannot update this encoding scheme to solve the issue since it would diverge
    from older version of Mercurial.
    
    Instead, we create an alternative directory tree dedicated to such files.
    The use of the `.i` extension combined with store encoding will prevent
    collisions there.
    12f13b13f414
    History
    revlog: avoid possible collision between directory and temporary index
    Pierre-Yves David authored
    Since 6.4, we create a temporary index file to write the split data without
    overwriting the inline version too early. However, the store encoding does not
    prevent these new `.i.s` file to collide with a directory with the same name.
    While the odds for such a collision to happens are fairly low, the collision
    would prevent Mercurial from working.
    
    The store encoding have a mitigation solution in place to prevent such
    collisions from happening for `.i` and `.d` files, but not for other extensions.
    We cannot update this encoding scheme to solve the issue since it would diverge
    from older version of Mercurial.
    
    Instead, we create an alternative directory tree dedicated to such files.
    The use of the `.i` extension combined with store encoding will prevent
    collisions there.