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: