add support for streaming clone.
existing clone code uses pull to get changes from remote repo. is very
slow, uses lots of memory and cpu.
new clone code has server write file data straight to client, client
writes file data straight to disk. memory and cpu used are very low,
clone is much faster over lan.
new client can still clone with pull, can still clone from older servers.
new server can still serve older clients.
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
%% no merges expected
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
%% merge should fail
abort: 'b' already exists in the working dir and differs from remote
%% merge of b expected
merging for b
merging b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
%%
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Contents of b should be "this is file b1"
This is file b1
%% merge fails
abort: outstanding uncommitted changes
%% merge expected!
merging for b
merging b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
%% merge of b should fail
abort: outstanding uncommitted changes
%% merge of b expected
merging for b
merging b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)