mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
479bebaa1f
These test changes should make it easier to see what's still broken in 1.8 and 1.9. Ideally, we'll drop pre-1.8 versions soon and rip most of this out, but I'm not sure how realistic that is in the short term.
110 lines
2.6 KiB
Bash
Executable File
110 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# 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
|
|
|
|
# bail early if the user is already running git-daemon
|
|
echo hi | nc localhost 9418 2>/dev/null && exit 80
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
echo "hggit=$(echo $(dirname $(dirname $0)))/hggit" >> $HGRCPATH
|
|
echo 'hgext.graphlog =' >> $HGRCPATH
|
|
echo 'hgext.bookmarks =' >> $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 | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')"
|
|
|
|
echo alpha > alpha
|
|
git add alpha
|
|
commit -m "add alpha"
|
|
git checkout -b not-master 2>&1 | sed s/\'/\"/g
|
|
|
|
# dulwich does not presently support local git repos, workaround
|
|
cd ..
|
|
git daemon --base-path="$(pwd)"\
|
|
--listen=localhost\
|
|
--export-all\
|
|
--pid-file="$DAEMON_PIDS" \
|
|
--detach --reuseaddr \
|
|
--enable=receive-pack
|
|
|
|
hg clone git://localhost/gitrepo hgrepo | grep -v '^updating'
|
|
|
|
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
|
|
|
|
cd ..
|
|
|
|
echo % should have two different branches
|
|
cd gitrepo
|
|
git branch -v
|
|
|
|
echo % some more work on master from git
|
|
git checkout master 2>&1 | sed s/\'/\"/g
|
|
echo delta > delta
|
|
git add delta
|
|
commit -m "add delta"
|
|
git checkout not-master 2>&1 | sed s/\'/\"/g
|
|
|
|
cd ..
|
|
|
|
cd hgrepo
|
|
echo % this should fail
|
|
hg push -r master
|
|
|
|
echo % ... even with -f
|
|
hg push -fr master
|
|
|
|
hg pull
|
|
# 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
|
|
hg log -r master | grep -v ': *master'
|
|
hg log -r default/master
|
|
|
|
echo % this should also fail
|
|
hg push -r master
|
|
|
|
echo % ... but succeed with -f
|
|
hg push -fr master
|
|
|
|
cd ..
|