Skip to content

SPLIT POST COMMIT HOOK allows you to create and maintain a new SVN / GIT / HG Repository based on the file list. Can be used for various automation solutions.

License

Notifications You must be signed in to change notification settings

ClnViewer/Split-post-commit-Hook---SVN-GIT-HG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Build Travis Build Appveyor License MIT

Split post commit Hook - SVN/GIT/HG

SPLIT POST COMMIT HOOK позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ SVN/GIT/HG Π½Π° основании списка Ρ„Π°ΠΉΠ»ΠΎΠ². ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

тСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ

  • НС ΠΈΠΌΠ΅Π΅Ρ‚ зависимостСй ΠΎΡ‚ нСстандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  • Написан Π½Π° C, ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ стандарта ΠΎΡ‚ gnu99.
  • ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ, 100ΠΊΠ±+ исполняСмый Ρ„Π°ΠΉΠ», Π±Π΅Ρ€Π΅ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, большая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π±Π΅Π· динамичСского выдСлСния памяти.
  • ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° WIN32 - WIN64 ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ОБ ΠΎΡ‚ WinXP Π΄ΠΎ Win10, Ρ‚Π°ΠΊ-ΠΆΠ΅ Π»ΡŽΠ±Ρ‹Π΅ POSIXсовмСстимыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (*nix).
  • Π’ срСдС Windows сборка ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° Π½Π°:
    • Visual Studio 2010 - Visual Studio 2017 (?).
    • MinGW32 ΠΈ MinGW64, MinGW32 - TDM вСрсия.
  • Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ сборки Π²Ρ‹Π±Ρ€Π°Π½ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CMake.

возмоТности ΠΈ особСнности

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярными VCS: SVN/GIT/HG.
  • АвтоматичСски выполняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ VCS ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ обновлСнию, измСнСнию ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ рСпозитория, Π² зависимости ΠΎΡ‚ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.
  • ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ согласно списка. Бписок Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ master рСпозитория, Π΅Π³ΠΎ ΠΏΡƒΡ‚ΡŒ указываСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ корня рСпозитория.
  • ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π² спискС.
  • Как автоматичСски, Ρ‚Π°ΠΊ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° -u устанавливаСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ Π½Π° создаваСмыС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹. ΠžΠΏΡ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для POSIX совмСстимых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ суффикс ΠΊ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Π½Ρ‹ части ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° -x .
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вСсти ΠΆΡƒΡ€Π½Π°Π» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для дальнСйшСго Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Π·Π°Π΄Π°Ρ‚ΡŒ имя Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° -j .
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ запуска тСстов ΠΈ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π•ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΡƒΡ‚ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:
    • ΠΊΠ»ΡŽΡ‡ -d ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° скрипт ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ тСсты.
    • ΠΊΠ»ΡŽΡ‡ -y опрСдСляСт поиск ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° deploy.yaml Π² ΠΊΠΎΡ€Π½Π΅ split рСпозитория ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ описанных Π² Π½Π΅ΠΌ.
    • Π’ ΠΎΠ±Π΅ΠΈΡ… случаях, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ считаСтся Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0, ΠΈΠ½Π°Ρ‡Π΅ commit ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Π Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ скрипта deploy.sh ΠΈ Ρ„Π°ΠΉΠ»Π° deploy.yaml.
  • ΠŸΡ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ splitрСпозитория, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π² коммСнтариях Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ основного master рСпозитория ΠΈ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ дальнСйший поиск ΠΈ Π°Π½Π°Π»ΠΈΠ· логирования Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ zip с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ split рСпозитория ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ Π°Ρ€Ρ…ΠΈΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π’Π°ΠΊ ΠΆΠ΅ Π² Π°Ρ€Ρ…ΠΈΠ² Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» filelist.xslist с Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ списком, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ структура Ρ„Π°ΠΉΠ»Π° - XML.

ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

ΠšΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

     -m, --master 'val'     master Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ
     -s, --split 'val'      split Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΡƒΠ΄Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ
     -l, --list 'val'       список ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π·Π°Π΄Π°Π΅Ρ‚ΡŒΡΡ ΠΎΡ‚
                            корня master рСпозитория
     -o, --rootsvn 'val'    корнСвая дирСктория SVN/GIT/HG
                            Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
     -e, --execdir 'val'    ΠΏΡƒΡ‚ΡŒ ΠΊ исполняСмым Ρ„Π°ΠΉΠ»Π°ΠΌ VCS,
                            для 'POSIX' систСм ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ /usr/bin
     -j, --log 'val'        ΠΏΡƒΡ‚ΡŒ ΠΈ имя Ρ„Π°ΠΉΠ»Π° логирования
     -u, --uid 'val'        ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ…
                            ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Linux)
     -d, --deploy 'val'     deploy сцСнарий (скрипт), Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ΡŒΡΡ
                            ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ 'commit', Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ '0'
                            Ссли тСсты/сборка ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΠ΄Π°Ρ‡Π½Π°,
                            Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС 'commit' Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½
                            Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
     -y, --yaml             ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» 'deploy.yaml'
                            Π² ΠΊΠΎΡ€Π½Π΅ 'split' рСпозитория ΠΈ Π² случаС
                            успСха, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ описанныС Π² Π½Π΅ΠΌ.
                            Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ установлСнный
                            'bash shell' ΠΈΠ»ΠΈ 'ksh shell'(Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Linux)
                            Π€ΠΎΡ€ΠΌΠ°Ρ‚ 'yaml' Ρ„Π°ΠΉΠ»Π° описан Π½ΠΈΠΆΠ΅.
     -x, --rename 'val'     ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ прСфикса ΠΊ
                            ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ: 'old=new' ΠΈΠ»ΠΈ 'new' 
     -t, --vcs 'val'        Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ VCS: svn|git|hg
     -c, --check 'val'      ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ обновляСмыС Ρ„Π°ΠΉΠ»Ρ‹:
                             'c' (ctime)   - Π΄Π°Ρ‚Π΅ создания,
                             'm' (mtime)   - Π΄Π°Ρ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ,
                             's' (size)    - ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ,
                             'd' (default) - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 'm' ΠΈ 's',
                             'a' (all)     - ΠΏΠΎ всСм Π²Ρ‹ΡˆΠ΅ пСрСчислСнным
                            ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.
                            ΠŸΡ€ΠΈΠΌΠ΅Ρ€ синтаксиса: '--check cs', '--check a'
     -r, --revision 'val'   ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ ΠΊΠΎΠΏΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²
                            ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ master рСпозитория
     -g, --chnglog 'val'    вСсти 'ChangeLog' Π² 'split' Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ,
                            Π½Π° основании ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² 'master' Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ,
                            Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: md|gnu
     -b, --backup 'val'     ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 'zip' с
                            ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π² случаС обновлСния
                            Ρ„Π°ΠΉΠ»ΠΎΠ² Π² 'split' Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.
                            Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСдаСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ
                            ΠΏΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ
                            Π°Ρ€Ρ…ΠΈΠ²Ρ‹.
     -f, --force            ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ провСряя
                            на измСнСния 
     -k, --nonloop          ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ 'commit' ΠΈ
                            'update' Π² мастСр Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ,
                            Π΄Π΅ΠΌΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ процСсс Π½Π° врСмя выполнСния,
                            совмСстно с этим Ρ„Π»Π°Π³ΠΎΠΌ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ 
                            ΠΈΡΠΏΠΎΠ»ΡŒΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ записи Π»ΠΎΠ³Π° '-j'  
     -q, --quiet            'Ρ‚ΠΈΡ…ΠΈΠΉ Ρ€Π΅ΠΆΠΌ', Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π°
                            консоль, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
                            ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·
                            ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
     -t, --template         ΠΏΡ€ΠΈΠΌΠ΅Ρ€ структуры XML Ρ„Π°ΠΉΠ»Π° списка
     -i, --info             ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΊΠΎΠΌΠ°Π½Π΄
     -h, --help             ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΡ€ΠΈ использовании Π² скриптС hooks/post-commit использованиС ΠΊΠ»ΡŽΡ‡Π° -k, алиас --nonloop - ΠžΠ‘Π―Π—ΠΠ’Π•Π›Π¬ΠΠž!

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для svn Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибка ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ update, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² состоянии .lock ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ commit ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ вызываСтся данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Π’Ρ‹ Ρ‚Π°ΠΊ-ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ списка, сСкция settings/options. ΠŸΡ€ΠΈ этом СдинствСнныС Π½ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π±ΡƒΠ΄ΡƒΡ‚ -m, --master ΠΈ -l, --list. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ структуру XML Ρ„Π°ΠΉΠ»Π° списка Ρ‚Π°ΠΊ-ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ запустив ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΊΠ»ΡŽΡ‡Π΅ΠΌ -t.

