daemon: Remove "case hack" for nars.
This code has never been of any use in Guix. * nix/libutil/archive.cc (useCaseHack): Remove. (parse): Keep only the alternate branch in "if (useCaseHack)".master
parent
2bc8b2af89
commit
7eca789201
|
@ -21,14 +21,6 @@
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
|
|
||||||
bool useCaseHack =
|
|
||||||
#if __APPLE__
|
|
||||||
true;
|
|
||||||
#else
|
|
||||||
false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static string archiveVersion1 = "nix-archive-1";
|
static string archiveVersion1 = "nix-archive-1";
|
||||||
|
|
||||||
static string caseHackSuffix = "~nix~case~hack~";
|
static string caseHackSuffix = "~nix~case~hack~";
|
||||||
|
@ -85,19 +77,7 @@ static void dump(const Path & path, Sink & sink, PathFilter & filter)
|
||||||
the case hack applied by restorePath(). */
|
the case hack applied by restorePath(). */
|
||||||
std::map<string, string> unhacked;
|
std::map<string, string> unhacked;
|
||||||
for (auto & i : readDirectory(path))
|
for (auto & i : readDirectory(path))
|
||||||
if (useCaseHack) {
|
unhacked[i.name] = i.name;
|
||||||
string name(i.name);
|
|
||||||
size_t pos = i.name.find(caseHackSuffix);
|
|
||||||
if (pos != string::npos) {
|
|
||||||
printMsg(lvlDebug, format("removing case hack suffix from `%1%'") % (path + "/" + i.name));
|
|
||||||
name.erase(pos);
|
|
||||||
}
|
|
||||||
if (unhacked.find(name) != unhacked.end())
|
|
||||||
throw Error(format("file name collision in between `%1%' and `%2%'")
|
|
||||||
% (path + "/" + unhacked[name]) % (path + "/" + i.name));
|
|
||||||
unhacked[name] = i.name;
|
|
||||||
} else
|
|
||||||
unhacked[i.name] = i.name;
|
|
||||||
|
|
||||||
for (auto & i : unhacked)
|
for (auto & i : unhacked)
|
||||||
if (filter(path + "/" + i.first)) {
|
if (filter(path + "/" + i.first)) {
|
||||||
|
@ -251,15 +231,6 @@ static void parse(ParseSink & sink, Source & source, const Path & path)
|
||||||
if (name <= prevName)
|
if (name <= prevName)
|
||||||
throw Error("NAR directory is not sorted");
|
throw Error("NAR directory is not sorted");
|
||||||
prevName = name;
|
prevName = name;
|
||||||
if (useCaseHack) {
|
|
||||||
auto i = names.find(name);
|
|
||||||
if (i != names.end()) {
|
|
||||||
printMsg(lvlDebug, format("case collision between `%1%' and `%2%'") % i->first % name);
|
|
||||||
name += caseHackSuffix;
|
|
||||||
name += std::to_string(++i->second);
|
|
||||||
} else
|
|
||||||
names[name] = 0;
|
|
||||||
}
|
|
||||||
} else if (s == "node") {
|
} else if (s == "node") {
|
||||||
if (s.empty()) throw badArchive("entry name missing");
|
if (s.empty()) throw badArchive("entry name missing");
|
||||||
parse(sink, source, path + "/" + name);
|
parse(sink, source, path + "/" + name);
|
||||||
|
|
|
@ -71,9 +71,4 @@ void parseDump(ParseSink & sink, Source & source);
|
||||||
|
|
||||||
void restorePath(const Path & path, Source & source);
|
void restorePath(const Path & path, Source & source);
|
||||||
|
|
||||||
|
|
||||||
// FIXME: global variables are bad m'kay.
|
|
||||||
extern bool useCaseHack;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue