158 elif os.path.exists('/usr/tmp'): |
158 elif os.path.exists('/usr/tmp'): |
159 tmpdir = '/usr/tmp' |
159 tmpdir = '/usr/tmp' |
160 elif os.path.exists('/tmp'): |
160 elif os.path.exists('/tmp'): |
161 tmpdir = '/tmp' |
161 tmpdir = '/tmp' |
162 else: |
162 else: |
163 E5MessageBox.critical(self, |
163 E5MessageBox.critical( |
|
164 self, |
164 self.trUtf8("Subversion Diff"), |
165 self.trUtf8("Subversion Diff"), |
165 self.trUtf8("""There is no temporary directory available.""")) |
166 self.trUtf8("""There is no temporary directory available.""")) |
166 return |
167 return |
167 |
168 |
168 tmpdir = os.path.join(tmpdir, 'svn_tmp') |
169 tmpdir = os.path.join(tmpdir, 'svn_tmp') |
218 self.__getDiffSummaryKind( |
219 self.__getDiffSummaryKind( |
219 diff_sum['summarize_kind']), |
220 diff_sum['summarize_kind']), |
220 diff_sum['path'])) |
221 diff_sum['path'])) |
221 diffText = os.linesep.join(diff_list) |
222 diffText = os.linesep.join(diff_list) |
222 else: |
223 else: |
223 diffText = self.client.diff(tmpdir, |
224 diffText = self.client.diff( |
|
225 tmpdir, |
224 url1, revision1=rev1, |
226 url1, revision1=rev1, |
225 url_or_path2=url2, revision2=rev2, |
227 url_or_path2=url2, revision2=rev2, |
226 recurse=recurse) |
228 recurse=recurse) |
227 else: |
229 else: |
228 if pegRev is not None: |
230 if pegRev is not None: |
230 tmpdir, name, |
232 tmpdir, name, |
231 peg_revision=self.__getVersionArg(pegRev), |
233 peg_revision=self.__getVersionArg(pegRev), |
232 revision_start=rev1, revision_end=rev2, |
234 revision_start=rev1, revision_end=rev2, |
233 recurse=recurse) |
235 recurse=recurse) |
234 else: |
236 else: |
235 diffText = self.client.diff(tmpdir, name, |
237 diffText = self.client.diff( |
|
238 tmpdir, name, |
236 revision1=rev1, revision2=rev2, recurse=recurse) |
239 revision1=rev1, revision2=rev2, recurse=recurse) |
237 counter = 0 |
240 counter = 0 |
238 for line in diffText.splitlines(): |
241 for line in diffText.splitlines(): |
239 if line.startswith("--- ") or \ |
242 if line.startswith("--- ") or \ |
240 line.startswith("+++ "): |
243 line.startswith("+++ "): |
419 if not ext: |
422 if not ext: |
420 ex = selectedFilter.split("(*")[1].split(")")[0] |
423 ex = selectedFilter.split("(*")[1].split(")")[0] |
421 if ex: |
424 if ex: |
422 fname += ex |
425 fname += ex |
423 if QFileInfo(fname).exists(): |
426 if QFileInfo(fname).exists(): |
424 res = E5MessageBox.yesNo(self, |
427 res = E5MessageBox.yesNo( |
|
428 self, |
425 self.trUtf8("Save Diff"), |
429 self.trUtf8("Save Diff"), |
426 self.trUtf8("<p>The patch file <b>{0}</b> already exists." |
430 self.trUtf8("<p>The patch file <b>{0}</b> already exists." |
427 " Overwrite it?</p>").format(fname), |
431 " Overwrite it?</p>").format(fname), |
428 icon=E5MessageBox.Warning) |
432 icon=E5MessageBox.Warning) |
429 if not res: |
433 if not res: |
434 try: |
438 try: |
435 f = open(fname, "w", encoding="utf-8", newline="") |
439 f = open(fname, "w", encoding="utf-8", newline="") |
436 f.write(eol.join(self.contents.toPlainText().splitlines())) |
440 f.write(eol.join(self.contents.toPlainText().splitlines())) |
437 f.close() |
441 f.close() |
438 except IOError as why: |
442 except IOError as why: |
439 E5MessageBox.critical(self, self.trUtf8('Save Diff'), |
443 E5MessageBox.critical( |
440 self.trUtf8('<p>The patch file <b>{0}</b> could not be saved.' |
444 self, self.trUtf8('Save Diff'), |
|
445 self.trUtf8( |
|
446 '<p>The patch file <b>{0}</b> could not be saved.' |
441 '<br>Reason: {1}</p>') |
447 '<br>Reason: {1}</p>') |
442 .format(fname, str(why))) |
448 .format(fname, str(why))) |
443 |
449 |
444 def __showError(self, msg): |
450 def __showError(self, msg): |
445 """ |
451 """ |