Некоторые примечания: 1) Этот текст без всех "ах", "ух", и "ам" в мойём разговоре, но кроме етого, напизанно также как я говорю в видео. 2) Знаки времени должны вам достаточно хорошо указать где вы находитесь в видео. 3) Две буквы б цитатах (как "ls" или "dp"), это комманды, и каждую букву надо произнести (на пример, "ls" говоритса как "el es"). НАЧАЛО РАСШИФРОВКИ ----- Это краткий и не очень окуратный видео о создание патчов в Drupal. Он краткий в том смысле, что я не буду обсуждать все подробности, и не окуратный так как на мойём экране много не нужных окошек и прочего, потому что я быстро его снимал, так что не обращайте внимание на это. Мы будем использовать два инструмента для создания патчов, diff и CVS diff. Diff используйте если у вас нету доступа к CVS или если немного боитесь исползовать CVS. Это, самостоятельный способ чтобы создать патч. С CVS diff, ваш патч конечно будет запускатся вместе с CVS, и получаетса что это очень хороший и быстрый способ сделать хороший патч. Итак, мы начнём с инструкциями, и посмотрим в отделе Contributing to Development. Теперь идём в отдел Patches. Сдесь вы найдёте два документа, "HOWTO: Create patches" и "HOWTO: Submit patches for Drupal", и я вам очень сильно советаю их обоих прочитать и быть с ними знакомыми. 0:57 Мы начнём с "HOWTO: Create patches", который вас научет самые простые аспекты diff. И сдесь, по середине, та комманда которую мы будем использовать когда мы используем diff - это самостоятельная. Значет, я должен достать мои файлы. Мне нужно быть уверенным что я исползую самые новые файлы. Так-что, я пойду на страницу проекта, так как я знаю где она находитса. И здесь, я найду архивы. Это официалные, но я возьму рабочию версию, чтобы у меня были точно самыйе новые файлы, и они могут исправить эту версийу потом, если захотят. Теперь, я откройу его. И посмотрим здесь, рас оно на моём рабочем столе. Вот, файл README, тот, который я хочу редактировать. Его я откройу в редакторе. 2:00 Первое что я сделаю это сохраню как новый файл, чтобы diff мог эти два файла сравнить, и убидеть разницу. Я просто его сохрану с ининем "new" и должен быть уверен что сохраняю в правельное место тоже. Я всегда сохраняю, когда использую diff, файл который я редактирую, в тоже место где был оригинал. Если вы зделаете diff из неправельного места, может быть что вы сделаете патч который никто не сможет использовать на их стороне. Итак, у меня мой новый файл, где я делаю мои изменения. Тоже самое было бы если это был бы код вместо README, в любом случие, делаете те изменения которые вам нужны, и мы узнаем разнецу когда будем использовать нашу комманду. 3:00 Теперь, мне нужно всё поменять что я хочу. Вот так. Сейчас, сохроняю этот фаыл, и мы пойдём обратно на ту страницу diff которую раньше смотрели, чтобы смогли посмотреть на нашу комманду опять. И пока это грузитса, я отктрою мой терминал, рас мы будем нашу комманду выполнять сквозь него. И я зайду в папку где все мои файлы, используя комманду "cd", и тут сделаю "ls" для списка файлов. Мы видем, что мой новый файл теперь в этой папке. 4:04 И вот на странице наша комманда, фактический что я буду печатать. Так что, diff тере "up" и потом название старого файла, которуй просто RЕАДМЕ, и потом название нового файла. И я хочу из этого сделать файл патча, так что я ему дам имя, которое обьесняет что это такое, и чтобы люди могли понять что тут проесходит. Вы можете сохранить патч где хотите, только должны написать место той директории в это имя, и оно туда для вас сохронит. Итак, когда я из этих сделаю лист, из файлов этой папки, я увижу что мой новый файл патча сдесь находитса. И вот он и есть. 5:00 И это как делаетса обычный diff, просто самостоятельный, локальный инструмент. Мы можем открыть и посмотреть как этот выглядет. Красное, то что убрали, зелёное, то что добавили, а сверху имена файлов, которые не очень важны. Теперь мы сделаем CVS diff. Первая вещ которая мне нужна, это, рас у меня уже есть checkout для этой модули, CVS checkout, так что мне надо обновить то место где у меня тот checkout, и быть уверенным что у меня самые новые файлы. Так что возновите "dp". Возмите самые новые файлы, да. Вот, теперь у меня самые новые файлы и я могу начать с ними работать. Теперь откроем от сюда файл README. 6:00 И вы бидете у меня есть checkout всех модулий сдесь, но мне только нужно imagecache. Входим туда. Вот мой README, так что его откроем. И опять, я сделаю мои текстовые изменения. Не нужно создовать новый файл и всё остальное что я делал с обычным diff, так как CVS diff просто сравнит мой локальный файл с тем который на drupal.org. Таким образом оно найдёт разницу, находя самый новый файл там. Вот, и я просто напичатаю мои изменения сюда, и вы можете тоже самое сделать на вашем компютере. Как правило, CVS diff больше нравитса поддержевателям, так как с ним можно увидить настоящие изменения к файлу, что может быть важной информацию. 7:09 А, и заметите что сдесь несколько строчек. В ётом файле много пустых строчек, и обычно я бы их удалил, но в патче не надо ничего редактировать кроме настоящего текста и кода которого вам нужно менять. То что мы только что сделали, это был обычный diff. А теперь, мы хотим сделать CVS diff, так что я спущусь сюда к "Submit patches for Drupal", так как там находитса сама информация для CVS diff. И...вот есть страница. И, опять, я вам сильно советаю прочитать эту всю страницу, сдесь есть хорошоя информация. Вот комманда, которую мы будем использовать. Обратно пойдём в терминал, и тут мы уже в правельной папке, так что просто напичатаем нашу комманду. 7:57 Значет, я хочу сделать cvs diff "up" и должен только поставить имя файла. Нету никокого нового файла. И опять, продуктируем это в патч который йа хочу сохранить локально в этой папке чтобы я смог знать где оно, для себя. И после того как я быполню ту комманду, могу сделать список файлов, и вот тут мой патч. Легко. Мы посмотрем в этот и увидем чем он отличаетса. Когда на него посмотрите, вы увидите что сверху оно немного другое, и тут есть одна строчка, которая показывает саму версию файла с которым я делал diff, чтобы девелопер мог знать точно для кокой версии я создовал патч. Вот и всё, патч сделан, так что остаётса только его загрузить. Если я зайду в "issues" то я могу одну создать. 8:57 Я теперь выберу мой проект. Если это было бы Drupal, то я бы выбрал Drupal, но рас это для одной созданной модули, то я выберу imagecache. Я должен заполнить некою информацию сдесь. Версия будет 5 1 dev, рас это то из чего я только что сделал патч. И это изменение б документации, и просьба для функтциональности, и вы можете всю остальную информацию выполнить сами тоже. Я это не буду делать, потому что у меня уже есть issue для этого проекта. Я уже её цделал раньше, чтобы я не забыл сделать сам патч. Итак, я зайду в тот issue который уже существует, и уберу некоторые эти емайлы. И вот оно и есть, и чтобы прибавить мой файл я сделаю продолжение к первому issue. И я это поменяю на dev, потому-что я оригинально делал для версии 1.2, оригинальная версия которую я иснользовал, но сам патч для версии dev. 10:05 И я сдесь добавлю маленкое описание, чтобы могли знать что это за файл и всё прочие. И, я обьесню что я поменял версию с 1.2 на dev потому что я делаю это с отделом CVS 5 и не с настоящим быпуском. И когда я это кончил, мне нужно добавить сам патч. Нету особенного смысла если его нету. Так что, пойдём обратно сюда и найдём патч, который в папке CVS, там где я его создал. 11:02 Вот мой патч, мы его добавим. Вы можете просмотреть когда вы продолжаете, но если вы добавили файл, то он исчезнит, так что я просто пойду вперёд. У меня нету никакого странного текста где мне бы нужно было бы проверить формат. И вот я его гружу, и вот он и есть. И если вы нажмёте на это, вы увидите тоже самое что было на моём локальном сервере. Теперь, одна вещ которую я вспомнил после того как я это сделал это то что я забыл номенять статус с активного на патч (коду нужем пересмотр). Но, я вам обьеснять не буду все детали этого, и просто пойду и поменяю, и вот и есть создание патча в Drupal.