Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py

changeset 3242
a7e006073658
parent 3190
a9a94491c4fd
child 3243
bbaa32bb9e63
equal deleted inserted replaced
3238:fa28dab59a9e 3242:a7e006073658
599 column, color, edges = self.__generateEdges(int(rev), parents) 599 column, color, edges = self.__generateEdges(int(rev), parents)
600 600
601 itm.setData(0, self.__messageRole, message) 601 itm.setData(0, self.__messageRole, message)
602 itm.setData(0, self.__changesRole, changedPaths) 602 itm.setData(0, self.__changesRole, changedPaths)
603 itm.setData(0, self.__edgesRole, edges) 603 itm.setData(0, self.__edgesRole, edges)
604 itm.setData(0, self.__parentsRole, parents) 604 if parents == [-1]:
605 itm.setData(0, self.__parentsRole, [])
606 else:
607 itm.setData(0, self.__parentsRole, parents)
605 608
606 if self.logTree.topLevelItemCount() > 1: 609 if self.logTree.topLevelItemCount() > 1:
607 topedges = \ 610 topedges = \
608 self.logTree.topLevelItem( 611 self.logTree.topLevelItem(
609 self.logTree.indexOfTopLevelItem(itm) - 1)\ 612 self.logTree.indexOfTopLevelItem(itm) - 1)\
658 self.buf = [] 661 self.buf = []
659 self.cancelled = False 662 self.cancelled = False
660 self.errors.clear() 663 self.errors.clear()
661 self.intercept = False 664 self.intercept = False
662 665
666 preargs = []
663 args = [] 667 args = []
664 args.append(self.commandMode) 668 args.append(self.commandMode)
665 self.vcs.addArguments(args, self.vcs.options['global']) 669 self.vcs.addArguments(args, self.vcs.options['global'])
666 self.vcs.addArguments(args, self.vcs.options['log']) 670 self.vcs.addArguments(args, self.vcs.options['log'])
667 args.append('--verbose') 671 args.append('--verbose')
699 args.append(self.bundle) 703 args.append(self.bundle)
700 elif not self.vcs.hasSubrepositories(): 704 elif not self.vcs.hasSubrepositories():
701 project = e5App().getObject("Project") 705 project = e5App().getObject("Project")
702 self.vcs.bundleFile = os.path.join( 706 self.vcs.bundleFile = os.path.join(
703 project.getProjectManagementDir(), "hg-bundle.hg") 707 project.getProjectManagementDir(), "hg-bundle.hg")
704 args.append('--bundle') 708 if os.path.exists(self.vcs.bundleFile):
709 os.remove(self.vcs.bundleFile)
710 preargs = args[:]
711 preargs.append("--quiet")
712 preargs.append('--bundle')
713 preargs.append(self.vcs.bundleFile)
705 args.append(self.vcs.bundleFile) 714 args.append(self.vcs.bundleFile)
706 if not self.projectMode: 715 if not self.projectMode:
707 args.append(self.filename) 716 args.append(self.filename)
708 717
709 if self.__hgClient: 718 if self.__hgClient:
710 self.inputGroup.setEnabled(False) 719 self.inputGroup.setEnabled(False)
711 self.inputGroup.hide() 720 self.inputGroup.hide()
712 721
713 out, err = self.__hgClient.runcommand(args) 722 if preargs:
714 self.buf = out.splitlines(True) 723 out, err = self.__hgClient.runcommand(preargs)
724 else:
725 err = ""
715 if err: 726 if err:
716 self.__showError(err) 727 self.__showError(err)
717 self.__processBuffer() 728 else:
729 out, err = self.__hgClient.runcommand(args)
730 self.buf = out.splitlines(True)
731 if err:
732 self.__showError(err)
733 self.__processBuffer()
718 self.__finish() 734 self.__finish()
719 else: 735 else:
720 self.process.kill() 736 self.process.kill()
721 737
722 self.process.setWorkingDirectory(self.repodir) 738 self.process.setWorkingDirectory(self.repodir)
723 739
724 self.inputGroup.setEnabled(True) 740 self.inputGroup.setEnabled(True)
725 self.inputGroup.show() 741 self.inputGroup.show()
742
743 if preargs:
744 process = QProcess()
745 process.setWorkingDirectory(self.repodir)
746 process.start('hg', args)
747 procStarted = process.waitForStarted(5000)
748 if procStarted:
749 process.waitForFinished(30000)
726 750
727 self.process.start('hg', args) 751 self.process.start('hg', args)
728 procStarted = self.process.waitForStarted(5000) 752 procStarted = self.process.waitForStarted(5000)
729 if not procStarted: 753 if not procStarted:
730 self.inputGroup.setEnabled(False) 754 self.inputGroup.setEnabled(False)

eric ide

mercurial