Mercurial > jhg
diff src/org/tmatesoft/hg/internal/DataAccessProvider.java @ 584:ed243b668502
Conditionally enable effective patch merge alternative for revlog reading
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 25 Apr 2013 16:08:17 +0200 |
parents | dd4f6311af52 |
children | 5daa42067e7c |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/internal/DataAccessProvider.java Wed Apr 24 15:39:53 2013 +0200 +++ b/src/org/tmatesoft/hg/internal/DataAccessProvider.java Thu Apr 25 16:08:17 2013 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2012 TMate Software Ltd + * Copyright (c) 2010-2013 TMate Software Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -54,13 +54,16 @@ private final int mapioMagicBoundary; private final int bufferSize, mapioBufSize; private final SessionContext context; - + // not the right place for the property, but DAP is the only place currently available to RevlogStream to get the value + private final boolean shallMergePatches; + public DataAccessProvider(SessionContext ctx) { context = ctx; PropertyMarshal pm = new PropertyMarshal(ctx); mapioMagicBoundary = mapioBoundaryValue(pm.getInt(CFG_PROPERTY_MAPIO_LIMIT, DEFAULT_MAPIO_LIMIT)); bufferSize = pm.getInt(CFG_PROPERTY_FILE_BUFFER_SIZE, DEFAULT_FILE_BUFFER); mapioBufSize = pm.getInt(CFG_PROPERTY_MAPIO_BUFFER_SIZE, DEFAULT_MAPIO_BUFFER); + shallMergePatches = pm.getBoolean(Internals.CFG_PROPERTY_PATCH_MERGE, false); } public DataAccessProvider(SessionContext ctx, int mapioBoundary, int regularBufferSize, int mapioBufferSize) { @@ -68,6 +71,12 @@ mapioMagicBoundary = mapioBoundaryValue(mapioBoundary); bufferSize = regularBufferSize; mapioBufSize = mapioBufferSize; + shallMergePatches = new PropertyMarshal(ctx).getBoolean(Internals.CFG_PROPERTY_PATCH_MERGE, false); + } + + // TODO [post-1.1] find a better place for this option, it's unrelated to the DAP + public boolean shallMergePatches() { + return shallMergePatches; } // ensure contract of CFG_PROPERTY_MAPIO_LIMIT, for mapioBoundary == 0 use MAX_VALUE so that no file is memmap-ed