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.
adding foo
>>> two diffs showing three added lines <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
+
hello world
+
goodbye world
+
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
+
hello world
+
goodbye world
+
>>> no diffs <<<
hg diff -B
hg diff -Bb
>>> four diffs showing added space first on the first line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+ hello world
goodbye world
>>> two diffs showing space appended to the first line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+hello world
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
+hello world
goodbye world
>>> no diffs <<<
hg diff -b
hg diff -Bb
>>> four diffs showing space inserted into "goodbye" <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+good bye world
>>> two diffs showing changed whitespace amount in the last line <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
hello world
-goodbye world
+goodbye world
>>> no diffs <<<
hg diff -b
hg diff -Bb
>>> four diffs showing added blank line w/horizontal space <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
hello world
+
goodbye world
hg diff -Bb
>>> three diffs showing added blank line w/other space <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,3 @@ hello world
-hello world
-goodbye world
+hello world
+
+goodbye world
hg diff -Bb
>>> four diffs showing changed whitespace <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,2 @@ hello world
-hello world
-goodbye world
+helloworld
+goodbye world
hg diff -w
>>> five diffs showing changed whitespace <<<
hg diff
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -B
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -b
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -Bb
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -w
diff -r 540c40a65b78 foo
--- a/foo
+++ b/foo
@@ -1,2 +1,5 @@ hello world
-hello world
-goodbye world
+helloworld
+
+
+
+goodbye world
hg diff -wB