This patch adds the status hashing feature to cvs which
improves the performance of the cvs status command when using
the client/server mode. Normally, the client sends to the
server the contents of any file that might have been
modified. This patch adds the -H option to cvs status so that
only a hash of the file is sent. This is a very effective
performance improvement when low-bandwidth connections between
the client and the server.
Use file content hashing to reduce the traffic to the
Emit compressed status report for easier machine
parsing. Appears to be about a 20% savings on
transmission bytes when compressed woth -z9.
Request status for modified or potentially modified
files only. This is used by an optimized update
command to determine the smallest set of sources that
need to be transmitted to the server.
- Create Rcs-merge response that is similar to Rcs-diff but sends both
the base revision and the patch to the latest tip revision.
- Perform the same hook as Rcs-diff, configure the update_?? call with
an enum to indicate that we'll read an extra file buffer, the base
revision. This will come after the patch since this leave the patch
structure intact and will permit us to drop the base revision
(size < 0?) if we know that the user has one intact.
- At the bottom of the update call, we will perform the
rcs-change-text to recover the latest tip revision and then call the
RCS_merge like function to perform the merge.
- Our history will be similar to 'P' for patch since we don't have any
way to know if it was successful.