From b719bbda42261db37d826d461ab25c2f96e194f9 Mon Sep 17 00:00:00 2001 From: Robert Loehning <robert.loehning@nokia.com> Date: Tue, 31 Aug 2010 21:27:13 +0200 Subject: [PATCH] VCS[git]: Added git fetch --- src/plugins/git/gitclient.cpp | 10 ++++++++++ src/plugins/git/gitclient.h | 1 + src/plugins/git/gitplugin.cpp | 9 +++++++++ src/plugins/git/gitplugin.h | 1 + 4 files changed, 21 insertions(+) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index f81480bd3a7..8328e79b6c1 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1679,6 +1679,16 @@ void GitClient::revert(const QStringList &files, bool revertStaging) } } +bool GitClient::synchronousFetch(const QString &workingDirectory) +{ + QStringList arguments(QLatin1String("fetch")); + // Disable UNIX terminals to suppress SSH prompting. + const unsigned flags = VCSBase::VCSBasePlugin::SshPasswordPrompt|VCSBase::VCSBasePlugin::ShowStdOutInLogWindow + |VCSBase::VCSBasePlugin::ShowSuccessMessage; + const Utils::SynchronousProcessResponse resp = synchronousGit(workingDirectory, arguments, flags); + return resp.result == Utils::SynchronousProcessResponse::Finished; +} + bool GitClient::synchronousPull(const QString &workingDirectory) { return synchronousPull(workingDirectory, m_settings.pullRebase); diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index dbf0ea58a9d..f5d1c749954 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -158,6 +158,7 @@ public: unsigned gitVersion(bool silent, QString *errorMessage = 0); QString gitVersionString(bool silent, QString *errorMessage = 0); + bool synchronousFetch(const QString &workingDirectory); bool synchronousPull(const QString &workingDirectory); bool synchronousPush(const QString &workingDirectory); diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 404869ce6dd..e549e6d4832 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -437,6 +437,10 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage) globalcontext, true, SLOT(stash())); actionCommand.first->setToolTip(tr("Saves the current state of your work and resets the repository.")); + createRepositoryAction(actionManager, gitContainer, + tr("Fetch"), QLatin1String("Git.Fetch"), + globalcontext, true, SLOT(fetch())); + createRepositoryAction(actionManager, gitContainer, tr("Pull"), QLatin1String("Git.Pull"), globalcontext, true, SLOT(pull())); @@ -760,6 +764,11 @@ bool GitPlugin::submitEditorAboutToClose(VCSBase::VCSBaseSubmitEditor *submitEdi return closeEditor; } +void GitPlugin::fetch() +{ + m_gitClient->synchronousFetch(currentState().topLevel()); +} + void GitPlugin::pull() { const VCSBase::VCSBasePluginState state = currentState(); diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h index cec2821bd72..c3548836126 100644 --- a/src/plugins/git/gitplugin.h +++ b/src/plugins/git/gitplugin.h @@ -127,6 +127,7 @@ private slots: void stashSnapshot(); void branchList(); void stashList(); + void fetch(); void pull(); void push(); -- GitLab