Mercurial > hg > hg-git
view tests/test-push.t @ 550:4bc39fd24db3
push: change "no changes" default output to match normal mercurial
The output for "hg push" when there were no changes didn't quite match between
Mercurial with and without Hg-Git, so I changed the behavior to bring it into
synch. The existing "creating and sending data" message was changed to be
included if --verbose is specified.
author | David M. Carr <david@carrclan.us> |
---|---|
date | Sun, 07 Oct 2012 20:11:27 -0400 |
parents | 7edcbdd2ef2f |
children | 06a29fdd52a7 |
line wrap: on
line source
# 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` > } $ hgcommit() > { > HGDATE="2007-01-01 00:00:$count +0000" > hg commit -d "$HGDATE" "$@" >/dev/null 2>/dev/null || echo "hg commit error" > count=`expr $count + 1` > } $ mkdir gitrepo $ cd gitrepo $ git init Initialized empty Git repository in $TESTTMP/gitrepo/.git/ $ echo alpha > alpha $ git add alpha $ commit -m "add alpha" $ git checkout -b not-master 2>&1 | sed s/\'/\"/g Switched to a new branch "not-master" $ cd .. $ hg clone gitrepo hgrepo | grep -v '^updating' importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd hgrepo $ echo beta > beta $ hg add beta $ hgcommit -m 'add beta' $ echo gamma > gamma $ hg add gamma $ hgcommit -m 'add gamma' $ hg book -r 1 beta $ hg push -r beta pushing to $TESTTMP/gitrepo exporting hg objects to git searching for changes default::refs/heads/beta => GIT:cffa0e8d $ cd .. $ echo % should have two different branches % should have two different branches $ cd gitrepo $ git branch -v beta cffa0e8 add beta master 7eeab2e add alpha * not-master 7eeab2e add alpha $ echo % some more work on master from git % some more work on master from git $ git checkout master 2>&1 | sed s/\'/\"/g Switched to branch "master" $ echo delta > delta $ git add delta $ commit -m "add delta" $ git checkout not-master 2>&1 | sed s/\'/\"/g Switched to branch "not-master" $ cd .. $ cd hgrepo $ echo % this should fail % this should fail $ hg push -r master pushing to $TESTTMP/gitrepo searching for changes abort: refs/heads/master changed on the server, please pull and merge before pushing [255] $ echo % ... even with -f % ... even with -f $ hg push -fr master pushing to $TESTTMP/gitrepo searching for changes abort: refs/heads/master changed on the server, please pull and merge before pushing [255] $ hg pull pulling from $TESTTMP/gitrepo importing git objects into hg (run 'hg update' to get a working copy) TODO shouldn't need to do this since we're (in theory) pushing master explicitly, which should not implicitly also push the not-master ref. $ hg book not-master -r default/not-master --force $ echo % master and default/master should be diferent % master and default/master should be diferent $ hg log -r master | grep -v ': *master' changeset: 2:72f56395749d user: test date: Mon Jan 01 00:00:12 2007 +0000 summary: add gamma $ hg log -r default/master changeset: 3:1436150b86c2 tag: default/master tag: tip parent: 0:3442585be8a6 user: test <test@example.org> date: Mon Jan 01 00:00:13 2007 +0000 summary: add delta $ echo % this should also fail % this should also fail $ hg push -r master pushing to $TESTTMP/gitrepo searching for changes abort: pushing refs/heads/master overwrites 72f56395749d [255] $ echo % ... but succeed with -f % ... but succeed with -f $ hg push -fr master pushing to $TESTTMP/gitrepo searching for changes default::refs/heads/master => GIT:cc119202 $ echo % this should fail, no changes to push % this should fail, no changes to push The exit code for this was broken in Mercurial (incorrectly returning 0) until issue3228 was fixed in 2.1 $ hg push -r master && false pushing to $TESTTMP/gitrepo searching for changes no changes found [1] $ cd ..