GitRepo.walkMergeHead

Walk the MERGE_HEAD file in a foreach loop.

Examples

Walk the MERGE_HEAD using a foreach loop.

auto repo = initRepo(_userRepo, OpenBare.yes);
scope(exit) rmdirRecurse(_userRepo);

string[] mergeHeadItems = [
    "e496660174425e3147a0593ced2954f3ddbf65ca\n",
    "e496660174425e3147a0593ced2954f3ddbf65ca\n"
];

std.file.write(buildPath(repo.path, "MERGE_HEAD"), mergeHeadItems.join());

size_t count;
foreach (oid; repo.walkMergeHead)
{
    string line = mergeHeadItems[count++];
    string commitHex = line.split[0];
    assert(oid == GitOid(commitHex));
}

// ensure we've iterated all itmes
assert(count == 2);

count = 0;
foreach (oid; repo.walkMergeHead)
{
    string line = mergeHeadItems[count++];
    string commitHex = line.split[0];
    assert(oid == GitOid(commitHex));
    break;
}

// ensure 'break' works
assert(count == 1);

Meta