Documentation/git-filter-branch: Remove Useless Use of Plumbing
PATCH 1/1 Documentation/git-filter-branch: Remove Useless Use of Plumbing
The example to remove file using index-filter uses git update-index
--remove where git rm --cached works as well.
---
Documentation/git-filter-branch.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Documentation/git-filter-branch.txt +1 -1
@@ -191,7 +191,7 @@ Thus you may instead want to use `rm -f filename` as the script. A significantly faster version: -------------------------------------------------------------------------- -git filter-branch --index-filter 'git update-index --remove filename' HEAD +git filter-branch --index-filter 'git rm --cached filename' HEAD -------------------------------------------------------------------------- Now, you will get the rewritten history saved in HEAD.
Quoted 2 lines · Petr Baudis
The example to remove file using index-filter uses git update-index
--remove where git rm --cached works as well.
I am not sure "works as well" is a good enough justification to choose a Porcelain command over a plumbing command in this particular context. After all, filter-branch is a scripting enviornment, isn't it?
There also is another subtle difference. "git rm" takes pathspecs while "update-index" takes paths.
So after running one of these commands:
$ git rm --cached 'Makefil?' $ git update-index --force-remove 'Makefil?'
output from:
$ git diff --cached --stat
would be different.
Quoted 8 lines · Junio C Hamano
Quoted 2 lines · Petr Baudis
The example to remove file using index-filter uses git update-index
--remove where git rm --cached works as well.I am not sure "works as well" is a good enough justification to choose a Porcelain command over a plumbing command in this particular context. After all, filter-branch is a scripting enviornment, isn't it?
But one of the few that are regularly used even by "mere users", who would be probably put off unnecessarily by using this mysterious command. (We might also say that I'm testing Dscho's suggestions, though this patch was of course provoked by a "huh" of a user I was helping.)
Quoted 5 lines
There also is another subtle difference. "git rm" takes pathspecs while "update-index" takes paths.
So after running one of these commands:
Quoted 8 lines
$ git rm --cached 'Makefil?' $ git update-index --force-remove 'Makefil?'output from:
$ git diff --cached --statwould be different.
I don't think this is relevant for the example in question. Users are as likely to be bit by or take advantage of this as by regular git rm usage.
Signature · 3 lines
Petr "Pasky" Baudis As in certain cults it is possible to kill a process if you know its true name. -- Ken Thompson and Dennis M. Ritchie