Mercurial: Fixed committing untracked files.

by passing -A (plus security check).
This commit is contained in:
Friedemann Kleint
2010-01-11 15:43:08 +01:00
parent 95da419067
commit c07e1f7fc1
3 changed files with 15 additions and 5 deletions

View File

@@ -515,12 +515,19 @@ void MercurialClient::update(const QString &repositoryRoot, const QString &revis
} }
void MercurialClient::commit(const QString &repositoryRoot, const QStringList &files, void MercurialClient::commit(const QString &repositoryRoot, const QStringList &files,
const QString &committerInfo, const QString &commitMessageFile) const QString &committerInfo, const QString &commitMessageFile,
bool autoAddRemove)
{ {
// refuse to do "autoadd" on a commit with working directory only, as this will
// add all the untracked stuff.
QTC_ASSERT(!(autoAddRemove && files.isEmpty()), return)
QStringList args(QLatin1String("commit")); QStringList args(QLatin1String("commit"));
if (!committerInfo.isEmpty()) if (!committerInfo.isEmpty())
args << QLatin1String("-u") << committerInfo; args << QLatin1String("-u") << committerInfo;
args << QLatin1String("-l") << commitMessageFile << files; args << QLatin1String("-l") << commitMessageFile;
if (autoAddRemove)
args << QLatin1String("-A");
args << files;
QSharedPointer<HgTask> job(new HgTask(repositoryRoot, args, false)); QSharedPointer<HgTask> job(new HgTask(repositoryRoot, args, false));
enqueueJob(job); enqueueJob(job);
} }

View File

@@ -89,8 +89,11 @@ public:
void revertFile(const QString &workingDir, const QString &file, const QString &revision = QString()); void revertFile(const QString &workingDir, const QString &file, const QString &revision = QString());
void revertRepository(const QString &workingDir, const QString &revision = QString()); void revertRepository(const QString &workingDir, const QString &revision = QString());
void update(const QString &repositoryRoot, const QString &revision = QString()); void update(const QString &repositoryRoot, const QString &revision = QString());
void commit(const QString &repositoryRoot, const QStringList &files, void commit(const QString &repositoryRoot,
const QString &commiterInfo, const QString &commitMessageFile); const QStringList &files,
const QString &commiterInfo,
const QString &commitMessageFile,
bool autoAddRemove = false);
static QString findTopLevelForFile(const QFileInfo &file); static QString findTopLevelForFile(const QFileInfo &file);

View File

@@ -634,7 +634,7 @@ bool MercurialPlugin::submitEditorAboutToClose(VCSBase::VCSBaseSubmitEditor *sub
core->fileManager()->unblockFileChange(editorFile); core->fileManager()->unblockFileChange(editorFile);
m_client->commit(commitEditor->repoRoot(), files, commitEditor->committerInfo(), m_client->commit(commitEditor->repoRoot(), files, commitEditor->committerInfo(),
editorFile->fileName()); editorFile->fileName(), true);
} }
return true; return true;
} }