git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Sojka <sojkam1@fel.cvut.cz>
To: git@vger.kernel.org
Cc: j.sixt@viscovery.net, Johannes.Schindelin@gmx.de,
	gitster@pobox.com, Michal Sojka <sojkam1@fel.cvut.cz>
Subject: [PATCHv5 2/2] filter-branch: Add tests for submodules in tree-filter
Date: Fri, 29 Jan 2010 16:27:05 +0100	[thread overview]
Message-ID: <1264778825-26401-2-git-send-email-sojkam1@fel.cvut.cz> (raw)
In-Reply-To: <201001291620.35269.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 |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index 9503875..a7f0791 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -306,4 +306,49 @@ test_expect_success '--remap-to-ancestor with filename filters' '
 	test $orig_invariant = $(git rev-parse invariant)
 '
 
+test_expect_success 'setup submodule' '
+	rm -rf ?* .git &&
+	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 rev-parse 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_expect_success 'test that submodule was rewritten' '
+	test -f submod/file &&
+	test $orig_head != `git rev-parse 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_expect_success 'test that revision was replaced' '
+	test "`git ls-files --stage submod`" = "160000 0123456789012345678901234567890123456789 0	submod" &&
+	test $orig_head != `git rev-parse HEAD`
+'
+
 test_done
-- 
1.6.6

      parent reply	other threads:[~2010-01-29 15:27 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-25 13:06 filter-branch fix and tests Michal Sojka
2010-01-25 13:06 ` [PATCH 1/2] filter-branch: Fix to allow replacing submodules with another content Michal Sojka
2010-01-25 13:06 ` [PATCH 2/2] filter-branch: Add tests for submodules Michal Sojka
     [not found] ` <alpine.DEB.1.00.1001261939420.4641@intel-tinevez-2-302>
2010-01-27 15:49   ` [PATCH] filter-branch fix and tests Michal Sojka
2010-01-27 16:18     ` Johannes Sixt
2010-01-27 23:41       ` Michal Sojka
2010-01-27 23:55         ` [PATCHv3] filter-branch: Add tests for submodules Michal Sojka
2010-01-28  0:14           ` Junio C Hamano
2010-01-28  9:02             ` Michal Sojka
2010-01-28  9:08               ` [PATCHv4 1/2] filter-branch: Fix to allow replacing submodules with another content Michal Sojka
2010-01-28  9:08               ` [PATCHv4 2/2] filter-branch: Add tests for submodules in tree-filter Michal Sojka
2010-01-28 21:57                 ` Junio C Hamano
2010-01-29 15:20                   ` Michal Sojka
2010-01-29 15:27                     ` [PATCHv5 1/2] filter-branch: Fix to allow replacing submodules with another content Michal Sojka
2010-01-29 15:27                     ` Michal Sojka [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1264778825-26401-2-git-send-email-sojkam1@fel.cvut.cz \
    --to=sojkam1@fel.cvut.cz \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j.sixt@viscovery.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).