Не получается сформировать патч если нужно добавить только новые файлы, а не изменять существующие

Главные вкладки

Аватар пользователя VasyOK VasyOK 5 июля в 13:03

Как я формирую патчи к контриб модулям. Захожу директорию модуля, там:

git init
git add .
git commit -m "Initial commit"

Потом копирую модифицированные файлы модуля поверх оригинальных и запускаю:
git diff --no-prefix > add-feeds-target-3050030-3.patch

Это все работало, но недавно я узнал, что это не работает в случае если нужно не изменить существующие файлы, а только добавить новые.

Как тогда быть если нужно только новые файлы добавить?

Комментарии

Аватар пользователя VasyOK VasyOK 6 июля в 13:08

Не с композером точно.
П.С. Набор команд сверху я позаимствовал с сайта какого друпалера, но кого именно уже не вспомню.

Аватар пользователя OldWarrior OldWarrior 6 июля в 14:17

По логике, новый/добавляемый в патч файл сначала нужно традиционно добавить в текущий локальный репозиторий гита, т.е. закоммитить. После этого уже выгружать diff.

Аватар пользователя gun_dose gun_dose 7 июля в 13:29

Патч можно сделать без add и commit. Клонируешь нужную ветку с орга. Ну или локально копируешь модуль, тогда надо init, add и commit, чтобы получить отправную точку. Потом редактируешь, добавляешь, удаляешь всё, чио нужно. А потом

git diff > lol-kek-cheburek.patch
Аватар пользователя VasyOK VasyOK 7 июля в 16:47

gun_dose wrote: копируешь модуль, тогда надо init, add и commit, чтобы получить отправную точку. Потом редактируешь, добавляешь, удаляешь всё, чио нужно.

а у меня в шапке темы не так?

Аватар пользователя VasyOK VasyOK 7 июля в 16:48

OldWarrior wrote:новый/добавляемый в патч файл сначала нужно традиционно добавить в текущий локальный репозиторий гита, т.е. закоммитить. После этого уже выгружать diff.

Ок, пробую традиционно

git init
git add .
git commit -m "Initial commit"

Добавляю в модуль новые файлы

git add .
git commit -m "Something add"
git diff --no-prefix > add-feeds-target-3050030-3.patch

Результат - пустой файл.

Аватар пользователя OldWarrior OldWarrior 7 июля в 18:21

VasyOK wrote: Результат - пустой файл.

Пустой файл чего именно? .patch или тот, что вы добавили в репо?
Васёк, ну чуть детальнее и точнее можно описывать? Я уже старый, мне телепатия не поддаётся Wink

Аватар пользователя OldWarrior OldWarrior Сегодня в 0:56

1. Какой путь (относительно директории, в которой выполняется git) до добавленных файлов?

2. Так пробовали:

git add ./

или

git add --all .

Тут --all - указание принудительно обновить рабочее дерево

Аватар пользователя VasyOK VasyOK Сегодня в 12:41

Путь директории (кириллицы нет в пути):
~/Projects/local/date_recur

git init
git add .
git commit -m "Initial commit"

Добавляю файлы

git add --all .
git commit -m "Something add"

пишет:

[master 128014d] Something add
 1 file changed, 38 insertions(+)
 create mode 100644 src/Feeds/Target/DateRecur.php

потом выполняю:
git diff --no-prefix > add-feeds-target-3050030-3.patch

увы, файл патча пустой