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
Π€Π°ΠΉΠ»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΡΠΎΡΠΌΠ°ΡΠ°:
XML
ΡΠΎΡΠΌΠ°Ρ - ΠΏΡΠΈΠΌΠ΅ΡXML
ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ - ΠΏΡΠΈΠΌΠ΅ΡPlain TEXT
ΡΠΎΡΠΌΠ°Ρ - ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π½Π° Π±Π°Π·Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SPCH List Builder, ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ:
- ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π°ΡΡ ΠΈΠ²ΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ZIP/Nuget
- ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ msi
- ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄
C#
Π² ZIP ΡΠΎΡΠΌΠ°ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ >= .NET 4.0
Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΊΠΎΡΠ½Π΅ 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
.
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"
ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ master
ΠΈ split
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ ΠΏΡΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΡ ChangeLog
ΡΠ°ΠΉΠ»Π°.
ChangeLog
ΡΠ°ΠΉΠ» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² split
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ΅Π²ΠΈΠ·ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ master
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΈ ΡΠ΅Π»ΠΈ Π·Π½Π°ΡΠΈΠΌΡΡ
ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -g
, Π°Π»ΠΈΠ°Ρ --chnglog
ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ChangeLog
ΡΠ°ΠΉΠ»Π° Π² split
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π° Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠ»ΡΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌ: md
- MarkDown
ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°, ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .md
ΠΈΠ»ΠΈ gnu
- ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°, ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .txt
.
ChangeLog
ΡΠ°ΠΉΠ» ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²split
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
Π‘Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Cmake
ΠΈ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ ΠΎΡ ΡΠΈΠΏΠΎΠ²ΡΡ
ΡΠ»ΡΡΠ°Π΅Π². ΠΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
- ΠΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ²
spch
Π»ΡΠ±ΡΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ Π²Π°Ρ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ: ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ»ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ zip Π°ΡΡ ΠΈΠ²Π°. - Π Π°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π°ΡΡ
ΠΈΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
build
. - ΠΠ»Ρ
Windows
ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅cmake-build-mingw.cmd
, Π΄Π»ΡPOSIX
ΡΠΈΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅cmake-build-gcc.sh
. - ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΠ΄Π°ΡΠ½ΠΎ, ΠΈ ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΎΡΠ»Π° Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»
spch
ΠΈΠ»ΠΈspch.exe
Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈbuild\bin
. - ΠΠ»Ρ
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
MIT