##// END OF EJS Templates
remotenames: add functionality to store remotenames under .hg/hgremotenames/...
remotenames: add functionality to store remotenames under .hg/hgremotenames/ This patch moves the functionality from remotenames extension to store remotenames to core. Storage format used by remotenames extension: A single file `.hg/remotenames` with an entry in each line where each line is of format: `node nametype remotepath/name` where nametype is either 'bookmarks' or 'branches'. This was not the best way to store data, so while moving to core the storage format was changed but yet not the final format. The storage format used by core after this patch will be: * A file for each type of name i.e. bookmarks and branches in .hg/remotenames/ directory * A version number on the top of the file. The version for current format is 0. * An entry in each line where each line is of the format `node\0remotepath\0name` The logic to sync with existing remotenames file and saving journals and other related things will be moved to core in next patches incrementally. Thanks to Ryan, Augie and Durham for suggestions on storage format. Previously reviewed as D939. Differential Revision: https://phab.mercurial-scm.org/D1548

File last commit:

r35237:8df8ce2c default
r35237:8df8ce2c default
Show More
test-remotenames.t
75 lines | 1.8 KiB | text/troff | Tads3Lexer
Testing the functionality to pull remotenames
=============================================
$ cat >> $HGRCPATH << EOF
> [alias]
> glog = log -G -T '{rev}:{node|short} {desc}'
> EOF
Making a server repo
--------------------
$ hg init server
$ cd server
$ for ch in {a..h}; do echo "foo" >> $ch; hg ci -Aqm "Added "$ch; done
$ hg glog
@ 7:ec2426147f0e Added h
|
o 6:87d6d6676308 Added g
|
o 5:825660c69f0c Added f
|
o 4:aa98ab95a928 Added e
|
o 3:62615734edd5 Added d
|
o 2:28ad74487de9 Added c
|
o 1:29becc82797a Added b
|
o 0:18d04c59bb5d Added a
$ hg bookmark -r 3 foo
$ hg bookmark -r 6 bar
$ hg up 4
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ hg branch wat
marked working directory as branch wat
(branches are permanent and global, did you want a bookmark?)
$ echo foo >> bar
$ hg ci -Aqm "added bar"
Making a client repo
--------------------
$ cd ..
$ hg init client
$ cd client
$ cat >> .hg/hgrc << EOF
> [experimental]
> remotenames = True
> EOF
$ hg pull ../server/
pulling from ../server/
requesting all changes
adding changesets
adding manifests
adding file changes
added 9 changesets with 9 changes to 9 files (+1 heads)
adding remote bookmark bar
adding remote bookmark foo
new changesets 18d04c59bb5d:3e1487808078
(run 'hg heads' to see heads)
$ cat .hg/remotenames/bookmarks
0
87d6d66763085b629e6d7ed56778c79827273022\x00file:$TESTTMP/server\x00bar (esc)
62615734edd52f06b6fb9c2beb429e4fe30d57b8\x00file:$TESTTMP/server\x00foo (esc)
$ cat .hg/remotenames/branches
0
ec2426147f0e39dbc9cef599b066be6035ce691d\x00file:$TESTTMP/server\x00default (esc)
3e1487808078543b0af6d10dadf5d46943578db0\x00file:$TESTTMP/server\x00wat (esc)