git staging patch: с фрагментом меньше строки

Я хочу сделать интерактивный патч из уникальной фиксации. Я хотел бы использовать вывод, похожий на

git diff --word-diff=porcelain [file]

для интерактивного исправления. Команда

git add --edit

предлагать только кусок, который состоит как минимум из одной строки?

Цель: У меня есть патч для текстовых файлов, и я хотел бы, чтобы изменения происходили так же, как в «LibreOffice», принимать или отклонять изменения.


Пример:

Текстовый файл в одну строку:

echo "Thiis is a sentence with one wrong word. This is a clean sentence. Thhe laast one iss alwaays morre dificult" > text.txt

совершать

git add text.txt
git commit -m "one"

Изменение файла

echo "This is a sentence with one wrong word. This is a clean sentence. The last one is always more difficult" > text.txt

git add -e

должен быть автоматически разрезан на 3 куска

"Thiis" > "This"
"Thhe laast" > "The last"
"iss alwaays morre dificult"> "is always more difficult"

Я могу просто получить

--- a/text.txt
+++ b/text.txt
@@ -1 +1 @@
-Thiis is a sentence with one wrong word. This is a clean sentence. Thhe laast one iss alwaays morre dificult
+This is a sentence with one wrong word. This is a clean sentence. The last one is always more difficult

Примечание: в лучшем случае "без внесения запутанных изменений в индекс" (# РЕДАКТИРОВАНИЕ ПАТЧЕЙ)


person nebi    schedule 05.07.2015    source источник


Ответы (1)


Нет, стандартные инструменты для git hunks должны использовать строки (или набор измененных строк в непосредственной близости). Однако все, что делает git, — это делает снимок файла в каждом из трех состояний; так что вы можете легко воспроизвести это, если у вас есть доступ к вашим изменениям. Сначала внесите одно из изменений (затем сделайте коммит), затем повторите второе изменение (затем сделайте коммит) и так далее.

Однако, вероятно, не стоит делать это пословно - вы получите множество коммитов, не имеющих реальной самостоятельной значимости.

person AlBlue    schedule 06.07.2015
comment
Даже если фрагменты ограничены одной строкой, было бы неплохо иметь вывод, похожий на --word-diff=porcelain. Для рабочего процесса: слова определенно не стоят коммита, но в лучшем случае заначка. К тому времени, как рабочий процесс, я позабочусь о том, чтобы предложение за строкой было таким, чтобы куски одной строки не были слишком большими. - person nebi; 06.07.2015