mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
GitFileSystemObjectSink: Add path context to some messages
This commit is contained in:
parent
992912f3b4
commit
1fac22b16e
1 changed files with 4 additions and 3 deletions
|
@ -927,7 +927,7 @@ struct GitFileSystemObjectSinkImpl : GitFileSystemObjectSink
|
||||||
std::string_view relTargetLeft(relTarget);
|
std::string_view relTargetLeft(relTarget);
|
||||||
while (hasPrefix(relTargetLeft, "../")) {
|
while (hasPrefix(relTargetLeft, "../")) {
|
||||||
if (dir == pendingDirs.rend())
|
if (dir == pendingDirs.rend())
|
||||||
throw Error("invalid hard link target '%s'", target);
|
throw Error("invalid hard link target '%s' for path '%s'", target, path);
|
||||||
++dir;
|
++dir;
|
||||||
relTargetLeft = relTargetLeft.substr(3);
|
relTargetLeft = relTargetLeft.substr(3);
|
||||||
}
|
}
|
||||||
|
@ -940,13 +940,14 @@ struct GitFileSystemObjectSinkImpl : GitFileSystemObjectSink
|
||||||
|
|
||||||
for (auto & c : CanonPath(relTargetLeft)) {
|
for (auto & c : CanonPath(relTargetLeft)) {
|
||||||
if (auto builder = std::get_if<git_treebuilder *>(&curDir)) {
|
if (auto builder = std::get_if<git_treebuilder *>(&curDir)) {
|
||||||
|
assert(*builder);
|
||||||
if (!(entry = git_treebuilder_get(*builder, std::string(c).c_str())))
|
if (!(entry = git_treebuilder_get(*builder, std::string(c).c_str())))
|
||||||
throw Error("cannot find hard link target '%s'", target);
|
throw Error("cannot find hard link target '%s' for path '%s'", target, path);
|
||||||
curDir = *git_tree_entry_id(entry);
|
curDir = *git_tree_entry_id(entry);
|
||||||
} else if (auto oid = std::get_if<git_oid>(&curDir)) {
|
} else if (auto oid = std::get_if<git_oid>(&curDir)) {
|
||||||
tree = lookupObject(*repo, *oid, GIT_OBJECT_TREE);
|
tree = lookupObject(*repo, *oid, GIT_OBJECT_TREE);
|
||||||
if (!(entry = git_tree_entry_byname((const git_tree *) &*tree, std::string(c).c_str())))
|
if (!(entry = git_tree_entry_byname((const git_tree *) &*tree, std::string(c).c_str())))
|
||||||
throw Error("cannot find hard link target '%s'", target);
|
throw Error("cannot find hard link target '%s' for path '%s'", target, path);
|
||||||
curDir = *git_tree_entry_id(entry);
|
curDir = *git_tree_entry_id(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue