bookmarks: explicitly track identical bookmarks
bookmarks.compare() previously lumped identical bookmarks in the
"invalid" bucket. This patch adds a "same" bucket.
An 8-tuple for holding this state is pretty gnarly. The return value
should probably be converted into a class to increase readability. But
that is beyond the scope of a patch intended to be a late arrival to
stable.
#require symlink
http://mercurial.selenic.com/bts/issue1438
$ hg init
$ ln -s foo link
$ hg add link
$ hg ci -mbad link
$ hg rm link
$ hg ci -mok
$ hg diff -g -r 0:1 > bad.patch
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg import --no-commit bad.patch
applying bad.patch
$ hg status
R link
? bad.patch