eric6/Plugins/VcsPlugins/vcsPySvn/subversion.py

changeset 7759
51aa6c6b66f7
parent 7639
422fd05e9c91
child 7774
9eed155411f0
equal deleted inserted replaced
7758:dd54d33d21d2 7759:51aa6c6b66f7
326 locker.unlock() 326 locker.unlock()
327 if not noDialog: 327 if not noDialog:
328 rev and dlg.showMessage(self.tr("Imported revision {0}.\n") 328 rev and dlg.showMessage(self.tr("Imported revision {0}.\n")
329 .format(rev.number)) 329 .format(rev.number))
330 dlg.finish() 330 dlg.finish()
331 dlg.exec_() 331 dlg.exec()
332 os.chdir(cwd) 332 os.chdir(cwd)
333 333
334 shutil.rmtree(tmpDir, True) 334 shutil.rmtree(tmpDir, True)
335 return status, False 335 return status, False
336 336
400 if not noDialog: 400 if not noDialog:
401 dlg.showError(e.args[0]) 401 dlg.showError(e.args[0])
402 locker.unlock() 402 locker.unlock()
403 if not noDialog: 403 if not noDialog:
404 dlg.finish() 404 dlg.finish()
405 dlg.exec_() 405 dlg.exec()
406 return status 406 return status
407 407
408 def vcsExport(self, vcsDataDict, projectDir): 408 def vcsExport(self, vcsDataDict, projectDir):
409 """ 409 """
410 Public method used to export a directory from the Subversion 410 Public method used to export a directory from the Subversion
464 except pysvn.ClientError as e: 464 except pysvn.ClientError as e:
465 status = False 465 status = False
466 dlg.showError(e.args[0]) 466 dlg.showError(e.args[0])
467 locker.unlock() 467 locker.unlock()
468 dlg.finish() 468 dlg.finish()
469 dlg.exec_() 469 dlg.exec()
470 return status 470 return status
471 471
472 def vcsCommit(self, name, message, noDialog=False): 472 def vcsCommit(self, name, message, noDialog=False):
473 """ 473 """
474 Public method used to make the change of a file/directory permanent 474 Public method used to make the change of a file/directory permanent
602 locker.unlock() 602 locker.unlock()
603 if not noDialog: 603 if not noDialog:
604 rev and dlg.showMessage(self.tr("Committed revision {0}.") 604 rev and dlg.showMessage(self.tr("Committed revision {0}.")
605 .format(rev.number)) 605 .format(rev.number))
606 dlg.finish() 606 dlg.finish()
607 dlg.exec_() 607 dlg.exec()
608 os.chdir(cwd) 608 os.chdir(cwd)
609 self.committed.emit() 609 self.committed.emit()
610 self.checkVCSStatus() 610 self.checkVCSStatus()
611 611
612 def vcsUpdate(self, name, noDialog=False): 612 def vcsUpdate(self, name, noDialog=False):
645 except pysvn.ClientError as e: 645 except pysvn.ClientError as e:
646 dlg.showError(e.args[0]) 646 dlg.showError(e.args[0])
647 locker.unlock() 647 locker.unlock()
648 if not noDialog: 648 if not noDialog:
649 dlg.finish() 649 dlg.finish()
650 dlg.exec_() 650 dlg.exec()
651 res = dlg.hasAddOrDelete() 651 res = dlg.hasAddOrDelete()
652 else: 652 else:
653 res = False 653 res = False
654 os.chdir(cwd) 654 os.chdir(cwd)
655 self.checkVCSStatus() 655 self.checkVCSStatus()
760 if not noDialog: 760 if not noDialog:
761 dlg.showError(e.args[0]) 761 dlg.showError(e.args[0])
762 locker.unlock() 762 locker.unlock()
763 if not noDialog: 763 if not noDialog:
764 dlg.finish() 764 dlg.finish()
765 dlg.exec_() 765 dlg.exec()
766 os.chdir(cwd) 766 os.chdir(cwd)
767 767
768 def vcsAddBinary(self, name, isDir=False): 768 def vcsAddBinary(self, name, isDir=False):
769 """ 769 """
770 Public method used to add a file/directory in binary mode to the 770 Public method used to add a file/directory in binary mode to the
866 client.add(names, recurse=recurse, force=force, ignore=ignore) 866 client.add(names, recurse=recurse, force=force, ignore=ignore)
867 except pysvn.ClientError as e: 867 except pysvn.ClientError as e:
868 dlg.showError(e.args[0]) 868 dlg.showError(e.args[0])
869 locker.unlock() 869 locker.unlock()
870 dlg.finish() 870 dlg.finish()
871 dlg.exec_() 871 dlg.exec()
872 os.chdir(cwd) 872 os.chdir(cwd)
873 873
874 def vcsRemove(self, name, project=False, noDialog=False): 874 def vcsRemove(self, name, project=False, noDialog=False):
875 """ 875 """
876 Public method used to remove a file/directory from the Subversion 876 Public method used to remove a file/directory from the Subversion
908 if not noDialog: 908 if not noDialog:
909 dlg.showError(e.args[0]) 909 dlg.showError(e.args[0])
910 locker.unlock() 910 locker.unlock()
911 if not noDialog: 911 if not noDialog:
912 dlg.finish() 912 dlg.finish()
913 dlg.exec_() 913 dlg.exec()
914 914
915 return res 915 return res
916 916
917 def vcsMove(self, name, project, target=None, noDialog=False): 917 def vcsMove(self, name, project, target=None, noDialog=False):
918 """ 918 """
934 force = True 934 force = True
935 accepted = True 935 accepted = True
936 else: 936 else:
937 from .SvnCopyDialog import SvnCopyDialog 937 from .SvnCopyDialog import SvnCopyDialog
938 dlg = SvnCopyDialog(name, None, True, "--force" in opts) 938 dlg = SvnCopyDialog(name, None, True, "--force" in opts)
939 accepted = (dlg.exec_() == QDialog.Accepted) 939 accepted = (dlg.exec() == QDialog.Accepted)
940 if accepted: 940 if accepted:
941 target, force = dlg.getData() 941 target, force = dlg.getData()
942 if not target: 942 if not target:
943 return False 943 return False
944 944
973 if not noDialog: 973 if not noDialog:
974 dlg.showError(e.args[0]) 974 dlg.showError(e.args[0])
975 locker.unlock() 975 locker.unlock()
976 if not noDialog: 976 if not noDialog:
977 dlg.finish() 977 dlg.finish()
978 dlg.exec_() 978 dlg.exec()
979 if res and not rx_prot.exactMatch(target): 979 if res and not rx_prot.exactMatch(target):
980 if target.startswith(project.getProjectPath()): 980 if target.startswith(project.getProjectPath()):
981 if isDir: 981 if isDir:
982 project.moveDirectory(name, target) 982 project.moveDirectory(name, target)
983 else: 983 else:
1063 else: 1063 else:
1064 url = self.svnNormalizeURL(reposURL) 1064 url = self.svnNormalizeURL(reposURL)
1065 from .SvnTagDialog import SvnTagDialog 1065 from .SvnTagDialog import SvnTagDialog
1066 dlg = SvnTagDialog(self.allTagsBranchesList, url, 1066 dlg = SvnTagDialog(self.allTagsBranchesList, url,
1067 self.otherData["standardLayout"]) 1067 self.otherData["standardLayout"])
1068 if dlg.exec_() == QDialog.Accepted: 1068 if dlg.exec() == QDialog.Accepted:
1069 tag, tagOp = dlg.getParameters() 1069 tag, tagOp = dlg.getParameters()
1070 if tag in self.allTagsBranchesList: 1070 if tag in self.allTagsBranchesList:
1071 self.allTagsBranchesList.remove(tag) 1071 self.allTagsBranchesList.remove(tag)
1072 self.allTagsBranchesList.insert(0, tag) 1072 self.allTagsBranchesList.insert(0, tag)
1073 else: 1073 else:
1125 dlg.showError(e.args[0]) 1125 dlg.showError(e.args[0])
1126 locker.unlock() 1126 locker.unlock()
1127 rev and dlg.showMessage( 1127 rev and dlg.showMessage(
1128 self.tr("Revision {0}.\n").format(rev.number)) 1128 self.tr("Revision {0}.\n").format(rev.number))
1129 dlg.finish() 1129 dlg.finish()
1130 dlg.exec_() 1130 dlg.exec()
1131 1131
1132 def vcsRevert(self, name): 1132 def vcsRevert(self, name):
1133 """ 1133 """
1134 Public method used to revert changes made to a file/directory. 1134 Public method used to revert changes made to a file/directory.
1135 1135
1152 self.tr("Revert changes"), 1152 self.tr("Revert changes"),
1153 self.tr( 1153 self.tr(
1154 "Do you really want to revert all changes to these files" 1154 "Do you really want to revert all changes to these files"
1155 " or directories?"), 1155 " or directories?"),
1156 name) 1156 name)
1157 yes = dia.exec_() == QDialog.Accepted 1157 yes = dia.exec() == QDialog.Accepted
1158 else: 1158 else:
1159 yes = E5MessageBox.yesNo( 1159 yes = E5MessageBox.yesNo(
1160 None, 1160 None,
1161 self.tr("Revert changes"), 1161 self.tr("Revert changes"),
1162 self.tr("""Do you really want to revert all changes of""" 1162 self.tr("""Do you really want to revert all changes of"""
1175 client.revert(name, recurse) 1175 client.revert(name, recurse)
1176 except pysvn.ClientError as e: 1176 except pysvn.ClientError as e:
1177 dlg.showError(e.args[0]) 1177 dlg.showError(e.args[0])
1178 locker.unlock() 1178 locker.unlock()
1179 dlg.finish() 1179 dlg.finish()
1180 dlg.exec_() 1180 dlg.exec()
1181 self.checkVCSStatus() 1181 self.checkVCSStatus()
1182 1182
1183 def vcsSwitch(self, name): 1183 def vcsSwitch(self, name):
1184 """ 1184 """
1185 Public method used to switch a directory to a different tag/branch. 1185 Public method used to switch a directory to a different tag/branch.
1206 else: 1206 else:
1207 url = self.svnNormalizeURL(reposURL) 1207 url = self.svnNormalizeURL(reposURL)
1208 from .SvnSwitchDialog import SvnSwitchDialog 1208 from .SvnSwitchDialog import SvnSwitchDialog
1209 dlg = SvnSwitchDialog(self.allTagsBranchesList, url, 1209 dlg = SvnSwitchDialog(self.allTagsBranchesList, url,
1210 self.otherData["standardLayout"]) 1210 self.otherData["standardLayout"])
1211 if dlg.exec_() == QDialog.Accepted: 1211 if dlg.exec() == QDialog.Accepted:
1212 tag, tagType = dlg.getParameters() 1212 tag, tagType = dlg.getParameters()
1213 if tag in self.allTagsBranchesList: 1213 if tag in self.allTagsBranchesList:
1214 self.allTagsBranchesList.remove(tag) 1214 self.allTagsBranchesList.remove(tag)
1215 self.allTagsBranchesList.insert(0, tag) 1215 self.allTagsBranchesList.insert(0, tag)
1216 else: 1216 else:
1252 dlg.showMessage(self.tr("Revision {0}.\n").format(rev.number)) 1252 dlg.showMessage(self.tr("Revision {0}.\n").format(rev.number))
1253 except pysvn.ClientError as e: 1253 except pysvn.ClientError as e:
1254 dlg.showError(e.args[0]) 1254 dlg.showError(e.args[0])
1255 locker.unlock() 1255 locker.unlock()
1256 dlg.finish() 1256 dlg.finish()
1257 dlg.exec_() 1257 dlg.exec()
1258 res = dlg.hasAddOrDelete() 1258 res = dlg.hasAddOrDelete()
1259 self.checkVCSStatus() 1259 self.checkVCSStatus()
1260 return res 1260 return res
1261 1261
1262 def vcsMerge(self, name): 1262 def vcsMerge(self, name):
1269 1269
1270 opts = self.options['global'] 1270 opts = self.options['global']
1271 from .SvnMergeDialog import SvnMergeDialog 1271 from .SvnMergeDialog import SvnMergeDialog
1272 dlg = SvnMergeDialog(self.mergeList[0], self.mergeList[1], 1272 dlg = SvnMergeDialog(self.mergeList[0], self.mergeList[1],
1273 self.mergeList[2], "--force" in opts) 1273 self.mergeList[2], "--force" in opts)
1274 if dlg.exec_() == QDialog.Accepted: 1274 if dlg.exec() == QDialog.Accepted:
1275 urlrev1, urlrev2, target, force = dlg.getParameters() 1275 urlrev1, urlrev2, target, force = dlg.getParameters()
1276 else: 1276 else:
1277 return 1277 return
1278 1278
1279 # remember URL or revision 1279 # remember URL or revision
1359 recurse=recurse, force=force) 1359 recurse=recurse, force=force)
1360 except pysvn.ClientError as e: 1360 except pysvn.ClientError as e:
1361 dlg.showError(e.args[0]) 1361 dlg.showError(e.args[0])
1362 locker.unlock() 1362 locker.unlock()
1363 dlg.finish() 1363 dlg.finish()
1364 dlg.exec_() 1364 dlg.exec()
1365 os.chdir(cwd) 1365 os.chdir(cwd)
1366 1366
1367 def vcsRegisteredState(self, name): 1367 def vcsRegisteredState(self, name):
1368 """ 1368 """
1369 Public method used to get the registered state of a file in the vcs. 1369 Public method used to get the registered state of a file in the vcs.
1657 client.cleanup(name) 1657 client.cleanup(name)
1658 except pysvn.ClientError as e: 1658 except pysvn.ClientError as e:
1659 dlg.showError(e.args[0]) 1659 dlg.showError(e.args[0])
1660 locker.unlock() 1660 locker.unlock()
1661 dlg.finish() 1661 dlg.finish()
1662 dlg.exec_() 1662 dlg.exec()
1663 1663
1664 def vcsCommandLine(self, name): 1664 def vcsCommandLine(self, name):
1665 """ 1665 """
1666 Public method used to execute arbitrary subversion commands. 1666 Public method used to execute arbitrary subversion commands.
1667 1667
1668 @param name directory name of the working directory (string) 1668 @param name directory name of the working directory (string)
1669 """ 1669 """
1670 from .SvnCommandDialog import SvnCommandDialog 1670 from .SvnCommandDialog import SvnCommandDialog
1671 dlg = SvnCommandDialog(self.commandHistory, self.wdHistory, name) 1671 dlg = SvnCommandDialog(self.commandHistory, self.wdHistory, name)
1672 if dlg.exec_() == QDialog.Accepted: 1672 if dlg.exec() == QDialog.Accepted:
1673 command, wd = dlg.getData() 1673 command, wd = dlg.getData()
1674 commandList = Utilities.parseOptionString(command) 1674 commandList = Utilities.parseOptionString(command)
1675 1675
1676 # This moves any previous occurrence of these arguments to the head 1676 # This moves any previous occurrence of these arguments to the head
1677 # of the list. 1677 # of the list.
1689 SvnDialog as SvnProcessDialog 1689 SvnDialog as SvnProcessDialog
1690 ) 1690 )
1691 dia = SvnProcessDialog(self.tr('Subversion command')) 1691 dia = SvnProcessDialog(self.tr('Subversion command'))
1692 res = dia.startProcess(args, wd) 1692 res = dia.startProcess(args, wd)
1693 if res: 1693 if res:
1694 dia.exec_() 1694 dia.exec()
1695 1695
1696 def vcsOptionsDialog(self, project, archive, editable=False, parent=None): 1696 def vcsOptionsDialog(self, project, archive, editable=False, parent=None):
1697 """ 1697 """
1698 Public method to get a dialog to enter repository info. 1698 Public method to get a dialog to enter repository info.
1699 1699
1817 client.resolved(name, recurse=recurse) 1817 client.resolved(name, recurse=recurse)
1818 except pysvn.ClientError as e: 1818 except pysvn.ClientError as e:
1819 dlg.showError(e.args[0]) 1819 dlg.showError(e.args[0])
1820 locker.unlock() 1820 locker.unlock()
1821 dlg.finish() 1821 dlg.finish()
1822 dlg.exec_() 1822 dlg.exec()
1823 os.chdir(cwd) 1823 os.chdir(cwd)
1824 self.checkVCSStatus() 1824 self.checkVCSStatus()
1825 1825
1826 def svnCopy(self, name, project): 1826 def svnCopy(self, name, project):
1827 """ 1827 """
1833 """ 1833 """
1834 from .SvnCopyDialog import SvnCopyDialog 1834 from .SvnCopyDialog import SvnCopyDialog
1835 rx_prot = QRegExp('(file:|svn:|svn+ssh:|http:|https:).+') 1835 rx_prot = QRegExp('(file:|svn:|svn+ssh:|http:|https:).+')
1836 dlg = SvnCopyDialog(name) 1836 dlg = SvnCopyDialog(name)
1837 res = False 1837 res = False
1838 if dlg.exec_() == QDialog.Accepted: 1838 if dlg.exec() == QDialog.Accepted:
1839 target, force = dlg.getData() 1839 target, force = dlg.getData()
1840 1840
1841 client = self.getClient() 1841 client = self.getClient()
1842 if rx_prot.exactMatch(target): 1842 if rx_prot.exactMatch(target):
1843 target = self.__svnURL(target) 1843 target = self.__svnURL(target)
1859 except pysvn.ClientError as e: 1859 except pysvn.ClientError as e:
1860 res = False 1860 res = False
1861 dlg.showError(e.args[0]) 1861 dlg.showError(e.args[0])
1862 locker.unlock() 1862 locker.unlock()
1863 dlg.finish() 1863 dlg.finish()
1864 dlg.exec_() 1864 dlg.exec()
1865 if ( 1865 if (
1866 res and 1866 res and
1867 not rx_prot.exactMatch(target) and 1867 not rx_prot.exactMatch(target) and
1868 target.startswith(project.getProjectPath()) 1868 target.startswith(project.getProjectPath())
1869 ): 1869 ):
1895 @param name file/directory name (string or list of strings) 1895 @param name file/directory name (string or list of strings)
1896 @param recursive flag indicating a recursive set is requested 1896 @param recursive flag indicating a recursive set is requested
1897 """ 1897 """
1898 from .SvnPropSetDialog import SvnPropSetDialog 1898 from .SvnPropSetDialog import SvnPropSetDialog
1899 dlg = SvnPropSetDialog(recursive) 1899 dlg = SvnPropSetDialog(recursive)
1900 if dlg.exec_() == QDialog.Accepted: 1900 if dlg.exec() == QDialog.Accepted:
1901 propName, propValue, recurse = dlg.getData() 1901 propName, propValue, recurse = dlg.getData()
1902 if not propName: 1902 if not propName:
1903 E5MessageBox.critical( 1903 E5MessageBox.critical(
1904 self.__ui, 1904 self.__ui,
1905 self.tr("Subversion Set Property"), 1905 self.tr("Subversion Set Property"),
1935 except pysvn.ClientError as e: 1935 except pysvn.ClientError as e:
1936 dlg.showError(e.args[0]) 1936 dlg.showError(e.args[0])
1937 locker.unlock() 1937 locker.unlock()
1938 dlg.showMessage(self.tr("Property set.")) 1938 dlg.showMessage(self.tr("Property set."))
1939 dlg.finish() 1939 dlg.finish()
1940 dlg.exec_() 1940 dlg.exec()
1941 os.chdir(cwd) 1941 os.chdir(cwd)
1942 1942
1943 def svnDelProp(self, name, recursive=False): 1943 def svnDelProp(self, name, recursive=False):
1944 """ 1944 """
1945 Public method used to delete a property of a file/directory. 1945 Public method used to delete a property of a file/directory.
1947 @param name file/directory name (string or list of strings) 1947 @param name file/directory name (string or list of strings)
1948 @param recursive flag indicating a recursive list is requested 1948 @param recursive flag indicating a recursive list is requested
1949 """ 1949 """
1950 from .SvnPropDelDialog import SvnPropDelDialog 1950 from .SvnPropDelDialog import SvnPropDelDialog
1951 dlg = SvnPropDelDialog(recursive) 1951 dlg = SvnPropDelDialog(recursive)
1952 if dlg.exec_() == QDialog.Accepted: 1952 if dlg.exec() == QDialog.Accepted:
1953 propName, recurse = dlg.getData() 1953 propName, recurse = dlg.getData()
1954 1954
1955 if not propName: 1955 if not propName:
1956 E5MessageBox.critical( 1956 E5MessageBox.critical(
1957 self.__ui, 1957 self.__ui,
1987 except pysvn.ClientError as e: 1987 except pysvn.ClientError as e:
1988 dlg.showError(e.args[0]) 1988 dlg.showError(e.args[0])
1989 locker.unlock() 1989 locker.unlock()
1990 dlg.showMessage(self.tr("Property deleted.")) 1990 dlg.showMessage(self.tr("Property deleted."))
1991 dlg.finish() 1991 dlg.finish()
1992 dlg.exec_() 1992 dlg.exec()
1993 os.chdir(cwd) 1993 os.chdir(cwd)
1994 1994
1995 def svnListTagBranch(self, path, tags=True): 1995 def svnListTagBranch(self, path, tags=True):
1996 """ 1996 """
1997 Public method used to list the available tags or branches. 1997 Public method used to list the available tags or branches.
2066 project = e5App().getObject("Project") 2066 project = e5App().getObject("Project")
2067 if nam == project.ppath and not project.saveAllScripts(): 2067 if nam == project.ppath and not project.saveAllScripts():
2068 return 2068 return
2069 from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog 2069 from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog
2070 dlg = SvnRevisionSelectionDialog() 2070 dlg = SvnRevisionSelectionDialog()
2071 if dlg.exec_() == QDialog.Accepted: 2071 if dlg.exec() == QDialog.Accepted:
2072 revisions = dlg.getRevisions() 2072 revisions = dlg.getRevisions()
2073 if self.diff is None: 2073 if self.diff is None:
2074 from .SvnDiffDialog import SvnDiffDialog 2074 from .SvnDiffDialog import SvnDiffDialog
2075 self.diff = SvnDiffDialog(self) 2075 self.diff = SvnDiffDialog(self)
2076 self.diff.show() 2076 self.diff.show()
2109 dname = self.splitPath(names[0])[0] 2109 dname = self.splitPath(names[0])[0]
2110 2110
2111 from .SvnUrlSelectionDialog import SvnUrlSelectionDialog 2111 from .SvnUrlSelectionDialog import SvnUrlSelectionDialog
2112 dlg = SvnUrlSelectionDialog(self, self.tagsList, self.branchesList, 2112 dlg = SvnUrlSelectionDialog(self, self.tagsList, self.branchesList,
2113 dname) 2113 dname)
2114 if dlg.exec_() == QDialog.Accepted: 2114 if dlg.exec() == QDialog.Accepted:
2115 urls, summary = dlg.getURLs() 2115 urls, summary = dlg.getURLs()
2116 if self.diff is None: 2116 if self.diff is None:
2117 from .SvnDiffDialog import SvnDiffDialog 2117 from .SvnDiffDialog import SvnDiffDialog
2118 self.diff = SvnDiffDialog(self) 2118 self.diff = SvnDiffDialog(self)
2119 self.diff.show() 2119 self.diff.show()
2178 raise ValueError("Wrong parameter type") 2178 raise ValueError("Wrong parameter type")
2179 2179
2180 if extended: 2180 if extended:
2181 from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog 2181 from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog
2182 dlg = SvnRevisionSelectionDialog() 2182 dlg = SvnRevisionSelectionDialog()
2183 if dlg.exec_() == QDialog.Accepted: 2183 if dlg.exec() == QDialog.Accepted:
2184 rev1, rev2 = dlg.getRevisions() 2184 rev1, rev2 = dlg.getRevisions()
2185 if rev1 == "WORKING": 2185 if rev1 == "WORKING":
2186 rev1 = "" 2186 rev1 = ""
2187 if rev2 == "WORKING": 2187 if rev2 == "WORKING":
2188 rev2 = "" 2188 rev2 = ""
2292 dlg.showError(e.args[0]) 2292 dlg.showError(e.args[0])
2293 except AttributeError as e: 2293 except AttributeError as e:
2294 dlg.showError(str(e)) 2294 dlg.showError(str(e))
2295 locker.unlock() 2295 locker.unlock()
2296 dlg.finish() 2296 dlg.finish()
2297 dlg.exec_() 2297 dlg.exec()
2298 os.chdir(cwd) 2298 os.chdir(cwd)
2299 2299
2300 def svnUnlock(self, name, breakIt=False, parent=None): 2300 def svnUnlock(self, name, breakIt=False, parent=None):
2301 """ 2301 """
2302 Public method used to unlock a file in the Subversion repository. 2302 Public method used to unlock a file in the Subversion repository.
2329 dlg.showError(e.args[0]) 2329 dlg.showError(e.args[0])
2330 except AttributeError as e: 2330 except AttributeError as e:
2331 dlg.showError(str(e)) 2331 dlg.showError(str(e))
2332 locker.unlock() 2332 locker.unlock()
2333 dlg.finish() 2333 dlg.finish()
2334 dlg.exec_() 2334 dlg.exec()
2335 os.chdir(cwd) 2335 os.chdir(cwd)
2336 2336
2337 def svnInfo(self, projectPath, name): 2337 def svnInfo(self, projectPath, name):
2338 """ 2338 """
2339 Public method to show repository information about a file or directory. 2339 Public method to show repository information about a file or directory.
2342 @param name file/directory name relative to the project (string) 2342 @param name file/directory name relative to the project (string)
2343 """ 2343 """
2344 from .SvnInfoDialog import SvnInfoDialog 2344 from .SvnInfoDialog import SvnInfoDialog
2345 dlg = SvnInfoDialog(self) 2345 dlg = SvnInfoDialog(self)
2346 dlg.start(projectPath, name) 2346 dlg.start(projectPath, name)
2347 dlg.exec_() 2347 dlg.exec()
2348 2348
2349 def svnRelocate(self, projectPath): 2349 def svnRelocate(self, projectPath):
2350 """ 2350 """
2351 Public method to relocate the working copy to a new repository URL. 2351 Public method to relocate the working copy to a new repository URL.
2352 2352
2353 @param projectPath path name of the project (string) 2353 @param projectPath path name of the project (string)
2354 """ 2354 """
2355 from .SvnRelocateDialog import SvnRelocateDialog 2355 from .SvnRelocateDialog import SvnRelocateDialog
2356 currUrl = self.svnGetReposName(projectPath) 2356 currUrl = self.svnGetReposName(projectPath)
2357 dlg = SvnRelocateDialog(currUrl) 2357 dlg = SvnRelocateDialog(currUrl)
2358 if dlg.exec_() == QDialog.Accepted: 2358 if dlg.exec() == QDialog.Accepted:
2359 newUrl, inside = dlg.getData() 2359 newUrl, inside = dlg.getData()
2360 if inside: 2360 if inside:
2361 msg = "switch {0} {1}".format(newUrl, projectPath) 2361 msg = "switch {0} {1}".format(newUrl, projectPath)
2362 else: 2362 else:
2363 msg = "relocate {0} {1} {2}".format(currUrl, newUrl, 2363 msg = "relocate {0} {1} {2}".format(currUrl, newUrl,
2373 client.relocate(currUrl, newUrl, projectPath, recurse=True) 2373 client.relocate(currUrl, newUrl, projectPath, recurse=True)
2374 except pysvn.ClientError as e: 2374 except pysvn.ClientError as e:
2375 dlg.showError(e.args[0]) 2375 dlg.showError(e.args[0])
2376 locker.unlock() 2376 locker.unlock()
2377 dlg.finish() 2377 dlg.finish()
2378 dlg.exec_() 2378 dlg.exec()
2379 2379
2380 def svnRepoBrowser(self, projectPath=None): 2380 def svnRepoBrowser(self, projectPath=None):
2381 """ 2381 """
2382 Public method to open the repository browser. 2382 Public method to open the repository browser.
2383 2383
2427 client.remove_from_changelists(name) 2427 client.remove_from_changelists(name)
2428 except pysvn.ClientError as e: 2428 except pysvn.ClientError as e:
2429 dlg.showError(e.args[0]) 2429 dlg.showError(e.args[0])
2430 locker.unlock() 2430 locker.unlock()
2431 dlg.finish() 2431 dlg.finish()
2432 dlg.exec_() 2432 dlg.exec()
2433 2433
2434 def svnAddToChangelist(self, names): 2434 def svnAddToChangelist(self, names):
2435 """ 2435 """
2436 Public method to add a file or directory to a changelist. 2436 Public method to add a file or directory to a changelist.
2437 2437
2465 depth=pysvn.depth.infinity) 2465 depth=pysvn.depth.infinity)
2466 except pysvn.ClientError as e: 2466 except pysvn.ClientError as e:
2467 dlg.showError(e.args[0]) 2467 dlg.showError(e.args[0])
2468 locker.unlock() 2468 locker.unlock()
2469 dlg.finish() 2469 dlg.finish()
2470 dlg.exec_() 2470 dlg.exec()
2471 2471
2472 def svnShowChangelists(self, path): 2472 def svnShowChangelists(self, path):
2473 """ 2473 """
2474 Public method used to inspect the change lists defined for the project. 2474 Public method used to inspect the change lists defined for the project.
2475 2475
2522 client.upgrade(path) 2522 client.upgrade(path)
2523 except pysvn.ClientError as e: 2523 except pysvn.ClientError as e:
2524 dlg.showError(e.args[0]) 2524 dlg.showError(e.args[0])
2525 locker.unlock() 2525 locker.unlock()
2526 dlg.finish() 2526 dlg.finish()
2527 dlg.exec_() 2527 dlg.exec()
2528 2528
2529 ########################################################################### 2529 ###########################################################################
2530 ## Private Subversion specific methods are below. 2530 ## Private Subversion specific methods are below.
2531 ########################################################################### 2531 ###########################################################################
2532 2532

eric ide

mercurial