Git: Support gitfile on commit

Change-Id: Ia2b8c7705129937a60585d881e1fbfa7815d858f
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
Orgad Shaneh
2012-08-01 10:29:01 +03:00
committed by Tobias Hunger
parent 8b0844d032
commit 69eeb94b7e
2 changed files with 14 additions and 4 deletions

View File

@@ -390,6 +390,15 @@ QString GitClient::findRepositoryForDirectory(const QString &dir)
} }
} }
QString GitClient::findGitDirForRepository(const QString &repositoryDir)
{
QByteArray outputText;
QStringList arguments;
arguments << QLatin1String("rev-parse") << QLatin1String("--git-dir");
fullySynchronousGit(repositoryDir, arguments, &outputText, 0, false);
return QString::fromLocal8Bit(outputText.trimmed());
}
VcsBase::VcsBaseEditorWidget *GitClient::findExistingVCSEditor(const char *registerDynamicProperty, VcsBase::VcsBaseEditorWidget *GitClient::findExistingVCSEditor(const char *registerDynamicProperty,
const QString &dynamicPropertyValue) const const QString &dynamicPropertyValue) const
{ {
@@ -1712,14 +1721,14 @@ bool GitClient::getCommitData(const QString &workingDirectory,
commitData->panelInfo.repository = repoDirectory; commitData->panelInfo.repository = repoDirectory;
QDir gitDir(repoDirectory); QString gitDir = GitClient::findGitDirForRepository(repoDirectory);
if (!gitDir.cd(QLatin1String(GIT_DIRECTORY))) { if (gitDir.isEmpty()) {
*errorMessage = tr("The repository \"%1\" is not initialized.").arg(repoDirectory); *errorMessage = tr("The repository \"%1\" is not initialized.").arg(repoDirectory);
return false; return false;
} }
// Read description // Read description
const QString descriptionFile = gitDir.absoluteFilePath(QLatin1String("description")); const QString descriptionFile = QDir(gitDir).absoluteFilePath(QLatin1String("description"));
if (QFileInfo(descriptionFile).isFile()) { if (QFileInfo(descriptionFile).isFile()) {
Utils::FileReader reader; Utils::FileReader reader;
if (!reader.fetch(descriptionFile, QIODevice::Text, errorMessage)) if (!reader.fetch(descriptionFile, QIODevice::Text, errorMessage))
@@ -1798,7 +1807,7 @@ bool GitClient::getCommitData(const QString &workingDirectory,
commitData->panelData.author = readConfigValue(workingDirectory, QLatin1String("user.name")); commitData->panelData.author = readConfigValue(workingDirectory, QLatin1String("user.name"));
commitData->panelData.email = readConfigValue(workingDirectory, QLatin1String("user.email")); commitData->panelData.email = readConfigValue(workingDirectory, QLatin1String("user.email"));
// Commit: Get the commit template // Commit: Get the commit template
QString templateFilename = gitDir.absoluteFilePath(QLatin1String("MERGE_MSG")); QString templateFilename = QDir(gitDir).absoluteFilePath(QLatin1String("MERGE_MSG"));
if (!QFileInfo(templateFilename).isFile()) if (!QFileInfo(templateFilename).isFile())
templateFilename = readConfigValue(workingDirectory, QLatin1String("commit.template")); templateFilename = readConfigValue(workingDirectory, QLatin1String("commit.template"));
if (!templateFilename.isEmpty()) { if (!templateFilename.isEmpty()) {

View File

@@ -85,6 +85,7 @@ public:
unsigned gitVersion(QString *errorMessage = 0) const; unsigned gitVersion(QString *errorMessage = 0) const;
QString findRepositoryForDirectory(const QString &dir); QString findRepositoryForDirectory(const QString &dir);
QString findGitDirForRepository(const QString &repositoryDir);
void diff(const QString &workingDirectory, const QStringList &diffArgs, const QString &fileName); void diff(const QString &workingDirectory, const QStringList &diffArgs, const QString &fileName);
void diff(const QString &workingDirectory, const QStringList &diffArgs, void diff(const QString &workingDirectory, const QStringList &diffArgs,