Title: academy.devbg.org
1?????????? ?? ????????? ??? ?????????? ?? ???????
(Software Configuration Management)
??????? ?????
?????????? ???????? ?? ?????????? ?? ???????
academy.devbg.org
2??????????
- ??????? ?? ?????????? ?? ????????? ??? ??????????
?? ??????? (SCM) - ??????? ?? SCM ????????
- ?????????? ?? ???????? ??????? ??????? ?
???????? - ?????? ?? ?????????????
- Lock-Modify-Unlock
- Copy-Modify-Merge
- ??????? ? ???????????
3????? ? ?????????? ?? ??????????
- ?????????? ?? ????????? Software Configuration
Management - ??????? ?? ????????? ?? ????? ?? ????? ?????? ??
?????????? ?? ??????? - ??? ?????? ???????, ??? ??????????? ??
????????????? ? ???????????, ??? ???????????????
? ?????????? - ????????? ????????? ?? ?? ?????????? ????? ??
????? ????????
4Software Configuration Management (SCM)
- ?????????? ?? ??????????? ???????????
- ?????? ?? ?? ???????, ???????? ? ???????????
- ????????? ????????? ??? ?????????? ?? ?????????
??????? ???? - ????????? ?? ??????????, ???????, ????????? ?
????????? ?? ????????? - ???????? ??????? ?? ???????
- ?????????? ????? ?? ?????? ? ???????
- ?????? ????????? ? ?????????
5???? ?? ?????? SCM?
- ?? ???????????
- ????? ???? ???????? ?? ???? ? ???? ???? ??? ???
????????? - ???????, ????????? ? ????? ??????? (builds
releases) - ?????????????? ?? ?????????? ?? ???????? ?
?????????? ?? ??????? - ??????, ????????, ???????, ??????????????, ...
- ?????????? ?? ???????????? ??????
6????? ?? SCM ????????? (1)
- ?????????? ?? ?????????
- ??????? ??? ?????????? ?? ???????? ? ?????????
- ???????? ?? ?????????
- ??????? ?? ??????? ?? ????????? ?????????? ?
????????? ?? ???????? ?? ??? - ??????????? ? ?????????
- ?????????? ?? ??????????? ?? ?????????
- ?????????? ?? ????????? (build)
- ??????? ?? ????????? ? ?????????? ?? ???
7????? ?? SCM ????????? (2)
- ?????????? ?? ???????
- ???????? ?? ??????? ?? ??????????
- ?????? ? ????
- ?????????? ?? ??????????? ?????? ?
???????????????? ? ?????
8SCM ? ???????? ?? ?????????? ?? ???????
???????
????? ???????
????????
??????
??????? ????????? ? ?????
??????????
SCM
Build ?????????, ????? ???????
??????
??????
????????
???? ???
?????????????
9??????? ?? SCM ????????
10??????? ?? SCM ????????
Application life-cycle management (ALM)
Process-centric software configuration management
Software configuration management (SCM)
Version control
11??????? ?? ?????????? ?? ???????? (Version
Control)
- ??????????????
- ?????????? ?? ???????? ?? ???????
- ?????? ??????? ? ???????? ?? ???????
- ???????????? (branching)
- ?????????? ?? ???????
- ???????? ? GUI ???????
- ??-???????? ????????
- CVS
- Subversion
- Microsoft Visual SourceSafe
- Perforce
12SCM ???????
- ??????????????
- ?????????? ?? ????? ?????????
- ????????? ??????? ? ???????
- ?????????? ?? ??????? ????????????
- ?????????? ?? ????? ?? ????????? (workflow)
- ?????????? ?? ??????? ? ???????
- ??-???????? ????????
- Borland StarTeam Standard
- IBM Rational ClearCase
- MKS Source Integrity
- Serena ChangeMan Professional
13????????-??????????? SCM ???????
- ??????????????
- ??????? ?? ???????, ??????? ? ???????????????
- ?????????? ?? ????????????
- ?????????? ?? ???????? (issue tracking)
- ?????????? ?? ??????, ??????? ?? ??????
- ??????? ?? ??????? (???????????, ?????, ...)
- ?????????? ???????? ? ?????? ?? ?????????
- ??-???????? ????????
- Borland StarTeam Standard
- IBM Rational ClearCase
- MKS Source Integrity
14Application Lifecycle Management (ALM) ???????
- ??????????????
- ????? ?????????? ?? ????????? ? ??????????? ??
??????????? ?? - ??????????? ?? ??????
- ??????????? ?? ??????????
- ??????????? ?? ????????
- ??????????? ?? ?????????? ?? ???????
- ??-???????? ????????
- Microsoft Visual Studio Team System Server
- Borland StarTeam Enterprise Advantage
- Telelogic SYNERGY
15???????????? ????????
?????????? ?? ????? ???????? ???? ? ??? ????
(????????)
16?????????? ?? ????????
- ???????? ?? ????????? ? ?????????????
- ??? ?????? ? ?????????
- ??? ?????????? ?? ???????
- ????????? ?? ????????????? ? ??????????? ??
??????? ????? - ????? ?? ??????, ????. 1.0, 2.0, 2.17
- ???????? ?? ???????? ??????????? ?? ???????? ?
??????, ????? ?? ? ???????
17??????? ?? ?????????
- ????????? ?? ??????? ?? ???????? ???????? ?????
??????? ?? ????????? - ????? ?? ?????? ? ???? ?? ????? ???????
- ???? ?? ????????????, ???????? ?????????
- ??????? ???????? ????? ?? ?? ????????, ??????????
? ????????? - ???????? ? ??????? ??? ????? ?????? (revert)
18?????? ?? ????????? (1)
- ????????? (repository)
- ??????, ????? ????????? ????????? (???????????)
- ???????? ??????? ?? ????????
- ?????? (revision, version)
- ???????????? ?????? (?????????) ?? ????, ????????
???? ????? ??????? - ????????? (check-out)
- ??????? ??????? ????? ?? ????????? ?? ???????????
? ??????? ?????????? - ???????? ? ?????????? ?? ?????????
19?????? ?? ????????? (2)
- ??????? (change)
- ??????????? ?? ??????? ???? (????????), ?? ?????
?? ??????????? ???????? - ?????? ? ??????? (change list)
- ????????? ?? ??????? ? ???????? ???????, ????? ??
????? ?????????? ???????? - ????????????? (commit, check-in)
- ????????? ?? ????????? ?? ????????? ????? ??
????????? ? ??????????? - ??????? ??????????? ???? ??????
- ???????? ? ?????????? ?? ?????????!
20?????? ?? ????????? (3)
- ???????? (conflict)
- ???????????? ??????? ?? ???? ? ??? ???? ??
??????? ??????????? - ??????????? ? ????? ???????????
- ?????????? (update, get latest version)
- ????????? ?? ??????????? ??????? ?? ??????????? ?
??????? ?????????? - ??????? ?? ????????? (undo check-out)
- ??????? ????????? ??????? ?? ????? ???????
- ????? ??????????? ?? ?? ???????????
21?????? ?? ????????? (4)
- ??????? (merge)
- ??????? ?? ??????? ????? ???? ? ??? ????,
????????? ????????? ?? ???????? ??????????? - ???? ? ?????? ?????? ?? ?? ????????????
- ?????? (label, tag)
- ????????? ?????????? ? ??? ????? ?? ??????? ?
?????? ?????? - ???????? ?????? ??????? (release)
- ???????????? (branching)
- ????????? ?? ??????????? ? ??????? ??????? ??????
?? ??????
22?????????? ?? ???????? ??????? ????????
???????????
?????????
?????? ????? ?? ??????????
Version A Branch
?????????? A
Version A.1 Branch
Check Out
Check In
A
C
?????????? B
Version B Branch
E
Check In
23?????? ?? ?????????????
Lock-Modify-Unlock ?Copy-Modify-Merge
24?????? ?? ?????????????
- ??????????-???????-?????????? (Lock-Modify-Unlock)
- ???? ???? ?????????? ?????? ?? ????? ???? ? ?????
??????, ??? ????????? - ?????? Visual SourceSafe
- ????????-???????-??????? (Copy-Modify-Merge)
- ????????????? ?????? ????????? ??????? ??
??????????? ?? ??????? ????? - ??????????? ??????? ?? ?????? ? ?? ????????
????????? ?????? - ??????? CVS, Subversion
25???????? ??? ????????????
- ??????????????? ????????
- ????? ???????? ????? ???? ? ??????? ?? ????
- ???? ?? ????? ? ?????? ????? ?? ???????? ?????
???? - ??????? ?????????? ?? ????? ????
- ?????????? ??????? ?? ?????? ?? ? ????????
- ???????? ???? ?????? ? ????????, ? ???? ? ????
?? ?????
26???????? ??? ?????????
- ??? ????? ???? ?? ??????? ???????????? (modify
concurrently), ????????? ?????? ?? ?? ?????? - ????????? ? ??????!
- ?? ?????? ? ???????? ???????????
- ?????????? ? ??????????? ? ??????????? ?????
?????????????? - ??????? commit ???????? ???-?????
- ?? ??????? commit ?? ???, ????? ?? ?? ?????????
??? ????? ???????? ?? ??????? - ?????????? ????????? ??? commit
27????????? ?? ???????
- ??? ????? ??????? ????????? ????????? ?? ????????
- ??????????? ???????? ???????? ??????????? ??
????????? - Windiff
- AraxisMerge
- BeyondCompare
- CompareIt
28????????? ?? ??????? ??????
29???????"Lock-Modify-Unlock"
30??????? Lock-Modify-Unlock (1)
???? ? ???? ???????? (update) ???? A. ???????????
? ??? ?????????? ?????? ?????? ??????? ?????.
?????????
Update
Update
????
????
31??????? Lock-Modify-Unlock (2)
???? ???????? (lock) ???? A ? ??????? ?? ??
???????.
?????????
Lock
????
????
????
32??????? Lock-Modify-Unlock (3)
???? ?? ?????? ???? ?? ??????? ?????, ?? ??
????. ???? ???? ?????? ???? ???????? ?????? ?
??????? ?????.
?????????
Wait
????
????
????
33??????? Lock-Modify-Unlock (4)
???? ??????????? ????????? ? ???????? ?????.
?????????
????
Commit
????
????
????
????
34??????? Lock-Modify-Unlock (5)
???? ???? ???? ?? ????? ?????????? ???? ? ?? ??
??????? ?? ????????.
?????????
????
Lock
????
????
????
????
35??????? Lock-Modify-Unlock (6)
???? ????????? ? ?????? ?????? ??????? (commit).
?????????
???? ????
Commit
???? ????
????
????
????
36??????? Lock-Modify-Unlock (7)
???? ??????? ????????? ?? ???????????.
?????????
???? ????
???? ????
Update
???? ????
????
????
37???????"Copy-Modify-Merge"
38??????? Copy-Modify-Merge (1)
???? ? ???? ???????? ?? ???????? ???? A
(check-out). ??????????? ? ??? ??????????.
?????????
Check-out
Check-out
????
????
39??????? Copy-Modify-Merge (2)
? ??????? ?????????? ????????? ????? ?? ?????????.
?????????
????
????
40??????? Copy-Modify-Merge (3)
???? ??????? (commit) ?????? ??????? ?
???????????.
?????????
????
Commit
????
????
41??????? Copy-Modify-Merge (4)
???? ?????? ?? ??????? (commit) ??????
???????. ???????? ?? ???????? ?? ????????.
?????????
????
Commit
????
????
42??????? Copy-Modify-Merge (5)
???? ???????? (update) ?????? ??????? ? ???? ??
???????????. ????????? ?? ?????? ? ????????? ??
?????. ???? ?? ?? ?????? ???????? ??? ???????
(merge conflict).
?????????
????
????
Update (with merge)
???? ????
43??????? Copy-Modify-Merge (6)
???? ?????? ????????? ? ???????????. ?????? ??
???? ?????? ? ????????? ?? ???? ? ????.
?????????
???? ????
????
Commit
???? ????
44??????? Copy-Modify-Merge (7)
???? ???????? ????????? ?? ???????????. ?????
?????? ?????? ? ????????? ?? ???? ? ????.
?????????
???? ????
Update
???? ????
???? ????
45??????? ? ???????????
46??????? (Tags)
- ?????????? ?? ?? ???? ??? ?? ?????????? ??
??????? ? ?????????? ??????
1.1
1.3
1.4
1.2
Main.c
Tag "Beta 2"
1.2
1.1
Main.h
1.1
1.2
1.3
Prog.c
47??????????? (Branching)
- ????????????? ?????????? ????? ??????? ?? ?????
???????? ? ??????? ????? ?? ??????????
(development line) - ????????????? ?? ????????? ??
- ???????? ?? ?????? ? ????? ?????? ?? ????????
- ?????????? ?? ?????????? ? ?????????? ?????? ??
???????? - ???????????? ?? ??????????, ????? ????????? ?????
?? ??????????
48??????????? ??????
1.2.2.2.2.1
1.2.2.2.2.2
Branch 1.2.2.2.2 -gt
1.2.2.1
1.2.2.2
Branch 1.2.2. -gt
1.1
1.2
1.3
1.4
Main Trunk
Main.h
1.2.4.1
1.2.4.2
1.2.4.3
Branch 1.2.4. -gt
49?????????? ?? ????????? ??? ?????????? ?? ???????