%!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: cvsclient.dvi %%Pages: 18 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments %DVIPSCommandLine: dvips cvsclient.dvi -o cvsclient.ps %DVIPSParameters: dpi=300, compressed, comments removed %DVIPSSource: TeX output 1996.05.06:0522 %%BeginProcSet: texc.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 39158280 55380996 1000 300 300 (cvsclient.dvi) @start /Fa 3 119 df 99 D115 D118 D E /Fb 34 121 df<49B4FC011F13C090387F81E0EBFC013901F807F01203EA07F0A4EC01C091C8 FCA3EC3FF8B6FCA33807F003B3A33A7FFF3FFF80A3212A7FA925>12 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46 D<130E131E137EEA07FE12FFA2 12F81200B3ABB512FEA317277BA622>49 DII<140FA25C5C5C5C5BA2EB03BFEB073F130E131C133C1338137013E0EA01C0 EA038012071300120E5A5A5A12F0B612F8A3C7EA7F00A890381FFFF8A31D277EA622>I< 00181303381F801FEBFFFE5C5C5C14C091C7FC001CC8FCA7EB7FC0381DFFF8381F80FC38 1E003F121CC7EA1F8015C0A215E0A21218127C12FEA315C05A0078EB3F80A26CEB7F0038 1F01FE6CB45A000313F0C613801B277DA622>II<1238123E003FB512F0A34814E015C0A215 803970000F00141E5C48133814785CC6485A495A5C130749C7FCA25B131E133EA2137EA2 137C13FCA41201A8EA00701C297CA822>I<91387FE003903907FFFC07011FEBFF0F9039 7FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127F A290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F0 90397FF007C0011FB512800107EBFE009038007FF028297CA831>67 D69 D76 DI82 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00 C7FCA4EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007EEBDFC0393F839FFC38 1FFE0F3803FC031E1B7E9A21>97 D99 DIII<9038FF80 F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F 137E6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14 E06C14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806C B5120038007FF01E287E9A22>II<1207EA1FC0EA3FE0A5 EA1FC0EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80F C49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B 7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0 B039FFFE3FFFA3201B7D9A25>II<38FFE1FE9038EFFF809038FE0FE0390F F803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F8 07F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<90383F 80703901FFE0F03803F079380FE01D381F800F123FEB00075AA2127E12FEA8127FA27E13 80001F130F380FC01F3807F0773801FFE738007F87EB0007A9EC7FFFA320277E9A23>I< 38FFC1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>I< 3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C13 E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FFC0 00C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000AD 1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F1307 B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA3390F F000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149E EB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<39FFFC1FFEA33907F0038038 03F8079038FC0F003801FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFE EB38FFEB787F9038F03F803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23> 120 D E /Fc 1 16 df15 D E /Fd 81 126 df34 DI<13C01201A3EA07F0EA1FFC487E EA7DDF3871C780EAF1C3EAE1C7A338F1C0001279127F6C7EEA0FF8EA03FC6C7E13CFEBC7 80EA61C312F1A212E1EAF1C73871CF00EA7DDFEA3FFEEA1FF8EA07F0EA01C0A312001124 7D9F18>I<1238127C127EA2123E120EA3121E123C127812F812F012C0070E789B18>39 D<137013F01201EA03C0EA0780EA0F00121E121C123C123812781270A212F05AA87E1270 A212781238123C121C121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F0 12787E7E7EEA0780120313C0120113E01200A213F01370A813F013E0A2120113C0120313 801207EA0F00121E5A5A5A12600C247C9F18>I<136013F0A7387FFFC0B512E0A26C13C0 3800F000A7136013147E9718>43 D<123C127E127FA3123F120F120E121E127C12F81270 080C788518>I<387FFFC0B512E0A26C13C013047E8F18>I<127812FCA412780606778518 >I<1303EB0780130FA214005BA2133EA2133C137CA25BA25B1201A2485AA2485AA25B12 0FA248C7FCA2121E123EA25AA2127812F8A25A126011247D9F18>IIIII<131F5B1377A213E71201 13C7EA038712071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C 7F9B18>I<383FFF80A30038C7FCA8EA3BFCEA3FFE7F383E0780383803C0380001E01300 A2126012F0130100E013C0EAF003387C0F80383FFF006C5AEA07F8131C7E9B18>I<137E 48B4FC00071380380FC3C0EA1F03123C383801800078C7FC1270A2EAF3F8EAEFFEB5FC38 FE0F8038F803C0EAF00114E01300A312701301007813C0EA3C03381E0F80380FFF006C5A EA03F8131C7E9B18>I<12E0B512E0A338E00380130738000F00131E5B13381378137013 F05B12015BA212035BA3120790C7FCA7131D7E9C18>III<127812FCA412781200A8127812FCA412780614779318>I<123C127EA4123C1200A8 1238127C127EA3123E120E121E123C127812F01260071A789318>I<14C0EB03E01307EB 1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC 6C7EEB3F80EB1FC0EB07E01303EB00C013187E9918>I<387FFFC0B512E0A3C8FCA4B512 E0A36C13C0130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1F C0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E99 18>II<137013F8A213D8A2EA01DCA3138CEA038E A4EA0707A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18> 65 DI<3801 FCE0EA03FEEA07FFEA0F07EA1E03EA3C01EA78001270A200F013005AA87E007013E0A212 78EA3C01001E13C0EA0F073807FF806C1300EA01FC131C7E9B18>IIII<3801F9C0EA07FF5AEA1F0FEA1C03123C EA78011270A200F0C7FC5AA5EB0FF0131F130F38F001C0127013031278123CEA1C07EA1F 0FEA0FFFEA07FDEA01F9141C7E9B18>I<387F07F038FF8FF8387F07F0381C01C0A9EA1F FFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>II<3801FFC0A338000E00B2126012F0131E5B EA7FFC6C5AEA1FE0121C7D9B18>I 76 D<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A213 00A638FE03F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA2 13E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18> IIIII<3807F9C0EA1FFF5AEA7C0FEA7003EAF00112E0A290C7 FC7E1278123FEA1FF0EA0FFEEA01FF38001F80EB03C0EB01E01300A2126012E0130100F0 13C0EAFC07B512801400EAE7FC131C7E9B18>I<387FFFF8B5FCA238E07038A400001300 B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B2001E13F0000E13E0EA0F013807C7 C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0001C13C0 A3EA1E03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370151C7F9B 18>I<38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3138CA2EA1D8D A31305000D1380EA0F07A2EA0E03151C7F9B18>I<38FE03F8EAFF07EAFE03381C01C0EA 1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C5A 151C7F9B18>89 D<126012F07EA21278127CA27EA2121E121FA26C7EA212077FA26C7EA2 6C7EA212007FA2137CA2133C133EA27FA27F1480A21307EB030011247D9F18>92 D<387FFFC0B512E0A26C13C013047E7F18>95 D<1206121E123E123C127812F012E0A312 F812FCA2127C1238070E789E18>I I<127E12FE127E120EA5133EEBFF80000F13C0EBE3E0EB80F0EB00701478000E1338A512 0F14781470EB80F0EBC3E0EBFFC0000E138038067E00151C809B18>IIIII< 3803F1F03807FFF85A381E1F30383C0F00EA3807A5EA3C0FEA1E1EEA1FFC485AEA3BF000 38C7FC123CEA1FFF14C04813E0387801F038F00078481338A36C1378007813F0EA7E0338 3FFFE0000F13803803FE00151F7F9318>I<127E12FE127E120EA5133FEBFF80000F13C0 EBE1E013801300A2120EAA387FC7FC38FFE7FE387FC7FC171C809B18>II<1338137CA313381300 A4EA0FFCA3EA001CB3A3133CEA6038EAF078EAFFF0EA7FE0EA3FC00E277E9C18>I<127E 12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C131EEA0E0FEB0780 130314C0387FC7F812FF127F151C7F9B18>I I<38FBE3E038FFF7F0EBFFF8383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E1714 809318>IIII<3803F380EA0FFB EA1FFFEA3E1FEA780FEA700712F0EAE003A6EAF0071270EA780FEA3E1FEA1FFFEA0FFBEA 03F3EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FF0137FEA07F8EBE0 60EBC0005BA390C7FCA8EAFFFC7F5B14147E9318>II<487E1203A4387FFFC0B5FCA238038000A9144014E0A21381EBC3 C0EA01FF6C1380EB7E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F07 3807FFFC6C13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E 0380A338070700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F813 8F1307383800E0A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA2380707 0015147F9318>I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013 F07FEA01DCEA039E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I< 387F8FF000FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA2 13CC120013DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<38 3FFFF05AA2387001E0EB03C0EB078038000F00131E137C5B485A485AEA0780380F007012 1E5A5AB512F0A314147F9318>II<127CB47E7FEA07E01200AB7FEB 7FC0EB3FE0A2EB7FC0EBF0005BAB1207B45A5B007CC7FC13247E9F18>125 D E /Fe 26 122 df12 DI 45 D97 D<1207123F120F7EA2120EA65A137C EA1D83381E0180001C13C0EB00E05A14F0A5387001E0A214C013031480EB0700EAE80EEA CC38EA83E014207B9F19>I<13FEEA0383380E0780121C0038130090C7FC12785AA45AA3 7E5BEA70026C5AEA1C18EA07E011147D9314>I<1438EB01F8EB00781438A21470A614E0 13FCEA0382EA0601121CEA3C00383801C0127812F0A438E00380A412F0EA700738380F00 381C37803807C7E015207D9F19>I<13F8EA070EEA0E07121C383803801278127012F0A2 B5FC00F0C7FC5AA46C5AEA7002EA3004EA1C18EA07E011147D9314>I<140EEB3E11EBE1 A33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA2121812 1CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F8094 17>103 D<13E0120712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E0 1300A5380E01C0A6381C0380001E13C038FF8FF014207E9F19>II< 13E0120712011200A2485AA6485AEB81FCEB80F014C0EB81801400EA07045B1318133813 7C131C120E7FA2130F7F1480EA1C03381E07C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C >I<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5000E EBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07 A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E9319 >I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300F0 138038700700EA380E6C5AEA07E014147D9317>IIIII<1380EA0100 A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<38 1C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011147B 9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA0390 13A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C030060148015 401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C48 5A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE180EB 73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE07FC 18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C13705CA2 0171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278 191D809318>I E /Ff 78 125 df<90381F83E09038F06E303901C07878380380F89038 00F03048EB7000A7B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701A290C7FCA6B512E0EA0700B2383FC3FC1620809F 19>II<9038 1F81F89038F04F043901C07C06390380F80FEB00F05A0270C7FCA6B7FC3907007007B23A 3FE3FE3FE02320809F26>I<127012F8A71270AA1220A51200A5127012F8A3127005217C A00D>33 D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39 D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012 30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812 0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A 5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44 DI<127012F8A3127005057C840D>I<14C0A213011480A2130314 005B1306A2130E130CA2131C131813381330A213701360A213E05B12015BA2120390C7FC A25A1206120E120CA2121C1218A21238123012701260A212E05AA2122D7EA117>II<13801203120F12F31203B3A6EA07C0EAFFFE0F1E 7C9D17>III<1306A2130EA2131E132EA2134E138EA2EA010E1202A21204 1208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>II<137CEA0182EA0701380E 0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200 F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFF E014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C 5A131F7E9D17>III<127012F8A312701200AA127012 F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212781208A31210A3 1220A21240051D7C930D>I63 D<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801EA248B5FCEB000F A20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22>65 DI<90380FE0109038381C30 9038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A91278 007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E9F21 >IIII<90380FE01090 38381C309038E002703803C00139078000F048C71270121E15305A1510127C127800F814 00A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903C001703900E002309038380C 1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF8 1D1F7E9E22>II<39FFF007FC390F0003E0EC01 80150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E01341EB80F0EB0078A28080 A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75 DIIIII82 D<3803F040380C0CC0EA1803EA3001EA6000A212E0 1440A36C13007E127CEA7F80EA3FF86CB4FC00071380C613C0EB1FE013031301EB00F014 707EA46C136014E06C13C038F8018038C60300EA81FC14217E9F19>I<007FB512E03878 0F010060EB006000401420A200C0143000801410A400001400B3497E3803FFFC1C1F7E9E 21>I<39FFF00FF8390F0003E0EC0080B3A46CEB01001380120314026C6C5A6C6C5AEB38 30EB0FC01D207E9E22>I<39FFF003FE391F8000F86CC7126015206C6C1340A36C6C1380 A2EBE00100011400A23800F002A213F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D 5AA36DC7FC1F207F9E22>I<3BFFF07FF81FF03B1F000FC007C06C903907800180170015 C001805C00071502EC09E013C000035DEC19F01410D801E05CA2EC2078D800F05CA2EC40 3C01785CA2EC801E017C1460013C144090383D000F133F6D5CA2011E1307010E91C7FCA2 010C7F010413022C207F9E2F>I<397FF81FF8390FE007C03907C0030000031302EBE006 3801F00400005BEBF818EB78106D5AEB3E60EB1E406D5AA213076D7E497E1305EB08F0EB 18F8EB1078EB207CEB603EEB401EEB801F3901000F801407000214C000061303001FEB07 E039FFC01FFE1F1F7F9E22>I<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<12FFA21203B3B3A512FFA2082D80A10D>93 D<120812101220A21240A21280A312B812 FCA2127C1238060E7D9F0D>96 DI<121C12FC12 1CAA137CEA1D87381E0180EB00C0001C13E01470A21478A6147014F014E0001E13C0381A 018038198700EA107C15207E9F19>IIII<137CEA01C6EA030F1207EA0E06 1300A7EAFFF0EA0E00B2EA7FE01020809F0E>I<14E03803E330EA0E3CEA1C1C38380E00 EA780FA5EA380E6C5AEA1E38EA33E00020C7FCA21230A2EA3FFE381FFF8014C0383001E0 38600070481330A4006013606C13C0381C03803803FC00141F7F9417>I<121C12FC121C AA137C1386EA1D03001E1380A2121CAE38FF8FF014207E9F19>I<1238127CA31238C7FC A6121C12FC121CB1EAFF80091F7F9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012 001370B3A31260EAF06013C0EA6180EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB 0780EB060013045B5B5B136013E0EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038 FF9FF014207E9F18>I<121C12FC121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C 30391D039038391E01E01CA2001C13C0AE3AFF8FF8FF8021147E9326>IIII<3801F04038070CC0EA0E02EA1C 03EA38011278127012F0A6127012781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8 151D7F9318>III<1202A31206A2120EA2123EEAFFF8EA0E00AB1304 A5EA07081203EA01F00E1C7F9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803 E3F014147E9319>I<38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2 EA01C4A213E4EA00E8A21370A3132015147F9318>I<39FF9FE1FC393C078070391C0300 60EC8020000E1440A214C0D80704138014E0A239038861001471A23801D032143A143E38 00E01CA2EB6018EB40081E147F9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA 0384EA01C813D8EA00F01370137813F8139CEA010E1202EA060738040380000C13C0003C 13E038FE07FC16147F9318>I<38FF83F8383E00E0001C13C06C1380A338070100A21383 EA0382A2EA01C4A213E4EA00E8A21370A31320A25BA3EAF080A200F1C7FC1262123C151D 7F9318>IIII E /Fg 36 120 df<150C151E153EA2153C157CA215F8A215F01401A2 EC03E0A215C01407A2EC0F80A215005CA2143EA2143C147CA25CA25C1301A2495AA25C13 07A25C130FA249C7FCA2131E133EA25BA2137813F8A2485AA25B1203A2485AA25B120FA2 48C8FCA2121E123EA25AA2127812F8A25A12601F487CB528>47 D49 DI I<157015F0140114031407140FA2141F143F147714F714E7EB01C7EB0387EB0707130F13 0E131C1338137013F013E0EA01C0EA0380EA07005A120E5A5A5A5AB712E0A3C7380FF000 A9010FB512E0A3232E7EAD28>I<000C1430390FC007F090B512E0A215C015005C5C14F0 1480000EC8FCA8EB1FF0EBFFFE390FE03F809038000FE0000E14F0000CEB07F8C7FCEC03 FCA315FEA21218127EB4FCA415FC481307007814F8A26CEB0FF06CEB1FE0390FC07FC06C B51200000113FC38003FE01F2E7CAD28>I<14FF010713E0011F7F90387F80F89038FE00 3CD803FC137E484813FEEBF001EA0FE0121F13C0003F6D5A1578007F91C7FC5BA338FF83 FC90388FFF8090389C0FE09038B803F001F07F496C7E81496C7EA3491480A4127FA4123F 6D1400A2001F495AEA0FE04A5AD807F05B3903FC0FF0C6B512C0013F90C7FCEB0FFC212E 7DAD28>I<1578A215FCA34A7EA24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F15 1F02787FEC700FA202E07F1507010180ECC003A249486C7EA201078191C7FC498191B6FC A24981011CC7123F013C810138141FA24981160F01F081491407A2484881486C1403B549 B512FCA336317DB03D>65 D<913A03FF800180023FEBF00349B5EAFC0F01079038003F1F D91FF8EB07FFD97FE01301D9FF807F4890C8127F4848153F4848151F485A170F48481507 123F5B1703127FA24992C7FC12FFAB127F7FEF0380123FA27F001F16076C6C16005F6C6C 150E6C6C151E6C6C5D6C6D5CD97FE0495AD91FF8495AD907FFEB3F800101D9FFFEC7FCD9 003F13F80203138031317CB03A>67 D71 DII< B500C049B512C080A2C66D90390003E0006E6E5A80EBEFFEEBE7FF13E301E17F8101E07F 6E7E6E7E141F6E7E816E7E6E13806E13C080ED7FE016F0ED3FF8ED1FFCED0FFE1507ED03 FF17816F13C16F13E1EE7FF1163FEE1FF917FDEE0FFF82828282A2177F173F171F170F48 6C1507B512E0170317013A317EB03F>78 DII<90391FF8018090B51203000314C73907F0 07EF391F8000FF90C7127F003E143F007E141F007C140F150712FCA215037E7E6D90C7FC 7FEA7FF0EBFF8014F86CEBFF806C14F06C806C14FE6C80C61580013F14C01301D9001F13 E014019138003FF0151F150F150712E01503A37E16E06C140716C06C140FB4EC1F8001C0 EB3F0001FC13FE00F1B55AD8E03F13F0D8C003138024317CB02D>83 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603 A5C792C7FCB3AA017FB6FCA331307DAF38>I86 D97 D99 DIII104 DI108 D<2703F007F8EB1FE000FFD93FFEEBFF F8913AF87F83E1FE903AF1C03F8700260FF38001CE7F2807F7001FDC7F01F602F8148013 FE495CA2495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE9138F8 7F809038F1C03F260FF38013C03907F7001F01F614E013FE5BA25BB3B500C3B5FCA32820 7D9F2D>II<3901F83FE000FF EBFFFC9038FBE07F9039FF003F80D807FEEB1FE049EB0FF05BED07F8A216FCA2ED03FEAA ED07FCA216F8150F16F06DEB1FE06D14C06DEB3F809039FBC0FE009038F8FFF8EC3FC091 C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEBFFC09038F1C7E09038F38FF0380FF7 0FEA07F613FE13FCEC07E091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C133E007C131E127800F8130EA27E6C90C7FC6C7E13FC 387FFFC014F06C7F6C7F00077F00017FEA003F01001380143F00E0131FA26C130FA27E15 006C5B6C133E6C6C5A38F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC12 0112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71407D801FE13001200EB7F0EEB3F FCEB07F0192E7FAD1F>IIII E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%PaperSize: a4 %%EndSetup %%Page: 1 1 1 0 bop 0 183 a Fg(CVS)15 b(Clien)n(t/Serv)n(er)62 370 y Ff(This)j(do)q(cumen)o(t)g(describ)q(es)h(the)f(clien)o(t/serv)o(er)g (proto)q(col)f(used)h(b)o(y)g(CVS.)f(It)h(do)q(es)f(not)g(describ)q(e)j (ho)o(w)d(to)0 432 y(use)i(or)e(administer)j(clien)o(t/serv)o(er)e (CVS;)g(see)h(the)f(regular)h(CVS)f(man)o(ual)g(for)g(that.)28 b(This)19 b(is)g(v)o(ersion)g(1.8.1)0 495 y(of)d(the)h(proto)q(col)g (sp)q(eci\014cation|See)j(Chapter)c(1)h([In)o(tro)q(duction],)g(page)f (2)h(for)f(more)g(on)h(what)f(this)i(v)o(ersion)0 557 y(n)o(um)o(b)q(er)e(means.)p eop %%Page: 2 2 2 1 bop 0 183 a Fg(1)41 b(In)n(tro)r(duction)62 370 y Ff(CVS)12 b(is)h(a)f(v)o(ersion)g(con)o(trol)g(system)g(\(with)g(some)f (additional)j(con\014guration)e(managemen)o(t)f(functionalit)o(y\).)0 432 y(It)20 b(main)o(tains)g(a)g(cen)o(tral)g Fe(rep)q(ository)j Ff(whic)o(h)e(stores)e(\014les)i(\(often)e(source)h(co)q(de\),)h (including)i(past)c(v)o(ersions,)0 495 y(information)14 b(ab)q(out)g(who)g(mo)q(di\014ed)i(them)e(and)g(when,)h(and)f(so)g(on.) 19 b(P)o(eople)c(who)f(wish)g(to)g(lo)q(ok)g(at)g(or)f(mo)q(dify)0 557 y(those)h(\014les,)i(kno)o(wn)e(as)g Fe(dev)o(elop)q(ers)p Ff(,)i(use)f(CVS)f(to)g Fe(c)o(hec)o(k)h(out)g Ff(a)g Fe(w)o(orking)f(directory)19 b Ff(from)13 b(the)i(rep)q(ository)l(,)g (to)0 619 y Fe(c)o(hec)o(k)c(in)h Ff(new)f(v)o(ersions)g(of)f(\014les)i (to)e(the)h(rep)q(ository)l(,)h(and)f(other)f(op)q(erations)h(suc)o(h)g (as)g(viewing)h(the)f(mo)q(di\014cation)0 681 y(history)k(of)g(a)g (\014le.)21 b(If)15 b(dev)o(elop)q(ers)i(are)e(connected)h(to)f(the)g (rep)q(ository)g(b)o(y)g(a)g(net)o(w)o(ork,)f(particularly)i(a)f(slo)o (w)g(or)0 744 y(\015aky)g(one,)g(the)g(most)f(e\016cien)o(t)i(w)o(a)o (y)e(to)g(use)i(the)f(net)o(w)o(ork)f(is)h(with)h(the)f(CVS-sp)q (eci\014c)i(proto)q(col)e(describ)q(ed)i(in)0 806 y(this)f(do)q(cumen)o (t.)62 943 y(Dev)o(elop)q(ers,)g(using)g(the)g(mac)o(hine)g(on)f(whic)o (h)h(they)g(store)f(their)g(w)o(orking)g(directory)l(,)h(run)g(the)f (CVS)h Fe(clien)o(t)0 1005 y Ff(program.)37 b(T)l(o)21 b(p)q(erform)g(op)q(erations)h(whic)o(h)g(cannot)f(b)q(e)h(done)g(lo)q (cally)l(,)i(it)e(connects)g(to)e(the)i(CVS)f Fe(serv)o(er)0 1067 y Ff(program,)15 b(whic)o(h)i(main)o(tains)f(the)g(rep)q(ository)l (.)23 b(F)l(or)16 b(more)f(information)h(on)h(ho)o(w)e(to)h(connect)g (see)g(Chapter)g(5)0 1130 y([Connection)g(and)f(Authen)o(tication],)g (page)g(6.)62 1267 y(This)e(do)q(cumen)o(t)g(describ)q(es)h(the)e(CVS)h (proto)q(col.)19 b(Unfortunately)l(,)13 b(it)f(do)q(es)h(not)f(y)o(et)g (completely)i(do)q(cumen)o(t)0 1329 y(one)19 b(asp)q(ect)g(of)g(the)g (proto)q(col|the)g(detailed)i(op)q(eration)e(of)g(eac)o(h)g(CVS)g (command)g(and)g(option|and)h(one)0 1391 y(m)o(ust)g(lo)q(ok)g(at)g (the)g(CVS)h(user)f(do)q(cumen)o(tation,)i(`)p Fd(cvs.texinfo)p Ff(',)d(for)h(that)f(information.)35 b(The)21 b(proto)q(col)0 1453 y(is)d(non-proprietary)f(\(an)o(y)o(one)g(who)g(w)o(an)o(ts)f(to)h (is)g(encouraged)h(to)f(implemen)o(t)h(it\))f(and)h(an)f(implemen)o (tation,)0 1516 y(kno)o(wn)e(as)f(CVS,)h(is)g(a)o(v)m(ailable)i(under)e (the)g(GNU)g(Public)i(License.)k(The)16 b(CVS)f(distribution,)h(con)o (taining)g(this)0 1578 y(implemen)o(tation,)j(`)p Fd(cvs.texinfo)p Ff(',)c(and)i(a)g(cop)o(y)g(\(p)q(ossibly)h(more)f(or)g(less)h(up)f(to) g(date)g(than)g(what)f(y)o(ou)h(are)0 1640 y(reading)d(no)o(w\))e(of)h (this)g(do)q(cumen)o(t,)h(`)p Fd(cvsclient.texi)p Ff(',)c(can)k(b)q(e)g (found)f(at)f(the)i(usual)g(GNU)f(FTP)f(sites,)i(with)0 1703 y(a)h(\014lename)h(suc)o(h)g(as)f(`)p Fd(cvs-)p Fe(v)o(ersion)p Fd(.tar.gz)p Ff('.)62 1840 y(This)i(is)g(v)o(ersion)g (1.8.1)d(of)i(the)h(proto)q(col)f(sp)q(eci\014cation.)25 b(This)17 b(v)o(ersion)g(n)o(um)o(b)q(er)f(is)h(in)o(tended)h(only)f (to)e(aid)0 1902 y(in)22 b(distinguishing)h(di\013eren)o(t)e(v)o (ersions)g(of)g(this)g(sp)q(eci\014cation.)39 b(Although)21 b(the)g(sp)q(eci\014cation)i(is)e(curren)o(tly)0 1964 y(main)o(tained)16 b(in)g(conjunction)g(with)g(the)f(CVS)h(implemen)o (tation,)g(and)f(carries)h(the)f(same)g(v)o(ersion)g(n)o(um)o(b)q(er,)h (it)0 2026 y(also)d(in)o(tends)h(to)f(do)q(cumen)o(t)g(what)g(is)g(in)o (v)o(olv)o(ed)h(with)g(in)o(terop)q(erating)g(with)f(other)g(implemen)o (tations)h(\(suc)o(h)f(as)0 2089 y(other)e(v)o(ersions)g(of)f(CVS\);)h (see)g(See)h(Section)g(6.7)e([Requiremen)o(ts],)h(page)g(17.)18 b(This)12 b(v)o(ersion)f(n)o(um)o(b)q(er)g(should)h(not)0 2151 y(b)q(e)h(used)g(b)o(y)f(clien)o(ts)h(or)e(serv)o(ers)h(to)g (determine)h(what)e(v)m(arian)o(t)h(of)g(the)g(proto)q(col)g(to)g(sp)q (eak;)h(they)f(should)h(instead)0 2213 y(use)21 b(the)g Fd(valid-requests)e Ff(and)h Fd(Valid-responses)f Ff(mec)o(hanism)i (\(see)g(Chapter)f(6)h([Proto)q(col],)f(page)h(7\),)0 2275 y(whic)o(h)16 b(is)g(more)f(\015exible.)p eop %%Page: 3 3 3 2 bop 0 183 a Fg(2)41 b(Goals)37 370 y Fc(\017)30 b Ff(Do)16 b(not)g(assume)g(an)o(y)g(access)h(to)e(the)i(rep)q(ository)f (other)g(than)g(via)h(this)g(proto)q(col.)23 b(It)17 b(do)q(es)f(not)g(dep)q(end)90 432 y(on)f(NFS,)g(rdist,)g(etc.)37 507 y Fc(\017)30 b Ff(Pro)o(viding)18 b(a)f(reliable)i(transp)q(ort)d (is)i(outside)g(this)g(proto)q(col.)25 b(It)18 b(is)f(exp)q(ected)i (that)d(it)i(runs)f(o)o(v)o(er)g(TCP)l(,)90 569 y(UUCP)l(,)e(etc.)37 644 y Fc(\017)30 b Ff(Securit)o(y)25 b(and)f(authen)o(tication)g(are)g (handled)h(outside)g(this)f(proto)q(col)g(\(but)f(see)i(b)q(elo)o(w)f (ab)q(out)g(`)p Fd(cvs)90 706 y(kserver)p Ff('\).)37 781 y Fc(\017)30 b Ff(This)13 b(migh)o(t)g(b)q(e)h(a)e(\014rst)h(step)g (to)o(w)o(ards)e(adding)j(transactions)e(to)g(CVS)h(\(i.e.)19 b(a)13 b(set)f(of)h(op)q(erations)g(is)g(either)90 843 y(executed)20 b(atomically)g(or)e(none)h(of)g(them)g(is)g(executed\),)h (impro)o(ving)g(the)f(lo)q(c)o(king,)i(or)d(other)h(features.)90 906 y(The)f(curren)o(t)g(serv)o(er)g(implemen)o(tation)h(is)g(a)e(long) i(w)o(a)o(y)e(from)g(b)q(eing)i(able)g(to)e(do)h(an)o(y)g(of)g(these)g (things.)90 968 y(The)d(proto)q(col,)g(ho)o(w)o(ev)o(er,)f(is)i(not)f (kno)o(wn)g(to)f(con)o(tain)i(an)o(y)e(defects)i(whic)o(h)g(w)o(ould)g (preclude)h(them.)37 1043 y Fc(\017)30 b Ff(The)19 b(serv)o(er)f(nev)o (er)h(has)g(to)f(ha)o(v)o(e)g(an)o(y)g(CVS)h(lo)q(c)o(ks)g(in)h(place)f (while)h(it)f(is)g(w)o(aiting)g(for)f(comm)o(unication)90 1105 y(with)e(the)f(clien)o(t.)21 b(This)16 b(mak)o(es)e(things)i (robust)f(in)h(the)f(face)g(of)g(\015aky)g(net)o(w)o(orks.)37 1180 y Fc(\017)30 b Ff(Data)12 b(is)h(transferred)f(in)h(large)g(c)o(h) o(unks,)g(whic)o(h)h(is)f(necessary)g(for)f(go)q(o)q(d)h(p)q (erformance.)19 b(In)13 b(fact,)f(curren)o(tly)90 1242 y(the)17 b(clien)o(t)g(uploads)h(all)f(the)f(data)g(\(without)g(w)o (aiting)h(for)f(serv)o(er)g(resp)q(onses\),)h(and)f(then)h(w)o(aits)f (for)g(one)90 1304 y(serv)o(er)e(resp)q(onse)i(\(whic)o(h)f(consists)g (of)f(a)h(massiv)o(e)f(do)o(wnload)h(of)g(all)g(the)g(data\).)k(There)c (ma)o(y)f(b)q(e)h(cases)g(in)90 1366 y(whic)o(h)h(it)g(is)h(b)q(etter)e (to)g(ha)o(v)o(e)g(a)h(ric)o(her)g(in)o(terraction,)g(but)f(the)h(need) h(for)e(the)g(serv)o(er)h(to)f(release)h(all)h(lo)q(c)o(ks)90 1429 y(whenev)o(er)f(it)f(w)o(aits)g(for)f(the)i(clien)o(t)g(mak)o(es)f (it)g(complicated.)p eop %%Page: 4 4 4 3 bop 0 183 a Fg(3)41 b(Notes)15 b(on)h(the)f(Curren)n(t)g(Implemen)n (tation)62 370 y Ff(The)h(clien)o(t)h(is)f(built)h(in)f(to)f(the)h (normal)f Fd(cvs)g Ff(program,)f(triggered)i(b)o(y)f(a)h Fd(CVSROOT)e Ff(v)m(ariable)j(con)o(taining)f(a)0 432 y(colon,)f(for)g(example)h Fd(cygnus.com:/rel/cvsfiles)p Ff(.)62 569 y(The)21 b(clien)o(t)g(stores)f(what)g(is)h(stored)e(in)j (c)o(hec)o(k)o(ed-out)e(directories)h(\(including)i(`)p Fd(CVS)p Ff('\).)34 b(The)20 b(w)o(a)o(y)g(these)0 632 y(are)15 b(stored)f(is)i(totally)f(compatible)h(with)f(standard)g(CVS.) f(The)i(serv)o(er)e(requires)i(no)f(storage)e(other)i(than)g(the)0 694 y(rep)q(ository)l(,)g(whic)o(h)h(also)f(is)h(totally)f(compatible)h (with)g(standard)f(CVS.)62 831 y(The)h(serv)o(er)e(is)i(started)f(b)o (y)g Fd(cvs)f(server)p Ff(.)19 b(There)d(is)g(no)f(particularly)h(comp) q(elling)i(reason)c(for)h(this)h(rather)0 893 y(than)f(making)g(it)h(a) f(separate)f(program)g(whic)o(h)j(shares)e(a)f(lot)i(of)e(sources)i (with)f(cvs.)62 1030 y(The)e(serv)o(er)f(can)h(also)g(b)q(e)g(started)f (b)o(y)h Fd(cvs)h(kserver)p Ff(,)e(in)i(whic)o(h)f(case)g(it)g(do)q(es) g(an)g(initial)h(Kerb)q(eros)f(authen-)0 1092 y(tication)j(on)f(stdin.) 20 b(If)c(the)f(authen)o(tication)h(succeeds,)g(it)f(subsequen)o(tly)i (runs)e(iden)o(tically)j(to)c Fd(cvs)h(server)p Ff(.)62 1229 y(The)j(curren)o(t)f(serv)o(er)h(implemen)o(tation)g(can)g(use)g (up)g(h)o(uge)f(amoun)o(ts)g(of)g(memory)g(when)h(transmitting)f(a)0 1292 y(lot)c(of)f(data)g(o)o(v)o(er)g(a)h(slo)o(w)f(link)i(\(i.e.)19 b(the)13 b(net)o(w)o(ork)f(is)h(slo)o(w)o(er)g(than)f(the)h(serv)o(er)f (can)h(generate)g(the)g(data\).)18 b(There)0 1354 y(is)d(some)f(exp)q (erimen)o(tal)i(co)q(de)f(\(see)f Fd(SERVER_FLOWCONTROL)e Ff(in)j(options.h\))f(whic)o(h)h(should)h(help)g(signi\014can)o(tly)l (.)p eop %%Page: 5 5 5 4 bop 0 183 a Fg(4)41 b(Notes)15 b(on)h(the)f(Proto)r(col)62 370 y Ff(A)h(n)o(um)o(b)q(er)f(of)g(enhancemen)o(ts)h(are)f(p)q (ossible:)37 507 y Fc(\017)30 b Ff(The)14 b Fd(Modified)e Ff(request)i(could)h(b)q(e)f(sp)q(eeded)h(up)f(b)o(y)g(sending)h (di\013s)f(rather)f(than)g(en)o(tire)h(\014les.)21 b(The)14 b(clien)o(t)90 569 y(w)o(ould)j(need)h(some)e(w)o(a)o(y)g(to)h(k)o(eep) g(the)g(v)o(ersion)g(of)f(the)h(\014le)h(whic)o(h)g(w)o(as)e (originally)i(c)o(hec)o(k)o(ed)g(out,)e(whic)o(h)90 632 y(w)o(ould)g(double)h(clien)o(t)h(disk)e(space)g(requiremen)o(ts)h(or)e (require)i(co)q(ordination)g(with)f(editors)g(\(e.g.)21 b(ma)o(yb)q(e)90 694 y(it)f(could)h(use)f(emacs)g(n)o(um)o(b)q(ered)h (bac)o(kups\).)34 b(This)20 b(w)o(ould)g(also)g(allo)o(w)g(lo)q(cal)h (op)q(eration)f(of)g Fd(cvs)15 b(diff)90 756 y Ff(without)g(argumen)o (ts.)37 831 y Fc(\017)30 b Ff(Ha)o(v)o(e)17 b(the)h(clien)o(t)h(k)o (eep)f(a)g(cop)o(y)g(of)f(some)h(part)f(of)g(the)h(rep)q(ository)l(.)28 b(This)19 b(allo)o(ws)f(all)g(of)g Fd(cvs)d(diff)i Ff(and)90 893 y(large)h(parts)f(of)h Fd(cvs)d(update)i Ff(and)h Fd(cvs)d(ci)i Ff(to)h(b)q(e)g(lo)q(cal.)30 b(The)18 b(lo)q(cal)h(cop)o (y)f(could)h(b)q(e)g(made)f(consisten)o(t)90 955 y(with)13 b(the)f(master)g(cop)o(y)h(at)e(nigh)o(t)i(\(but)f(if)h(the)g(master)f (cop)o(y)g(has)h(b)q(een)g(up)q(dated)h(since)f(the)g(latest)f(nigh)o (tly)90 1018 y(re-sync,)j(then)h(it)f(w)o(ould)h(read)f(what)g(it)g (needs)h(to)f(from)f(the)h(master\).)37 1092 y Fc(\017)30 b Ff(Pro)o(vide)15 b(encryption)i(using)f(k)o(erb)q(eros.)37 1167 y Fc(\017)30 b Ff(The)17 b(curren)o(t)f(pro)q(cedure)i(for)e Fd(cvs)e(update)i Ff(is)h(highly)h(sub-optimal)g(if)f(there)f(are)g (man)o(y)g(mo)q(di\014ed)i(\014les.)90 1229 y(One)e(p)q(ossible)i (alternativ)o(e)d(w)o(ould)h(b)q(e)g(to)f(ha)o(v)o(e)g(the)h(clien)o(t) h(send)f(a)f(\014rst)g(request)h(without)f(the)h(con)o(ten)o(ts)90 1292 y(of)i(ev)o(ery)f(mo)q(di\014ed)j(\014le,)f(then)g(ha)o(v)o(e)e (the)h(serv)o(er)g(tell)h(it)f(what)g(\014les)h(it)f(needs.)29 b(Note)17 b(the)i(serv)o(er)e(needs)90 1354 y(to)g(do)g(the)g (what-needs-to-b)q(e-up)q(dated)i(c)o(hec)o(k)f(t)o(wice)g(\(or)e (more,)h(if)h(c)o(hanges)f(in)h(the)g(rep)q(ository)f(mean)90 1416 y(it)g(has)g(to)f(ask)g(the)h(clien)o(t)h(for)e(more)g(\014les\),) h(b)q(ecause)h(it)f(can't)f(k)o(eep)h(lo)q(c)o(ks)g(op)q(en)h(while)g (w)o(aiting)f(for)f(the)90 1478 y(net)o(w)o(ork.)i(P)o(erhaps)c(this)g (whole)g(thing)g(is)h(irrelev)m(an)o(t)f(if)g(clien)o(t-side)j(rep)q (ositories)d(are)f(implemen)o(ted,)j(and)90 1541 y(the)f(rcsmerge)g(is) h(done)f(b)o(y)h(the)f(clien)o(t.)p eop %%Page: 6 6 6 5 bop 0 121 a Fg(5)41 b(Ho)n(w)15 b(to)h(Connect)g(to)g(and)f(Authen) n(ticate)f(Oneself)f(to)j(the)0 183 y(CVS)f(serv)n(er)62 370 y Ff(Connection)d(and)f(authen)o(tication)h(o)q(ccurs)f(b)q(efore)g (the)g(CVS)g(proto)q(col)g(itself)h(is)f(started.)18 b(There)11 b(are)g(sev)o(eral)0 432 y(w)o(a)o(ys)j(to)h(connect.)0 582 y(rsh)179 b(If)18 b(the)f(clien)o(t)h(has)f(a)g(w)o(a)o(y)g(to)f (execute)i(commands)f(on)g(the)h(serv)o(er,)f(and)g(pro)o(vide)h(input) g(to)f(the)240 644 y(commands)i(and)g(output)f(from)g(them,)h(then)g (it)g(can)g(connect)h(that)e(w)o(a)o(y)l(.)29 b(This)20 b(could)f(b)q(e)h(the)240 706 y(usual)13 b(rsh)g(\(p)q(ort)e(514\))h (proto)q(col,)g(Kerb)q(eros)h(rsh,)g(SSH,)g(or)f(an)o(y)g(similar)h (mec)o(hanism.)20 b(The)13 b(clien)o(t)240 769 y(ma)o(y)h(allo)o(w)h (the)h(user)f(to)f(sp)q(ecify)i(the)f(name)g(of)g(the)g(serv)o(er)f (program;)g(the)h(default)h(is)f Fd(cvs)p Ff(.)k(It)c(is)240 831 y(in)o(v)o(ok)o(ed)g(with)g(one)g(argumen)o(t,)f Fd(server)p Ff(.)19 b(Once)d(it)f(in)o(v)o(ok)o(es)g(the)g(serv)o(er,)f (the)h(clien)o(t)h(pro)q(ceeds)g(to)240 893 y(start)e(the)h(cvs)h (proto)q(col.)0 980 y(kserv)o(er)99 b(The)23 b(k)o(erb)q(erized)g(serv) o(er)f(listens)i(on)e(a)g(p)q(ort)g(\(in)h(the)f(curren)o(t)g(implemen) o(tation,)j(b)o(y)e(ha)o(ving)240 1043 y(inetd)17 b(call)g Fd(")p Ff(cvs)g(kserv)o(er)p Fd(")p Ff(\))e(whic)o(h)i(defaults)g(to)e (1999.)22 b(The)16 b(clien)o(t)i(connects,)e(sends)h(the)f(usual)240 1105 y(k)o(erb)q(eros)d(authen)o(tication)h(information,)f(and)g(then)h (starts)d(the)j(cvs)f(proto)q(col.)19 b(Note:)f(p)q(ort)13 b(1999)240 1167 y(is)j(o\016cially)h(registered)e(for)g(another)g(use,) g(and)h(in)g(an)o(y)f(ev)o(en)o(t)g(one)h(cannot)f(register)g(more)g (than)240 1229 y(one)c(p)q(ort)g(for)g(CVS,)g(so)f(the)i(k)o(erb)q (erized)g(clien)o(t)h(and)e(serv)o(er)g(should)h(b)q(e)g(c)o(hanged)f (to)g(use)g(p)q(ort)g(2401)240 1292 y(\(see)h(b)q(elo)o(w\),)h(and)g (send)g(a)f(di\013eren)o(t)g(string)h(in)g(place)g(of)f(`)p Fd(BEGIN)i(AUTH)h(REQUEST)p Ff(')c(to)g(iden)o(tify)j(the)240 1354 y(authen)o(tication)h(metho)q(d)f(in)h(use.)20 b(Ho)o(w)o(ev)o (er,)12 b(no)q(one)j(has)f(y)o(et)f(gotten)h(around)g(to)f(implemen)o (ting)240 1416 y(this.)0 1503 y(pserv)o(er)98 b(The)13 b(passw)o(ord)f(authen)o(ticated)h(serv)o(er)f(listens)i(on)e(a)g(p)q (ort)h(\(in)g(the)f(curren)o(t)h(implemen)o(tation,)h(b)o(y)240 1566 y(ha)o(ving)d(inetd)h(call)h Fd(")p Ff(cvs)e(pserv)o(er)p Fd(")p Ff(\))f(whic)o(h)i(defaults)g(to)e(2401)g(\(this)h(p)q(ort)g(is) h(o\016cially)g(registered\).)240 1628 y(The)19 b(clien)o(t)g (connects,)g(sends)g(the)f(string)h(`)p Fd(BEGIN)14 b(AUTH)g(REQUEST)p Ff(',)k(a)g(linefeed,)i(the)f(cvs)f(ro)q(ot,)240 1690 y(a)e(linefeed,)i(the)e(username,)h(a)e(linefeed,)k(the)d(passw)o(ord)f (trivially)j(enco)q(ded)g(\(see)e(scram)o(ble.c)g(in)240 1752 y(the)g(cvs)f(sources\),)h(a)f(linefeed,)i(the)f(string)g(`)p Fd(END)e(AUTH)h(REQUEST)p Ff(',)f(and)i(a)f(linefeed.)23 b(The)16 b(serv)o(er)240 1815 y(resp)q(onds)f(with)f(`)p Fd(I)h(LOVE)f(YOU)p Ff(')g(and)g(a)g(linefeed)i(if)f(the)f(authen)o (tication)h(is)g(successful)g(or)f(`)p Fd(I)h(HATE)240 1877 y(YOU)p Ff(')g(and)i(a)f(linefeed)i(if)f(the)f(authen)o(tication)h (fails.)24 b(After)16 b(receiving)i(`)p Fd(I)c(LOVE)h(YOU)p Ff(',)g(the)i(clien)o(t)240 1939 y(pro)q(ceeds)j(with)g(the)g(cvs)g (proto)q(col.)33 b(If)20 b(the)g(clien)o(t)h(wishes)f(to)f(merely)h (authen)o(ticate)g(without)240 2001 y(starting)i(the)g(cvs)g(proto)q (col,)i(the)e(pro)q(cedure)h(is)g(the)g(same,)g(except)g(`)p Fd(BEGIN)14 b(AUTH)g(REQUEST)p Ff(')240 2064 y(is)j(replaced)g(with)g (`)p Fd(BEGIN)d(VERIFICATION)f(REQUEST)p Ff(',)i(`)p Fd(END)f(AUTH)h(REQUEST)p Ff(')g(is)h(replaced)i(with)240 2126 y(`)p Fd(END)c(VERIFICATION)g(REQUEST)p Ff(',)c(and)i(up)q(on)g (receipt)g(of)f(`)p Fd(I)j(LOVE)h(YOU)p Ff(')10 b(the)i(connection)g (is)g(closed)240 2188 y(rather)j(than)g(con)o(tin)o(uing.)p eop %%Page: 7 7 7 6 bop 0 183 a Fg(6)41 b(The)15 b(CVS)g(clien)n(t/serv)n(er)e(proto)r (col)62 371 y Ff(In)j(the)f(follo)o(wing,)h(`)p Fd(\\n)p Ff(')e(refers)h(to)g(a)f(linefeed)k(and)d(`)p Fd(\\t)p Ff(')f(refers)h(to)g(a)g(horizon)o(tal)g(tab.)0 596 y Fb(6.1)33 b(En)n(tries)16 b(Lines)62 733 y Ff(En)o(tries)g(lines)g(are) f(transmitted)g(as:)120 860 y Fd(/)24 b Fe(name)i Fd(/)e Fe(v)o(ersion)g Fd(/)g Fe(con\015ict)i Fd(/)d Fe(options)j Fd(/)e Fe(tag)p 1060 860 14 2 v 15 w(or)p 1116 860 V 16 w(date)62 997 y(tag)p 129 997 V 16 w(or)p 186 997 V 16 w(date)17 b Ff(is)f(either)f(`)p Fd(T)p Ff(')g Fe(tag)j Ff(or)c(`)p Fd(D)p Ff(')g Fe(date)k Ff(or)c(empt)o(y)l(.)20 b(If)15 b(it)h(is)f(follo)o(w)o(ed)g(b)o(y)g(a)g(slash,)g(an)o(ything)h (after)e(the)0 1059 y(slash)i(shall)g(b)q(e)g(silen)o(tly)h(ignored.)62 1196 y Fe(v)o(ersion)h Ff(can)g(b)q(e)h(empt)o(y)l(,)f(or)f(start)g (with)h(`)p Fd(0)p Ff(')f(or)g(`)p Fd(-)p Ff(',)g(for)g(no)h(user)g (\014le,)h(new)f(user)g(\014le,)h(or)e(user)h(\014le)h(to)e(b)q(e)0 1259 y(remo)o(v)o(ed,)d(resp)q(ectiv)o(ely)l(.)62 1396 y Fe(con\015ict)p Ff(,)h(if)f(it)g(starts)e(with)i(`)p Fd(+)p Ff(',)f(indicates)i(that)d(the)i(\014le)h(had)f(con\015icts)g (in)g(it.)20 b(The)14 b(rest)f(of)g Fe(con\015ict)j Ff(is)e(`)p Fd(=)p Ff(')e(if)0 1458 y(the)k(timestamp)f(matc)o(hes)h(the)g(\014le,) g(or)f(an)o(ything)h(else)h(if)f(it)g(do)q(esn't.)22 b(If)16 b Fe(con\015ict)i Ff(do)q(es)e(not)f(start)g(with)h(a)f(`)p Fd(+)p Ff(',)0 1520 y(it)g(is)h(silen)o(tly)h(ignored.)0 1746 y Fb(6.2)33 b(Mo)r(des)62 1883 y Ff(A)16 b(mo)q(de)f(is)h(an)o(y)f (n)o(um)o(b)q(er)g(of)g(rep)q(etitions)h(of)120 2010 y Fe(mo)q(de-t)o(yp)q(e)27 b Fd(=)d Fe(data)62 2147 y Ff(separated)15 b(b)o(y)g(`)p Fd(,)p Ff('.)62 2284 y Fe(mo)q(de-t)o(yp)q(e)23 b Ff(is)d(an)f(iden)o(ti\014er)i(comp)q(osed)e (of)g(alphan)o(umeric)i(c)o(haracters.)32 b(Curren)o(tly)19 b(sp)q(eci\014ed:)30 b(`)p Fd(u)p Ff(')19 b(for)0 2346 y(user,)k(`)p Fd(g)p Ff(')f(for)f(group,)i(`)p Fd(o)p Ff(')e(for)g(other)h(\(see)g(b)q(elo)o(w)h(for)e(discussion)j(of)d (whether)i(these)f(ha)o(v)o(e)f(their)i(POSIX)0 2408 y(meaning)16 b(or)f(are)f(more)h(lo)q(ose\).)20 b(Unrecognized)d(v)m (alues)f(of)f Fe(mo)q(de-t)o(yp)q(e)j Ff(are)d(silen)o(tly)i(ignored.) 62 2545 y Fe(data)f Ff(consists)g(of)f(an)o(y)h(data)f(not)h(con)o (taining)g(`)p Fd(,)p Ff(',)f(`)p Fd(\\0)p Ff(')g(or)g(`)p Fd(\\n)p Ff('.)22 b(F)l(or)15 b(`)p Fd(u)p Ff(',)g(`)p Fd(g)p Ff(',)f(and)j(`)p Fd(o)p Ff(')e(mo)q(de)h(t)o(yp)q(es,)g(data)0 2608 y(consists)e(of)g(alphan)o(umeric)i(c)o(haracters,)d(where)i(`)p Fd(r)p Ff(')e(means)h(read,)g(`)p Fd(w)p Ff(')f(means)h(write,)h(`)p Fd(x)p Ff(')e(means)h(execute,)h(and)0 2670 y(unrecognized)i(letters)e (are)g(silen)o(tly)i(ignored.)p eop %%Page: 8 8 8 7 bop 62 183 a Ff(The)11 b(t)o(w)o(o)e(most)g(ob)o(vious)h(w)o(a)o (ys)f(in)i(whic)o(h)g(the)g(mo)q(de)f(matters)f(are:)17 b(\(1\))9 b(is)i(it)g(writeable?)20 b(This)10 b(is)h(used)g(b)o(y)f (the)0 246 y(dev)o(elop)q(er)17 b(comm)o(unication)g(features,)f(and)g (is)h(implemen)o(ted)h(ev)o(en)f(on)f(OS/2)g(\(and)g(could)h(b)q(e)g (implemen)o(ted)0 308 y(on)e(DOS\),)g(whose)f(notion)i(of)e(mo)q(de)i (is)f(limited)i(to)d(a)h(readonly)h(bit.)k(\(2\))14 b(is)i(it)f (executable?)22 b(Unix)16 b(CVS)f(users)0 370 y(need)k(CVS)e(to)g (store)g(this)i(setting)e(\(for)g(shell)i(scripts)f(and)g(the)g(lik)o (e\).)28 b(The)18 b(curren)o(t)g(CVS)g(implemen)o(tation)0 432 y(on)f(unix)i(do)q(es)f(a)f(little)i(bit)f(more)f(than)h(just)f (main)o(tain)h(these)g(t)o(w)o(o)e(settings,)i(but)f(it)h(do)q(esn't)g (really)g(ha)o(v)o(e)f(a)0 495 y(nice)f(general)g(facilit)o(y)g(to)e (store)g(or)h(v)o(ersion)g(con)o(trol)g(the)g(mo)q(de,)g(ev)o(en)g(on)g (unix,)h(m)o(uc)o(h)f(less)g(across)g(op)q(erating)0 557 y(systems)i(with)g(div)o(erse)h(protection)f(features.)25 b(So)17 b(all)h(the)f(ins)g(and)h(outs)e(of)h(what)f(the)h(mo)q(de)h (means)f(across)0 619 y(op)q(erating)j(systems)g(ha)o(v)o(en't)f (really)i(b)q(een)g(w)o(ork)o(ed)e(out)h(\(e.g.)34 b(should)21 b(the)f(VMS)g(p)q(ort)g(use)g(A)o(CLs)g(to)f(get)0 681 y(POSIX)d(seman)o(tics)g(for)e(groups?\).)0 948 y Fb(6.3)33 b(Con)n(v)n(en)n(tions)16 b(regarding)g(transmission)f(of)g(\014le)h (names)62 1090 y Ff(In)i(most)e(con)o(texts,)h(`)p Fd(/)p Ff(')f(is)h(used)h(to)e(separate)h(directory)g(and)g(\014le)h(names)f (in)h(\014lenames,)g(and)f(an)o(y)g(use)g(of)0 1152 y(other)12 b(con)o(v)o(en)o(tions)h(\(for)f(example,)h(that)f(the)h(user)g(migh)o (t)f(t)o(yp)q(e)h(on)g(the)f(command)h(line\))h(is)f(con)o(v)o(erted)g (to)f(that)0 1214 y(form.)19 b(The)c(only)g(exceptions)g(migh)o(t)g(b)q (e)g(a)f(few)g(cases)h(in)g(whic)o(h)g(the)g(serv)o(er)f(pro)o(vides)h (a)f(magic)h(co)q(okie)g(whic)o(h)0 1276 y(the)i(clien)o(t)g(then)g (rep)q(eats)f(v)o(erbatim,)h(but)f(as)g(the)h(serv)o(er)f(has)g(not)g (y)o(et)g(b)q(een)i(p)q(orted)e(b)q(ey)o(ond)h(unix,)h(the)e(t)o(w)o(o) 0 1339 y(rules)f(pro)o(vide)h(the)e(same)h(answ)o(er)f(\(and)g(what)h (to)f(do)g(if)h(future)g(serv)o(er)f(p)q(orts)h(are)f(op)q(erating)h (on)g(a)f(rep)q(ository)0 1401 y(lik)o(e)i(e:/fo)q(o)f(or)f(CVS)p 365 1401 14 2 v 17 w(R)o(OOT:[F)o(OO.BAR])h(has)g(not)g(b)q(een)h (carefully)h(though)o(t)d(out\).)0 1667 y Fb(6.4)33 b(Requests)62 1809 y Ff(File)19 b(con)o(ten)o(ts)e(\(noted)g(b)q(elo)o(w)h(as)f Fe(\014le)h(transmission)p Ff(\))g(can)f(b)q(e)h(sen)o(t)f(in)i(one)e (of)g(t)o(w)o(o)f(forms.)26 b(The)18 b(simpler)0 1871 y(form)d(is)h(a)g(n)o(um)o(b)q(er)g(of)f(b)o(ytes,)g(follo)o(w)o(ed)i (b)o(y)e(a)h(newline,)h(follo)o(w)o(ed)f(b)o(y)g(the)g(sp)q(eci\014ed)i (n)o(um)o(b)q(er)e(of)f(b)o(ytes)h(of)f(\014le)0 1934 y(con)o(ten)o(ts.)j(These)12 b(are)f(the)g(en)o(tire)h(con)o(ten)o(ts)f (of)f(the)i(sp)q(eci\014ed)h(\014le.)20 b(Second,)13 b(if)e(b)q(oth)h(clien)o(t)g(and)g(serv)o(er)f(supp)q(ort)0 1996 y(`)p Fd(gzip-file-contents)p Ff(',)21 b(a)h(`)p Fd(z)p Ff(')g(ma)o(y)f(precede)j(the)f(length,)h(and)f(the)g(`\014le)g (con)o(ten)o(ts')f(sen)o(t)g(are)g(actually)0 2058 y(compressed)16 b(with)f(`)p Fd(gzip)p Ff('.)k(The)c(length)h(sp)q(eci\014ed)h(is)f (that)e(of)h(the)g(compressed)h(v)o(ersion)f(of)g(the)h(\014le.)62 2200 y(In)i(neither)f(case)g(are)f(the)h(\014le)h(con)o(ten)o(t)e (follo)o(w)o(ed)h(b)o(y)f(an)o(y)h(additional)h(data.)23 b(The)17 b(transmission)g(of)g(a)f(\014le)0 2262 y(will)h(end)f(with)f (a)g(newline)i(i\013)f(that)e(\014le)i(\(or)f(its)g(compressed)h (form\))e(ends)h(with)h(a)f(newline.)0 2421 y Fd(Root)g Fe(pathname)i Fd(\\n)240 2483 y Ff(Resp)q(onse)e(exp)q(ected:)20 b(no.)g(T)l(ell)15 b(the)f(serv)o(er)g(whic)o(h)g Fd(CVSROOT)f Ff(to)g(use.)20 b Fe(pathname)c Ff(m)o(ust)e(already)240 2545 y(exist;)24 b(if)e(creating)f(a)g(new)h(ro)q(ot,)f(use)h(the)f Fd(init)g Ff(request,)h(not)f Fd(Root)p Ff(.)37 b Fe(pathname)24 b Ff(do)q(es)d(not)240 2608 y(include)16 b(the)e(hostname)f(of)g(the)g (serv)o(er,)h(ho)o(w)f(to)f(access)i(the)g(serv)o(er,)f(etc.;)g(b)o(y)h (the)f(time)h(the)g(CVS)240 2670 y(proto)q(col)h(is)h(in)g(use,)f (connection,)h(authen)o(tication,)f(etc.,)g(are)g(already)g(tak)o(en)g (care)g(of.)p eop %%Page: 9 9 9 8 bop 0 183 a Fd(Valid-responses)13 b Fe(request-list)k Fd(\\n)240 246 y Ff(Resp)q(onse)g(exp)q(ected:)k(no.)g(T)l(ell)16 b(the)g(serv)o(er)f(what)g(resp)q(onses)h(the)f(clien)o(t)i(will)g (accept.)k(request-)240 308 y(list)16 b(is)g(a)f(space)g(separated)g (list)h(of)f(tok)o(ens.)0 423 y Fd(valid-requests)e(\\n)240 485 y Ff(Resp)q(onse)j(exp)q(ected:)21 b(y)o(es.)f(Ask)15 b(the)h(serv)o(er)e(to)h(send)h(bac)o(k)f(a)g Fd(Valid-requests)e Ff(resp)q(onse.)0 600 y Fd(Repository)h Fe(rep)q(ository)19 b Fd(\\n)240 662 y Ff(Resp)q(onse)j(exp)q(ected:)34 b(no.)k(T)l(ell)23 b(the)e(serv)o(er)g(what)g(rep)q(ository)g(to)g(use.)38 b(This)22 b(should)g(b)q(e)g(a)240 725 y(directory)c(name)h(from)e(a)h (previous)h(serv)o(er)f(resp)q(onse.)29 b(Note)18 b(that)f(this)i(b)q (oth)f(giv)o(es)h(a)e(default)240 787 y(for)c Fd(Entry)29 b Ff(and)14 b Fd(Modified)28 b Ff(and)14 b(also)g(for)f Fd(ci)h Ff(and)g(the)g(other)g(commands;)f(normal)h(usage)g(is)h(to)240 849 y(send)h(a)f Fd(Repository)29 b Ff(for)14 b(eac)o(h)h(directory)h (in)g(whic)o(h)g(there)f(will)i(b)q(e)f(an)f Fd(Entry)30 b Ff(or)14 b Fd(Modified)g Ff(,)240 912 y(and)h(then)h(a)f(\014nal)h Fd(Repository)29 b Ff(for)14 b(the)i(original)g(directory)l(,)f(then)h (the)f(command.)0 1027 y Fd(Directory)f Fe(lo)q(cal-directory)21 b Fd(\\n)240 1089 y Ff(Additional)g(data:)26 b Fe(rep)q(ository)c Fd(\\)p Ff(n.)31 b(This)19 b(is)h(lik)o(e)f Fd(Repository)p Ff(,)f(but)h(the)g(lo)q(cal)h(name)f(of)f(the)240 1151 y(directory)d(ma)o(y)e(di\013er)i(from)e(the)i(rep)q(ository)f(name.)19 b(If)c(the)f(clien)o(t)i(uses)e(this)h(request,)f(it)h(a\013ects)240 1213 y(the)21 b(w)o(a)o(y)e(the)h(serv)o(er)g(returns)h(pathnames;)h (see)f(Section)g(6.5)f([Resp)q(onses],)h(page)g(13.)35 b Fe(lo)q(cal-)240 1276 y(directory)21 b Ff(is)c(relativ)o(e)g(to)f (the)h(top)f(lev)o(el)i(at)e(whic)o(h)h(the)g(command)g(is)g(o)q (ccurring)g(\(i.e.)24 b(the)17 b(last)240 1338 y Fd(Directory)d Ff(or)h Fd(Repository)e Ff(whic)o(h)j(is)g(sen)o(t)f(b)q(efore)h(the)f (command\).)0 1453 y Fd(Max-dotdot)f Fe(lev)o(el)k Fd(\\n)240 1515 y Ff(T)l(ell)k(the)f(serv)o(er)g(that)f Fe(lev)o(el)k Ff(lev)o(els)e(of)e(directories)i(ab)q(o)o(v)o(e)f(the)f(directory)i (whic)o(h)f Fd(Directory)240 1578 y Ff(requests)16 b(are)g(relativ)o(e) h(to)f(will)i(b)q(e)f(needed.)24 b(F)l(or)16 b(example,)h(if)f(the)h (clien)o(t)g(is)g(planning)h(to)e(use)g(a)240 1640 y Fd(Directory)d Ff(request)h(for)g(`)p Fd(../../foo)p Ff(',)e(it)j(m)o(ust)f(send)h(a)f Fd(Max-dotdot)f Ff(request)h(with)h (a)f Fe(lev)o(el)j Ff(of)240 1702 y(at)e(least)g(2.)k Fd(Max-dotdot)14 b Ff(m)o(ust)h(b)q(e)h(sen)o(t)f(b)q(efore)g(the)g (\014rst)g Fd(Directory)f Ff(request.)0 1817 y Fd(Static-directory)f (\\n)240 1879 y Ff(Resp)q(onse)j(exp)q(ected:)21 b(no.)f(T)l(ell)c(the) f(serv)o(er)g(that)f(the)h(directory)h(most)e(recen)o(tly)h(sp)q (eci\014ed)j(with)240 1942 y Fd(Repository)11 b Ff(or)h Fd(Directory)g Ff(should)h(not)f(ha)o(v)o(e)h(additional)h(\014les)f(c) o(hec)o(k)o(ed)g(out)f(unless)i(explicitly)240 2004 y(requested.)22 b(The)15 b(clien)o(t)i(sends)g(this)f(if)g(the)f Fd(Entries.Static)f Ff(\015ag)h(is)h(set,)g(whic)o(h)g(is)g(con)o(trolled)240 2066 y(b)o(y)f(the)g Fd(Set-static-directory)e Ff(and)i Fd(Clear-static-directory)d Ff(resp)q(onses.)0 2181 y Fd(Sticky)i Fe(tagsp)q(ec)k Fd(\\n)240 2244 y Ff(Resp)q(onse)e(exp)q (ected:)21 b(no.)f(T)l(ell)c(the)f(serv)o(er)g(that)f(the)h(directory)h (most)e(recen)o(tly)h(sp)q(eci\014ed)j(with)240 2306 y Fd(Repository)13 b Ff(has)h(a)g(stic)o(ky)g(tag)g(or)f(date)h Fe(tagsp)q(ec)p Ff(.)20 b(The)14 b(\014rst)g(c)o(haracter)g(of)g Fe(tagsp)q(ec)j Ff(is)d(`)p Fd(T)p Ff(')g(for)f(a)240 2368 y(tag,)h(or)h(`)p Fd(D)p Ff(')f(for)g(a)h(date.)20 b(The)15 b(remainder)h(of)f Fe(tagsp)q(ec)j Ff(con)o(tains)d(the)h (actual)f(tag)f(or)h(date.)0 2483 y Fd(Checkin-prog)f Fe(program)g Fd(\\n)240 2545 y Ff(Resp)q(onse)24 b(exp)q(ected:)35 b(no.)42 b(T)l(ell)24 b(the)e(serv)o(er)g(that)g(the)g(directory)h (most)f(recen)o(tly)h(sp)q(eci\014ed)240 2608 y(with)d Fd(Directory)d Ff(has)j(a)e(c)o(hec)o(kin)j(program)d Fe(program)p Ff(.)31 b(Suc)o(h)19 b(a)g(program)f(w)o(ould)i(ha)o(v)o (e)f(b)q(een)240 2670 y(previously)e(set)e(with)g(the)g Fd(Set-checkin-prog)e Ff(resp)q(onse.)p eop %%Page: 10 10 10 9 bop 0 183 a Fd(Update-prog)14 b Fe(program)g Fd(\\n)240 246 y Ff(Resp)q(onse)24 b(exp)q(ected:)35 b(no.)42 b(T)l(ell)24 b(the)e(serv)o(er)g(that)g(the)g(directory)h(most)f(recen)o(tly)h(sp)q (eci\014ed)240 308 y(with)18 b Fd(Directory)f Ff(has)h(an)g(up)q(date)g (program)f Fe(program)p Ff(.)27 b(Suc)o(h)19 b(a)e(program)g(w)o(ould)h (ha)o(v)o(e)g(b)q(een)240 370 y(previously)f(set)e(with)g(the)g Fd(Set-update-prog)e Ff(resp)q(onse.)0 453 y Fd(Entry)h Fe(en)o(try-line)20 b Fd(\\n)240 515 y Ff(Resp)q(onse)e(exp)q(ected:)23 b(no.)h(T)l(ell)17 b(the)g(serv)o(er)f(what)g(v)o(ersion)h(of)f(a)g (\014le)h(is)g(on)f(the)h(lo)q(cal)g(mac)o(hine.)240 577 y(The)d(name)h(in)g Fe(en)o(try-line)j Ff(is)d(a)f(name)g(relativ)o (e)h(to)e(the)i(directory)f(most)f(recen)o(tly)i(sp)q(eci\014ed)i(with) 240 639 y Fd(Repository)p Ff(.)k(If)16 b(the)g(user)g(is)h(op)q (erating)f(on)g(only)g(some)g(\014les)h(in)g(a)f(directory)l(,)g Fd(Entry)f Ff(requests)240 702 y(for)j(only)g(those)g(\014les)i(need)f (b)q(e)g(included.)31 b(If)19 b(an)f Fd(Entry)f Ff(request)i(is)f(sen)o (t)g(without)g Fd(Modified)p Ff(,)240 764 y Fd(Unchanged)p Ff(,)d(or)i Fd(Lost)f Ff(for)g(that)g(\014le)i(the)f(meaning)g(dep)q (ends)h(on)f(whether)g Fd(UseUnchanged)e Ff(has)240 826 y(b)q(een)h(sen)o(t;)f(if)h(it)f(has)g(b)q(een)h(it)g(means)f(the)g (\014le)i(is)e(lost,)g(if)h(not)e(it)i(means)f(the)g(\014le)i(is)e(unc) o(hanged.)0 909 y Fd(Modified)f Fe(\014lename)19 b Fd(\\n)240 971 y Ff(Resp)q(onse)e(exp)q(ected:)k(no.)f(Additional)d(data:)j(mo)q (de,)15 b Fd(\\)p Ff(n,)g(\014le)i(transmission.)k(Send)16 b(the)f(serv)o(er)240 1033 y(a)i(cop)o(y)h(of)f(one)h(lo)q(cally)i(mo)q (di\014ed)f(\014le.)28 b Fe(\014lename)22 b Ff(is)c(relativ)o(e)g(to)f (the)h(most)f(recen)o(t)h(rep)q(ository)240 1095 y(sen)o(t)e(with)h Fd(Repository)p Ff(.)23 b(If)17 b(the)g(user)g(is)g(op)q(erating)g(on)f (only)i(some)e(\014les)h(in)h(a)e(directory)l(,)h(only)240 1158 y(those)i(\014les)h(need)g(to)f(b)q(e)h(included.)34 b(This)20 b(can)g(also)f(b)q(e)h(sen)o(t)f(without)g Fd(Entry)p Ff(,)g(if)h(there)f(is)h(no)240 1220 y(en)o(try)15 b(for)f(the)i(\014le.)0 1302 y Fd(Lost)f Fe(\014lename)j Fd(\\n)240 1365 y Ff(Resp)q(onse)h(exp)q(ected:)28 b(no.)g(T)l(ell)20 b(the)e(serv)o(er)g(that)g Fe(\014lename)k Ff(no)c(longer)g(exists.)30 b(The)18 b(name)g(is)240 1427 y(relativ)o(e)d(to)f(the)h(most)f(recen)o (t)h(rep)q(ository)f(sen)o(t)h(with)g Fd(Repository)p Ff(.)j(This)d(is)g(used)h(for)e(an)o(y)g(case)240 1489 y(in)j(whic)o(h)h Fd(Entry)e Ff(is)h(b)q(eing)h(sen)o(t)e(but)h(the)g (\014le)g(no)g(longer)g(exists.)24 b(If)17 b(the)g(clien)o(t)h(has)e (issued)i(the)240 1551 y Fd(UseUnchanged)c Ff(request,)g(then)i(this)g (request)f(is)g(not)g(used.)0 1634 y Fd(Unchanged)f Fe(\014lename)19 b Fd(\\n)240 1696 y Ff(Resp)q(onse)i(exp)q(ected:)30 b(no.)j(T)l(ell)21 b(the)f(serv)o(er)f(that)g Fe(\014lename)24 b Ff(has)19 b(not)g(b)q(een)i(mo)q(di\014ed)g(in)g(the)240 1758 y(c)o(hec)o(k)o(ed)e(out)g(directory)l(.)31 b(The)19 b(name)g(is)g(relativ)o(e)g(to)g(the)f(most)g(recen)o(t)h(rep)q (ository)g(sen)o(t)g(with)240 1821 y Fd(Repository)p Ff(.)f(This)e(request)f(can)h(only)g(b)q(e)f(issued)i(if)e Fd(UseUnchanged)f Ff(has)h(b)q(een)h(sen)o(t.)0 1903 y Fd(UseUnchanged)e(\\n)240 1965 y Ff(Resp)q(onse)19 b(exp)q(ected:)27 b(no.)h(T)l(ell)20 b(the)e(serv)o(er)g(that)f(the)h (clien)o(t)i(will)f(b)q(e)g(indicating)h(unmo)q(di\014ed)240 2028 y(\014les)f(with)g Fd(Unchanged)p Ff(,)e(and)i(that)f(\014les)h (for)f(whic)o(h)h(no)f(information)h(is)f(sen)o(t)g(are)g(nonexisten)o (t)240 2090 y(on)c(the)g(clien)o(t)i(side,)f(not)e(unc)o(hanged.)21 b(This)14 b(is)h(necessary)f(for)g(correct)f(b)q(eha)o(vior)i(since)g (only)g(the)240 2152 y(serv)o(er)g(kno)o(ws)f(what)h(p)q(ossible)i (\014les)f(ma)o(y)f(exist,)g(and)g(th)o(us)g(what)g(\014les)h(are)f (nonexisten)o(t.)0 2235 y Fd(Notify)f Fe(\014lename)19 b Fd(\\n)240 2297 y Ff(T)l(ell)e(the)g(serv)o(er)e(that)h(a)f Fd(edit)h Ff(or)f Fd(unedit)g Ff(command)h(has)g(tak)o(en)g(place.)23 b(The)16 b(serv)o(er)g(needs)h(to)240 2359 y(send)g(a)g Fd(Notified)e Ff(resp)q(onse,)j(but)e(suc)o(h)i(resp)q(onse)f(is)g (deferred)g(un)o(til)h(the)f(next)g(time)g(that)f(the)240 2421 y(serv)o(er)f(is)h(sending)g(resp)q(onses.)k(Resp)q(onse)d(exp)q (ected:)k(no.)e(Additional)e(data:)360 2483 y Fe(noti\014cation-t)o(yp) q(e)27 b Fd(\\t)d Fe(time)j Fd(\\t)c Fe(clien)o(thost)j Fd(\\t)360 2535 y Fe(w)o(orking-dir)i Fd(\\t)23 b Fe(w)o(atc)o(hes)i Fd(\\n)240 2608 y Ff(where)18 b Fe(noti\014cation-t)o(yp)q(e)j Ff(is)d(`)p Fd(E)p Ff(')e(for)h(edit)h(or)f(`)p Fd(U)p Ff(')g(for)g(unedit,)i Fe(time)h Ff(is)e(the)g(time)g(at)f(whic)o(h)h (the)240 2670 y(edit)c(or)e(unedit)j(to)q(ok)d(place,)i Fe(clien)o(thost)h Ff(is)f(the)f(name)g(of)g(the)g(host)f(on)h(whic)o (h)h(the)f(edit)h(or)f(unedit)p eop %%Page: 11 11 11 10 bop 240 183 a Ff(to)q(ok)17 b(place,)h(and)f Fe(w)o(orking-dir)k Ff(is)d(the)f(pathname)g(of)g(the)g(w)o(orking)g(directory)h(where)f (the)g(edit)240 246 y(or)e(unedit)i(to)q(ok)e(place.)21 b Fe(w)o(atc)o(hes)c Ff(are)e(the)h(temp)q(orary)f(w)o(atc)o(hes)f(to)h (set;)g(if)h(it)g(is)g(follo)o(w)o(ed)g(b)o(y)f Fd(\\)p Ff(t)240 308 y(then)h(the)f(tab)g(and)g(the)g(rest)g(of)g(the)g(line)i (are)e(ignored.)0 393 y Fd(Questionable)f Fe(\014lename)k Fd(\\n)240 455 y Ff(Resp)q(onse)c(exp)q(ected:)20 b(no.)f(Additional)c (data:)j(no.)h(T)l(ell)c(the)e(serv)o(er)f(to)g(c)o(hec)o(k)i(whether)f Fe(\014lename)240 517 y Ff(should)24 b(b)q(e)f(ignored,)i(and)e(if)g (not,)h(next)e(time)h(the)g(serv)o(er)f(sends)i(resp)q(onses,)g(send)g (\(in)f(a)f Fd(M)240 580 y Ff(resp)q(onse\))15 b(`)p Fd(?)p Ff(')g(follo)o(w)o(ed)g(b)o(y)g(the)h(directory)f(and)g (\014lename.)0 665 y Fd(Case)g(\\n)81 b Ff(T)l(ell)22 b(the)e(serv)o(er)g(that)f(\014lenames)j(should)f(b)q(e)g(matc)o(hed)f (against)g(ignore)g(patterns)g(in)h(a)f(case-)240 727 y(insensitiv)o(e)e(fashion.)24 b(Note)16 b(that)g(this)h(do)q(es)g(not) f(apply)h(to)f(other)g(comparisons|for)g(example)240 789 y(the)i(\014lenames)g(giv)o(en)h(in)f Fd(Entry)f Ff(and)h Fd(Modified)e Ff(requests)i(for)f(the)h(same)f(\014le)i(m)o (ust)e(matc)o(h)g(in)240 852 y(case)e(regardless)h(of)e(whether)i(the)f Fd(Case)g Ff(request)g(is)h(sen)o(t.)0 937 y Fd(Argument)e Fe(text)i Fd(\\n)240 999 y Ff(Resp)q(onse)23 b(exp)q(ected:)34 b(no.)39 b(Sa)o(v)o(e)21 b(argumen)o(t)g(for)g(use)h(in)g(a)g (subsequen)o(t)g(command.)39 b(Argu-)240 1061 y(men)o(ts)14 b(accum)o(ulate)i(un)o(til)f(an)g(argumen)o(t-using)g(command)f(is)i (giv)o(en,)f(at)f(whic)o(h)h(p)q(oin)o(t)g(they)g(are)240 1124 y(forgotten.)0 1209 y Fd(Argumentx)f Fe(text)i Fd(\\n)240 1271 y Ff(Resp)q(onse)k(exp)q(ected:)28 b(no.)i(App)q(end)20 b Fd(\\)p Ff(n)e(follo)o(w)o(ed)h(b)o(y)g(text)f(to)g(the)g(curren)o(t) h(argumen)o(t)f(b)q(eing)240 1333 y(sa)o(v)o(ed.)0 1418 y Fd(Global_option)13 b Fe(option)j Fd(\\n)240 1481 y Ff(T)l(ransmit)c(one)h(of)e(the)i(global)g(options)f(`)p Fd(-q)p Ff(',)f(`)p Fd(-Q)p Ff(',)h(`)p Fd(-l)p Ff(',)f(`)p Fd(-t)p Ff(',)h(`)p Fd(-r)p Ff(',)f(or)h(`)p Fd(-n)p Ff('.)18 b Fe(option)12 b Ff(m)o(ust)g(b)q(e)h(one)240 1543 y(of)h(those)g(strings,)h(no)f(v)m(ariations)h(\(suc)o(h)g(as)f (com)o(bining)i(of)e(options\))g(are)h(allo)o(w)o(ed.)20 b(F)l(or)14 b(graceful)240 1605 y(handling)g(of)e Fd(valid-requests)p Ff(,)f(it)h(is)h(probably)g(b)q(etter)g(to)e(mak)o(e)h(new)h(global)g (options)f(separate)240 1667 y(requests,)j(rather)f(than)h(trying)h(to) e(add)i(them)f(to)f(this)i(request.)0 1753 y Fd(Set)f Fe(v)m(ariable)s Fd(=)p Fe(v)m(alue)20 b Fd(\\n)240 1815 y Ff(Set)15 b(a)g(user)h(v)m(ariable)g Fe(v)m(ariable)j Ff(to)c Fe(v)m(alue)p Ff(.)0 1900 y Fd(expand-modules)e(\\n)240 1962 y Ff(Resp)q(onse)20 b(exp)q(ected:)27 b(y)o(es.)j(Expand)18 b(the)h(mo)q(dules)g(whic)o(h)h(are)e(sp)q(eci\014ed)i(in)g(the)e (argumen)o(ts.)240 2024 y(Returns)h(the)g(data)e(in)j Fd(Module-expansion)c Ff(resp)q(onses.)30 b(Note)18 b(that)g(the)g (serv)o(er)g(can)h(assume)240 2087 y(that)d(this)h(is)f(c)o(hec)o(k)o (out)g(or)g(exp)q(ort,)h(not)f(rtag)f(or)h(rdi\013;)g(the)h(latter)f (do)g(not)g(access)h(the)f(w)o(orking)240 2149 y(directory)f(and)h(th)o (us)f(ha)o(v)o(e)g(no)g(need)h(to)e(expand)i(mo)q(dules)g(on)g(the)f (clien)o(t)h(side.)0 2234 y Fd(co)f(\\n)0 2296 y(ci)g(\\n)0 2359 y(diff)g(\\n)0 2421 y(tag)g(\\n)0 2483 y(status)f(\\n)0 2545 y(log)h(\\n)0 2608 y(add)g(\\n)0 2670 y(remove)f(\\n)p eop %%Page: 12 12 12 11 bop 0 183 a Fd(rdiff)14 b(\\n)0 246 y(rtag)h(\\n)0 308 y(admin)f(\\n)0 370 y(export)g(\\n)0 432 y(history)g(\\n)0 495 y(watchers)g(\\n)0 557 y(editors)g(\\n)0 619 y(annotate)g(\\n)240 681 y Ff(Resp)q(onse)e(exp)q(ected:)18 b(y)o(es.)g(Actually)12 b(do)e(a)h(cvs)f(command.)18 b(This)11 b(uses)g(an)o(y)f(previous)h Fd(Argument)p Ff(,)240 744 y Fd(Repository)p Ff(,)21 b Fd(Entry)p Ff(,)g Fd(Modified)p Ff(,)h(or)e Fd(Lost)h Ff(requests,)h(if)g(they)f(ha)o(v)o(e)g(b)q(een)h(sen)o(t.)38 b(The)21 b(last)240 806 y Fd(Repository)g Ff(sen)o(t)h(sp)q(eci\014es)h (the)g(w)o(orking)e(directory)i(at)e(the)h(time)h(of)e(the)h(op)q (eration.)41 b(No)240 868 y(pro)o(vision)21 b(is)g(made)f(for)f(an)o(y) h(input)i(from)d(the)h(user.)36 b(This)20 b(means)h(that)e Fd(ci)h Ff(m)o(ust)g(use)g(a)g Fd(-m)240 930 y Ff(argumen)o(t)14 b(if)i(it)g(w)o(an)o(ts)e(to)g(sp)q(ecify)j(a)e(log)g(message.)0 1016 y Fd(init)g Fe(ro)q(ot-name)i Fd(\\n)240 1078 y Ff(Resp)q(onse)e(exp)q(ected:)21 b(y)o(es.)e(If)14 b(it)g(do)q(esn't)g (already)g(exist,)g(create)g(a)g Fa(cvs)f Ff(rep)q(ository)h Fe(ro)q(ot-name)p Ff(.)240 1140 y(The)h Fd(Root)g Ff(request)g(need)h (not)f(ha)o(v)o(e)g(b)q(een)h(previously)h(sen)o(t.)0 1225 y Fd(update)d(\\n)34 b Ff(Resp)q(onse)17 b(exp)q(ected:)k(y)o(es.) f(Actually)d(do)e(a)g Fd(cvs)g(update)f Ff(command.)21 b(This)16 b(uses)f(an)o(y)g(previous)240 1287 y Fd(Argument)p Ff(,)k Fd(Repository)p Ff(,)g Fd(Entry)p Ff(,)h Fd(Modified)p Ff(,)g(or)f Fd(Lost)g Ff(requests,)h(if)h(they)e(ha)o(v)o(e)h(b)q(een)h (sen)o(t.)240 1350 y(The)15 b(last)g Fd(Repository)e Ff(sen)o(t)h(sp)q(eci\014es)j(the)e(w)o(orking)f(directory)h(at)f(the)h (time)g(of)f(the)h(op)q(eration.)240 1412 y(The)i Fd(-I)f Ff(option)h(is)g(not)g(used{\014les)h(whic)o(h)f(the)g(clien)o(t)h(can) f(decide)h(whether)f(to)f(ignore)h(are)f(not)240 1474 y(men)o(tioned)g(and)f(the)h(clien)o(t)g(sends)g(the)f Fd(Questionable)f Ff(request)h(for)f(others.)0 1582 y Fd(import)g(\\n)34 b Ff(Resp)q(onse)17 b(exp)q(ected:)k(y)o(es.)f (Actually)d(do)e(a)g Fd(cvs)g(import)f Ff(command.)21 b(This)16 b(uses)f(an)o(y)g(previous)240 1645 y Fd(Argument)p Ff(,)k Fd(Repository)p Ff(,)g Fd(Entry)p Ff(,)h Fd(Modified)p Ff(,)g(or)f Fd(Lost)g Ff(requests,)h(if)h(they)e(ha)o(v)o(e)h(b)q(een)h (sen)o(t.)240 1707 y(The)15 b(last)g Fd(Repository)e Ff(sen)o(t)h(sp)q(eci\014es)j(the)e(w)o(orking)f(directory)h(at)f(the)h (time)g(of)f(the)h(op)q(eration.)240 1769 y(The)k(\014les)g(to)f(b)q(e) h(imp)q(orted)g(are)f(sen)o(t)g(in)h Fd(Modified)f Ff(requests)g (\(\014les)h(whic)o(h)g(the)g(clien)o(t)h(kno)o(ws)240 1831 y(should)c(b)q(e)f(ignored)h(are)e(not)h(sen)o(t;)f(the)h(serv)o (er)f(m)o(ust)h(still)h(pro)q(cess)f(the)g(CVSR)o(OOT/cvsignore)240 1894 y(\014le)h(unless)h(-I)e(!)g(is)h(sen)o(t\).)j(A)c(log)h(message)e (m)o(ust)h(ha)o(v)o(e)g(b)q(een)h(sp)q(eci\014ed)h(with)f(a)f Fd(-m)g Ff(argumen)o(t.)0 2002 y Fd(watch-on)f(\\n)0 2064 y(watch-off)g(\\n)0 2126 y(watch-add)g(\\n)0 2188 y(watch-remove)g(\\n)240 2251 y Ff(Resp)q(onse)22 b(exp)q(ected:)31 b(y)o(es.)36 b(Actually)21 b(do)g(the)f Fd(cvs)15 b(watch)g(on)p Ff(,)21 b Fd(cvs)15 b(watch)f(off)p Ff(,)21 b Fd(cvs)15 b(watch)240 2313 y(add)p Ff(,)d(and)g Fd(cvs)i(watch)h(remove)c Ff(commands,)h(resp)q(ectiv)o(ely)l(.)20 b(This)13 b(uses)f(an)o(y)f (previous)h Fd(Argument)p Ff(,)240 2375 y Fd(Repository)p Ff(,)21 b Fd(Entry)p Ff(,)g Fd(Modified)p Ff(,)h(or)e Fd(Lost)h Ff(requests,)h(if)g(they)f(ha)o(v)o(e)g(b)q(een)h(sen)o(t.)38 b(The)21 b(last)240 2437 y Fd(Repository)14 b Ff(sen)o(t)h(sp)q (eci\014es)i(the)e(w)o(orking)g(directory)g(at)g(the)g(time)h(of)e(the) i(op)q(eration.)0 2545 y Fd(release)e(\\n)240 2608 y Ff(Resp)q(onse)23 b(exp)q(ected:)34 b(y)o(es.)40 b(Note)22 b(that)f(a)g Fd(cvs)15 b(release)21 b Ff(command)h(has)g(tak)o(en)f (place)i(and)240 2670 y(up)q(date)16 b(the)f(history)g(\014le)h (accordingly)l(.)p eop %%Page: 13 13 13 12 bop 0 183 a Fd(noop)15 b(\\n)81 b Ff(Resp)q(onse)18 b(exp)q(ected:)25 b(y)o(es.)h(This)17 b(request)h(is)f(a)g(n)o(ull)i (command)e(in)g(the)h(sense)f(that)g(it)g(do)q(esn't)240 246 y(do)e(an)o(ything,)g(but)g(merely)h(\(as)f(with)g(an)o(y)g(other)g (requests)g(exp)q(ecting)h(a)f(resp)q(onse\))g(sends)h(bac)o(k)240 308 y(an)o(y)f(resp)q(onses)h(p)q(ertaining)g(to)f(p)q(ending)i (errors,)d(p)q(ending)j Fd(Notified)d Ff(resp)q(onses,)h(etc.)0 397 y Fd(update-patches)e(\\n)240 459 y Ff(This)19 b(request)g(do)q(es) g(not)f(actually)h(do)g(an)o(ything.)30 b(It)19 b(is)g(used)g(as)f(a)g (signal)i(that)e(the)g(serv)o(er)g(is)240 521 y(able)f(to)e(generate)h (patc)o(hes)g(when)h(giv)o(en)g(an)f Fd(update)f Ff(request.)23 b(The)16 b(clien)o(t)h(m)o(ust)f(issue)h(the)f Fd(-u)240 583 y Ff(argumen)o(t)e(to)h Fd(update)f Ff(in)i(order)f(to)g(receiv)o (e)h(patc)o(hes.)0 672 y Fd(gzip-file-contents)d Fe(lev)o(el)18 b Fd(\\n)240 734 y Ff(This)k(request)f(asks)g(the)g(serv)o(er)g(to)g (\014lter)g(\014les)h(it)g(sends)g(to)e(the)i(clien)o(t)g(through)f (the)g(`)p Fd(gzip)p Ff(')240 797 y(program,)g(using)h(the)f(sp)q (eci\014ed)i(lev)o(el)f(of)f(compression.)38 b(If)21 b(this)h(request)f(is)g(not)g(made,)h(the)240 859 y(serv)o(er)15 b(m)o(ust)f(not)h(do)g(an)o(y)g(compression.)240 934 y(This)i(is)g(only)g(a)g(hin)o(t)g(to)f(the)g(serv)o(er.)24 b(It)16 b(ma)o(y)g(still)i(decide)h(\(for)c(example,)j(in)f(the)g(case) f(of)g(v)o(ery)240 997 y(small)i(\014les,)g(or)e(\014les)i(that)e (already)h(app)q(ear)g(to)g(b)q(e)g(compressed\))g(not)g(to)f(do)h(the) g(compression.)240 1059 y(Compression)e(is)h(indicated)h(b)o(y)e(a)g(`) p Fd(z)p Ff(')f(preceding)j(the)e(\014le)h(length.)240 1135 y(Av)m(ailabilit)o(y)k(of)e(this)g(request)g(in)g(the)g(serv)o(er) f(indicates)i(to)e(the)h(clien)o(t)h(that)e(it)h(ma)o(y)f(compress)240 1197 y(\014les)f(sen)o(t)f(to)g(the)g(serv)o(er,)f(regardless)i(of)f (whether)g(the)g(clien)o(t)i(actually)f(uses)f(this)h(request.)0 1286 y Fe(other-request)g(text)g Fd(\\n)240 1348 y Ff(Resp)q(onse)i (exp)q(ected:)26 b(y)o(es.)f(An)o(y)18 b(unrecognized)g(request)g(exp)q (ects)g(a)e(resp)q(onse,)i(and)g(do)q(es)f(not)240 1410 y(con)o(tain)k(an)o(y)g(additional)i(data.)38 b(The)21 b(resp)q(onse)h(will)h(normally)f(b)q(e)g(something)g(lik)o(e)g(`)p Fd(error)240 1472 y(unrecognized)14 b(request)p Ff(',)d(but)j(it)g (could)g(b)q(e)g(a)f(di\013eren)o(t)g(error)g(if)h(a)f(previous)h (command)f(whic)o(h)240 1535 y(do)q(esn't)i(exp)q(ect)h(a)f(resp)q (onse)h(pro)q(duced)g(an)f(error.)62 1686 y(When)h(the)f(clien)o(t)i (is)e(done,)h(it)f(drops)g(the)g(connection.)0 1917 y Fb(6.5)33 b(Resp)r(onses)62 2055 y Ff(After)19 b(a)h(command)f(whic)o (h)h(exp)q(ects)g(a)g(resp)q(onse,)g(the)g(serv)o(er)f(sends)h(ho)o(w)o (ev)o(er)f(man)o(y)g(of)g(the)g(follo)o(wing)0 2117 y(resp)q(onses)d (are)f(appropriate.)20 b(P)o(athnames)15 b(are)g(of)g(the)g(actual)h (\014les)g(op)q(erated)f(on)h(\(i.e.)k(they)c(do)f(not)g(con)o(tain)0 2179 y(`)p Fd(,v)p Ff(')g(endings\),)h(and)g(are)f(suitable)i(for)e (use)h(in)h(a)e(subsequen)o(t)i Fd(Repository)d Ff(request.)21 b(Ho)o(w)o(ev)o(er,)15 b(if)h(the)g(clien)o(t)0 2242 y(has)f(used)h(the)f Fd(Directory)f Ff(request,)h(then)h(it)f(is)h (instead)g(a)f(lo)q(cal)h(directory)g(name)f(relativ)o(e)h(to)e(the)i (directory)0 2304 y(in)h(whic)o(h)g(the)g(command)f(w)o(as)g(giv)o(en)h (\(i.e.)23 b(the)17 b(last)f Fd(Directory)f Ff(b)q(efore)i(the)f (command\).)23 b(Then)17 b(a)f(newline)0 2366 y(and)f(a)f(rep)q (ository)g(name)h(\(the)f(pathname)h(whic)o(h)g(is)g(sen)o(t)g(if)g Fd(Directory)e Ff(is)i(not)f(used\).)20 b(Then)15 b(the)g(slash)g(and)0 2428 y(the)g(\014lename.)21 b(F)l(or)15 b(example,)g(for)g(a)g(\014le)h (`)p Fd(i386.mh)p Ff(')d(whic)o(h)j(is)g(in)g(the)f(lo)q(cal)i (directory)e(`)p Fd(gas.clean/config)p Ff(')0 2491 y(and)g(for)g(whic)o (h)h(the)f(rep)q(ository)g(is)h(`)p Fd(/rel/cvsfiles/devo/gas/c)o (onfig)p Ff(')o(:)120 2618 y Fd(gas.clean/config/)120 2670 y(/rel/cvsfiles/devo/gas/con)o(fig/i38)o(6.mh)p eop %%Page: 14 14 14 13 bop 62 183 a Ff(An)o(y)15 b(resp)q(onse)h(alw)o(a)o(ys)f(ends)g (with)h(`)p Fd(error)p Ff(')e(or)g(`)p Fd(ok)p Ff('.)19 b(This)d(indicates)h(that)d(the)h(resp)q(onse)h(is)g(o)o(v)o(er.)0 338 y Fd(Valid-requests)d Fe(request-list)k Fd(\\n)240 401 y Ff(Indicate)i(what)d(requests)i(the)f(serv)o(er)g(will)i(accept.) 26 b Fe(request-list)20 b Ff(is)e(a)f(space)g(separated)g(list)h(of)240 463 y(tok)o(ens.)h(If)13 b(the)h(serv)o(er)f(supp)q(orts)g(sending)i (patc)o(hes,)e(it)h(will)h(include)h(`)p Fd(update-patches)p Ff(')10 b(in)15 b(this)240 525 y(list.)21 b(The)15 b(`)p Fd(update-patches)p Ff(')e(request)i(do)q(es)g(not)g(actually)h(do)f (an)o(ything.)0 618 y Fd(Checked-in)f Fe(pathname)j Fd(\\n)240 680 y Ff(Additional)h(data:)i(New)c(En)o(tries)g(line,)i Fd(\\)p Ff(n.)k(This)17 b(means)e(a)h(\014le)h Fe(pathname)h Ff(has)e(b)q(een)h(success-)240 743 y(fully)f(op)q(erated)e(on)g(\(c)o (hec)o(k)o(ed)g(in,)h(added,)g(etc.\).)k(name)14 b(in)h(the)g(En)o (tries)f(line)i(is)f(the)f(same)g(as)g(the)240 805 y(last)h(comp)q (onen)o(t)g(of)g Fe(pathname)p Ff(.)0 898 y Fd(New-entry)f Fe(pathname)k Fd(\\n)240 960 y Ff(Additional)d(data:)k(New)13 b(En)o(tries)h(line,)h Fd(\\)p Ff(n.)k(Lik)o(e)c Fd(Checked-in)p Ff(,)d(but)h(the)h(\014le)h(is)f(not)f(up)h(to)f(date.)0 1053 y Fd(Updated)h Fe(pathname)k Fd(\\n)240 1115 y Ff(Additional)f (data:)i(New)c(En)o(tries)g(line,)i Fd(\\)p Ff(n,)e(mo)q(de,)g Fd(\\)p Ff(n,)f(\014le)j(transmission.)j(A)15 b(new)g(cop)o(y)g(of)g (the)240 1178 y(\014le)i(is)g(enclosed.)24 b(This)16 b(is)h(used)g(for)e(a)h(new)g(revision)i(of)d(an)h(existing)h(\014le,)g (or)f(for)f(a)h(new)g(\014le,)h(or)240 1240 y(for)d(an)o(y)h(other)f (case)h(in)h(whic)o(h)g(the)f(lo)q(cal)h(\(clien)o(t-side\))h(cop)o(y)d (of)h(the)g(\014le)h(needs)g(to)e(b)q(e)h(up)q(dated,)240 1302 y(and)i(after)e(b)q(eing)j(up)q(dated)f(it)g(will)h(b)q(e)f(up)g (to)f(date.)23 b(If)17 b(an)o(y)f(directory)h(in)g(pathname)g(do)q(es)f (not)240 1364 y(exist,)f(create)g(it.)0 1457 y Fd(Merged)f Fe(pathname)k Fd(\\n)240 1520 y Ff(This)f(is)h(just)e(lik)o(e)i Fd(Updated)e Ff(and)h(tak)o(es)f(the)h(same)g(additional)h(data,)f (with)g(the)g(one)g(di\013erence)240 1582 y(that)e(after)g(the)h(new)h (cop)o(y)e(of)h(the)g(\014le)h(is)f(enclosed,)h(it)g(will)g(still)h (not)d(b)q(e)i(up)f(to)f(date.)22 b(Used)17 b(for)240 1644 y(the)e(results)h(of)f(a)g(merge,)f(with)i(or)e(without)i (con\015icts.)0 1737 y Fd(Patched)e Fe(pathname)k Fd(\\n)240 1799 y Ff(This)f(is)h(just)e(lik)o(e)i Fd(Updated)e Ff(and)h(tak)o(es)f (the)h(same)g(additional)h(data,)f(with)g(the)g(one)g(di\013erence)240 1862 y(that)g(instead)i(of)e(sending)i(a)f(new)g(cop)o(y)g(of)f(the)h (\014le,)i(the)e(serv)o(er)f(sends)i(a)e(patc)o(h)h(pro)q(duced)h(b)o (y)240 1924 y(`)p Fd(diff)14 b(-u)p Ff('.)k(This)13 b(clien)o(t)h(m)o (ust)e(apply)h(this)f(patc)o(h,)h(using)g(the)f(`)p Fd(patch)p Ff(')f(program,)g(to)h(the)g(existing)240 1986 y(\014le.)23 b(This)17 b(will)h(only)e(b)q(e)h(used)f(when)h(the)f(clien)o(t)h(has)f (an)g(exact)g(cop)o(y)g(of)f(an)h(earlier)h(revision)g(of)240 2048 y(a)e(\014le.)21 b(This)16 b(resp)q(onse)f(is)h(only)g(used)g(if)f (the)g Fd(update)g Ff(command)g(is)h(giv)o(en)f(the)h(`)p Fd(-u)p Ff(')e(argumen)o(t.)0 2141 y Fd(Mode)h Fe(mo)q(de)j Fd(\\n)240 2203 y Ff(This)j Fe(mo)q(de)h Ff(applies)g(to)d(the)h(next)g (\014le)h(men)o(tioned)g(in)g Fd(Checked-in)p Ff(.)33 b(It)20 b(do)q(es)g(not)g(apply)h(to)240 2266 y(an)o(y)f(request)f (whic)o(h)i(follo)o(ws)f(a)g Fd(Checked-in)p Ff(,)f Fd(New-entry)p Ff(,)g Fd(Updated)p Ff(,)h Fd(Merged)p Ff(,)g(or)f Fd(Patched)240 2328 y Ff(resp)q(onse.)0 2421 y Fd(Checksum)14 b Fe(c)o(hec)o(ksum)p Fd(\\n)240 2483 y Ff(The)j Fe(c)o(hec)o(ksum)g Ff(applies)h(to)e(the)g (next)h(\014le)g(sen)o(t)g(o)o(v)o(er)e(via)i Fd(Updated)p Ff(,)f Fd(Merged)p Ff(,)f(or)h Fd(Patched)p Ff(.)23 b(In)240 2545 y(the)18 b(case)f(of)g Fd(Patched)p Ff(,)g(the)g(c)o(hec)o(ksum)h (applies)h(to)e(the)h(\014le)g(after)f(b)q(eing)i(patc)o(hed,)f(not)f (to)g(the)240 2608 y(patc)o(h)f(itself.)24 b(The)17 b(clien)o(t)h (should)f(compute)g(the)f(c)o(hec)o(ksum)h(itself,)g(after)f(receiving) i(the)e(\014le)h(or)240 2670 y(patc)o(h,)h(and)h(signal)g(an)f(error)f (if)i(the)f(c)o(hec)o(ksums)g(do)g(not)g(matc)o(h.)28 b(The)19 b(c)o(hec)o(ksum)f(is)h(the)f(128)p eop %%Page: 15 15 15 14 bop 240 183 a Ff(bit)15 b(MD5)f(c)o(hec)o(ksum)i(represen)o(ted)f (as)f(32)h(hex)g(digits.)21 b(This)15 b(resp)q(onse)g(is)h(optional,)f (and)g(is)g(only)240 246 y(used)h(if)f(the)h(clien)o(t)g(supp)q(orts)f (it)h(\(as)e(judged)i(b)o(y)f(the)h Fd(Valid-responses)d Ff(request\).)0 342 y Fd(Copy-file)h Fe(pathname)k Fd(\\n)240 404 y Ff(Additional)e(data:)j Fe(newname)e Fd(\\)p Ff(n.)j(Cop)o(y)14 b(\014le)h Fe(pathname)i Ff(to)d Fe(newname)j Ff(in)e(the)g(same)f (directory)240 466 y(where)h(it)h(already)f(is.)21 b(This)16 b(do)q(es)f(not)g(a\013ect)f Fd(CVS/Entries)p Ff(.)0 563 y Fd(Removed)g Fe(pathname)k Fd(\\n)240 625 y Ff(The)d(\014le)i (has)e(b)q(een)h(remo)o(v)o(ed)f(from)f(the)h(rep)q(ository)g(\(this)h (is)f(the)h(case)f(where)g(cvs)h(prin)o(ts)f(`)p Fd(file)240 687 y(foobar.c)f(is)h(no)g(longer)f(pertinent)p Ff('\).)0 784 y Fd(Remove-entry)g Fe(pathname)j Fd(\\n)240 846 y Ff(The)g(\014le)g(needs)g(its)g(en)o(try)f(remo)o(v)o(ed)g(from)f Fd(CVS/Entries)p Ff(,)g(but)h(the)h(\014le)g(itself)h(is)e(already)h (gone)240 908 y(\(this)f(happ)q(ens)h(in)g(resp)q(onse)f(to)f(a)h Fd(ci)f Ff(request)h(whic)o(h)h(in)o(v)o(olv)o(es)f(committing)g(the)g (remo)o(v)m(al)g(of)f(a)240 971 y(\014le\).)0 1067 y Fd(Set-static-directory)d Fe(pathname)18 b Fd(\\n)240 1129 y Ff(This)i(instructs)f(the)h(clien)o(t)g(to)f(set)g(the)g Fd(Entries.Static)e Ff(\015ag,)j(whic)o(h)g(it)g(should)g(then)f(send) 240 1192 y(bac)o(k)c(to)g(the)g(serv)o(er)g(in)i(a)e Fd(Static-directory)e Ff(request)i(whenev)o(er)h(the)f(directory)h(is)g (op)q(erated)240 1254 y(on.)22 b Fe(pathname)c Ff(ends)f(in)f(a)g (slash;)g(its)g(purp)q(ose)h(is)f(to)f(sp)q(ecify)j(a)d(directory)l(,)h (not)g(a)f(\014le)i(within)g(a)240 1316 y(directory)l(.)0 1413 y Fd(Clear-static-directory)12 b Fe(pathname)18 b Fd(\\n)240 1475 y Ff(Lik)o(e)e Fd(Set-static-directory)p Ff(,)c(but)j(clear,)h(not)f(set,)f(the)i(\015ag.)0 1571 y Fd(Set-sticky)e Fe(pathname)j Fd(\\n)240 1634 y Ff(Additional)h (data:)k Fe(tagsp)q(ec)d Fd(\\)p Ff(n.)24 b(T)l(ell)18 b(the)e(clien)o(t)i(to)e(set)g(a)g(stic)o(ky)h(tag)e(or)h(date,)h(whic) o(h)g(should)240 1696 y(b)q(e)f(supplied)i(with)f(the)e Fd(Sticky)g Ff(request)h(for)f(future)h(op)q(erations.)21 b Fe(pathname)e Ff(ends)d(in)g(a)g(slash;)240 1758 y(its)e(purp)q(ose)h (is)g(to)e(sp)q(ecify)i(a)f(directory)l(,)g(not)g(a)g(\014le)h(within)g (a)f(directory)l(.)20 b(The)14 b(\014rst)g(c)o(haracter)f(of)240 1820 y Fe(tagsp)q(ec)k Ff(is)e(`)p Fd(T)p Ff(')e(for)h(a)g(tag,)f(or)h (`)p Fd(D)p Ff(')f(for)h(a)g(date.)19 b(The)c(remainder)g(of)f Fe(tagsp)q(ec)j Ff(con)o(tains)d(the)h(actual)240 1883 y(tag)f(or)h(date.)0 1979 y Fd(Clear-sticky)f Fe(pathname)j Fd(\\n)240 2041 y Ff(Clear)e(an)o(y)g(stic)o(ky)h(tag)e(or)g(date)h (set)g(b)o(y)h Fd(Set-sticky)p Ff(.)0 2138 y Fd(Template)e Fe(pathname)k Fd(\\n)240 2200 y Ff(Additional)k(data:)28 b(\014le)21 b(transmission)f(\(note:)28 b(compressed)20 b(\014le)h(transmissions)f(are)f(not)g(sup-)240 2262 y(p)q(orted\).)35 b Fe(pathname)23 b Ff(ends)e(in)h(a)e(slash;)j(its)d (purp)q(ose)h(is)g(to)f(sp)q(ecify)i(a)e(directory)l(,)i(not)e(a)g (\014le)240 2325 y(within)h(a)e(directory)l(.)33 b(T)l(ell)21 b(the)f(clien)o(t)h(to)e(store)f(the)i(\014le)h(transmission)e(as)h (the)f(template)h(log)240 2387 y(message,)c(and)g(then)h(use)f(that)g (template)g(in)i(the)e(future)g(when)h(prompting)g(the)f(user)g(for)g (a)g(log)240 2449 y(message.)0 2545 y Fd(Set-checkin-prog)d Fe(dir)19 b Fd(\\n)240 2608 y Ff(Additional)g(data:)25 b Fe(prog)c Fd(\\)p Ff(n.)27 b(T)l(ell)19 b(the)f(clien)o(t)h(to)e(set) g(a)h(c)o(hec)o(kin)g(program,)f(whic)o(h)i(should)f(b)q(e)240 2670 y(supplied)g(with)d(the)g Fd(Checkin-prog)f Ff(request)h(for)g (future)g(op)q(erations.)p eop %%Page: 16 16 16 15 bop 0 183 a Fd(Set-update-prog)13 b Fe(dir)19 b Fd(\\n)240 246 y Ff(Additional)f(data:)23 b Fe(prog)d Fd(\\)p Ff(n.)k(T)l(ell)18 b(the)f(clien)o(t)g(to)f(set)h(an)f(up)q (date)i(program,)d(whic)o(h)j(should)f(b)q(e)240 308 y(supplied)h(with)d(the)g Fd(Update-prog)f Ff(request)h(for)g(future)g (op)q(erations.)0 395 y Fd(Notified)f Fe(pathname)k Fd(\\n)240 457 y Ff(Indicate)f(to)d(the)i(clien)o(t)g(that)f(the)g(noti\014cation) h(for)f Fe(pathname)j Ff(has)d(b)q(een)i(done.)j(There)c(should)240 520 y(b)q(e)k(one)g(suc)o(h)f(resp)q(onse)h(for)f(ev)o(ery)h Fd(Notify)e Ff(request;)j(if)f(there)g(are)f(sev)o(eral)g Fd(Notify)g Ff(requests)240 582 y(for)14 b(a)h(single)h(\014le,)f(the)g (requests)g(should)h(b)q(e)f(pro)q(cessed)h(in)f(order;)g(the)f (\014rst)h Fd(Notified)e Ff(resp)q(onse)240 644 y(p)q(ertains)j(to)e (the)i(\014rst)f Fd(Notify)f Ff(request,)h(etc.)0 732 y Fd(Module-expansion)e Fe(pathname)18 b Fd(\\n)d(Return)f(a)h(file)f (or)h(directory)240 794 y Ff(whic)o(h)h(is)f(included)i(in)f(a)e (particular)h(mo)q(dule.)21 b Fe(pathname)c Ff(is)e(relativ)o(e)h(to)e (cvsro)q(ot,)f(unlik)o(e)k(most)240 856 y(pathnames)h(in)g(resp)q (onses.)28 b Fe(pathname)20 b Ff(should)f(b)q(e)g(used)f(to)f(lo)q(ok)h (and)g(see)g(whether)g(some)f(or)240 918 y(all)h(of)e(the)h(mo)q(dule)h (exists)f(on)f(the)h(clien)o(t)h(side;)g(it)f(is)h(not)e(necessarily)i (suitable)g(for)e(passing)h(as)240 981 y(an)e(argumen)o(t)f(to)g(a)h Fd(co)f Ff(request)h(\(for)f(example,)i(if)f(the)g(mo)q(dules)h(\014le) g(con)o(tains)f(the)g(`)p Fd(-d)p Ff(')f(option,)240 1043 y(it)h(will)i(b)q(e)f(the)f(directory)h(sp)q(eci\014ed)h(with)f(`) p Fd(-d)p Ff(',)e(not)g(the)i(name)f(of)g(the)g(mo)q(dule\).)0 1130 y Fd(M)g Fe(text)h Fd(\\n)57 b Ff(A)15 b(one-line)i(message)e(for) g(the)g(user.)0 1218 y Fd(E)g Fe(text)h Fd(\\n)57 b Ff(Same)15 b(as)g Fd(M)g Ff(but)g(send)h(to)f(stderr)g(not)f(stdout.)0 1305 y Fd(error)g Fe(errno-co)q(de)19 b Fd(`)k(')15 b Fe(text)h Fd(\\n)240 1367 y Ff(The)22 b(command)g(completed)h(with)g (an)f(error.)39 b Fe(errno-co)q(de)26 b Ff(is)c(a)g(sym)o(b)q(olic)h (error)e(co)q(de)i(\(e.g.)240 1430 y Fd(ENOENT)p Ff(\);)18 b(if)h(the)g(serv)o(er)f(do)q(esn't)g(supp)q(ort)g(this)h(feature,)g (or)e(if)i(it's)f(not)g(appropriate)h(for)f(this)240 1492 y(particular)c(message,)f(it)h(just)f(omits)g(the)h(errno-co)q(de) g(\(in)g(that)f(case)g(there)h(are)f(t)o(w)o(o)f(spaces)i(after)240 1554 y(`)p Fd(error)p Ff('\).)27 b(T)l(ext)18 b(is)h(an)f(error)f (message)h(suc)o(h)h(as)f(that)f(pro)o(vided)i(b)o(y)f(strerror\(\),)f (or)g(an)o(y)h(other)240 1616 y(message)d(the)g(serv)o(er)g(w)o(an)o (ts)f(to)g(use.)0 1704 y Fd(ok)h(\\n)129 b Ff(The)15 b(command)h(completed)g(successfully)l(.)0 1929 y Fb(6.6)33 b(Example)62 2066 y Ff(Lines)15 b(b)q(eginning)h(with)e(`)p Fd(c>)p Ff(')f(are)g(sen)o(t)h(b)o(y)g(the)f(clien)o(t;)i(lines)h(b)q (eginning)g(with)e(`)p Fd(s>)p Ff(')e(are)i(sen)o(t)f(b)o(y)h(the)g (serv)o(er;)0 2128 y(lines)j(b)q(eginning)g(with)f(`)p Fd(#)p Ff(')e(are)h(not)g(part)f(of)h(the)g(actual)h(exc)o(hange.)120 2255 y Fd(c>)24 b(Root)f(/rel/cvsfiles)120 2307 y(#)h(In)f(actual)g (practice)g(the)h(lists)f(of)g(valid)h(responses)e(and)i(requests)e (would)120 2359 y(#)i(be)f(longer)120 2411 y(c>)h(Valid-responses)d (Updated)i(Checked-in)g(M)h(ok)f(error)120 2462 y(c>)h(valid-requests) 120 2514 y(s>)g(Valid-requests)e(Root)h(co)g(Modified)g(Entry)g (Repository)g(ci)g(Argument)g(Argumentx)120 2566 y(s>)h(ok)120 2618 y(#)g(cvs)f(co)h(devo/foo)120 2670 y(c>)g(Argument)e(devo/foo)p eop %%Page: 17 17 17 16 bop 120 183 a Fd(c>)24 b(co)120 235 y(s>)g(Updated)e (/rel/cvsfiles/devo/foo/foo.c)120 287 y(s>)i(/foo.c/1.4/Mon)e(Apr)h(19) h(15:36:47)e(1993)i(Mon)f(Apr)h(19)f(15:36:47)g(1993//)120 339 y(s>)h(26)120 391 y(s>)g(int)f(mein)g(\(\))h({)g(abort)f(\(\);)g(}) 120 443 y(s>)h(Updated)e(/rel/cvsfiles/devo/foo/Makefil)o(e)120 495 y(s>)i(/Makefile/1.2/Mon)d(Apr)j(19)f(15:36:47)g(1993)g(Mon)h(Apr)f (19)h(15:36:47)f(1993//)120 546 y(s>)h(28)120 598 y(s>)g(foo:)f(foo.c) 120 650 y(s>)214 b($\(CC\))24 b(-o)f(foo)h($<)120 702 y(s>)g(ok)120 754 y(#)g(In)f(actual)g(practice)g(the)h(next)f(part)g (would)g(be)h(a)g(separate)e(connection.)120 806 y(#)i(Here)f(it)h(is)f (shown)g(as)h(part)f(of)h(the)f(same)h(one.)120 858 y(c>)g(Repository)e (/rel/cvsfiles/devo/foo)120 910 y(#)i(foo.c)f(relative)g(to)g(devo/foo) g(just)g(set)h(as)f(Repository.)120 962 y(c>)h(Entry)f(/foo.c/1.4/Mon)f (Apr)h(19)h(15:36:47)f(1993)g(Mon)g(Apr)h(19)f(15:36:47)g(1993//)120 1013 y(c>)h(Entry)f(/Makefile/1.2/Mon)e(Apr)j(19)f(15:36:47)g(1993)g (Mon)h(Apr)f(19)h(15:36:47)f(1993//)120 1065 y(c>)h(Modified)e(foo.c) 120 1117 y(c>)i(26)120 1169 y(c>)g(int)f(main)g(\(\))h({)g(abort)f (\(\);)g(})120 1221 y(#)h(cvs)f(ci)h(-m)f()e(foo.c)120 1273 y(c>)i(Argument)e(-m)120 1325 y(c>)i(Argument)e(Well,)i(you)f (see,)g(it)h(took)f(me)h(hours)f(and)g(hours)h(to)f(find)h(this)f(typo) g(and)h(I)120 1377 y(c>)g(Argumentx)e(searched)h(and)g(searched)g(and)h (eventually)e(had)i(to)f(ask)h(John)f(for)g(help.)120 1429 y(c>)h(Argument)e(foo.c)120 1480 y(c>)i(ci)120 1532 y(s>)g(Checked-in)e(/rel/cvsfiles/devo/foo/foo.)o(c)120 1584 y(s>)i(/foo.c/1.5/)e(Mon)h(Apr)h(19)f(15:54:22)g(CDT)h(1993//)120 1636 y(s>)g(M)f(Checking)g(in)h(foo.c;)120 1688 y(s>)g(M)f (/cygint/rel/cvsfiles/devo/fo)o(o/foo.c,)o(v)45 b(<--)i(foo.c)120 1740 y(s>)24 b(M)f(new)h(revision:)e(1.5;)i(previous)e(revision:)h(1.4) 120 1792 y(s>)h(M)f(done)120 1844 y(s>)h(ok)0 2082 y Fb(6.7)33 b(Required)17 b(v)n(ersus)e(optional)h(parts)g(of)e(the)h (proto)r(col)62 2220 y Ff(The)g(follo)o(wing)g(are)f(part)f(of)h(ev)o (ery)g(kno)o(wn)g(implemen)o(tation)h(of)f(the)g(CVS)h(proto)q(col)f (and)g(it)h(is)g(considered)0 2282 y(reasonable)g(b)q(eha)o(vior)g(to)f (completely)i(fail)g(to)e(w)o(ork)f(if)i(y)o(ou)g(are)f(connected)i (with)f(an)f(implemen)o(tation)i(whic)o(h)0 2345 y(attempts)d(to)g(not) h(supp)q(ort)g(them.)19 b(Requests:)h(Ro)q(ot,)14 b(V)l(alid-resp)q (onses,)i(v)m(alid-requests,)f(Rep)q(ository)l(,)g(En)o(try)l(,)0 2407 y(Mo)q(di\014ed,)h(Argumen)o(t,)d(Argumen)o(tx,)h(ci,)h(co,)g(up)q (date.)20 b(Resp)q(onses:)g(ok,)14 b(error,)g(V)l(alid-requests,)i (Chec)o(k)o(ed-in,)0 2469 y(Up)q(dated,)f(Merged,)g(Remo)o(v)o(ed,)g (M,)g(E.)62 2608 y(F)l(ailure)j(to)e(supp)q(ort)g(the)h(Directory)l(,)f (UseUnc)o(hanged,)h(and)g(Unc)o(hanged)g(requests)f(is)h(deprecated.)25 b(CVS)0 2670 y(1.5)20 b(and)i(later)f(ha)o(v)o(e)g(supp)q(orted)h (these)g(requests)f(and)h(in)g(the)g(future)f(it)h(will)h(b)q(e)f (considered)h(reasonable)p eop %%Page: 18 18 18 17 bop 0 183 a Ff(b)q(eha)o(vior)16 b(to)f(completely)i(fail)f(to)f (w)o(ork)g(with)h(an)f(implemen)o(tation)i(whic)o(h)f(attempts)f(to)g (not)g(supp)q(ort)g(them.)0 246 y(Supp)q(ort)g(for)g(the)g(Rep)q (ository)g(and)g(Lost)g(requests)g(is)g(deprecated;)g(CVS)g(clien)o(ts) i(1.5)d(and)h(later)g(will)h(not)f(use)0 308 y(them)g(if)h(comm)o (unicating)g(with)f(a)g(serv)o(er)g(whic)o(h)h(supp)q(orts)f(Directory) g(and)h(UseUnc)o(hanged.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF