Для OpenBSD развиваСтся новая git-совмСстимая систСма контроля вСрсий Got

Π‘Ρ‚Π΅Ρ„Π°Π½ Π‘ΠΏΠ΅Ρ€Π»ΠΈΠ½Π³ (stsp@), участник ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenBSD с дСсятилСтним стаТСм, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Apache Subversion, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ систСму контроля вСрсий «Game of Trees» (got). ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠΉ систСмы ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ отдаётся простотС устройства ΠΈ простотС использования, Π° Π½Π΅ гибкости. БСйчас Got Π΅Ρ‰Ρ‘ находится Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅; ΠΎΠ½ разрабатываСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° OpenBSD ΠΈ Π΅Π³ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ OpenBSD. Код распространяСтся ΠΏΠΎΠ΄ свободной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ ISC (эквивалСнт ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ BSD ΠΈ MIT).

Для хранСния вСрсионированных Π΄Π°Π½Π½Ρ‹Ρ… Π² Got ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’ настоящСС врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ управлСния вСрсиями. ΠŸΡ€ΠΈ этом, git ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, которая Π΅Ρ‰Ρ‘ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² got — Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с got ΠΈ git Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Основной Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° называСтся взаимодСйствиС с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ OpenBSD, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят рСгулярно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ got для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ OpenBSD, ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ управлСния вСрсиями Π½Π° основС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚ Π½ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  • Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ бСзопасности ΠΈ ΡΡ‚ΠΈΠ»ΡŽ кодирования OpenBSD;
  • ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, основанный Π½Π° Ρ€Π΅Ρ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅;
  • ИспользованиС pledge(2) ΠΈ unveil(2) Π²ΠΎ всСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅;
  • ИспользованиС раздСлСния ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΏΡ€ΠΈ парсингС Π΄Π°Π½Π½Ρ‹Ρ… рСпозитория ΠΏΠΎ сСти ΠΈΠ»ΠΈ с диска;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD.

ДолгосрочныС Ρ†Π΅Π»ΠΈ:

  • Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ совмСстимости с дисковым Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ рСпозитория git (Π±Π΅Π· сохранСния совмСстимости с инструмСнтариСм);
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° инструмСнтов управлСния вСрсиями для OpenBSD:
    • Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для выполнСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ управлСния вСрсиями (got)
    • Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ рСпозитория для Π°Π½Π°Π»ΠΈΠ·Π° истории ΠΈ ΠΎΠ±Π·ΠΎΡ€Π° зафиксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (tog)
    • CGI-скрипт, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅Π±-интСрфСйс — Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ рСпозитория
    • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ администрирования Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² с ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π°ΠΊΡ†Π΅Π½Ρ‚ΠΎΠΌ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ восстановлСниС
    • Π‘Π΅Ρ€Π²Π΅Ρ€ рСпозитория для хостинга Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория ΠΈ синхронизации ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с каскадом ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ частных Π·Π΅Ρ€ΠΊΠ°Π»
  • ВрСбования ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ процСссу Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² OpenBSD:
    • Бильная встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ рСпозитория;
    • Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π²Π΅Ρ‚ΠΊΠΈ (branch), сохраняСтся простота использования;
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½ΠΈΡ… Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ;
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π»ΠΈΠ·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ «-stable»;
    • ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для построСния инфраструктуры ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenBSD.
  • РСализация Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сСтСвых соСдинСний:
    • Доступ ΠΊ рСпозиториям ΠΏΠΎ SSH ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ TLS для клонирования рСпозитория ΠΈ получСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ;
    • Доступ ΠΊ рСпозиториям Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ SSH для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ;
    • Доступ ΠΊ рСпозиториям Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ соСдинСния.

    Got ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΊΠ°ΠΊ «devel/got«. На EUROBSDCON 2019 Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Π΄ΠΎΠΊΠ»Π°Π΄ ΠΏΡ€ΠΎ Π½ΠΎΠ²ΡƒΡŽ систСму контроля вСрсий.

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru