remote-hg: make forced push optional

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: fix branch name parsing

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: show more proper errors

When cloning or pushing fails, we don't want to show a stack-trace.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: add basic author tests

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: add simple mail test

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: add 'insecure' option

If set to true acts as hg's clone/pull --insecure option.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: fix bad state issue

The problem reportedly happened after doing a push that fails, the abort
causes the state of remote-hg to go bad, this happens because
remote-hg's marks are not stored, but 'git fast-export' marks are.

Ensure that the marks are _always_ stored.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: document location of stored hg repository

Signed-off-by: Simon Ruderich <simon@ruderich.org>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: fix bad file paths

Mercurial allows absolute file paths, and Git doesn't like that.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>