cmCTestGIT: Refresh index for local modifications
We use 'git diff-index' to detect local modifications after pull. On some filesystems the work tree timestamps of a few files may be dated after the index, making them appear as locally modified. We address the problem by using 'git update-index --refresh' to refresh the index and avoid false local modifications.
This commit is contained in:
parent
78a5727d49
commit
8bd231866a
|
@ -409,10 +409,16 @@ void cmCTestGIT::LoadRevisions()
|
|||
//----------------------------------------------------------------------------
|
||||
void cmCTestGIT::LoadModifications()
|
||||
{
|
||||
// Use 'git diff-index' to get modified files.
|
||||
const char* git = this->CommandLineTool.c_str();
|
||||
const char* git_diff_index[] = {git, "diff-index", "-z", "HEAD", 0};
|
||||
|
||||
// Use 'git update-index' to refresh the index w.r.t. the work tree.
|
||||
const char* git_update_index[] = {git, "update-index", "--refresh", 0};
|
||||
OutputLogger ui_out(this->Log, "ui-out> ");
|
||||
OutputLogger ui_err(this->Log, "ui-err> ");
|
||||
this->RunChild(git_update_index, &ui_out, &ui_err);
|
||||
|
||||
// Use 'git diff-index' to get modified files.
|
||||
const char* git_diff_index[] = {git, "diff-index", "-z", "HEAD", 0};
|
||||
DiffParser out(this, "di-out> ");
|
||||
OutputLogger err(this->Log, "di-err> ");
|
||||
this->RunChild(git_diff_index, &out, &err);
|
||||
|
|
Loading…
Reference in New Issue