Skip to content
Snippets Groups Projects
Commit af4d66e2 authored by David M. Carr's avatar David M. Carr
Browse files

pull: don't pull tags as bookmarks

This should fix a bug introduced by 4f4ab2d89375 which caused all tags to be
duplicated as bookmarks on pull.

Test coverage has been added for pull to allow verifying the fix.
parent 64479303
No related branches found
No related tags found
No related merge requests found
...@@ -62,5 +62,5 @@ ...@@ -62,5 +62,5 @@
newcommits = [bin(c) for c in commits] newcommits = [bin(c) for c in commits]
b = overlayrepo(handler, newcommits, refs) b = overlayrepo(handler, newcommits, refs)
stripped_refs = dict([ stripped_refs = dict([
(ref[ref.find('/', ref.find('/')+1)+1:], b.node(refs[ref])) (ref[ref.find('refs/heads/')+11:], b.node(refs[ref]))
for ref in refs.keys() for ref in refs.keys()
...@@ -66,5 +66,5 @@ ...@@ -66,5 +66,5 @@
for ref in refs.keys() for ref in refs.keys()
if ref.find('/') != -1]) if ref.startswith('refs/heads/')])
return stripped_refs return stripped_refs
return {} return {}
......
# Fails for some reason, need to investigate
# $ "$TESTDIR/hghave" git || exit 80
bail if the user does not have dulwich
$ python -c 'import dulwich, dulwich.repo' || exit 80
$ echo "[extensions]" >> $HGRCPATH
$ echo "hggit=$(echo $(dirname $TESTDIR))/hggit" >> $HGRCPATH
$ echo 'hgext.graphlog =' >> $HGRCPATH
$ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
$ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
$ GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE
$ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
$ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
$ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
$ count=10
$ commit()
> {
> GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000"
> GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
> git commit "$@" >/dev/null 2>/dev/null || echo "git commit error"
> count=`expr $count + 1`
> }
set up a git repo with some commits, branches and a tag
$ git init -q gitrepo
$ cd gitrepo
$ echo alpha > alpha
$ git add alpha
$ commit -m 'add alpha'
$ git tag t_alpha
$ git checkout -qb beta
$ echo beta > beta
$ git add beta
$ commit -m 'add beta'
$ cd ..
clone a tag (ideally we'd want to pull it, but that seems broken for now)
# $ hg init hgrepo
# $ echo "[paths]" >> hgrepo/.hg/hgrc
# $ echo "default=$TESTTMP/gitrepo" >> hgrepo/.hg/hgrc
# $ hg -R hgrepo pull -r t_alpha
$ hg clone -r t_alpha gitrepo hgrepo
importing git objects into hg
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R hgrepo log --graph
@ changeset: 0:3442585be8a6
bookmark: master
tag: default/master
tag: t_alpha
tag: tip
user: test <test@example.org>
date: Mon Jan 01 00:00:10 2007 +0000
summary: add alpha
pull a branch
$ hg -R hgrepo pull -r beta
pulling from $TESTTMP/gitrepo
importing git objects into hg
(run 'hg update' to get a working copy)
$ hg -R hgrepo log --graph
o changeset: 1:7bcd915dc873
| bookmark: beta
| tag: default/beta
| tag: tip
| user: test <test@example.org>
| date: Mon Jan 01 00:00:11 2007 +0000
| summary: add beta
|
@ changeset: 0:3442585be8a6
bookmark: master
tag: default/master
tag: t_alpha
user: test <test@example.org>
date: Mon Jan 01 00:00:10 2007 +0000
summary: add alpha
add another commit and tag to the git repo
$ cd gitrepo
$ git tag t_beta
$ git checkout -q master
$ echo gamma > gamma
$ git add gamma
$ commit -m 'add gamma'
$ cd ..
pull everything else
$ hg -R hgrepo pull
pulling from $TESTTMP/gitrepo
importing git objects into hg
(run 'hg update' to get a working copy)
$ hg -R hgrepo log --graph
o changeset: 2:37c124f2d0a0
| bookmark: master
| tag: default/master
| tag: tip
| parent: 0:3442585be8a6
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: add gamma
|
| o changeset: 1:7bcd915dc873
|/ bookmark: beta
| tag: default/beta
| tag: t_beta
| user: test <test@example.org>
| date: Mon Jan 01 00:00:11 2007 +0000
| summary: add beta
|
@ changeset: 0:3442585be8a6
tag: t_alpha
user: test <test@example.org>
date: Mon Jan 01 00:00:10 2007 +0000
summary: add alpha
add a merge to the git repo
$ cd gitrepo
$ git merge beta
Merge made by the 'recursive' strategy.
beta | 1 +
1 file changed, 1 insertion(+)
create mode 100644 beta
$ cd ..
pull the merge
$ hg -R hgrepo pull
pulling from $TESTTMP/gitrepo
importing git objects into hg
(run 'hg update' to get a working copy)
$ hg -R hgrepo log --graph
o changeset: 3:b8668fddf56c
|\ bookmark: master
| | tag: default/master
| | tag: tip
| | parent: 2:37c124f2d0a0
| | parent: 1:7bcd915dc873
| | user: test <test@example.org>
| | date: Mon Jan 01 00:00:12 2007 +0000
| | summary: Merge branch 'beta'
| |
| o changeset: 2:37c124f2d0a0
| | parent: 0:3442585be8a6
| | user: test <test@example.org>
| | date: Mon Jan 01 00:00:12 2007 +0000
| | summary: add gamma
| |
o | changeset: 1:7bcd915dc873
|/ bookmark: beta
| tag: default/beta
| tag: t_beta
| user: test <test@example.org>
| date: Mon Jan 01 00:00:11 2007 +0000
| summary: add beta
|
@ changeset: 0:3442585be8a6
tag: t_alpha
user: test <test@example.org>
date: Mon Jan 01 00:00:10 2007 +0000
summary: add alpha
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