test-journal-share.t
153 lines
| 4.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-journal-share.t
Martijn Pieters
|
r29503 | Journal extension test: tests the share extension support | ||
$ cat >> testmocks.py << EOF | ||||
> # mock out util.getuser() and util.makedate() to supply testable values | ||||
> import os | ||||
> from mercurial import util | ||||
> def mockgetuser(): | ||||
> return 'foobar' | ||||
> | ||||
> def mockmakedate(): | ||||
> filename = os.path.join(os.environ['TESTTMP'], 'testtime') | ||||
> try: | ||||
> with open(filename, 'rb') as timef: | ||||
> time = float(timef.read()) + 1 | ||||
> except IOError: | ||||
> time = 0.0 | ||||
> with open(filename, 'wb') as timef: | ||||
> timef.write(str(time)) | ||||
> return (time, 0) | ||||
> | ||||
> util.getuser = mockgetuser | ||||
> util.makedate = mockmakedate | ||||
> EOF | ||||
$ cat >> $HGRCPATH << EOF | ||||
> [extensions] | ||||
> journal= | ||||
> share= | ||||
> testmocks=`pwd`/testmocks.py | ||||
> [remotenames] | ||||
> rename.default=remote | ||||
> EOF | ||||
$ hg init repo | ||||
$ cd repo | ||||
$ hg bookmark bm | ||||
$ touch file0 | ||||
$ hg commit -Am 'file0 added' | ||||
adding file0 | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
5640b525682e . commit -Am 'file0 added' | ||||
5640b525682e bm commit -Am 'file0 added' | ||||
A shared working copy initially receives the same bookmarks and working copy | ||||
$ cd .. | ||||
$ hg share repo shared1 | ||||
updating working directory | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd shared1 | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
5640b525682e . share repo shared1 | ||||
unless you explicitly share bookmarks | ||||
$ cd .. | ||||
$ hg share --bookmarks repo shared2 | ||||
updating working directory | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd shared2 | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
5640b525682e . share --bookmarks repo shared2 | ||||
5640b525682e bm commit -Am 'file0 added' | ||||
Moving the bookmark in the original repository is only shown in the repository | ||||
that shares bookmarks | ||||
$ cd ../repo | ||||
$ touch file1 | ||||
$ hg commit -Am "file1 added" | ||||
adding file1 | ||||
$ cd ../shared1 | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
5640b525682e . share repo shared1 | ||||
$ cd ../shared2 | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
6432d239ac5d bm commit -Am 'file1 added' | ||||
5640b525682e . share --bookmarks repo shared2 | ||||
5640b525682e bm commit -Am 'file0 added' | ||||
But working copy changes are always 'local' | ||||
$ cd ../repo | ||||
$ hg up 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
(leaving bookmark bm) | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
5640b525682e . up 0 | ||||
6432d239ac5d . commit -Am 'file1 added' | ||||
6432d239ac5d bm commit -Am 'file1 added' | ||||
5640b525682e . commit -Am 'file0 added' | ||||
5640b525682e bm commit -Am 'file0 added' | ||||
$ cd ../shared2 | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
6432d239ac5d bm commit -Am 'file1 added' | ||||
5640b525682e . share --bookmarks repo shared2 | ||||
5640b525682e bm commit -Am 'file0 added' | ||||
$ hg up tip | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg up 0 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg journal | ||||
previous locations of '.': | ||||
5640b525682e up 0 | ||||
6432d239ac5d up tip | ||||
5640b525682e share --bookmarks repo shared2 | ||||
Unsharing works as expected; the journal remains consistent | ||||
$ cd ../shared1 | ||||
$ hg unshare | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
5640b525682e . share repo shared1 | ||||
$ cd ../shared2 | ||||
$ hg unshare | ||||
$ hg journal --all | ||||
previous locations of the working copy and bookmarks: | ||||
5640b525682e . up 0 | ||||
6432d239ac5d . up tip | ||||
6432d239ac5d bm commit -Am 'file1 added' | ||||
5640b525682e . share --bookmarks repo shared2 | ||||
5640b525682e bm commit -Am 'file0 added' | ||||
New journal entries in the source repo no longer show up in the other working copies | ||||
$ cd ../repo | ||||
$ hg bookmark newbm -r tip | ||||
$ hg journal newbm | ||||
previous locations of 'newbm': | ||||
6432d239ac5d bookmark newbm -r tip | ||||
$ cd ../shared2 | ||||
$ hg journal newbm | ||||
previous locations of 'newbm': | ||||
no recorded locations | ||||
This applies for both directions | ||||
$ hg bookmark shared2bm -r tip | ||||
$ hg journal shared2bm | ||||
previous locations of 'shared2bm': | ||||
6432d239ac5d bookmark shared2bm -r tip | ||||
$ cd ../repo | ||||
$ hg journal shared2bm | ||||
previous locations of 'shared2bm': | ||||
no recorded locations | ||||