Mercurial > public > mercurial-scm > hg
comparison mercurial/context.py @ 19900:7c21e3398931
context: use "vfs.lstat()" instead of "os.lstat()"
This patch also changes paths added to "rejected" list from full path
(referred by "p") to relative one (referred by "f"), when type of
target path is neither file nor symlink.
This change should be reasonable, because the path added to "rejected"
list is relative one, when "OSError" is raised at "lstat()".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 15 Oct 2013 00:51:04 +0900 |
parents | e61c6138fa33 |
children | 4d3ce1646dfc |
comparison
equal
deleted
inserted
replaced
19899:8c3dcbbfb5de | 19900:7c21e3398931 |
---|---|
1109 join = lambda f: os.path.join(prefix, f) | 1109 join = lambda f: os.path.join(prefix, f) |
1110 wlock = self._repo.wlock() | 1110 wlock = self._repo.wlock() |
1111 ui, ds = self._repo.ui, self._repo.dirstate | 1111 ui, ds = self._repo.ui, self._repo.dirstate |
1112 try: | 1112 try: |
1113 rejected = [] | 1113 rejected = [] |
1114 lstat = self._repo.wvfs.lstat | |
1114 for f in list: | 1115 for f in list: |
1115 scmutil.checkportable(ui, join(f)) | 1116 scmutil.checkportable(ui, join(f)) |
1116 p = self._repo.wjoin(f) | |
1117 try: | 1117 try: |
1118 st = os.lstat(p) | 1118 st = lstat(f) |
1119 except OSError: | 1119 except OSError: |
1120 ui.warn(_("%s does not exist!\n") % join(f)) | 1120 ui.warn(_("%s does not exist!\n") % join(f)) |
1121 rejected.append(f) | 1121 rejected.append(f) |
1122 continue | 1122 continue |
1123 if st.st_size > 10000000: | 1123 if st.st_size > 10000000: |
1127 "pending addition)\n") | 1127 "pending addition)\n") |
1128 % (f, 3 * st.st_size // 1000000, join(f))) | 1128 % (f, 3 * st.st_size // 1000000, join(f))) |
1129 if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)): | 1129 if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)): |
1130 ui.warn(_("%s not added: only files and symlinks " | 1130 ui.warn(_("%s not added: only files and symlinks " |
1131 "supported currently\n") % join(f)) | 1131 "supported currently\n") % join(f)) |
1132 rejected.append(p) | 1132 rejected.append(f) |
1133 elif ds[f] in 'amn': | 1133 elif ds[f] in 'amn': |
1134 ui.warn(_("%s already tracked!\n") % join(f)) | 1134 ui.warn(_("%s already tracked!\n") % join(f)) |
1135 elif ds[f] == 'r': | 1135 elif ds[f] == 'r': |
1136 ds.normallookup(f) | 1136 ds.normallookup(f) |
1137 else: | 1137 else: |