From 73b163c1a10f2ce675d9fc3d7ad02fad4bc6511f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 11 Jul 2003 08:41:03 +0000 Subject: * Fix a bug that caused Fix not to be deterministic (due to addToStore returning different paths if the hash of the path to be added was already available in the store under a different name). --- src/store.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/store.cc') diff --git a/src/store.cc b/src/store.cc index 435ac5cc69ce..12de50ec6424 100644 --- a/src/store.cc +++ b/src/store.cc @@ -224,24 +224,23 @@ string expandHash(const Hash & hash, const string & target, } -void addToStore(string srcPath, string & dstPath, Hash & hash) +void addToStore(string srcPath, string & dstPath, Hash & hash, + bool deterministicName) { srcPath = absPath(srcPath); - hash = hashPath(srcPath); + string baseName = baseNameOf(srcPath); + dstPath = canonPath(nixStore + "/" + (string) hash + "-" + baseName); + try { /* !!! should not use the substitutes! */ - dstPath = expandHash(hash, "", nixStore); + dstPath = expandHash(hash, deterministicName ? dstPath : "", nixStore); return; } catch (...) { } - string baseName = baseNameOf(srcPath); - dstPath = canonPath(nixStore + "/" + (string) hash + "-" + baseName); - copyPath(srcPath, dstPath); - registerPath(dstPath, hash); } -- cgit 1.4.1