Plugins/VcsPlugins/vcsMercurial/hg.py

changeset 2352
21971ebfaaef
parent 2318
3a3ee7cc2ad6
child 2405
d4b5f3bd4720
equal deleted inserted replaced
2351:649e4f8c5cef 2352:21971ebfaaef
63 from .TransplantExtension.transplant import Transplant 63 from .TransplantExtension.transplant import Transplant
64 from .RebaseExtension.rebase import Rebase 64 from .RebaseExtension.rebase import Rebase
65 65
66 from .ProjectBrowserHelper import HgProjectBrowserHelper 66 from .ProjectBrowserHelper import HgProjectBrowserHelper
67 67
68 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
69
68 import Preferences 70 import Preferences
69 import Utilities 71 import Utilities
70 72
71 73
72 class Hg(VersionControl): 74 class Hg(VersionControl):
899 args.append("--no-backup") 901 args.append("--no-backup")
900 args.append("-v") 902 args.append("-v")
901 if isinstance(name, list): 903 if isinstance(name, list):
902 dname, fnames = self.splitPathList(name) 904 dname, fnames = self.splitPathList(name)
903 self.addArguments(args, name) 905 self.addArguments(args, name)
906 names = name[:]
904 else: 907 else:
905 dname, fname = self.splitPath(name) 908 dname, fname = self.splitPath(name)
906 args.append(name) 909 args.append(name)
910 names = [name]
907 911
908 # find the root of the repo 912 # find the root of the repo
909 repodir = dname 913 repodir = dname
910 while not os.path.isdir(os.path.join(repodir, self.adminDir)): 914 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
911 repodir = os.path.dirname(repodir) 915 repodir = os.path.dirname(repodir)
912 if os.path.splitdrive(repodir)[1] == os.sep: 916 if os.path.splitdrive(repodir)[1] == os.sep:
913 return False 917 return False
914 918
915 dia = HgDialog(self.trUtf8('Reverting changes'), self) 919 project = e5App().getObject("Project")
916 res = dia.startProcess(args, repodir) 920 names = [project.getRelativePath(nam) for nam in names]
917 if res: 921 if names[0]:
918 dia.exec_() 922 dlg = DeleteFilesConfirmationDialog(self.parent(),
919 res = dia.hasAddOrDelete() 923 self.trUtf8("Revert changes"),
920 self.checkVCSStatus() 924 self.trUtf8("Do you really want to revert all changes to these files"
925 " or directories?"),
926 names)
927 yes = dlg.exec_() == QDialog.Accepted
928 else:
929 yes = E5MessageBox.yesNo(None,
930 self.trUtf8("Revert changes"),
931 self.trUtf8("""Do you really want to revert all changes of"""
932 """ the project?"""))
933 if yes:
934 dia = HgDialog(self.trUtf8('Reverting changes'), self)
935 res = dia.startProcess(args, repodir)
936 if res:
937 dia.exec_()
938 res = dia.hasAddOrDelete()
939 self.checkVCSStatus()
940 else:
941 res = False
942
921 return res 943 return res
922 944
923 def vcsMerge(self, name): 945 def vcsMerge(self, name):
924 """ 946 """
925 Public method used to merge a URL/revision into the local project. 947 Public method used to merge a URL/revision into the local project.

eric ide

mercurial