Π€Π°ΠΉΠ» справки ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ man

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² .slist | .xslist

Π€Π°ΠΉΠ»Ρ‹ списка ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:

Для создания Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ списка Π½Π° Π±Π°Π·Π΅ рСпозитория, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SPCH List Builder, ΡΠΎΠ±Ρ€Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° deploy.yaml

Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΡ€Π½Π΅ split рСпозитория ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… сСкции для ΠΊΠΎΠΌΠ°Π½Π΄:

  • БСкция pre - ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выполняСмыС ΠΏΠ΅Ρ€Π΅Π΄ тСстами ΠΈΠ»ΠΈ сборкой, ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ провСряСтся.
  • БСкция build - ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сборки ΠΈ тСста, провСряСтся ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄, Π² случаС успСха ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ 0.
  • БСкция post - ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выполняСмыС послС сСкции build, ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ провСряСтся.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° deploy.yaml:

   pre:
     - cd build/
   build:
     - gcc -std=gnu99 -lm -I../src -o Test01 ../src/abc.c ../src/cba.c
     - ./Test01
   post:
     - rm -f ./Test01
     - echo "Ok"

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ выполнСния Π² случаС Ссли ΡƒΠΊΠ°Π·Π°Π½Ρ‹ -d (--deploy) ΠΈ -y (--yaml) ΠΊΠ»ΡŽΡ‡ΠΈ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ: спСрва выполняСтся Π°Π½Π°Π»ΠΈΠ· ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ yaml ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Ссли ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ тСсты ΠΏΡ€ΠΎΡˆΠ»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, выполняСтся скрипт Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -d ΠΈ провСряСтся Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ДоступныС ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΡ€ΠΈ описании ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

  • $_ROOT - корнСвая дирСктория рСпозитория: [ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ].
  • $_VCS_REVISION - тСкущая рСвизия рСпозитория: [число].
  • $_VCS_TYPE - Ρ‚ΠΈΠΏ VCS: [ svn | git | hg ] .
  • $_RC - ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° послСдний ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· сСкции build.
  • $_REPO_NAME - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ рСпозитория.
  • $_BACKUP_ZIP - ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π°Ρ€Ρ…ΠΈΠ²Ρƒ, Ссли Π±Ρ‹Π» Π·Π°Π΄Π°Π½ ΠΊΠ»ΡŽΡ‡ -b .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π»ΠΎΠ³Π° выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Ρ„Π°ΠΉΠ»Π° deploy.yaml

 Setup -> Root directory: /repo/split
 Setup -> VCS revision: 160
 Setup -> VCS type: svn

 Pre-build cmd: cd build/
 Examine cmd: /usr/bin/gcc -std=gnu99 -Wall -pedantic -I../src 
  -Wfatal-errors -pedantic-errors 
  ../src/hashmap-link-hash.c ../test/main.c -o ./testDeployBuild
 Examine cmd: ./testDeployBuild
    17) Add: [217374]
    19) Add: [925358]
    ...
    37)      [925358]
 All Tests return 0
 Post-build cmd: rm -f ./testDeployBuild
 Post-build cmd: echo "Ok"
   "Ok"

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ChangeLog

Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡƒΡŽ взаимосвязь ΠΌΠ΅ΠΆΠ΄Ρƒ master ΠΈ split рСпозиториями ΠΏΡƒΡ‚Π΅ΠΌ автоматичСского вСдСния ChangeLog Ρ„Π°ΠΉΠ»Π°.

ChangeLog Ρ„Π°ΠΉΠ» создаСтся ΠΈ обновляСтся автоматичСски Π² split Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ обновлСния master рСпозитория ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ‚Π΅ΠΌ самым Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ†Π΅Π»ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -g, алиас --chnglog Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ChangeLog Ρ„Π°ΠΉΠ»Π° Π² split Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° задаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ: md - MarkDown Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°, Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .md ΠΈΠ»ΠΈ gnu - тСкстовая Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°, Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .txt.

