changeset 15660:c7b0bedbb07a

merge with stable
author Matt Mackall <mpm@selenic.com>
date Thu, 15 Dec 2011 16:50:21 -0600
parents 7fba5a245acc (current diff) 971c55ce03b8 (diff)
children 7b7f03502b5a 46dffa176096
files hgext/largefiles/lfutil.py
diffstat 1 files changed, 15 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/largefiles/lfutil.py	Thu Dec 15 23:08:09 2011 +0100
+++ b/hgext/largefiles/lfutil.py	Thu Dec 15 16:50:21 2011 -0600
@@ -91,22 +91,28 @@
     else:
         if os.name == 'nt':
             appdata = os.getenv('LOCALAPPDATA', os.getenv('APPDATA'))
-            path = os.path.join(appdata, longname, hash)
+            if appdata:
+                path = os.path.join(appdata, longname, hash)
         elif platform.system() == 'Darwin':
-            path = os.path.join(os.getenv('HOME'), 'Library', 'Caches',
-                                longname, hash)
+            home = os.getenv('HOME')
+            if home:
+                path = os.path.join(home, 'Library', 'Caches',
+                                    longname, hash)
         elif os.name == 'posix':
             path = os.getenv('XDG_CACHE_HOME')
             if path:
                 path = os.path.join(path, longname, hash)
             else:
-                path = os.path.join(os.getenv('HOME'), '.cache', longname, hash)
+                home = os.getenv('HOME')
+                if home:
+                    path = os.path.join(home, '.cache', longname, hash)
         else:
             raise util.Abort(_('unknown operating system: %s\n') % os.name)
     return path
 
 def inusercache(ui, hash):
-    return os.path.exists(usercachepath(ui, hash))
+    path = usercachepath(ui, hash)
+    return path and os.path.exists(path)
 
 def findfile(repo, hash):
     if instore(repo, hash):
@@ -239,8 +245,10 @@
         linktousercache(repo, hash)
 
 def linktousercache(repo, hash):
-    util.makedirs(os.path.dirname(usercachepath(repo.ui, hash)))
-    link(storepath(repo, hash), usercachepath(repo.ui, hash))
+    path = usercachepath(repo.ui, hash)
+    if path:
+        util.makedirs(os.path.dirname(path))
+        link(storepath(repo, hash), path)
 
 def getstandinmatcher(repo, pats=[], opts={}):
     '''Return a match object that applies pats to the standin directory'''