Re: [PATCH 2/3] contrib/subtree/t: Added tests for .gitsubtree support
Paul Campbell wrote: Is there was a better way to verify that the push operation succeeds then grepping for a SHA1? IIRC then when a push fails, it will exit with nonzero status (so the usual -chaining would propagate the error). Alternatively, one can fetch, ls-remote, or enter the target repo and use history inspection tools to check that the result is as expected. Hope that helps, Jonathan -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/3] contrib/subtree/t: Added tests for .gitsubtree support
Paul Campbell wrote: Here's the updated version of the tests: Just a few more nits: --- a/contrib/subtree/t/t7900-subtree.sh +++ b/contrib/subtree/t/t7900-subtree.sh @@ -465,4 +465,37 @@ test_expect_success 'verify one file change per commit' ' [...] +test_expect_success 'change in subtree is pushed okay' ' + (cd copy0 create new_file git commit -mAdded new_file) Style: this would be easier to read with each command on a separate line, like so: ( cd copy0 create new_file test_tick git commit -m Add new_file ) [...] +test_expect_success 'pull into subtree okay' ' + git subtree add --prefix=copy1 sub1 + git subtree add --prefix=copy2 sub1 + (cd copy1 create new_file_in_copy1 git commit -mAdded new_file_in_copy1) Likewise (and as a nice side-benefit, it would avoid a long line that mailers like to wrap). + git subtree push --prefix=copy1 + git subtree pull --prefix=copy2 | grep ^ create mode 100644 copy2/new_file_in_copy1$ Likewise. More importantly, this forgets the exit status from git subtree pull, so if it were to segfault after writing appropriate output, the test wouldn't notice. How about: git subtree pull --prefix=copy2 output grep ^ create mode 100644 copy2/new_file_in_copy1\$ output Thanks, Jonathan -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/3] contrib/subtree/t: Added tests for .gitsubtree support
add: ensure details are added to .gitsubtree push: check for a SHA1 update line pull: add a file on one subtree, push it to a branch, then pull into another subtree containing the same branch and confirm the files match add: ensure stale .gitsubtree entry is replaced Signed-off-by: Paul Campbell pcampb...@kemitix.net --- contrib/subtree/t/t7900-subtree.sh | 30 ++ 1 file changed, 30 insertions(+) diff --git a/contrib/subtree/t/t7900-subtree.sh b/contrib/subtree/t/t7900-subtree.sh index 80d3399..4437dc6 100755 --- a/contrib/subtree/t/t7900-subtree.sh +++ b/contrib/subtree/t/t7900-subtree.sh @@ -465,4 +465,34 @@ test_expect_success 'verify one file change per commit' ' )) ' +# return to mainline +cd ../.. + +# .gitsubtree +test_expect_success 'added repository appears in .gitsubtree' ' +git subtree add --prefix=copy0 sub1 +grep ^copy0 \. sub1$ .gitsubtree +' + +test_expect_success 'change in subtree is pushed okay' ' +cd copy0 create new_file git commit -mAdded new_file +cd .. git subtree push --prefix=copy0 21 | \ +grep ^\s\{3\}[0-9a-f]\{7\}\.\.[0-9a-f]\{7\}\s\s[0-9a-f]\{40\}\s-\ssub1$ +' + +test_expect_success 'pull into subtree okay' ' +git subtree add --prefix=copy1 sub1 +git subtree add --prefix=copy2 sub1 +cd copy1 create new_file_in_copy1 git commit -mAdded new_file_in_copy1 +cd .. git subtree push --prefix=copy1 +git subtree pull --prefix=copy2 | grep ^ create mode 100644 copy2/new_file_in_copy1$ +' + +test_expect_success 'replace outdated entry in .gitsubtree' ' +echo copy3 . sub2 .gitsubtree +git subtree add --prefix=copy3 sub1 +(grep ^copy3 . sub2$ .gitsubtree die || true) +grep ^copy3 . sub1$ .gitsubtree +' + test_done -- 1.8.1.3.605.g02339dd -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/3] contrib/subtree/t: Added tests for .gitsubtree support
Hi Paul, Paul Campbell wrote: --- a/contrib/subtree/t/t7900-subtree.sh +++ b/contrib/subtree/t/t7900-subtree.sh @@ -465,4 +465,34 @@ test_expect_success 'verify one file change per commit' ' [...] +test_expect_success 'change in subtree is pushed okay' ' +cd copy0 create new_file git commit -mAdded new_file +cd .. git subtree push --prefix=copy0 21 | \ If it possible to restrict the chdirs to subshells, that can make the test more resiliant to early failures without breaking later tests. That is: ( cd copy0 create new_file test_tick git commit -m add new_file ) git subtree push --prefix=copy0 output 21 grep ... output +grep ^\s\{3\}[0-9a-f]\{7\}\.\.[0-9a-f]\{7\}\s\s[0-9a-f]\{40\}\s-\ssub1$ This might not be portable if I understand Documentation/CodingGuidelines correctly. [...] +(grep ^copy3 . sub2$ .gitsubtree die || true) ! grep ^copy3 . sub2\$ .gitsubtree Hope that helps, Jonathan -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/3] contrib/subtree/t: Added tests for .gitsubtree support
Hi Jonathan, On Fri, Feb 15, 2013 at 10:56 PM, Jonathan Nieder jrnie...@gmail.com wrote: Hi Paul, Paul Campbell wrote: --- a/contrib/subtree/t/t7900-subtree.sh +++ b/contrib/subtree/t/t7900-subtree.sh @@ -465,4 +465,34 @@ test_expect_success 'verify one file change per commit' ' [...] +test_expect_success 'change in subtree is pushed okay' ' +cd copy0 create new_file git commit -mAdded new_file +cd .. git subtree push --prefix=copy0 21 | \ If it possible to restrict the chdirs to subshells, that can make the test more resiliant to early failures without breaking later tests. That is: ( cd copy0 create new_file test_tick git commit -m add new_file ) git subtree push --prefix=copy0 output 21 grep ... output Adding them in. +grep ^\s\{3\}[0-9a-f]\{7\}\.\.[0-9a-f]\{7\}\s\s[0-9a-f]\{40\}\s-\ssub1$ This might not be portable if I understand Documentation/CodingGuidelines correctly. And it's ugly. But I believe it fits the don't use grep -E condition. Unless I missed something else. Is there was a better way to verify that the push operation succeeds then grepping for a SHA1? [...] +(grep ^copy3 . sub2$ .gitsubtree die || true) ! grep ^copy3 . sub2\$ .gitsubtree Hope that helps, Jonathan Thanks. That's a much neater way to do it. -- Paul [W] Campbell -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html