Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 11:10
Оценка:
Здравствуйте!

Есть сторонний проект, там есть конфиг для сборки. Он меня не устраивает, я его поменял чуть-чуть. Теперь хочу сделать patch, чтобы мои правки можно было бы автоматом накатывать на новые версии конфига.

diff'а командной строки нет, есть только git. Винда. Проекты не версионируются (ну, т.е. сторонний проект наверно где-то версионируется, но мне приходит простой архив) — т.е. это не просто дифф между ветками/ревизиями.

Что-то пока не понял, как гитом это сделать?
Re: Как сделать и применить patch?
От: Homunculus Россия  
Дата: 06.08.21 11:12
Оценка:
Здравствуйте, удусекшл, Вы писали:

дифф и на винде можно запустить.
А зачем дифф сорцов? Можно же просто дифф бинарника сделать.
Re[2]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 11:14
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>дифф и на винде можно запустить.


Можно, только его надо отдельно ставить откуда-то, потому что искаропки его нет. А есть только GIT


H>А зачем дифф сорцов? Можно же просто дифф бинарника сделать.


Не понял, а зачем мне дифф бинарника? И какого бинарника?
Re[3]: Как сделать и применить patch?
От: Homunculus Россия  
Дата: 06.08.21 11:14
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>Не понял, а зачем мне дифф бинарника? И какого бинарника?


Ну ты что пропатчить хочешь? Прогу? Вот ее бинарник
Re[4]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 11:16
Оценка:
Здравствуйте, Homunculus, Вы писали:

У>>Не понял, а зачем мне дифф бинарника? И какого бинарника?


H>Ну ты что пропатчить хочешь? Прогу? Вот ее бинарник


Нет, я конфиги для сборки хочу пропатчить. И там много бинарников и их конфигураций на выходе, в тч некоторые создаются или нет в зависимости от тех двух строчек, которые я поменял в конфиге.
Re[5]: Как сделать и применить patch?
От: Homunculus Россия  
Дата: 06.08.21 11:17
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>Нет, я конфиги для сборки хочу пропатчить. И там много бинарников и их конфигураций на выходе, в тч некоторые создаются или нет в зависимости от тех двух строчек, которые я поменял в конфиге.


А, ну тогда да, сорри, мой коммент не в тему
Re[3]: Как сделать и применить patch?
От: vsb Казахстан  
Дата: 06.08.21 11:17
Оценка:
Здравствуйте, удусекшл, Вы писали:

H>>дифф и на винде можно запустить.


У>Можно, только его надо отдельно ставить откуда-то, потому что искаропки его нет. А есть только GIT


git не может работать без diff. У меня на компьютере все эти программы установлены в C:\Program Files\Git\usr\bin.
Re: Как сделать и применить patch?
От: reversecode google
Дата: 06.08.21 11:18
Оценка:
что это за гит из кароПки у которого нет diff из каропки ?

ну загоните все в гит и там мержите
Re[6]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 11:18
Оценка:
Здравствуйте, Homunculus, Вы писали:

У>>Нет, я конфиги для сборки хочу пропатчить. И там много бинарников и их конфигураций на выходе, в тч некоторые создаются или нет в зависимости от тех двух строчек, которые я поменял в конфиге.


H>А, ну тогда да, сорри, мой коммент не в тему


Ну да. И бинарник патчить — имхо это отдельные какие-то тулзы нужны даже для линупса
Re[7]: Как сделать и применить patch?
От: Homunculus Россия  
Дата: 06.08.21 11:20
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>Ну да. И бинарник патчить — имхо это отдельные какие-то тулзы нужны даже для линупса


Разве? Я когда работал в проекте, который делал что-то типа клиента DropBox-а для синхронизации на десктопе вполне себе diff для апдейта всего подряд использовали.
Re[4]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 11:24
Оценка:
Здравствуйте, vsb, Вы писали:

H>>>дифф и на винде можно запустить.


У>>Можно, только его надо отдельно ставить откуда-то, потому что искаропки его нет. А есть только GIT


vsb>git не может работать без diff. У меня на компьютере все эти программы установлены в C:\Program Files\Git\usr\bin.


Тем не менее, git из командной строки вызывается, а diff — нет. И очень не хочется что-то дополнительно настраивать, хочется обойтись тем, что есть.

ЗЫ Глянул, что там, по твоему пути. Там только
bash.exe
git.exe
sh.exe


diff лежит в "C:\Program Files\Git\usr\bin\", и GIT очевидно об этом знает, но в путях оно не прописано, и не хочется прописывать.

