diff --git a/test/Makefile b/test/Makefile index b18b2f1..4969259 100644 --- a/test/Makefile +++ b/test/Makefile @@ -11,7 +11,7 @@ test: $(T) $(MAKE) clean $(T): - $(SHELL) $@ $(TEST_OPTS) + ./$@ $(TEST_OPTS) clean: $(RM) -r 'trash directory'.* test-results diff --git a/test/bidi.t b/test/bidi.t index 77b0052..4282ece 100755 --- a/test/bidi.t +++ b/test/bidi.t @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # Copyright (c) 2012 Felipe Contreras # diff --git a/test/expected/converged merge/git-log b/test/expected/converged merge/git-log new file mode 100644 index 0000000..39f2f99 --- /dev/null +++ b/test/expected/converged merge/git-log @@ -0,0 +1,60 @@ +blob +mark :1 +data 2 +A + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 0 +0000 +committer A U Thor 0 +0000 +data 7 +origin +M 100644 :1 afile + +blob +mark :3 +data 2 +C + +commit refs/heads/master +mark :4 +author A U Thor 3 +0000 +committer A U Thor 3 +0000 +data 5 +A->C +from :2 +M 100644 :3 afile + +blob +mark :5 +data 2 +B + +commit refs/heads/master +mark :6 +author A U Thor 1 +0000 +committer A U Thor 1 +0000 +data 5 +A->B +from :2 +M 100644 :5 afile + +commit refs/heads/master +mark :7 +author A U Thor 2 +0000 +committer A U Thor 2 +0000 +data 5 +B->C +from :6 +M 100644 :3 afile + +commit refs/heads/master +mark :8 +author A U Thor 4 +0000 +committer A U Thor 4 +0000 +data 6 +merge +from :4 +merge :7 + diff --git a/test/expected/converged merge/hg-log b/test/expected/converged merge/hg-log new file mode 100644 index 0000000..e694892 --- /dev/null +++ b/test/expected/converged merge/hg-log @@ -0,0 +1,67 @@ +changeset: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 331ac2e605f2e6092ccb3802244a65b71f3be726 +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +files+: afile +extra: branch=default +description: +origin + + +changeset: ead35d346ecb18ce9d9d54604ff62b41caa196ce +phase: draft +parent: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +parent: -0000000000000000000000000000000000000000 +manifest: 894f8ad9a84f743d52747963d0b9f4e9cf37d489 +user: A U Thor +date: Thu Jan 01 00:00:01 1970 +0000 +files: afile +extra: branch=default +description: +A->B + + +changeset: 541c7bc8b2d01c8bf71b2298d17edcda120e49bf +phase: draft +parent: ead35d346ecb18ce9d9d54604ff62b41caa196ce +parent: -0000000000000000000000000000000000000000 +manifest: 04dae4001cb1fb2384111589720617c4b742044c +user: A U Thor +date: Thu Jan 01 00:00:02 1970 +0000 +files: afile +extra: branch=default +description: +B->C + + +changeset: 5694aadcd7171ecb9768b13e29d027e22a360d44 +phase: draft +parent: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +parent: -0000000000000000000000000000000000000000 +manifest: 6efc6bb8e097947aa212887bdb01fb89dfa3de13 +user: A U Thor +date: Thu Jan 01 00:00:03 1970 +0000 +files: afile +extra: branch=default +description: +A->C + + +changeset: 9ee75b4362cc15f9110d6538b2f1c9f0cf14825a +bookmark: master +tag: tip +phase: draft +parent: 5694aadcd7171ecb9768b13e29d027e22a360d44 +parent: 541c7bc8b2d01c8bf71b2298d17edcda120e49bf +manifest: eb9f4687448653e876d787cd6f2e59140680ff09 +user: A U Thor +date: Thu Jan 01 00:00:04 1970 +0000 +files: afile +extra: branch=default +description: +merge + + diff --git a/test/expected/encoding/git-log b/test/expected/encoding/git-log new file mode 100644 index 0000000..9d6bffa --- /dev/null +++ b/test/expected/encoding/git-log @@ -0,0 +1,56 @@ +blob +mark :1 +data 6 +alpha + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 12 +add älphà +M 100644 :1 alpha + +blob +mark :3 +data 5 +beta + +commit refs/heads/master +mark :4 +author tést èncödîng 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 9 +add beta +from :2 +M 100644 :3 beta + +blob +mark :5 +data 6 +gamma + +commit refs/heads/master +mark :6 +author tést èncödîng 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 12 +add gämmâ +from :4 +M 100644 :5 gamma + +blob +mark :7 +data 6 +delta + +commit refs/heads/master +mark :8 +author tést èncödîng 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 12 +add déltà +from :6 +M 100644 :7 delta + diff --git a/test/expected/encoding/hg-log b/test/expected/encoding/hg-log new file mode 100644 index 0000000..4608233 --- /dev/null +++ b/test/expected/encoding/hg-log @@ -0,0 +1,58 @@ +changeset: 6674f1c866b5c428db4acde16404c14077889646 +bookmark: master +tag: tip +phase: draft +parent: 7e9fd3fd2f75d7de4bf3d77c47f192a51927ac28 +parent: -0000000000000000000000000000000000000000 +manifest: ea49f93388380ead5601c8fcbfa187516e7c2ed8 +user: tést èncödîng +date: Mon Jan 01 00:00:00 2007 +0230 +files+: delta +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add déltà + + +changeset: 7e9fd3fd2f75d7de4bf3d77c47f192a51927ac28 +phase: draft +parent: 99c5adad03b9a9935e181f4be91ff7693a790110 +parent: -0000000000000000000000000000000000000000 +manifest: f580e7da3673c137370da2b931a1dee83590d7b4 +user: tést èncödîng +date: Mon Jan 01 00:00:00 2007 +0230 +files+: gamma +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add gämmâ + + +changeset: 99c5adad03b9a9935e181f4be91ff7693a790110 +phase: draft +parent: 1e3e49d2cc8feaad4942d100108f20f207742d3a +parent: -0000000000000000000000000000000000000000 +manifest: f0bd6fbafbaebe4bb59c35108428f6fce152431d +user: tést èncödîng +date: Mon Jan 01 00:00:00 2007 +0230 +files+: beta +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add beta + + +changeset: 1e3e49d2cc8feaad4942d100108f20f207742d3a +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add älphà + + diff --git a/test/expected/executable bit/log b/test/expected/executable bit/log new file mode 100644 index 0000000..aac4409 --- /dev/null +++ b/test/expected/executable bit/log @@ -0,0 +1,32 @@ +blob +mark :1 +data 6 +alpha + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 10 +add alpha +M 100644 :1 alpha + +commit refs/heads/master +mark :3 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 19 +set executable bit +from :2 +M 100755 :1 alpha + +commit refs/heads/master +mark :4 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 21 +clear executable bit +from :3 +M 100644 :1 alpha + diff --git a/test/expected/executable bit/output b/test/expected/executable bit/output new file mode 100644 index 0000000..f8a41c8 --- /dev/null +++ b/test/expected/executable bit/output @@ -0,0 +1,46 @@ +changeset: 1efb93106a36bf71352ab04e769a3422522cf946 +bookmark: master +tag: tip +phase: draft +parent: d7cae8b1fdab97568ba5eca44ca2bf5a44d7c394 +parent: -0000000000000000000000000000000000000000 +manifest: 51e6255d794f794a8c4e0f03edf264444e3c5ce7 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +clear executable bit + + +changeset: d7cae8b1fdab97568ba5eca44ca2bf5a44d7c394 +phase: draft +parent: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +parent: -0000000000000000000000000000000000000000 +manifest: e4bf4ef5e9aea7a6a57573e533a5519bd062f144 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +set executable bit + + +changeset: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add alpha + + +644 alpha +644 alpha diff --git a/test/expected/file removal/log b/test/expected/file removal/log new file mode 100644 index 0000000..77785f9 --- /dev/null +++ b/test/expected/file removal/log @@ -0,0 +1,60 @@ +blob +mark :1 +data 6 +alpha + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 10 +add alpha +M 100644 :1 alpha + +blob +mark :3 +data 5 +beta + +commit refs/heads/master +mark :4 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 9 +add beta +from :2 +M 100644 :3 beta + +blob +mark :5 +data 5 +blah + +commit refs/heads/master +mark :6 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 8 +add foo +from :4 +M 100644 :5 foo/bar + +commit refs/heads/master +mark :7 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 13 +remove alpha +from :6 +D alpha + +commit refs/heads/master +mark :8 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 15 +remove foo/bar +from :7 +D foo/bar + diff --git a/test/expected/file removal/output b/test/expected/file removal/output new file mode 100644 index 0000000..56a80b6 --- /dev/null +++ b/test/expected/file removal/output @@ -0,0 +1,75 @@ +changeset: 54f595cbdf1f516dc3b2b25faa6f051aae712f5d +bookmark: master +tag: tip +phase: draft +parent: 7fe32a9185c6d37db430ee5248cdb2ae66582478 +parent: -0000000000000000000000000000000000000000 +manifest: 3f83f42fa00fb0cac14a83aa48baac2f287a9329 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files-: foo/bar +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +remove foo/bar + + +changeset: 7fe32a9185c6d37db430ee5248cdb2ae66582478 +phase: draft +parent: a21fd0b26a555427c2ea72f8ed37190f6216f705 +parent: -0000000000000000000000000000000000000000 +manifest: cd10925837609b99d345c44c85bd1f73d742cbbc +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files-: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +remove alpha + + +changeset: a21fd0b26a555427c2ea72f8ed37190f6216f705 +phase: draft +parent: 7cd99375c843931bd8959b766a94e050f428512b +parent: -0000000000000000000000000000000000000000 +manifest: a6ee442a94bfc6fb0b7d717183bb8b4534ca4ccd +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: foo/bar +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add foo + + +changeset: 7cd99375c843931bd8959b766a94e050f428512b +phase: draft +parent: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +parent: -0000000000000000000000000000000000000000 +manifest: f0bd6fbafbaebe4bb59c35108428f6fce152431d +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: beta +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add beta + + +changeset: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add alpha + + +beta +foo/bar +beta diff --git a/test/expected/git tags/log b/test/expected/git tags/log new file mode 100644 index 0000000..02a4fda --- /dev/null +++ b/test/expected/git tags/log @@ -0,0 +1,32 @@ +changeset: 7cd99375c843931bd8959b766a94e050f428512b +bookmark: master +tag: beta +tag: tip +phase: draft +parent: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +parent: -0000000000000000000000000000000000000000 +manifest: f0bd6fbafbaebe4bb59c35108428f6fce152431d +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: beta +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add beta + + +changeset: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +tag: alpha +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add alpha + + diff --git a/test/expected/hg author/git-log b/test/expected/hg author/git-log new file mode 100644 index 0000000..7299257 --- /dev/null +++ b/test/expected/hg author/git-log @@ -0,0 +1,141 @@ +blob +mark :1 +data 6 +alpha + +reset refs/heads/not-master +commit refs/heads/not-master +mark :2 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 10 +add alpha +M 100644 :1 alpha + +blob +mark :3 +data 5 +beta + +commit refs/heads/master +mark :4 +author test 0 +0000 +committer test 0 +0000 +data 9 +add beta +from :2 +M 100644 :3 beta + +blob +mark :5 +data 11 +beta +gamma + +commit refs/heads/master +mark :6 +author test ext:(%20%28comment%29) 0 +0000 +committer test ext:(%20%28comment%29) 0 +0000 +data 12 +modify beta +from :4 +M 100644 :5 beta + +blob +mark :7 +data 6 +gamma + +commit refs/heads/master +mark :8 +author 0 +0000 +committer 0 +0000 +data 10 +add gamma +from :6 +M 100644 :7 gamma + +blob +mark :9 +data 6 +delta + +commit refs/heads/master +mark :10 +author name 0 +0000 +committer name 0 +0000 +data 10 +add delta +from :8 +M 100644 :9 delta + +blob +mark :11 +data 8 +epsilon + +commit refs/heads/master +mark :12 +author name 0 +0000 +committer name 0 +0000 +data 12 +add epsilon +from :10 +M 100644 :11 epsilon + +blob +mark :13 +data 5 +zeta + +commit refs/heads/master +mark :14 +author test 0 +0000 +committer test 0 +0000 +data 9 +add zeta +from :12 +M 100644 :13 zeta + +blob +mark :15 +data 4 +eta + +commit refs/heads/master +mark :16 +author test 0 +0000 +committer test 0 +0000 +data 8 +add eta +from :14 +M 100644 :15 eta + +blob +mark :17 +data 6 +theta + +commit refs/heads/master +mark :18 +author test ?test@example.com 0 +0000 +committer test ?test@example.com 0 +0000 +data 10 +add theta +from :16 +M 100644 :17 theta + +blob +mark :19 +data 5 +iota + +commit refs/heads/master +mark :20 +author test ext:(%20example%20%3Cdot%3E%20com%3E) 0 +0000 +committer test ext:(%20example%20%3Cdot%3E%20com%3E) 0 +0000 +data 9 +add iota +from :18 +M 100644 :19 iota + diff --git a/test/expected/hg author/hg-log b/test/expected/hg author/hg-log new file mode 100644 index 0000000..e88da6b --- /dev/null +++ b/test/expected/hg author/hg-log @@ -0,0 +1,134 @@ +changeset: 307c03466a07cccafaafc991f36d695d6ad595f3 +bookmark: master +tag: tip +phase: draft +parent: 5832614d351449a2f8d6f7ccbef4877c2b18cbe0 +parent: -0000000000000000000000000000000000000000 +manifest: e8f1b3ae088bdd25e3570a4953ccb6b948524473 +user: test example com> +date: Thu Jan 01 00:00:00 1970 +0000 +files+: iota +extra: branch=default +description: +add iota + + +changeset: 5832614d351449a2f8d6f7ccbef4877c2b18cbe0 +phase: draft +parent: e52ded4aca5d210ed58c63158d64fb911876f345 +parent: -0000000000000000000000000000000000000000 +manifest: 7e4875db7e2970c529f462520121d333e514bf4d +user: test ?test@example.com +date: Thu Jan 01 00:00:00 1970 +0000 +files+: theta +extra: branch=default +description: +add theta + + +changeset: e52ded4aca5d210ed58c63158d64fb911876f345 +phase: draft +parent: 9a34ba7d552e8b73ad306baf1d1eb83de0f74c12 +parent: -0000000000000000000000000000000000000000 +manifest: ef03e54a9916ac3158c9686503dd4f609c26b3ec +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +files+: eta +extra: branch=default +description: +add eta + + +changeset: 9a34ba7d552e8b73ad306baf1d1eb83de0f74c12 +phase: draft +parent: 6281edc25b9fe9538407726f044a9a61ac7ba5bc +parent: -0000000000000000000000000000000000000000 +manifest: 616201b85baf7ed02d41f6a7deb04c52009d8483 +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +files+: zeta +extra: branch=default +description: +add zeta + + +changeset: 6281edc25b9fe9538407726f044a9a61ac7ba5bc +phase: draft +parent: 4c7841053c633cb51f8375555d08b6bea54fc4cb +parent: -0000000000000000000000000000000000000000 +manifest: c703b3d7be8a0638047142f57ff83d4e94b5d1fa +user: name +date: Thu Jan 01 00:00:00 1970 +0000 +files+: epsilon +extra: branch=default +description: +add epsilon + + +changeset: 4c7841053c633cb51f8375555d08b6bea54fc4cb +phase: draft +parent: fa8f26586397dd4797842e9300c8db221fe5514d +parent: -0000000000000000000000000000000000000000 +manifest: 300b54001cbfa5d027b4bccdb594ccb463adb55d +user: name +date: Thu Jan 01 00:00:00 1970 +0000 +files+: delta +extra: branch=default +description: +add delta + + +changeset: fa8f26586397dd4797842e9300c8db221fe5514d +phase: draft +parent: 2708ff417fb7e2c0a4f9596286c0a398553fa793 +parent: -0000000000000000000000000000000000000000 +manifest: 45b0c483a79307d14f7e234feb78776478f828ec +user: +date: Thu Jan 01 00:00:00 1970 +0000 +files+: gamma +extra: branch=default +description: +add gamma + + +changeset: 2708ff417fb7e2c0a4f9596286c0a398553fa793 +phase: draft +parent: 8c51e5fe974fe1cc63a56bbfad343f9ede6bed30 +parent: -0000000000000000000000000000000000000000 +manifest: c305998040b12e956b998318982c9eb92d2d7b28 +user: test (comment) +date: Thu Jan 01 00:00:00 1970 +0000 +files: beta +extra: branch=default +description: +modify beta + + +changeset: 8c51e5fe974fe1cc63a56bbfad343f9ede6bed30 +phase: draft +parent: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +parent: -0000000000000000000000000000000000000000 +manifest: f0bd6fbafbaebe4bb59c35108428f6fce152431d +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +files+: beta +extra: branch=default +description: +add beta + + +changeset: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +bookmark: not-master +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add alpha + + diff --git a/test/expected/hg branch/git-log b/test/expected/hg branch/git-log new file mode 100644 index 0000000..dec10d5 --- /dev/null +++ b/test/expected/hg branch/git-log @@ -0,0 +1,38 @@ +blob +mark :1 +data 6 +alpha + +reset refs/heads/not-master +commit refs/heads/not-master +mark :2 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 10 +add alpha +M 100644 :1 alpha + +commit refs/heads/master +mark :3 +author A U Thor 0 +0000 +committer A U Thor 0 +0000 +data 52 +rename alpha to beta + +--HG-- +rename : alpha => beta +from :2 +D alpha +M 100644 :1 beta + +commit refs/heads/master +mark :4 +author A U Thor 0 +0000 +committer A U Thor 0 +0000 +data 44 +started branch gamma + +--HG-- +branch : gamma +from :3 + diff --git a/test/expected/hg branch/hg-log b/test/expected/hg branch/hg-log new file mode 100644 index 0000000..e5d9951 --- /dev/null +++ b/test/expected/hg branch/hg-log @@ -0,0 +1,44 @@ +changeset: 3320583a8de0b31511f499a4ab3426bee1a7f478 +branch: gamma +bookmark: master +tag: tip +phase: draft +parent: 5889597089fea2d144989baa9427d1a080293fdb +parent: -0000000000000000000000000000000000000000 +manifest: e353b4d5282d044ad738398fd32d0b684d04a14b +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +extra: branch=gamma +description: +started branch gamma + + +changeset: 5889597089fea2d144989baa9427d1a080293fdb +phase: draft +parent: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +parent: -0000000000000000000000000000000000000000 +manifest: e353b4d5282d044ad738398fd32d0b684d04a14b +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +files+: beta +files-: alpha +extra: branch=default +description: +rename alpha to beta + + +changeset: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +bookmark: not-master +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add alpha + + diff --git a/test/expected/hg tags/output b/test/expected/hg tags/output new file mode 100644 index 0000000..56c5cf4 --- /dev/null +++ b/test/expected/hg tags/output @@ -0,0 +1,33 @@ +alpha +changeset: 16869bbe54be9f8082a8aec346de09f6c05cf1de +bookmark: master +tag: tip +phase: draft +parent: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +parent: -0000000000000000000000000000000000000000 +manifest: 26f8145fb5b20cc6f70dd131b646f95ab79738c0 +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +files+: .hgtags +extra: branch=default +description: +Added tag alpha for changeset 362b656574c3 + + +changeset: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +bookmark: not-master +tag: alpha +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add alpha + + +362b656574c3c9e89fa7f2d7a943091dc93bce4d alpha diff --git a/test/expected/merge conflict 1/git-log b/test/expected/merge conflict 1/git-log new file mode 100644 index 0000000..c9a3fff --- /dev/null +++ b/test/expected/merge conflict 1/git-log @@ -0,0 +1,51 @@ +blob +mark :1 +data 2 +A + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 0 +0000 +committer A U Thor 0 +0000 +data 7 +origin +M 100644 :1 afile + +blob +mark :3 +data 2 +C + +commit refs/heads/master +mark :4 +author A U Thor 2 +0000 +committer A U Thor 2 +0000 +data 5 +A->C +from :2 +M 100644 :3 afile + +blob +mark :5 +data 2 +B + +commit refs/heads/master +mark :6 +author A U Thor 1 +0000 +committer A U Thor 1 +0000 +data 5 +A->B +from :2 +M 100644 :5 afile + +commit refs/heads/master +mark :7 +author A U Thor 3 +0000 +committer A U Thor 3 +0000 +data 11 +merge to C +from :4 +merge :6 + diff --git a/test/expected/merge conflict 1/hg-log b/test/expected/merge conflict 1/hg-log new file mode 100644 index 0000000..5e6408b --- /dev/null +++ b/test/expected/merge conflict 1/hg-log @@ -0,0 +1,54 @@ +changeset: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 331ac2e605f2e6092ccb3802244a65b71f3be726 +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +files+: afile +extra: branch=default +description: +origin + + +changeset: ead35d346ecb18ce9d9d54604ff62b41caa196ce +phase: draft +parent: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +parent: -0000000000000000000000000000000000000000 +manifest: 894f8ad9a84f743d52747963d0b9f4e9cf37d489 +user: A U Thor +date: Thu Jan 01 00:00:01 1970 +0000 +files: afile +extra: branch=default +description: +A->B + + +changeset: d585ac55494928500f510b965b878d47f9ee60f6 +phase: draft +parent: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +parent: -0000000000000000000000000000000000000000 +manifest: 6efc6bb8e097947aa212887bdb01fb89dfa3de13 +user: A U Thor +date: Thu Jan 01 00:00:02 1970 +0000 +files: afile +extra: branch=default +description: +A->C + + +changeset: c6ab734e24c39948e5a25713b48f4972c960ff8b +bookmark: master +tag: tip +phase: draft +parent: d585ac55494928500f510b965b878d47f9ee60f6 +parent: ead35d346ecb18ce9d9d54604ff62b41caa196ce +manifest: 96bedb13781f1b9d729a2210a530f0c5c68f42e6 +user: A U Thor +date: Thu Jan 01 00:00:03 1970 +0000 +files: afile +extra: branch=default +description: +merge to C + + diff --git a/test/expected/merge conflict 2/git-log b/test/expected/merge conflict 2/git-log new file mode 100644 index 0000000..9825c68 --- /dev/null +++ b/test/expected/merge conflict 2/git-log @@ -0,0 +1,52 @@ +blob +mark :1 +data 2 +A + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 0 +0000 +committer A U Thor 0 +0000 +data 7 +origin +M 100644 :1 afile + +blob +mark :3 +data 2 +C + +commit refs/heads/master +mark :4 +author A U Thor 2 +0000 +committer A U Thor 2 +0000 +data 5 +A->C +from :2 +M 100644 :3 afile + +blob +mark :5 +data 2 +B + +commit refs/heads/master +mark :6 +author A U Thor 1 +0000 +committer A U Thor 1 +0000 +data 5 +A->B +from :2 +M 100644 :5 afile + +commit refs/heads/master +mark :7 +author A U Thor 3 +0000 +committer A U Thor 3 +0000 +data 11 +merge to B +from :4 +merge :6 +M 100644 :5 afile + diff --git a/test/expected/merge conflict 2/hg-log b/test/expected/merge conflict 2/hg-log new file mode 100644 index 0000000..fc479c9 --- /dev/null +++ b/test/expected/merge conflict 2/hg-log @@ -0,0 +1,54 @@ +changeset: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 331ac2e605f2e6092ccb3802244a65b71f3be726 +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +files+: afile +extra: branch=default +description: +origin + + +changeset: ead35d346ecb18ce9d9d54604ff62b41caa196ce +phase: draft +parent: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +parent: -0000000000000000000000000000000000000000 +manifest: 894f8ad9a84f743d52747963d0b9f4e9cf37d489 +user: A U Thor +date: Thu Jan 01 00:00:01 1970 +0000 +files: afile +extra: branch=default +description: +A->B + + +changeset: d585ac55494928500f510b965b878d47f9ee60f6 +phase: draft +parent: 9a6668f453c3003b71e11bb8d7572af57a7ce891 +parent: -0000000000000000000000000000000000000000 +manifest: 6efc6bb8e097947aa212887bdb01fb89dfa3de13 +user: A U Thor +date: Thu Jan 01 00:00:02 1970 +0000 +files: afile +extra: branch=default +description: +A->C + + +changeset: 542b187b70e70dc759631d1065794f3c2c5a3e7b +bookmark: master +tag: tip +phase: draft +parent: d585ac55494928500f510b965b878d47f9ee60f6 +parent: ead35d346ecb18ce9d9d54604ff62b41caa196ce +manifest: 0907d7dbc98790102fa6cb91b68b271ef0bc5b64 +user: A U Thor +date: Thu Jan 01 00:00:03 1970 +0000 +files: afile +extra: branch=default +description: +merge to B + + diff --git a/test/expected/rename/git-log b/test/expected/rename/git-log new file mode 100644 index 0000000..3204636 --- /dev/null +++ b/test/expected/rename/git-log @@ -0,0 +1,27 @@ +blob +mark :1 +data 6 +alpha + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 0 +0000 +committer A U Thor 0 +0000 +data 10 +add alpha +M 100644 :1 alpha + +commit refs/heads/master +mark :3 +author A U Thor 0 +0000 +committer A U Thor 0 +0000 +data 52 +rename alpha to beta + +--HG-- +rename : alpha => beta +from :2 +D alpha +M 100644 :1 beta + diff --git a/test/expected/rename/hg-log b/test/expected/rename/hg-log new file mode 100644 index 0000000..08139a3 --- /dev/null +++ b/test/expected/rename/hg-log @@ -0,0 +1,29 @@ +changeset: a985b184598fd779e53576c65c5dd1d274736c73 +bookmark: master +tag: tip +phase: draft +parent: 0558a161e3ca0d59f5f165e3182402d9f1e574a8 +parent: -0000000000000000000000000000000000000000 +manifest: e353b4d5282d044ad738398fd32d0b684d04a14b +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +files+: beta +files-: alpha +extra: branch=default +description: +rename alpha to beta + + +changeset: 0558a161e3ca0d59f5f165e3182402d9f1e574a8 +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Thu Jan 01 00:00:00 1970 +0000 +files+: alpha +extra: branch=default +description: +add alpha + + diff --git a/test/expected/symlink/log b/test/expected/symlink/log new file mode 100644 index 0000000..5ae198d --- /dev/null +++ b/test/expected/symlink/log @@ -0,0 +1,27 @@ +blob +mark :1 +data 6 +alpha + +reset refs/heads/master +commit refs/heads/master +mark :2 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 10 +add alpha +M 100644 :1 alpha + +blob +mark :3 +data 5 +alpha +commit refs/heads/master +mark :4 +author A U Thor 1167600600 +0230 +committer C O Mitter 1167600600 +0230 +data 9 +add beta +from :2 +M 120000 :3 beta + diff --git a/test/expected/symlink/output b/test/expected/symlink/output new file mode 100644 index 0000000..d270f0e --- /dev/null +++ b/test/expected/symlink/output @@ -0,0 +1,32 @@ +changeset: 87cbc97576079d3dfef04c678bfc8ab69999ebdf +bookmark: master +tag: tip +phase: draft +parent: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +parent: -0000000000000000000000000000000000000000 +manifest: 4950f48a7f5b0ce6f31c2f4307e296dbac652026 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: beta +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add beta + + +changeset: 362b656574c3c9e89fa7f2d7a943091dc93bce4d +phase: draft +parent: -0000000000000000000000000000000000000000 +parent: -0000000000000000000000000000000000000000 +manifest: 8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 +user: A U Thor +date: Mon Jan 01 00:00:00 2007 +0230 +files+: alpha +extra: branch=default +extra: committer=C O Mitter 1167600600 -9000 +description: +add alpha + + +644 alpha +644 @ beta diff --git a/test/hg-git.t b/test/hg-git.t index b6165cc..1507fb0 100755 --- a/test/hg-git.t +++ b/test/hg-git.t @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # Copyright (c) 2012 Felipe Contreras # @@ -6,35 +6,30 @@ # https://bitbucket.org/durin42/hg-git/src # +# shellcheck disable=SC2016,SC2034,SC2086,SC2164,SC1091 + test_description='Test remote-hg output compared to hg-git' . ./test-lib.sh +export EXPECTED_DIR="$SHARNESS_TEST_DIRECTORY/expected" + if ! test_have_prereq PYTHON then skip_all='skipping remote-hg tests; python with mercurial not available' test_done fi -if "$PYTHON" -c 'import hggit' > /dev/null 2>&1 -then - hggit=hggit -elif "$PYTHON" -c 'import hgext.git' > /dev/null 2>&1 -then - hggit=hgext.git -else - skip_all='skipping remote-hg tests; hg-git not available' - test_done -fi - -# clone to a git repo with git -git_clone_git () { +git_clone () { git clone -q "hg::$1" $2 && - (cd $2 && git checkout master && git branch -D default) + ( + cd $2 && + git checkout master && + { git branch -D default || true ;} + ) } -# clone to an hg repo with git -hg_clone_git () { +hg_clone () { ( hg init $2 && hg -R $2 bookmark -i master && @@ -45,83 +40,94 @@ hg_clone_git () { (cd $2 && hg -q update) } -# clone to a git repo with hg -git_clone_hg () { - ( - git init -q $2 && - cd $1 && - hg bookmark -i -f -r tip master && - hg -q push -r master ../$2 || true - ) -} - -# clone to an hg repo with hg -hg_clone_hg () { - hg -q clone $1 $2 -} - -# push an hg repo with git -hg_push_git () { +hg_push () { ( cd $2 git checkout -q -b tmp && git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && git branch -D default && - git checkout -q @{-1} && - git branch -q -D tmp 2> /dev/null || true - ) -} - -# push an hg git repo with hg -hg_push_hg () { - ( - cd $1 && - hg -q push ../$2 || true + git checkout -q '@{-1}' && + { git branch -q -D tmp 2> /dev/null || true ;} ) } hg_log () { - hg -R $1 log --graph --debug > log && - grep -v 'tag: *default/' log + hg -R $1 log --debug -r 'sort(tip:0, date)' | + sed -e '/tag: *default/d' -e 's/[0-9]\+:\([0-9a-f]\{40\}\)/\1/' } git_log () { - git --git-dir=$1/.git fast-export --branches + git -C $1 fast-export --branches +} + +test_cmp_expected () { + test_cmp "$EXPECTED_DIR/$test_id/$1" "$1" +} + +cmp_hg_to_git_log () { + hg_log hgrepo2 > hg-log && + git_log gitrepo > git-log && + + test_cmp_expected hg-log && + test_cmp_expected git-log +} + +cmp_hg_to_git_log_hgrepo1 () { + git_clone hgrepo1 gitrepo && + hg_clone gitrepo hgrepo2 && + + cmp_hg_to_git_log +} + +cmp_hg_to_git_manifest () { + ( + hg_clone gitrepo hgrepo && + cd hgrepo && + hg_log . && + eval "$1" + ) > output && + + git_clone hgrepo gitrepo2 && + git_log gitrepo2 > log && + + test_cmp_expected output && + test_cmp_expected log } setup () { - cat > "$HOME"/.hgrc <<-EOF && + cat > "$HOME"/.hgrc <<-EOF [ui] username = A U Thor [defaults] - backout = -d "0 0" commit = -d "0 0" - debugrawcommit = -d "0 0" tag = -d "0 0" - [extensions] - $hggit = - graphlog = - [git] - debugextrainmessage = 1 EOF - git config --global receive.denycurrentbranch warn - git config --global remote-hg.hg-git-compat true - git config --global remote-hg.track-branches false - git config --global remote-hg.shared-marks false - HGEDITOR=true - HGMERGE=true + cat > "$HOME"/.gitconfig <<-EOF + [remote-hg] + hg-git-compat = true + track-branches = false + EOF - GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" - GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" - export HGEDITOR HGMERGE GIT_AUTHOR_DATE GIT_COMMITTER_DATE + export HGEDITOR=true + export HGMERGE=true + + export GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" + export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" } setup -test_expect_success 'rename' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && +# save old function +eval "old_$(declare -f test_expect_success)" +test_expect_success () { + test_id="$1" && + old_test_expect_success "$1" " + test_when_finished \"rm -rf gitrepo* hgrepo*\" && $2" +} + +test_expect_success 'rename' ' ( hg init hgrepo1 && cd hgrepo1 && @@ -132,21 +138,10 @@ test_expect_success 'rename' ' hg commit -m "rename alpha to beta" ) && - for x in hg git - do - git_clone_$x hgrepo1 gitrepo-$x && - hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > "hg-log-$x" && - git_log gitrepo-$x > "git-log-$x" - done && - - test_cmp hg-log-hg hg-log-git && - test_cmp git-log-hg git-log-git + cmp_hg_to_git_log_hgrepo1 ' test_expect_success 'executable bit' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( git init -q gitrepo && cd gitrepo && @@ -162,27 +157,10 @@ test_expect_success 'executable bit' ' git commit -m "clear executable bit" ) && - for x in hg git - do - ( - hg_clone_$x gitrepo hgrepo-$x && - cd hgrepo-$x && - hg_log . && - hg manifest -r 1 -v && - hg manifest -v - ) > "output-$x" && - - git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x > "log-$x" - done && - - test_cmp output-hg output-git && - test_cmp log-hg log-git + cmp_hg_to_git_manifest "hg manifest -v -r -1; hg manifest -v" ' test_expect_success 'symlink' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( git init -q gitrepo && cd gitrepo && @@ -194,26 +172,10 @@ test_expect_success 'symlink' ' git commit -m "add beta" ) && - for x in hg git - do - ( - hg_clone_$x gitrepo hgrepo-$x && - cd hgrepo-$x && - hg_log . && - hg manifest -v - ) > "output-$x" && - - git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x > "log-$x" - done && - - test_cmp output-hg output-git && - test_cmp log-hg log-git + cmp_hg_to_git_manifest "hg manifest -v" ' test_expect_success 'merge conflict 1' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( hg init hgrepo1 && cd hgrepo1 && @@ -222,33 +184,22 @@ test_expect_success 'merge conflict 1' ' hg ci -m "origin" && echo B > afile && - hg ci -m "A->B" && + hg ci -m "A->B" -d "1 0" && hg up -r0 && echo C > afile && - hg ci -m "A->C" && + hg ci -m "A->C" -d "2 0" && hg merge -r1 && echo C > afile && hg resolve -m afile && - hg ci -m "merge to C" + hg ci -m "merge to C" -d "3 0" ) && - for x in hg git - do - git_clone_$x hgrepo1 gitrepo-$x && - hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > "hg-log-$x" && - git_log gitrepo-$x > "git-log-$x" - done && - - test_cmp hg-log-hg hg-log-git && - test_cmp git-log-hg git-log-git + cmp_hg_to_git_log_hgrepo1 ' test_expect_success 'merge conflict 2' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( hg init hgrepo1 && cd hgrepo1 && @@ -257,33 +208,22 @@ test_expect_success 'merge conflict 2' ' hg ci -m "origin" && echo B > afile && - hg ci -m "A->B" && + hg ci -m "A->B" -d "1 0" && hg up -r0 && echo C > afile && - hg ci -m "A->C" && + hg ci -m "A->C" -d "2 0" && hg merge -r1 || true && echo B > afile && hg resolve -m afile && - hg ci -m "merge to B" + hg ci -m "merge to B" -d "3 0" ) && - for x in hg git - do - git_clone_$x hgrepo1 gitrepo-$x && - hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > "hg-log-$x" && - git_log gitrepo-$x > "git-log-$x" - done && - - test_cmp hg-log-hg hg-log-git && - test_cmp git-log-hg git-log-git + cmp_hg_to_git_log_hgrepo1 ' test_expect_success 'converged merge' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( hg init hgrepo1 && cd hgrepo1 && @@ -292,34 +232,23 @@ test_expect_success 'converged merge' ' hg ci -m "origin" && echo B > afile && - hg ci -m "A->B" && + hg ci -m "A->B" -d "1 0" && echo C > afile && - hg ci -m "B->C" && + hg ci -m "B->C" -d "2 0" && hg up -r0 && echo C > afile && - hg ci -m "A->C" && + hg ci -m "A->C" -d "3 0" && hg merge -r2 || true && - hg ci -m "merge" + hg ci -m "merge" -d "4 0" ) && - for x in hg git - do - git_clone_$x hgrepo1 gitrepo-$x && - hg_clone_$x gitrepo-$x hgrepo2-$x && - hg_log hgrepo2-$x > "hg-log-$x" && - git_log gitrepo-$x > "git-log-$x" - done && - - test_cmp hg-log-hg hg-log-git && - test_cmp git-log-hg git-log-git + cmp_hg_to_git_log_hgrepo1 ' test_expect_success 'encoding' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( git init -q gitrepo && cd gitrepo && @@ -344,22 +273,17 @@ test_expect_success 'encoding' ' git commit -m "add déltà" ) && - for x in hg git - do - hg_clone_$x gitrepo hgrepo-$x && - git_clone_$x hgrepo-$x gitrepo2-$x && + hg_clone gitrepo hgrepo && + git_clone hgrepo gitrepo2 && - HGENCODING=utf-8 hg_log hgrepo-$x > "hg-log-$x" && - git_log gitrepo2-$x > "git-log-$x" - done && + HGENCODING=utf-8 hg_log hgrepo > hg-log && + git_log gitrepo2 > git-log && - test_cmp hg-log-hg hg-log-git && - test_cmp git-log-hg git-log-git + test_cmp_expected hg-log && + test_cmp_expected git-log ' test_expect_success 'file removal' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( git init -q gitrepo && cd gitrepo && @@ -379,27 +303,10 @@ test_expect_success 'file removal' ' git commit -m "remove foo/bar" ) && - for x in hg git - do - ( - hg_clone_$x gitrepo hgrepo-$x && - cd hgrepo-$x && - hg_log . && - hg manifest -r 3 && - hg manifest - ) > "output-$x" && - - git_clone_$x hgrepo-$x gitrepo2-$x && - git_log gitrepo2-$x > "log-$x" - done && - - test_cmp output-hg output-git && - test_cmp log-hg log-git + cmp_hg_to_git_manifest "hg manifest -r 3; hg manifest" ' test_expect_success 'git tags' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && - ( git init -q gitrepo && cd gitrepo && @@ -415,153 +322,127 @@ test_expect_success 'git tags' ' git tag -a -m "added tag beta" beta ) && - for x in hg git - do - hg_clone_$x gitrepo hgrepo-$x && - hg_log hgrepo-$x > "log-$x" - done && + hg_clone gitrepo hgrepo && + hg_log hgrepo > log && - test_cmp log-hg log-git + test_cmp_expected log ' test_expect_success 'hg author' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && + ( + git init -q gitrepo && + cd gitrepo && - for x in hg git - do - ( - git init -q gitrepo-$x && - cd gitrepo-$x && + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + git checkout -q -b not-master + ) && - echo alpha > alpha && - git add alpha && - git commit -m "add alpha" && - git checkout -q -b not-master - ) && + ( + hg_clone gitrepo hgrepo && + cd hgrepo && - ( - hg_clone_$x gitrepo-$x hgrepo-$x && - cd hgrepo-$x && + hg co master && + echo beta > beta && + hg add beta && + hg commit -u "test" -m "add beta" && - hg co master && - echo beta > beta && - hg add beta && - hg commit -u "test" -m "add beta" && + echo gamma >> beta && + hg commit -u "test (comment)" -m "modify beta" && - echo gamma >> beta && - hg commit -u "test (comment)" -m "modify beta" && + echo gamma > gamma && + hg add gamma && + hg commit -u "" -m "add gamma" && - echo gamma > gamma && - hg add gamma && - hg commit -u "" -m "add gamma" && + echo delta > delta && + hg add delta && + hg commit -u "name" -m "add delta" && - echo delta > delta && - hg add delta && - hg commit -u "name" -m "add delta" && + echo epsilon > epsilon && + hg add epsilon && + hg commit -u "name epsilon && - hg add epsilon && - hg commit -u "name zeta && + hg add zeta && + hg commit -u " test " -m "add zeta" && - echo zeta > zeta && - hg add zeta && - hg commit -u " test " -m "add zeta" && + echo eta > eta && + hg add eta && + hg commit -u "test < test@example.com >" -m "add eta" && - echo eta > eta && - hg add eta && - hg commit -u "test < test@example.com >" -m "add eta" && + echo theta > theta && + hg add theta && + hg commit -u "test >test@example.com>" -m "add theta" && - echo theta > theta && - hg add theta && - hg commit -u "test >test@example.com>" -m "add theta" && + echo iota > iota && + hg add iota && + hg commit -u "test example com>" -m "add iota" + ) && - echo iota > iota && - hg add iota && - hg commit -u "test example com>" -m "add iota" - ) && + hg_push hgrepo gitrepo && + hg_clone gitrepo hgrepo2 && - hg_push_$x hgrepo-$x gitrepo-$x && - hg_clone_$x gitrepo-$x hgrepo2-$x && - - hg_log hgrepo2-$x > "hg-log-$x" && - git_log gitrepo-$x > "git-log-$x" - done && - - test_cmp hg-log-hg hg-log-git && - test_cmp git-log-hg git-log-git + cmp_hg_to_git_log ' test_expect_success 'hg branch' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && + ( + git init -q gitrepo && + cd gitrepo && - for x in hg git - do - ( - git init -q gitrepo-$x && - cd gitrepo-$x && + echo alpha > alpha && + git add alpha && + git commit -q -m "add alpha" && + git checkout -q -b not-master + ) && - echo alpha > alpha && - git add alpha && - git commit -q -m "add alpha" && - git checkout -q -b not-master - ) && + ( + hg_clone gitrepo hgrepo && - ( - hg_clone_$x gitrepo-$x hgrepo-$x && + cd hgrepo && + hg -q co master && + hg mv alpha beta && + hg -q commit -m "rename alpha to beta" && + hg branch gamma | grep -v "permanent and global" && + hg -q commit -m "started branch gamma" + ) && - cd hgrepo-$x && - hg -q co master && - hg mv alpha beta && - hg -q commit -m "rename alpha to beta" && - hg branch gamma | grep -v "permanent and global" && - hg -q commit -m "started branch gamma" - ) && + hg_push hgrepo gitrepo && + hg_clone gitrepo hgrepo2 && - hg_push_$x hgrepo-$x gitrepo-$x && - hg_clone_$x gitrepo-$x hgrepo2-$x && - - hg_log hgrepo2-$x > "hg-log-$x" && - git_log gitrepo-$x > "git-log-$x" - done && - - test_cmp hg-log-hg hg-log-git && - test_cmp git-log-hg git-log-git + cmp_hg_to_git_log ' test_expect_success 'hg tags' ' - test_when_finished "rm -rf gitrepo* hgrepo*" && + ( + git init -q gitrepo && + cd gitrepo && - for x in hg git - do - ( - git init -q gitrepo-$x && - cd gitrepo-$x && + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + git checkout -q -b not-master + ) && - echo alpha > alpha && - git add alpha && - git commit -m "add alpha" && - git checkout -q -b not-master - ) && + ( + hg_clone gitrepo hgrepo && - ( - hg_clone_$x gitrepo-$x hgrepo-$x && + cd hgrepo && + hg co master && + hg tag alpha + ) && - cd hgrepo-$x && - hg co master && - hg tag alpha - ) && + hg_push hgrepo gitrepo && + hg_clone gitrepo hgrepo2 && - hg_push_$x hgrepo-$x gitrepo-$x && - hg_clone_$x gitrepo-$x hgrepo2-$x && + ( + git -C gitrepo tag -l && + hg_log hgrepo2 && + cat hgrepo2/.hgtags + ) > output && - ( - git --git-dir=gitrepo-$x/.git tag -l && - hg_log hgrepo2-$x && - cat hgrepo2-$x/.hgtags - ) > "output-$x" - done && - - test_cmp output-hg output-git + test_cmp_expected output ' test_done diff --git a/test/main.t b/test/main.t index 76ddac5..d7f3cf4 100755 --- a/test/main.t +++ b/test/main.t @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # Copyright (c) 2012 Felipe Contreras # diff --git a/test/test-lib.sh b/test/test-lib.sh index 2dfb7cc..1e44153 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash : "${SHARNESS_TEST_SRCDIR:=$(cd "$(dirname "${BASH_SOURCE-$0}")" && pwd)}"