Пословное обвинение / аннотирование в управлении версиями?

Можно ли реконструировать пословную историю в управлении версиями? В идеале я хотел бы сделать что-то вроде: 1) я указываю диапазон интересующих строк, 2) чтобы программа вычисляла соответствующие номера строк в предыдущих версиях, так как код часто перемещался вверх или вниз между версиями (потенциально ограничивая диапазон версий, скажем, начиная с редакции 19 или неделю назад), 3) распечатывать историю по словам, либо версии тех групп слов, которые были изменены в последний раз, либо авторов, по которым группы слов были изменены. Так что вроде как svn blame или же git blame на уровне слова.

В противном случае, есть ли инструменты, которые могут сделать № 1 и № 2 выше? То есть: 1) я указываю диапазон интересующих линий, 2) программа вычисляет соответствующие номера строк в предыдущих версиях, 3) программа распечатывает историю этих строк (когда произошли изменения).

Мне бы очень помогли svn или git.

1 ответ

Я искал что-то вроде этого и в итоге взломал свое собственное решение. Вы можете найти это здесь:

https://github.com/d33tah/wordblame

По сути, он создает новый каталог репозитория, в котором все пробелы заменяются новой строкой и уникальной строкой, сигнализирующей о наличии пробела. Затем выполняется "мерзавец" и результат интерпретируется заново.

Я сделал инструмент под названием git-word-blame чтобы решить именно эту проблему:

# setup
> virtualenv -p python3 venv
> source venv/bin/activate
> pip install git-word-blame

# usage
> git word-blame your-file
> firefox /tmp/git-word-blame/word-blame-by-commit.html

Я должен выглядеть так:

Другие вопросы по тегам