Есть сторонний проект, там есть конфиг для сборки. Он меня не устраивает, я его поменял чуть-чуть. Теперь хочу сделать patch, чтобы мои правки можно было бы автоматом накатывать на новые версии конфига.
diff'а командной строки нет, есть только git. Винда. Проекты не версионируются (ну, т.е. сторонний проект наверно где-то версионируется, но мне приходит простой архив) — т.е. это не просто дифф между ветками/ревизиями.
Здравствуйте, Homunculus, Вы писали:
У>>Не понял, а зачем мне дифф бинарника? И какого бинарника?
H>Ну ты что пропатчить хочешь? Прогу? Вот ее бинарник
Нет, я конфиги для сборки хочу пропатчить. И там много бинарников и их конфигураций на выходе, в тч некоторые создаются или нет в зависимости от тех двух строчек, которые я поменял в конфиге.
Здравствуйте, удусекшл, Вы писали:
У>Нет, я конфиги для сборки хочу пропатчить. И там много бинарников и их конфигураций на выходе, в тч некоторые создаются или нет в зависимости от тех двух строчек, которые я поменял в конфиге.
Здравствуйте, удусекшл, Вы писали:
H>>дифф и на винде можно запустить.
У>Можно, только его надо отдельно ставить откуда-то, потому что искаропки его нет. А есть только GIT
git не может работать без diff. У меня на компьютере все эти программы установлены в C:\Program Files\Git\usr\bin.
Здравствуйте, Homunculus, Вы писали:
У>>Нет, я конфиги для сборки хочу пропатчить. И там много бинарников и их конфигураций на выходе, в тч некоторые создаются или нет в зависимости от тех двух строчек, которые я поменял в конфиге.
H>А, ну тогда да, сорри, мой коммент не в тему
Ну да. И бинарник патчить — имхо это отдельные какие-то тулзы нужны даже для линупса
Здравствуйте, удусекшл, Вы писали:
У>Ну да. И бинарник патчить — имхо это отдельные какие-то тулзы нужны даже для линупса
Разве? Я когда работал в проекте, который делал что-то типа клиента DropBox-а для синхронизации на десктопе вполне себе diff для апдейта всего подряд использовали.
Здравствуйте, 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 файле сделать —
Здравствуйте, Homunculus, Вы писали:
У>>Ну да. И бинарник патчить — имхо это отдельные какие-то тулзы нужны даже для линупса
H>Разве? Я когда работал в проекте, который делал что-то типа клиента DropBox-а для синхронизации на десктопе вполне себе diff для апдейта всего подряд использовали.
Здравствуйте, удусекшл, Вы писали:
У>diff лежит в "C:\Program Files\Git\usr\bin\", и GIT очевидно об этом знает, но в путях оно не прописано, и не хочется прописывать.
У>Может, есть вариант найти EXE-шник GITа, взять путь, и относительно него уже вызвать diff. Но как это в bat файле сделать —
Зачем тебе в bat? Просто пропиши путь.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, удусекшл, Вы писали:
у> Может, есть вариант найти EXE-шник GITа, взять путь, и относительно него уже вызвать diff. Но как это в bat файле сделать —
А почему в батнике полный путь к diff.exe прописать нельзя?
Впрочем, как вариант — положить этот твой конфиг в git-репу, и черри-пикать коммит с твоим патчем как обычно. Вручную конечно не удобно, но батником или git-альясом прописывается легко.
ЗЫ Пока в батник просто полный путь запихал до diff'а, думаю, вряд ли кто-то ставит гит не в дефолтную локацию.
ЗЫЫ Какого-то чёрта patch ругается на несовместимые переводы строки. Ну вот как так? Почему нормально не сделать? И опций внятных не нашел на эту тему. Пока прикостылил при помощи конвертации патча и файла через dos2unix и потом unix2dos обратно, но это же изврат
Здравствуйте, ·, Вы писали:
у>> Может, есть вариант найти EXE-шник GITа, взять путь, и относительно него уже вызвать diff. Но как это в bat файле сделать — ·>А почему в батнике полный путь к diff.exe прописать нельзя?
Так и сделал, решив, что гит под винду ставят обычно по дефолту
·>Впрочем, как вариант — положить этот твой конфиг в git-репу, и черри-пикать коммит с твоим патчем как обычно. Вручную конечно не удобно, но батником или git-альясом прописывается легко.
Какой-то гемор на ровном месте.
ЗЫ Кстати, в итоге выяснил, что git diff для файлов делает такой же diff, как и сама тулза diff с ключем -u (--unified). Но до остальных утилит всё равно надо как-то добираться. Хотя, может и через гит тоже можно, но я уже без него обошелся
Здравствуйте, удусекшл, Вы писали:
У>Прописать куда? В переменную PATH? Не вариант
Почему? В конце-концов можно сделать батник с настройкой окружения, примерно как в виндовых SDK, тогда путь будет прописан только в запущенной через него консоли, а систему это не затронет.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, удусекшл, Вы писали:
У>diff'а командной строки нет, есть только git. Винда. Проекты не версионируются (ну, т.е. сторонний проект наверно где-то версионируется, но мне приходит простой архив) — т.е. это не просто дифф между ветками/ревизиями.
У git'а есть встроенная команда diff. Она умеет делать diff между разнымиверсиями, между версией в репозитории и в рабочей директории, и т.д. и т.п. Практически на любой вкус.
Как и все в этом ужасном git'е, в ее системе параметров нет никакой логики, и запомнить их невозможно. Так что, читайте доки, они — рулез.