131 # read the trailing newline |
131 # read the trailing newline |
132 self.catfilepipe[1].read(1) |
132 self.catfilepipe[1].read(1) |
133 return data |
133 return data |
134 |
134 |
135 def getfile(self, name, rev): |
135 def getfile(self, name, rev): |
|
136 if rev == hex(nullid): |
|
137 raise IOError |
136 if name == '.hgsub': |
138 if name == '.hgsub': |
137 data = '\n'.join([m.hgsub() for m in self.submoditer()]) |
139 data = '\n'.join([m.hgsub() for m in self.submoditer()]) |
138 mode = '' |
140 mode = '' |
139 elif name == '.hgsubstate': |
141 elif name == '.hgsubstate': |
140 data = '\n'.join([m.hgsubstate() for m in self.submoditer()]) |
142 data = '\n'.join([m.hgsubstate() for m in self.submoditer()]) |
198 p = (entry[1] == "100755") |
201 p = (entry[1] == "100755") |
199 s = (entry[1] == "120000") |
202 s = (entry[1] == "120000") |
200 |
203 |
201 if f == '.gitmodules': |
204 if f == '.gitmodules': |
202 subexists = True |
205 subexists = True |
203 changes.append(('.hgsub', '')) |
206 if entry[4] == 'D': |
|
207 subdeleted = True |
|
208 changes.append(('.hgsub', hex(nullid))) |
|
209 else: |
|
210 changes.append(('.hgsub', '')) |
204 elif entry[1] == '160000' or entry[0] == ':160000': |
211 elif entry[1] == '160000' or entry[0] == ':160000': |
205 subexists = True |
212 subexists = True |
206 else: |
213 else: |
207 self.modecache[(f, h)] = (p and "x") or (s and "l") or "" |
214 self.modecache[(f, h)] = (p and "x") or (s and "l") or "" |
208 changes.append((f, h)) |
215 changes.append((f, h)) |
209 entry = None |
216 entry = None |
210 if fh.close(): |
217 if fh.close(): |
211 raise util.Abort(_('cannot read changes in %s') % version) |
218 raise util.Abort(_('cannot read changes in %s') % version) |
212 |
219 |
213 if subexists: |
220 if subexists: |
214 self.retrievegitmodules(version) |
221 if subdeleted: |
215 changes.append(('.hgsubstate', '')) |
222 changes.append(('.hgsubstate', hex(nullid))) |
|
223 else: |
|
224 self.retrievegitmodules(version) |
|
225 changes.append(('.hgsubstate', '')) |
216 return (changes, {}) |
226 return (changes, {}) |
217 |
227 |
218 def getcommit(self, version): |
228 def getcommit(self, version): |
219 c = self.catfile(version, "commit") # read the commit hash |
229 c = self.catfile(version, "commit") # read the commit hash |
220 end = c.find("\n\n") |
230 end = c.find("\n\n") |