Mercurial > hg
diff tests/test-convert-git.t @ 23048:ee5f834077be stable
merge default into stable for 3.2 freeze
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 18 Oct 2014 18:04:31 -0500 |
parents | c63a09b6b337 |
children | f7c0556d22d7 |
line wrap: on
line diff
--- a/tests/test-convert-git.t Fri Oct 10 11:38:00 2014 -0500 +++ b/tests/test-convert-git.t Sat Oct 18 18:04:31 2014 -0500 @@ -1,5 +1,5 @@ +#require git - $ "$TESTDIR/hghave" git || exit 80 $ echo "[core]" >> $HOME/.gitconfig $ echo "autocrlf = false" >> $HOME/.gitconfig $ echo "[core]" >> $HOME/.gitconfig @@ -33,8 +33,7 @@ $ git add a d $ commit -a -m t1 -Remove the directory, then try to replace it with a file -(issue 754) +Remove the directory, then try to replace it with a file (issue754) $ git rm -f d/b rm 'd/b' @@ -52,7 +51,43 @@ $ git pull --no-commit . other > /dev/null 2>/dev/null $ commit -m 'Merge branch other' $ cd .. - $ hg convert --datesort git-repo + $ hg convert --config extensions.progress= --config progress.assume-tty=1 \ + > --config progress.delay=0 --config progress.changedelay=0 \ + > --config progress.refresh=0 --config progress.width=60 \ + > --datesort git-repo + \r (no-eol) (esc) + scanning [======> ] 1/6\r (no-eol) (esc) + scanning [=============> ] 2/6\r (no-eol) (esc) + scanning [=====================> ] 3/6\r (no-eol) (esc) + scanning [============================> ] 4/6\r (no-eol) (esc) + scanning [===================================> ] 5/6\r (no-eol) (esc) + scanning [===========================================>] 6/6\r (no-eol) (esc) + \r (no-eol) (esc) + \r (no-eol) (esc) + converting [ ] 0/6\r (no-eol) (esc) + getting files [==================> ] 1/2\r (no-eol) (esc) + getting files [======================================>] 2/2\r (no-eol) (esc) + \r (no-eol) (esc) + \r (no-eol) (esc) + converting [======> ] 1/6\r (no-eol) (esc) + getting files [======================================>] 1/1\r (no-eol) (esc) + \r (no-eol) (esc) + \r (no-eol) (esc) + converting [=============> ] 2/6\r (no-eol) (esc) + getting files [======================================>] 1/1\r (no-eol) (esc) + \r (no-eol) (esc) + \r (no-eol) (esc) + converting [====================> ] 3/6\r (no-eol) (esc) + getting files [======================================>] 1/1\r (no-eol) (esc) + \r (no-eol) (esc) + \r (no-eol) (esc) + converting [===========================> ] 4/6\r (no-eol) (esc) + getting files [======================================>] 1/1\r (no-eol) (esc) + \r (no-eol) (esc) + \r (no-eol) (esc) + converting [==================================> ] 5/6\r (no-eol) (esc) + getting files [======================================>] 1/1\r (no-eol) (esc) + \r (no-eol) (esc) assuming destination git-repo-hg initializing destination git-repo-hg repository scanning source... @@ -206,12 +241,63 @@ 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo 88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux -test binary conversion (issue 1359) +test importing git renames and copies + + $ cd git-repo2 + $ git mv foo foo-renamed +since bar is not touched in this commit, this copy will not be detected + $ cp bar bar-copied + $ cp baz baz-copied + $ cp baz baz-copied2 + $ echo baz2 >> baz + $ git add bar-copied baz-copied baz-copied2 + $ commit -a -m 'rename and copy' + $ cd .. + +input validation + $ hg convert --config convert.git.similarity=foo --datesort git-repo2 fullrepo + abort: convert.git.similarity is not an integer ('foo') + [255] + $ hg convert --config convert.git.similarity=-1 --datesort git-repo2 fullrepo + abort: similarity must be between 0 and 100 + [255] + $ hg convert --config convert.git.similarity=101 --datesort git-repo2 fullrepo + abort: similarity must be between 0 and 100 + [255] + $ hg -q convert --config convert.git.similarity=100 --datesort git-repo2 fullrepo + $ hg -R fullrepo status -C --change master + M baz + A bar-copied + A baz-copied + baz + A baz-copied2 + baz + A foo-renamed + foo + R foo + + $ cd git-repo2 + $ echo bar2 >> bar + $ commit -a -m 'change bar' + $ cp bar bar-copied2 + $ git add bar-copied2 + $ commit -a -m 'copy with no changes' + $ cd .. + + $ hg -q convert --config convert.git.similarity=100 \ + > --config convert.git.findcopiesharder=1 --datesort git-repo2 fullrepo + $ hg -R fullrepo status -C --change master + A bar-copied2 + bar + +test binary conversion (issue1359) + + $ count=19 $ mkdir git-repo3 $ cd git-repo3 $ git init-db >/dev/null 2>/dev/null - $ python -c 'file("b", "wb").write("".join([chr(i) for i in range(256)])*16)' + $ $PYTHON -c 'file("b", "wb").write("".join([chr(i) for i in range(256)])*16)' $ git add b $ commit -a -m addbinary $ cd .. @@ -228,7 +314,7 @@ $ cd git-repo3-hg $ hg up -C 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ python -c 'print len(file("b", "rb").read())' + $ $PYTHON -c 'print len(file("b", "rb").read())' 4096 $ cd .. @@ -363,6 +449,29 @@ $ cd ../.. +make sure rename detection doesn't break removing and adding gitmodules + + $ cd git-repo6 + $ git mv .gitmodules .gitmodules-renamed + $ commit -a -m 'rename .gitmodules' + $ git mv .gitmodules-renamed .gitmodules + $ commit -a -m 'rename .gitmodules back' + $ cd .. + + $ hg --config convert.git.similarity=100 convert -q git-repo6 git-repo6-hg + $ hg -R git-repo6-hg log -r 'tip^' -T "{desc|firstline}\n" + rename .gitmodules + $ hg -R git-repo6-hg status -C --change 'tip^' + A .gitmodules-renamed + R .hgsub + R .hgsubstate + $ hg -R git-repo6-hg log -r tip -T "{desc|firstline}\n" + rename .gitmodules back + $ hg -R git-repo6-hg status -C --change tip + A .hgsub + A .hgsubstate + R .gitmodules-renamed + convert the revision removing '.gitmodules' itself (and related submodules)