git: Como automatizar o rebase interativo / substituí-lo por comandos git equivalentes

Preciso automatizar uma rebase interativa ou substituí-la por outros comandos. Apenas deixe-me explicar minha situação atual:

Em uma transição svn-> git, preciso refazer o novo repositório git para corrigir os "cortes de histórico" feitos durante o SVN. Aqui está o meu fluxo de trabalho manual para corrigir o problema.

branchNEW: containing history from SOMEDAY until now
branchOLD: containing history from past to SOMEDAY

EDITAR ou como ascii:

branchNEW:        Y - Z
branchOLD: W - X

Ambos os ramos não têm confirmações comuns.

A idéia básica agora é apenas rebase branchNEW para branchOLD. Infelizmente, houve alguma refatoração. SOMEDAY: Alguns arquivos foram movidos para outro diretório. O resultado da rebase agora é que cada arquivo movido existe nos dois lugares.

EDITAR

some file exist in X 
the (nearly) same files also exist in Y, just on another path

branchNEW: W - X - Y - Z
(after rebase)

Após a rebase, o HEAD agora contém os arquivos de X e Y. Também tentei adicionar um novo commit ao branchOLD, que remove os arquivos antigos. Após o rebase, o SVN-HEAD e o git-HEAD são binários idênticos, mas o "git log --follow" não funciona.

Agora, para o principal problema: eu sou capaz de corrigir isso usando um segundo rebase interativo:

git rebase -i SHA

SHA é o sha-id dovelho confirmação de raiz no branchNEW. Agora, no editor, tenho que mudar "pick" para "edit" para o commit mais alto. Depois de sair do editor, agora tenho que remover os arquivos errados

git rm -f fileA fileB
git commit --amend
git rebase --continue

Depois que este HEAD do git é binário idêntico ao chefe do SVN e, além disso, o git tem o histórico completo e também "git log --follow" funciona para os arquivos movidos.

Como esta etapa é apenas uma pequena parte de uma enorme transição de VCS no futuro, preciso fazer o script do processo completo.Mas como automatizar as etapas acima?

(eu sei que os SHAs não permanecerão os mesmos, mas eu posso obter o SHA necessário do svn-id que está incorporado em cada mensagem de confirmação)

questionAnswers(2)

yourAnswerToTheQuestion