Hi, I've been playing with git-filter-branch, and was wondering how objects from the original branch are supposed to be removed. It looks like removing the refs/original/* refs is not enough. And it also looks like when all references seem to be removed, git-prune doesn't fully do its job... See the following transcript: $ git init Initialized empty Git repository in .git/ $ echo a > a ; echo b > b $ git add a b $ git commit -m "add a b" Created initial commit b8875b1: add a b 2 files changed, 2 insertions(+), 0 deletions(-) create mode 100644 a create mode 100644 b $ echo a >> a $ git commit -a -m "update a" Created commit fd97ed9: update a 1 files changed, 1 insertions(+), 0 deletions(-) $ git-filter-branch --index-filter 'git-update-index --remove b' HEAD Rewrite fd97ed9a2fef62eca824361fb62269e3c1fc0fb8 (2/2) Ref 'refs/heads/master' was rewritten These refs were rewritten: fatal: Not a git repository: '/tmp/test/.git-rewrite/t/../../.git' (This is a message that happens when GIT_DIR is not set, I guess the patches that were sent a few days ago on the list fix this issue) $ git-cat-file commit b8875b1 tree 3683f870be446c7cc05ffaef9fa06415276e1828 author Mike Hommey <mh@xxxxxxxxxxxxxxxxxxxxxxx> 1187369087 +0200 committer Mike Hommey <mh@xxxxxxxxxxxxxxxxxxxxxxx> 1187369087 +0200 add a b (not a surprise, since we still have the refs/original/refs/heads/master ref) $ git-update-ref -d refs/original/refs/heads/master fd97ed9 $ git-cat-file commit b8875b1 tree 3683f870be446c7cc05ffaef9fa06415276e1828 author Mike Hommey <mh@xxxxxxxxxxxxxxxxxxxxxxx> 1187369087 +0200 committer Mike Hommey <mh@xxxxxxxxxxxxxxxxxxxxxxx> 1187369087 +0200 add a b $ git fsck (okay, so it is still here, and obviously still referenced ; it appears to be referenced in .git/logs/...) $ rm .git/logs/refs/heads/master $ rm .git/logs/HEAD $ git fsck dangling commit fd97ed9a2fef62eca824361fb62269e3c1fc0fb8 (finally ! So here is a first question: is there a proper way to clean this out ? rm of the logs sounds brutal...) $ git-prune -n 3683f870be446c7cc05ffaef9fa06415276e1828 tree b8875b1095616c1e7e8f8ffce8ebc172059367ea commit fd97ed9a2fef62eca824361fb62269e3c1fc0fb8 commit $ git-cat-file commit fd97ed9a2fef62eca824361fb62269e3c1fc0fb8 tree c1f89248e4b6e47a4529d50d37b0840a14d2efb0 parent b8875b1095616c1e7e8f8ffce8ebc172059367ea author Mike Hommey <mh@xxxxxxxxxxxxxxxxxxxxxxx> 1187369110 +0200 committer Mike Hommey <mh@xxxxxxxxxxxxxxxxxxxxxxx> 1187369110 +0200 update a (Why doesn't prune -n tell me it would remove c1f89248e4b6e47a4529d50d37b0840a14d2efb0, which it should, AFAIK ?) Mike - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html