Avoid failing concat for multi-encoding filenames

repo status should output filenames one by one instead of trying to
build a string from incompatible encodings (like utf-8 and sjis
filenames)

Change-Id: I52282236ececa562f109f9ea4b2e971d2b4bc045
This commit is contained in:
Cezary Baginski 2012-04-23 23:55:35 +02:00 committed by Shawn O. Pearce
parent 79770d269e
commit ccf86432b3

View File

@ -111,14 +111,21 @@ the following meanings:
threads_and_output = [] threads_and_output = []
for project in all: for project in all:
sem.acquire() sem.acquire()
output = StringIO.StringIO()
class BufList(StringIO.StringIO):
def dump(self, ostream):
for entry in self.buflist:
ostream.write(entry)
output = BufList()
t = _threading.Thread(target=self._StatusHelper, t = _threading.Thread(target=self._StatusHelper,
args=(project, counter, sem, output)) args=(project, counter, sem, output))
threads_and_output.append((t, output)) threads_and_output.append((t, output))
t.start() t.start()
for (t, output) in threads_and_output: for (t, output) in threads_and_output:
t.join() t.join()
sys.stdout.write(output.getvalue()) output.dump(sys.stdout)
output.close() output.close()
if len(all) == counter.next(): if len(all) == counter.next():
print 'nothing to commit (working directory clean)' print 'nothing to commit (working directory clean)'