You are on page 1of 232

TortoiseSVN

Subversion Windows
1.6.6

Stefan Kng
Lbbe Onken
Simon Large

TortoiseSVN: Subversion Windows: 1.6.6


Stefan Kng, Lbbe Onken, Simon Large
: Vladimir Serdyuk (vserd@users.sourceforge.net), (stannic@gmail.com)
2009/08/31 01:13:53 (r17052)


.................................................................................................................. xi
1. ................................................................................... xi
2. ................................................................................................. xi
3. TortoiseSVN ! ....................................................................................... xii
4. ....................................................................................................... xii
5. ................................................................................................... xii
6. ................................................................................ xii
1. ..................................................................................................................... 1
1.1. TortoiseSVN? ...................................................................................... 1
1.2. TortoiseSVN ......................................................................................... 1
1.3. TortoiseSVN .................................................................................. 1
1.4. TortoiseSVN ....................................................................................... 3
1.4.1. .............................................................................. 3
1.4.2. ............................................................................................... 3
1.4.3. .................................................................................... 3
1.4.4. ........................................................................... 3
2. ........................................................................ 5
2.1. ....................................................................................................... 5
2.2. ........................................................................................ 6
2.2.1. ............................................ 6
2.2.2. -- .................................... 6
2.2.3. -- ................................................. 8
2.2.4. Subversion? ...................................................................... 10
2.3. Subversion ...................................................................................... 10
2.3.1. ...................................................................................... 10
2.3.2. URL ......................................................................... 12
2.3.3. ................................................................................................ 13
2.3.4. ............................................ 14
2.4. ................................................................................................. 15
3. ................................................................................................................ 16
3.1. ........................................................................................ 16
3.1.1. ..................... 16
3.1.2. TortoiseSVN ......................................... 16
3.1.3. ............................................................. 17
3.1.4. .................................................. 17
3.1.5. .......................................................... 18
3.2. ............................................................................... 19
3.3. C , ........................................... 20
3.4. .................................................................................... 20
3.5. ........................................................................................ 21
3.6. Svnserve ................................................................................ 22
3.6.1. .............................................................................................. 22
3.6.2. svnserve ................................................................................ 22
3.6.3. svnserve ..................................................................................... 22
3.6.4. svnserve ................................................. 24
3.6.5. SASL ............................................ 25
3.6.6. svn+ssh ...................................................... 27
3.6.7. svnserve ..................................................... 27
3.7. Apache .................................................................................. 27
3.7.1. .............................................................................................. 27
3.7.2. Apache .................................................................................. 28
3.7.3. Subversion ............................................................................. 28
3.7.4. ............................................................................................. 29
3.7.5. ........................................................ 31
3.7.6. .................................................................... 31

iii

TortoiseSVN
3.7.7. Windows ......................................... 32
3.7.8. .......................................... 34
3.7.9. SSL ............................................................ 35
3.7.10. SSL-....... 37
4. ................................................................ 39
4.1. .......................................................................................... 39
4.1.1. ............................................................................... 39
4.1.2. ................................................................................ 40
4.1.3. ......................................................................... 41
4.1.4. ........................................................... 42
4.1.5. .................................................................................... 42
4.1.6. .............................................................................. 43
4.2. ............................................................................ 43
4.2.1. ................................................................................................ 44
4.2.2. ................................................................................... 45
4.2.3. ...................................................................................... 45
4.3. ................................................................................ 46
4.3.1. ............................................................................... 46
4.4. ........................................................... 48
4.4.1. .................................................................................. 48
4.4.2. ................................................................................. 51
4.4.3. ........................................ 51
4.4.4. ......................................................... 51
4.4.5. ..................................................................... 53
4.5. ,
............................................................................................................... 54
4.6. ................................................................................... 56
4.6.1. ................................................................................ 56
4.6.2. .............................................................................. 57
4.7. ...................................................................... 60
4.7.1. ............................................................................... 60
4.7.2. TortoiseSVN Windows ........................................... 62
4.7.3. ............................................................... 63
4.7.4. ............................................................................... 65
4.8. ........................................................................................... 65
4.9. .................................................................... 67
4.9.1. ............................................................. 68
4.9.2. .................................................................. 68
4.9.3. ................................................. 69
4.9.4. ................................ 73
4.9.5. .............................................................. 74
4.9.6. .................................................. 74
4.9.7. .................................................. 75
4.9.8. ............................................................. 76
4.9.9. ................................................................... 77
4.9.10. ............................................................................. 80
4.9.11. ................................................................................. 80
4.10. ........................................................................................ 81
4.10.1. ............................................................................... 81
4.10.2. ............... 82
4.10.3. ................................................................................. 82
4.10.4. TortoiseIDiff ........................................ 84
4.10.5. / ............................... 85
4.11. ................................................................... 86
4.12. // ............................... 86
4.13. ....................................................................... 88
4.13.1. .................................. 89
4.14. , ........................................................ 89

iv

TortoiseSVN
4.14.1. ..................................................................... 90
4.14.2. ............................................................... 91
4.14.3. ......................................... 92
4.14.4. -
..................................................................................................................... 92
4.14.5. .................................................... 93
4.14.6. ........................................................ 93
4.15. ......................................................................................... 93
4.16. ......................................................................................................... 95
4.17. ......................................................................................... 95
4.17.1. Subversion ............................................................................. 96
4.17.2. TortoiseSVN .......................................................... 100
4.18. ..................................................................................... 102
4.18.1. .................................................................................. 102
4.18.2. ................................................................................. 104
4.19. .................................................................................... 105
4.19.1. ......................................................... 105
4.19.2. ? ?.. ........................................................... 107
4.20. ...................................................................................................... 108
4.20.1. ............................................................ 109
4.20.2. ............................................................ 111
4.20.3. ....................................................... 112
4.20.4. ............................................................................ 113
4.20.5. ............................................................ 114
4.20.6. ....................................................................... 115
4.20.7. , ................................ 116
4.20.8. ..................................................... 116
4.20.9. ................... 117
4.21. ............................................................................................... 117
4.21.1. Subversion .................................................. 118
4.21.2. ....................................................................... 118
4.21.3. ............................................................................ 119
4.21.4. .......................................................... 120
4.21.5. , -- ...................... 120
4.21.6. ............................................ 121
4.22. ................................................................... 121
4.22.1. .................................................................... 121
4.22.2. ................................................................ 122
4.23. ? ........................................................................... 123
4.23.1. ........................................................................ 123
4.23.2. ........................................................................... 125
4.24. ............................................................................... 126
4.25. ............................................................................................. 128
4.25.1. ........................................................................... 129
4.25.2. ................................................................................. 130
4.25.3. .......................................................................... 131
4.25.4. ............................................................................... 132
4.25.5. .............................................................................. 132
4.26. Subversion ................................................................. 133
4.26.1. - .......................... 134
4.27. .................................................................... 135
4.28. / ................................... 136
4.28.1. ............................ 136
4.28.2. .................... 139
4.29. , ........................................................................................................... 140
4.30. TortoiseSVN ................................................................................. 141
4.30.1. ............................................................................... 141

TortoiseSVN
4.30.2. ...................................................................
4.30.3. ............................................................
4.30.4. ..................................................................................
4.30.5. .............................................................
4.30.6. .........................................................
4.30.7. ........................................................................
4.30.8. , .............................
4.30.9. TortoiseBlame .....................................................................
4.30.10. .........................................................................
4.30.11. Subversion ..................................................................
4.31. ............................................................................................
5. SubWCRev ..............................................................................................
5.1. SubWCRev ..........................................................................
5.2. ............................................................................
5.3. .............................................................................
5.4. COM- .............................................................................................
6. IBugtraqProvider interface ...........................................................................................
6.1. The IBugtraqProvider interface ..........................................................................
6.2. The IBugtraqProvider2 interface .........................................................................
A. (, FAQ) .....................................................................
B. ... ............................................................................................................
B.1. / ...................................
B.2. ........................................
B.2.1. .................................................................
B.2.2. ................................................................................
B.3. ......................................................
B.4. () .......................................
B.4.1. ..................................................
B.4.2. ...................................................................
B.4.3. svndumpfilter ................................................................
B.5. Compare two revisions of a file or folder ............................................................
B.6. ...........................................................................
B.6.1. svn:externals ........................................................................
B.6.2. ..................................................
B.6.3. ........................................
B.7. ...........................................................................
B.8. , ...............................................
B.9. ......................................................................
B.10. ...............................................................................
C. ..................................................................
C.1. TortoiseSVN ..................................
C.2. ...........................................................
C.3. SVN_ASP_DOT_NET_HACK ...........................
C.4. ..........................................................
D. TortoiseSVN ......................................................................................
D.1. TortoiseSVN ....................................................................................
D.2. TortoiseIDiff ....................................................................................
E. .........................................
E.1. .....................................................................
E.2. TortoiseSVN .....................................................................................
E.2.1. ..............................................................................................
E.2.2. ............................................................................................
E.2.3. ...........................................................................
E.2.4. .......................................................................................
E.2.5. .............................................................................................
E.2.6. ..............................................................................................
E.2.7. ...........................................................
E.2.8. ......................................................................................

vi

150
152
155
157
161
162
165
169
170
171
172
173
173
174
175
175
179
179
180
183
184
184
184
184
185
185
185
185
186
186
186
187
187
187
187
188
188
188
189
190
190
190
191
191
194
194
197
199
199
199
199
199
200
200
200
201
201
201

TortoiseSVN
E.2.9. ......................................................................
E.2.10. ...................................................................
E.2.11. ............................................................................................
E.2.12. ..................................................................................
E.2.13. ............................................................................................
E.2.14. ..............................................................................
E.2.15. ............................................................................................
E.2.16. ...................................................................................
E.2.17. ............................................................................
E.2.18. / ............................................................................
E.2.19. ..........................................................................................
E.2.20. ............................................................................................
E.2.21. ............................................................................................
E.2.22. .................................................................................
E.2.23. ...................................................................
E.2.24. ..........................................................................................
E.2.25. .............................................................................................
E.2.26. (Blame) .............................................................................
E.2.27. .......................................................
E.2.28. ...............................................................................
E.2.29. ...........................................................................
F. ...........................................................................................
F.1. ........................................................................................
G. Svnserve SSH .........................................................
G.1. Linux- ................................................................................
G.2. Windows- ...........................................................................
G.3. SSH TortoiseSVN .............................
G.4. OpenSSH ....................................................................
G.4.1. ssh-keygen ..............................................
G.4.2. PuTTYgen ..............................................
G.5. PuTTY .........................................................................
G.6. SSH TortoiseSVN ..........................................................
G.7. SSH .........................................................................
....................................................................................................................
..................................................................................................

vii

201
202
202
202
202
202
202
202
203
203
203
203
203
204
204
204
204
204
204
204
205
206
206
208
208
209
209
209
209
210
210
210
211
213
217


2.1. / ............................................................................... 5
2.2. ...................................................................................... 6
2.3. -- ...................................................... 7
2.4. -- .................................................................... 8
2.5. ...--. ........................................................ 9
2.6. ................................................................................... 11
2.7. ............................................................................................................. 13
3.1. TortoiseSVN .......................................................... 16
4.1. ........................................................................... 39
4.2. , ......................... 40
4.3. "" ...................................... 41
4.4.
....................................................................................................................... 42
4.5. ............................................................................................ 43
4.6. ....................................................................................................... 44
4.7. ................................................................................................... 46
4.8. ..................................................................................................... 49
4.9. ............................................................... 52
4.10. , .................................. 53
4.11. , ........................................ 54
4.12. .......................................................................... 61
4.13. .............................................................................. 63
4.14. . ................................................................. 66
4.15. ........................................................................... 68
4.16. ........................ 69
4.17. ................................. 71
4.18. ....................................................... 72
4.19. , ......................... 75
4.20. -- ............................................................................ 77
4.21. -- ............................................................... 78
4.22. -- ..................................................................................... 79
4.23. ..................................................................... 80
4.24. ...................................................................................... 83
4.25. ............................................................. 84
4.26. ..................................... 86
4.27.
....................................................................................................................... 87
4.28. ..................................... 88
4.29. ........................................ 90
4.30. ' ' ...................................................................................... 94
4.31. , Subversion .................................................... 96
4.32. Subversion ................................................................................... 97
4.33. ................................................................................................ 98
4.34. / ....................................................................... 106
4.35. ........................................................................................... 108
4.36. - ............................................................ 110
4.37. - ......................................................... 112
4.38. - ........................................................................ 113
4.39. ' ' .................................................. 116
4.40. ' ' ...................................................................... 117
4.41. ............................................................................................... 119
4.42. ................................................................. 120
4.43. ..................................................................................... 122
4.44. / ............................................................................ 123
4.45. TortoiseBlame ....................................................................................................... 124

viii

TortoiseSVN
4.46. .......................................................................................
4.47. .......................................................................................................
4.48. --URL ........................................................................................
4.49. .......................................................................................
4.50. .........................................
4.51. '' .....................................................................
4.52. .....................................................
4.53. ' 1' ................................................................
4.54. ' 2' ................................................................
4.55. '' ......................................................................
4.56. ' ' ...........................................................
4.57. '' .................................................
4.58. ' ' ...................................................
4.59. ' ' ..........................................................
4.60. '' ........................................................................
4.61. ' ' ...................................................
4.62. / ......................
4.63. ' ' .................................................
4.64. ' ' ...............................................
4.65. ' ', ...........................
4.66. ' ' .....................................................
4.67. ' ', ........................
4.68. ...............
4.69. TortoiseBlame .............................................................
C.1. ................................................................................................

ix

126
128
133
135
140
142
144
145
147
149
150
151
152
155
156
157
160
161
162
164
165
166
168
169
190


2.1. URL ................................................................................. 12
3.1. Apache httpd.conf ............................................................................ 30
5.1. ...................................................... 173
5.2. ...................................................... 174
5.3. COM/ .......................................................... 176
C.1. ......................................................... 191
D.1. .................................................................. 195
D.2. ............................................................................... 198

?
, , - ?
- ?
,
? , ?
, , ?
, TortoiseSVN
! , , TortoiseSVN .
, .

1.
, , , Subversion
, ,
. TortoiseSVN - Windows, ,
Windows , .

2.
TortoiseSVN,
, .
1, , TortoiseSVN, ,
.
2,
Subversion, TortoiseSVN.
Subversion , ,
Subversion.
3, , ,
Subversion TortoiseSVN .
, ,
. , ,
.
4, ,
TortoiseSVN .
, , ,
.., .
5, SubWCRev - , TortoiseSVN,
.
.
B, ... ,
- .

xi


D, TortoiseSVN , TortoiseSVN
. , ,
, .
E, ,
TortoiseSVN Subversion
svn.exe.

3. TortoiseSVN !
TortoiseSVN . ,
. TortoiseSVN GNU General Public License
(GPL).
TortoiseSVN - (Open Source). ,
.
http://tortoisesvn.tigris.org/svn/tortoisesvn/. .
guest, .
( ) /trunk/,
/tags/.

4.
: TortoiseSVN, Subversion, ,
. ,
.

5.
(Tim Kemp)
TortoiseSVN
(Stefan Kng)
, TortoiseSVN
(Lbbe Onken)
, , ,

(Simon Large)

Subversion (The Subversion Book)
Subversion 2,
Tigris Style (The Tigris Style project)
,

, , , -


6.
, TortoiseSVN
. , .

xii

. TortoiseSVN :
TortoiseSVN.
- TortoiseSVN
: ...
: .
. Alt+A:
Alt , , A.
: , ,
.
.

, .

, , .

,
.

xiii

1.
- .
,
,
. , ,
! - ,
.

1.1. TortoiseSVN?
TortoiseSVN - ,
Subversion. , TortoiseSVN .
, ,
, ,
. , ,
, . Subversion
.

(software configuration management - SCM).
, ,
, ,
. Subversion
, ,
, .

1.2. TortoiseSVN
2002 (Tim Kemp) , Subversion -
, .
Subversion Windows
CVS, TortoiseCVS.
TortoiseCVS TortoiseSVN. ,
tortoisesvn.org .
(Stefan Kng) ,
Subversion TortoiseSVN. TortoiseSVN
, .
,
.
Subversion
, TortoiseSVN Subversion.
( ).
(Lbbe Onken)
TortoiseSVN. - .

1.3. TortoiseSVN
TortoiseSVN Subversion? :

TortoiseSVN Windows (.. ).
, ,
, !


. TortoiseSVN
, ,
Windows-.
, TortoiseSVN Windows,
, , , ,
.


. ,
.
Subversion
Subversion . TortoiseSVN
.
TortoiseSVN Subversion,
Subversion:

CVS , Subversion
,
. . ,
,
.

, .
, .

.
/ .
, .

Subversion ,
. Subversion
- Apache,
HTTP WebDAV/DeltaV. Subversion
,
: (),
(), , .
, Subversion,
, ssh.

Subversion ,
( ), (
) . ,
.


. Subversion ,
, . ,
,
.

Subversion .
C API. Subversion
,
.

1.4. TortoiseSVN
1.4.1.
TortoiseSVN Windows 2000 SP2, Windows XP .
TortoiseSVN 1.2.0, Windows 98, Windows ME Windows NT4 ,
, .
TortoiseSVN, ,
A, (, FAQ).

