При
недавньому холіварі на тему з системами
керування версіями, а саме git vs svn,
іноді чути за mercurial ( hg ).
При цьому я на днях почув про
fossil, читаючи в інтернеті,
всім він сподобався за простоту, саме
це є основним великим плюсом в fossil:
- всього
один файл завантажити з сайту, або
скомпілювати і можна поміщати на флешку,
як один писав “репозиторій з кодом на
флешці”, розмір файлу трішки більше
одного мегабайта
- все
зберігається в одній базі
-
якщо працювати з своїм репозиторієм і
налаштовувати сервер, то для цього
підійде навіть простий inetd, SCGI, CGI.
-
максимальна простота і
мінімалізм,
за яку виступає сам автор Річард
Хіпп, який ще пише SQLite
- також
зберігається все разом і WIKI,
BugTreker.
- є репозиторій для коду, аналог sourceforge, github, Chisel - Fossil SCM Hosting
- є репозиторій для коду, аналог sourceforge, github, Chisel - Fossil SCM Hosting
Одним
словом, для роботи з кодом вам не потрібно
ставити Apache, nginx сервер
для сумісної праці, для цього достатньо
стандартного inetd, бо
на налаштування сервера і його підтримку
йде час затрачений, плюс потрібно ще
слідкувати за базою даних, кожен вибирає
на свій смак, BerklyDB, MySQL.
Для інших систем контролю
за версіями є багато додатків для веб
перегляду, також WIKI,
BugTreker. Всі вони різні, а в
fossil все в
одному. Саме тому цей
вибір випав на нього. Та й система
годиться для використання.
Fossil
відноситься до розподіленої
системи керування версіями, тому можна
працювати з власним репозиторієм.
Створювати власні гілки, та інше. Коротко
в мене все.
Для
встановлення fossil багато
не потрібно, для ОС Windows
http://www.fossil-scm.org/download.html завантажуємо і розпаковуємо,
в папку куди зручно, далі, занести шлях
в перемінні середовища, або як я зробив
.bat файл
і запускаю його завжди коли працюю.
Зміст його
простий:
# скопіювати
і вставити в файл з довільною назвою з
розширенням bat, якщо
# будуть
помилки то видалити коментарі
@set
path=E:\dir\fossil;%path% #
жирним замініть на свій шлях
до папки
@%comspec%
В
pkgsrc і FreeBSD ports fossil
знаходиться в /devel/fossil,
тому для NetBSD чи
якщо ви користуєтесь pkgsrc виконуємо:
$
/usr/pkgsrc/devel/fossil && make
inctall clean
FreeBSD
ports:
$
/usr/ports/devel/fossil && make
inctall clean
Про
встановлення коротко все, при виявлення
помилок звертайтесь до коммітерів портів,
чи на сайт проекту.
Почнемо короткий опис роботи:
-
Створюємо репозиторій:
$ fossil
init E:\repos\relab2500.foss
або
$ fossil
new E:\repos\relab2500.foss
В
чому різниця поки що не знаю поки що.
Слід
зауважити що при створені fossil
напише про логін і пароль адміністратора,
він дуже балакучий, тому читайте що він
напише, як на екрані приклад.
-
Клонування репозиторію
$ fossil
clone E:\repos\relab2500.foss
Я
не зберігаю файл репозиорію і код в
одному місці, тому йдемо в папку з
проектом і відкриваємо репозиторій:
$ cd
E:\src\project\
$ fossil
open E:\repos\relab2500.foss // відкрили
репозиторій
E:\src\project>fossil
open E:\fossil\relab2500.foss
project-name:
<unnamed>
repository:
E:\fossil\relab2500.foss
local-root:
E:/src/project/
config-db:
C:/Documents and Settings/suprtuser/Application Data/_fossil
project-code:
e1efe19ecc500f85541106427ec9da371c8e366a
checkins:
0
Після
відкриття створюється в каталозі файл
_FOSSIL_ де будуть всі файли
бази даних, там будуть відстежуватись
всі зміни, шлях до репозиторію та інше,
саме тому після коміту радять закрити
проект репозиторію:
$ fossil
close E:\fossil\relab2500.foss
Але
не забувайте зробити комміт, бо можуть
бути попередження.
Створюємо
довільні файли які вам потрібно і
додаємо їх. Добавимо
для прикладу два файли java.
..
extd.java
TResk.java
_FOSSIL_
- додаємо
їх:
$ fossil
add .
Точку
пишемо тоді коли знаходимось в каталогові
з кодом
маємо
результат:
ADDED
extd.java
ADDED
Tresk.java
- робимо
комміт
$ fossil
ci -m “add new files”
-
порівнюємо версії файлів
для
порівняння нам потрібно взнати версії
файлів
$
fossil finfo %file_name%
$ fossil
finfo extd.java
History of
extd.java
2015-02-17
[87de24cce3] add extd class reson (user: suprtuser, artifact:
[d2f080dfc9], branch: trunk)
2015-02-17
[f3dd578c29] add commit clode (user: suprtuser, artifact:
[b235c8497f], branch: trunk)
жирним
виділив версії, порівнюємо їх зміни:
$
fossil diff -from f3dd578c29 --to 87de24cce3 extd.java
---
extd.java
+++
extd.java
@@ -13,7
+13,15 @@
c=a+b;
System.out.println("C = " +c);
}
+}
+class
Resoner
+{
+int a=5;
+for(int b
= 7; a < b; a=a+b)
+{
+System.out.println(a);
+return a;
}
-
повернення файлу до попередньої
версії:
$ fossil
revert -r %Версія по індентифікатору%
%назва файлу%
Ідентифікатор
файлу береться з команди fossil finfo, як
в нашому прикладі.
-
стан репозиторію:
$ fossil
status
-
закриття репозиторію:
$ fossil
close E:\fossil\relab2500.foss
Звісно це не повний
мануал по fossil, це невеликий
приклад, більше інформації в документації
чи по командам:
$ fossil
help
чи
$ fossil
help %команда%
Чого
тут не розглянули, так це отримання змін
з віддаленого репозиторію, слідкування
за змінами, переміщення і видалення
файлів, що робити з помилками, вони
можуть бути коли робити комміт, а файл
ще незбережений і відкритий. Також ми
не розглянули відправлення змін в
віддалений репозиторій.
Це
досить простий і зручний інструмент
для роботи!
І
зберігайте свої дані надійно, робіть
бекапи!!!
Немає коментарів:
Дописати коментар