Skip to content
Snippets Groups Projects
  • Matt Harbison's avatar
    0b79f99fd7b0
    lfs: prefetch lfs blobs when applying merge updates · 0b79f99fd7b0
    Matt Harbison authored
    In addition to merge, this method ultimately gets called by many commands:
    
      - backout
      - bisect
      - clone
      - fetch
      - graft
      - import (without --bypass)
      - pull -u
      - rebase
      - strip
      - share
      - transplant
      - unbundle
      - update
    
    Additionally, it's also called by histedit, shelve, unshelve, and split, but it
    seems that the related blobs should always be available locally for these.
    
    For `hg update`, it happens after the normal argument checking and pre-update
    hook processing, and remote corruption is detected prior to manipulating the
    working directory.  Other commands could use this treatment (archive, cat,
    revert, etc), but this covers so many of the frequently used bulk commands, it
    seems like a good starting point.
    
    Losing the verbose message that prints the file name before a corrupt blob
    aborts the command is a little sad, because there's no easy way to go from oid
    to file name.  I'd like to change that message to list the file name so it looks
    cleaner and less cryptic, but the pointer object is nowhere near where it needs
    to be to do this.  So punt on that for now.
    0b79f99fd7b0
    History
    lfs: prefetch lfs blobs when applying merge updates
    Matt Harbison authored
    In addition to merge, this method ultimately gets called by many commands:
    
      - backout
      - bisect
      - clone
      - fetch
      - graft
      - import (without --bypass)
      - pull -u
      - rebase
      - strip
      - share
      - transplant
      - unbundle
      - update
    
    Additionally, it's also called by histedit, shelve, unshelve, and split, but it
    seems that the related blobs should always be available locally for these.
    
    For `hg update`, it happens after the normal argument checking and pre-update
    hook processing, and remote corruption is detected prior to manipulating the
    working directory.  Other commands could use this treatment (archive, cat,
    revert, etc), but this covers so many of the frequently used bulk commands, it
    seems like a good starting point.
    
    Losing the verbose message that prints the file name before a corrupt blob
    aborts the command is a little sad, because there's no easy way to go from oid
    to file name.  I'd like to change that message to list the file name so it looks
    cleaner and less cryptic, but the pointer object is nowhere near where it needs
    to be to do this.  So punt on that for now.