exchange: introduce a wireprotocol command to push markers
Pushkey is not adapted to transmit a stream of binary data. We used it as a hack
so far. We add a new wire protocol command to speed the things up (and also push
all the markers in a single transaction). The proper way to do it is to
introduce bundle2 in core, but this will already help in the mean time.
$ cat >> $HGRCPATH <<EOF
> [ui]
> logtemplate={rev}:{node|short} {desc}\n
> [defaults]
> amend=-d "0 0"
> [extensions]
> hgext.rebase=
> EOF
$ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
$ hg init repo
$ cd repo
$ echo A > a
$ hg add a
$ hg commit -m a
Basic usage
$ hg log -G
@ 0:e93df3427f45 a
$ hg touch .
$ hg log -G
@ 1:[0-9a-f]{12} a (re)
Revive usage
$ echo A > b
$ hg add b
$ hg commit -m ab --amend
$ hg up --hidden 1
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
working directory parent is obsolete!
$ hg log -G
o 3:[0-9a-f]{12} ab (re)
@ 1:[0-9a-f]{12} a (re)
$ hg touch .
2 new divergent changesets
$ hg log -G
@ 4:[0-9a-f]{12} a (re)
o 3:[0-9a-f]{12} ab (re)
$ hg prune 3
1 changesets pruned
Duplicate
$ hg touch --duplicate .
$ hg log -G
@ 5:[0-9a-f]{12} a (re)
o 4:[0-9a-f]{12} a (re)
Multiple touch
$ echo C > c
$ hg add c
$ hg commit -m c
$ echo D > d
$ hg add d
$ hg commit -m d
$ hg log -G
@ 7:[0-9a-f]{12} d (re)
|
o 6:[0-9a-f]{12} c (re)
|
o 5:[0-9a-f]{12} a (re)
o 4:[0-9a-f]{12} a (re)
$ hg touch 6:7
$ hg log -G
@ 9:[0-9a-f]{12} d (re)
|
o 8:[0-9a-f]{12} c (re)
|
o 5:[0-9a-f]{12} a (re)
o 4:[0-9a-f]{12} a (re)