Довольно просто сгенерировать пары в любой достаточно современной системе:
git diff --name-status --diff-filter=AD @~| awk -F$'\t' '
BEGIN { AD["A"]["/"]; AD["D"]["//"] }
{ base=$2; sub(/\.[^.]*$/,"",base); AD[$1][base]=$2 }
END { for ( k in AD["D"] )
if ( AD["A"][k] )
print AD["D"][k]"\t"AD["A"][k]
}'
Строка BEGIN просто устанавливает AD
как массив массивов с несовпадающими базовыми именами эрзаца,sub
строка запоминает добавленные и удаленные файлы по базовому имени, а блок END выводит пары совпадающих базовых имен.
В любом случае в linux легко разбивать команды на проверку пар,
# (the above, just printing the right commands:)
git diff --name-status --diff-filter=AD @~| awk -F$'\t' '
BEGIN { AD["A"]["/"]; AD["D"]["//"] }
{ base=$2; sub(/\.[^.]*$/,"",base); AD[$1][base]=$2; }
END { for ( k in AD["D"] )
if ( AD["A"][k] )
print "vim -O <(git show @~:"AD["D"][k]")\t"AD["A"][k]
}'
и выбирать пары, которые вы хотите проверить.
Вы можете довольно легко заставить Gitзапустите его diff для произвольно конвертированного текста, найдите "Git textconv", но я думаю, что любой синхронизатор будет работать в обратном направлении от визуализированного текста до оригиналов, которые его произвели, будет проектом.