forked from qt-creator/qt-creator
Git: Allow removing stale remote branches
... from the Branch View context menu on a specific remote. Change-Id: Ic7772abe32795a5d11bd4cae989f8d66cc4322e0 Reviewed-by: Miklós Márton <martonmiklosqdev@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
committed by
André Hartmann
parent
3dc511f1d1
commit
00e04d5022
@@ -212,6 +212,12 @@ void BranchView::slotCustomContextMenu(const QPoint &point)
|
||||
GitPlugin::client()->fetch(m_repository, *remote);
|
||||
});
|
||||
contextMenu.addSeparator();
|
||||
if (!remote->isEmpty()) {
|
||||
contextMenu.addAction(tr("Remove &Stale Branches"), this, [this, &remote]() {
|
||||
GitPlugin::client()->removeStaleRemoteBranches(m_repository, *remote);
|
||||
});
|
||||
contextMenu.addSeparator();
|
||||
}
|
||||
contextMenu.addAction(tr("Manage &Remotes..."), GitPlugin::instance(),
|
||||
&GitPlugin::manageRemotes);
|
||||
}
|
||||
|
||||
@@ -1312,6 +1312,17 @@ void GitClient::reset(const QString &workingDirectory, const QString &argument,
|
||||
vcsExec(workingDirectory, arguments, nullptr, true, flags);
|
||||
}
|
||||
|
||||
void GitClient::removeStaleRemoteBranches(const QString &workingDirectory, const QString &remote)
|
||||
{
|
||||
const QStringList arguments = {"remote", "prune", remote};
|
||||
|
||||
VcsCommand *command = vcsExec(workingDirectory, arguments, nullptr, true,
|
||||
VcsCommand::ShowSuccessMessage);
|
||||
|
||||
connect(command, &VcsCommand::success,
|
||||
this, [workingDirectory]() { GitPlugin::instance()->updateBranches(workingDirectory); });
|
||||
}
|
||||
|
||||
void GitClient::recoverDeletedFiles(const QString &workingDirectory)
|
||||
{
|
||||
const SynchronousProcessResponse response =
|
||||
|
||||
@@ -155,6 +155,7 @@ public:
|
||||
const QString &workingDir, const QString &file, const QString &revision = QString(),
|
||||
int lineNumber = -1, const QStringList &extraOptions = QStringList()) override;
|
||||
void reset(const QString &workingDirectory, const QString &argument, const QString &commit = QString());
|
||||
void removeStaleRemoteBranches(const QString &workingDirectory, const QString &remote);
|
||||
void recoverDeletedFiles(const QString &workingDirectory);
|
||||
void addFile(const QString &workingDirectory, const QString &fileName);
|
||||
bool synchronousLog(const QString &workingDirectory, const QStringList &arguments,
|
||||
|
||||
Reference in New Issue
Block a user