diff -r 610b676336be -r b11c36cba2a1 Plugins/VcsPlugins/vcsGit/ProjectHelper.py --- a/Plugins/VcsPlugins/vcsGit/ProjectHelper.py Sun Jun 03 11:30:57 2018 +0200 +++ b/Plugins/VcsPlugins/vcsGit/ProjectHelper.py Sun Jun 03 14:03:19 2018 +0200 @@ -601,6 +601,36 @@ self.gitRemoteRenameAct.triggered.connect(self.__gitRenameRemote) self.actions.append(self.gitRemoteRenameAct) + self.gitRemoteChangeUrlAct = E5Action( + self.tr('Change URL'), + self.tr('Change URL...'), + 0, 0, self, 'git_change_remote_url') + self.gitRemoteChangeUrlAct.setStatusTip(self.tr( + 'Change the URL of a remote repository' + )) + self.gitRemoteChangeUrlAct.setWhatsThis(self.tr( + """<b>Change URL</b>""" + """<p>This changes the URL of a remote repository.</p>""" + )) + self.gitRemoteChangeUrlAct.triggered.connect(self.__gitChangeRemoteUrl) + self.actions.append(self.gitRemoteChangeUrlAct) + + self.gitRemoteCredentialsAct = E5Action( + self.tr('Credentials'), + self.tr('Credentials...'), + 0, 0, self, 'git_remote_credentials') + self.gitRemoteCredentialsAct.setStatusTip(self.tr( + 'Change or set the user credentials of a remote repository' + )) + self.gitRemoteCredentialsAct.setWhatsThis(self.tr( + """<b>Credentials</b>""" + """<p>This changes or sets the user credentials of a""" + """ remote repository.</p>""" + )) + self.gitRemoteCredentialsAct.triggered.connect( + self.__gitRemoteCredentials) + self.actions.append(self.gitRemoteCredentialsAct) + self.gitCherryPickAct = E5Action( self.tr('Copy Commits'), UI.PixmapCache.getIcon("vcsGraft.png"), @@ -1430,6 +1460,8 @@ remotesMenu.addSeparator() remotesMenu.addAction(self.gitRemoteAddAct) remotesMenu.addAction(self.gitRemoteRenameAct) + remotesMenu.addAction(self.gitRemoteChangeUrlAct) + remotesMenu.addAction(self.gitRemoteCredentialsAct) remotesMenu.addAction(self.gitRemoteRemoveAct) remotesMenu.addAction(self.gitRemotePruneAct) @@ -1819,6 +1851,36 @@ if ok: self.vcs.gitRenameRemote(self.project.getProjectPath(), remote) + def __gitChangeRemoteUrl(self): + """ + Private slot to change the URL of a remote repository. + """ + remotes = self.vcs.gitGetRemotesList(self.project.getProjectPath()) + remote, ok = QInputDialog.getItem( + None, + self.tr("Rename"), + self.tr("Select a remote repository:"), + remotes, + 0, False) + if ok: + self.vcs.gitChangeRemoteUrl(self.project.getProjectPath(), remote) + + def __gitRemoteCredentials(self): + """ + Private slot to change or set the user credentials for a remote + repository. + """ + remotes = self.vcs.gitGetRemotesList(self.project.getProjectPath()) + remote, ok = QInputDialog.getItem( + None, + self.tr("Rename"), + self.tr("Select a remote repository:"), + remotes, + 0, False) + if ok: + self.vcs.gitChangeRemoteCredentials(self.project.getProjectPath(), + remote) + def __gitCherryPick(self): """ Private slot used to copy commits into the current branch.