Mercurial > hg-stable
diff hgext/largefiles/lfutil.py @ 44410:ca82929e433d
lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
A coworker hit this error using an LFS repo in a stripped down environment, and
didn't know how to resolve it.
The final conditional is a bit fast and loose, but there is currently no 'posix'
test in hghave, and it doesn't seem like it's worth adding for this since I
think Windows is the only non-POSIX platform we run tests on.
Differential Revision: https://phab.mercurial-scm.org/D8145
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 24 Feb 2020 14:52:46 -0500 |
parents | 2d49482d0dd4 |
children | 89a2afe31e82 |
line wrap: on
line diff
--- a/hgext/largefiles/lfutil.py Mon Feb 24 17:43:34 2020 -0500 +++ b/hgext/largefiles/lfutil.py Mon Feb 24 14:52:46 2020 -0500 @@ -92,16 +92,30 @@ path = ui.configpath(name, b'usercache') if path: return path + + hint = None + if pycompat.iswindows: appdata = encoding.environ.get( b'LOCALAPPDATA', encoding.environ.get(b'APPDATA') ) if appdata: return os.path.join(appdata, name) + + hint = _(b"define %s or %s in the environment, or set %s.usercache") % ( + b"LOCALAPPDATA", + b"APPDATA", + name, + ) elif pycompat.isdarwin: home = encoding.environ.get(b'HOME') if home: return os.path.join(home, b'Library', b'Caches', name) + + hint = _(b"define %s in the environment, or set %s.usercache") % ( + b"HOME", + name, + ) elif pycompat.isposix: path = encoding.environ.get(b'XDG_CACHE_HOME') if path: @@ -109,11 +123,18 @@ home = encoding.environ.get(b'HOME') if home: return os.path.join(home, b'.cache', name) + + hint = _(b"define %s or %s in the environment, or set %s.usercache") % ( + b"XDG_CACHE_HOME", + b"HOME", + name, + ) else: raise error.Abort( _(b'unknown operating system: %s\n') % pycompat.osname ) - raise error.Abort(_(b'unknown %s usercache location') % name) + + raise error.Abort(_(b'unknown %s usercache location') % name, hint=hint) def inusercache(ui, hash):