Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
git-p4: add file streaming progress in verbose mode
author
Lars Schneider
<larsxschneider@gmail.com>
Sat, 26 Sep 2015 07:55:01 +0000
(09:55 +0200)
committer
Junio C Hamano
<gitster@pobox.com>
Sat, 3 Oct 2015 17:21:13 +0000
(10:21 -0700)
If a file is streamed from P4 to Git then the verbose mode prints
continuously the progress as percentage like this:
//depot/file.bin 20% (10 MB)
Upon completion the progress is overwritten with depot source, local
file and size like this:
//depot/file.bin --> local/file.bin (10 MB)
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-p4.py
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
7960e70
)
diff --git
a/git-p4.py
b/git-p4.py
index ae1e9ea52e1a61034f9e6b48d2ad25c10403a590..81b0fbc64856f3b05d9731e4fa94c56540cff6f1 100755
(executable)
--- a/
git-p4.py
+++ b/
git-p4.py
@@
-2171,7
+2171,9
@@
def splitFilesIntoBranches(self, commit):
def streamOneP4File(self, file, contents):
relPath = self.stripRepoPath(file['depotFile'], self.branchPrefixes)
if verbose:
def streamOneP4File(self, file, contents):
relPath = self.stripRepoPath(file['depotFile'], self.branchPrefixes)
if verbose:
- sys.stderr.write("%s\n" % relPath)
+ size = int(self.stream_file['fileSize'])
+ sys.stdout.write('\r%s --> %s (%i MB)\n' % (file['depotFile'], relPath, size/1024/1024))
+ sys.stdout.flush()
(type_base, type_mods) = split_p4_type(file["type"])
(type_base, type_mods) = split_p4_type(file["type"])
@@
-2248,7
+2250,8
@@
def streamOneP4File(self, file, contents):
def streamOneP4Deletion(self, file):
relPath = self.stripRepoPath(file['path'], self.branchPrefixes)
if verbose:
def streamOneP4Deletion(self, file):
relPath = self.stripRepoPath(file['path'], self.branchPrefixes)
if verbose:
- sys.stderr.write("delete %s\n" % relPath)
+ sys.stdout.write("delete %s\n" % relPath)
+ sys.stdout.flush()
self.gitStream.write("D %s\n" % relPath)
# handle another chunk of streaming data
self.gitStream.write("D %s\n" % relPath)
# handle another chunk of streaming data
@@
-2288,10
+2291,23
@@
def streamP4FilesCb(self, marshalled):
# 'data' field we need to append to our array
for k in marshalled.keys():
if k == 'data':
# 'data' field we need to append to our array
for k in marshalled.keys():
if k == 'data':
+ if 'streamContentSize' not in self.stream_file:
+ self.stream_file['streamContentSize'] = 0
+ self.stream_file['streamContentSize'] += len(marshalled['data'])
self.stream_contents.append(marshalled['data'])
else:
self.stream_file[k] = marshalled[k]
self.stream_contents.append(marshalled['data'])
else:
self.stream_file[k] = marshalled[k]
+ if (verbose and
+ 'streamContentSize' in self.stream_file and
+ 'fileSize' in self.stream_file and
+ 'depotFile' in self.stream_file):
+ size = int(self.stream_file["fileSize"])
+ if size > 0:
+ progress = 100*self.stream_file['streamContentSize']/size
+ sys.stdout.write('\r%s %d%% (%i MB)' % (self.stream_file['depotFile'], progress, int(size/1024/1024)))
+ sys.stdout.flush()
+
self.stream_have_file_info = True
# Stream directly from "p4 files" into "git fast-import"
self.stream_have_file_info = True
# Stream directly from "p4 files" into "git fast-import"