Skip to content

Instantly share code, notes, and snippets.

@JaswantTeja
Forked from mvaisakh/kernel-rebase.sh
Last active March 24, 2024 15:40
Show Gist options
  • Save JaswantTeja/5b58893f623827f603e94232148a3a84 to your computer and use it in GitHub Desktop.
Save JaswantTeja/5b58893f623827f603e94232148a3a84 to your computer and use it in GitHub Desktop.
A Kernel split changes committing script (used for splitting massive OEM kernel commits)
#!/usr/bin/bash
# author: Vaisakh Murali <mvaisakh@statixos.com>
#
# Before you start, make sure you squash all split OEM commits into
# one single commit. This will break down the single huge commit
# into multiple smaller commits, helping to cleanup OEM codes easier.
#
# Split OEM Changes
echo "Split OEM modifications"
echo "Initial reset"
git reset HEAD^ . >/dev/null 2>&1
echo "Splitting commits... (This might take a while, do not interrupt)"
DIFFPATHS=(
"arch/arm64/configs"
"arch/arm64/boot"
"arch/arm64"
"arch/arm/boot"
"arch/arm/configs"
"arch/arm"
"arch/x86"
"arch/openrisc"
"arch/ia64"
"arch/nds32"
"arch/mips"
"arch/hexagon"
"arch/c6x"
"arch/sh"
"arch/arc"
"arch/riscv"
"arch/nios2"
"arch/microblaze"
"arch/alpha"
"arch/sparc"
"arch/um"
"arch/h8300"
"arch/xtensa"
"arch/m68k"
"arch/s390"
"arch/parisc"
"arch/unicore32"
"arch/powerpc"
"drivers/accessibility"
"drivers/acpi"
"drivers/amba"
"drivers/android"
"drivers/ata"
"drivers/atm"
"drivers/auxdisplay"
"drivers/base"
"drivers/bcma"
"drivers/block"
"drivers/bluetooth"
"drivers/bus"
"drivers/cdrom"
"drivers/char"
"drivers/clk"
"drivers/clocksource"
"drivers/connector"
"drivers/counter"
"drivers/cpufreq"
"drivers/cpuidle"
"drivers/crypto"
"drivers/dax"
"drivers/dca"
"drivers/devfreq"
"drivers/dio"
"drivers/dma"
"drivers/dma-buf"
"drivers/edac"
"drivers/eisa"
"drivers/extcon"
"drivers/firewire"
"drivers/firmware"
"drivers/fpga"
"drivers/fsi"
"drivers/gnss"
"drivers/gpio"
"drivers/gpu"
"drivers/greybus"
"drivers/hid"
"drivers/hsi"
"drivers/hv"
"drivers/hwmon"
"drivers/hwspinlock"
"drivers/hwtracing"
"drivers/i2c"
"drivers/i3c"
"drivers/ide"
"drivers/idle"
"drivers/iio"
"drivers/infiniband"
"drivers/input"
"drivers/interconnect"
"drivers/iommu"
"drivers/ipack"
"drivers/irqchip"
"drivers/isdn"
"drivers/Kconfig"
"drivers/leds"
"drivers/lightnvm"
"drivers/macintosh"
"drivers/mailbox"
"drivers/Makefile"
"drivers/mcb"
"drivers/md"
"drivers/media"
"drivers/memory"
"drivers/memstick"
"drivers/message"
"drivers/mfd"
"drivers/misc"
"drivers/mmc"
"drivers/mtd"
"drivers/mux"
"drivers/net"
"drivers/nfc"
"drivers/ntb"
"drivers/nubus"
"drivers/nvdimm"
"drivers/nvme"
"drivers/nvmem"
"drivers/of"
"drivers/opp"
"drivers/oprofile"
"drivers/parisc"
"drivers/parport"
"drivers/pci"
"drivers/pcmcia"
"drivers/perf"
"drivers/phy"
"drivers/pinctrl"
"drivers/platform"
"drivers/pnp "
"drivers/power"
"drivers/powercap"
"drivers/pps"
"drivers/ps3"
"drivers/ptp"
"drivers/pwm"
"drivers/rapidio"
"drivers/ras"
"drivers/regulator"
"drivers/remoteproc"
"drivers/reset"
"drivers/rpmsg"
"drivers/rtc"
"drivers/s390"
"drivers/sbus"
"drivers/scsi"
"drivers/sfi"
"drivers/sh"
"drivers/siox"
"drivers/slimbus"
"drivers/soc"
"drivers/soundwire"
"drivers/spi"
"drivers/spmi"
"drivers/ssb"
"drivers/staging"
"drivers/target"
"drivers/tc"
"drivers/tee"
"drivers/thermal"
"drivers/thunderbolt"
"drivers/tty"
"drivers/uio"
"drivers/usb"
"drivers/vfio"
"drivers/vhost"
"drivers/video"
"drivers/virt"
"drivers/virtio"
"drivers/visorbus"
"drivers/vlynq"
"drivers/vme"
"drivers/w1"
"drivers/watchdog"
"drivers/xen"
"drivers/zorro"
"firmware"
"fs/fscache"
"fs/afs"
"fs/tracefs"
"fs/quota"
"fs/cachefiles"
"fs/befs"
"fs/f2fs"
"fs/openpromfs"
"fs/ocfs2"
"fs/configfs"
"fs/hfsplus"
"fs/autofs"
"fs/cramfs"
"fs/devpts"
"fs/gfs2"
"fs/efivarfs"
"fs/hpfs"
"fs/romfs"
"fs/udf"
"fs/dlm"
"fs/jbd2"
"fs/cifs"
"fs/ecryptfs"
"fs/affs"
"fs/9p"
"fs/crypto"
"fs/debugfs"
"fs/fat"
"fs/hfs"
"fs/exportfs"
"fs/fuse"
"fs/nls"
"fs/minix"
"fs/ntfs"
"fs/ceph"
"fs/notify"
"fs/lockd"
"fs/ubifs"
"fs/isofs"
"fs/orangefs"
"fs/hugetlbfs"
"fs/omfs"
"fs/jffs2"
"fs/freevxfs"
"fs/adfs"
"fs/proc"
"fs/nfsd"
"fs/qnx6"
"fs/sysv"
"fs/sysfs"
"fs/bfs"
"fs/xfs"
"fs/exfat"
"fs/efs"
"fs/exofs"
"fs/pstore"
"fs/sdcardfs"
"fs/coda"
"fs/ufs"
"fs/nfs"
"fs/ext2"
"fs/nilfs2"
"fs/nfs_common"
"fs/squashfs"
"fs/hostfs"
"fs/btrfs"
"fs/ramfs"
"fs/jfs"
"fs/overlayfs"
"fs/qnx4"
"fs/reiserfs"
"fs/ext4"
"fs/kernfs"
"include/xen"
"include/video"
"include/memory"
"include/net"
"include/target"
"include/misc"
"include/acpi"
"include/asm-generic"
"include/pcmcia"
"include/soc"
"include/scsi"
"include/drm"
"include/crypto"
"include/sound"
"include/linux"
"include/ras"
"include/vservices"
"include/math-emu"
"include/dt-bindings"
"include/clocksource"
"include/rdma"
"include/keys"
"include/trace"
"include/microvisor"
"include/media"
"include/uapi"
"include/kvm"
"kernel/sched"
"kernel/gcov"
"kernel/dma"
"kernel/livepatch"
"kernel/time"
"kernel/events"
"kernel/rcu"
"kernel/printk"
"kernel/configs"
"kernel/locking"
"kernel/bpf"
"kernel/debug"
"kernel/power"
"kernel/trace"
"kernel/cgroup"
"kernel/irq"
"lib/zlib_inflate"
"lib/reed_solomon"
"lib/zstd"
"lib/lzo"
"lib/fonts"
"lib/zlib_deflate"
"lib/mpi"
"lib/lz4"
"lib/raid6"
"lib/842"
"lib/xz"
"net/appletalk"
"net/kcm"
"net/batman-adv"
"net/sched"
"net/sctp"
"net/lapb"
"net/hsr"
"net/ipv6"
"net/phonet"
"net/bluetooth"
"net/strparser"
"net/8021q"
"net/bpfilter"
"net/can"
"net/wimax"
"net/dns_resolver"
"net/packet"
"net/802"
"net/iucv"
"net/xfrm"
"net/psample"
"net/netlink"
"net/core"
"net/l2tp"
"net/key"
"net/unix"
"net/l3mdev"
"net/bridge"
"net/dccp"
"net/6lowpan"
"net/tipc"
"net/9p"
"net/vmw_vsock"
"net/openvswitch"
"net/ncsi"
"net/ethernet"
"net/qrtr"
"net/rds"
"net/rose"
"net/ceph"
"net/dcb"
"net/ife"
"net/netfilter"
"net/ax25"
"net/netrom"
"net/smc"
"net/mpls"
"net/nsh"
"net/decnet"
"net/bpf"
"net/rxrpc"
"net/mac80211"
"net/x25"
"net/netlabel"
"net/ipv4"
"net/caif"
"net/tls"
"net/rfkill"
"net/dsa"
"net/xdp"
"net/nfc"
"net/wireless"
"net/atm"
"net/mac802154"
"net/sunrpc"
"net/ieee802154"
"net/switchdev"
"net/llc"
"mm"
"security"
"sound/xen"
"sound/x86"
"sound/oss"
"sound/ac97"
"sound/synth"
"sound/mips"
"sound/drivers"
"sound/pcmcia"
"sound/soc"
"sound/arm"
"sound/core"
"sound/sh"
"sound/firewire"
"sound/hda"
"sound/usb"
"sound/i2c"
"sound/pci"
"sound/sparc"
"sound/spi"
"sound/aoa"
"sound/atmel"
"sound/isa"
"sound/ppc"
"sound/parisc"
"scripts/mod"
"scripts/coccinelle"
"scripts/basic"
"scripts/selinux"
"scripts/gcc-plugins"
"scripts/dtc"
"scripts/genksyms"
"scripts/kconfig"
"scripts/package"
"scripts/gdb"
"scripts/ksymoops"
"scripts/tracing"
"security/smack"
"security/tomoyo"
"security/selinux"
"security/loadpin"
"security/apparmor"
"security/integrity"
"security/pfe"
"security/keys"
"security/yama"
"techpack/audio"
"techpack/camera"
"techpack/display"
"techpack/stub"
"techpack/video"
"techpack"
"tools"
".gitignore"
"Android.bp"
)
for ELEMENT in ${DIFFPATHS[@]}; do
[[ -d $ELEMENT ]] && git add $ELEMENT -f >/dev/null 2>&1
git commit -sm "$ELEMENT: Import Realme Changes" >/dev/null 2>&1
done
echo "Done with subdirectories, now committing rest of the changes"
REMNANTDIRS=(
"arch"
"block"
"certs"
"crypto"
"Documentation"
"drivers"
"firmware"
"fs"
"include"
"init"
"ipc"
"kernel"
"lib"
"LICENSES"
"mm"
"net"
"samples"
"scripts"
"security"
"sound"
"techpack"
"usr"
"virt"
)
for ELEMENT in ${REMNANTDIRS[@]}; do
[[ -d $ELEMENT ]] && git add $ELEMENT -f >/dev/null 2>&1
git commit -sm "$ELEMENT: Import Remaining realme Changes" >/dev/null 2>&1
done
git add -- . :!rebase.sh :!out >/dev/null 2>&1
git commit -sm "treewide: Import Misc realme Changes" >/dev/null 2>&1
echo "Done with imports!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment