Re: [bug] filter-branch skipping removed files
> It turn out I was able to fix the problem, it was almost too easy:
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 22b6ed4..493c81e 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -281,7 +281,7 @@ while read commit parents; do
die "Could not checkout the index"
# files that $commit removed are now still in the
working tree;
# remove them, else they would be added again
- git clean -q -f -x
+ git clean -d -q -f -x
eval "$filter_tree" < /dev/null ||
die "tree filter failed: $filter_tree"
Previously wrong diff, use the one above instead.
why? : changed the installed copy, tested, then reapplied the '-d'
diff (from memory) to the wrong line in my git workarea to get the diff.
- jfv
> It was my first try, just because I noticed that git-clean was
> giving a 'warning' of non removed directory. At that point I just
> wanted to remove the warning ... but that was enough to fix the
> problem !
> I don't know if it's a real fix, but at least it does correct the
> problem I'm having.
> I have no idea of the implication of what I just touched. the
> 'real' problem might very well be somewhere else.
>
>
> Here is a simple test that show the problem.
>
> $: mkdir test ; cd test
> $: git init
> Initialized empty Git repository in .git/
> $: echo 'line A' > a.txt
> $: echo 'line B' > b.txt
> $: mkdir subdir
> $: echo 'line subA' > subdir/a.txt
> $: echo 'line subB' > subdir/b.txt
> $: git add *
> $: git commit -m 'first commit'
> Created initial commit f264d57: first commit
> 4 files changed, 4 insertions(+), 0 deletions(-)
> create mode 100644 a.txt
> create mode 100644 b.txt
> create mode 100644 subdir/a.txt
> create mode 100644 subdir/b.txt
> $: git rm b.txt subdir/b.txt
> rm 'b.txt'
> rm 'subdir/b.txt'
> $: git commit -m 'remove b files'
> Created commit b064598: remove b files
> 2 files changed, 0 insertions(+), 2 deletions(-)
> delete mode 100644 b.txt
> delete mode 100644 subdir/b.txt
> $: echo 'line AA' >> a.txt
> $: echo 'line subAA' >> subdir/a.txt
> $: git add *
> $: git commit -m 'modified a files'
> Created commit 0f914cb: modified a files
> 2 files changed, 2 insertions(+), 0 deletions(-)
> $: git rm subdir/a.txt
> rm 'subdir/a.txt'
> $: git commit -m 'removed all sub files'
> Created commit 41c0de7: removed all sub files
> 1 files changed, 0 insertions(+), 2 deletions(-)
> delete mode 100644 subdir/a.txt
> $: ls -la
> ...git a.txt
> $: echo 'line AAA' >> a.txt
> $: git add *
> $: git commit -m 'modified a.txt'
> Created commit c21e292: modified a.txt
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
>
>
> $: git filter-branch --tree-filter 'ls -lR' # do nothing, juste
> rewrite itself
> Rewrite f264d57f476858aa4ddbf70358500c3be7298048 (1/5)total 16
> -rw-r--r-- 1 jfv jfv 7 30 mar 09:38 a.txt
> -rw-r--r-- 1 jfv jfv 7 30 mar 09:38 b.txt
> drwxr-xr-x 4 jfv jfv 136 30 mar 09:38 subdir
>
> .../subdir:
> total 16
> -rw-r--r-- 1 jfv jfv 10 30 mar 09:38 a.txt
> -rw-r--r-- 1 jfv jfv 10 30 mar 09:38 b.txt
> Rewrite b064598f57b4679febaeddda6dfbde43a935796a (2/5)total 8
> -rw-r--r-- 1 jfv jfv 7 30 mar 09:38 a.txt
> drwxr-xr-x 3 jfv jfv 102 30 mar 09:38 subdir
>
> .../subdir:
> total 8
> -rw-r--r-- 1 jfv jfv 10 30 mar 09:38 a.txt
> Rewrite 0f914cb21ab65aac5d966a9552bfb63aa73a996a (3/5)total 8
> -rw-r--r-- 1 jfv jfv 15 30 mar 09:38 a.txt
> drwxr-xr-x 3 jfv jfv 102 30 mar 09:38 subdir
>
> .../subdir:
> total 8
> -rw-r--r-- 1 jfv jfv 21 30 mar 09:38 a.txt
> Rewrite 41c0de77880245c23bb56b0b1936564c7adf63de (4/5)Not removing
> subdir/
> total 8
> -rw-r--r-- 1 jfv jfv 15 30 mar 09:38 a.txt
> drwxr-xr-x 3 jfv jfv 102 30 mar 09:38 subdir
>
> .../subdir:
> total 8
> -rw-r--r-- 1 jfv jfv 21 30 mar 09:38 a.txt
> Rewrite c21e292486500afa3a0ded69f4edf30de11d42d1 (5/5)Not removing
> subdir/
> total 8
> -rw-r--r-- 1 jfv jfv 24 30 mar 09:38 a.txt
> drwxr-xr-x 3 jfv jfv 102 30 mar 09:38 subdir
>
> .../subdir:
> total 8
> -rw-r--r-- 1 jfv jfv 21 30 mar 09:38 a.txt
>
> Ref 'refs/heads/master' was rewritten
>
>
>
> $: git log -p
> commit c3715041ae38ccc6596986fd1927aff65a3d14bf
> Author: Jean-François Veillette <jfveillette@os.ca>
> Date: Sun Mar 30 09:35:01 2008 -0400
>
> modified a.txt
>
> diff --git a/a.txt b/a.txt
> index 457599c..36d130e 100644
> --- a/a.txt
> +++ b/a.txt
> @@ -1,2 +1,3 @@
> line A
> line AA
> +line AAA
>
> commit d45ccff19c3c81f8c78a22ed5c2436c7a5b99f7c
> Author: Jean-François Veillette <jfveillette@os.ca>
> Date: Sun Mar 30 09:33:48 2008 -0400
>
> removed all sub files
>
> commit 0f914cb21ab65aac5d966a9552bfb63aa73a996a
> Author: Jean-François Veillette <jfveillette@os.ca>
> Date: Sun Mar 30 09:33:07 2008 -0400
>
> modified a files
>
> diff --git a/a.txt b/a.txt
> index 102c5da..457599c 100644
> --- a/a.txt
> +++ b/a.txt
> @@ -1 +1,2 @@
> line A
> +line AA
> diff --git a/subdir/a.txt b/subdir/a.txt
> index 56e593a..b215539 100644
> --- a/subdir/a.txt
> +++ b/subdir/a.txt
> @@ -1 +1,2 @@
> line subA
> +line subAA
>
> commit b064598f57b4679febaeddda6dfbde43a935796a
> Author: Jean-François Veillette <jfveillette@os.ca>
> Date: Sun Mar 30 09:32:13 2008 -0400
>
> remove b files
>
> diff --git a/b.txt b/b.txt
> deleted file mode 100644
> index 346d560..0000000
> --- a/b.txt
> +++ /dev/null
> @@ -1 +0,0 @@
> -line B
> diff --git a/subdir/b.txt b/subdir/b.txt
> deleted file mode 100644
> index 7cbec67..0000000
> --- a/subdir/b.txt
> +++ /dev/null
> @@ -1 +0,0 @@
> -line subB
>
> commit f264d57f476858aa4ddbf70358500c3be7298048
> Author: Jean-François Veillette <jfveillette@os.ca>
> Date: Sun Mar 30 09:29:28 2008 -0400
>
> first commit
>
> diff --git a/a.txt b/a.txt
> new file mode 100644
> index 0000000..102c5da
> --- /dev/null
> +++ b/a.txt
> @@ -0,0 +1 @@
> +line A
> diff --git a/b.txt b/b.txt
> new file mode 100644
> index 0000000..346d560
> --- /dev/null
> +++ b/b.txt
> @@ -0,0 +1 @@
> +line B
> diff --git a/subdir/a.txt b/subdir/a.txt
> new file mode 100644
> index 0000000..56e593a
> --- /dev/null
> +++ b/subdir/a.txt
> @@ -0,0 +1 @@
> +line subA
> diff --git a/subdir/b.txt b/subdir/b.txt
> new file mode 100644
> index 0000000..7cbec67
> --- /dev/null
> +++ b/subdir/b.txt
> @@ -0,0 +1 @@
> +line subB
>
>
> - jfv
>
>
> --
> 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