Sun Chao is my former colleague at Huawei. He finds a bug of git-pack-redundant. When I was in Huawei, I develop a program to manage fork tree of repositories, using alternate repo for forks to save disk spaces. Sun Chao finds if there are too many packs and many of them overlap each other, running `git pack-redundant --all` will exhaust all memories and the process will be killed by kernel. There is a script in commit log of commit 2/3, which can be used to create a repository with lots of redundant packs. Running `git pack-redundant --all` in it can reproduce this issue. Updates of reroll v2: * Add test cases in t5322. * Fix a bug in patch 2/3. -- Jiang Xin (1): t5322: test cases for git-pack-redundant Sun Chao (2): pack-redundant: new algorithm to find min packs pack-redundant: remove unused functions builtin/pack-redundant.c | 181 ++++++++++++++------------------------ t/t5322-pack-redundant.sh | 69 +++++++++++++++ 2 files changed, 137 insertions(+), 113 deletions(-) create mode 100755 t/t5322-pack-redundant.sh -- 2.20.0.3.gc45e608566