Как добавить скрипт в репозитарий Вы: nobody
Вход
Итак, вы написали свой полезнейший во всех отношениях скрипт и теперь хотите поделиться им со всем прогрессивным человечеством. Я помогу вам в этом. Именно для этих целей и предназначен http://snegopat.ru/scripts/, являющийся репозитарием распределённой системы управления версиями fossil.

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

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

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

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

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

  • Сначала вы размещаете свой файл, или даже свои файлы в папке scripts или его подпапке. Примечательно, что в какой бы подпапке вы не находились, fossil всегда работает со всей рабочей копией, начиная от той папки, где лежит файл _FOSSIL_.
  • Теперь вы уведомляете fossil о том, что хотите взять эти файлы под его заботливый контроль:
         fossil add имена файлов
         
    Можно для каждого файла выполнять отдельную команду add, можно перечислить их в одной команде, разделяя пробелом. Если в качестве имени файла указать каталог, fossil добавит все еще не взятые им под контроль файлы из этого каталога и его подкатологов. Посмотреть список файлов, еще не взятых под контроль, можно командой
         fossil extra
         
    Таким образом, если кроме ваших файлов нет других "лишних", то самый простой путь добавить все файлы это
         fossil add .
         
  • Вы уведомили fossil о файлах, которые хотите контролировать. Но в репозитарий (даже ваш локальный) они еще не попали. А попадут они туда после фиксации.
    Фиксация - она же коммит, она же чекин,
    она же commit, она же check-in -
    операция, заносящая текущее содержание файла
    в систему, как очередную версию файла.
    В fossil фиксация делается командой
         fossil ci -m "Комментарий к фиксации"
         
    По этой команде состояние всех изменённых с последней фиксации файлов опять фиксируется в системе, образуя очередную ревизию. Посмотреть, какие файлы были изменены, можно командой
         fossil changes
         
    Но тут есть одна тонкость. Хотя вы работаете с локальным репозитарием, рано или поздно вам придется передать свои правки в другой (центральный) репозитарий. А там уже могут быть добавлены правки других пользователей, и ваши правки создадут ненужные разветвления (о них немного в другой раз, для пытливых ссылка). Непреднамеренных ветвлений лучше избегать, а этого можно добиться, работая в самой свежей ревизии. Для этого сначала надо получить последние правки из центра:
         fossil pull
         
    а затем обновив свою рабочую копию:
         fossil update
         
    При обновлении fossil учтет ваши исправления в вашей же копии файлов, и объединит их в рабочем каталоге с последними правками из центрального репозитария, если сможет. Вот теперь можно и делать коммит.
  • Последовательность правка/обновление/фиксация можно повторять сколько угодно. Все будет храниться в вашем локальном репозитарии. И даже будет видно в локальном веб-интерфейсе:
         fossil ui
         
    Команда запустит fossil как веб-сервер на 127.0.0.1:8080 (или другом порту, заданном в параметрах команды) и запустит умолчальный браузер на этой странице. Там вы можете смотреть timeline, создавать и править вики страницы и задачи - все это будет храниться в вашем локальном репозитарии.
  • И вот, вы достигли просветления, скрипт отлажен и вылизан, и в-принципе, неплохо показать бы его людям. Пора отдать им свои правки. Для этого нужно сделать
         fossil push
         
    Вот тут то вы и узнаете, что в центральном репозитарии прав на коммит вам не дадено. Поэтому обратитесь сначала ко мне - форум, email, почтовые голуби, как угодно - и попросите прав на коммит. Я обычно добр и права даю. После чего ваш скрипт попадает в центральный репозитарий и становится видим для всех.

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

  fossil ui
  
Вместе с fossil push ваши страницы также уйдут в центр, Юстасу.

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

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

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