LINUX.ORG.RU

Завершён переход FreeBSD с системы контроля версий Subversion на Git

 , , ,


1

0

Последние несколько дней свободная операционная система FreeBSD переходила от своей разработки, которая велась с помощью Subversion, к использованию распределенной системы контроля версий Git, которая используется в большинстве других проектов с открытым исходным кодом.

Переход FreeBSD с Subversion на Git состоялся. Миграция была завершена на днях, и теперь новый код поступает в их основной репозиторий Git и на Github.

>>> Подробности

★★★

Проверено: Shaman007 ()
Последнее исправление: demidrol (всего исправлений: 1)

Ответ на: комментарий от iZEN

Не надо порты обновлять. Клонируйте git-репозиторий с исходниками системы, скомпилируйте систему, попробуйте на неё обновиться… Вот тут и случатся и mergemaster, и $FreeBSD$.

sinaps
()
Ответ на: комментарий от sinaps

Клонирование:

% git clone --no-checkout --depth 1 --origin freebsd --config remote.freebsd.fetch='+refs/notes/*:refs/notes/*' --branch stable/12 https://git.freebsd.org/src.git /usr/src/
Клонирование в «/usr/src»…
remote: Enumerating objects: 84796, done.
remote: Counting objects: 100% (84796/84796), done.
remote: Compressing objects: 100% (73783/73783), done.
remote: Total 84796 (delta 17812), reused 41842 (delta 7917), pack-reused 0
Получение объектов: 100% (84796/84796), 275.32 MiB | 2.00 MiB/s, готово.
Определение изменений: 100% (17812/17812), готово.

Обновление:

% cd /usr/src/ && git fetch --depth 1
remote: Enumerating objects: 432529, done.
remote: Counting objects: 100% (432529/432529), done.
remote: Compressing objects: 100% (77709/77709), done.
remote: Total 432528 (delta 145), reused 432528 (delta 145), pack-reused 0
Получение объектов: 100% (432528/432528), 37.52 MiB | 2.06 MiB/s, готово.
Определение изменений: 100% (145/145), готово.
Из https://git.freebsd.org/src
 * [новая ссылка]          refs/notes/commits -> refs/notes/commits

% cd /usr/src/ && git pull /usr/src/ freebsd/stable/12 --ff-only
Из /usr/src
 * remote-tracking branch  freebsd/stable/12 -> FETCH_HEAD
Уже обновлено.

% ls /usr/src/
.git

А где сырцы?!

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 2)
Ответ на: комментарий от iZEN

Ну и далее… См. /usr/src/UPDATING

make buildworld

и пр. до

mergemaster -Fi

У всежеустановленной системе в конфигах будет

$FreeBSD$

вместо версии.

sinaps
()
Ответ на: комментарий от iZEN

А где сырцы?!

Помню, увлекался я раньше сыроедением. Все, что употреблял в пищу, называл «сырцы». Формулируйте мысли точнее. А то непонятно...

Владимир 123456

anonymous
()
Ответ на: комментарий от sinaps

у меня всё на месте

Намекаете на что-то непристойное? А потом весь ЛОР называет меня заднеприводным…

Владимир

anonymous
()
Ответ на: комментарий от iZEN

% git clone --no-checkout ...

А где сырцы?!

Вы уж либо трусы наденьте, либо крестик снимите. Если хотите чтобы всё в одном месте лежало – не говорите --no-checkout, а если наоборот – не забудьте worktree добавить.

anonymous
()
Ответ на: комментарий от anonymous

Что-то куда-то скачалось. В /usr/src/ один каталог .git. В котором наверное что-то есть… Как это что-то достать из него в удобоваримую структуру каталогов /usr/src, чтобы из этого можно было собрать и обновить систему командой:

cd /usr/src/ && make cleandir buildworld buildkernel && make installworld installkernel && mergemaster -iU

???

P.S.

Представляю, сколько пользователей, привыкших к svn и mercurial (в своих разработках), будет пробовать этот необычный волшебный git…

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ладно. Пробуем ещё раз.

% zfs destroy comp/src.git
% zfs create comp/src.git
% zfs set mountpoint=/usr/src comp/src.git

% git clone -o freebsd -b stable/12 --config remote.freebsd.fetch='+refs/notes/*:refs/notes/*' https://git.freebsd.org/src.git /usr/src/
Клонирование в «/usr/src»…
remote: Enumerating objects: 378829, done.
remote: Counting objects: 100% (378829/378829), done.
remote: Compressing objects: 100% (27919/27919), done.
remote: Total 4252853 (delta 372382), reused 351015 (delta 350884), pack-reused 3874024
Получение объектов: 100% (4252853/4252853), 1.17 GiB | 2.69 MiB/s, готово.
Определение изменений: 100% (3024979/3024979), готово.
Updating files: 100% (81370/81370), готово.

