threads / discuss / 17754

git filter-branch examples on man page are outdated

Subject: git filter-branch examples on man page are outdated

## tl;dr

4 messages between Feb 12, 2009 and Feb 12, 2009.

replies: 3people: 4as markdown or json

Jeffrey Chupp· Feb 12, 2009, 16:33 UTC · lore

http://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html mb:repo jeff$ ls db/data/us_cities.data.insert.sql db/data/us_cities.data.insert.sql mb:repo jeff$ git filter-branch --index-filter 'git rm -f --cached db/ data/us_cities.data.insert.sql' HEAD Rewrite d54d3041d7d5739b3093f802fc1ef45f3c8e5e16 (1/2713)fatal: pathspec 'db/data/us_cities.data.insert.sql' did not match any files index filter failed: git rm -f --cached db/data/ us_cities.data.insert.sql

ekidd speculated that since the file wasn't in the first version of the repo, it was borking. He was right. Next he told me to try

git filter-branch --index-filter 'git rm -f --cached db/data/ us_cities.data.insert.sql || true'

which worked.  He also asked me to point this out on this list:

ekidd:semanticart: Commit 8c1ce0f46b85d40f215084eed7313896300082df changed the behavior without updating the example in the man page. If you're feeling inspired, you may want to post this to git@vger.

Thanks and apologies for any etiquette breaches, I don't know what I'm doing :)

-jeff
Jacob Helwig· Feb 12, 2009, 18:01 UTC · re: Jeffrey Chupp · lore

[PATCH] Add 'rm -f' equivalent to 'git rm' example of filter-branch --index-filter

Signed-off-by: Jacob Helwig <jacob.helwig@gmail.com>
---
 Documentation/git-filter-branch.txt |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
index 451950b..1fbbbb4 100644
--- a/Documentation/git-filter-branch.txt
+++ b/Documentation/git-filter-branch.txt
@@ -212,6 +212,11 @@ git filter-branch --index-filter 'git rm --cached filename' HEAD
 
 Now, you will get the rewritten history saved in HEAD.
 
+As with using `rm filename`, `git rm --cached filename` will fail
+if the file is absent from the tree of a commit.  If it is not important
+whether the file is already absent from the tree, you can use
+`git rm --cached --ignore-unmatch filename` instead.
+
 To rewrite the repository to look as if `foodir/` had been its project
 root, and discard all other history:
 
-- 
1.6.1.1
Junio C Hamano· Feb 12, 2009, 22:47 UTC · re: Jacob Helwig · lore

Re: [PATCH] Add 'rm -f' equivalent to 'git rm' example of filter-branch --index-filter

Jacob Helwig <jacob.helwig@gmail.com> writes:
Show 20 quoted lines
> Signed-off-by: Jacob Helwig <jacob.helwig@gmail.com>
> ---
>  Documentation/git-filter-branch.txt |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
> index 451950b..1fbbbb4 100644
> --- a/Documentation/git-filter-branch.txt
> +++ b/Documentation/git-filter-branch.txt
> @@ -212,6 +212,11 @@ git filter-branch --index-filter 'git rm --cached filename' HEAD
>  
>  Now, you will get the rewritten history saved in HEAD.
>  
> +As with using `rm filename`, `git rm --cached filename` will fail
> +if the file is absent from the tree of a commit.  If it is not important
> +whether the file is already absent from the tree, you can use
> +`git rm --cached --ignore-unmatch filename` instead.
> +
>  To rewrite the repository to look as if `foodir/` had been its project
>  root, and discard all other history:
Looks sane to me.  Objections?
Johannes Schindelin· Feb 12, 2009, 23:06 UTC · re: Junio C Hamano · lore

Re: [PATCH] Add 'rm -f' equivalent to 'git rm' example of filter-branch --index-filter

Hi,
On Thu, 12 Feb 2009, Junio C Hamano wrote:
Show 25 quoted lines
> Jacob Helwig <jacob.helwig@gmail.com> writes:
> 
> > Signed-off-by: Jacob Helwig <jacob.helwig@gmail.com>
> > ---
> >  Documentation/git-filter-branch.txt |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
> > index 451950b..1fbbbb4 100644
> > --- a/Documentation/git-filter-branch.txt
> > +++ b/Documentation/git-filter-branch.txt
> > @@ -212,6 +212,11 @@ git filter-branch --index-filter 'git rm --cached filename' HEAD
> >  
> >  Now, you will get the rewritten history saved in HEAD.
> >  
> > +As with using `rm filename`, `git rm --cached filename` will fail
> > +if the file is absent from the tree of a commit.  If it is not important
> > +whether the file is already absent from the tree, you can use
> > +`git rm --cached --ignore-unmatch filename` instead.
> > +
> >  To rewrite the repository to look as if `foodir/` had been its project
> >  root, and discard all other history:
> 
> 
> Looks sane to me.  Objections?
Definitely no objections from me.

Ciao, Dscho

← back to recent threads