summaryrefslogtreecommitdiff
path: root/git/index/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/index/base.py')
-rw-r--r--git/index/base.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/git/index/base.py b/git/index/base.py
index 10de3358..f8696800 100644
--- a/git/index/base.py
+++ b/git/index/base.py
@@ -367,6 +367,17 @@ class IndexFile(LazyMixin, diff.Diffable, Serializable):
abs_path = os.path.join(r, path)
# END make absolute path
+ try:
+ st = os.lstat(abs_path) # handles non-symlinks as well
+ except OSError:
+ # the lstat call may fail as the path may contain globs as well
+ pass
+ else:
+ if S_ISLNK(st.st_mode):
+ yield abs_path.replace(rs, '')
+ continue
+ # end check symlink
+
# resolve globs if possible
if '?' in path or '*' in path or '[' in path:
for f in self._iter_expand_paths(glob.glob(abs_path)):