[PATCHv5 1/2] filter-branch: Fix to allow replacing submodules with another content

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Michal Sojka
Date: Friday, January 29, 2010 - 8:27 am

When git filter-branch is used to replace a submodule with another
content, it always fails on the first commit. Consider a repository with
submod directory containing a submodule. If I want to remove the
submodule and replace it with a file, the following command fails.

git filter-branch --tree-filter 'rm -rf submod &&
				 git rm -q submod &&
				 mkdir submod &&
				 touch submod/file'

The error message is:
error: submod: is a directory - add files inside instead

The reason is that git diff-index, which generates the first part of the
list of files updated by the tree filter, emits also the removed
submodule even if it was replaced by a real directory.

Adding --ignored-submodules solves the problem for me and
tests in t7003-filter-branch.sh pass correctly.

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
---
 git-filter-branch.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 195b5ef..7c4ad7d 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -331,7 +331,7 @@ while read commit parents; do
 			die "tree filter failed: $filter_tree"
 
 		(
-			git diff-index -r --name-only $commit &&
+			git diff-index -r --name-only --ignore-submodules $commit &&
 			git ls-files --others
 		) > "$tempdir"/tree-state || exit
 		git update-index --add --replace --remove --stdin \
-- 
1.6.6

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
filter-branch fix and tests , Michal Sojka, (Mon Jan 25, 6:06 am)
Re: [PATCH] filter-branch fix and tests, Michal Sojka, (Wed Jan 27, 8:49 am)
Re: [PATCH] filter-branch fix and tests, Johannes Sixt, (Wed Jan 27, 9:18 am)
Re: [PATCH] filter-branch fix and tests, Michal Sojka, (Wed Jan 27, 4:41 pm)
[PATCHv3] filter-branch: Add tests for submodules, Michal Sojka, (Wed Jan 27, 4:55 pm)
Re: [PATCHv3] filter-branch: Add tests for submodules, Junio C Hamano, (Wed Jan 27, 5:14 pm)
Re: [PATCHv3] filter-branch: Add tests for submodules, Michal Sojka, (Thu Jan 28, 2:02 am)
[PATCHv5 1/2] filter-branch: Fix to allow replacing submod ..., Michal Sojka, (Fri Jan 29, 8:27 am)