##// END OF EJS Templates
Mention 'hg update' to switch branches in help for branch and branches.
Mention 'hg update' to switch branches in help for branch and branches.

File last commit:

r5380:a5a7f7fd default
r5999:d1fe1a4e default
Show More
test-convert-git
132 lines | 2.8 KiB | text/plain | TextLexer
Patrick Mezard
Test git repository conversion
r5219 #!/bin/sh
"$TESTDIR/hghave" git || exit 80
echo "[extensions]" >> $HGRCPATH
echo "convert=" >> $HGRCPATH
Alexis S. L. Carvalho
convert_git: add --filemap support
r5380 echo 'hgext.graphlog =' >> $HGRCPATH
Patrick Mezard
Test git repository conversion
r5219
Alexis S. L. Carvalho
convert_git: avoid returning two entries for the same file in getchanges...
r5335 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`
}
Patrick Mezard
Test git repository conversion
r5219 mkdir git-repo
cd git-repo
Thomas Arendsen Hein
Make test-convert-git compatible with other git versions (tested with 1.4.4.3)
r5231 git init-db >/dev/null 2>/dev/null
Patrick Mezard
Test git repository conversion
r5219 echo a > a
Patrick Mezard
Test mercurial convert sink removes empty directories.
r5345 mkdir d
echo b > d/b
git add a d
commit -a -m t1
# Remove the directory, then try to replace it with a file
# (issue 754)
Thomas Arendsen Hein
test-convert-git: support older git client (1.4.4.4)
r5369 git rm -f d/b
Patrick Mezard
Test mercurial convert sink removes empty directories.
r5345 commit -m t2
echo d > d
git add d
commit -m t3
Alexis S. L. Carvalho
convert_git: avoid returning two entries for the same file in getchanges...
r5335
Patrick Mezard
Test git repository conversion
r5219 echo b >> a
Patrick Mezard
Test mercurial convert sink removes empty directories.
r5345 commit -a -m t4.1
Alexis S. L. Carvalho
convert_git: avoid returning two entries for the same file in getchanges...
r5335
git checkout -b other HEAD^ >/dev/null 2>/dev/null
echo c > a
echo a >> a
Patrick Mezard
Test mercurial convert sink removes empty directories.
r5345 commit -a -m t4.2
Alexis S. L. Carvalho
convert_git: avoid returning two entries for the same file in getchanges...
r5335
git checkout master >/dev/null 2>/dev/null
git pull --no-commit . other > /dev/null 2>/dev/null
commit -m 'Merge branch other'
Patrick Mezard
Test git repository conversion
r5219 cd ..
Alexis S. L. Carvalho
convert_git: avoid returning two entries for the same file in getchanges...
r5335 hg convert --datesort git-repo
Patrick Mezard
Test git repository conversion
r5219
Alexis S. L. Carvalho
convert_git: avoid returning two entries for the same file in getchanges...
r5335 hg -R git-repo-hg tip -v
Alexis S. L. Carvalho
convert_git: add --filemap support
r5380
count=10
mkdir git-repo2
cd git-repo2
git init-db >/dev/null 2>/dev/null
echo foo > foo
git add foo
commit -a -m 'add foo'
echo >> foo
commit -a -m 'change foo'
git checkout -b Bar HEAD^ >/dev/null 2>/dev/null
echo quux >> quux
git add quux
commit -a -m 'add quux'
echo bar > bar
git add bar
commit -a -m 'add bar'
git checkout -b Baz HEAD^ >/dev/null 2>/dev/null
echo baz > baz
git add baz
commit -a -m 'add baz'
git checkout master >/dev/null 2>/dev/null
git pull --no-commit . Bar Baz > /dev/null 2>/dev/null
commit -m 'Octopus merge'
echo bar >> bar
commit -a -m 'change bar'
git checkout -b Foo HEAD^ >/dev/null 2>/dev/null
echo >> foo
commit -a -m 'change foo'
git checkout master >/dev/null 2>/dev/null
git pull --no-commit -s ours . Foo > /dev/null 2>/dev/null
commit -m 'Discard change to foo'
cd ..
glog()
{
hg glog --template '#rev# "#desc|firstline#" files: #files#\n' "$@"
}
splitrepo()
{
msg="$1"
files="$2"
opts=$3
echo "% $files: $msg"
prefix=`echo "$files" | sed -e 's/ /-/g'`
fmap="$prefix.fmap"
repo="$prefix.repo"
for i in $files; do
echo "include $i" >> "$fmap"
done
hg -q convert $opts --filemap "$fmap" --datesort git-repo2 "$repo"
glog -R "$repo"
hg -R "$repo" manifest --debug
}
echo '% full conversion'
hg -q convert --datesort git-repo2 fullrepo
glog -R fullrepo
hg -R fullrepo manifest --debug
splitrepo 'octopus merge' 'foo bar baz'
splitrepo 'only some parents of an octopus merge; "discard" a head' 'foo baz quux'