Может, есть вариант найти EXE-шник GITа, взять путь, и относительно него уже вызвать diff. Но как это в bat файле сделать —
Re[2]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 11:25
Оценка:
Здравствуйте, reversecode, Вы писали:

R>что это за гит из кароПки у которого нет diff из каропки ?


Вот такой вот гит


R>ну загоните все в гит и там мержите


Спасибо за совет
Re[8]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 11:25
Оценка:
Здравствуйте, Homunculus, Вы писали:

У>>Ну да. И бинарник патчить — имхо это отдельные какие-то тулзы нужны даже для линупса


H>Разве? Я когда работал в проекте, который делал что-то типа клиента DropBox-а для синхронизации на десктопе вполне себе diff для апдейта всего подряд использовали.


Ну может. Но речь не об том
Re[5]: Как сделать и применить patch?
От: ути-пути Россия  
Дата: 06.08.21 17:13
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>diff лежит в "C:\Program Files\Git\usr\bin\", и GIT очевидно об этом знает, но в путях оно не прописано, и не хочется прописывать.


У>Может, есть вариант найти EXE-шник GITа, взять путь, и относительно него уже вызвать diff. Но как это в bat файле сделать —


Зачем тебе в bat? Просто пропиши путь.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[5]: Как сделать и применить patch?
От: · Великобритания  
Дата: 06.08.21 17:41
Оценка:
Здравствуйте, удусекшл, Вы писали:

у> Может, есть вариант найти EXE-шник GITа, взять путь, и относительно него уже вызвать diff. Но как это в bat файле сделать —

А почему в батнике полный путь к diff.exe прописать нельзя?

Впрочем, как вариант — положить этот твой конфиг в git-репу, и черри-пикать коммит с твоим патчем как обычно. Вручную конечно не удобно, но батником или git-альясом прописывается легко.
avalon/3.0.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[6]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 17:58
Оценка:
Здравствуйте, ути-пути, Вы писали:


УП>Зачем тебе в bat? Просто пропиши путь.



Прописать куда? В переменную PATH? Не вариант

ЗЫ Пока в батник просто полный путь запихал до diff'а, думаю, вряд ли кто-то ставит гит не в дефолтную локацию.

ЗЫЫ Какого-то чёрта patch ругается на несовместимые переводы строки. Ну вот как так? Почему нормально не сделать? И опций внятных не нашел на эту тему. Пока прикостылил при помощи конвертации патча и файла через dos2unix и потом unix2dos обратно, но это же изврат
Отредактировано 06.08.2021 18:02 удусекшл . Предыдущая версия .
Re[6]: Как сделать и применить patch?
От: удусекшл  
Дата: 06.08.21 18:01
Оценка:
Здравствуйте, ·, Вы писали:

у>> Может, есть вариант найти EXE-шник GITа, взять путь, и относительно него уже вызвать diff. Но как это в bat файле сделать —

·>А почему в батнике полный путь к diff.exe прописать нельзя?

Так и сделал, решив, что гит под винду ставят обычно по дефолту


·>Впрочем, как вариант — положить этот твой конфиг в git-репу, и черри-пикать коммит с твоим патчем как обычно. Вручную конечно не удобно, но батником или git-альясом прописывается легко.


Какой-то гемор на ровном месте.

ЗЫ Кстати, в итоге выяснил, что git diff для файлов делает такой же diff, как и сама тулза diff с ключем -u (--unified). Но до остальных утилит всё равно надо как-то добираться. Хотя, может и через гит тоже можно, но я уже без него обошелся
Re[7]: Как сделать и применить patch?
От: ути-пути Россия  
Дата: 06.08.21 19:46
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>Прописать куда? В переменную PATH? Не вариант


Почему? В конце-концов можно сделать батник с настройкой окружения, примерно как в виндовых SDK, тогда путь будет прописан только в запущенной через него консоли, а систему это не затронет.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Как сделать и применить patch?
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.08.21 20:00
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>diff'а командной строки нет, есть только git. Винда. Проекты не версионируются (ну, т.е. сторонний проект наверно где-то версионируется, но мне приходит простой архив) — т.е. это не просто дифф между ветками/ревизиями.


У git'а есть встроенная команда diff. Она умеет делать diff между разнымиверсиями, между версией в репозитории и в рабочей директории, и т.д. и т.п. Практически на любой вкус.

Как и все в этом ужасном git'е, в ее системе параметров нет никакой логики, и запомнить их невозможно. Так что, читайте доки, они — рулез.
Re[4]: Как сделать и применить patch?
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.08.21 20:02
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>git не может работать без diff. У меня на компьютере все эти программы установлены в C:\Program Files\Git\usr\bin.


А у него не встроенный, разве?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.