mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
b2f442982b
Summary: Support for unsubscribing from a scratch remote bookmarks in `hg hide` command. This is support if you hide via a revision. Hiding by its name will be another change. Reviewed By: quark-zju Differential Revision: D26544305 fbshipit-source-id: d10372513dda88903e2cc031ff16883a001c8e34
213 lines
7.1 KiB
Perl
213 lines
7.1 KiB
Perl
#chg-compatible
|
|
|
|
$ configure dummyssh
|
|
$ disable treemanifest
|
|
$ enable infinitepush
|
|
$ setconfig remotenames.hoist=default 'remotenames.autopullhoistpattern=re:.*'
|
|
$ setconfig infinitepush.branchpattern="re:scratch/.+"
|
|
$ mkcommit() {
|
|
> echo "$1" > "$1"
|
|
> hg add "$1"
|
|
> hg ci -m "$1"
|
|
> }
|
|
$ scratchnodes() {
|
|
> for node in `find ../repo/.hg/scratchbranches/index/nodemap/* | sort`; do
|
|
> echo ${node##*/}
|
|
> done
|
|
> }
|
|
$ scratchbookmarks() {
|
|
> for bookmark in `find ../repo/.hg/scratchbranches/index/bookmarkmap/* -type f | sort`; do
|
|
> echo "${bookmark##*/bookmarkmap/} `cat $bookmark`"
|
|
> done
|
|
> }
|
|
|
|
Create server repo with one commit and one remote bookmark
|
|
$ hg init repo
|
|
$ cd repo
|
|
$ setconfig infinitepush.server=yes infinitepush.indextype=disk infinitepush.storetype=disk
|
|
$ mkcommit servercommit
|
|
Let's make server bookmark to match scratch pattern and
|
|
check that it won't be handled like scratch bookmark
|
|
$ hg book scratch/serverbook
|
|
$ cd ..
|
|
|
|
Clone server and enable remotenames
|
|
$ hg clone ssh://user@dummy/repo --config extensions.remotenames= client -q
|
|
$ cd client
|
|
$ enable remotenames
|
|
$ hg book --remote
|
|
default/scratch/serverbook ac312cb08db5
|
|
|
|
Push scratch commit and scratch bookmark
|
|
$ mkcommit scratchcommitwithremotenames
|
|
$ hg push --config extensions.remotenames= -r . --to scratch/mybranch --create
|
|
pushing to ssh://user@dummy/repo
|
|
searching for changes
|
|
remote: pushing 1 commit:
|
|
remote: 620472ff5c0c scratchcommitwithremotenames
|
|
$ hg book --remote
|
|
default/scratch/mybranch 620472ff5c0c
|
|
default/scratch/serverbook ac312cb08db5
|
|
$ hg book
|
|
no bookmarks set
|
|
$ hg -R ../repo log -G
|
|
@ commit: ac312cb08db5
|
|
bookmark: scratch/serverbook
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: servercommit
|
|
|
|
$ scratchnodes
|
|
620472ff5c0c4a560a3ffd98c07f0c9ecad33f64
|
|
$ scratchbookmarks
|
|
scratch/mybranch 620472ff5c0c4a560a3ffd98c07f0c9ecad33f64
|
|
$ cd ..
|
|
|
|
Clone server one more time and pull scratch bookmark. Make sure it is remote
|
|
$ hg clone ssh://user@dummy/repo --config extensions.remotenames= client2 -q
|
|
$ cd client2
|
|
$ enable remotenames
|
|
$ hg book --remote
|
|
default/scratch/serverbook ac312cb08db5
|
|
$ hg pull -B scratch/mybranch
|
|
pulling from ssh://user@dummy/repo
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
$ hg book --remote
|
|
default/scratch/mybranch 620472ff5c0c
|
|
default/scratch/serverbook ac312cb08db5
|
|
$ hg book
|
|
no bookmarks set
|
|
|
|
Make sure that next non-scratch pull doesn't override remote scratch bookmarks
|
|
$ hg pull
|
|
pulling from ssh://user@dummy/repo
|
|
searching for changes
|
|
no changes found
|
|
$ hg book --remote
|
|
default/scratch/mybranch 620472ff5c0c
|
|
default/scratch/serverbook ac312cb08db5
|
|
$ cd ..
|
|
|
|
Create one more branch head on the server
|
|
$ cd repo
|
|
$ mkcommit head1
|
|
$ hg up ac312cb08db5
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
(leaving bookmark scratch/serverbook)
|
|
$ mkcommit head2
|
|
$ hg log -G
|
|
@ commit: dc4b2ecb723b
|
|
│ user: test
|
|
│ date: Thu Jan 01 00:00:00 1970 +0000
|
|
│ summary: head2
|
|
│
|
|
│ o commit: 64d557aa86fd
|
|
├─╯ bookmark: scratch/serverbook
|
|
│ user: test
|
|
│ date: Thu Jan 01 00:00:00 1970 +0000
|
|
│ summary: head1
|
|
│
|
|
o commit: ac312cb08db5
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: servercommit
|
|
|
|
$ cd ..
|
|
|
|
Go back to client, make pull and make sure that we pulled remote branches
|
|
$ cd client
|
|
$ hg dbsh -c 'ui.write("".join(sorted(repo.svfs.readutf8("remotenames").splitlines(True))))'
|
|
620472ff5c0c4a560a3ffd98c07f0c9ecad33f64 bookmarks default/scratch/mybranch
|
|
ac312cb08db5366e622a01fd001e583917eb9f1c bookmarks default/scratch/serverbook
|
|
$ hg pull
|
|
pulling from ssh://user@dummy/repo
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 2 changesets with 2 changes to 2 files
|
|
$ hg dbsh -c 'ui.write("".join(sorted(repo.svfs.readutf8("remotenames").splitlines(True))))'
|
|
620472ff5c0c4a560a3ffd98c07f0c9ecad33f64 bookmarks default/scratch/mybranch
|
|
64d557aa86fdc42384b193f7eab99059da84f1f0 bookmarks default/scratch/serverbook
|
|
$ cd ..
|
|
|
|
Push from another client, make sure that push updates other remote bookmarks as well (like "serverbook")
|
|
$ cd client2
|
|
$ hg up scratch/serverbook
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ mkcommit newscratch
|
|
$ hg push -r . --to scratch/secondbranch --create
|
|
pushing to ssh://user@dummy/repo
|
|
searching for changes
|
|
remote: pushing 1 commit:
|
|
remote: 36667a3f76e4 newscratch
|
|
$ hg book --remote
|
|
default/scratch/mybranch 620472ff5c0c
|
|
default/scratch/secondbranch 36667a3f76e4
|
|
default/scratch/serverbook 64d557aa86fd
|
|
$ hg book
|
|
no bookmarks set
|
|
|
|
Try to push with remotebookmarks disabled
|
|
$ hg push --config remotenames.bookmarks=False -r . --to scratch/secondbranch
|
|
pushing to ssh://user@dummy/repo
|
|
searching for changes
|
|
remote: pushing 1 commit:
|
|
remote: 36667a3f76e4 newscratch
|
|
$ hg book
|
|
no bookmarks set
|
|
|
|
Create new bookmark and try to pull it
|
|
$ mkcommit newcommittoupdate1
|
|
$ hg push -q -r . --to scratch/branchtoupdateto1 --create
|
|
$ hg up -q ".^"
|
|
$ mkcommit newcommittoupdate2
|
|
$ hg push -q -r . --to scratch/branchtoupdateto2 --create
|
|
$ hg up -q ".^"
|
|
$ mkcommit newcommittopull
|
|
$ hg push -q -r . --to scratch/branchtopull --create
|
|
$ cd ../client
|
|
$ hg up default/scratch/branchtoupdateto1
|
|
pulling 'default/scratch/branchtoupdateto1', 'scratch/branchtoupdateto1' from 'ssh://user@dummy/repo'
|
|
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
$ cat >> $HGRCPATH << EOF
|
|
> [remotenames]
|
|
> hoist=remote
|
|
> rename.default=remote
|
|
> EOF
|
|
|
|
$ hg up remote/scratch/branchtoupdateto2
|
|
pulling 'remote/scratch/branchtoupdateto2', 'scratch/branchtoupdateto2' from 'ssh://user@dummy/repo'
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
Test hiding of a bookmark
|
|
$ enable amend
|
|
$ setconfig remotenames.selectivepull=True
|
|
$ hg book --list-subscriptions
|
|
default/scratch/branchtoupdateto1 2885148f6198
|
|
default/scratch/mybranch 620472ff5c0c
|
|
default/scratch/serverbook 64d557aa86fd
|
|
remote/scratch/branchtoupdateto1 2885148f6198
|
|
remote/scratch/branchtoupdateto2 1f558bd20eaa
|
|
remote/scratch/mybranch 620472ff5c0c
|
|
remote/scratch/serverbook 64d557aa86fd
|
|
$ hg hide .
|
|
hiding commit 1f558bd20eaa "newcommittoupdate2"
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
working directory now at 36667a3f76e4
|
|
1 changeset hidden
|
|
unsubscribing remote bookmark "remote/scratch/branchtoupdateto2"
|
|
1 remote bookmark unsubscribed
|
|
$ hg book --list-subscriptions
|
|
default/scratch/branchtoupdateto1 2885148f6198
|
|
default/scratch/mybranch 620472ff5c0c
|
|
default/scratch/serverbook 64d557aa86fd
|
|
remote/scratch/branchtoupdateto1 2885148f6198
|
|
remote/scratch/mybranch 620472ff5c0c
|
|
remote/scratch/serverbook 64d557aa86fd
|