mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
490468403b
Summary: The rust contentstore doesn't allow runtime manipulation of the list of stores, which is required in order to insert the bundle store into the store. Let's continue using the old python union store in these cases. This still let's us delete the python pack code later, but we'll have to keep around the python union store until we come up with a better solution. Reviewed By: quark-zju Differential Revision: D23689630 fbshipit-source-id: 0c60e6f268e81804149afa24409f64b5303e1e34
304 lines
9.2 KiB
Perl
304 lines
9.2 KiB
Perl
#chg-compatible
|
|
|
|
#require symlink
|
|
|
|
$ enable amend smartlog
|
|
$ setconfig infinitepushbackup.enablestatus=true
|
|
$ . "$TESTDIR/library.sh"
|
|
$ . "$TESTDIR/infinitepush/library.sh"
|
|
$ setupcommon
|
|
$ enable remotenames
|
|
|
|
$ hgfakedate() {
|
|
> fakedate="$1"
|
|
> shift
|
|
> hg --config extensions.fakedate="$TESTDIR/fakedate.py" --config fakedate.date="$fakedate" "$@"
|
|
> }
|
|
|
|
Setup server
|
|
$ hg init repo
|
|
$ cd repo
|
|
$ setupserver
|
|
$ cd ..
|
|
|
|
To avoid test flakiness with times, do all operations relative to 2016-01-07T12:00:00Z
|
|
$ now=1452168000
|
|
$ setconfig extensions.fakedate="$TESTDIR/fakedate.py" fakedate.date="$now 0"
|
|
|
|
Setup client
|
|
$ hg clone ssh://user@dummy/repo client -q
|
|
$ cd client
|
|
$ touch file1
|
|
$ hg add file1
|
|
$ commit_time=`expr $now - 15 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Public changeset"
|
|
$ touch file2
|
|
$ hg add file2
|
|
$ commit_time=`expr $now - 15 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Public changeset 2"
|
|
$ hg push --to master --create --force
|
|
pushing rev c46481f83c9b to destination ssh://user@dummy/repo bookmark master
|
|
searching for changes
|
|
exporting bookmark master
|
|
remote: adding changesets
|
|
remote: adding manifests
|
|
remote: adding file changes
|
|
remote: added 2 changesets with 2 changes to 2 files
|
|
$ hg up 0
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
$ echo a > file1
|
|
$ changeset_time=`expr $now - 13 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Backed up changeset"
|
|
$ echo a1 > file1
|
|
$ changeset_time=`expr $now - 12 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Backed up changeset 2"
|
|
$ hg cloud backup
|
|
backing up stack rooted at * (glob)
|
|
commitcloud: backed up 2 commits
|
|
remote: pushing 2 commits:
|
|
remote: * Backed up changeset (glob)
|
|
remote: * Backed up changeset 2 (glob)
|
|
|
|
Check hiding the backup head doesn't affect backed-up changesets
|
|
$ hg up -q 2
|
|
$ hg log -T '{rev} {desc}\n' -r 'backedup()'
|
|
2 Backed up changeset
|
|
3 Backed up changeset 2
|
|
$ hg log -T '{rev} {desc}\n' -r 'notbackedup()'
|
|
$ hg hide 3
|
|
hiding commit * (glob)
|
|
1 changeset hidden
|
|
$ hg log -T '{rev} {desc}\n' -r 'backedup()' --traceback
|
|
2 Backed up changeset
|
|
$ hg log -T '{rev} {desc}\n' -r 'notbackedup()'
|
|
$ hg unhide 3
|
|
$ hg up -q 3
|
|
|
|
Create some changesets that aren't backed up
|
|
$ echo b > file1
|
|
$ commit_time=`expr $now - 11 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Not backed up changeset"
|
|
$ echo c > file1
|
|
$ commit_time=`expr $now - 9 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Backup pending changeset"
|
|
|
|
Check backup status of commits
|
|
$ hg log -T '{rev} {desc}\n' -r 'backedup()'
|
|
2 Backed up changeset
|
|
3 Backed up changeset 2
|
|
$ hg log -T '{rev} {desc}\n' -r 'draft() - backedup()'
|
|
4 Not backed up changeset
|
|
5 Backup pending changeset
|
|
$ hg log -T '{rev} {desc}\n' -r 'notbackedup()'
|
|
4 Not backed up changeset
|
|
5 Backup pending changeset
|
|
|
|
Check smartlog output
|
|
$ hg smartlog -T '{rev}: {desc}\n' --config infinitepushbackup.autobackup=no
|
|
o 1: Public changeset 2
|
|
|
|
|
| @ 5: Backup pending changeset
|
|
| |
|
|
| o 4: Not backed up changeset
|
|
| |
|
|
| o 3: Backed up changeset 2
|
|
| |
|
|
| o 2: Backed up changeset
|
|
|/
|
|
o 0: Public changeset
|
|
|
|
note: background backup is currently disabled so your commits are not being backed up.
|
|
note: changeset * is not backed up. (glob)
|
|
(run 'hg cloud backup' to perform a backup)
|
|
(if this fails, please report to the Source Control Team)
|
|
|
|
Check smartlog summary can be suppressed
|
|
$ hg smartlog -T '{rev}: {desc}\n' --config infinitepushbackup.enablestatus=no
|
|
o 1: Public changeset 2
|
|
|
|
|
| @ 5: Backup pending changeset
|
|
| |
|
|
| o 4: Not backed up changeset
|
|
| |
|
|
| o 3: Backed up changeset 2
|
|
| |
|
|
| o 2: Backed up changeset
|
|
|/
|
|
o 0: Public changeset
|
|
|
|
Check smartlog summary with multiple unbacked up changesets
|
|
$ hg up 2
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ echo b2 > file1
|
|
$ commit_time=`expr $now - 11 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Not backed up changeset 2"
|
|
$ hg smartlog -T '{rev}: {desc}\n' --config infinitepushbackup.autobackup=yes
|
|
o 1: Public changeset 2
|
|
|
|
|
| @ 6: Not backed up changeset 2
|
|
| |
|
|
| | o 5: Backup pending changeset
|
|
| | |
|
|
| | o 4: Not backed up changeset
|
|
| | |
|
|
| | o 3: Backed up changeset 2
|
|
| |/
|
|
| o 2: Backed up changeset
|
|
|/
|
|
o 0: Public changeset
|
|
|
|
note: 2 changesets are not backed up.
|
|
(run 'hg cloud backup' to perform a backup)
|
|
(if this fails, please report to the Source Control Team)
|
|
|
|
Check backup status with an unbacked up changeset that is disjoint from existing backups
|
|
$ hg up 1
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ echo b > file2
|
|
$ commit_time=`expr $now - 11 \* 60`
|
|
$ hg commit -d "$commit_time 0" -m "Not backed up changeset 3"
|
|
$ hg log -T '{rev} {desc}\n' -r 'notbackedup()'
|
|
4 Not backed up changeset
|
|
5 Backup pending changeset
|
|
6 Not backed up changeset 2
|
|
7 Not backed up changeset 3
|
|
|
|
Test template keyword for when a backup is in progress
|
|
$ hg log -T '{if(backingup,"Yes","No")}\n' -r .
|
|
No
|
|
$ rm -f .hg/infinitepushbackup.lock
|
|
$ ln -s fakelock .hg/infinitepushbackup.lock
|
|
$ hg log -T '{if(backingup,"Yes","No")}\n' -r .
|
|
Yes
|
|
$ rm -f .hg/infinitepushbackup.lock
|
|
|
|
Test for infinitepushbackup disable
|
|
$ setconfig infinitepushbackup.autobackup=true
|
|
$ hg cloud enable
|
|
background backup is already enabled
|
|
$ hg cloud disable
|
|
commitcloud: background backup is now disabled until * (glob)
|
|
$ hg cloud disable
|
|
note: background backup was already disabled
|
|
commitcloud: background backup is now disabled until * (glob)
|
|
$ hg cloud disable --hours ggg
|
|
note: background backup was already disabled
|
|
abort: error: argument 'hours': invalid int value: 'ggg'
|
|
|
|
[255]
|
|
|
|
Test sl when infinitepushbackup is disabled but disabling has been expired / not expired
|
|
$ hg sl -T '{rev} {desc}\n'
|
|
@ 7 Not backed up changeset 3
|
|
|
|
|
o 1 Public changeset 2
|
|
|
|
|
| o 6 Not backed up changeset 2
|
|
| |
|
|
| | o 5 Backup pending changeset
|
|
| | |
|
|
| | o 4 Not backed up changeset
|
|
| | |
|
|
| | o 3 Backed up changeset 2
|
|
| |/
|
|
| o 2 Backed up changeset
|
|
|/
|
|
o 0 Public changeset
|
|
|
|
note: background backup is currently disabled until * (glob)
|
|
so your commits are not being backed up.
|
|
(run 'hg cloud enable' to turn automatic backups back on)
|
|
note: 3 changesets are not backed up.
|
|
(run 'hg cloud backup' to perform a backup)
|
|
(if this fails, please report to the Source Control Team)
|
|
|
|
Advance time so that the disable has expired
|
|
$ hg sl --config fakedate.date="1452175000 0" -T '{rev} {desc}\n'
|
|
@ 7 Not backed up changeset 3
|
|
|
|
|
o 1 Public changeset 2
|
|
|
|
|
| o 6 Not backed up changeset 2
|
|
| |
|
|
| | o 5 Backup pending changeset
|
|
| | |
|
|
| | o 4 Not backed up changeset
|
|
| | |
|
|
| | o 3 Backed up changeset 2
|
|
| |/
|
|
| o 2 Backed up changeset
|
|
|/
|
|
o 0 Public changeset
|
|
|
|
note: 4 changesets are not backed up.
|
|
(run 'hg cloud backup' to perform a backup)
|
|
(if this fails, please report to the Source Control Team)
|
|
|
|
Hide or obsolete some of the non-backed-up commits. The hidden commits that
|
|
have not been backed up should no longer show up as "not backed up", even if
|
|
'--hidden' is passed. The hidden commits that have been backed up may still
|
|
show as backed up if '--hidden' is passed.
|
|
|
|
$ echo c > file2
|
|
$ commit_time=`expr $now - 11 \* 60`
|
|
$ hg amend -d "$commit_time 0" -m "Not backed up changeset 3 (amended)"
|
|
$ hg hide -q 3
|
|
$ hg log -T '{rev} {desc}\n' -r 'backedup()'
|
|
2 Backed up changeset
|
|
$ hg log -T '{rev} {desc}\n' -r 'backedup()' --hidden
|
|
2 Backed up changeset
|
|
3 Backed up changeset 2
|
|
$ hg log -T '{rev} {desc}\n' -r 'notbackedup()'
|
|
6 Not backed up changeset 2
|
|
8 Not backed up changeset 3 (amended)
|
|
$ hg log -T '{rev} {desc}\n' -r 'notbackedup()' --hidden
|
|
4 Not backed up changeset
|
|
5 Backup pending changeset
|
|
6 Not backed up changeset 2
|
|
7 Not backed up changeset 3
|
|
8 Not backed up changeset 3 (amended)
|
|
$ hg sl -T '{rev} {desc}\n'
|
|
@ 8 Not backed up changeset 3 (amended)
|
|
|
|
|
o 1 Public changeset 2
|
|
|
|
|
| o 6 Not backed up changeset 2
|
|
| |
|
|
| o 2 Backed up changeset
|
|
|/
|
|
o 0 Public changeset
|
|
|
|
note: background backup is currently disabled until Thu Jan 07 13:00:00 2016 +0000
|
|
so your commits are not being backed up.
|
|
(run 'hg cloud enable' to turn automatic backups back on)
|
|
note: 2 changesets are not backed up.
|
|
(run 'hg cloud backup' to perform a backup)
|
|
(if this fails, please report to the Source Control Team)
|
|
|
|
(3, 4, 5 do not have successors. They show up as 'o' not 'x' with --hidden)
|
|
$ hg sl -T '{rev} {desc}\n' --hidden
|
|
@ 8 Not backed up changeset 3 (amended)
|
|
|
|
|
| x 7 Not backed up changeset 3
|
|
|/
|
|
o 1 Public changeset 2
|
|
|
|
|
| o 6 Not backed up changeset 2
|
|
| |
|
|
| | o 5 Backup pending changeset
|
|
| | |
|
|
| | o 4 Not backed up changeset
|
|
| | |
|
|
| | o 3 Backed up changeset 2
|
|
| |/
|
|
| o 2 Backed up changeset
|
|
|/
|
|
o 0 Public changeset
|
|
|
|
note: background backup is currently disabled until Thu Jan 07 13:00:00 2016 +0000
|
|
so your commits are not being backed up.
|
|
(run 'hg cloud enable' to turn automatic backups back on)
|
|
note: 4 changesets are not backed up.
|
|
(run 'hg cloud backup' to perform a backup)
|
|
(if this fails, please report to the Source Control Team)
|