mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
f89059b98d
Without this change, the test is skipped for modern versions of Mercurial with minor version less than 5, despite the test actually passing for said versions.
97 lines
2.3 KiB
Bash
Executable File
97 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Fails for some reason, need to investigate
|
|
# "$TESTDIR/hghave" git || exit 80
|
|
|
|
# this test is busted on hg < 1.5. I'm not sure how to fix it.
|
|
cat > tmp.py <<EOF
|
|
import sys
|
|
v = sys.stdin.read().strip()[:-1]
|
|
if v[1] == '.' and ((int(v[0]) == 1 and int(v[2]) > 4) or int(v[0]) > 1):
|
|
sys.exit(0)
|
|
sys.exit(1)
|
|
EOF
|
|
|
|
hg version | grep version | sed 's/.*(version //' | python tmp.py || 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
|
|
|
|
|
|
cat >> $HGRCPATH <<EOF
|
|
[extensions]
|
|
graphlog=
|
|
bookmarks=
|
|
mq=
|
|
EOF
|
|
echo "hggit=$(echo $(dirname $(dirname $0)))/hggit" >> $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`
|
|
}
|
|
|
|
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 tag alpha
|
|
|
|
git checkout -b beta 2>&1 | sed s/\'/\"/g
|
|
echo beta > beta
|
|
git add beta
|
|
commit -m 'add beta'
|
|
|
|
|
|
cd ..
|
|
git daemon --base-path="$(pwd)"\
|
|
--listen=localhost\
|
|
--export-all\
|
|
--pid-file="$DAEMON_PIDS" \
|
|
--detach --reuseaddr
|
|
|
|
echo % clone a tag
|
|
hg clone -r alpha git://localhost/gitrepo hgrepo-a | grep -v '^updating'
|
|
cd hgrepo-a
|
|
hg log --graph | egrep -v ': *(beta|master)'
|
|
|
|
cd ..
|
|
echo % clone a branch
|
|
hg clone -r beta git://localhost/gitrepo hgrepo-b | grep -v '^updating'
|
|
cd hgrepo-b
|
|
hg log --graph | egrep -v ': *(beta|master)'
|
|
cd ..
|
|
|
|
cd gitrepo
|
|
echo beta line 2 >> beta
|
|
git add beta
|
|
commit -m 'add to beta'
|
|
|
|
cd ..
|
|
cd hgrepo-b
|
|
hg strip tip 2>&1 | grep -v saving | grep -v backup
|
|
hg pull -r beta
|
|
hg git-cleanup
|
|
echo % pull works after \'hg git-cleanup\'
|
|
hg pull -r beta
|
|
hg log --graph | egrep -v ': *(beta|master)'
|
|
|
|
cd ..
|