#!/bin/bash
set -e
move() {
mkdir -p $(dirname $2)
git mv $1 $2
}
move core/src/main/java/hudson/tasks/Maven.java KEEP/src/main/java/hudson/tasks/Maven.java
move core/src/main/java/hudson/tasks/_maven KEEP/src/main/java/hudson/tasks/_maven
move core/src/main/java/jenkins/mvn KEEP/src/main/java/jenkins/mvn
move core/src/main/resources/hudson/tasks/Maven KEEP/src/main/resources/hudson/tasks/Maven
move core/src/main/resources/jenkins/mvn KEEP/src/main/resources/jenkins/mvn
move test/src/test/java/hudson/tasks/MavenTest.java KEEP/src/test/java/hudson/tasks/MavenTest.java
move core/src/test/java/hudson/tasks/_maven KEEP/src/test/java/hudson/tasks/_maven
git ls-files -z | fgrep -v -z -Z KEEP | xargs -0 git rm -q
git mv KEEP/* .
rmdir KEEP
# TODO for debugging:
git st | egrep -i 'maven|mvn'
git reset --hard HEAD
Possible script for git filter-branch --tree-filter: