Mercurial > hg
view tests/test-narrow-shallow.t @ 39286:3c4b2e880273
log: respect graphshorten on terminal nodes (collapsing o-~ to just o~)
Internally we have a custom template that's inspired by ones that we have seen
in the community. Normally, this looks something like:
o 0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@ 66f04611 matt_harbison
| cext: fix truncation warnings in revlog on Windows
o 42cc76d0 matt_harbison
| cext: fix revlog compiler error on Windows
~
o bd63ada7 stable boris
| phases: drop dead code in `newheads`
~
With graphshorten on, and the descriptions of the public nodes hidden, it looks
like this, note that the commits right before the ~ are still "full height":
o 0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@ 66f04611 matt_harbison
o 42cc76d0 matt_harbison
|
~
o bd63ada7 stable boris
|
~
This patch makes them look like this, removing the | but keeping the ~:
o 0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@ 66f04611 matt_harbison
o 42cc76d0 matt_harbison
~
o bd63ada7 stable boris
~
This originally removed the ~s entirely, but this was determined to be too much
information loss and potentially confusing. This would have looked like the
following (note that the last commit is on a different branch than all of the
ones above it, and they are *not* linearly related):
o 0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@ 66f04611 matt_harbison
o 42cc76d0 matt_harbison
o bd63ada7 stable boris
Differential Revision: https://phab.mercurial-scm.org/D4363
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Thu, 23 Aug 2018 13:33:19 -0700 |
parents | 8d033b348d85 |
children | 34f2c634c8f6 |
line wrap: on
line source
#require no-reposimplestore $ . "$TESTDIR/narrow-library.sh" $ hg init master $ cd master $ cat >> .hg/hgrc <<EOF > [narrow] > serveellipses=True > EOF $ for x in `$TESTDIR/seq.py 10` > do > echo $x > "f$x" > hg add "f$x" > done $ hg commit -m "Add root files" $ mkdir d1 d2 $ for x in `$TESTDIR/seq.py 10` > do > echo d1/$x > "d1/f$x" > hg add "d1/f$x" > echo d2/$x > "d2/f$x" > hg add "d2/f$x" > done $ hg commit -m "Add d1 and d2" $ for x in `$TESTDIR/seq.py 10` > do > echo f$x rev2 > "f$x" > echo d1/f$x rev2 > "d1/f$x" > echo d2/f$x rev2 > "d2/f$x" > hg commit -m "Commit rev2 of f$x, d1/f$x, d2/f$x" > done $ cd .. narrow and shallow clone the d2 directory $ hg clone --narrow ssh://user@dummy/master shallow --include "d2" --depth 2 requesting all changes adding changesets adding manifests adding file changes added 4 changesets with 13 changes to 10 files new changesets *:* (glob) updating to branch default 10 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd shallow $ hg log -T '{rev}{if(ellipsis,"...")}: {desc}\n' 3: Commit rev2 of f10, d1/f10, d2/f10 2: Commit rev2 of f9, d1/f9, d2/f9 1: Commit rev2 of f8, d1/f8, d2/f8 0...: Commit rev2 of f7, d1/f7, d2/f7 $ hg update 0 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat d2/f7 d2/f8 d2/f7 rev2 d2/8 $ cd .. change every upstream file once $ cd master $ for x in `$TESTDIR/seq.py 10` > do > echo f$x rev3 > "f$x" > echo d1/f$x rev3 > "d1/f$x" > echo d2/f$x rev3 > "d2/f$x" > hg commit -m "Commit rev3 of f$x, d1/f$x, d2/f$x" > done $ cd .. pull new changes with --depth specified. There were 10 changes to the d2 directory but the shallow pull should only fetch 3. $ cd shallow $ hg pull --depth 2 pulling from ssh://user@dummy/master searching for changes adding changesets adding manifests adding file changes added 4 changesets with 10 changes to 10 files new changesets *:* (glob) (run 'hg update' to get a working copy) $ hg log -T '{rev}{if(ellipsis,"...")}: {desc}\n' 7: Commit rev3 of f10, d1/f10, d2/f10 6: Commit rev3 of f9, d1/f9, d2/f9 5: Commit rev3 of f8, d1/f8, d2/f8 4...: Commit rev3 of f7, d1/f7, d2/f7 3: Commit rev2 of f10, d1/f10, d2/f10 2: Commit rev2 of f9, d1/f9, d2/f9 1: Commit rev2 of f8, d1/f8, d2/f8 0...: Commit rev2 of f7, d1/f7, d2/f7 $ hg update 4 merging d2/f1 merging d2/f2 merging d2/f3 merging d2/f4 merging d2/f5 merging d2/f6 merging d2/f7 3 files updated, 7 files merged, 0 files removed, 0 files unresolved $ cat d2/f7 d2/f8 d2/f7 rev3 d2/f8 rev2 $ hg update 7 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat d2/f10 d2/f10 rev3 $ cd .. cannot clone with zero or negative depth $ hg clone --narrow ssh://user@dummy/master bad --include "d2" --depth 0 requesting all changes remote: abort: depth must be positive, got 0 abort: pull failed on remote [255] $ hg clone --narrow ssh://user@dummy/master bad --include "d2" --depth -1 requesting all changes remote: abort: depth must be positive, got -1 abort: pull failed on remote [255]