@LexPex
PM Sysadm

Как поменять комментарии коммита из файла?

Гайз привет! Есть задача поменять комментарии к комитам в определенном бранче.
Есть скрипт каторый берет 2 значения как старый и новый коммит. По циклу (while read -r line; do)каждый раз обращается к строкам в файле file.txt
Сам скрипт:

#!/bin/bash

fille="$1"

#fille="fille.txt"

while read -r line; do
	source=$(echo "$line" | awk 'BEGIN { FS = "," } { print $1} ');
	target=$(echo "$line" | awk 'BEGIN { FS = "," } { print $2} ');
	git filter-branch -f --msg-filter 'sed -e "s/'"$source"'/'"$target"'/g"'
done < "$file"

Cогласитель это долго за один проход делать операцию искать\заменить 1й строки с учептом того что коммитов +5к
Прошу помочь с оптимизацией данного скрипта.
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Прошу помочь с оптимизацией данного скрипта.

Избавиться от цикла, перенеся логику внутрь команды передаваемой в --msg-filter. Примерно так:

#!/bin/bash

fille="$1"

cmd=

while read -r line; do
  source=$(echo "$line" | awk 'BEGIN { FS = "," } { print $1} ');
  target=$(echo "$line" | awk 'BEGIN { FS = "," } { print $2} ');
  cmd="${cmd}s,$source,$target,g;"
done < "$file"

git filter-branch -f --msg-filter "sed -e '$cmd'"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
А разве это возможно? Git позволяет изменить только последние коммиты, схлопнув их в 1 коммит (amend).

Или можно полностью создать новый репо и перенести туда все изменения по 1 штуке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы