suppress external diff program when using git diff.
Cluster: added a missing return on CLUSTER SETSLOT.
Cluster: CLUSTER FORGET implemented.
redis-trib help.
redis-trib: skip nodes without slots when creating the config signature.
Cluster: don't gossip about nodes that are not useful to the cluster.
Cluster: new field in cluster node structure, "numslots".

Before a relatively slow popcount() operation was needed every time we
needed to get the number of slots served by a given cluster node.
Now we just need to check an integer that is taken in sync with the
bitmap.
Cluster: use node->numslots instead of popcount() where possible.
Cluster: refactoring of clusterNode*Bit to use helper bitmap functions.
Cluster: better handling of slots changes in PONG packets.

The new code makes sure that the node slots bitmap is always consistent
with the cluster->slots array.
Cluster: don't set the slot as unassigned because of PONG info.

As stated in the comment this is usually due to a resharding in progress
so the client should be still redirected to the old node that will
handle the redirection elsewhere.
point 2 of slave-serve-stale-data miss '-' between 'stale' and 'data'
Merge pull request #967 from 0x20h/fix-git-diff

suppress external diff program when using git diff.
redis-cli: use keepalive socket option.

This should improve things in two ways:

1) Prevent timeouts caused by the execution of long commands.
2) Improve detection of real connection errors.

This is mostly effective only on Linux because of the bogus default
keepalive settings. In Linux we have OS-specific calls to set the
keepalive interval to reasonable values.
adding check error code

adding check error code
Cluster: REPLICATE subcommand and stub for clusterSetMaster().
SLAVEOF command refactored into a proper API.

We now have replicationSetMaster() and replicationUnsetMaster() that can
be called in other contexts (for instance Redis Cluster).
Cluster: actually setup replication in CLUSTER REPLICATE.
Make sure replicationSetMaster() works when ip argument is not an sds.
Cluster: fix maximum line length when loading config.

There are pathological cases where the line can be even longer a single
node may contain all the slots in importing/migrating state.