Skip to content
Snippets Groups Projects
  • Matt Harbison's avatar
    3790efb388ca
    lfs: bypass wrapped functions when reposetup() hasn't been called (issue5902) · 3790efb388ca
    Matt Harbison authored
    There are only a handful of methods that access repo attributes that are applied
    in reposetup().  The `diff` test covers all of the commands that call
    scmutil.prefetchfiles().  Along the way, I saw that adding files and upgrading
    the repo format were also problems (also tested here).
    
    I don't think running `hg serve` through the commandserver is sane, but I
    conditionalized both the capabilities and the wsgirequest handler because it's
    trivially correct.  It doesn't look like there has ever been a caller of
    candownload(), so there's no test for that path.
    
    The upload case isn't testable, because uploadblobs() bails if there are no
    pointers.  The requirement should be added any time pointers are introduced, and
    that would force the extension to be loaded specifically for the repo.  This
    covers `debuglfsupload`, the pre-push hook (which isn't set until the repo is
    promoted to LFS), and uploadblobsfromrevs(), which can be called by other
    extensions.
    
    I think readfromstore() and writetostore() are only reachable as a flag
    processor for revlog.REVIDX_EXTSTORED, and a requirement is added as soon as
    that is seen, so I don't think those are a problem.
    3790efb388ca
    History
    lfs: bypass wrapped functions when reposetup() hasn't been called (issue5902)
    Matt Harbison authored
    There are only a handful of methods that access repo attributes that are applied
    in reposetup().  The `diff` test covers all of the commands that call
    scmutil.prefetchfiles().  Along the way, I saw that adding files and upgrading
    the repo format were also problems (also tested here).
    
    I don't think running `hg serve` through the commandserver is sane, but I
    conditionalized both the capabilities and the wsgirequest handler because it's
    trivially correct.  It doesn't look like there has ever been a caller of
    candownload(), so there's no test for that path.
    
    The upload case isn't testable, because uploadblobs() bails if there are no
    pointers.  The requirement should be added any time pointers are introduced, and
    that would force the extension to be loaded specifically for the repo.  This
    covers `debuglfsupload`, the pre-push hook (which isn't set until the repo is
    promoted to LFS), and uploadblobsfromrevs(), which can be called by other
    extensions.
    
    I think readfromstore() and writetostore() are only reachable as a flag
    processor for revlog.REVIDX_EXTSTORED, and a requirement is added as soon as
    that is seen, so I don't think those are a problem.