% ls -all /usr/src
total 1
drwxr-xr-x   25 root  wheel      41  3 янв.  20:53 .
drwxr-xr-x   15 root  wheel      15  3 янв.  20:19 ..
-rw-r--r--    1 root  wheel      85  3 янв.  20:53 .arcconfig
-rw-r--r--    1 root  wheel     448  3 янв.  20:53 .arclint
-rw-r--r--    1 root  wheel     351  3 янв.  20:53 .cirrus.yml
drwxr-xr-x    8 root  wheel      13  3 янв.  20:53 .git
-rw-r--r--    1 root  wheel     152  3 янв.  20:53 .gitattributes
-rw-r--r--    1 root  wheel     188  3 янв.  20:53 .gitignore
drwxr-xr-x   41 root  wheel      43  3 янв.  20:53 bin
drwxr-xr-x    9 root  wheel      11  3 янв.  20:53 cddl
drwxr-xr-x   92 root  wheel      92  3 янв.  20:53 contrib
-rw-r--r--    1 root  wheel    6121  3 янв.  20:53 COPYRIGHT
drwxr-xr-x    5 root  wheel       6  3 янв.  20:53 crypto
drwxr-xr-x    7 root  wheel      17  3 янв.  20:53 etc
drwxr-xr-x    5 root  wheel       9  3 янв.  20:53 gnu
drwxr-xr-x    8 root  wheel     106  3 янв.  20:53 include
drwxr-xr-x    8 root  wheel      11  3 янв.  20:53 kerberos5
drwxr-xr-x  137 root  wheel     139  3 янв.  20:53 lib
drwxr-xr-x   38 root  wheel      42  3 янв.  20:53 libexec
-rw-r--r--    1 root  wheel     500  3 янв.  20:53 LOCKS
-rw-r--r--    1 root  wheel    6092  3 янв.  20:53 MAINTAINERS
-rw-r--r--    1 root  wheel   27991  3 янв.  20:53 Makefile
-rw-r--r--    1 root  wheel  109965  3 янв.  20:53 Makefile.inc1
-rw-r--r--    1 root  wheel    7022  3 янв.  20:53 Makefile.libcompat
-rw-r--r--    1 root  wheel    1951  3 янв.  20:53 Makefile.sys.inc
-rw-r--r--    1 root  wheel  571914  3 янв.  20:53 ObsoleteFiles.inc
-rw-r--r--    1 root  wheel    2426  3 янв.  20:53 README
-rw-r--r--    1 root  wheel    2464  3 янв.  20:53 README.md
drwxr-xr-x   13 root  wheel      23  3 янв.  20:53 release
drwxr-xr-x    4 root  wheel       6  3 янв.  20:53 rescue
drwxr-xr-x   92 root  wheel     100  3 янв.  20:53 sbin
drwxr-xr-x    8 root  wheel      10  3 янв.  20:53 secure
drwxr-xr-x   27 root  wheel      29  3 янв.  20:53 share
drwxr-xr-x   26 root  wheel      35  3 янв.  20:53 stand
drwxr-xr-x   54 root  wheel      55  3 янв.  20:53 sys
drwxr-xr-x    3 root  wheel       6  3 янв.  20:53 targets
drwxr-xr-x    5 root  wheel      10  3 янв.  20:53 tests
drwxr-xr-x   16 root  wheel      20  3 янв.  20:53 tools
-rw-r--r--    1 root  wheel   87457  3 янв.  20:53 UPDATING
drwxr-xr-x  284 root  wheel     291  3 янв.  20:53 usr.bin
drwxr-xr-x  233 root  wheel     243  3 янв.  20:53 usr.sbin

Вроде всё на месте…

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

А кто это написал

@anonymous

И заметьте, второй строчкой в codeblock там как раз про добавление worktree. То есть там нарисован случай, когда путь к рабочему каталогу отдельно от репозитория.

anonymous
()
Ответ на: Ладно. Пробуем ещё раз. от iZEN

С Git:

% uname -v
FreeBSD 12.2-STABLE r368787+b4fde1650936(local) COMP

До этого (из SVN):

% uname -v
FreeBSD 12.2-STABLE r368820 COMP

Хм. Какой-то давнишний срез в Git’е. Они что, уснули что ли?

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Они что, уснули что ли?

Наверное сочли что это:

Revision 368820

Mark the repository as being converted to Git.

This is the last Subversion commit to src.

Sponsored by: The FreeBSD Foundation

будет в git лишним.

sinaps
()
Ответ на: комментарий от anonymous

А без этого весь mergemaster к херам ломается.

Так надо просто выпилить mergemaster(8) из системы, и ничего больше ломаться не будет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.