1.4.2.
TortoiseSVN .
, .

TortoiseSVN.

1.4.3.
TortoiseSVN ,
, .
[http://tortoisesvn.net/translation_status]. ,
,
;-)
.exe .
. .

1.4.4.
TortoiseSVN ,
. , .
, OpenOffice [http://
openoffice.org] Mozilla [http://mozilla.org].
US UK english (
). , -
TortoiseSVN.
TortoiseSVN.
.
. OpenOffice Mozilla,
, .
http://wiki.services.openoffice.org/wiki/
Dictionaries


, , , ,
, . :
en_US.aff
en_US.dic
bin TortoiseSVN. C:
\Program Files\TortoiseSVN\bin. bin,
C:\Program Files\TortoiseSVN\Languages.
, .
TortoiseSVN, .
, TortoiseSVN
, .
1. tsvn:projectlanguage, .
4.17, .
2. , , ,
Windows.
3. Windows , ,
, de_CH (-) de_DE ().
4. , - ,
.

2.

- Subversion.
Subversion http://svnbook.red-bean.com/.
Subversion.
, .
, , Subversion,
Subversion.
, ,
, , Subversion ,
, .

2.1.
Subversion - .
, .
- .
, .
, ; ,
.

2.1. /
? . , -,
. Subversion - ,
, - : ,
, ,
.
,
.
. , ,
?
?


: ,
.

2.2.
:
,
?
.

2.2.1.
: , , .
.
, , , ( )
. ,
(.. ),
, ,
. - , ,
, - , , . ,
!

2.2.
2.2.2. --

--.
. ,


, .
: , .
, . , , . ,
, , , ,
.

2.3. --
-- ,
:
. ,
, . , ,
, . .
.
.
. ,
, ?
.
( ).
.
. ,
, , .


,
. .
- .
, , ,

.

2.2.3. --
Subversion, CVS - .
-
. ,
. , ,
. , , ,
.
: , , ,
. , A
. . ,
, , .
, - , .
(merge)
. , ,
, ,
.

2.4. --

2.5. ...--.

, - ?
? , , .
,
:
, . ,
,
.
(, !),
.
-- ,
. , .
,
; . ,
, , .
, : .
, ,
. ,
, , .
- ;
, .


, , - : , .
, ,
, . ,
, , .

2.2.4. Subversion?
Subversion --,
, . , 1.2, Subversion
, ,
, Subversion
.

2.3. Subversion
2.3.1.
, , Subversion
.
Subversion - ,
. , ,
, . -
: Subversion ,
, , , ,
.
, ,
, Subversion
, ,
( ).
, Subversion
( ).
,
Subversion, . ,
.svn,
. Subversion ,
, - ,
.
Subversion ( ) ,
- . ,
- .
, , .

10

2.6.
, : paint calc.
, . (
(check out) - -,
, : ).
, button.c. .svn
, Subversion , .
, Subversion ,
. , (
) .
, Subversion
(commit).
button.c ;
/calc, .
, , /calc
, . button.c,
, Subversion .
, Subversion
, (update). ,
, ,
.

11


, , , Subversion
.svn, , ,
.

2.3.2. URL
Subversion -
. ,
, URL. URL :

file://

http://

WebDAV Subversion,
Apache.

https://

, http://, SSL

svn://

TCP/IP
svnserve.

svn+ssh://

, TCP/IP
svnserve.

2.1. URL
, URL Subversion ,
URL. file://
, UNC
. URL file://-///.
- ,
localhost. , (/),
file://///.
, file:// Windows
,
, , .
URL (X ,
):
file:///X:///
...
file:///X|///
...
, URL () , ( URL)
Windows .
FSFS- ,
BDB- .

Berkeley DB,
.
. ,
. Berkeley DB
, -

12


, , ,
.

2.3.3.
svn commit
. ,
, , ,
.
:
, . Subversion
, , ,
.

, . ,
, .
, , .
- .
, 0, .
, -
.

2.7.

, Subversion
, .
- .
, , N
N- . Subversion " 5

13


foo.c", "foo.c, 5".
, N M , , !
, -
; . ,
, 4:
calc/Makefile:4
integer.c:4
button.c:4
4 . ,
button.c, .
5,
:
calc/Makefile:4
integer.c:4
button.c:5
, integer.c, 6.
svn update ,
:
calc/Makefile:6
integer.c:6
button.c:6
, integer.c, ,
button.c. Makefile
4, 5 6 , , Subversion Makefile
6, , . ,
,
.

2.3.4.
.svn/ Subversion
:
( ),
, .
, , Subversion ,
:

,
. (commit) (update)
.

,
.
, (commit)
, (update) .

14



, . ,
.
(commit) , (update)
.

, .
(commit) (out-of-date).
; (update)
. Subversion
, .

2.4.
Subversion:
,
.
, Subversion
, ,
"--".
, Subversion
.

15

3.
,
.
Subversion , TortoiseSVN.
Subversion, .

3.1.
FSFS, Berkeley Database
(BDB). FSFS ,
Windows 98. BDB
- , , ,
FSFS ,
. Choosing a Data Store ( ) [http://svnbook.redbean.com/en/1.5/svn.reposadmin.planning.html#svn.reposadmin.basics.backends] Subversion
.

3.1.1.
1. SVN, (, D:\SVN\),
.
2. MyNewRepository D:\SVN\.
3. ( DOS), D:\SVN\
svnadmin create --fs-type bdb MyNewRepository

svnadmin create --fs-type fsfs MyNewRepository


, D:\SVN\MyNewRepository.

3.1.2. TortoiseSVN

3.1. TortoiseSVN

16


1. Windows
2. , , SVNRepository
3. , TortoiseSVN
....
.
!!!. ,
.

TortoiseSVN ,
BDB,
. FSFS ,
TortoiseSVN - -
BDB.
TortoiseSVN BDB
file:// - , TortoiseSVN, ,

svn://, http:// https://. , ,
,
file://, FSFS.
,
file://, .
,
.

3.1.3.
. ,
Subversion file:///C:/SVN/.
, .
, ,
, UNC. UNC file://
///. , 2
.
SVN 1.2, UNC file:///\//
/. , .

Berkeley DB,
.
. ,
. Berkeley DB
, -
, , ,
.

3.1.4.

17


FSFS
file://, ,
. ,
.
,
,
- .
, ,
Subversion, , . ,
, -
.
, . ,
"" Windows, SAMBA
.
file://
, .
, ,
, . 3.5,
.

3.1.5.
, , ,
. ,
.
.
trunk, , branches,
, tags .
, :
/trunk
/branches
/tags
, :
/trunk/paint
/trunk/calc
/branches/paint
/branches/calc
/tags/paint
/tags/calc
... :
/paint/trunk
/paint/branches
/paint/tags
/calc/trunk
/calc/branches
/calc/tags
, ,
. ,

18


, ,
.
, .
, /trunk /tags /branches - ,
, ,
.
.
, ,
. ,
. Subversion TortoiseSVN
, ,
, .
, .
- , . ,
- .
. - , TortoiseSVN
, .
-
. , , .
, ,
. :
/trunk /tags /branches (/ / /),
( ).
,
, :
1.
2. -
!
3.
TortoiseSVN ...
.
: , , ,
. , :
C:\Temp\New\trunk
C:\Temp\New\branches
C:\Temp\New\tags
C:\Temp\New ,
:
/trunk
/branches
/tags

3.2.
, ,
, . , ,
, .

19


( ) -
. , ,
. , .
BDB , , , ,
, . ( -, WebSVN, ..),
.
-
svnadmin hotcopy // /// --clean-logs
.
. --clean-logs ,
, BDB, .
svnadmin
Subversion. Windows,
Windows. ,
.zip-, , .
http://Subversion.tigris.org/
servlets/ProjectDocumentList?folderID=91.

3.3. C ,
- , - ,
.
, , , ,
, .
, , ,
.
, , Hook Scripts ( ) [http://svnbook.red-bean.com/
en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks] Subversion.
, . TortoiseSVN
,
. 4.30.8,
, .
hooks .
Unix/Linux, , Windows-.
, .
, pre-revprop-change
(--_).
rem Only allow log messages to be changed.
rem .
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1
, , stdout, . ,
' ' , stderr.
>&2

3.4.

20


Subversion ,
-. -
TortoiseSVN.
TortoiseSVN tsvn:.
TortoiseSVN ,
URL- .
HTML-
:
<a href="tsvn:http://project.domain.org/svn/trunk">
</a>
, , .
TortoiseSVN [http://tortoisesvn.tigris.org/images/TortoiseCheckout.png]
.
<a href="tsvn:http://project.domain.org/svn/trunk">
<img src=TortoiseCheckout.png></a>
, ,
<a href="tsvn:http://project.domain.org/svn/trunk?100">
</a>

3.5.
TortoiseSVN ( Subversion)
, .
, file://,
http:// svn://.
, https://
svn+ssh://, svn:// SASL.
(), Google
Code [http://code.google.com/hosting/], - ,
. 4, .
, Subversion
TortoiseSVN , , , .
, 3, .
4,
, , .
,
. , , , 3.1.4,
. , ,
, , , .

Windows. , Linux-,
.
Subversion, , ,
Subversion Server Configuration ( ) [http://
svnbook.red-bean.com/en/1.5/svn.serverconfig.html].

21

3.6. Svnserve
3.6.1.
Subversion Svnserve - ,
TCP/IP .
, , Apache.
svnserve ,
Apache, . ,
SASL, .

3.6.2. svnserve
1. Subversion http://subversion.tigris.org/servlets/
ProjectDocumentList?folderID=91.
CollabNet http://www.collab.net/downloads/subversion.
svnserve Windows, ,
, SASL.
2. - Subversion svnserve, ,
, .
3. Subversion. ,
( ), 4.
4. Windows , Subversion (
C:\Program Files\Subversion) bin svnserve.exe,
intl3_svn.dll, libapr.dll, libapriconv.dll, libapriutil.dll, libdb*.dll,
libeay32.dll ssleay32.dll ( bin)
, c:\svnserve

3.6.3. svnserve
, svnserve , . Windows :
svnserve.exe --daemon
svnserve 3690. --daemon
svnserve (daemon), , .
, ,
Apache 3.7.4, .
, svnserve, TortoiseSVN
.
, c:\repos\TestRepo,
localhost, :
svn://localhost/repos/TestRepo
.
URL svnserve,
--root
:

22

svnserve.exe --daemon --root :\\\\


, svnserve :
svnserve.exe --daemon --root c:\repos
URL TortoiseSVN :
svn://localhost/TestRepo
, --root , svnserve
.
Svnserve - -
, URL-,
.

Berkeley DB,
.
. ,
. Berkeley DB
, -
, , ,
.

3.6.3.1. svnserve
, svnserve - : ,
, ,
. - svnserve
Windows. Subversion 1.4, svnserve
Windows.
, svnserve Windows,
, , Windows (
):
sc create svnserve binpath= "c:\svnserve\svnserve.exe --service
--root c:\repos" displayname= "Subversion" depend= tcpip
start= auto
- ,
, :
sc create svnserve binpath= "
\"C:\Program Files\Subversion\bin\svnserve.exe\"
--service --root c:\repos" displayname= "Subversion"
depend= tcpip start= auto
,
' Windows'.

23


sc description svnserve " Subversion (svnserve)"
, sc.
= =,
.

Microsoft ,
, . The Services and
Service Accounts Security Planning Guide [http://www.microsoft.com/technet/security/
topics/serversecurity/serviceaccount/default.mspx].
, :
obj= "NT AUTHORITY\LocalService"
,
Subversion, .
, .
"" ( - "LOCAL
SERVICE").

( ;
).
url="http://svn.collab.net/repos/svn/trunk/notes/
windows-service.txt">Windows Service Support for Svnserve ( Windows
Svnserve)
svnserve -
SvnService, ,
( !).

svnservice -remove
, .

3.6.4. svnserve
svnserve .
, URL svn:// ,
TortoiseSVN ,
.
, conf/
svnserve.conf . svnserve,
.
:
[general]
anon-access = write
, , , svn:author
. , .
!

24


:
[general]
anon-access = none
auth-access = write
password-db = userfile
userfile - , , svnserve.conf.
- ( ,
)
, conf. ,
///unix. \ .
userfile :
[users]
username = password
...
() ,
- , userfile.

, ,
,
TortoiseSVN
.
Subversion, Create a 'users' file and realm (
'users' ) [http://svnbook.red-bean.com/en/1.5/
svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.auth.users] Client Credentials
Caching ( ) [http://svnbook.red-bean.com/
en/1.5/svn.serverconfig.netmodel.html#svn.serverconfig.netmodel.credcache]

3.6.5. SASL
3.6.5.1. SASL?
(Cyrus Simple Authentication and Security
Layer, SASL) - , -.
,
, Subversion 1.5, svnserve TortoiseSVN ,
.
Subversion
Using svnserve with SASL ( svnserve SASL) [http://svnbook.red-bean.com/en/1.5/
svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sasl].
Windows-,
, .

3.6.5.2. SASL
SASL , . -,
[sasl] svnserve.conf :
use-sasl = true

25


-, svn.conf - ,
Subversion.
-, , , SASL,
. [HKEY_LOCAL_MACHINE
\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library]
: SearchPath, ,
sasl*.dll ( Subversion),
ConfFile, , svn.conf.
CollabNet, .
svn.conf, :
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: DIGEST-MD5
sasldb_path: C:\TortoiseSVN\sasldb
,
sasldb. , -
. , svnserve
.
svnserve , ,
.
, , , -
. saslpasswd2.
CollabNet, .
:
saslpasswd2 -c -f C:\TortoiseSVN\sasldb -u _
-f , , ,
svnserve.conf , _ - ,
. : .
, ,
sasldblistusers2.

3.6.5.3. SASL

svnserve.conf :
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256
min-encryption max-encryption ,
. 0.
(..
), 1.
( ) , 0, - . ,
, 1. ,
128 , 256 .

26

3.6.6. svn+ssh
svnserve -
(SSH) . , SASL,
.
, svnserve , ,
svnserve , . ,
, .
G, Svnserve
SSH. SSH (FAQ)
SSH.
svnserve Subversion [http://svnbook.redbean.com].

3.6.7. svnserve
Subversion 1.3, svnserve
mod_authz_svn, Apache.
conf/svnserve.conf ,
.
[general]
authz-db = authz
, authz - , .
,
. 3.7.6, .

3.7. Apache
3.7.1.
Subversion - Apache.
, ,
:
WebDAV
Subversion Apache WebDAV,
. , ,
- Windows
.
-
- URL
Subversion.
.

, Apache,
SSPI LDAP.

Apache ,
, SSL.

27

3.7.2. Apache
, Apache - Windows
2000, Windows XP+SP1, Windows 2003, Vista Server 2008.

: Windows XP 1

!
1. - Apache http://httpd.apache.org/
download.cgi. , 2.2.x - 1.3.xx !
Apache msi- , other files,
binaries/win32. , msi- apache-2.2.xwin32-x86-openssl-0.9.x.msi (, OpenSSL).
2. Apache2, ,
. , URL ( DNS , IP-). Apache ,
80 , . : IIS
, 80 , .
, ( C:\Program Files\),
\Apache Group\Apache2\conf httpd.conf. ,
Listen 80 , Listen 81.
- .
3. - Apache, -
http://localhost/ - - .

Apache , ,
.
, ,
Apache.
, , Apache,
( |
| ) .
.
Apache ,
( -
SYSTEM).
Apache ,
(Access denied), Apache
500.

3.7.3. Subversion
1. Subversion Win32 Apache.
, Apache,
. Apache
2.2.x, http://subversion.tigris.org/servlets/ProjectDocumentList?
folderID=8100.

28


2. Subversion . Subversion
Apache, . -
.
3.
Windows, , Subversion (
c:\program files\Subversion), Apache ( c:\program
files\apache
group\apache2\modules) /httpd/mod_dav_svn.so
mod_authz_svn.so.
4. /bin/libdb*.dll /bin/intl3_svn.dll ,
Subversion, bin Apache.
5. Apache ( C:\Program Files\Apache Group
\Apache2\conf\httpd.conf) , ,
:
( '#') :
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
LoadModule:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

3.7.4.
, Apache Subversion, Apache ,
Subversion, TortoiseSVN. , Apache , URL
Subversion,
Apache ( c:\program files\apache group\apache2\conf\httpd.conf)
(, ):
1. :
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:\SVN
# SVNIndexXSLT "/svnindex.xsl"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
# AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
Apache , Subversion
D:\SVN. URL:
http://MyServer/svn/ . /,
passwd.
2. passwd, ( DOS),
apache2 ( c:\program files\apache group\apache2)
:

29

bin\htpasswd -c passwd <username>


passwd, .

bin\htpasswd passwd <username>
3. Apache.
4. - http://MyServer/svn/MyNewRepository (
MyNewRepository - Subversion).
, ,
.

, :

<Location /svn>

, Subversion URL
http://MyServer/svn/

DAV svn

Apache,
URL, - Subversion.

SVNListParentPath on

Subversion 1.3 ,

SVNParentPath.

SVNParentPath D:\SVN

Subversion D:\SVN

SVNIndexXSLT
svnindex.xsl"

"/ , -
.

AuthType Basic
AuthName
repositories"

_/

..

"Subversion
, ,

AuthUserFile passwd

AuthzSVNAccessFile


Subversion

Require valid-user

, ,
_/,
URL

3.1. Apache httpd.conf

. , Apache.
, ,
- ,
Require valid-user

30

<LimitExcept GET PROPFIND OPTIONS REPORT>


Require valid-user
</LimitExcept>
passwd
. ,
,
#AuthzSVNAccessFile svnaccessfile
Subversion. Apache ,
/svn,
AuthzSVNAccessFile ,
Subversion.
, : .
,
SVNParentPath. , mod_authz_svn,
3.7.6,
, -
'',
#SVNIndexXSLT "/svnindex.xsl"
svnindex.xsl, svnindex.css menucheckout.ico
Apache ( C:/Program Files/Apache Group/Apache2/
htdocs). DocumentRoot Apache.

http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/other/svnindex. ( 3, TortoiseSVN
! , TortoiseSVN).
xsl- TortoiseSVN :
- .
, TortoiseSVN URL.

3.7.5.
SVNParentPath,
Apache Subversion.
, , !
SMB ( Windows).
, TortoiseSVN TortoiseSVN
... ...
Subversion 1.3 ,
SVNListParentPath on , Apache
- , .

3.7.6.
mod_authz_svn ,
.
Apache, Subversion 1.3 svnserve.

31


:
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
#
# , admin ,
# Dan German - .
[/]
* = r
@admin = rw
dangerman =
# Allow developers complete access to their project repos
# ,
#
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# Give the doc people write access to all the docs folders
# , ,
# (docs)
[/trunk/doc]
@docs = rw
# Give trainees write access in the training repository only
#
#
[TrainingRepos:/]
@training = rw
, ,
.
, ,
.
- .
- , :
.

3.7.7. Windows
, _/
passwd . ( ) ,
,
.
, - ,
Windows: mod_auth_sspi!

32

SSPI Syneapps ,
. , : ,
. SourceForge [http://
sourceforge.net/projects/mod-auth-sspi/].
,
mod_auth_sspi.so Apache.

Apache,

Apache:
LoadModule sspi_auth_module modules/mod_auth_sspi.so
LoadModule. ,
LoadModule auth_module modules/mod_auth.so
Subversion ,

AuthType Basic

AuthType SSPI

SSPIAuth On
SSPIAuthoritative On
SSPIDomain <domaincontroller>
SSPIOmitDomain on
SSPIUsernameCase lower
SSPIPerRequestAuth on
SSPIOfferBasic On
<Location /svn>. ,
<domaincontroller>.
, SSPI,
AuthUserFile . Apache
Windows.
Subversion (svnaccessfile) ,
\_.

SSPI , SSL (.. https).


http- ,
.
SSL , 3.7.9,
SSL.
33

AuthzSVNAccessFile Subversion
(JUser juser).
Microsoft Windows .

C (, JUser).
SSPI,
Windows Subversion
, . Internet Explorer
Apache , ,
.
,
AuthzSVNAccessFile - ,
- , Internet Explorer Apache.
,
TortoiseSVN .
Apache -
,
, AuthzSVNAccessFile Subversion. ,

svnaccessfile (, \ //
) , .

3.7.8.
Subversion.
- (non-authoritative),
Apache _/.
- : - -
Windows, - - passwd SVN
, Windows.
: Windows, passwd,
<Location> Apache:
AuthBasicAuthoritative Off
SSPIAuthoritative Off
Apache
Windows passwd:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:\SVN
AuthName "Subversion repositories"
AuthzSVNAccessFile svnaccessfile.txt

34


# NT Domain Logins.
AuthType SSPI
SSPIAuth On
SSPIAuthoritative Off
SSPIDomain <domaincontroller>
SSPIOfferBasic On
# Htpasswd Logins.
AuthType Basic
AuthBasicAuthoritative Off
AuthUserFile passwd
Require valid-user
</Location>

3.7.9. SSL
Apache 2.2.x OpenSSL, .
.
1. Apache :
#LoadModule ssl_module modules/mod_ssl.so

#Include conf/extra/httpd-ssl.conf

SSLMutex "file:C:/Program Files/Apache Software Foundation/\
Apache2.2/logs/ssl_mutex"

SSLMutex default
2. SSL. (
DOS) Apache (, C:\program files\apache group
\apache2) :
bin\openssl req -config conf\openssl.cnf -new -out my-server.csr
. , ,
, , . , .
URL . ,
.
privkey.pem , ,
:
bin\openssl genrsa -out conf\privkey.pem 2048

35

bin\openssl rsa -in conf\privkey.pem -out conf\server.key


( )
bin\openssl req -new -key conf\server.key -out conf\server.csr \
-config conf\openssl.cnf
( )
bin\openssl x509 -in conf\server.csr -out conf\server.crt
-req -signkey conf\server.key -days 4000
4000 . , , ( ):
bin\openssl x509 -in conf\server.cert -out conf\server.der.crt
conf Apache (server.der.crt,
server.csr, server.key, .rnd, privkey.pem, server.cert).
3. Apache.
4. - https://servername/svn/project ...

SSL Internet Explorer


SSL
Windows, ,
Internet Explorer . - Internet Explorer
. ,
TortoiseSVN Subversion -
.
IE,
:
<Location
/>
Apache, SSPIBasicPreferred
On. IE
, Subversion
.
( SSL).
, IE - ,
SSL.
"" SSL SSL Apache
:
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
(?) , . http://www.modssl.org/
docs/2.8/ssl_faq.html#ToC49
NTLM, keepalive.

36


SetEnvIf , IE
Windows SSL Apache Win32
mod_auth_sspi.

SSL
, SSL , ,
SSL (http),
https.
<Location> Subversion: SSLRequireSSL.
<Location> :
<Location /svn>
DAV svn
SVNParentPath D:\SVN
SSLRequireSSL
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
# AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>

3.7.10. SSL
TortoiseSVN (Nigel Green). !
,
2 SSL-: (
), , ,
Subversion.
SSLVerifyClient Optional per-server Apache
(.. VirtualHost Directory) Apache
SSL. - mod_ssl
, ,
SSL-.
,
Subversion
SSLRequire %{SSL_CLIENT_VERIFY} eq "SUCCESS"
,
.
, Apache :
SSLVerifyClient Optional
###
### ( )
<VirtualHost 127.0.0.1:443>

37


<Directory "____">
</Directory>
</VirtualHost>
### SUBVERSION
### ( )
<VirtualHost 127.0.0.1:443>
<Directory " subversion">
SSLRequire %{SSL_CLIENT_VERIFY} eq "SUCCESS"
</Directory>
<Location /svn>
DAV svn
SVNParentPath /__
</Location>
</VirtualHost>

38

4.

TortoiseSVN, .
, Subversion (SVN).
, , , ,
, .
Subversion,
1: Subversion [http://svnbook.redbean.com/].
, TortoiseSVN Subversion.
- , , ,
.
. , :
TortoiseSVN .
, :
TortoiseSVN.
.
Subversion.
/ Subversion.

4.1.
4.1.1.

4.1.
TortoiseSVN ,
. , .
, 4.7.1, .
1

" Subversion". ,
- .

39

4.1.2.

4.2. ,

TortoiseSVN Windows.
, .
, ,
, . TortoiseSVN
"" .


. Shift
.
TortoiseSVN. !

40

4.3. ""
, ""
TortoiseSVN. ,
, . ,
, , ,
: , , .
Windows 2000, ,
, , . ,
, Microsoft Vista ,
, , ,
Windows 2000.

4.1.3.

41

4.4.

(
)
,
- , .

4.1.4.
Windows,
. - ,
, .
F1
F5

,
. , , .
: ;
,
; ' '
.

Ctrl-A
. , ,
. Ctrl-A
, ...
Ctrl-C
... .

4.1.5.
, ,
.

42

4.5.
. ,
TortoiseSVN Subversion: %APPDATA%\Subversion
\auth :
svn.simple ( /
).
svn.ssl.server SSL.
svn.username
( ).

TortoiseSVN. ,
auth Subversion, ,
TortoiseSVN. 4.30.6,
.
, Windwos
.
, %APPDATA%\Subversion\auth, ,
@echo off
rmdir /s /q "%APPDATA%\Subversion\auth"
, , windows-help-central.com [http://
www.windows-help-central.com/windows-shutdown-script.html].
,
, 3.5,

4.1.6.
TortoiseSVN ,
, , ,
.
.
, - .

4.2.

43

4.2.1.
, ,
.
, , . 3.1.5,
.
Subversion,
. , ,
:
,
.
.
.
.
, ,
, , , 4.2.2,
. , ...
, , :
1. , (
, *.obj, , ...)
2. . /
, ,
!
Windows
. TortoiseSVN
..., :

4.6.

44



URL ,
. , ,
. , :
C:\\Widget\source
C:\\Widget\doc
C:\\Widget\images
C:\\Widget http://mydomain.com/svn/trunk,
, , ,
Widget. URL,http://
mydomain.com/svn/trunk/Widget-X. :
, .
.
, , ,
. ,
.
4.30.1, .
, TortoiseSVN
. .
, , , !
, ,
. ,
.

4.2.2.
, ,
, :
1.
.
2. , .
, .
.
3. TortoiseSVN ...
. ,
svn:ignore .
4. ,
, .

4.2.3.
,
. , , /
.
,
.
. ,
,
.

45



,
.
, TortoiseSVN.
TortoiseVars.bat, - TortoiseVars.tmpl.
TortoiseVars.tmpl - ,
TortoiseVars.bat. ,
,
, .
, TortoiseVars.bat
, .. Subversion
svn:ignore , . ,
.

4.3.
.
Windows , .
TortoiseSVN
..., :

4.7.
, .

4.3.1.
,
. ,
, .

, .
,
, ,
.

46



-
, , .

. .

, .
, ,
.

,
. .
(.. ,
),
, ( 4.24, )
( 4.7.3, ).
: ,
TortoiseSVN . ,
,
. ,
, , .
, .
, ,
. (),
,
.
,
, . ,
, 01 99,
03, 25 76/. :
1.
.
2. TortoiseSVN
.
3. 03
.... , .
.
25.
4. 76/ . ,
76 , , .
Subversion , .


, ,
,
....

47


1.5 ,
. -
, ,
, ,
. ,
1.5.
, ,

,
,
TortoiseSVN ...
TortoiseSVN SVN ....
.
(trunk) , .
URL ,
, ,
!

.svn,
, (zipped tarball)
. 4.26, Subversion, ,
.

4.4.
, , .
, .
TortoiseSVN SVN ...,
TortoiseSVN ,
.

4.4.1.
, ,
. / , ,
TortoiseSVN SVN SVN ....

48

4.8.
, ,
. - ,
. ,
.
, , (s). ,
-, ,
. - !

: ?
,
. ,
. ,
. ,
,
.
,
svn:externals, .
, , ,
.

49

,
(
), . :
( )
. .
svn:ignore, TortoiseSVN
. ,
svn:ignore. svn:ignore
Subversion.
4.13,
.

. ,
.
, IDE.
,
. Shift- ,
.
.
, ,
. ,
.
, .
,
. , ,
. ,
, no_unlock Subversion.
4.30.1, , ,
Subversion.


, ,
. ,

.
(
),

.
,
.

50


Subversion,
: , - .
, Subversion ,
. : (),
()
, .

4.4.2.
Subversion,
. 4.8, .

4.4.3.
, ,
. -
? ? .
- -
. ,
, - , - .
,
, ignore-on-commit. , ,
. -
, .

4.4.4.
, , . ,
, , .
, ;
, , ,
.
, ,
. -,
** , __ ^^
.

51

4.9.
TortoiseSVN ,
. .
. ,
, ,
. -
.
.
()
, . , ,
- ( , 3 , Ctrl+),
, . ,
TortoiseSVN, bin TortoiseSVN.
%APPDATA%\TortoiseSVN
\autolist.txt. ,
TortoiseSVN. ,
http://en.wikipedia.org/wiki/Regular_expression2,
http://www.regular-expressions.info/.
:

2

: http://ru.wikipedia.org/wiki/_ [http://
ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_
%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F] - .

52



.
TortoiseSVN.

TortoiseSVN,
Delete.
,

: .
-
.


,
,
. 4.17,
.


,
ID / N .
, . ,

,
. , 4.28,
/.

4.4.5.
, .

4.10. ,

53



, ,
:

.
-
.

.
,
. 4.30.1.4,
TortoiseSVN.

4.5.
,

4.11. ,
, ,
.
. ,
. / ,
,
TortoiseSVN .... , .
, ,
, .
.
, ,
:

, .

54



-
, , ,
.

, .
-
, ,
.

, .
,
. 4.30.1.4,
TortoiseSVN.
( ,
, , ),
.
.
,
, , , .. .
Ctrl+C.
''
(HEAD) , .
,
TortoiseSVN ....
, . ,
100, ,
50 - 50.
. 4.3.1,
. - ,
. (..
, svn:externals).

, ,
.
!
, .
,
B.4, ().
,
- . , ,
,
. ,
, ,
. ,
, ,
.
,
... .

55

/
,
, / . TortoiseSVN
, /
!, -
.



. , Subversion
, ,
. Subversion
- -,
, , ,
.
, -
. , ,
.
,
TortoiseSVN
. .

4.6.
- /
URL. :

, ( )
.

, //
, //
.

4.6.1.
,
. Subversion ,
. ,
, <<<<<<<.
:
<<<<<<<

=======

>>>>>>>
, Subversion
:

56



filename.ext.mine
, , ..
. ,
.
filename.ext.r_
, , ..
, , .
filename.ext.r_
, Subversion
. (HEAD) .
/
TortoiseSVN ,
. , ,
.
TortoiseSVN
. , , '' .
filename.ext.mine filename.ext.r* ,
.
, Subversion
. ( ,
) filename.ext.r*. ,
, ' '.
, '',
.
'' , ,
, TortoiseSVN ...
, ,
.

4.6.2.
, //
, //
. , ,
.
Subversion,
, , ,
.

.
TortoiseSVN , , ,
. ,
,
. , ,
, , ,
.

4.6.2.1. ,
1. Foo.c .

57



2. Foo.c Bar.c ,
Foo.c .
:
Foo.c , .
- , - , Bar.c
, , .
, .
, Foo.c
Bar.c .
. ,
, .
,
Bar.c. , ,
-.

4.6.2.2. ,
1. Foo.c Bar.c .
2. Foo.c .
...
1. FooFolder BarFolder
.
2. Foo.c .
.
:
Bar.c .
Foo.c ( ) .
:
BarFolder .
FooFolder ( ) .
Foo.c .
,
,
.
,
, Foo.c /
. .
,
. ,
.
.
, ,
.
/ , .
, .

58

4.6.2.3. ,
1. Foo.c Bar.c .
2. Foo.c Bix.c
:
Bar.c .
Bar.c ''.
Foo.c .
,
Foo.c / .
.
, Foo.c - ,
, .
, ,
.

4.6.2.4. ,
1. , , Foo.c .
2. , , Foo.c Bar.c
.

:
Bar.c ''.
Foo.c .

, .
, Foo.c ,
Foo.c Bar.c,
, .
:
, .
.

4.6.2.5. ,
1. , , Foo.c Bar.c
.
2. , , Foo.c .
, Subversion
1.6 ...
1. , , FooFolder
BarFolder .
2. , , Foo.c .

:

59



Bar.c .
Foo.c .
,
,
.
,
, Foo.c /
.
. ,
, ,
. ,
. ,
.

.
, ,
.
/ , .
, .

4.6.2.6. ,
1. , , Foo.c Bar.c
.
2. , , Foo.c Bix.c
.

:
Bix.c () .
Bar.c .
Foo.c .
,
Foo.c / .
.
, ,
, .
, Foo.c - ,
, .
, ,
.

4.7.
, , //
, .

4.7.1.

60

4.12.
, Subversion, ,
Windows ,
TortoiseSVN. TortoiseSVN ,
.
Subversion.

. ,
Subversion - .

,
. , ,

.

,
.

svn:needs-lock, Subversion
, .
, , .

, Subversion ,
, , ,
.

,
- , ,
, .

61

,
.

, .
.

, ,
. .
, .
- , , Windows, ,
TortoiseCVS,
. TortoiseSVN
(TM) ,
.
, Tortoise (TortoiseCVS, TortoiseHG, ...),
.
TortoiseSVN , DLL,
Tortoise. ,
:-)
Subversion
, F.1, .

4.7.2. TortoiseSVN Windows


, ( ),
'' Windows.
,
... , ,
. ,
, SVN. , ,
, . .
, ,
.

Windows Vista ,
Microsoft ,
.

,
, .

62

4.7.3.

4.13.
,
. TortoiseSVN
.... , -
, ,
.
,
. ,
.
. ,
. , ,
, Shift
.
.

. , , +
, , .
-
.

, .
. .
-
, ,
. .

63



,
. 4.30.1.4,
TortoiseSVN.
, , (s). ,
-, ,
. - !
.
, ,
. , ,
.
. ,

.

. (
) Shift .
, ,
IDE.
. ,
, .
,
. ,
.
,
. 4.4.2,
.
,
. , ;
, , ,
. :
, . ,
.

, ..
,
- .
.


Subversion,
: , - .
, Subversion ,
. : (),
()
, .

64

4.7.4.
, ,
.
TortoiseSVN .
, (BASE, ),
.

,
, :
, , (,
Ctrl ) TortoiseSVN .
, (, , .. ),
.

4.8.
,
. , :
,
, ,
. , ,
. , , .
, .

TortoiseSVN Windows XP
, ,
Windows 2000. , Windows 2000
, , .
, -
.
, ,
. ,
. ,
.

.
, , , .
, , , .
, .
, , ,
, Windows.
, , .
,
.

65

4.14. .
, .
, ,
.
Windows XP ,
() . Vista, ,
: ,
- .
TortoiseSVN ,
ignore-on-commit. ,
, .
4.4.3, .
, , ,
.
.
, ,
.

66

- ,
. ,
.
.

4.9.
,
. , ,
, .
.
:
, /
. ,
.
, -
(, ).
.
,
.
: ,
.

67

4.9.1.

4.15.
, :
TortoiseSVN

.
,
, ?,
4.9.10, .

4.9.2.
, ,
. ,
.

, .

68



,
.
, .
,
.

4.9.3.

4.16.

,
.
, - .

.
TortoiseMerge, TortoiseSVN.
, ,
, .

,

. 4.23.2,
( ).


(Unified-Diff) ( GNU). (
). ,
, .

.
. ,
.

69




, .
,
( ).
...
,
( ).
/ ...

, ( ).
...
(
).


, .
/
. , ,
,
.

. ,
, - ,
.
, ,
.
,
.

. ,
, , N,
, . ,
, .
, , ,
/ .
,
. ,
.
: Subversion ,
, .

, , TortoiseSVN
Windows, ,
.
, ,
....

, .
, !

70



: , .
.
, ,
, .
,
. ,
.
: Subversion
, .
.
...
.
,
, .
,
, ! ,
.
...
.
, URL- ,
.
...
/ .
URL- , .
/
,
. 4.9.7, , ,
.

,
. - 4.9.7, .

.
, , ,
.
...
.
, , Subversion
( ). .

4.17.

71



( , , Ctrl),
:


. , TortoiseMerge,
TortoiseSVN.
, ,
.
4.10.3, .


.
4.23.2, .


. , .

, .
...
, .
(, , Ctrl Shift),
, .
.
,
.
, .

4.18.
,
:

, .
, .


.
4.23.2, .

72




.
, .
/ ...

, .
...
, .

, .

Subversion .

.

,
. 4.9.6,
.
...
,
.

, , - .
?
Subversion :
,

, 1234 ,
, r1234, . ,
, ,
.
, N M,
. Subversion diff -r M:N.
N,
, . Subversion diff r N-1:N diff -c N.
, ,
.

4.9.4.
-
:
,
. .

73



, 100,
TortoiseSVN ( 4.30.1.2,
TortoiseSVN - 1 ),
/,
,
. ( ),

, .
. TortoiseSVN
, .
'', .
, ,
.
: Subversion /
,
, .
, 100
. ,
.
,
, .
.
, ....
, .
, (HEAD)
1, .

4.9.5.
,
, , ,
. ,
, ,
.
When you show the log for a folder the revision highlighted is the highest revision found anywhere within
that folder, which requires a crawl of the working copy. This can be a slow operation for large working
copies, and the log messages are not displayed until the crawl completes. If you want to disable or limit
this feature you need to set a registry key HKCU\Software\TortoiseSVN\RecursiveLogRev
as described in 4.30.10, .

4.9.6.
Subversion 1.5 .
. ,
,

, 1000 .

74

4.19. ,

, ,
.
, ,
. ,
, .
, !
, ,
.
.
.

4.9.7.
Subversion .
- ,
, , ().
, -
, ,
. , , , ..
, ...

75



Subversion . ,
( ),
. , , pre-revpropchange (--_). , ,
, Hook Scripts ( ) [http://svnbook.red-bean.com/
en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks] Subversion.
3.3, C , ,
Windows.
, ,
( ) ,
. ,
.

- , Subversion ,
(, svn:log - )
.

4.9.8.
,
, .
.
, .
, ,
, .
, ,
.
.
, http://
www.regular-expressions.info/. ,
, .
, , ,
('!'). , !
, .
: .
.
,
. - , ,
. , .
- . :
, .
,
, , , ,
, . tsvn:logsummary
, .
4.17.2, TortoiseSVN, ,
.

76

Subversion,
.
- ,
.

4.9.9.
,
, . ,
, ,
. , , ;-)

4.9.9.1.
,
, , ,
// .

4.9.9.2. ' '

4.20. --
,
, ("") .

77

4.21. --

, .
(
), .

78

4.9.9.3. ' '

4.22. --

. , ,
.
.
: ,
, ,
. , , ,
, .
, , PeterEgan
PeteRegan .
, -, ,
DavidMorgan davidmorgan .
.
, , .
, .

79

4.9.10.

4.23.
, ,
. ,
, ,
.
:

,
, .

, .
. 4.9.11, .

,
.
,
, . ( )
, TortoiseSVN .

4.9.11.
,
F5. (
),
. ,
.
, ,
, Shift-F5 Ctrl-F5
. :
, ,
.

80

4.10.
- , .
,
. TortoiseSVN
, TortoiseMerge. TortoiseSVN
TortoiseIDiff. ,
.

4.10.1.

, ,
TortoiseSVN .
/
, (
) - ( ),
. Shift
. TortoiseSVN
URL URL ,
.
, ,
, / . ,
. 4.10.3, .

,
,
.

, , ,
TortoiseSVN .
--
( ) .
,
, . , ,
, .

,
( , , Ctrl)
, .
.
, ,
.
4.10.3, .
,
,
, ,
(Unified-Diff, GNU).
. ,

81



, .
,
.

,
, ( , Ctrl)
TortoiseSVN .
/ / URL

- Subversion, ,
, Shift, TortoiseSVN
URL. .
TortoiseMerge , -
, .

, ,
,
. 4.23.2, .

, TortoiseSVN,
. , ,
. 4.10.5, /
, .
,
Shift '' . 4.30.5,
, , .

4.10.2.
, CRLF LF,
- . , ,
, .
,
. ,
TortoiseMerge.
, -
.

/ .
,
- ,
. ,
- .
.
, .

4.10.3.

82

4.24.
,
, .

, .
, , -
, .
, -
- ....
, .

....
(,
, ),
.
. ,
, , , , ,
.

. , ,
.

83



,
: , ,
. : ,
C, .c, *.c.

4.10.4. TortoiseIDiff
,
TortoiseMerge, , ,
. TortoiseIDiff.

4.25.
TortoiseSVN
TortoiseIDiff . ,
, ''
, , ,
.
, , .
.
, ( , )
.
,
, . ,
, .
.
, () .
,

84



0% 100% ,
,
. .
, ,
. ,
, .
- XOR
. , .

4.10.5. /
, , -
:
. , ,
, :
WinMerge
WinMerge [http://winmerge.sourceforge.net/] - ,
. .
Perforce Merge
Perforce - RCS,
/.
Perforce [http://www.perforce.com/perforce/products/merge.html].
KDiff3
KDiff3 - ,
. [http://kdiff3.sf.net/].
ExamDiff
ExamDiff Standard freeware. ,
. ExamDiff Pro shareware ,
. ,
3.2, . PrestoSoft [http://
www.prestosoft.com/].
Beyond Compare
ExamDiff Pro, ,
, shareware.
Scooter Software [http://www.scootersoftware.com/].
Araxis Merge
Araxis Merge - /
, .
, , .
Araxis [http://www.araxis.com/merge/index.html].
SciTE
,
. Scintilla [http://www.scintilla.org/
SciTEDownload.html].
Notepad2
Notepad2 Windows,
Scintilla.
, , Windows,
. [http://www.flosfreeware.ch/notepad2.html].

85



4.30.5, , TortoiseSVN
.

4.11.

4.26.
/ ,
. (-) / ,
TortoiseSVN ....
, / ,
, , ,
/ . /
!


'' .

. ,
.
, ,
:
1. ,
2.
3.
4. SVN .
.

.
, ,
TortoiseSVN ....

4.12. //

, ,
, . ,
, .

86



,
Subversion .
- ,
.
, ,
.

4.27.

, ,
.
,
--.
Windows
.
, TortoiseSVN
( : Windows )
.

TortoiseSVN /. ,
4.19.1, .


/ . 4.9.3,
, .
,
,
. 4.24, ,
, .

, , ,

TortoiseSVN.

87



. -
.
, URL
, ,
URL , .
,
.

4.13.

4.28.
,
. , , *.obj, *.lst,
, , . ,
, TortoiseSVN ,
. , ,
.
-
. ,
- .
,
TortoiseSVN ,
, , ,
. , ,
/.
,
TortoiseSVN
svn:ignore .
, ,
. 4.17,
. :
, .


-
. ,

88



- .
Subversion, . ,
svn:ignore ,
,
. 4.30.1,
.


- Subversion.
, B.8,
, , ,
.

4.13.1.
Subversion - ,
Unix . :
*
?
[...]

, ( ).
.
, .
, - ,
. , [AGm-p] A, G, m, n, o p.

,
Windows. :
, .. *.tmp,
*.[Tt][Mm][Pp].
,
IEEE Pattern Matching Notation [http://
www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_13].


.
.
CVS, CVS
. CVS */CVS,
. tmp,
prog, doc,
svn:ignore.
.

4.14. ,
CVS, Subversion .
TortoiseSVN .

89

4.29.
4.14.1.
Subversion TortoiseSVN .
TortoiseSVN ,
.
. , ,
, TortoiseSVN .
TortoiseSVN , ,
, , . , ,
, TortoiseSVN
. Subversion, TortoiseSVN.
- ,
/,
( ). Shift
( ) ,
.
, TortoiseSVN,

. , , Subversion
.
, , TortoiseSVN
, Subversion , .
, TortoiseSVN,
.

90



, Subversion
, , TortoiseSVN .


,
TortoiseSVN
. . ,
( ,
), .
, ,
...,
.

4.14.2.
( ) ,
... .
, , ,
:
1. ,
2.
3.
4. SVN



,
/ , /
.
/, ,
, , ..
: , .

, .
.
, , 4.24, .

SVN
TortoiseSVN
, svn:externals.
,

91



.
, (,
), svn:externals
.

4.14.3.
Subversion Windows
,
. Windows ,
.
, ( )
. Subversion.
!!!
) ()
1. .
2.
.
3. .
)
1. _
'' TortoiseSVN.
2. .
3. _ .
4. .

4.14.4. -

, ,
(, TEST.TXT test.txt),
, , Windows. Subversion
, , Windows.
, ,
, .
, , Linux.
, (
) .


http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/
, ,
- .

92

4.14.5.
IDE
, , , Subversion.
, Subversion , -
. , , ,
, Subversion
.
- Subversion , - ,
, .
: () (),

.

4.14.6.
, Subversion
. ,
? , ,
, ,
.
TortoiseSVN ,
.... Shift
( ) ,
. ,
,
.
, ,
, , .

4.15.
,
, , ,
TortoiseSVN ,
, . ,
.

93

4.30. ' '


,
' ' ,
.
,
TortoiseSVN .... ' ',
, .
,
. 4.7.3,
.


.
, .
, ,
4.9, .


, ,
, . ,
,
, . , , Windows
. :
,
TortoiseSVN.

94

4.16.
Subversion , - ,
.
TortoiseSVN .
.
: ,
- , Subversion , ,
.
, , , ,
. ''
-
.

-
Subversion ,

- . ''
.

4.17.

95

4.31. , Subversion
/, .
, Subversion, .
Windows
( : '' ,
, TortoiseSVN!). TortoiseSVN
/, Subversion,
/.

4.17.1. Subversion

96

4.32. Subversion
Subversion
Windows, TortoiseSVN ,
TortoiseSVN, .
, ,
Subversion. svn:.
svn:externals; , ,
4.18, .

4.17.1.1. , svn:
Subversion CVS,
. ,
:
$Date$
. ,
. .
$Revision$
.
$Author$
, .
$HeadURL$
URL .
$Id$
.
, , svn:keywords section (
svn:keywords) [http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.keywords.html]

97



Subversion, ,
, .
Subversion, Special Properties (
) [http://svnbook.red-bean.com/en/1.5/svn.advanced.props.html].

4.17.1.2.

4.33.
, ....
, ,
. ,
, , .
.
, /
, .
,
, .
, svn:needs-lock, ,
. -
,
.
,
, ....
,
, .
svn:externals
. , 4.18,
.

98

4.17.1.3.
, ,
bugtraq:logregex. ,
/.
, , TortoiseSVN
, , , ...
, .
, , TortoiseSVN
.... ,
, , , .
.
, ,
, ...,
.
TortoiseSVN.
- ,
.

4.17.1.4.
TortoiseSVN .
, ... .
,
, ...
.
,
. , ,
, , ,
, .

4.17.1.5.
Subversion TortoiseSVN ,
. :
Subversion
. TortoiseSVN '',
. ,
Subversion. : miscellany
enable-auto-props = yes.
,
. Subversion
Subversion. , -
.
- tsvn:autoprops ,
. TortoiseSVN,
.
, ,
.
.

99



,
, -
, .


Subversion .
, .


- ,
, Subversion
.prej. .

4.17.2. TortoiseSVN
TortoiseSVN , tsvn:.
tsvn:logminsize .
, , .

. ,
, .
tsvn:lockmsgminsize .
, , .

.
, , .
tsvn:logwidthmarker , ,
( 80 )
.
:
, ,
. : ,
( ) .
tsvn:logtemplate ,
. ,
.
. :
tsvn:logminsize, , , ,
.
Subversion (autoprops),
, .

Subversion. tsvn:autoprops
,
. , Subversion, ,
*.sh = svn:eol-style=native;svn:executable
.sh

100



tsvn:autoprops,
,
.

(, ..).
tsvn:logfilelistenglish ,
. , true.
TortoiseSVN ,
OpenOffice Mozilla. , ,
, ..
. tsvn:projectlanguage ,
.
: MSDN: Language Identifiers [http://
msdn2.microsoft.com/en-us/library/ms776260.aspx].
,
0x. ,
0x0409 1033 3.
tsvn:logsummary ,
.
tsvn:logsummary
, . , ,
.
: \[SUMMARY\]:\s+(.*) [SUMMARY]
.
,
, .
, ,
( ),
tsvn:userfileproperties
tsvn:userdirproperties. .
,
.
tsvn:- true/false. TortoiseSVN yes
true no false.
TortoiseSVN .
, bugtraq:. 4.28,
/ .
TortoiseSVN -
, , webviewer:.
4.29, , .


,
.
. , TortoiseSVN
, (,

101



C:\). ,
(, trunk/), - ,
trunk/. ,
.
( trunk/).

,
.
TortoiseSVN, ,
, .

, TortoiseSVN, ,
c TortoiseSVN,
TortoiseSVN. , ,
Subversion, , ,
TortoiseSVN, , ,
.
,
.

4.18.
, ,
. ,
, , , . ,
,
svn:externals, , .

4.18.1.
, /project1 D:\dev\project1.

D:\dev\project1, Windows
. ''. Subversion.
..., .
... svn:externals ,
URL- url ,
, -rREV url . ,
. , D:\dev\project1:
http://sounds.red-bean.com/repos sounds
http://graphics.red-bean.com/repos/fast%20graphics quick_graphs
-r21 http://svn.red-bean.com/repos/skin-maker skins/toolkit
. ( - )
, Subversion D:\dev\project1\sounds
sounds, D:\dev\project1\quick
graphs
, , , D:\dev\project1\skins\toolkit
21 skin-maker.
URL , .
, %20, .

102



, ,
,
\ ( ) Unix. ,
, / ( ) .
: Subversion 1.6
.



, .
, , ,
, .
, ,
, ,
,
,
, , , ,
, ,
.

.

svn:externals
, , Subversion 1.5.
,
. ,
, , .
Subversion [http://svnbook.red-bean.com/en/1.5/
svn.advanced.externals.html].
, ,
, .
,
,
.
URL svn:externals,
(.. URL ),
, .
, Subversion, 1.5,
URL. URL.
, : http://
example.com/svn/repos-1 http://example.com/svn/repos-2.
http://example.com/svn/repos-1/project/trunk C:\Working
svn:externals .

URL ../ , :
../../widgets/foo

common/foo-widget

http://example.com/svn/repos-1/widgets/foo C:
\Working\common\foo-widget.

103



: URL URL
svn:externals, , .


URL ^/ , :
^/widgets/foo

common/foo-widget

http://example.com/svn/repos-1/widgets/foo C:
\Working\common\foo-widget.
SVNParentPath (
, ). :
^/../repos-2/hammers/claw

common/claw-hammer

http://example.com/svn/repos-2/hammers/claw C:
\Working\common\claw-hammer.

URL, // , URL.
,
; ,
http://, svn+ssh://. :
//example.com/svn/repos-1/widgets/foo

common/foo-widget

http://example.com/svn/repos-1/widgets/foo svn
+ssh://example.com/svn/repos-1/widgets/foo ,
C:\Working.

URL, / URL, ,
:
/svn/repos-1/widgets/foo

common/foo-widget

http://example.com/svn/repos-1/widgets/foo C:
\Working\common\foo-widget. ,
svn+ssh://another.mirror.net/svn/repos-1/project1/
trunk, svn+ssh://another.mirror.net/svn/
repos-1/widgets/foo.
URL, http://
sounds.red-bean.com/repos@19.
, TortoiseSVN ,
4.17, .
, , B.6,
.

4.18.2.
Subversion 1.6,
, , . ,
.

104




. , ,
svn:externals, .
: , ,
.
URL ,
;
.
,
;
svn:externals.


Subversion 1.6
Subversion 1.6
, ,
svn:externals.
.

4.19.

. .

. ,
().

(, ),
. .
Subversion ,
(cheap copies).
Unix: , , ,
, /. ,
, .

4.19.1.
,
:

105

4.34. /
, ,
TortoiseSVN /....
, URL URL ,
. URL ,
/. ,
http://svn.collab.net/repos/ProjectName/trunk
-
http://svn.collab.net/repos/ProjectName/tags/Release_1.10
, ,
- ,
.
. :
(HEAD)
.
, .

106




,
. , ,
. ,
.
, .

.
,
, . ,
,
.
,
, /.
, , .
, .
. .
: .
, ,
.
, , ,
.

4.19.2. ? ?..
... ( ).
, TortoiseSVN ...
. ,
. :-)
, ,
. :
TortoiseSVN , .

, .
.
TortoiseSVN ...
.
URL , .
(HEAD) .
/.
,
. , ,
. , ,
,
( ).
,
, Windows
, TortoiseSVN ...
.

107

4.35.
, Subversion ,
.
, ,
. , , -
,
/trunk /branches /tags (/ / /
). ,
, , ,
. , ,
/tags/, TortoiseSVN .
,
.
, ,
, ,
Version_1.0.1.
,
, .
, .

4.20.
, ,

, , .
, Subversion
, .
Branching and Merging ( ) [http://svnbook.red-bean.com/en/1.5/
svn.branchmerge.html] Subversion,
.
: .
,
,
TortoiseSVN ....
, .
- , .

108



, , ,
, , .
,
, .
.

,
( ) .
, Subversion :
, , [] 1 []
7 , (
).

,
, Subversion.
, , ,
.
,
, .
, , URL,
( ).
Subversion
, ,
,
. ,
, ,
.

. .
,
. ,

,
, ---
!
.

. Subversion
: , , []
[] ,
( ). ,
.
/ ,
.

(vendor branches), ,
, .
[http://
svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html] Subversion.

4.20.1.

109

4.36. -
: URL ,
. ... ,
.
, ,
URL.
,
. ,
, , ,
.


TortoiseSVN .
- .

- , .
TortoiseSVN
.
, .

110



,
Subversion , 100-200
200-300 . TortoiseSVN 100-200 201-300 .
. ,
, ,
.
- ,
.
, .
,
( , , Shift).
.
, ..
, , , ,
, .
, ,
, ,
.
, .
. , 37 39,
40.
Subversion ,
, - Subversion.
, .
4.20.6, , .
,
. ,
, -
.
4.20.4,

4.20.2.

111

4.37. -
, ,
, .
URL: URL ,
. ... .
. ,
. (
), ,
, , , . ,
,
( ).
.

4.20.3.

112

4.38. -
,
, .
: URL . , ,
- , .
... .
: URL .
, , ,
. ,
, . , ,
.
.

4.20.4.

. .
, , ..
.

113



4.3.1, . - ,
, , .
, ,
.
, , . ,
1 2 . ,
, Subversion ,
. ,
. , Subversion
, , , ,
.
Subversion Noticing or Ignoring Ancestry ( ) [http://
svnbook.red-bean.com/en/1.5/svn.branchmerge.advanced.html#svn.branchmerge.advanced.ancestry].
.
4.10.2,
. -
, .
, ,
, .
: ,
, ,
() , .
, .
, , ,
.
, , , -
. ,
, .
, ,
, .
,
. ,
. , 123,
122 123.
, .

.
.

4.20.5.
.
, , . ;
, .
Subversion 1.5,
:
,
, .
, ,
, . ,
Subversion .
Best Practices for Merging (. ) [http://svnbook.red-bean.com/en/1.4/
svn.branchmerge.copychanges.html#svn.branchmerge.copychanges.bestprac] Subversion.

114



Subversion 1.5 ,
,
. ,
,
.
.
, ,
. ,
, .

,
,
.

Subversion -
. ,
. ,
URL .

4.20.6.
Subversion 1.5 .
,
.
(
). , ,
, , .
,
, .
,
.
,
, , .
, ,
.
svn:mergeinfo
. ,
, ,
. , ,
, .
svn:mergeinfo,
, .

[http://subversion.tigris.org/merge-tracking/index.html] Subversion.

115

4.20.7. ,
. , ,
,
. TortoiseSVN ,
' '.

4.39. ' '


, :
1. , ,
.
. ,
- ,
.
2. . ,
, .
, .
3. - .
,
. , ,
.
,
.
, .
, .
, , ,
. ,
( ),
, , . , ,
;)

4.20.8.

116



,
TortoiseSVN ...
( Shift ).

4.40. ' '


. , -
, 4.20.4, . TortoiseSVN
, .

4.20.9.
,
.
, ,
, .
,
, ,
,
. ,
, .
,
,
. ,
,
. .
, ,
, .

4.21.
, Subversion , -, 2.2.3, -. , ,
.
- , .
, , .

117



,
, .
, Subversion 1.2 .
.
file://, , , .

4.21.1. Subversion
, , ,
.
, .
, .
, .
, ,
, .
, , .
,
, . ,
, Subversion svn:needs-lock.
( ) , ,
, "--", ,
. ,
, . - TortoiseSVN ,
.

. ( , ),
.
, - ,
? Subversion . ,
- , ,
, - , . ,
, .
,
. , , -
, .
.

4.21.2.
() , ,
TortoiseSVN ....

118

4.41.
, , ,
. ,
Svnserve. ( ) ,
.
TortoiseSVN ...,
,
. ,
, ,
. ...

4.21.3.
, , ,
.
, , , ,
. ,
( ).
,
.
, () ,
, TortoiseSVN .
, TortoiseSVN .
.

119

4.21.4.

4.42.
, ,
TortoiseSVN .
. ,
( , , -
), .
, , ,
, , .


- , ,
.
- , ,
,
. Subversion ,
.

4.21.5. , --
, -
svn:needs-lock. , ,
4.17, . , ,
"--", ,
.

TortoiseSVN .
, , ,
, Subversion
, ().
4.17.1.5, .

120

4.21.6.
Subversion 1.2 ,
hooks .
, .
-
-,
. , / . hooks/postlock.tmpl .
, ,
, . , ,
, .
3.3, C , ,
.

4.22.
( )
, . ?
, , ,
.
, .
, ,
.
- ,
.

4.22.1.
. ,
TortoiseSVN ..., TortoiseSVN
...

121

4.43.
, , ,
. , ,
.
,
. 4.7.3,
.
, .
, , -
, ,
.
, .
, .patch
.diff. .
.
, . ,
,
, - .

4.22.2.
.
, .
, . ,
doc/source/english/chapter1.xml
Index: english/chapter1.xml,
doc/source/. , ,
, , TortoiseSVN
.

122



, ,
. ,
,
.
TortoiseSVN ...
, .
.patch .diff,
. ,
.
, .patch .diff,
TortoiseSVN ....
.
- .
, -
.
, TortoiseMerge
.
, .
, , .
, ,
, .

4.23. ?
, ,
. TortoiseSVN
..., .
, .

4.23.1.

4.44. /
, ,
. 1,
.
TortoiseBlame,
.
,

123



,
. 4.10.2,
. -
,
,
.
, , TortoiseSVN
. : , ,
, ,
. ,
, .

4.45. TortoiseBlame
TortoiseBlame, TortoiseSVN, .

. , ,
, , .
, 256
.
, ,
.
, .
.
( )
.
, ,
.
....
, .
- .

124




....
,
, ,
.
,
.
, , .
,
, .
, .
, , ,
.
: ,
- . , , ,
TortoiseBlame.
, ,
, TortoiseBlame
, , .
. , ,
.
, , .
TortoiseBlame , TortoiseSVN ...
TortoiseBlame. 4.30.9, TortoiseBlame.

4.23.2.
, ,
,
. , ,
.
.
,
:

2
. ,
,
.

,
.
,

.

,
.

125



,
,
.

4.24.
,
. . ,
,
.

4.46.
, ,
, .. .
, Windows,
, ,
. , - .
URL ,
.
, Windows, ,
. ,
.
:
,
.
.
, ,
.

126



, ,
.
.
, , ,
.
/ .
:
, ,
.
.
.
.
.
.
, , ,
.
/ .
. .
, ,
,
.
, , .
, ,
, ,
.
,
.
, ( /trunk/),
...
.

, F5 , ,
. ,
, Ctrl-F5.
, .
.
,
. :
.
,
. , ,
Ctrl+ .
, .

127



/ ,
, Ctrl-
.
, .
, ,
. - ,
.
, - ,
. , URL,
, - -
.
,
,
Ctrl+C.

4.25.

4.47.
, ,
- .
TortoiseSVN
, ,
, / .

, , TortoiseSVN
. ,

128



, ,
, ..
Apache, 500,000 ,
.
,
.
. TortoiseSVN.

4.25.1.
, -
. .
, , TortoiseSVN

, , /,
. .

, , TortoiseSVN .

, ,
( ). .

,
.

,
.
, ( ). ,
, ,
.

,
,
.

,
, ,
. .

.
: ,
, .
. ,
, ,
.
( ) ,
,
, . ,
, . ,

129



, ,
. ,
. ,
, .. ,
. , , ,
.

4.25.2.
, ,
.
.

( )
.
.
,
: ()
. -, , ,
,
, . ,
.

, .
, , .

,
, ,
, . ,
, .

,
.
, , , ,
.

.
, (
). , /branches/1.2.x/
doc/html /trunk/doc/html
/branches/1.2.x/.. , doc html, .

, , -
( , ) .
.

.

/ -
, . , ,
, -

130



. (
) , . ,
, .

,

. , ,
.
, .
, , -
.

, , ,
.

,
. , ,
, .

, ,
. , ,
, ,
. .

,
, ,
. . ,
F5 .

, .
,
.

,
, , .


, .
. :
- .

4.25.3.
, , .
, .
.

, .
( Ctrl- ),
. ,

131



,
, .. .
,
.
, .

.

.
.

, ,
.
, , !
, .


,
, . ,
,
.
,
.
,
. ,
, . , ,
,
. ,
, .

4.25.4.
,
F5. (
),
. ,
.
, ,
,
. , ,
,
.

4.25.5.
,
, . ,
, ,
.

132

. ,
, .

, . ,
, .
,
. ,
.

4.26. Subversion
.svn, ,
, -. ,
.svn , TortoiseSVN

TortoiseSVN .... , URL,


, -.

4.48. --URL

133



, TorotiseSVN ,
, URL ,
. ,
, ,
, svn:eol-style.
, .
,
.
URL.
,
.svn. , ,

,
. , svn:externals,
.
-
SVN
SVN .
.
,
, :
, , ,
(1).


, ,
Subversion .
TortoiseSVN
( 4.24, ).
(), ,
, , ,
.


,
, ,
, ,
4.10.3, .

4.26.1. -

.svn. - --,
, .
- ! TortoiseSVN
, .
, .

134

4.27.

4.49.
, - (IP/URL).
, ,

. TortoiseSVN ... - ,
. , : entries .svn
URL .
, , TortoiseSVN
. - ,
, URL ,
.

.
URL . :
IP- .
(, http:// https://).
.
, ,
, .
, :
Subversion.
.

. , , TortoiseSVN
.... 4.19.2, ? ?..
.
,

, , .. ,
, .

135

4.28. /
, ID
. (
) , Subversion, ID
.
, ID
, . ,
, ,
'-' .
TortoiseSVN :
1. ,
, , .
, ,
.
TortoiseSVN ,
. ,
.
2. , TortoiseSVN
ID , -
.

4.28.1.
TortoiseSVN.
, bugtraq:.
( 4.17, ).
TortoiseSVN :
, - . , :
bugtraq:url
URL .
URI- %BUGID%. %BUGID%
. TortoiseSVN
,
. , TortoiseSVN
, . , TortoiseSVN
http://issues.tortoisesvn.net/?do=details&id=%BUGID%
URL .
, /
, .
, bugtraq:url.
URL:
^/ ,
. , ^/../?do=details&id=%BUGID% http://
tortoisesvn.net/?do=details&id=%BUGID%
http://tortoisesvn.net/svn/trunk/.
URL, /
. , /?do=details&id=%BUGID% http://

136



tortoisesvn.net/?do=details&id=%BUGID% http://tortoisesvn.net.
bugtraq:warnifnoissue
true, , TortoiseSVN
. : true/false.
, false.

4.28.1.1.
TortoiseSVN ,
ID . /
.
bugtraq:message
.
, TortoiseSVN
.
, %BUGID%,
. ,


. , : %BUGID%,
.
bugtraq:append
, ID
( true) ( false). :
true/false. , true,
.
bugtraq:label
TortoiseSVN ,
. , Bug-ID /
Issue-Nr:. , ,
20-25 .
bugtraq:number
true, ,
,
. : true/false. ,
true.

4.28.1.2.
, TortoiseSVN ,
,
. , .
, ID !
, TortoiseSVN.
bugtraq:logregex
.
, , .
,
, ID .
ID .

137



ID . ,
:
#23, #24 #25
ID
, ,
TortoiseSVN: [Ii]ssues?:?(\s*(,|and)?\s*#\d+)+ (\d+)
issues #23, #24 and #25
.
, 23, 24 25 ID .
: issue, ,
. s ( )
. ,
, and .
, # .
,
'' ID . : [Ii]ssue(?:s)? #?(\d+)
, trac,
. , ,
.
, http://
en.wikipedia.org/wiki/Regular_expression4,
http://www.regular-expressions.info/.
, bugtraq:message bugtraq:logregex,
logregex .


, ,
, !
,
, ,
.
tsvn:- true/false. TortoiseSVN yes
true no false.


,
.
. , TortoiseSVN
, (, C:\).
,
(, trunk/), - ,
trunk/. ,
4

: http://ru.wikipedia.org/wiki/_ [http://
ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_
%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F] - .

138



.
( trunk/).
tsvn:
,
.




Subversion,
. - ,
.
TortoiseSVN;
Subversion.
(Issue Tracker
Integration Specification) [http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/doc/issuetrackers.txt]
TortoiseSVN ( 3, TortoiseSVN ! ,
TortoiseSVN).

4.28.2.

. ?
COM-,
, .
- ,
, .
, ,
, ,
.
C# C++/ATL contrib
TortoiseSVN [http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/issue-tracker-plugins]. ( 3,
TortoiseSVN ! ,
TortoiseSVN). API 6, IBugtraqProvider interface
() C# - Gurtle [http://code.google.com/p/gurtle/],
COM-
Google Code [http://code.google.com/hosting/].
,
, ,

TortoiseSVN. ,
, .

139

4.50.
.
,
.

4.29. ,
-
, -,
Subversion, ViewVC [http://www.viewvc.org/] WebSVN [http://
websvn.tigris.org/]. TortoiseSVN
.
TortoiseSVN.
, .
: ( 4.17, )
webviewer:revision
URL ,
. URI %REVISION%,
. TortoiseSVN
-

140



webviewer:pathrevision
URL ,
.
URI- %REVISION% %PATH%. %PATH%
. TortoiseSVN
, /
trunk/src/file, %PATH% URL /trunk/src/file.
URL . ,
/
, . ,
webviewer:revision webviewer:pathrevision.
, bugtraq:url. 4.28,
/.


,
.
. , TortoiseSVN
, (, C:\).
,
(, trunk/), - ,
trunk/. ,
.
( trunk/).
tsvn:
,
.


Subversion,
. - ,
.

4.30. TortoiseSVN
, ,
/... .

4.30.1.

141

4.51. ''
,
Subversion.

. - ?

, TortoiseSVN ,
, . ,
. ,
, , .

TortoiseSVN .



( )
Windows. .


, , . ,
, .
. ,
bin obj *.bak *.~?? *.jar *.[Tt]mp.
. ,
. 4.13.1,
.

142



: , ,
Subversion, , .

Subversion
global-ignores, .
Subversion
, .
. ,
. ,
svn:ignore -
. 4.13,
.

TortoiseSVN
. TortoiseSVN
. ,
,
, .
,
.
Subversion
.
TortoiseSVN ,
. config
Subversion (Runtime Configuration
Area) [http://svnbook.red-bean.com/en/1.5/svn.advanced.confarea.html].
(Automatic Property Setting) [http://svnbook.red-bean.com/en/1.5/
svn.advanced.props.html#svn.advanced.props.auto] ,
. , Subversion
, , .
Windows (Configuration and the Windows Registry) [http://svnbook.redbean.com/en/1.5/svn.advanced.confarea.html#svn.advanced.confarea.windows-registry],

.
_svn .svn
VS.NET - .svn,
Subversion .
Subversion, VS.NET frontpage.
4.30.11, Subversion
.
Subversion TortoiseSVN,
, .
,
, .
, (. ),
.

143

4.30.1.1.

4.52.
, TortoiseSVN
, - . ,
.
: . ,
,
, . ,
svn:needs-lock,
, ,
. ,
svn:needs-lock, .
, TortoiseSVN
, .

144

4.30.1.2. TortoiseSVN - 1

4.53. ' 1'


TortoiseSVN .

, TortoiseSVN
TortoiseSVN 5.
100
.

,
,
.
/
,
.

, ,
.
, - ,
, .

TortoiseSVN , ,
.
. () - ,
, . ,
5

- .

145



,
.
: , ,
, , ,
, -
, . ,
.
,
, : , ,
, .
.

, . , , .
, .
, Subversion
. , - ,
- .

, .
TortoiseSVN
, .
, .
URL :
URL :
. ,
, URL
,
.

.
, ,
, .
URL
URL .
- ,
URL,
.

146

4.30.1.3. TortoiseSVN - 2

4.54. ' 2'



( ),
,
. ,
,
.
.

.
3 - ,
,
. .
()
,
.
, ,
, .
, tsvn:projectlanguage
,
. - ,
.

, TortoiseSVN
. ,
25 . :
,
.

147



: ,
. .
/.
- (
, "-", ..),
,
, . ,
:
, .

()
. ,
, ,
.

' ' ,
, .
,
.

TortoiseSVN
,
, .
, ,
.
, ,
.
tsvn:lockmsgminsize,
,
.

148

4.30.1.4. TortoiseSVN

4.55. ''
, TortoiseSVN,
.
/
, , .
, / ,
.
.

, .
/ /
, , ,
.

,
.
/
, .
, .

, .

, ,
.

149




, .

,
.

4.30.2.

4.56. ' '



,
, . Suversion ,
. ,
,
Subversion, , , - .
, , .
,
. * ? ,
; . ,
.

, .. ,
, . , ,
, ,
. , . ,
.
, .

150

4.30.2.1.

4.57. ''
. , .
, , ,
.

, - .

, ( ).

, .

.

,
, ( ,
).

(HEAD).

,
, .

, ,
.

151




, , .

, , .

,
.

,
.

, -
, .

4.30.3.

4.58. ' '


, TortoiseSVN
.
, ,
/. ,
, .
.
, ,
.
, ,
. ,
, .
(.).

152



,
TortoiseSVN ,
'' . , TortoiseSVN
, :

(TSVNCache.exe).

. ,
. ,
, ,
.
: , .. ,
, ,
, .
,
.
: , .
10-50 ,
.

DLL ,
, .
.
: ( 1 )
.
: ,
.
, .
mime-.

TortoiseSVN . -
, '',
. ,
.
:
.
: .
, ,
.
,
. , .
, ?
,
, .
USB -, , ,
. , -
.

153



, TortoiseSVN ,
. ,
, , ,
. :
f:\development\SVN\Subversion .
- .
f:\development\SVN\Subversion* ,
f:\development\SVN\Subversion. ,
.
, ,
, ,
.
, ,
:
( )

( ) ( )

. ,
, .
TSVNCache.exe , .
,
, .

, SUBST
SUBST
, ,
subst T: C:\TortoiseSVN\trunk\doc
, , ,
TSVNCache ,
. , subst-
.
-
, subst-.
, , , TSVNCache
, , ,
, .
:
( , )
, . ,
, .
. : ,
.

154



, A: B:
. - , Windows
, ,
.

4.30.3.1.

4.59. ' '


, . :
, ,
.

4.30.4.

155

4.60. ''
-,
.
- ,
servers Subversion.
.
(Runtime Configuration Area) [http://svnbook.red-bean.com/
en/1.5/svn.advanced.confarea.html] Subversion
.
, TortoiseSVN
svn+ssh.
TortoisePlink.exe. Plink, TortoiseSVN,
, DOS
.
. TortoisePlink.exe
bin TortoiseSVN. ..., . :
, , ,
"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe"
,
, , , ,
- Unable to write to standard output (
). ,
Plink. , , TortoisePlink
.
TortoisePlink ,
Plink. Web- PuTTY [http://
www.chiark.greenend.org.uk/~sgtatham/putty/].

156



,
, Pageant. -
PuTTY.
, SSH ,
. , (FAQ)
TortoiseSVN Subversion/TortoiseSVN SSH How-To [http://tortoisesvn.net/ssh_howto].

4.30.5.

4.61. ' '


/,
TortoiseSVN. TortoiseMerge,
TortoiseSVN.
4.10.5, /,
/,
TortoiseSVN.

4.30.5.1.

. ,
, . TortoiseSVN
, %; TortoiseSVN ,
.
.
%base

%bname

157



%mine
,
%yname

. TortoiseSVN
, . , ,
123 , _ :
123 _ :
, ExamDiff Pro:
C:\\\ExamDiff.exe %base %mine --left_display_name:%bname
--right_display_name:%yname
KDiff3:
C:\\\kdiff3.exe %base %mine --L1 %bname --L2 %yname
WinMerge:
C:\\\WinMerge.exe -e -ub -dl %bname -dr %yname %base %mine
Araxis:
C:\\\compare.exe /max /wait /title1:%bname /title2:%yname
%base %mine
svn:keywords , , ,
( revision), ,
- . ,
svn:eol-style = native, LF,
- CR-LF. TortoiseSVN ,

. , .
TortoiseSVN ,
.
, Subversion.
,
.
, TortoiseMerge
.
, Shift+ .

4.30.5.2.
, .
, .
%base

158



%bname

%mine
,
%yname

%theirs
,
%tname

%merged
,
%mname

, Perforce Merge:
C:\\\P4Merge.exe %base %theirs %mine %merged
KDiff3:
C:\\\kdiff3.exe %base %mine %theirs -o %merged
--L1 %bname --L2 %yname --L3 %tname
Araxis:
C:\\\compare.exe /max /wait /3 /title1:%tname /title2:%bname
/title3:%yname %theirs %base %mine %merged /a2
WinMerge (2.8 ):
C:\\\WinMerge.exe %merged

159

4.30.5.3. /

4.62. /


. , Photoshop
.jpg :-) svn:mime-type
.
, .
.bmp Windows. svn:mime-type,
mime-, , text/xml.

4.30.5.4.
( ).
. ,
.diff, .txt.
.diff- , , , .
, Windows, ,
CR-LF.
LF- ,
. , Notepad2 [http://www.flosfreeware.ch/notepad2.html], ,
.

160

4.30.6.

4.63. ' '


TortoiseSVN ,
, .
, .
URL
,
, TortoiseSVN URL
. ,
.
- ,
. , ,
Shift+Delete.

TortoiseSVN .
, , ,
.

TortoiseSVN , ,
. -
, ,
. .

,
.

Subversion
, .

161



, - ,
... ,
?
,
4.1.5, , , .

TortoiseSVN , .
, , ,
.
, ,
. 4000 ,
.
, .

4.30.7.

4.64. ' '


TortoiseSVN,
,
.
. ,
, .

.
, , ,
.

162



,
.
URL
, URL
. , , svnbridge.
, . ,
.
UUID
UUID.
, .
, - UUID . ,
, . ,
.

, ,
- ,
. , , ,
.
( ),
.
()
, , , ,
. ,

. ( )
, ,
.
, 300 (5 )
.
()
, .
, , TortoiseSVN
.
.

, TortoiseSVN
. .

- . ,
.
, ,
.

4.30.7.1.

, . - ,
, .
,
. ,
, ,
.

163



CSV-.
, ,
.

. ,
.

4.30.7.2.

4.65. ' ',

, .

TortoiseSVN, .

, .

, .
, .

, .

164



:
.
:
.

, svn
log -v.
..
, .
.
Max
, .

, . .

4.30.8. ,

4.66. ' '


,
Subversion. ,
3.3, C , ,
.
SubWCRev.exe
, , ,
.

165



,
, . , ,
, , - .
, ,
.

4.67. ' ',

, ...
.
:
-
. ,
,
/ . , , - ,
,
.
-
, ,
. ,
.
-
(, ).
-
--.
-
Subversion ''.
-
(, ).
.
; , TortoiseSVN
6.
,
. ,
6

* - .

166



, Windows, , perl.
, TortoiseSVN.
.
, :
-
PATHMESSAGEFILECWD
-
PATHDEPTHMESSAGEFILECWD
-
PATHDEPTHMESSAGEFILEREVISIONERRORCWD
-
PATHCWD
-
PATHDEPTHREVISIONCWD
-
PATHDEPTHREVISIONERRORCWD
:
PATH
, , .
.
DEPTH
, /.
:
-2
-1
0
1
2
3

svn_depth_unknown ( )
svn_depth_exclude ( )
svn_depth_empty ( )
svn_depth_files ( -)
svn_depth_immediates ( , )
svn_depth_infinity ( )

MESSAGEFILE
, .
UTF-8. -
, .
REVISION
, ,
.

167



ERROR
, . , .
CWD
, .
.
: ,
. ,
, , , ;-)
, Subversion ,
.
DOS,
, .
contrib TortoiseSVN
[http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/hook-scripts]. ( 3, TortoiseSVN
! , TortoiseSVN).

4.30.8.1.
TortoiseSVN COM
.
4.28.2, .
, ,
, , .

4.68.

...
. , ,

168



, .
,
,
.
,
COM,
bugtraq:provideruuid bugtraq:providerparams.
bugtraq:provideruuid
COM UUID IBugtraqProvider,
{91974081-2DC7-4FB1-B3BE-0DE1C8D6CE4E}. ( - UUID
Gurtle [http://code.google.com/p/gurtle/],
Google Code [http://code.google.com/hosting/
]).
bugtraq:providerparams
, IBugtraqProvider.
, IBugtraqProvider,
, .

4.30.9. TortoiseBlame

4.69. TortoiseBlame
, TortoiseBlame, ,
TortoiseBlame.

TortoiseBlame .
, ,
TortoiseBlame
, .

169

, .
,
, .
.
, ,
.

4.30.10.

. ,
, , .

Subversion
HKCU\Software\TortoiseSVN\ConfigDir.
TortoiseSVN.

TSVNCache, HKCU\Software
\TortoiseSVN\CacheTrayIcon DWORD 1.
, .

, TortoiseProc.exe
, HKCU\Software\TortoiseSVN\Debug
DWORD 1.

, - Windows
.
HKCU\Software\TortoiseSVN\ShowContextMenuIcons DWORD
0, , TortoiseSVN
. , 1.

, ,
TortoiseSVN ( , , ...),
HKCU\Software\TortoiseSVN\BlockStatus DWORD 1.
URL
HKCU\Software\TortoiseSVN\UpdateCheckURL URL,
TortoiseSVN , , .
, HKLM HKCU, HKCU
HKLM. , ,
TortoiseSVN, .

, ,
, . , ,
HKCU\Software\TortoiseSVN\AutocompleteRemovesExtensions
DWORD 1.
TortoiseSVN
, TortoiseSVN Windows
'' . ,

170



, , HKCU\Software
\TortoiseSVN\ColumnsEveryWhere DWORD 1.

,
, ,
.
. ,
HKCU\Software\TortoiseSVN\MergeLogSeparator SZ,
.
TortoiseMerge
TortoiseSVN .
, , ( 4.23.2,
), TortoiseMerge
. , HKCU\Software\TortoiseSVN
\DiffBlamesWithTortoiseMerge DWORD 1.

The log dialog highlights the current working copy revision when the log is shown for a file. To do
the same thing for a folder requires a working copy crawl, which is the default action, but it can be
a slow operation for large working copies. If you want to change the operation of this feature you
must create a DWORD registry key at HKCU\Software\TortoiseSVN\RecursiveLogRev.
A value of 0 disables the feature (no highlighting for folders), a value of 1 (default) will fetch the
status recursively (find the highest revision in the working copy tree), and a value of 2 will check the
revision of the selected folder itself, but will not check any child items.
,
,
, , , , ,
,
. ,
. , ,
, ,
, .
, ,
HKCU\Software\TortoiseSVN\AllowUnversionedObstruction DWORD
0.

4.30.11. Subversion
VS.NET 2003 - .svn,
Subversion .
Subversion, VS.NET 2003 frontpage.
: VS 2005 .
1.3.0 Subversion TortoiseSVN,
SVN_ASP_DOT_NET_HACK. , Subversion
_svn .svn. ,
. , .
,
- 4.30.1, .
,
, (FAQ) [http://
tortoisesvn.net/aspdotnethack].

171

4.31.

TortoiseSVN TortoiseMerge , ,
. ,
, .
TortoiseSVN .
, .
CD DVD: http://tortoisesvn.tigris.org/donate.html
, , ,
.

172

5. SubWCRev
SubWCRev - Windows,
Subversion , ,
. ,
.
.

5.1. SubWCRev
, SubWCRev Subversion
, .
, , ,
, . ,
(stdout).
SubWCRev.exe ,
.
SubWCRev [__ __] [-nmdfe]
- . SubWCRev
, .
, .
, SubWCRev ,
URL ,
__ __,
.
, SubWCRev.
, ,
-nm, -n -m.

-n

, SubWCRev ERRORLEVEL
7, .

.

-m

, SubWCRev ERRORLEVEL 8,
.
.

-d

, SubWCRev ERRORLEVEL 9,
.

-f

, SubWCRev
. -
.

-e

, SubWCRev ,
svn:externals, .
- .

-x

, SubWCRev
.

173

SubWCRev

-X

, SubWCRev
, '0X'.

5.1.

5.2.
, SubWCRev ,
:

$WCREV$

$WCDATE$

/
. , :
yyyy-mm-dd
hh:mm:ss.
, strftime(),
: $WCDATE=%a %b %d %I:%M:%S %p$.
[http://www.cppreference.com/stddate/strftime.html].

$WCNOW$

/.
.
/, $WCDATE$.

$WCRANGE$

.
,
.
, - --, 100:200

$WCMIXED$

$WCMIXED?TText:FText$ TText,
, FText, .

$WCMODS$

$WCMODS?TText:FText$ TText,
, FText, .

$WCURL$

URL ,
SubWCRev.

$WCINSVN$

$WCINSVN?TText:FText$ TText,
, FText, .

$WCNEEDSLOCK$

$WCNEEDSLOCK?TText:FText$ TText,
svn:needs-lock,
FText, .

$WCISLOCKED$

$WCISLOCKED?TText:FText$ TText
, FText, .

$WCLOCKDATE$

.
/, $WCDATE$.

$WCLOCKOWNER$

$WCLOCKCOMMENT$

5.2.

174

SubWCRev

,
, , SubWCRev
. $WCINSVN$, $WCNEEDSLOCK$,
$WCISLOCKED$, $WCLOCKDATE$, $WCLOCKOWNER$ $WCLOCKCOMMENT$.

5.3.
,
.
// SubWCRev: testfile.tmpl
char
char
char
char
char
char

*Revision
*Modified
*Date
*RevRange
*Mixed
*URL

=
=
=
=
=
=

"$WCREV$";
"$WCMODS?: $";
"$WCDATE$";
"$WCRANGE$";
"$WCMIXED? : $";
"$WCURL$";

#if $WCMODS?1:0$
#error
#endif
//
SubWCRev.exe
\\\
testfile.tmpl
testfile.txt, testfile.txt :
// SubWCRev: testfile.txt
char
char
char
char
char
char

*Revision
*Modified
*Date
*RevRange
*Mixed
*URL

=
=
=
=
=
=

"3701";
"";
"2005/06/15 11:15:12";
"3699:3701";
" ";
"http://project.domain.org/svn/trunk/src";

#if 1
#error
#endif
//

, ,
. , , ,

, , , , .

5.4. COM-

175

SubWCRev
Subversion ,
COM- SubWCRev. , SubWCRev.object, :

.GetWCInfo

,
. , ,

. - .
true, .
-f. true,
svn:externals.
-e.

.Revision


$WCREV$

.Date

. $WCDATE$.

.Author

, ..
, .

.MinRev

,
$WCRANGE$.

.MaxRev

,
$WCRANGE$.

.HasModifications

True,

.Url

URL ,
GetWCInfo. $WCURL$

.IsSvnItem

True, .

.NeedsLocking

True, svn:needs-lock.

.IsLocked

True, .

.LockCreationDate

, , ,
, .

.LockOwner

, , ,
.

.LockComment

, .

5.3. COM/
, .
// testCOM.js - javascript
// COM/Automation- SubWCRev
filesystem = new ActiveXObject("Scripting.FileSystemObject");
revObject1
revObject2
revObject3
revObject4

=
=
=
=

new
new
new
new

ActiveXObject("SubWCRev.object");
ActiveXObject("SubWCRev.object");
ActiveXObject("SubWCRev.object");
ActiveXObject("SubWCRev.object");

revObject1.GetWCInfo(
filesystem.GetAbsolutePathName("."), 1, 1);
revObject2.GetWCInfo(

176

SubWCRev
filesystem.GetAbsolutePathName(".."), 1, 1);
revObject3.GetWCInfo(
filesystem.GetAbsolutePathName("SubWCRev.cpp"), 1, 1);
revObject4.GetWCInfo(
filesystem.GetAbsolutePathName("..\\.."), 1, 1);
wcInfoString1 = " = " + revObject1.Revision +
"\nMin = " + revObject1.MinRev +
"\nMax = " + revObject1.MaxRev +
"\n = " + revObject1.Date +
"\nURL = " + revObject1.Url + "\n = " +
revObject1.Author + "\n = " +
revObject1.HasModifications + "\nSVN = " +
revObject1.IsSvnItem + "\n = " +
revObject1.NeedsLocking + "\n = " +
revObject1.IsLocked + "\n = " +
revObject1.LockCreationDate + "\n = " +
revObject1.LockOwner + "\n = " +
revObject1.LockComment;
wcInfoString2 = " = " + revObject2.Revision +
"\nMin = " + revObject2.MinRev +
"\nMax = " + revObject2.MaxRev +
"\n = " + revObject2.Date +
"\nURL = " + revObject2.Url + "\n = " +
revObject2.Author + "\n = " +
revObject2.HasModifications + "\nSVN = " +
revObject2.IsSvnItem + "\n = " +
revObject2.NeedsLocking + "\n = " +
revObject2.IsLocked + "\n = " +
revObject2.LockCreationDate + "\n = " +
revObject2.LockOwner + "\n = " +
revObject2.LockComment;
wcInfoString3 = " = " + revObject3.Revision +
"\nMin = " + revObject3.MinRev +
"\nMax = " + revObject3.MaxRev +
"\n = " + revObject3.Date +
"\nURL = " + revObject3.Url + "\n = " +
revObject3.Author + "\n = " +
revObject3.HasModifications + "\nSVN = " +
revObject3.IsSvnItem + "\n = " +
revObject3.NeedsLocking + "\n = " +
revObject3.IsLocked + "\n = " +
revObject3.LockCreationDate + "\n = " +
revObject3.LockOwner + "\n = " +
revObject3.LockComment;
wcInfoString4 = " = " + revObject4.Revision +
"\nMin = " + revObject4.MinRev +
"\nMax = " + revObject4.MaxRev +
"\n = " + revObject4.Date +
"\nURL = " + revObject4.Url + "\n = " +
revObject4.Author + "\n = " +
revObject4.HasModifications + "\nSVN = " +
revObject4.IsSvnItem + "\n = " +
revObject4.NeedsLocking + "\n = " +
revObject4.IsLocked + "\n = " +
revObject4.LockCreationDate + "\n = " +
revObject4.LockOwner + "\n = " +
revObject4.LockComment;

177

SubWCRev

WScript.Echo(wcInfoString1);
WScript.Echo(wcInfoString2);
WScript.Echo(wcInfoString3);
WScript.Echo(wcInfoString4);

178

6. IBugtraqProvider interface
To get a tighter integration with issue trackers than by simply using the bugtraq: properties,
TortoiseSVN can make use of COM plugins. With such plugins it is possible to fetch information directly
from the issue tracker, interact with the user and provide information back to TortoiseSVN about open
issues, verify log messages entered by the user and even run actions after a successful commit to e.g,
close an issue.
We can't provide information and tutorials on how you have to implement a COM object in your preferred
programming language, but we have example plugins in C++/ATL and C# in our repository in the
contrib/issue-tracker-plugins folder. In that folder you can also find the required include
files you need to build your plugin. ( 3, TortoiseSVN ! explains how to access the
repository).

6.1. The IBugtraqProvider interface


TortoiseSVN 1.5 can use plugins which implement the IBugtraqProvider interface. The interface provides
a few methods which plugins can use to interact with the issue tracker.
HRESULT ValidateParameters (
// Parent window for any UI that needs to be
// displayed during validation.
[in] HWND hParentWnd,
// The parameter string that needs to be validated.
[in] BSTR parameters,
// Is the string valid?
[out, retval] VARIANT_BOOL *valid

);

This method is called from the settings dialog where the user can add and configure the plugin. The
parameters string can be used by a plugin to get additional required information, e.g., the URL to the
issue tracker, login information, etc. The plugin should verify the parameters string and show an error
dialog if the string is not valid. The hParentWnd parameter should be used for any dialog the plugin
shows as the parent window. The plugin must return TRUE if the validation of the parameters string
is successful. If the plugin returns FALSE, the settings dialog won't allow the user to add the plugin to
a working copy path.
HRESULT GetLinkText (
// Parent window for any (error) UI that needs to be displayed.
[in] HWND hParentWnd,
// The parameter string, just in case you need to talk to your
// web service (e.g.) to find out what the correct text is.
[in] BSTR parameters,
// What text do you want to display?
// Use the current thread locale.
[out, retval] BSTR *linkText

);

The plugin can provide a string here which is used in the TortoiseSVN commit dialog for the button
which invokes the plugin, e.g., "Choose issue" or "Select ticket". Make sure the string is not too long,

179

IBugtraqProvider interface
otherwise it might not fit into the button. If the method returns an error (e.g., E_NOTIMPL), a default
text is used for the button.
HRESULT GetCommitMessage (
// Parent window for your provider's UI.
[in] HWND hParentWnd,
// Parameters for your provider.
[in] BSTR parameters,
[in] BSTR commonRoot,
[in] SAFEARRAY(BSTR) pathList,
// The text already present in the commit message.
// Your provider should include this text in the new message,
// where appropriate.
[in] BSTR originalMessage,
// The new text for the commit message.
// This replaces the original message.
[out, retval] BSTR *newMessage

);

This is the main method of the plugin. This method is called from the TortoiseSVN commit dialog when
the user clicks on the plugin button. The parameters string is the string the user has to enter in the
settings dialog when he configures the plugin. Usually a plugin would use this to find the URL of the issue
tracker and/or login information or more. The commonRoot string contains the parent path of all items
selected to bring up the commit dialog. Note that this is not the root path of all items which the user has
selected in the commit dialog. The pathList parameter contains an array of paths (as strings) which
the user has selected for the commit. The originalMessage parameter contains the text entered in
the log message box in the commit dialog. If the user has not yet entered any text, this string will be
empty. The newMessage return string is copied into the log message edit box in the commit dialog,
replacing whatever is already there. If a plugin does not modify the originalMessage string, it must
return the same string again here, otherwise any text the user has entered will be lost.

6.2. The IBugtraqProvider2 interface


In TortoiseSVN 1.6 a new interface was added which provides more functionality for plugins. This
IBugtraqProvider2 interface inherits from IBugtraqProvider.
HRESULT GetCommitMessage2 (
// Parent window for your provider's UI.
[in] HWND hParentWnd,
// Parameters for your provider.
[in] BSTR parameters,
// The common URL of the commit
[in] BSTR commonURL,
[in] BSTR commonRoot,
[in] SAFEARRAY(BSTR) pathList,
// The text already present in the commit message.
// Your provider should include this text in the new message,
// where appropriate.
[in] BSTR originalMessage,
// You can assign custom revision properties to a commit
// by setting the next two params.

180

IBugtraqProvider interface
// note: Both safearrays must be of the same length.
//
For every property name there must be a property value!
// The content of the bugID field (if shown)
[in] BSTR bugID,
// Modified content of the bugID field
[out] BSTR * bugIDOut,
// The list of revision property names.
[out] SAFEARRAY(BSTR) * revPropNames,
// The list of revision property values.
[out] SAFEARRAY(BSTR) * revPropValues,
// The new text for the commit message.
// This replaces the original message
[out, retval] BSTR * newMessage

);

This method is called from the TortoiseSVN commit dialog when the user clicks on the plugin button.
This method is called instead of GetCommitMessage(). Please refer to the documentation for
GetCommitMessage for the parameters that are also used there. The parameter commonURL is the
parent URL of all items selected to bring up the commit dialog. This is basically the URL of the
commonRoot path. The parameter bugID contains the content of the bug-ID field (if it is shown,
configured with the property bugtraq:message). The return parameter bugIDOut is used to fill the
bug-ID field when the method returns. The revPropNames and revPropValues return parameters
can contain name/value pairs for revision properties that the commit should set. A plugin must make
sure that both arrays have the same size on return! Each property name in revPropNames must also
have a corresponding value in revPropValues. If no revision properties are to be set, the plugin must
return empty arrays.
HRESULT CheckCommit (
[in] HWND hParentWnd,
[in] BSTR parameters,
[in] BSTR commonURL,
[in] BSTR commonRoot,
[in] SAFEARRAY(BSTR) pathList,
[in] BSTR commitMessage,
[out, retval] BSTR * errorMessage
);
This method is called right before the commit dialog is closed and the commit begins. A plugin can use this
method to validate the selected files/folders for the commit and/or the commit message entered by the user.
The parameters are the same as for GetCommitMessage2(), with the difference that commonURL is
now the common URL of all checked items, and commonRoot the root path of all checked items. The
return parameter errorMessage must either contain an error message which TortoiseSVN shows to
the user or be empty for the commit to start. If an error message is returned, TortoiseSVN shows the error
string in a dialog and keeps the commit dialog open so the user can correct whatever is wrong. A plugin
should therefore return an error string which informs the user what is wrong and how to correct it.
HRESULT OnCommitFinished (
// Parent window for any (error) UI that needs to be displayed.
[in] HWND hParentWnd,
// The common root of all paths that got committed.
[in] BSTR commonRoot,

181

IBugtraqProvider interface

// All the paths that got committed.


[in] SAFEARRAY(BSTR) pathList,
// The text already present in the commit message.
[in] BSTR logMessage,
// The revision of the commit.
[in] ULONG revision,
// An error to show to the user if this function
// returns something else than S_OK
[out, retval] BSTR * error

);

This method is called after a successful commit. A plugin can use this method to e.g., close the
selected issue or add information about the commit to the issue. The parameters are the same as for
GetCommitMessage2.
HRESULT HasOptions(
// Whether the provider provides options
[out, retval] VARIANT_BOOL *ret
);
This method is called from the settings dialog where the user can configure the plugins. If a plugin
provides its own configuration dialog with ShowOptionsDialog, it must return TRUE here,
otherwise it must return FALSE.
HRESULT ShowOptionsDialog(
// Parent window for the options dialog
[in] HWND hParentWnd,
// Parameters for your provider.
[in] BSTR parameters,
// The parameters string
[out, retval] BSTR * newparameters

);

This method is called from the settings dialog when the user clicks on the "Options" button that is shown
if HasOptions returns TRUE. A plugin can show an options dialog to make it easier for the user to
configure the plugin. The parameters string contains the plugin parameters string that is already set/
entered. The newparameters return parameter must contain the parameters string which the plugin
constructed from the info it gathered in its options dialog. That paramameters string is passed to all
other IBugtraqProvider and IBugtraqProvider2 methods.

182

A.
(, FAQ)
TortoiseSVN ,
. (FAQ)
[http://tortoisesvn.tigris.org/faq.html], ,
TortoiseSVN <dev@tortoisesvn.tigris.org>
<users@tortoisesvn.tigris.org>.
[http://issues.tortoisesvn.net],
, ,
. , ,
, , , - .
, , ,
- . <users@tortoisesvn.tigris.org>
TortoiseSVN.
TortoiseSVN,
<dev@tortoisesvn.tigris.org>.

183

B. ...
/,
TortoiseSVN.

B.1. /
/ TortoiseSVN
.... / ,
.
- .
, /, ,
, , .
, SVN
, SVN
.

B.2.
.
TortoiseSVN, Subversion,
.

B.2.1.
,
-,
.
hooks,
, . pre-commit.tmpl ,
, ,
. , /
; .
, ,
TortoiseSVN. , ,

184

...
- .
, . , TortoiseSVN
, , ,
.

B.2.2.
TortoiseSVN .
- tsvn:logminsize.
, TortoiseSVN ,
, .
, 4.17,

B.3.
TortoiseSVN .
,
, .
TortoiseSVN
, . ,
,
.

B.4. ()
B.4.1.
, ,
, - . ,
.
1. , .
, .
2. TortoiseSVN . ,
100
.
3. , . ,
, , Shift, . :
, .
,
.
4. , ,
,
. .
. ,
.

185

...

B.4.2.
.
, .
1. TortoiseSVN ...1.
2. : URL /, ,
. URL URL
.
3. . ,
, .
4. , URL, ":" .
5. , ,
, .
6. .
. ,
.

B.4.3. svndumpfilter
TortoiseSVN ,
.
.
- , .
, .
.
-
Subversion svnadmin. , ,
(Repository Maintenance) [http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html]
Subversion.

B.5. Compare two revisions of a file or folder


If you want to compare two revisions in an item's history, for example revisions 100 and 200 of the same
file, just use TortoiseSVN Show Log to list the revision history for that file. Pick the two revisions
you want to compare then use Context Menu Compare Revisions.
If you want to compare the same item in two different trees, for example the trunk and a branch, you can
use the repository browser to open up both trees, select the file in both places, then use Context Menu
Compare Revisions.
If you want to compare two trees to see what has changed, for example the trunk and a tagged release,
you can use TortoiseSVN Revision Graph Select the two nodes to compare, then use Context
Menu Compare HEAD Revisions. This will show a list of changed files, and you can then select
individual files to view the changes in detail. You can also export a tree structure containing all the
changed files, or simply a list of all changed files. Read 4.10.3, for more
information. Alternatively use Context Menu Unified Diff of HEAD Revisions to see a summary
of all differences, with minimal context.

186

...

B.6.
, ,
. ,
( ) . , ,
, . 3 ,
.

B.6.1. svn:externals
Set the svn:externals property for a folder in your project. This property consists of one or more
lines; each line has the name of a sub-folder which you want to use as the checkout folder for common
code, and the repository URL that you want to be checked out there. For full details refer to 4.18,
.
. , Subversion
.
.
.
, ,
, .
,
,
.
, , .
,
.

B.6.2.
, ,
Subversion.
TortoiseSVN SVN ... , .
, .
.
. ,
, .

B.6.3.
,
, ,
,
. :
C:\\1
C:\\2
C:\\3
C:\\
, ..\..\
\_DSP.

187

...
,
, ,
,
. , D:
\Documents\Framework C:\Documents and Settings\{login}\My Documents
\framework,
SUBST X: "D:\Documents\framework"
, .
.
#include "X:\superio\superio.h"
,
Windows, ,
, .
, .

B.7.
,
, TortoiseProc.

TortoiseProc.exe /command:repobrowser /path:"url//"
, URL .

B.8. ,
, ,
- , ? ,
IDE, ,
.
, , ,
TortoiseSVN ... . () , .
, :
1. Shift
TortoiseSVN ( ) , /
, .
2. TortoiseSVN SVN ... .
3. / , .

B.9.
,
.svn, . 4.26.1,
- , .

188

...

B.10.
, , ?
- Windows!
, 2.

.. , :) - .

189

C.

/, ,
TortoiseSVN .

C.1. TortoiseSVN
TortoiseSVN MSI-, ,
MSI- .
, , 314934
Microsoft: http://support.microsoft.com/?kbid=314934.
TortoiseSVN 1.3.0 Computer
Configuration, User Configuration, DLL
CRT MFC, , .
TortoiseSVN ,
MFC CRT 8 Microsoft
, TortoiseSVN
.

C.2.
TortoiseSVN , .
, , .

C.1.
, ,
,
. , ,
, .
TortoiseSVN 1.4.0
. HKCU\Software\TortoiseSVN
\UpdateCheckURL ( ) URL,
. :

190

1.4.1.6000
TortoiseSVN!
http://192.168.2.1/downloads/TortoiseSVN-1.4.1.6000-svn-1.4.0.msi
- . ,
TortoiseSVN. -
, . ,
, .
! - URL . URL ,
.
-, MSI-. URL
- , ,
. MSI,
MSI- .

C.3.
SVN_ASP_DOT_NET_HACK
1.4.0, TortoiseSVN
SVN_ASP_DOT_NET_HACK,
, ,
, .
.
TortoiseSVN
ASPDOTNETHACK TRUE. , :
msiexec /i TortoiseSVN-1.4.0.msi ASPDOTNETHACK=TRUE

C.4.
1.5.0, TortoiseSVN ( )
. ,
,
,
.
, . ,
,
, ,
TortoiseSVN!
, ,

:
HKEY_CURRENT_USER\Software\TortoiseSVN
\ContextMenuEntriesMaskLow HKEY_CURRENT_USER\Software\TortoiseSVN
\ContextMenuEntriesMaskHigh.
DWORD,
- . ,
.

0x0000000000000001

0x0000000000000002

191

0x0000000000000004

0x0000000000000008

0x0000000000000010

0x0000000000000020

0x0000000000000040

0x0000000000000080

0x0000000000000100

0x0000000000000200

0x0000000000000400

0x0000000000000800

0x0000000000001000

0x0000000000002000

0x0000000000004000

0x0000000000008000

0x0000000000010000

0x0000000000020000

0x0000000000040000

0x0000000000080000

0x0000000000100000

0x0000000000200000

0x0000000000400000

0x0000000000800000

(Blame)

0x0000000001000000

0x0000000002000000

0x0000000004000000

0x0000000008000000

0x0000000010000000

0x0000000020000000

0x0000000040000000

URL

0x0000000080000000

0x2000000000000000

0x4000000000000000

0x8000000000000000

C.1.
: ,
, , :
0x0000000000080000
+ 0x0000000080000000
+ 0x2000000000000000

192


= 0x2000000080080000

DWORD
(0x80080000)

HKEY_CURRENT_USER\Software\TortoiseSVN\ContextMenuEntriesMaskLow,
DWORD (0x20000000) - HKEY_CURRENT_USER\Software
\TortoiseSVN\ContextMenuEntriesMaskHigh.
, , .

193

D.
TortoiseSVN
TortoiseSVN
,
(,
).

, TortoiseSVN
, ,
TortoiseSVN .
, ,
Subversion .

D.1. TortoiseSVN
,

TortoiseSVN,

TortoiseProc.exe. /command:abcd, abcd


- .
, /path:"\".
'' /command:abcd '' /
path:"\".
(,
) /path ,
*.
TortoiseSVN
. TortoiseSVN 1.5.0, /
notempfile .
, , ,
,
. .
,
TortoiseSVN.
,
/configdir:"\\\".
, .
To close the progress dialog at the end of a command automatically without using the permanent setting
you can pass the /closeonend parameter.
/closeonend:0
/closeonend:1 ,
/closeonend:2 ,
/closeonend:3 , ,

194

TortoiseSVN
/closeonend:4 , ,

,
TortoiseProc.exe. , /command:abcd.
/command .

:about

' '. ,
.

:log

Opens the log dialog. The /path specifies the file or folder for which the log
should be shown. Three additional options can be set: /startrev:xxx,
/endrev:xxx and /strict

:checkout

. /path ,
/url URL, .

:import

. /path ,
.

:update

/path (HEAD).
/rev, , ,
.
, /rev:1234.
: /nonrecursive /ignoreexternals.

:commit

. /path
. /
logmsg ,
. ,
, /
logmsgfile:, ,
. 'ID ' ( ,
)
/bugid:" id ".

:add

/path .

:revert

. /path
,
.

:cleanup


/path.

:resolve

, /path, .
/noquestion, ,
.

:repocreate

, /path

:switch

. /path
.

:export

/path . /path
, URL,
, /path.

:merge

. /path .
: /
fromurl:URL, /revrange:.
: /fromurl:URL, /
tourl:URL, /fromrev:xxx /torev:xxx.
.

195

TortoiseSVN

:mergeall

' '. /path .

:copy

/. /path
, /.
/url URL.
/logmsg
, /. ,

, /logmsgfile:, ,
.

:settings

:remove

(-) /path - .

:rename

, /path.
.
, /
noquestion.

:diff

TortoiseSVN
. /path .
/path2, .
/path2 , ,
/path .
/startrev:xxx /endrev:xxx.
/blame , /path2 - ,
,
.

:showcompare

URL ,
(
unified), , ,
URL ,
.
url1, url2, revision1 revision2
. pegrevision, ignoreancestry, blame
unified .

:conflicteditor

TortoiseSVN
, ,
/path.

:relocate

. /path
, .

:help

:repostatus

. /path
.

:repobrowser

, URL
, /path /path
URL. ,
,
/rev:xxx. /rev:xxx ,
(HEAD). /path
URL, /projectpropertiespath:/
// ,
.

196

TortoiseSVN

:ignore

/path , ..
svn:ignore.

:blame

, /path.
/startrev /endrev,

, .
/line:nnn, TortoiseBlame ,
.
/ignoreeol (
), /ignorespaces (
) /ignoreallspaces (
).

:cat

URL , /
path, , /savepath:.
/revision:xxx.
.

:createpatch

, /path

:revisiongraph

, /path.

:lock

, /path.
,
.

:unlock

, /path.

:rebuildiconcache

Windows. ,
Windows .
( )
. , /
noquestion.

:properties

, /
path.

D.1.
( ):
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"test log message" /closeonend:0
TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend
TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend:0

D.2. TortoiseIDiff
- ,
. TortoiseIDiff.exe.

197

TortoiseSVN
,
.

:left

, .

:lefttitle

.
.

:right

, .

:righttitle

.
.

:overlay

,
(-).

:fit

,
.

:showinfo

D.2.
( ):
TortoiseIDiff.exe /left:"c:\images\img1.jpg" /lefttitle:"image 1"
/right:"c:\images\img2.jpg" /righttitle:"image 2"
/fit /overlay

198

E.


Subversion,
Subversion - (Command Line Interface - CLI).
, TortoiseSVN , ,
,
TortoiseSVN.

, ,
TortoiseSVN, , TortoiseSVN ,
Subversion .
, TortoiseSVN,
, TortoiseSVN
Subversion. , .

E.1.
URL URL,
URL http://tortoisesvn.tigris.org/svn/
tortoisesvn/trunk. ,
C:\TortoiseSVN\trunk.

- , TortoiseSVN Windows,
.
, .
,
TortoiseSVN. [ ]
.

E.2. TortoiseSVN
E.2.1.
svn checkout [-N] [--ignore-externals] [-r rev] URL
, -N.
, --ignore-externals.
, URL -r.

E.2.2.

199



svn info URL__
svn update [-r rev]

Subversion. TortoiseSVN (HEAD) ,

.
,
, TortoiseSVN .
.
, .

E.2.3.
svn info URL__
svn update [-r rev] [-N] [--ignore-externals]
, -N.
, --ignore-externals.

E.2.4.
TortoiseSVN Subversion. -
, ,
. ,
, .
svn status -v
, TortoiseSVN
, .
Subversion, svn
status .
- ,
.
svn add ...
, Subversion .
, , , TortoiseSVN
. ,
(-N),
.
svn commit -m "" [-N] [--no-unlock] ...
.
.
, --no-unlock.

E.2.5.

200



svn diff
'' ,
.
. , TortoiseSVN
. TortoiseSVN TortoiseMerge ( )
,
.
TortoiseSVN, ,
. TortoiseSVN
, .

E.2.6.
svn log -v -r 0:N --limit 100 [--stop-on-copy]

svn log -v -r M:N [--stop-on-copy]


, TortoiseSVN 100 , --limit.
API,
100 .
/,
--stop-on-copy.

E.2.7.
svn status -v

svn status -u -v
.
, , ,
, -u.
, TortoiseSVN
, .
Subversion, svn
status .

E.2.8.
- , TortoiseSVN.
.
TortoiseSVN :
svn info URL__
svn log -v URL
URL - , .

E.2.9.
svn info URL__

201



svn list [-r rev] -v URL
svn info : ,
. .
, ,
.
svn list , URL .

E.2.10.
. TortoiseMerge
/ , ,
.

E.2.11.
svn resolved

E.2.12.
svn rename _ _

E.2.13.
svn delete

E.2.14.
svn status -v
- , ,
. ,
, .
, Subversion .
, TortoiseSVN (-R)
. ,
.
svn revert [-R] ...

E.2.15.
svn cleanup

E.2.16.
svn status -v
- , ,
. ,
.

202



svn lock -m "" [--force] ...
.
.
, --force.

E.2.17.
svn unlock

E.2.18. /
svn copy -m "" URL URL

svn copy -m "" URL@rev URL@rev

svn copy -m "" URL


/ . 3 :
(HEAD)


.
.
.

E.2.19.
svn info URL__
svn switch [-r rev] URL

E.2.20.
svn merge [--dry-run] --force _URL@revN _URL@revM
--dry-run.
svn diff _URL@revN _URL@revM
. ,
.

E.2.21.
svn export [-r rev] [--ignore-externals] URL _
, ,
.

203



Subversion,
.
, TortoiseSVN, - ,
. /.
, , -ignore-externals.

E.2.22.
svn switch --relocate _URL _URL

E.2.23.
svnadmin create --fs-type fsfs

E.2.24.
svn add ...
, TortoiseSVN ,
.

E.2.25.
svn import -m URL
.
.

E.2.26. (Blame)
svn blame -r N:M -v
svn log -r N:M
TortoiseBlame ,
.
, .

E.2.27.
svn propget svn:ignore > tempfile
{ tempfile}
svn propset svn:ignore -F tempfile
svn:ignore , ,
, .

E.2.28.
svn diff > -

204



TortoiseSVN ,
.

E.2.29.
- ,
. , TortoiseMerge,
Subversion.

205

F.


TortoiseSVN.

F.1.
Subversion,
Subversion. ,
TortoiseSVN , .
,
.

,

, .
, .

( ),
( ),
( , ).

,
, , . ,
, ,
.
,
.

Subversion ,
, .
TortoiseSVN ,
.

,
svn:needs-lock. , Subversion 1.4.0
, svn:needs-lock Subversion,
, .
1.4.0, TortoiseSVN , -. , Subversion

206


, svn:needs-lock ,
.

,
.

,
,
svn:ignore . .

. , ,
. .
Subversion none ( ),
. ,
.
Subversion. ,
. Subversion
- . Subversion.
TortoiseSVN ( ),
,
. , ,
, ,
.
, .
- , , Windows, 15-.
4 Windows, 11 .
, TortoiseSVN
(TM) ,
.
, .
, ,
.
-- , ,
.
, 13 .
, .
, 14 .
, .

207

G.
Svnserve SSH
, ,
Subversion TortoiseSVN svn+ssh.
, SSH, ,
Subversion.
SSH, Subversion,
,
Subversion SSH.
SSH
Subversion,
Subversion.
, Subversion,
, . :
svnserve SSH.
,
(Marc Logemann),
www.logemann.org [http://www.logemann.org/2007/03/13/subversion-tortoisesvn-ssh-howto/]
Windows
(Thorsten Mller). , !

G.1. Linux-
SSH , ,
OpenSSH. . , :
ps xa | grep sshd
ssh.
: Subversion
./configure, Subversion bin /usr/local
. SSH,
, , SSH, svnserve
. , /usr/local/bin
PATH, /usr/
sbin, , PATH.
, , SSH :
which svnserve
, svnserve .
, svn:
useradd -m svnuser
, .

208


Svnserve SSH

G.2. Windows-
SSH Cygwin, : http://pigtail.net/LRP/printsrv/cygwinsshd.html
Windows svnuser,
. ,
.
, Cygwin :
mkpasswd -l > /etc/passwd

G.3. SSH
TortoiseSVN
, SSH Windows, :
http://www.chiark.greenend.org.uk/~sgtatham/putty/ (download)
Putty, Plink, Pageant Puttygen.

G.4. OpenSSH
.
. - PuTTYgen ,
PuTTY. -
OpenSSH ssh-keygen,
PuTTY .

G.4.1. ssh-keygen
root svnuser :
ssh-keygen -b 1024 -t dsa -N _ -f _
( ) .
SSH2 DSA 1024- .
ls -l _*
, _ _.pub. , .pub
, - .
.ssh
svnuser:
cat _.pub >> /home/svnuser/.ssh/authorized_keys
, ,
putty. ,
. ,
, PuTTYgen Conversions Import key.
_, , ,
. Save private key
_.PPK.

209


Svnserve SSH

G.4.2. PuTTYgen
PuTTYgen -/- .
.ssh
svnuser:
cat _.pub >> /home/svnuser/.ssh/authorized_keys

G.5. PuTTY
PuTTY. Session
ip- Host name (or IP address), (connection
type) - SSH SvnConnection ,
. SSH SSH (preferred SSH
protocol version) 2 Auth .PPK,
. Sessions Save.
SvnConnection (saved sessions).
Open telnet.
svnuser (user name) ,
.
, /etc/sshd_config .
SSH.
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

G.6. SSH TortoiseSVN


, SSH.
, SSH- svnserve.
/home/svnuser/.ssh/authorized_keys ,
Subversion , svnuser.
: Subversion ,
, , .
: , , .
command="svnserve -t -r <>
--tunnel-user=<>",
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,
no-pty ssh-rsa <> <>
, .
<> , .
URL. ,
Windows, , c:/svn/reposroot.
,
, repos.
<> svn, .
svnserve svnserve.conf.

210


Svnserve SSH
<> , .
<> ,
svn .
Windows TortoiseSVN
. URL, :
svn+ssh://svnuser@SvnConnection/repos
URL? svn+ssh TortoiseSVN
. ,
svnuser. @ PuTTY.
, , ip- . ,
,
authorized_keys.
.
, SSH- TortoiseSVN.
: TortoiseSVN
Plink. ,
, .
Unable to write to standard output ( ),
Plink TortoiseSVN.
, Plink.

G.7. SSH
URL TortoiseSVN - PuTTY.
SvnConnection PuTTY
Connection - Data Auto login user, , svnuser.
PuTTY URL TortoiseSVN:
svn+ssh://SvnConnection/repos
PuTTY SvnConnection SSH,
TortoiseSVN (TortoisePlink.exe). .
PuTTY , ,
,
. , ,
.
Pageant . PuTTY
, Pageant. ,
; PuTTY
, , .
Pageant , PuTTY, Plink, TortoisePlink
PuTTY SSH,
, Pageant, .
Pageant .
, PuTTY . Pageant
,
PuTTY. ,
, .

211


Svnserve SSH
,
Pageant Windows. ,
, Pageant.exe
SSH - URL TortoiseSVN:
svn+ssh://svnuser@100.101.102.103/repos
svn+ssh://svnuser@mydomain.com/repos
, PuTTY, IP- ( )
. , ,
. TortoisePlink.exe
Plink PuTTY, TortoiseSVN
, Pageant.
, , PuTTY
. PuTTY,
. , HKEY_CURRENT_USER
\Software\SimonTatham\Putty\Sessions\Default%20Settings\HostName

212


BDB

Berkeley DB.
,
. 1.2
.

FSFS

Subversion
.
. ,
1.2.

GPO

SVN

Subversion.

svnserve.

Subversion,

(Blame)

.
,

, , .

TortoiseBlame /

.

(BASE)


. ,
, .
(HEAD) .

,

, ,
.

(HEAD)

Subversion,
.
.

.
.

(Patch)


, '' Subversion
,
.
,
- (
) .
-

, . ,
,
.

213

Subversion,

.

Subversion
.

.
.

,
, .
Subversion ,

.
,
.

Subversion
. ,
:
.
, ,
.

Subversion
,

.

,
,
.
-

,
, ,
.
Subversion .

Subversion:
,
. -
,

. ,

, .

-- ,
, ,

, .
,
.
,
.

, -
,

214


,
, URL
.
:
,
,
. , ,
.

, ,
,
.
,
.

. ,
, .


.
.
,
, N.
,
, .

, Subversion
, -
, - .
,
. Subversion
, svn:eol-style.
TortoiseSVN ,
tsvn:logminsize.
.

(revprop)

,
.
,
svn:date svn:author svn:log, /
, , ,
. ,
,
.

,

.
,
.

.
TortoiseSVN.

Subversion
,
. -

215


,
, .

(
),
. , ,
,
. ,

.

,
,
(, ,
TortoiseMerge).
.
,
.

Subversion
,
.

- ,
. ,

,
,
.

,
, .svn.

216

Symbols

, 194, 197
, 31
, 123
, 99
, 123
, 42
, 117
-, 20
, 86
, 190
, 102, 187
, 102
, 93, 185
, 116
, 44
, 142
, 128
, 128
, 65
, 190, 191
, 126
, SUBST, 154
, 86
., 43
Windows, 32
, 17
, 67
, 74
, 121
, 141
, 60
, 88
, 46, 48
, 173
, 92
, 63, 186
URL, 135
, 43
, 45
, 85
, 85
, 67
, 199
, 165
, 97
Subversion, 5
, 62
, 194, 197
, 40
, 32, 190
, 9, 56

, 56
, 116
, 86
, 105, 126
, 162
, 20
, 86, 105
, 34
, 141
' ', 133
/, 88
, 173
, 54, 185
, 126
Windows, 1
, 41
, 187
, 121
, 45
, 86, 105
, 93, 185
, 191
, 185
, 185
, 48
, 136
, 115
, 188
, 95
.svn, 171
_svn, 171
, 135
, 3
, 91, 126, 184
, 86
, 107
, 135
, 91, 184
, 86
, 41
, 41
, 179
, 97
, 54
, 105
, 60, 206
, 123
, 40
, 206
, 190
, 190
, 3
, 1
ASP, 191
, 187
, 60
, 65
, 140

217


, 191
, 184
UNC, 17
, 10
, 134, 188
(), 43
, 190
, 81, 121
, 13, 128
/, 75
, 170
, 19
, 184
, 95
Subversion, 96
TortoiseSVN, 100
, 100
, 75
_, 75
, 135
-, 155
, 17
, 136, 136
, 136, 179
, 20, 165
,
, 20
, 108
, 111
, 112
, 109
, 3
, 46
, 16
TortoiseSVN, 16
, 16
, 184
, 184
, 67
, 67
, 89
, 31
, 81
, 84
, 82
, 186
, 126
, 140
, 20
TortoiseSVN, 20
, 20
, 77
, 60, 63
, 60
--, 117
, 90, 90
, 188
, 56

, 89
, 1
, 3
, 48
, 76
, 5, 43
, 142
, 133
, 82
, 3
, 188

Apache, 27

CLI, 199
COM-, 173, 179
COM- SubWCRev, 175
compare folders, 186

FAQ, , 183

GPO, 190

IBugtraqProvider, 179

mod_authz_svn, 29, 31
msi, 190

NTLM, 33

SASL, 25
SSL, 35
SSPI, 33
SubWCRev, 173
SVNParentPath, 30, 31
SVNPath, 30
svnserve, 22, 23
SVN_ASP_DOT_NET_HACK, 191

TortoiseIDiff, 84

URL , 135

ViewVC, 140

218


VS2003, 191

WebDAV, 27
WebSVN, 140

219