convert: added bookmarks support in filemap
When using the convert extension from a Mercurial rep. to subset it with
filemap, the bookmarks are not copied. I fixed this by calling the
base.get_bookmarks() from the filemap getbookmarks() instead of returning an
empty dictionary. It should work also for other converters that implement
getbookmarks() (like git). I don't see any drawbacks except that the bookmarks
are always copied (not necessarily wanted all the times).
$ hg init repo
$ cd repo
$ i=0; while [ "$i" -lt 213 ]; do echo a >> a; i=`expr $i + 1`; done
$ hg add a
$ cp a b
$ hg add b
Wide diffstat:
$ hg diff --stat
a | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
b | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 426 insertions(+), 0 deletions(-)
diffstat width:
$ COLUMNS=24 hg diff --config ui.interactive=true --stat
a | 213 ++++++++++++++
b | 213 ++++++++++++++
2 files changed, 426 insertions(+), 0 deletions(-)
$ hg ci -m adda
$ cat >> a <<EOF
> a
> a
> a
> EOF
Narrow diffstat:
$ hg diff --stat
a | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
$ hg ci -m appenda
$ printf '\0' > c
$ hg add c
Binary diffstat:
$ hg diff --stat
c | 0
1 files changed, 0 insertions(+), 0 deletions(-)
Binary git diffstat:
$ hg diff --stat --git
c | Bin
1 files changed, 0 insertions(+), 0 deletions(-)
$ hg ci -m createb
$ printf '\0' > "file with spaces"
$ hg add "file with spaces"
Filename with spaces diffstat:
$ hg diff --stat
file with spaces | 0
1 files changed, 0 insertions(+), 0 deletions(-)
Filename with spaces git diffstat:
$ hg diff --stat --git
file with spaces | Bin
1 files changed, 0 insertions(+), 0 deletions(-)