ChangeLog Ρ„Π°ΠΉΠ» обновляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² split Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈ Π˜Π½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡ

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ систСмой Cmake ΠΈ Π½Π΅ отличаСтся ΠΏΠΎ шагам ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… случаСв. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ дСйствий:

  1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ дистрибутив исходных ΠΊΠΎΠ΄ΠΎΠ² spch Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для вас способом: ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ zip Π°Ρ€Ρ…ΠΈΠ²Π°.
  2. РаспакуйтС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ build.
  3. Для Windows ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ запуститС cmake-build-mingw.cmd, для POSIX систСм запуститС cmake-build-gcc.sh.
  4. Если всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΠ΄Π°Ρ‡Π½ΠΎ, ΠΈ сборка ΠΏΡ€ΠΎΡˆΠ»Π° Π±Π΅Π· ошибок, исполняСмый Ρ„Π°ΠΉΠ» spch ΠΈΠ»ΠΈ spch.exe Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ build\bin.
  5. Для POSIX систСм Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» сборки Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° install, Ссли Π²Ρ‹ Π½Π΅ пСрСопрСдСляли ΠΏΡƒΡ‚ΡŒ, исполняСмый Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ скопирован Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /usr/local/bin.

Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ собранныС исполняСмыС ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для 32/64 Windows ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ: w32 вСрсия | w64 вСрсия | Ρ€Π΅Π»ΠΈΠ·

Для Windows ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ компилятор MinGW, для POSIX ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ компилятор gcc ΠΈΠ»ΠΈ clang. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ spch Π² MSVC/MSVS, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» cmake-build-msvc.cmd. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для MSVC/MSVS сборка ΡƒΠΊΠ°Π·Π°Π½Π° для Visual Studio 15 2017.

Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ spch Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ· скрипта VCS post-commit, Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ мСстополоТСниС зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° VCS ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π€Π°ΠΉΠ»Ρ‹ Ρ…ΡƒΠΊΠΎΠ² VCS ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ согласно Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

# ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для `svn`, Ρ„Π°ΠΉΠ» `post-commit` Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
# Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ svn рСпозитория Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ΅ `hooks`.

# структура `svn` рСпозитория:
    conf/
    db/
    hooks/
    locks/
    README.txt
    format

# вносим измСнСния в hooks/post-commit:
/usr/bin/spch \
   -u svn \
   -e /usr/bin \
   -r "${2}" \
   -t svn \
   -k \
   -y \
   -o /home/svn/repo \
   -m /home/user/MyLibRootRepo \
   -s /home/user/__SplitRepo/MyLibSplitRepo_auto \
   -l buildDirectory/split-repo.list \
   -j /home/svn/spch_MyLibSplit.log \
   -x mylib=libexport


# Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» 'yaml', Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ глобальноС
# ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° deploy.yaml:

svn propset svn:global-ignores deploy.yaml
# ΠΈΠ»ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория
svn propset svn:ignore deploy.yaml

Для Windows ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΊΠ»ΡŽΡ‡ -y Π½Π΅ поддСрТиваСтся, Π² связи с отсутствиСм ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ bash/ksh ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ поставкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π°

 [30060/30059][startedlog:102] -> spch v.0.0.9.62() 18.08
 [30060/30059][startedlog:107] -> started at 08/30/18-06:16PM
 [30060/30059][main:78] -> stage #0 non-loop mode: Parent 30060 successful exit
 [30061/1][main:97] -> stage #0 check files mode: all - create, modify time and size
 [30061/1][pch_stage2:154] -> stage #2 update: /repo/master/spch-link-hash.h -> /repo/split/hashmap-link-hash.h
 [30061/1][pch_stage2:154] -> stage #2 update: /repo/master/spch-link-hash.c -> /repo/split/hashmap-link-hash.c
 [30061/1][main:112] -> stage #2 changed repo objects: 2 -> /repo/split
 [30061/1][pch_stage3:217] -> deploy script [buildDeploy.sh] start: 

    17) Add: [217374]
    19) Add: [925358]
    ...
    54) Dump
    1)      [139920]
    2)      [440839]
    3)      [925358]

 [30061/1][pch_stage3:217] -> deploy script [buildDeploy.sh] - OK
 [30061/1][main:136] -> stage #3 changed commit success: /repo/split
 [30061/1][endedlog:119] -> ended at 08/30/18-06:16PM

License

MIT

About

SPLIT POST COMMIT HOOK allows you to create and maintain a new SVN / GIT / HG Repository based on the file list. Can be used for various automation solutions.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages