PHPackages                             concrete5/incremental-filter-branch - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. concrete5/incremental-filter-branch

Abandoned → [concretecms/incremental-filter-branch](/?search=concretecms%2Fincremental-filter-branch)Library[CLI &amp; Console](/categories/cli)

concrete5/incremental-filter-branch
===================================

Shell script to call git filter-branch in an incremental way

1.0.2(8y ago)4253[3 issues](https://github.com/concrete5/incremental-filter-branch/issues)MITShell

Since Mar 19Pushed 2y ago5 watchersCompare

[ Source](https://github.com/concrete5/incremental-filter-branch)[ Packagist](https://packagist.org/packages/concrete5/incremental-filter-branch)[ Docs](https://github.com/concrete5/incremental-filter-branch)[ RSS](/packages/concrete5-incremental-filter-branch/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)DependenciesVersions (4)Used By (0)

[![TravisCI Build Status](https://camo.githubusercontent.com/8dc1243cb41fbb5d4b6fd27d99d31b5d63c4d1dcc10a236662faca973bc54816/68747470733a2f2f7472617669732d63692e6f72672f636f6e6372657465352f696e6372656d656e74616c2d66696c7465722d6272616e63682e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/concrete5/incremental-filter-branch)

Introduction
------------

[](#introduction)

[`git filter-branch`](https://git-scm.com/docs/git-filter-branch) is a really nice git feature. For instance, it allows fancy stuff like subtree-splitting.

Problems may arise when the repository contains a lot of commits: this operation can take a lot of time.

Luckily recent versions of git allow us to perform this operation in an incremental way: the first time `filter-branch` still requires some time, but following calls can be very fast.

Requirements
------------

[](#requirements)

- git 2.16.0 or newer
- common commands (`sed`, `grep`, `md5sum`, `cut`, ...)

Usage
-----

[](#usage)

Get the script and read the syntax using the `--help` option.

Examples
--------

[](#examples)

```
./bin/incremental-git-filterbranch \
    --branch-whitelist 'develop master rx:release\/.*' \
    --tag-blacklist 'rx:5\..*' \
    --tags-plan all --tags-max-history-lookup 10 \
    https://github.com/concrete5/concrete5.git \
    '--prune-empty --subdirectory-filter concrete' \
    git@github.com:concrete5/concrete5-core.git
```

Legal stuff
-----------

[](#legal-stuff)

Use at your own risk. [MIT License](https://github.com/concrete5/incremental-filter-branch/blob/master/LICENSE).

Credits
-------

[](#credits)

Special thanks to [Ian Campbell](https://github.com/ijc) for the implementation of the `--state-branch` option of git, and his hints about how it can be used. This script works only thanks to him (and if it doesn't work I'm the only person to blame).

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance5

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 94.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

3

Last Release

2971d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/842d2fe13512e82f0f9b6f0d79dba8eba1595a3cefd31dd51723960436133307?d=identicon)[KorvinSzanto](/maintainers/KorvinSzanto)

![](https://www.gravatar.com/avatar/d8d8902700dc0979d0cb96ff69a17808f74823c0c2b4ef75d91aba2f66d6f5fb?d=identicon)[aembler](/maintainers/aembler)

---

Top Contributors

[![mlocati](https://avatars.githubusercontent.com/u/928116?v=4)](https://github.com/mlocati "mlocati (37 commits)")[![aembler](https://avatars.githubusercontent.com/u/527809?v=4)](https://github.com/aembler "aembler (1 commits)")[![KorvinSzanto](https://avatars.githubusercontent.com/u/1007419?v=4)](https://github.com/KorvinSzanto "KorvinSzanto (1 commits)")

---

Tags

bashfilter-branchgitincrementalposix-shsubtree-splitshellposixgitbashprogressiveincrementalfilter-branch

### Embed Badge

![Health badge](/badges/concrete5-incremental-filter-branch/health.svg)

```
[![Health](https://phpackages.com/badges/concrete5-incremental-filter-branch/health.svg)](https://phpackages.com/packages/concrete5-incremental-filter-branch)
```

###  Alternatives

[psy/psysh

An interactive shell for modern PHP.

9.8k545.6M713](/packages/psy-psysh)[mikehaertl/php-shellcommand

An object oriented interface to shell commands

32437.5M61](/packages/mikehaertl-php-shellcommand)[seregazhuk/php-watcher

Automatically restart PHP application once the source code changes

394137.8k5](/packages/seregazhuk-php-watcher)[alecrabbit/php-console-spinner

Extremely flexible spinner for \[async\] php cli applications

24032.0k2](/packages/alecrabbit-php-console-spinner)[stepanenko3/nova-command-runner

Laravel Nova tool for running Artisan and bash(shell) commands.

36983.0k](/packages/stepanenko3-nova-command-runner)[merlinthemagic/mts

PHP Automation Tools

1144.5k](/packages/merlinthemagic-mts)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
