convert: refactor sink initialisation, to remove hardcoding of hg
We also introduce options to explicitly set the source and destination
repository types.
Improve testing of corner cases a little.
% init foo-base
% create alpha in first repo
adding alpha
% clone foo-base to foo-work
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% create beta in second repo
adding beta
% create gamma in first repo
adding gamma
% pull into work and merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
% revert to changeset 1 to simulate a failed merge
2 files updated, 0 files merged, 0 files removed, 0 files unresolved