public HgStore CreateInstance(string storeBasePath, HgRequirements hgRequirements, HgFileSystem hgFileSystem, HgEncoder hgEncoder) { var hgStore = CreateInstanceInternal(storeBasePath, hgRequirements, hgFileSystem, hgEncoder); if(hgRequirements.Requires(HgRequirements.Largefiles)) hgStore = new HgLargefileEnabledStore(hgStore); return hgStore; }
private HgStore CreateInstanceInternal(string storeBasePath, HgRequirements hgRequirements, HgFileSystem hgFileSystem, HgEncoder hgEncoder) { log.Trace("creating HgStore with requirements '{0}' for repository at '{1}'", string.Join("', '", hgRequirements.Requirements), storeBasePath); if(hgRequirements.Requires(HgRequirements.Store)) { if(hgRequirements.Requires(HgRequirements.FnCache)) { log.Trace("creating HgFnCacheStore"); var encodings = HgPathEncodings.FnCache; if(hgRequirements.Requires(HgRequirements.DotEncode)) encodings |= HgPathEncodings.DotEncode; return new HgFnCacheStore(encodings, hgEncoder, storeBasePath, hgFileSystem); } // if log.Trace("creating HgEncodedStore"); return new HgEncodedStore(hgEncoder, storeBasePath, hgFileSystem); } log.Trace("creating HgBasicStore"); return new HgBasicStore(hgEncoder, storeBasePath, hgFileSystem); }