Skip to content
Snippets Groups Projects
Commit 8e17f8a1 authored by Siddharth Agarwal's avatar Siddharth Agarwal
Browse files

tests: add further tests for gitlink <-> symlink and rename detection

There weren't any bugs here, but this is good to test.
parent e22ffc47
No related branches found
No related tags found
No related merge requests found
......@@ -87,6 +87,79 @@
2 files changed, 4 insertions(+), 1 deletion(-)
mode change 100644 => 160000 alpha
$ ln -s foo foolink
$ git add foolink
$ git commit -m 'add symlink'
[master 2d1c135] add symlink
1 file changed, 1 insertion(+)
create mode 120000 foolink
replace symlink with subrepo
$ git rm foolink
rm 'foolink'
$ git submodule add ../gitsubrepo foolink 2>&1 | python -c "$rmpwd" | sed "$clonefilt" | egrep -v '^done\.$'
Initialized empty Git repository in ...
$ git commit -m 'replace symlink with subrepo' | sed 's/, 0 deletions(-)//' | sed 's/, 0 insertions(+)//'
[master e3288fa] replace symlink with subrepo
2 files changed, 4 insertions(+), 1 deletion(-)
mode change 120000 => 160000 foolink
replace subrepo with symlink
$ cat > .gitmodules <<EOF
> [submodule "subrepo2"]
> path = subrepo2
> url = ../gitsubrepo
> [submodule "alpha"]
> path = alpha
> url = ../gitsubrepo
> EOF
$ git add .gitmodules
$ git rm --cached foolink
rm 'foolink'
$ rm -rf foolink
$ ln -s foo foolink
$ git add foolink
$ git commit -m 'replace subrepo with symlink' | sed 's/, 0 deletions(-)//' | sed 's/, 0 insertions(+)//'
[master d283640] replace subrepo with symlink
2 files changed, 1 insertion(+), 4 deletions(-)
mode change 160000 => 120000 foolink
$ git show
commit d28364013fe1a0fde56c0e1921e49ecdeee8571d
Author: test <test@example.org>
Date: Mon Jan 1 00:00:12 2007 +0000
replace subrepo with symlink
diff --git a/.gitmodules b/.gitmodules
index b511494..813e20b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,6 +4,3 @@
[submodule "alpha"]
path = alpha
url = ../gitsubrepo
-[submodule "foolink"]
- path = foolink
- url = ../gitsubrepo
diff --git a/foolink b/foolink
deleted file mode 160000
index 6e4ad8d..0000000
--- a/foolink
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6e4ad8da50204560c00fa25e4987eb2e239029ba
diff --git a/foolink b/foolink
new file mode 120000
index 0000000..1910281
--- /dev/null
+++ b/foolink
@@ -0,0 +1 @@
+foo
\ No newline at end of file
$ git rm --cached subrepo2
rm 'subrepo2'
$ git rm --cached alpha
......@@ -94,10 +167,10 @@
$ git rm .gitmodules
rm '.gitmodules'
$ git commit -m 'remove all subrepos' | sed 's/, 0 deletions(-)//' | sed 's/, 0 insertions(+)//'
[master d3c4728] remove all subrepos
[master 15ba949] remove all subrepos
3 files changed, 8 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 alpha
delete mode 160000 subrepo2
$ git log --pretty=oneline
......@@ -98,10 +171,13 @@
3 files changed, 8 deletions(-)
delete mode 100644 .gitmodules
delete mode 160000 alpha
delete mode 160000 subrepo2
$ git log --pretty=oneline
d3c472800f9d11baa6615971a3179fd441869173 remove all subrepos
15ba94929481c654814178aac1dbca06ae688718 remove all subrepos
d28364013fe1a0fde56c0e1921e49ecdeee8571d replace subrepo with symlink
e3288fa737d429a60637b3b6782cb25b8298bc00 replace symlink with subrepo
2d1c135447d11df4dfe96dd5d4f37926dc5c821d add symlink
88171163bf4795b5570924e51d5f8ede33f8bc28 replace file with subrepo
f6436a472da00f581d8d257e9bbaf3c358a5e88c replace subrepo with file
6e219527869fa40eb6ffbdd013cd86d576b26b01 add another subrepo
......@@ -113,6 +189,6 @@
$ hg clone gitrepo2 hgrepo | grep -v '^updating'
importing git objects into hg
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd hgrepo
$ hg log --graph | grep -v ': *master'
......@@ -117,9 +193,9 @@
$ cd hgrepo
$ hg log --graph | grep -v ': *master'
@ changeset: 6:b52cbe4c3ffe
@ changeset: 9:9c3929c04f22
| tag: default/master
| tag: tip
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: remove all subrepos
|
......@@ -120,9 +196,24 @@
| tag: default/master
| tag: tip
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: remove all subrepos
|
o changeset: 8:1b71dd3e6033
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: replace subrepo with symlink
|
o changeset: 7:e338dc0b9f64
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: replace symlink with subrepo
|
o changeset: 6:db94aa767571
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: add symlink
|
o changeset: 5:87bae50d72cb
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
......@@ -154,7 +245,7 @@
summary: add alpha
$ hg book
* master 6:b52cbe4c3ffe
* master 9:9c3929c04f22
(add subrepo)
$ hg cat -r 1 .hgsubstate
......@@ -211,4 +302,25 @@
$ hg gverify -r 5
verifying rev 87bae50d72cb against git commit 88171163bf4795b5570924e51d5f8ede33f8bc28
(replace symlink with subrepo)
$ hg cat -r 7 .hgsub .hgsubstate
subrepo2 = [git]../gitsubrepo
alpha = [git]../gitsubrepo
foolink = [git]../gitsubrepo
6e4ad8da50204560c00fa25e4987eb2e239029ba alpha
6e4ad8da50204560c00fa25e4987eb2e239029ba foolink
6e4ad8da50204560c00fa25e4987eb2e239029ba subrepo2
$ hg gverify -r 7
verifying rev e338dc0b9f64 against git commit e3288fa737d429a60637b3b6782cb25b8298bc00
(replace subrepo with symlink)
$ hg cat -r 8 .hgsub .hgsubstate
subrepo2 = [git]../gitsubrepo
alpha = [git]../gitsubrepo
6e4ad8da50204560c00fa25e4987eb2e239029ba alpha
6e4ad8da50204560c00fa25e4987eb2e239029ba subrepo2
$ hg gverify -r 8
verifying rev 1b71dd3e6033 against git commit d28364013fe1a0fde56c0e1921e49ecdeee8571d
(remove all subrepos)
......@@ -214,5 +326,5 @@
(remove all subrepos)
$ hg cat -r 6 .hgsub .hgsubstate
.hgsub: no such file in rev b52cbe4c3ffe
.hgsubstate: no such file in rev b52cbe4c3ffe
$ hg cat -r 9 .hgsub .hgsubstate
.hgsub: no such file in rev 9c3929c04f22
.hgsubstate: no such file in rev 9c3929c04f22
[1]
......@@ -218,9 +330,9 @@
[1]
$ hg gverify -r 6
verifying rev b52cbe4c3ffe against git commit d3c472800f9d11baa6615971a3179fd441869173
$ hg gverify -r 9
verifying rev 9c3929c04f22 against git commit 15ba94929481c654814178aac1dbca06ae688718
$ hg gclear
clearing out the git cache data
$ hg gexport
$ cd .hg/git
$ git log --pretty=oneline
......@@ -221,13 +333,16 @@
$ hg gclear
clearing out the git cache data
$ hg gexport
$ cd .hg/git
$ git log --pretty=oneline
d3c472800f9d11baa6615971a3179fd441869173 remove all subrepos
15ba94929481c654814178aac1dbca06ae688718 remove all subrepos
d28364013fe1a0fde56c0e1921e49ecdeee8571d replace subrepo with symlink
e3288fa737d429a60637b3b6782cb25b8298bc00 replace symlink with subrepo
2d1c135447d11df4dfe96dd5d4f37926dc5c821d add symlink
88171163bf4795b5570924e51d5f8ede33f8bc28 replace file with subrepo
f6436a472da00f581d8d257e9bbaf3c358a5e88c replace subrepo with file
6e219527869fa40eb6ffbdd013cd86d576b26b01 add another subrepo
a000567ceefbd9a2ce364e0dea6e298010b02b6d change subrepo commit
e42b08b3cb7069b4594a4ee1d9cb641ee47b2355 add subrepo
7eeab2ea75ec1ac0ff3d500b5b6f8a3447dd7c03 add alpha
......@@ -228,6 +343,67 @@
88171163bf4795b5570924e51d5f8ede33f8bc28 replace file with subrepo
f6436a472da00f581d8d257e9bbaf3c358a5e88c replace subrepo with file
6e219527869fa40eb6ffbdd013cd86d576b26b01 add another subrepo
a000567ceefbd9a2ce364e0dea6e298010b02b6d change subrepo commit
e42b08b3cb7069b4594a4ee1d9cb641ee47b2355 add subrepo
7eeab2ea75ec1ac0ff3d500b5b6f8a3447dd7c03 add alpha
test with rename detection enabled -- simply checking that the Mercurial hashes
are the same is enough
$ cd ../../..
$ hg --config git.similarity=100 clone gitrepo2 hgreporenames | grep -v '^updating'
importing git objects into hg
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd hgreporenames
$ hg log --graph | grep -v ': *master'
@ changeset: 9:9c3929c04f22
| tag: default/master
| tag: tip
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: remove all subrepos
|
o changeset: 8:1b71dd3e6033
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: replace subrepo with symlink
|
o changeset: 7:e338dc0b9f64
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: replace symlink with subrepo
|
o changeset: 6:db94aa767571
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: add symlink
|
o changeset: 5:87bae50d72cb
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: replace file with subrepo
|
o changeset: 4:33729ae46d57
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: replace subrepo with file
|
o changeset: 3:4d2f0f4fb53d
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: add another subrepo
|
o changeset: 2:620c9d5e9a98
| user: test <test@example.org>
| date: Mon Jan 01 00:00:12 2007 +0000
| summary: change subrepo commit
|
o changeset: 1:f20b40ad6da1
| user: test <test@example.org>
| date: Mon Jan 01 00:00:11 2007 +0000
| summary: add subrepo
|
o changeset: 0:ff7a2f2d8d70
user: test <test@example.org>
date: Mon Jan 01 00:00:10 2007 +0000
summary: add alpha
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment