forked from qt-creator/qt-creator
Git: Support typechange
Replacing a normal file with a symbolic link. Change-Id: Id07ab339e8fcdf039b61d6e459b8d751d499f4f6 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
b98f2a3059
commit
877a10c8ef
@@ -94,6 +94,8 @@ static FileStates stateFor(const QChar &c)
|
|||||||
return CopiedFile;
|
return CopiedFile;
|
||||||
case 'U':
|
case 'U':
|
||||||
return UnmergedFile;
|
return UnmergedFile;
|
||||||
|
case 'T':
|
||||||
|
return TypeChangedFile;
|
||||||
case '?':
|
case '?':
|
||||||
return UntrackedFile;
|
return UntrackedFile;
|
||||||
default:
|
default:
|
||||||
@@ -209,6 +211,8 @@ QString CommitData::stateDisplayName(const FileStates &state)
|
|||||||
resultState.append(tr("renamed"));
|
resultState.append(tr("renamed"));
|
||||||
else if (state & CopiedFile)
|
else if (state & CopiedFile)
|
||||||
resultState.append(tr("copied"));
|
resultState.append(tr("copied"));
|
||||||
|
else if (state & TypeChangedFile)
|
||||||
|
resultState.append(tr("typechange"));
|
||||||
if (state & UnmergedUs) {
|
if (state & UnmergedUs) {
|
||||||
if (state & UnmergedThem)
|
if (state & UnmergedThem)
|
||||||
resultState.append(tr(" by both"));
|
resultState.append(tr(" by both"));
|
||||||
|
@@ -71,6 +71,7 @@ enum FileState {
|
|||||||
RenamedFile = 0x10,
|
RenamedFile = 0x10,
|
||||||
CopiedFile = 0x20,
|
CopiedFile = 0x20,
|
||||||
UnmergedFile = 0x40,
|
UnmergedFile = 0x40,
|
||||||
|
TypeChangedFile = 0x80,
|
||||||
|
|
||||||
UnmergedUs = 0x100,
|
UnmergedUs = 0x100,
|
||||||
UnmergedThem = 0x200,
|
UnmergedThem = 0x200,
|
||||||
|
@@ -2472,7 +2472,7 @@ bool GitClient::addAndCommit(const QString &repositoryDirectory,
|
|||||||
filesToAdd.append(file);
|
filesToAdd.append(file);
|
||||||
|
|
||||||
if ((state & StagedFile) && !checked) {
|
if ((state & StagedFile) && !checked) {
|
||||||
if (state & (ModifiedFile | AddedFile | DeletedFile)) {
|
if (state & (ModifiedFile | AddedFile | DeletedFile | TypeChangedFile)) {
|
||||||
filesToReset.append(file);
|
filesToReset.append(file);
|
||||||
} else if (state & (RenamedFile | CopiedFile)) {
|
} else if (state & (RenamedFile | CopiedFile)) {
|
||||||
const QString newFile = file.mid(file.indexOf(renameSeparator) + renameSeparator.count());
|
const QString newFile = file.mid(file.indexOf(renameSeparator) + renameSeparator.count());
|
||||||
@@ -2482,7 +2482,7 @@ bool GitClient::addAndCommit(const QString &repositoryDirectory,
|
|||||||
QTC_ASSERT(false, continue); // There should not be unmerged files when committing!
|
QTC_ASSERT(false, continue); // There should not be unmerged files when committing!
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state == ModifiedFile && checked) {
|
if ((state == ModifiedFile || state == TypeChangedFile) && checked) {
|
||||||
filesToReset.removeAll(file);
|
filesToReset.removeAll(file);
|
||||||
filesToAdd.append(file);
|
filesToAdd.append(file);
|
||||||
} else if (state == AddedFile && checked) {
|
} else if (state == AddedFile && checked) {
|
||||||
|
@@ -1396,6 +1396,10 @@ void GitPlugin::testStatusParsing_data()
|
|||||||
|
|
||||||
QTest::newRow(" M") << FileStates(ModifiedFile) << FileStates(UnknownFileState);
|
QTest::newRow(" M") << FileStates(ModifiedFile) << FileStates(UnknownFileState);
|
||||||
QTest::newRow(" D") << FileStates(DeletedFile) << FileStates(UnknownFileState);
|
QTest::newRow(" D") << FileStates(DeletedFile) << FileStates(UnknownFileState);
|
||||||
|
QTest::newRow(" T") << FileStates(TypeChangedFile) << FileStates(UnknownFileState);
|
||||||
|
QTest::newRow("T ") << (TypeChangedFile | StagedFile) << FileStates(UnknownFileState);
|
||||||
|
QTest::newRow("TM") << (TypeChangedFile | StagedFile) << FileStates(ModifiedFile);
|
||||||
|
QTest::newRow("MT") << (ModifiedFile | StagedFile) << FileStates(TypeChangedFile);
|
||||||
QTest::newRow("M ") << (ModifiedFile | StagedFile) << FileStates(UnknownFileState);
|
QTest::newRow("M ") << (ModifiedFile | StagedFile) << FileStates(UnknownFileState);
|
||||||
QTest::newRow("MM") << (ModifiedFile | StagedFile) << FileStates(ModifiedFile);
|
QTest::newRow("MM") << (ModifiedFile | StagedFile) << FileStates(ModifiedFile);
|
||||||
QTest::newRow("MD") << (ModifiedFile | StagedFile) << FileStates(DeletedFile);
|
QTest::newRow("MD") << (ModifiedFile | StagedFile) << FileStates(DeletedFile);
|
||||||
|
@@ -146,7 +146,7 @@ void GitSubmitEditor::setCommitData(const CommitData &d)
|
|||||||
return SubmitFileModel::FileUnmerged;
|
return SubmitFileModel::FileUnmerged;
|
||||||
if (state.testFlag(AddedFile) || state.testFlag(UntrackedFile))
|
if (state.testFlag(AddedFile) || state.testFlag(UntrackedFile))
|
||||||
return SubmitFileModel::FileAdded;
|
return SubmitFileModel::FileAdded;
|
||||||
if (state.testFlag(ModifiedFile))
|
if (state.testFlag(ModifiedFile) || state.testFlag(TypeChangedFile))
|
||||||
return SubmitFileModel::FileModified;
|
return SubmitFileModel::FileModified;
|
||||||
if (state.testFlag(DeletedFile))
|
if (state.testFlag(DeletedFile))
|
||||||
return SubmitFileModel::FileDeleted;
|
return SubmitFileModel::FileDeleted;
|
||||||
|
Reference in New Issue
Block a user