git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCHv4 2/2] filter-branch: Add tests for submodules in tree-filter

From
Michal Sojka <sojkam1@fel.cvut.cz>
Date
Jan 28, 2010, 09:08 UTC
Message-ID
<1264669727-9977-2-git-send-email-sojkam1@fel.cvut.cz>
In-Reply-To
<201001281002.03232.sojkam1@fel.cvut.cz>
Add tests to make sure:
1) a submodule can be removed and its content replaced with regular
   files ('rewrite submodule with another content'). This test passes
   only with the previous patch applied.
2) it is possible to replace submodule revision by direct index
   manipulation ('replace submodule revision'). Although it would be
   better to run such a filter in --index-filter, this test shows that
   this functionality is not broken by the previous patch. This
   succeeds both with and without the previous patch.
Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
---
 t/t7003-filter-branch.sh |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index 9503875..4ee8237 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -306,4 +306,43 @@ test_expect_success '--remap-to-ancestor with filename filters' '
 	test $orig_invariant = $(git rev-parse invariant)
 '
 
+test_expect_success 'setup submodule' '
+	rm -rf * .*
+	git init &&
+	test_commit file &&
+	mkdir submod &&
+	submodurl="$PWD/submod"
+	( cd submod &&
+	  git init &&
+	  test_commit file-in-submod ) &&
+	git submodule add "$submodurl"
+	git commit -m "added submodule" &&
+	test_commit add-file &&
+	( cd submod && test_commit add-in-submodule ) &&
+	git add submod &&
+	git commit -m "changed submodule" &&
+	git branch original HEAD
+'
+
+orig_head=`git show-ref --hash --head HEAD`
+
+test_expect_success 'rewrite submodule with another content' '
+	git filter-branch --tree-filter "test -d submod && {
+					 rm -rf submod &&
+					 git rm -rf --quiet submod &&
+					 mkdir submod &&
+					 : > submod/file
+					 } || :" HEAD &&
+	test $orig_head != `git show-ref --hash --head HEAD`
+'
+
+test_expect_success 'replace submodule revision' '
+	git reset --hard original &&
+	git filter-branch -f --tree-filter \
+	    "if git ls-files --error-unmatch -- submod > /dev/null 2>&1
+	     then git update-index --cacheinfo 160000 0123456789012345678901234567890123456789 submod
+	     fi" HEAD &&
+	test $orig_head != `git show-ref --hash --head HEAD`
+'
+
 test_done
-- 
1.6.6
Previous: Michal SojkaNext: Junio C Hamano
Message 11 of 15 in “filter-branch fix and tests”
  1. Michal SojkaJan 25, 2010
  2. 1/2 filter-branch: Fix to allow replacing submodules with another contentMichal Sojka, Jan 25, 2010
  3. 2/2 filter-branch: Add tests for submodulesMichal Sojka, Jan 25, 2010
  4. Michal SojkaJan 27, 2010
  5. Johannes SixtJan 27, 2010
  6. Michal SojkaJan 27, 2010
  7. [PATCHv3] filter-branch: Add tests for submodulesMichal Sojka, Jan 27, 2010
  8. Junio C HamanoJan 28, 2010
  9. Michal SojkaJan 28, 2010
  10. 1/2 filter-branch: Fix to allow replacing submodules with another contentMichal Sojka, Jan 28, 2010
  11. 2/2 filter-branch: Add tests for submodules in tree-filterMichal Sojka, Jan 28, 2010
  12. Junio C HamanoJan 28, 2010
  13. Michal SojkaJan 29, 2010
  14. 1/2 filter-branch: Fix to allow replacing submodules with another contentMichal Sojka, Jan 29, 2010
  15. 2/2 filter-branch: Add tests for submodules in tree-filterMichal Sojka, Jan 29, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.