--- a/src/eric7/Plugins/VcsPlugins/vcsPySvn/SvnStatusMonitorThread.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/Plugins/VcsPlugins/vcsPySvn/SvnStatusMonitorThread.py Wed Jul 13 14:55:47 2022 +0200 @@ -20,21 +20,22 @@ """ Class implementing the VCS status monitor thread class for Subversion. """ + def __init__(self, interval, project, vcs, parent=None): """ Constructor - + @param interval new interval in seconds (integer) @param project reference to the project object (Project) @param vcs reference to the version control object @param parent reference to the parent object (QObject) """ VcsStatusMonitorThread.__init__(self, interval, project, vcs, parent) - + def _performMonitor(self): """ Protected method implementing the monitoring action. - + This method populates the statusList member variable with a list of strings giving the status in the first column and the path relative to the project directory starting with the third column. @@ -50,104 +51,105 @@ <li>"!" path is missing</li> <li>" " path is back at normal</li> </ul> - + @return tuple of flag indicating successful operation (boolean) and a status message in case of non successful operation (string) """ self.shouldUpdate = False - + client = pysvn.Client() client.exception_style = 1 client.callback_get_login = self.__clientLoginCallback client.callback_ssl_server_trust_prompt = ( self.__clientSslServerTrustPromptCallback ) - + cwd = os.getcwd() os.chdir(self.projectDir) try: allFiles = client.status( - '.', recurse=True, get_all=True, ignore=True, - update=not Preferences.getVCS("MonitorLocalStatus")) + ".", + recurse=True, + get_all=True, + ignore=True, + update=not Preferences.getVCS("MonitorLocalStatus"), + ) states = {} for file in allFiles: uptodate = True if file.repos_text_status != pysvn.wc_status_kind.none: uptodate = ( - uptodate and - file.repos_text_status != pysvn.wc_status_kind.modified + uptodate + and file.repos_text_status != pysvn.wc_status_kind.modified ) if file.repos_prop_status != pysvn.wc_status_kind.none: uptodate = ( - uptodate and - file.repos_prop_status != pysvn.wc_status_kind.modified + uptodate + and file.repos_prop_status != pysvn.wc_status_kind.modified ) - + status = "" if not uptodate: status = "U" self.shouldUpdate = True elif ( - file.text_status == pysvn.wc_status_kind.conflicted or - file.prop_status == pysvn.wc_status_kind.conflicted + file.text_status == pysvn.wc_status_kind.conflicted + or file.prop_status == pysvn.wc_status_kind.conflicted ): status = "Z" elif ( - file.text_status == pysvn.wc_status_kind.deleted or - file.prop_status == pysvn.wc_status_kind.deleted + file.text_status == pysvn.wc_status_kind.deleted + or file.prop_status == pysvn.wc_status_kind.deleted ): status = "O" elif ( - file.text_status == pysvn.wc_status_kind.modified or - file.prop_status == pysvn.wc_status_kind.modified + file.text_status == pysvn.wc_status_kind.modified + or file.prop_status == pysvn.wc_status_kind.modified ): status = "M" elif ( - file.text_status == pysvn.wc_status_kind.added or - file.prop_status == pysvn.wc_status_kind.added + file.text_status == pysvn.wc_status_kind.added + or file.prop_status == pysvn.wc_status_kind.added ): status = "A" elif ( - file.text_status == pysvn.wc_status_kind.replaced or - file.prop_status == pysvn.wc_status_kind.replaced + file.text_status == pysvn.wc_status_kind.replaced + or file.prop_status == pysvn.wc_status_kind.replaced ): status = "R" elif ( - file.text_status == pysvn.wc_status_kind.unversioned or - file.prop_status == pysvn.wc_status_kind.unversioned + file.text_status == pysvn.wc_status_kind.unversioned + or file.prop_status == pysvn.wc_status_kind.unversioned ): status = "?" elif ( - file.text_status == pysvn.wc_status_kind.missing or - file.prop_status == pysvn.wc_status_kind.missing + file.text_status == pysvn.wc_status_kind.missing + or file.prop_status == pysvn.wc_status_kind.missing ): status = "!" if status: states[file.path] = status try: if self.reportedStates[file.path] != status: - self.statusList.append( - "{0} {1}".format(status, file.path)) + self.statusList.append("{0} {1}".format(status, file.path)) except KeyError: - self.statusList.append( - "{0} {1}".format(status, file.path)) + self.statusList.append("{0} {1}".format(status, file.path)) for name in list(self.reportedStates.keys()): if name not in states: self.statusList.append(" {0}".format(name)) self.reportedStates = states res = True - statusStr = self.tr( - "Subversion status checked successfully (using pysvn)") + statusStr = self.tr("Subversion status checked successfully (using pysvn)") except pysvn.ClientError as e: res = False statusStr = e.args[0] os.chdir(cwd) return res, statusStr - + def __clientLoginCallback(self, realm, username, may_save): """ Private method called by the client to get login information. - + @param realm name of the realm of the requested credentials (string) @param username username as supplied by subversion (string) @param may_save flag indicating, that subversion is willing to save @@ -159,12 +161,12 @@ password should be saved. Always returns (False, "", "", False). """ return (False, "", "", False) - + def __clientSslServerTrustPromptCallback(self, trust_dict): """ Private method called by the client to request acceptance for a ssl server certificate. - + @param trust_dict dictionary containing the trust data @return tuple of three values (retcode, acceptedFailures, save). Retcode should be true, if the certificate should be accepted,