﻿<div align="justify"><font size="2" face="verdana, geneva,arial">
Итак, вы написали свой полезнейший во всех отношениях скрипт и теперь хотите
поделиться им со всем прогрессивным человечеством. Я помогу вам в этом.
Именно для этих целей и предназначен являющийся
репозитарием
системы управления версиями]


Вся прелесть распределённых систем управления версиями в том, что у каждого разработчика
хранится своя, локальная копия всего репозитария. У вас она уже есть - достаточно заглянуть
в папку repo. repo\scripts.fossil - это и есть клонированный репозитарий. Папка scripts -
это открытая рабочая копия репозитария, о чем говорит находящийся в ней файл _FOSSIL_.

Вы уже можете использовать локальный репозитарий для хранения истории версий своих разработок.
Как это делается? Для начала я бы рекомендовал вам разместить fossil.exe в одной из папок,
перечисленных в PATH, ну например, папке Windows. Это позволит вам всегда запускать fossil.exe,
просто набрав fossil, в какой бы папке вы не находились.

Я предполагаю, что у вас уже есть хотя бы начальные представления о работе с
системами контроля версий. Вкратце типичная последовательность работ такова:

  #  Файлы, в которых вы заинтересованы, добавляются в систему контроля версий.
  #  По мере правок файла, с удобной для вас периодичностью, его измененные состояния
     фиксируются в системе. Это и есть версии (ревизии) файла.
  #  Периодически вы обмениваетесь своими изменениями с окружающими.

В fossil это происходит следующим образом.

  *  Сначала вы размещаете свой файл, или даже свои файлы в папке scripts или его подпапке.
     Примечательно, что в какой бы подпапке вы не находились, fossil вегда работает со всей
     рабочей копией, начиная от той папки, где лежит файл _FOSSIL_.
  *  Теперь вы уведомляете fossil о том, что хотите взять эти файлы под его заботливый контроль:
     <verbatim>
     fossil add имена файлов
     </verbatim>
     Можно для каждого файла выполнять отдельную команду add, можно перечислить их в одной команде,
     разделяя пробелом. Если в качестве имени файла указать каталог, fossil добавит все еще не
     взятые им под контроль файлы из этого каталога и его подкатологов. Посмотреть список файлов,
     еще не взятых под контроль, можно командой
     <verbatim>
     fossil extra
     </verbatim>
     Таким образом, если кроме ваших файлов нет других "лишних", то самый простой путь добавить
     все файлы это
     <verbatim>
     fossil add .
     </verbatim>
  *  Вы уведомили fossil о файлах, которые хотите контролировать. Но в репозитарий (даже ваш локальный)
     они еще не попали. А попадут они туда после <b>фиксации</b>.
     <div align="right"><i>
     Фиксация - она же коммит, она же чекин,<br/>она же commit, она же check-in -<br/> операция, заносящая
     текущее содержание файла<br/>в систему, как очередную версию файла.

     В fossil фиксация делается командой
     <verbatim>
     fossil ci -m "Комментарий к фиксации"
     </verbatim>
     По этой команде состояние всех изменных с последней фиксации файлов опять фиксируется в системе,
     образуя очередную <b>ревизию</b>.
     Посмотреть, какие файлы были изменены, можно командой
     <verbatim>
     fossil changes
     </verbatim>
     Но тут есть одна тонкость. Хотя вы работаете с локальным репозитарием, рано или поздно вам
     придется передать свои правки в другой (центральный) репозитарий. А там уже могут быть
     добавлены правки других пользователей, и ваши правки создадут ненужные разветвления
     (о них немного в другой раз, для пытливых
     Непреднамеренных ветвлений лучше избегать, а этого можно добиться, работая в самой свежей
     ревизии. Для этого сначала надо получить последние правки из центра:
     <verbatim>
     fossil pull
     </verbatim>
     а затем обновив свою рабочую копию:
     <verbatim>
     fossil update
     </verbatim>
     При обновлении fossil учтет ваши исправления в вашей же копии файлов, и объединит их в рабочем каталоге
     с последними правками из центрального репозитария, если сможет. Вот теперь можно и делать коммит.
  *  Последовательность можно повторять сколько угодно. Все будет храниться
     в вашем локальном репозитарии. И даже будет видно в локальном веб-интерфейсе:
     <verbatim>
     fossil ui
     </verbatim>
     Команда запустит fossil как веб-сервер на (или другом порту, заданном в параметрах
     команды) и запустит умолчальный браузер на этой странице. Там вы можете смотреть timeline,
     создавать и править вики страницы и задачи - все это будет храниться в вашем локальном репозитарии.
  *  И вот, вы достигли просветления, скрипт отлажен и вылизан, и в-принципе, неплохо показать бы его
     людям. Пора отдать им свои правки. Для этого нужно сделать
     <verbatim>
     fossil push
     </verbatim>
     Вот тут то вы и узнаете, что в центральном репозитарии прав на коммит вам не дадено. Поэтому
     обратитесь сначала ко мне - форум, email, почтовые голуби, как угодно - и попросите прав на
     коммит. Я обычно добр и права даю. После чего ваш скрипт попадает в центральный репозитарий
     и становится видим для всех.

Это о технической стороне вопроса. Теперь о моральной. Обычно вместе с правами на коммит, я даю
и права на создание вики-страниц. Крайне жалательно, чтобы параллельно со скриптом вы также
создавали бы и вики-страницу с его описанием. Для единообразия, пусть страница называется также,
как и файл вашего скрипта (включая подпапки, если скрипт в них). Это можно сделать также предварительно
в локальном интерфейсе, запустив
  <verbatim>
  fossil ui
  </verbatim>
Вместе с <i>fossil push</i> ваши страницы также уйдут в центр, Юстасу.

Описание должно быть небольшим, но достаточным. Также хорошо завести тему на форуме, опять же
с названием файла скрипта, опять же с небольшим описанием, и дав ссылку на ветку форума на
вики-странице скрипта. Дальнейшие обсуждения скрипта лучше вести уже на форуме, дабы не засорять
репозитарий кучей правок (они будут расходиться по всем локальным репозитариям).

Ну и так как многие будут смотреть текст вашего скрипта из браузера, при просмотре событий и
правок, крайне жалетельно, чтобы
  *  Кодировка файла скрипта была UTF-8 c BOM. Тогда во-первых в браузере будут правильно отображаться
     русские символы, а во-вторых, Снегопат правильно загрузит текст вашего скрипта.
  *  Вместо табов выравнивать текст пробелами, так как обычно размер табуляции редактора не
     совпадает с размером табуляции браузера, и весь текст съезжает.