MCPcopy Index your code
hub / github.com/git/git / streamP4FilesCb

Method streamP4FilesCb

git-p4.py:3235–3300  ·  view source on GitHub ↗

Handle another chunk of streaming data.

(self, marshalled)

Source from the content-addressed store, hash-verified

3233 self.largeFileSystem.removeLargeFile(relPath)
3234
3235 def streamP4FilesCb(self, marshalled):
3236 """Handle another chunk of streaming data."""
3237
3238 # catch p4 errors and complain
3239 err = None
3240 if "code" in marshalled:
3241 if marshalled["code"] == "error":
3242 if "data" in marshalled:
3243 err = marshalled["data"].rstrip()
3244
3245 if not err and 'fileSize' in self.stream_file:
3246 required_bytes = int((4 * int(self.stream_file["fileSize"])) - calcDiskFree())
3247 if required_bytes > 0:
3248 err = 'Not enough space left on %s! Free at least %s.' % (
3249 os.getcwd(), format_size_human_readable(required_bytes))
3250
3251 if err:
3252 f = None
3253 if self.stream_have_file_info:
3254 if "depotFile" in self.stream_file:
3255 f = self.stream_file["depotFile"]
3256 try:
3257 # force a failure in fast-import, else an empty
3258 # commit will be made
3259 self.gitStream.write("\n")
3260 self.gitStream.write("die-now\n")
3261 self.gitStream.close()
3262 # ignore errors, but make sure it exits first
3263 self.importProcess.wait()
3264 finally:
3265 if f:
3266 die("Error from p4 print for %s: %s" % (f, err))
3267 else:
3268 die("Error from p4 print: %s" % err)
3269
3270 if 'depotFile' in marshalled and self.stream_have_file_info:
3271 # start of a new file - output the old one first
3272 self.streamOneP4File(self.stream_file, self.stream_contents)
3273 self.stream_file = {}
3274 self.stream_contents = []
3275 self.stream_have_file_info = False
3276
3277 # pick up the new file information... for the
3278 # 'data' field we need to append to our array
3279 for k in marshalled.keys():
3280 if k == 'data':
3281 if 'streamContentSize' not in self.stream_file:
3282 self.stream_file['streamContentSize'] = 0
3283 self.stream_file['streamContentSize'] += len(marshalled['data'])
3284 self.stream_contents.append(marshalled['data'])
3285 else:
3286 self.stream_file[k] = marshalled[k]
3287
3288 if (verbose and
3289 'streamContentSize' in self.stream_file and
3290 'fileSize' in self.stream_file and
3291 'depotFile' in self.stream_file):
3292 size = int(self.stream_file["fileSize"])

Callers 1

streamP4FilesCbSelfMethod · 0.95

Calls 7

streamOneP4FileMethod · 0.95
calcDiskFreeFunction · 0.85
appendMethod · 0.80
dieFunction · 0.70
writeMethod · 0.45
flushMethod · 0.45

Tested by

no test coverage detected