filectx: use ctx.size comparisons to speed up ctx.cmp
Comparing sizes is cheaper than comparing file contents, as it does not
involve reading the file on disk or from the filelog.
It is however not always possible: some extensions, or encode filters,
change data when extracting it to the working directory.
$ echo "[extensions]" >> $HGRCPATH
$ echo "bookmarks=" >> $HGRCPATH
$ echo "[bookmarks]" >> $HGRCPATH
$ echo "track.current = True" >> $HGRCPATH
initialize
$ hg init a
$ cd a
$ echo 'test' > test
$ hg commit -Am'test'
adding test
set bookmarks
$ hg bookmark X
$ hg bookmark Y
$ hg bookmark Z
import bookmark by name
$ hg init ../b
$ cd ../b
$ hg pull ../a
pulling from ../a
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
$ hg bookmarks
no bookmarks set
$ hg pull -B X ../a
pulling from ../a
searching for changes
no changes found
importing bookmark X
$ hg bookmark
X 0:4e3505fd9583
export bookmark by name
$ hg bookmark W
$ hg bookmark foo
$ hg bookmark foobar
$ hg push -B W ../a
pushing to ../a
searching for changes
no changes found
exporting bookmark W
$ hg -R ../a bookmarks
Y 0:4e3505fd9583
X 0:4e3505fd9583
* Z 0:4e3505fd9583
W -1:000000000000
push/pull name that doesn't exist
$ hg push -B badname ../a
bookmark badname does not exist on the local or remote repository!
[2]
$ hg pull -B anotherbadname ../a
abort: remote bookmark anotherbadname not found!
[255]