sapling/tests/test-infinitepushbackup-share.t
Mark Thomas 3bf1e7d0b3 infinitepushbackup: back up commits stack-by-stack
Summary:
Use the new stack-by-stack commit backup for infinitepushbackup as well as
commitcloud.

Reviewed By: DurhamG

Differential Revision: D8241380

fbshipit-source-id: 0c1481ad1ab5759ab642d0b02c7fe08523056292
2018-06-05 04:36:07 -07:00

58 lines
1.7 KiB
Perl

$ . "$TESTDIR/library.sh"
$ . "$TESTDIR/infinitepush/library.sh"
$ setupcommon
$ mkcommit() {
> echo "$1" > "$1"
> hg add "$1"
> hg ci -m "$1"
> }
$ cat >> $HGRCPATH << EOF
> [extensions]
> share=
> EOF
$ hg init repo
$ cd repo
$ setupserver
$ cd ..
Clone client
$ hg clone ssh://user@dummy/repo client -q
$ hg share --bookmarks client client2
updating working directory
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd client2
$ mkcommit first
$ hg paths
default = ssh://user@dummy/repo
Write smth to backup state file in the shared working copy to check that
it's not read by infinitepush backup client
$ echo 'rubbish' > .hg/infinitepushbackupstate
$ hg pushbackup
starting backup .* (re)
backing up stack rooted at b75a450e74d5
remote: pushing 1 commit:
remote: b75a450e74d5 first
finished in \d+\.(\d+)? seconds (re)
$ scratchbookmarks
infinitepush/backups/test/*$TESTTMP/client/heads/b75a450e74d5a7708da8c3144fbeb4ac88694044 b75a450e74d5a7708da8c3144fbeb4ac88694044 (glob)
Make sure that backup state is saved only on the "main" repo
$ cat .hg/infinitepushbackupstate
rubbish
$ [ -f ../client/.hg/infinitepushbackupstate ]
Make sure that isbackedup references the main repo
$ hg isbackedup -r :
b75a450e74d5a7708da8c3144fbeb4ac88694044 backed up
$ hg log -T '{rev}:{node} "{desc}"\n' -r 'notbackedup()'
Make another commit that is not backed up and check that too
$ mkcommit second
$ hg isbackedup -r :
b75a450e74d5a7708da8c3144fbeb4ac88694044 backed up
bc64f6a267a06b03e9e0f96a6deae37ae89a832e not backed up
$ hg log -T '{rev}:{node} "{desc}"\n' -r 'notbackedup()'
1:bc64f6a267a06b03e9e0f96a6deae37ae89a832e "second"