[PATCH] largefiles: correctly catch exception on localized systems (issue3196)
Matt Mackall
mpm at selenic.com
Thu Jan 12 21:38:13 UTC 2012
On Thu, 2012-01-12 at 14:35 +0100, Na'Tosha Bard wrote:
> 2012/1/12 Mads Kiilerich <mads at kiilerich.com>
>
> > On 01/12/2012 02:13 PM, Na'Tosha Bard wrote:
> >
> >> # HG changeset patch
> >> # User Na'Tosha Bard<natosha at unity3d.com>
> >> # Date 1326373926 -3600
> >> # Node ID 88edae221c023d2073f4e2d45b120f**76766c73ef
> >> # Parent c47d69ce5208d5b5cfd2fb2f0f1d7a**2b4795fbf5
> >> largefiles: correctly catch exception on localized systems (issue3196)
> >>
> >> diff -r c47d69ce5208 -r 88edae221c02 hgext/largefiles/overrides.py
> >> --- a/hgext/largefiles/overrides.**py Wed Jan 11 09:27:53 2012 -0600
> >> +++ b/hgext/largefiles/overrides.**py Thu Jan 12 14:12:06 2012 +0100
> >> @@ -413,7 +413,7 @@
> >> installnormalfilesmatchfn(**repo[None].manifest())
> >> result = orig(ui, repo, pats, opts, rename)
> >> except util.Abort, e:
> >> - if str(e) != 'no files to copy':
> >> + if str(e) != _('no files to copy'):
> >> raise e
> >> else:
> >> nonormalfiles = True
> >> @@ -500,7 +500,7 @@
> >> lfdirstate.add(destlfile)
> >> lfdirstate.write()
> >> except util.Abort, e:
> >> - if str(e) != 'no files to copy':
> >> + if str(e) != _('no files to copy'):
> >>
> >
> > I agree that this needs to fixed - it is the most ugly spot in the whole
> > Mercurial code base. But papering it over like this is at most an temporary
> > workaround - not a solution.
> >
> > It might have been the best way to get the job done back when it had to
> > work with existing Mercurial versions, but now when it is distributed with
> > Mercurial we should have a proper solution - possibly by modifying core
> > Mercurial so the extension has a chance to handle it decently.
> If you have pointers on how to fix it in a more proper way, then I'm all
> ears. I am pretty sure the largefiles extension is not considered
> important enough to get any special treatment in core Mercurial, though.
After spending a few minutes staring at it, my suggestion is:
try:
result += orig(ui, repo, listpats, opts, rename)
finally:
if copiedfiles:
# do post-processing
..and make no attempt to inspect/handle exceptions directly.
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list