Skip to content
Snippets Groups Projects
Commit 3f6a4579f803 authored by David Soria Parra's avatar David Soria Parra
Browse files

hg: add support for cloning bookmarks

parent 395a84f78736
No related branches found
No related tags found
No related merge requests found
......@@ -9,7 +9,7 @@
from i18n import _
from lock import release
from node import hex, nullid, nullrev, short
import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo
import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo, bookmarks
import lock, util, extensions, error, encoding, node
import cmdutil, discovery, url
import merge as mergemod
......@@ -366,6 +366,21 @@
dest_repo.ui.status(_("updating to branch %s\n") % bn)
_update(dest_repo, uprev)
# clone all bookmarks
if dest_repo.local() and src_repo.capable("pushkey"):
rb = src_repo.listkeys('bookmarks')
for k, n in rb.iteritems():
try:
m = dest_repo.lookup(n)
dest_repo._bookmarks[k] = m
except:
pass
if rb:
bookmarks.write(dest_repo)
elif src_repo.local() and dest_repo.capable("pushkey"):
for k, n in src_repo._bookmarks.iteritems():
dest_repo.pushkey('bookmarks', k, '', hex(n))
return src_repo, dest_repo
finally:
release(src_lock, dest_lock)
......
......@@ -176,5 +176,19 @@
no changes found
not updating divergent bookmark X
importing bookmark Z
$ hg clone http://localhost:$HGPORT/ cloned-bookmarks
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files (+1 heads)
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks bookmarks
X 1:9b140be10808
Y 0:4e3505fd9583
Z 2:0d2164f0ce0d
foo -1:000000000000
foobar -1:000000000000
$ kill `cat ../hg.pid`
......@@ -244,3 +244,47 @@
$ hg id
db815d6d32e6 tip Y/Z/x y
test clone
$ hg bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
* Z 2:db815d6d32e6
x y 2:db815d6d32e6
$ hg clone . cloned-bookmarks
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
x y 2:db815d6d32e6
test clone with pull protocol
$ hg clone --pull . cloned-bookmarks-pull
requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files (+1 heads)
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks-pull bookmarks
X2 1:925d80f479bb
Y 2:db815d6d32e6
Z 2:db815d6d32e6
x y 2:db815d6d32e6
test clone with a specific revision
$ hg clone -r 925d80 . cloned-bookmarks-rev
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R cloned-bookmarks-rev bookmarks
X2 1:925d80f479bb
......@@ -199,3 +199,17 @@
store
fncache
dotencode
clone bookmarks
$ hg -R local bookmark test
$ hg -R local bookmarks
* test 0:08b9e9f63b32
$ hg clone -e "python ./dummyssh" local ssh://user@dummy/remote-bookmarks
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
$ hg -R remote-bookmarks bookmarks
test 0:08b9e9f63b32
......@@ -263,6 +263,22 @@
summary: z
clone bookmarks
$ hg -R ../remote bookmark test
$ hg -R ../remote bookmarks
* test 2:6c0482d977a3
$ hg clone -e "python ../dummyssh" ssh://user@dummy/remote local-bookmarks
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 5 changes to 4 files (+1 heads)
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R local-bookmarks bookmarks
test 2:6c0482d977a3
passwords in ssh urls are not supported
$ hg push ssh://user:erroneouspwd@dummy/remote
......@@ -289,3 +305,4 @@
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
Got arguments 1:user@dummy 2:hg -R remote serve --stdio
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment