Git: Archive support

This allows users to create archive files from local repository.

Tools > Git > Local Repository > Archive will create <reponame>-
HEAD.tar.gz

Tools > Git > Actions on Commits... you can choose a commit to archive

Change-Id: I09bbbdefe532237e9065d1ca3c21910a036ea149
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@qbc.io>
This commit is contained in:
Tasuku Suzuki
2019-05-28 15:06:35 +09:00
committed by Orgad Shaneh
parent c5d63c8f14
commit 578cdf7c5a
6 changed files with 68 additions and 0 deletions

View File

@@ -588,6 +588,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
createChangeRelatedRepositoryAction(tr("Revert..."), "Git.Revert", context);
createChangeRelatedRepositoryAction(tr("Cherry Pick..."), "Git.CherryPick", context);
createChangeRelatedRepositoryAction(tr("Checkout..."), "Git.Checkout", context);
createChangeRelatedRepositoryAction(tr("Archive..."), "Git.Archive", context);
createRepositoryAction(nullptr, tr("Rebase..."), "Git.Rebase", context, true,
std::bind(&GitPlugin::branchList, this));
@@ -852,6 +853,9 @@ void GitPlugin::startChangeRelatedAction(const Id &id)
if (dialog.command() == Show) {
m_gitClient->show(workingDirectory, change);
return;
} else if (dialog.command() == Archive) {
m_gitClient->archive(workingDirectory, change);
return;
}
if (!DocumentManager::saveAllModifiedDocuments())