VCS[git]: Add support for stashes.

Add non-modal stash management dialog and additional menu option
"Stash snapshot..." to stash away changes prompting for a description,
which will immediately replay the stash (take snapshot and continue
working).
Add interface to IVersionControl for creating/restoring/deleting
snapshots for backup/complex undo operations (currently supported
by git only). Add test options to VCSBasePlugin.
Clean up and extend git client accordingly.
This commit is contained in:
Friedemann Kleint
2010-01-15 12:24:06 +01:00
parent cbaa9b9fc0
commit 9ac98a402c
23 changed files with 1559 additions and 95 deletions

View File

@@ -55,6 +55,7 @@ bool CVSControl::supportsOperation(Operation operation) const
break;
case OpenOperation:
case CreateRepositoryOperation:
case SnapshotOperations:
rc = false;
break;
}
@@ -84,6 +85,26 @@ bool CVSControl::vcsCreateRepository(const QString &)
return false;
}
QString CVSControl::vcsCreateSnapshot(const QString &)
{
return QString();
}
QStringList CVSControl::vcsSnapshots(const QString &)
{
return QStringList();
}
bool CVSControl::vcsRestoreSnapshot(const QString &, const QString &)
{
return false;
}
bool CVSControl::vcsRemoveSnapshot(const QString &, const QString &)
{
return false;
}
bool CVSControl::managesDirectory(const QString &directory) const
{
return m_plugin->managesDirectory(directory);

View File

@@ -53,6 +53,10 @@ public:
virtual bool vcsAdd(const QString &fileName);
virtual bool vcsDelete(const QString &filename);
virtual bool vcsCreateRepository(const QString &directory);
virtual QString vcsCreateSnapshot(const QString &topLevel);
virtual QStringList vcsSnapshots(const QString &topLevel);
virtual bool vcsRestoreSnapshot(const QString &topLevel, const QString &name);
virtual bool vcsRemoveSnapshot(const QString &topLevel, const QString &name);
void emitRepositoryChanged(const QString &s);
void emitFilesChanged(const QStringList &l);