rust-cpython: move $leaked struct out of macro
It wasn't easy to hack the $leaked struct since errors in macro would
generate lots of compile errors. Let's make it a plain struct so we can
easily extend it.
PyLeakedRef keeps a more generic PyObject instead of the $name struct
since it no longer has to call any specific methods implemented by
the $name class. $leaked parameter in py_shared_iterator!() is kept
for future change.
Just exercise debugindexdot
Create a short file history including a merge.
$ hg init t
$ cd t
$ echo a > a
$ hg ci -qAm t1 -d '0 0'
$ echo a >> a
$ hg ci -m t2 -d '1 0'
$ hg up -qC 0
$ echo b >> a
$ hg ci -m t3 -d '2 0'
created new head
$ HGMERGE=true hg merge -q
$ hg ci -m merge -d '3 0'
$ hg debugindexdot -c
digraph G {
-1 -> 0
0 -> 1
0 -> 2
2 -> 3
1 -> 3
}
$ hg debugindexdot -m
digraph G {
-1 -> 0
0 -> 1
0 -> 2
2 -> 3
1 -> 3
}
$ hg debugindexdot a
digraph G {
-1 -> 0
0 -> 1
0 -> 2
2 -> 3
1 -> 3
}
$ cd ..