public class ClientMerge
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
ClientMerge.ResolveChoice
Possible choices available to a merge / resolve; should be
fairly self-explanatory.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_TMPFILE_PFX |
static java.lang.String |
DEFAULT_TMPFILE_SFX |
static java.lang.String |
MARKER_BOTH |
static java.lang.String |
MARKER_END |
static java.lang.String |
MARKER_ORIGINAL |
static java.lang.String |
MARKER_THEIRS |
static java.lang.String |
MARKER_YOURS |
protected static java.lang.String |
MERGE_BASE_TMP_FILE_KEY |
protected static java.lang.String |
MERGE_BASE_TMP_STREAM_KEY |
protected static java.lang.String |
MERGE_STATE_KEY |
protected static java.lang.String |
MERGE_THEIRS_TMP_FILE_KEY |
protected static java.lang.String |
MERGE_THEIRS_TMP_STREAM_KEY |
protected static java.lang.String |
MERGE_YOURS_TMP_FILE_KEY |
protected static java.lang.String |
MERGE_YOURS_TMP_STREAM_KEY |
static java.lang.String |
SYSTEM_TMPDIR_DEFAULT |
static java.lang.String |
SYSTEM_TMPDIR_PROPS_KEY |
static java.lang.String |
TRACE_PREFIX |
Constructor and Description |
---|
ClientMerge(java.util.Properties props) |
Modifier and Type | Method and Description |
---|---|
protected RpcPacketDispatcher.RpcPacketDispatcherResult |
clientCloseMerge(RpcConnection rpcConnection,
CommandEnv cmdEnv,
java.util.Map<java.lang.String,java.lang.Object> resultsMap)
Close the merge write (above) and act on the results.
|
protected RpcPacketDispatcher.RpcPacketDispatcherResult |
clientOpenMerge3(RpcConnection rpcConnection,
CommandEnv cmdEnv,
java.util.Map<java.lang.String,java.lang.Object> resultsMap,
boolean twoWayMerge)
Implement a non-interactive version of the three-way client-side merge.
|
protected RpcPacketDispatcher.RpcPacketDispatcherResult |
clientWriteMerge(RpcConnection rpcConnection,
CommandEnv cmdEnv,
java.util.Map<java.lang.String,java.lang.Object> resultsMap)
Write merge data to the client if necessary.
|
public static final java.lang.String MARKER_ORIGINAL
public static final java.lang.String MARKER_THEIRS
public static final java.lang.String MARKER_YOURS
public static final java.lang.String MARKER_BOTH
public static final java.lang.String MARKER_END
public static final java.lang.String DEFAULT_TMPFILE_PFX
public static final java.lang.String DEFAULT_TMPFILE_SFX
public static final java.lang.String SYSTEM_TMPDIR_PROPS_KEY
public static final java.lang.String SYSTEM_TMPDIR_DEFAULT
public static final java.lang.String TRACE_PREFIX
protected static final java.lang.String MERGE_STATE_KEY
protected static final java.lang.String MERGE_BASE_TMP_FILE_KEY
protected static final java.lang.String MERGE_BASE_TMP_STREAM_KEY
protected static final java.lang.String MERGE_THEIRS_TMP_FILE_KEY
protected static final java.lang.String MERGE_THEIRS_TMP_STREAM_KEY
protected static final java.lang.String MERGE_YOURS_TMP_FILE_KEY
protected static final java.lang.String MERGE_YOURS_TMP_STREAM_KEY
protected RpcPacketDispatcher.RpcPacketDispatcherResult clientOpenMerge3(RpcConnection rpcConnection, CommandEnv cmdEnv, java.util.Map<java.lang.String,java.lang.Object> resultsMap, boolean twoWayMerge) throws ConnectionException
rpcConnection
- rpcConnectioncmdEnv
- cmdEnvresultsMap
- resultsMaptwoWayMerge
- twoWayMergeConnectionException
- on errorprotected RpcPacketDispatcher.RpcPacketDispatcherResult clientWriteMerge(RpcConnection rpcConnection, CommandEnv cmdEnv, java.util.Map<java.lang.String,java.lang.Object> resultsMap) throws ConnectionException
For the external stream merge case, this is a no op, but for the normal three-way merge case, we not only need to write the relevant files, but we also need to keep track of the differences so we can determine whether an automatic and / or safe merge is even possible. This determination is done in clientCloseMerge using chunk difference counts as supplied by the server in the bits parameter.
For the two-way merge, all we really need to do is write the "their" file and keep digesting under the covers...
rpcConnection
- rpcConnectioncmdEnv
- cmdEnvresultsMap
- resultsMapConnectionException
- on errorprotected RpcPacketDispatcher.RpcPacketDispatcherResult clientCloseMerge(RpcConnection rpcConnection, CommandEnv cmdEnv, java.util.Map<java.lang.String,java.lang.Object> resultsMap) throws ConnectionException
rpcConnection
- rpcConnectioncmdEnv
- cmdEnvresultsMap
- resultsMapConnectionException
- on error