%!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: cvsclient.dvi %%Pages: 23 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentPaperSizes: a4 %%EndComments %DVIPSCommandLine: dvips cvsclient.dvi -o cvsclient.ps %DVIPSParameters: dpi=600, compressed, comments removed %DVIPSSource: TeX output 1997.04.18:1220 %%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 600 600 (cvsclient.dvi) @start /Fa 41 121 df12 D46 D<913803FFC0023F13FC91B6FC010315C0010F018113F0 903A1FFC003FF849486D7E49486D7E49486D7E48496D138048496D13C0A24817E04890C8 13F0A34817F8A24817FC49157FA3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D 15FFA26C17F8A36C17F0A26C6D4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495A D91FFCEB3FF8903A0FFF81FFF06D90B55A01011580D9003F01FCC7FC020313C0384F7BCD 43>48 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3 B3A6007FB712FEA52F4E76CD43>II<91380FFFC091 B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803F86E7E49 1680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C 13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0 030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FEA2EA03E0 EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C 484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FC D9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167FA216FF5D 5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C14 7E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A485A90C8 FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>III<121F7F7FEBFF8091B81280A45A1900606060A2606060485F0180C8 6CC7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E 4B5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA414 7F5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0027F13FC0103B67E 010F15E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E48488048486E1380 000717C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDB C00313009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D80 6D81010F15E06D81010115FC010781011F81491680EBFFE748018115C048D9007F14E048 48011F14F048487F48481303030014F8484880161F4848020713FC1601824848157F173F A2171FA2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF80 6C6C6C010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FC D9000F13C0364F7ACD43>I<91380FFF8091B512F8010314FE010F6E7E4901037F90267F F8007F4948EB3FF048496D7E484980486F7E484980824817805A91C714C05A7013E0A218 F0B5FCA318F8A618FCA46C5DA37EA25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387F F803011FB512E36D14C30103028313F89039007FFE03EC00401500A218F05EA3D801F816 E0487E486C16C0487E486D491380A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48 495BD803FC010F5B9027FF807FFEC7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0 364F7ACD43>I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92 B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC49 4848C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F48 5B481A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7F A21B0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D 4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF8 0203903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC52 5479D261>67 D69 DI76 DI<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C002 3F90C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C9 6C7F49854948707F4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2 481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A2 6C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B 5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390 B7C8FC020016FC031F15E0030392C9FCDB001F13E0565479D265>79 D82 D<91260FFF80130791B5 00F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5 FC4848C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F 6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C83 6C836D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F05 0F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D 5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7 FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I97 DI<913801FFF8021FEBFF8091B6 12F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817C048495B 5C5A485BA2486F138091C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27EA2EF03E0 6C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F 9038E01FF0010390B55A01001580023F49C7FC020113E033387CB63C>I<4DB47E0407B5 FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC010315C7010F9038E03FE749903800 07F7D97FFC0101B5FC49487F4849143F484980485B83485B5A91C8FC5AA3485AA412FFAC 127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF 80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13F8020301C049C7FC41547CD24B> I<913803FFC0023F13FC49B6FC010715C04901817F903A3FFC007FF849486D7E49486D7E 4849130F48496D7E48178048497F18C0488191C7FC4817E0A248815B18F0A212FFA490B8 FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C 6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A010015C002 1F49C7FC020113F034387CB63D>IIII<137F497E000313E0487FA2487FA76C5BA26C5BC613 806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I108 DII<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1F FC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A2 48486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C 5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A 010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE033FEBFF C092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A82 4A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A5BA26E4A 5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480031F01FCC8 FC030313C092CBFCB1B612F8A5414D7BB54B>I<912601FFE0EB0780021F01F8130F91B5 00FE131F0103ECFF80010F9039F03FC03F499039800FE07F903A7FFE0003F04948903801 F8FF4849EB00FD4849147F4A805A4849805A4A805AA291C87E5AA35B12FFAC6C7EA37EA2 806C5EA26C6D5CA26C6D5C6C6D5C6C93B5FC6C6D5B6D6C5B6DB4EB0FEF010F9038C07FCF 6D90B5120F010114FED9003F13F80203138091C8FCB1040FB61280A5414D7CB547>I<90 397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FE C6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FC A52F367CB537>I<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0 130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14 FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F030713F015 010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001 FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I< 143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA42600 3FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D 6C5B021F5B020313802A4D7ECB34>III<007FB500F090387FFFFEA5C66C48C7000F90C7FC 6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C 5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F 4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02 FE6D7F4A6D7F495A49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542 357EB447>120 D E /Fb 3 119 df99 D<90383FC00C9038FFF81C0003EBFE3C 390FE03FFC381F8007EB0003003E1301481300157C5A153CA36C141CA27E6C14006C7E13 E013FE383FFFE06C13FE6CEBFF806C14E0000114F06C6C13F8010F13FC1300EC07FE1401 1400157F153F12E0151FA37EA2151E6C143E6C143C6C147C6C14F89038C001F039FBF807 E000F1B512C0D8E07F130038C007FC20317BAF2A>115 D118 D E /Fc 1 16 df15 D E /Fd 78 126 df<00101304007C131F00FEEB3F80A26C137FA24813 3FB2007E1400007C7F003C131E00101304191C75B830>34 D<903907C007C0A2496C487E A8011F131FA202C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FC A9495BA2003F90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85B A76C486C5AA229387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780 481580261FFEFD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE 14035A1507A36CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E00001 14F86C6C7F011F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8 127E1501B4FCA35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512 806CB612006C5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I< EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13FCA2120113F81203EA07 F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>39 D<141E147F14FF5BEB03 FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F 5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7E EB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812 FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB 03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14 E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A12781847 78BE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF 30>43 DI<007FB612F0A2B7 12F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F 000C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2ED FF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2 495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA248 5AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F 90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A2 4848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D 1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006C EBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>IIII54 D<49B4FC011F13F0017F13FC90B57E 0003ECFF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C7 1201A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C 90B512006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB 0FF04848EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D1303003F 15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F 13F0010190C7FC273A7CB830>56 D<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA 0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>58 DI<16F01503ED07F8151F157FEDFFF014034A13C0021F 138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B000F138048 90C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380F FF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8151F1507ED03 F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612FE4881B812 80A36C1600A229157DA530>I63 D<147F4A7EA2497FA4497F14F7A401077F 14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA348 81A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C 130029397DB830>65 D<007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E1501 A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8 ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C0 5E6C02FCC7FC29387EB730>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE 5B9038FFE07F48EB801F3903FE000F484813075B48481303A2484813015B123F491300A2 127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6C EB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC 6D13F09038007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F8007F F0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A316 3F1780A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC 6C14E02B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15 FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387E B730>I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA4 90B6FCA69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02 FF13F00103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F 49130F485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A1480 5CA26C7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE13 3F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830> I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00 B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C49 6C13E02D387FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB712 80A46C1500213879B730>I<49B512F04914F85BA27F6D14F090C7EAFE00B3B3123C127E B4FCA24A5A1403EB8007397FF01FF86CB55A5D6C5C00075C000149C7FC38003FF025397A B730>II<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A900 3FB7FC5AB8FCA27E6C16802A387EB730>III<90383FFFE048B512FC000714FF481580 4815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407 A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114 FCD8003F13E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFC ED03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16 804BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC 000714FF4815804815C04815E0EBF80001E0133F4848EB1FF049130F90C71207A44815F8 481403B3A8147E14FE6CEBFF076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014 E0EBF80F90B6FC6C15C06C15806C1500000114FCD8003F7FEB00016E7EA21680157F16C0 153F16E0151F16F0150FED07E025467BB830>I<003FB57E4814F0B612FC15FF6C816C81 2603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A 90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003 FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390F F803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E4848137F90C712 3F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E00001 14F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C 140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5C D8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F 800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC0 07FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D 13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC 1FF02F3980B730>III< D87FFF90381FFFC0B56C4813E0A46C496C13C0D803F8903803F8006D1307A26C6C495AA2 6C6C5C151F6D5CEC803F013F5CECC07F011F91C7FCA290380FE0FEA214F101075BA29038 03FBF8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA26D5B6D5B2B387EB7 30>89 D<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7E A26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E 7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED 01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C14 0019477DBE30>I<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D<1338137CEA01FE12031207EA0FFC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EA FFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70BE30>I III<913801FFE04A7F5C A28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49 131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F 390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FC C8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC 007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516 F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE0 6C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>IIII< 14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003F B612C04815E0B7FCA27E6C15C023397AB830>I107 D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC 137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03 F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13 C0A46C486C01071380322881A730>II<49B4FC010F 13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2 4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15 F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C 13FC6D5B010F13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC00 7F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307 150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13 C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>II<9038 1FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC 13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C 147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14 F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC07FFF80 486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F01 7E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101 035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813 F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F 80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF0 7FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A2 6C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A 6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81 FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3 A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C49 6C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F 49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5A A36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFF E06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0F F8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7 FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8 FCA46C15FE28277DA630>II125 D E /Fe 26 122 df12 DI<007F B5FCA2B512FEA418067C961E>45 D97 DIIII<177C913907F803FE 91393FFE0F8F9139FC0F9C3F903901F007F8903907E003E0D90FC013F0011F903801F80C 02801400133FD97F007FA315035B495CA3017E495A5E150F6D5C6D495A90263F803EC7FC ECC0FC903871FFF09038E07F8091C9FC485AA47FA27F90B512F8EDFF806C15E016F86D80 48B6FC3A07E0000FFED80F801300003FC8127F003E815A00FC815AA25E163EA25E6C15FC 007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903F801FCC6B512F0010F90C8FC303D7FA8 2D>103 D<147FEB3FFFA313017FA25CA513015CA513035CA4ED07F80107EB1FFF9139F0 781FC09138F1E00F9139F38007E0ECF70002FE14F0495A5CA25CA24A130F131F4A14E0A4 161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C491380B5D8F87F 13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14FE130314FCEB00F01400ACEB03F8 EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA03FF 007F13F0A2B5FC183E7DBD1A>I<147FEB3FFFA313017FA25CA513015CA513035CA50107 0103B5FC02F014FEA26F13F06F1380EEFE00010F14F84A485AED03C04B5A031FC7FC153E 011F13784A5AECC3E0ECC7F0ECCFF814FF497F14F9ECE1FE14C04A7E4A7E4980017E133F 82151F82150F01FE8049130782A2000181486C49B4FCB5D8F03F13F04B13E0A2303F7EBE 30>107 D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F 14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A >I<902707F007F8EB03FCD803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00F EBF0073E001FE38007E1C003F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14 F84A5CA24A5C011F020F14074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C7 4914C0A549027F143F4992C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FE A347287DA74C>I<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE380 07E090380FE70002EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4 163F137F91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733 >II<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F8 903A01FFE000FE4B137F6D497F4990C713804A15C04A141FA218E0A20103150F5C18F0A3 171F010716E05CA3173F18C0130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE 1FC06E495AD93FDC017EC7FC91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFC A45BA25BA31201487EB512F8A3343A81A733>I<91390FE003C0DAFFFC1380903903F81E 0790390FE0070F90391F80038FD97F0013DF01FE13014848903800FF00485A1207485A82 48485C123F495CA2485AA2150112FF90C75BA41503A25EA37E15077F003F4A5A151F6C6C 133F6C6C137F000714FF3903F003CF3A00FC0F8FE090383FFE0FEB0FF090C7FC151F5EA5 153F5EA4157F4B7E023F13FEA32A3A7AA730>I<903907F01F80D803FFEB7FE09138E1E1 F09138E387F839001FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131F A25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA724>I<9138FF81C0 010713E390381F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F 6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE140314010038 1300157EA2123C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01F C7FC38E0FFFC38C01FE0222A7DA824>II<01FE147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914 F8A41507120F4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC0 03BFE09138073FFF3803F01E3801FFF826003FE01380282977A733>III<48B539C07FFFC0A33C000FFE003FF8006D48EB1FE0010315800101023E C7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1FC7C8FC15EFEC0FFE6E5A5D1403 81A24A7E140FEC1E7F023C7FEC383F02707FECE01F010180903803C00F49486C7ED90F00 7F491303017E80D801FE80D807FF497EB5D8803F13F8A332277FA630>I<90B539E007FF F05E18E0902707FE000313006D48EB01FC705A5F01014A5A5F16036E5C0100140794C7FC 160E805E805E1678ED8070023F13F05EED81C015C191381FC38015C793C8FC15EF15EEEC 0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A13 0300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80A630>I E /Ff 78 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD9 07F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91 C7FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13 7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9 FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB 1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3 2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92 C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB 7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00 AC121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A 120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03801307EB0F00131E 133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C 12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F13 3E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E121E7E 6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A613 0314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B 485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<121EEA7F8012FF13C0A213E0A3 127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C798919 >44 DI<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919> IIIIII<150E151E153EA2157EA215FE1401A21403EC077E14 06140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B120148 5A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I< 00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE 90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216 E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C 6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC 2D>II<1238123C123F90B612FCA3 16F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8127015F0 4A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3130F5CA2 131FA6133FAA6D5A0107C8FC26407BBD2D>III<121EEA7F 80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779 A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A412 7F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>I63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA3 4AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA2498191 38800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA201788217 0F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 DII IIII< B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3 A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>II75 DIIIII82 DI<003FB91280A3903AF0007F E001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5 C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>IIII<007FB5D8 C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C 143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E 913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71 FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E 14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076D EC7FFFB500FC0103B512FEA33F3E7EBD44>I91 D93 D96 D II<49B4FC010F13E090383F00F8017C131E4848131F 4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3 003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01 F090380FFFC0D901FEC7FC222A7DA828>II II<167C903903F801 FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC 49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A 0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49 5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313 017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F FF803801FC00185185BD1C>II I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007 903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF 903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91 C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F 81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2 003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A 7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A03FFC001FC6C49 6C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC0 6D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891 C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C 01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA3 6C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1 903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787C ECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA3 1F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C00 78130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8 003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB 03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA2 13FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB 7F03013F138090381F8700EB07FEEB01F81B397EB723>IIIIII<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C49 5A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F 80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA2 21277EA628>III E /Fg 34 120 df<19F0F001F8F003FCA3180719F8180FA219F0181F19E0183FA219C018 7F198018FFA219005F601703A260170760170FA260171F60173FA260177F6017FFA295C7 FC5E5F1603A25F16075F160FA25F161F5F163FA25F167F5F16FFA294C8FC5D5E1503A25E 15075E150FA25E151F5EA2153F5E157FA25E15FF93C9FC5CA25D14035D1407A25D140F5D 141FA25D143F5D147FA25D14FF92CAFC5BA25C13035C1307A25C130F5C131FA25C133F5C 137FA25C13FF91CBFC5AA25B12035B1207A25B120F5B121FA25B123F5B127FA25B12FF90 CCFCA3127E123C3E9077EB51>47 D<16F04B7E1507151F153FEC01FF1407147F010FB5FC B7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001 FC17F8486C816D17FC6E80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5D EA01F0CA14FEA34D13FCA219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B 604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F 4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD9 0FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5 FC020F14F8023F14FF49B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F 49486D8049C86C7F484883486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B 6C5B6C495E011FC85A90C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F13809226 0FFFFEC8FC020FB512F817E094C9FC17F817FF91C7003F13E0040713F8040113FE707F71 7F7113E085717FA2717F85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A 80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C491480 6C01F0010791C7FC6C9026FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14 F0020149C9FC426079DD51>II<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B712 8019006060606060606095C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFC ADED3FFE0203B512F0020F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F8 01007F02E06EB4FC02806E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC 83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B 4917F8EA3FF001804B13F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B 6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D900 3F1480020301F0C8FC406078DD51>I65 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4BB8 00F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C30207 02C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB7E 49498449498449498449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F 5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA37E6E1A1F6C1D 80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A6D 6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0ED1FF8020102 F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC030117F86F6C16E004 071680DC007F02F8C9FC050191CAFC626677E375>67 D<4DB5ED03C0057F02F014070407 B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6 C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01 F08291B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2 484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C8FCA25CA3B5FCB07E071FB812 F880A37EA296C70001ECC000A26C7FA37E807EA26C80A26C80A26C807F6D7F816D7F7F6D 7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01FF5E6E02C0ED7FEF020102F8EDFFC76E02 FF02071383033F02FC013F1301030F91B638FC007F03014D131F6F6C04E0130704070480 1301DC007F02F8CAFC050191CBFC6D6677E37F>71 DII78 D<94381FFFE00407B67E043F15F04BB712FE030FEEFFC0033FD9FC0014F092B500C0010F 13FC020349C7000113FF4A01F86E6C7F021F496F13E04A01C0030F7F4A496F7F91B5C96C 7F0103497013FF494970804B834949717F49874949717F49874B8390B586484A717FA248 91CB6C7FA2481D804A84481DC0A348497214E0A3481DF0A34A85481DF8A5B51CFCB06C1D F8A36E96B5FCA36C1DF0A46C6D4E14E0A36C1DC06E606C1D80A26C6E4D1400A26C6E4D5B A26C6E4D5BA26D6D4D5B6D636D6D4D5B6F94B5FC6D636D6D4C5C6D6D4C91C7FC6D6E4B5B 6D02E0031F5B023F6D4B13F06E01FC92B55A6E01FF02035C020302C0010F91C8FC020002 FC90B512FC033F90B712F0030F17C0030394C9FCDB007F15F804071580DC001F01E0CAFC 666677E379>II83 D<001FBEFCA64849C79126E0000F148002E0180091C8171F498601F81A0349 864986A2491B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C07A5CA95C7 FCB3B3B3A3021FBAFCA663617AE070>I86 D<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077F D9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090 C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891 C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903 F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC13 0F010302F001011400D9001F90CBFC49437CC14E>97 D<92380FFFF04AB67E020F15F002 3F15FC91B77E01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F 90C7FC49484A13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC 485BA4B5FCAE7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C 6D150F6D6DEC1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091 B512F0023F5D020F1580020102FCC7FCDA000F13C03E437BC148>99 DI< 92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE037F499039F0007FFF01 1F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A804884485B727E5A5C4871 7EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F806C 183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE00103 01FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0020092C8FC030713F0 41437CC14A>II<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267F E07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC 825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>104 DI<903807FF80B6FCA6C6FC7F7FB3B3 B3B3ADB712E0A623647BE32C>108 D<902607FF80EB1FFFB691B512F0040714FC041F14 FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039F C78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>110 D<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E0 4901C001037F49496D7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048 496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8 A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D 495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC03 0713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715 FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E 7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A2 1BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C0 9226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B7 12F0A64F5D7BC05A>I114 D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14 E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0 1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217 1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>II<902607FFC0ED3F FEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D49 48806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002 F0C7FC51427BC05A>III E end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: a4 %%BeginPaperSize: a4 /setpagedevice where { pop 1 dict dup /PageSize [ 595 842 ] put setpagedevice } { statusdict /a4tray known { statusdict begin a4tray end /a4 where { pop a4 } if } { /a4 where { pop a4 } { statusdict /setpage known { statusdict begin 595 842 0 setpage end } if } ifelse } ifelse } ifelse %%EndPaperSize %%EndSetup %%Page: 1 1 1 0 bop 0 366 a Fg(CVS)29 b(Clien)l(t/Serv)l(er)125 740 y Ff(This)k(do)s(cumen)m(t)h(describ)s(es)g(the)h(clien)m(t/serv)m(er)g (proto)s(col)g(used)f(b)m(y)h(CVS.)f(It)h(do)s(es)g(not)g(describ)s(e)e (ho)m(w)i(to)0 865 y(use)h(or)h(administer)d(clien)m(t/serv)m(er)j (CVS;)f(see)h(the)g(regular)e(CVS)h(man)m(ual)g(for)g(that.)60 b(This)35 b(is)g(v)m(ersion)h(1.9.8)0 989 y(of)c(the)g(proto)s(col)g (sp)s(eci\014cation|See)f(Chapter)g(1)h([In)m(tro)s(duction],)g(page)g (2,)h(for)e(more)h(on)g(what)g(this)e(v)m(ersion)0 1114 y(n)m(um)m(b)s(er)f(means.)p eop %%Page: 2 2 2 1 bop 0 366 a Fg(1)80 b(In)l(tro)t(duction)125 740 y Ff(CVS)23 b(is)g(a)i(v)m(ersion)e(con)m(trol)i(system)f(\(with)f (some)i(additional)d(con\014guration)h(managemen)m(t)j(functionalit)m (y\).)0 865 y(It)40 b(main)m(tains)e(a)i(cen)m(tral)g Fe(rep)s(ository)47 b Ff(whic)m(h)38 b(stores)i(\014les)f(\(often)i (source)e(co)s(de\),)k(including)37 b(past)i(v)m(ersions,)0 989 y(information)27 b(ab)s(out)g(who)h(mo)s(di\014ed)e(them)j(and)e (when,)h(and)g(so)g(on.)40 b(P)m(eople)29 b(who)e(wish)g(to)i(lo)s(ok)f (at)h(or)f(mo)s(dify)0 1114 y(those)i(\014les,)e(kno)m(wn)h(as)g Fe(dev)m(elop)s(ers)p Ff(,)g(use)g(CVS)g(to)h Fe(c)m(hec)m(k)g(out)i Ff(a)d Fe(w)m(orking)g(directory)36 b Ff(from)29 b(the)g(rep)s(ository) -8 b(,)29 b(to)0 1238 y Fe(c)m(hec)m(k)23 b(in)e Ff(new)g(v)m(ersions)g (of)h(\014les)e(to)j(the)e(rep)s(ository)-8 b(,)23 b(and)e(other)h(op)s (erations)f(suc)m(h)h(as)g(viewing)e(the)i(mo)s(di\014cation)0 1363 y(history)29 b(of)i(a)g(\014le.)40 b(If)30 b(dev)m(elop)s(ers)g (are)h(connected)g(to)g(the)g(rep)s(ository)e(b)m(y)i(a)f(net)m(w)m (ork,)i(particularly)c(a)j(slo)m(w)f(or)0 1487 y(\015aky)g(one,)h(the)f (most)g(e\016cien)m(t)h(w)m(a)m(y)g(to)g(use)e(the)i(net)m(w)m(ork)g (is)e(with)f(the)j(CVS-sp)s(eci\014c)d(proto)s(col)i(describ)s(ed)e(in) 0 1612 y(this)h(do)s(cumen)m(t.)125 1886 y(Dev)m(elop)s(ers,)i(using)e (the)i(mac)m(hine)g(on)f(whic)m(h)g(they)h(store)g(their)f(w)m(orking)g (directory)-8 b(,)31 b(run)e(the)i(CVS)f Fe(clien)m(t)0 2010 y Ff(program.)77 b(T)-8 b(o)44 b(p)s(erform)d(op)s(erations)h (whic)m(h)f(cannot)i(b)s(e)f(done)h(lo)s(cally)-8 b(,)45 b(it)d(connects)h(to)h(the)f(CVS)f Fe(serv)m(er)0 2135 y Ff(program,)33 b(whic)m(h)e(main)m(tains)f(the)j(rep)s(ository)-8 b(.)45 b(F)-8 b(or)33 b(more)g(information)d(on)i(ho)m(w)g(to)h (connect)g(see)g(Chapter)f(4)0 2259 y([Connection)e(and)g(Authen)m (tication],)h(page)g(5.)125 2533 y(This)22 b(do)s(cumen)m(t)j(describ)s (es)e(the)i(CVS)f(proto)s(col.)39 b(Unfortunately)-8 b(,)25 b(it)g(do)s(es)f(not)h(y)m(et)h(completely)e(do)s(cumen)m(t)0 2658 y(one)38 b(asp)s(ect)h(of)f(the)g(proto)s(col|the)g(detailed)f(op) s(eration)g(of)h(eac)m(h)i(CVS)d(command)h(and)f(option|and)g(one)0 2782 y(m)m(ust)j(lo)s(ok)h(at)g(the)g(CVS)f(user)g(do)s(cumen)m (tation,)j(`)p Fd(cvs.texinfo)p Ff(',)e(for)f(that)h(information.)70 b(The)40 b(proto)s(col)0 2907 y(is)34 b(non-proprietary)f(\(an)m(y)m (one)j(who)e(w)m(an)m(ts)h(to)g(is)f(encouraged)h(to)g(implemen)m(t)e (it\))i(and)f(an)g(implemen)m(tation,)0 3031 y(kno)m(wn)29 b(as)h(CVS,)g(is)e(a)m(v)-5 b(ailable)30 b(under)e(the)i(GNU)g(Public)e (License.)40 b(The)29 b(CVS)g(distribution,)e(con)m(taining)i(this)0 3156 y(implemen)m(tation,)34 b(`)p Fd(cvs.texinfo)p Ff(',)f(and)h(a)h (cop)m(y)g(\(p)s(ossibly)d(more)i(or)g(less)g(up)f(to)j(date)e(than)h (what)f(y)m(ou)h(are)0 3281 y(reading)25 b(no)m(w\))i(of)f(this)g(do)s (cumen)m(t,)h(`)p Fd(cvsclient.texi)p Ff(',)d(can)i(b)s(e)g(found)f(at) i(the)f(usual)f(GNU)i(FTP)f(sites,)h(with)0 3405 y(a)k(\014lename)e (suc)m(h)h(as)h(`)p Fd(cvs-)p Fe(v)m(ersion)p Fd(.tar.gz)p Ff('.)125 3679 y(This)f(is)i(v)m(ersion)g(1.9.8)j(of)d(the)h(proto)s (col)g(sp)s(eci\014cation.)46 b(This)31 b(v)m(ersion)h(n)m(um)m(b)s(er) f(is)h(in)m(tended)g(only)f(to)j(aid)0 3804 y(in)40 b(distinguishing)e (di\013eren)m(t)j(v)m(ersions)g(of)h(this)e(sp)s(eci\014cation.)74 b(Although)41 b(the)h(sp)s(eci\014cation)e(is)h(curren)m(tly)0 3928 y(main)m(tained)29 b(in)g(conjunction)h(with)f(the)i(CVS)e (implemen)m(tation,)h(and)g(carries)g(the)g(same)h(v)m(ersion)f(n)m(um) m(b)s(er,)f(it)0 4053 y(also)d(in)m(tends)f(to)i(do)s(cumen)m(t)f(what) h(is)e(in)m(v)m(olv)m(ed)h(with)f(in)m(terop)s(erating)g(with)g(other)i (implemen)m(tations)d(\(suc)m(h)j(as)0 4177 y(other)e(v)m(ersions)f(of) h(CVS\);)f(see)h(Section)g(5.9)h([Requiremen)m(ts],)g(page)f(23.)40 b(This)23 b(v)m(ersion)h(n)m(um)m(b)s(er)f(should)g(not)i(b)s(e)0 4302 y(used)31 b(b)m(y)g(clien)m(ts)h(or)f(serv)m(ers)h(to)g(determine) f(what)h(v)-5 b(arian)m(t)31 b(of)h(the)g(proto)s(col)g(to)g(sp)s(eak;) g(they)g(should)e(instead)0 4426 y(use)41 b(the)h Fd(valid-requests)37 b Ff(and)k Fd(Valid-responses)c Ff(mec)m(hanism)k(\(see)h(Chapter)f(5)h ([Proto)s(col],)j(page)d(6\),)0 4551 y(whic)m(h)29 b(is)h(more)g (\015exible.)p eop %%Page: 3 3 3 2 bop 0 366 a Fg(2)80 b(Goals)75 740 y Fc(\017)60 b Ff(Do)34 b(not)f(assume)f(an)m(y)h(access)h(to)g(the)f(rep)s(ository)e (other)i(than)g(via)f(this)g(proto)s(col.)47 b(It)33 b(do)s(es)g(not)g(dep)s(end)180 865 y(on)d(NFS,)h(rdist,)e(etc.)75 1014 y Fc(\017)60 b Ff(Pro)m(viding)21 b(a)h(reliable)f(transp)s(ort)g (is)g(outside)h(this)f(proto)s(col.)38 b(The)22 b(proto)s(col)g(exp)s (ects)h(a)f(reliable)f(transp)s(ort)180 1139 y(that)32 b(is)e(transparen)m(t)h(\(that)h(is,)e(there)h(is)f(no)h(translation)f (of)h(c)m(haracters,)i(including)28 b(c)m(haracters)k(suc)m(h)f(as)180 1263 y(suc)m(h)f(as)h(linefeeds)e(or)i(carriage)g(returns\),)f(and)g (can)h(transmit)f(all)g(256)i(o)s(ctets)g(\(for)f(example)f(for)g(prop) s(er)180 1388 y(handling)23 b(of)i(binary)f(\014les,)i(compression,)f (and)g(encryption\).)39 b(The)24 b(enco)s(ding)h(of)g(c)m(haracters)i (sp)s(eci\014ed)d(b)m(y)180 1512 y(the)k(proto)s(col)f(\(the)h(names)g (of)g(requests)f(and)g(so)h(on\))g(is)e(the)i(in)m(v)-5 b(arian)m(t)27 b(ISO)f(646)j(c)m(haracter)g(set)f(\(a)h(subset)180 1637 y(of)42 b(most)g(p)s(opular)e(c)m(haracter)j(sets)f(including)d (ASCI)s(I)h(and)h(others\).)76 b(F)-8 b(or)42 b(more)g(details)f(on)h (running)180 1761 y(the)29 b(proto)s(col)g(o)m(v)m(er)h(the)f(TCP)f (reliable)f(transp)s(ort,)h(see)h(Chapter)g(4)g([Connection)f(and)h (Authen)m(tication],)180 1886 y(page)i(5.)75 2035 y Fc(\017)60 b Ff(Securit)m(y)47 b(and)g(authen)m(tication)h(are)g(handled)e (outside)h(this)g(proto)s(col)g(\(but)h(see)g(b)s(elo)m(w)f(ab)s(out)h (`)p Fd(cvs)180 2160 y(kserver)p Ff(')29 b(and)g(`)p Fd(cvs)h(pserver)p Ff('\).)75 2309 y Fc(\017)60 b Ff(The)36 b(proto)s(col)h(mak)m(es)g(it)g(p)s(ossible)d(for)i(up)s(dates)g(to)i (b)s(e)e(atomic)h(with)e(resp)s(ect)i(to)h(c)m(hec)m(kins;)i(that)d(is) f(if)180 2434 y(someone)i(commits)f(c)m(hanges)h(to)g(sev)m(eral)g (\014les)e(in)g(one)h(cvs)h(command,)h(then)e(an)g(up)s(date)f(b)m(y)h (someone)180 2558 y(else)c(w)m(ould)f(either)h(get)h(all)e(the)i(c)m (hanges,)h(or)e(none)g(of)h(them.)49 b(The)33 b(curren)m(t)g Fb(cvs)f Ff(serv)m(er)i(can't)g(do)f(this,)180 2683 y(but)d(that)h (isn't)e(the)i(proto)s(col's)f(fault.)75 2832 y Fc(\017)60 b Ff(The)40 b(proto)s(col)g(is,)j(with)c(a)i(few)f(exceptions,)k (transaction-based.)71 b(That)40 b(is,)j(the)d(clien)m(t)h(sends)e(all) h(its)180 2957 y(requests)30 b(\(without)g(w)m(aiting)g(for)g(serv)m (er)h(resp)s(onses\),)f(and)g(then)g(w)m(aits)g(for)h(the)f(serv)m(er)h (to)g(send)f(bac)m(k)h(all)180 3081 y(resp)s(onses)f(\(without)h(w)m (aiting)f(for)h(further)f(clien)m(t)g(requests\).)44 b(This)29 b(has)i(the)g(adv)-5 b(an)m(tage)33 b(of)f(minimizing)180 3206 y(net)m(w)m(ork)37 b(turnarounds)d(and)i(the)g(disadv)-5 b(an)m(tage)37 b(of)f(sometimes)g(transferring)f(more)h(data)h(than)f (w)m(ould)180 3330 y(b)s(e)31 b(necessary)h(if)f(there)h(w)m(ere)g(a)g (ric)m(her)f(in)m(teraction.)44 b(Another,)32 b(more)g(subtle,)f(adv)-5 b(an)m(tage)34 b(is)c(that)j(there)180 3455 y(is)26 b(no)h(need)f(for)h (the)g(proto)s(col)g(to)g(pro)m(vide)f(lo)s(c)m(king)g(for)h(features)g (suc)m(h)f(as)i(making)e(c)m(hec)m(kins)h(atomic)g(with)180 3579 y(resp)s(ect)36 b(to)h(up)s(dates.)58 b(An)m(y)36 b(suc)m(h)g(lo)s(c)m(king)g(can)g(b)s(e)g(handled)e(en)m(tirely)i(b)m (y)g(the)g(serv)m(er.)59 b(A)37 b(go)s(o)s(d)f(serv)m(er)180 3704 y(implemen)m(tation)26 b(\(suc)m(h)i(as)f(the)h(curren)m(t)f Fb(cvs)g Ff(serv)m(er\))h(will)d(mak)m(e)j(sure)f(that)h(it)f(do)s(es)g (not)h(ha)m(v)m(e)g(an)m(y)g(suc)m(h)180 3829 y(lo)s(c)m(ks)d(in)f (place)i(whenev)m(er)f(it)g(is)f(w)m(aiting)h(for)g(comm)m(unication)g (with)f(the)i(clien)m(t;)h(this)d(prev)m(en)m(ts)i(one)f(clien)m(t)180 3953 y(on)30 b(a)h(slo)m(w)f(or)g(\015aky)h(net)m(w)m(ork)g(from)f(in)m (terfering)f(with)g(the)h(w)m(ork)h(of)f(others.)p eop %%Page: 4 4 4 3 bop 0 366 a Fg(3)80 b(Notes)30 b(on)f(the)h(Proto)t(col)125 740 y Ff(A)g(n)m(um)m(b)s(er)f(of)i(enhancemen)m(ts)f(are)h(p)s (ossible:)75 1014 y Fc(\017)60 b Ff(The)27 b Fd(Modified)e Ff(request)i(could)g(b)s(e)f(sp)s(eeded)h(up)f(b)m(y)h(sending)f (di\013s)f(rather)j(than)f(en)m(tire)g(\014les.)39 b(The)26 b(clien)m(t)180 1139 y(w)m(ould)f(need)h(some)g(w)m(a)m(y)h(to)g(k)m (eep)g(the)f(v)m(ersion)f(of)i(the)f(\014le)f(whic)m(h)g(w)m(as)h (originally)e(c)m(hec)m(k)m(ed)k(out;)g(probably)180 1263 y(requiring)e(the)j(use)f(of)g Fd(")p Ff(cvs)h(edit)p Fd(")e Ff(in)g(this)h(case)h(is)f(the)g(most)h(sensible)e(course)h (\(the)h Fd(")p Ff(cvs)f(edit)p Fd(")g Ff(could)g(b)s(e)180 1388 y(handled)j(b)m(y)j(a)f(pac)m(k)-5 b(age)36 b(lik)m(e)c(V)m(C)i (for)f(emacs\).)51 b(This)31 b(w)m(ould)i(also)g(allo)m(w)g(lo)s(cal)f (op)s(eration)h(of)h Fd(cvs)29 b(diff)180 1512 y Ff(without)g(argumen)m (ts.)75 1662 y Fc(\017)60 b Ff(Ha)m(v)m(e)38 b(the)d(clien)m(t)h(k)m (eep)g(a)g(cop)m(y)g(of)g(some)g(part)g(of)g(the)f(rep)s(ository)-8 b(.)56 b(This)34 b(allo)m(ws)h(all)g(of)h Fd(cvs)29 b(diff)35 b Ff(and)180 1786 y(large)h(parts)g(of)g Fd(cvs)29 b(update)35 b Ff(and)g Fd(cvs)30 b(ci)35 b Ff(to)i(b)s(e)e(lo)s(cal.)57 b(The)35 b(lo)s(cal)g(cop)m(y)i(could)e(b)s(e)h(made)g(consisten)m(t) 180 1911 y(with)24 b(the)h(master)g(cop)m(y)h(at)g(nigh)m(t)e(\(but)h (if)f(the)h(master)h(cop)m(y)f(has)g(b)s(een)f(up)s(dated)g(since)g (the)i(latest)f(nigh)m(tly)180 2035 y(re-sync,)31 b(then)f(it)g(w)m (ould)f(read)h(what)g(it)g(needs)g(to)h(from)f(the)h(master\).)75 2185 y Fc(\017)60 b Ff(The)33 b(curren)m(t)f(pro)s(cedure)g(for)h Fd(cvs)d(update)h Ff(is)h(highly)f(sub-optimal)g(if)h(there)h(are)h (man)m(y)f(mo)s(di\014ed)e(\014les.)180 2309 y(One)g(p)s(ossible)d (alternativ)m(e)j(w)m(ould)f(b)s(e)h(to)g(ha)m(v)m(e)h(the)g(clien)m(t) e(send)g(a)i(\014rst)e(request)h(without)f(the)h(con)m(ten)m(ts)180 2434 y(of)36 b(ev)m(ery)h(mo)s(di\014ed)d(\014le,)i(then)g(ha)m(v)m(e)h (the)f(serv)m(er)h(tell)e(it)g(what)h(\014les)f(it)h(needs.)57 b(Note)37 b(the)f(serv)m(er)g(needs)180 2558 y(to)f(do)g(the)g (what-needs-to-b)s(e-up)s(dated)f(c)m(hec)m(k)i(t)m(wice)f(\(or)g (more,)h(if)e(c)m(hanges)h(in)f(the)g(rep)s(ository)g(mean)180 2683 y(it)f(has)g(to)h(ask)g(the)f(clien)m(t)g(for)h(more)f(\014les\),) h(b)s(ecause)f(it)g(can't)h(k)m(eep)g(lo)s(c)m(ks)g(op)s(en)e(while)g (w)m(aiting)h(for)g(the)180 2807 y(net)m(w)m(ork.)41 b(P)m(erhaps)27 b(this)f(whole)g(thing)h(is)f(irrelev)-5 b(an)m(t)27 b(if)f(clien)m(t-side)g(rep)s(ositories)g(are)i(implemen)m (ted,)f(and)180 2932 y(the)k(rcsmerge)f(is)g(done)g(b)m(y)g(the)h (clien)m(t.)p eop %%Page: 5 5 5 4 bop 0 242 a Fg(4)80 b(Ho)l(w)30 b(to)f(Connect)f(to)i(and)g(Authen) l(ticate)f(Oneself)h(to)g(the)0 366 y(CVS)f(serv)l(er)125 740 y Ff(Connection)21 b(and)g(authen)m(tication)h(o)s(ccurs)g(b)s (efore)f(the)h(CVS)f(proto)s(col)h(itself)f(is)g(started.)38 b(There)21 b(are)i(sev)m(eral)0 865 y(w)m(a)m(ys)31 b(to)g(connect.)0 1163 y(serv)m(er)247 b(If)34 b(the)h(clien)m(t)f(has)g(a)h(w)m(a)m(y)g (to)g(execute)h(commands)e(on)h(the)g(serv)m(er,)h(and)d(pro)m(vide)h (input)f(to)i(the)480 1288 y(commands)i(and)g(output)g(from)g(them,)j (then)d(it)g(can)h(connect)g(that)g(w)m(a)m(y)-8 b(.)64 b(This)35 b(could)i(b)s(e)g(the)480 1413 y(usual)23 b(rsh)h(\(p)s(ort)h (514\))i(proto)s(col,)f(Kerb)s(eros)e(rsh,)h(SSH,)f(or)h(an)m(y)g (similar)e(mec)m(hanism.)38 b(The)24 b(clien)m(t)480 1537 y(ma)m(y)31 b(allo)m(w)e(the)h(user)f(to)i(sp)s(ecify)d(the)j (name)f(of)g(the)g(serv)m(er)g(program;)g(the)g(default)f(is)g Fd(cvs)p Ff(.)40 b(It)30 b(is)480 1662 y(in)m(v)m(ok)m(ed)g(with)f(one) h(argumen)m(t,)g Fd(server)p Ff(.)39 b(Once)30 b(it)f(in)m(v)m(ok)m(es) h(the)g(serv)m(er,)h(the)f(clien)m(t)f(pro)s(ceeds)g(to)480 1786 y(start)i(the)f(cvs)h(proto)s(col.)0 1961 y(kserv)m(er)199 b(The)44 b(k)m(erb)s(erized)g(serv)m(er)h(listens)e(on)h(a)h(p)s(ort)f (\(in)g(the)g(curren)m(t)h(implemen)m(tation,)i(b)m(y)d(ha)m(ving)480 2085 y(inetd)31 b(call)h Fd(")p Ff(cvs)g(kserv)m(er)p Fd(")p Ff(\))h(whic)m(h)e(defaults)g(to)i(1999.)49 b(The)32 b(clien)m(t)g(connects,)h(sends)f(the)g(usual)480 2210 y(k)m(erb)s(eros)26 b(authen)m(tication)g(information,)g(and)f(then)h (starts)h(the)f(cvs)g(proto)s(col.)40 b(Note:)g(p)s(ort)25 b(1999)480 2334 y(is)30 b(o\016cially)f(registered)i(for)f(another)h (use,)g(and)f(in)f(an)m(y)i(ev)m(en)m(t)h(one)f(cannot)h(register)e (more)h(than)480 2459 y(one)23 b(p)s(ort)e(for)h(CVS,)g(so)h(the)f(k)m (erb)s(erized)f(clien)m(t)h(and)g(serv)m(er)h(should)d(b)s(e)i(c)m (hanged)g(to)i(use)e(p)s(ort)f(2401)480 2583 y(\(see)26 b(b)s(elo)m(w\),)f(and)f(send)g(a)h(di\013eren)m(t)f(string)g(in)f (place)i(of)g(`)p Fd(BEGIN)k(AUTH)g(REQUEST)p Ff(')23 b(to)j(iden)m(tify)d(the)480 2708 y(authen)m(tication)28 b(metho)s(d)g(in)e(use.)40 b(Ho)m(w)m(ev)m(er,)31 b(no)s(one)d(has)g(y) m(et)h(gotten)g(around)e(to)i(implemen)m(ting)480 2832 y(this.)0 3007 y(pserv)m(er)196 b(The)25 b(passw)m(ord)f(authen)m (ticated)i(serv)m(er)g(listens)d(on)i(a)h(p)s(ort)e(\(in)h(the)g (curren)m(t)g(implemen)m(tation,)g(b)m(y)480 3131 y(ha)m(ving)d(inetd)f (call)g Fd(")p Ff(cvs)h(pserv)m(er)p Fd(")p Ff(\))g(whic)m(h)f (defaults)h(to)g(2401)i(\(this)e(p)s(ort)f(is)h(o\016cially)f (registered\).)480 3256 y(The)36 b(clien)m(t)g(connects,)j(sends)d(the) h(string)e(`)p Fd(BEGIN)29 b(AUTH)h(REQUEST)p Ff(',)36 b(a)h(linefeed,)g(the)g(cvs)f(ro)s(ot,)480 3380 y(a)d(linefeed,)e(the)i (username,)f(a)h(linefeed,)f(the)g(passw)m(ord)g(trivially)d(enco)s (ded)j(\(see)i(scram)m(ble.c)e(in)480 3505 y(the)h(cvs)f(sources\),)i (a)f(linefeed,)f(the)h(string)e(`)p Fd(END)f(AUTH)f(REQUEST)p Ff(',)j(and)g(a)h(linefeed.)45 b(The)32 b(clien)m(t)480 3629 y(m)m(ust)h(send)f(the)i(iden)m(tical)d(string)h(for)h(cvs)g(ro)s (ot)h(b)s(oth)e(here)h(and)g(later)g(in)e(the)j Fd(Root)e Ff(request)h(of)480 3754 y(the)i(cvs)f(proto)s(col)h(itself.)52 b(Serv)m(ers)34 b(are)h(encouraged)g(to)g(enforce)g(this)f (restriction.)52 b(The)34 b(serv)m(er)480 3878 y(resp)s(onds)26 b(with)h(`)p Fd(I)k(LOVE)e(YOU)p Ff(')f(and)f(a)i(linefeed)e(if)g(the)i (authen)m(tication)f(is)f(successful)h(or)g(`)p Fd(I)i(HATE)480 4003 y(YOU)p Ff(')i(and)g(a)h(linefeed)e(if)g(the)i(authen)m(tication)f (fails.)46 b(After)33 b(receiving)f(`)p Fd(I)e(LOVE)f(YOU)p Ff(',)k(the)f(clien)m(t)480 4127 y(pro)s(ceeds)39 b(with)f(the)h(cvs)h (proto)s(col.)67 b(If)39 b(the)g(clien)m(t)g(wishes)f(to)i(merely)e (authen)m(ticate)j(without)480 4252 y(starting)j(the)h(cvs)g(proto)s (col,)j(the)d(pro)s(cedure)e(is)g(the)i(same,)k(except)c(`)p Fd(BEGIN)29 b(AUTH)h(REQUEST)p Ff(')480 4376 y(is)h(replaced)h(with)f (`)p Fd(BEGIN)e(VERIFICATION)e(REQUEST)p Ff(',)32 b(`)p Fd(END)d(AUTH)h(REQUEST)p Ff(')g(is)h(replaced)h(with)480 4501 y(`)p Fd(END)e(VERIFICATION)d(REQUEST)p Ff(',)22 b(and)g(up)s(on)f(receipt)i(of)g(`)p Fd(I)30 b(LOVE)f(YOU)p Ff(')22 b(the)h(connection)g(is)e(closed)480 4626 y(rather)30 b(than)g(con)m(tin)m(uing.)p eop %%Page: 6 6 6 5 bop 0 366 a Fg(5)80 b(The)30 b(CVS)g(clien)l(t/serv)l(er)e(proto)t (col)125 741 y Ff(In)h(the)i(follo)m(wing,)e(`)p Fd(\\n)p Ff(')h(refers)g(to)h(a)g(linefeed)e(and)g(`)p Fd(\\t)p Ff(')i(refers)f(to)h(a)g(horizon)m(tal)f(tab.)0 1192 y Fa(5.1)68 b(En)l(tries)32 b(Lines)125 1466 y Ff(En)m(tries)d(lines)g (are)i(transmitted)e(as:)240 1720 y Fd(/)47 b Fe(name)53 b Fd(/)48 b Fe(v)m(ersion)f Fd(/)h Fe(con\015ict)h Fd(/)f Fe(options)i Fd(/)e Fe(tag)p 2116 1720 28 4 v 34 w(or)p 2231 1720 V 33 w(date)125 1994 y(tag)p 255 1994 V 34 w(or)p 370 1994 V 32 w(date)36 b Ff(is)29 b(either)h(`)p Fd(T)p Ff(')g Fe(tag)39 b Ff(or)30 b(`)p Fd(D)p Ff(')g Fe(date)36 b Ff(or)30 b(empt)m(y)-8 b(.)42 b(If)29 b(it)h(is)f(follo)m (w)m(ed)h(b)m(y)g(a)g(slash,)g(an)m(ything)f(after)i(the)0 2119 y(slash)e(shall)g(b)s(e)h(silen)m(tly)e(ignored.)125 2393 y Fe(v)m(ersion)35 b Ff(can)g(b)s(e)g(empt)m(y)-8 b(,)38 b(or)e(start)g(with)e(`)p Fd(0)p Ff(')i(or)g(`)p Fd(-)p Ff(',)h(for)e(no)h(user)f(\014le,)h(new)f(user)g(\014le,)h(or)g (user)f(\014le)f(to)j(b)s(e)0 2517 y(remo)m(v)m(ed,)32 b(resp)s(ectiv)m(ely)-8 b(.)125 2792 y Fe(con\015ict)p Ff(,)27 b(if)g(it)f(starts)i(with)e(`)p Fd(+)p Ff(',)i(indicates)e (that)i(the)f(\014le)g(had)f(con\015icts)h(in)f(it.)39 b(The)27 b(rest)g(of)g Fe(con\015ict)i Ff(is)e(`)p Fd(=)p Ff(')g(if)0 2916 y(the)32 b(timestamp)f(matc)m(hes)i(the)e(\014le,)g (or)h(an)m(ything)f(else)g(if)g(it)g(do)s(esn't.)44 b(If)31 b Fe(con\015ict)i Ff(do)s(es)e(not)h(start)g(with)f(a)h(`)p Fd(+)p Ff(',)0 3041 y(it)e(is)f(silen)m(tly)g(ignored.)0 3491 y Fa(5.2)68 b(Mo)t(des)125 3766 y Ff(A)30 b(mo)s(de)g(is)f(an)m(y) i(n)m(um)m(b)s(er)e(of)i(rep)s(etitions)d(of)240 4019 y Fe(mo)s(de-t)m(yp)s(e)53 b Fd(=)47 b Fe(data)125 4293 y Ff(separated)30 b(b)m(y)h(`)p Fd(,)p Ff('.)125 4568 y Fe(mo)s(de-t)m(yp)s(e)43 b Ff(is)38 b(an)h(iden)m(ti\014er)d(comp)s (osed)j(of)f(alphan)m(umeric)f(c)m(haracters.)67 b(Curren)m(tly)37 b(sp)s(eci\014ed:)55 b(`)p Fd(u)p Ff(')39 b(for)0 4692 y(user,)47 b(`)p Fd(g)p Ff(')d(for)g(group,)j(`)p Fd(o)p Ff(')d(for)g(other)g(\(see)h(b)s(elo)m(w)e(for)h(discussion)e(of)i (whether)f(these)i(ha)m(v)m(e)g(their)e(POSIX)0 4817 y(meaning)30 b(or)g(are)h(more)f(lo)s(ose\).)41 b(Unrecognized)31 b(v)-5 b(alues)29 b(of)i Fe(mo)s(de-t)m(yp)s(e)k Ff(are)c(silen)m(tly)e (ignored.)125 5091 y Fe(data)j Ff(consists)f(of)h(an)m(y)h(data)f(not)g (con)m(taining)g(`)p Fd(,)p Ff(',)g(`)p Fd(\\0)p Ff(')g(or)g(`)p Fd(\\n)p Ff('.)45 b(F)-8 b(or)33 b(`)p Fd(u)p Ff(',)f(`)p Fd(g)p Ff(',)h(and)e(`)p Fd(o)p Ff(')h(mo)s(de)g(t)m(yp)s(es,)g(data)0 5215 y(consists)c(of)g(alphan)m(umeric)f(c)m(haracters,)j(where)e(`)p Fd(r)p Ff(')h(means)f(read,)h(`)p Fd(w)p Ff(')g(means)f(write,)g(`)p Fd(x)p Ff(')h(means)f(execute,)j(and)0 5340 y(unrecognized)f(letters)g (are)h(silen)m(tly)e(ignored.)p eop %%Page: 7 7 7 6 bop 125 366 a Ff(The)19 b(t)m(w)m(o)j(most)f(ob)m(vious)f(w)m(a)m (ys)h(in)e(whic)m(h)g(the)h(mo)s(de)g(matters)h(are:)36 b(\(1\))22 b(is)d(it)h(writeable?)36 b(This)19 b(is)g(used)h(b)m(y)g (the)0 491 y(dev)m(elop)s(er)32 b(comm)m(unication)g(features,)h(and)f (is)f(implemen)m(ted)g(ev)m(en)i(on)g(OS/2)f(\(and)g(could)g(b)s(e)f (implemen)m(ted)0 616 y(on)f(DOS\),)g(whose)g(notion)f(of)i(mo)s(de)e (is)g(limited)f(to)j(a)f(readonly)f(bit.)40 b(\(2\))31 b(is)e(it)h(executable?)41 b(Unix)28 b(CVS)i(users)0 740 y(need)35 b(CVS)g(to)h(store)g(this)e(setting)i(\(for)f(shell)f (scripts)g(and)h(the)g(lik)m(e\).)56 b(The)34 b(curren)m(t)i(CVS)e (implemen)m(tation)0 865 y(on)h(unix)e(do)s(es)i(a)g(little)f(bit)g (more)i(than)e(just)h(main)m(tain)f(these)i(t)m(w)m(o)g(settings,)g (but)f(it)f(do)s(esn't)h(really)f(ha)m(v)m(e)j(a)0 989 y(nice)29 b(general)h(facilit)m(y)g(to)g(store)h(or)f(v)m(ersion)f(con) m(trol)i(the)f(mo)s(de,)g(ev)m(en)g(on)g(unix,)f(m)m(uc)m(h)h(less)f (across)h(op)s(erating)0 1114 y(systems)k(with)f(div)m(erse)g (protection)h(features.)52 b(So)34 b(all)f(the)h(ins)f(and)g(outs)i(of) f(what)g(the)g(mo)s(de)f(means)h(across)0 1238 y(op)s(erating)40 b(systems)g(ha)m(v)m(en't)h(really)e(b)s(een)g(w)m(ork)m(ed)i(out)f (\(e.g.)71 b(should)38 b(the)j(VMS)f(p)s(ort)f(use)h(A)m(CLs)g(to)h (get)0 1363 y(POSIX)29 b(seman)m(tics)i(for)f(groups?\).)0 1807 y Fa(5.3)68 b(Con)l(v)l(en)l(tions)32 b(regarding)f(transmission)h (of)e(\014le)h(names)125 2081 y Ff(In)i(most)h(con)m(texts,)j(`)p Fd(/)p Ff(')d(is)f(used)h(to)g(separate)h(directory)f(and)f(\014le)g (names)h(in)f(\014lenames,)h(and)g(an)m(y)g(use)g(of)0 2206 y(other)26 b(con)m(v)m(en)m(tions)g(\(for)f(example,)i(that)f(the) f(user)g(migh)m(t)g(t)m(yp)s(e)g(on)g(the)h(command)f(line\))f(is)g (con)m(v)m(erted)j(to)f(that)0 2330 y(form.)40 b(The)28 b(only)g(exceptions)h(migh)m(t)g(b)s(e)f(a)i(few)f(cases)g(in)f(whic)m (h)g(the)h(serv)m(er)g(pro)m(vides)f(a)i(magic)f(co)s(okie)g(whic)m(h)0 2455 y(the)k(clien)m(t)f(then)h(rep)s(eats)g(v)m(erbatim,)g(but)f(as)i (the)f(serv)m(er)g(has)f(not)h(y)m(et)h(b)s(een)e(p)s(orted)h(b)s(ey)m (ond)f(unix,)g(the)h(t)m(w)m(o)0 2579 y(rules)28 b(pro)m(vide)g(the)i (same)g(answ)m(er)f(\(and)g(what)g(to)h(do)g(if)e(future)g(serv)m(er)i (p)s(orts)e(are)i(op)s(erating)f(on)g(a)h(rep)s(ository)0 2704 y(lik)m(e)g(e:/fo)s(o)h(or)g(CVS)p 731 2704 28 4 v 32 w(R)m(OOT:[F)m(OO.BAR])g(has)f(not)h(b)s(een)f(carefully)f(though) m(t)h(out\).)125 2978 y(Characters)38 b(outside)f(the)i(in)m(v)-5 b(arian)m(t)37 b(ISO)g(646)j(c)m(haracter)g(set)e(should)e(b)s(e)i(a)m (v)m(oided)h(in)e(\014lenames.)63 b(This)0 3102 y(restriction)39 b(ma)m(y)i(need)f(to)h(b)s(e)e(relaxed)h(to)h(allo)m(w)f(for)g(c)m (haracters)h(suc)m(h)f(as)g(`)p Fd([)p Ff(')h(and)e(`)p Fd(])p Ff(')i(\(see)g(ab)s(o)m(v)m(e)g(ab)s(out)0 3227 y(non-unix)27 b(serv)m(ers\);)k(this)d(has)i(not)g(b)s(een)e(carefully) g(considered)h(\(and)g(curren)m(tly)g(implemen)m(tations)f(probably)0 3351 y(use)39 b(whatev)m(er)h(c)m(haracter)i(sets)d(that)i(the)e(op)s (erating)g(systems)h(they)f(are)h(running)d(on)i(allo)m(w,)j(and/or)d (that)0 3476 y(users)d(sp)s(ecify\).)59 b(Of)37 b(course)g(the)g(most)g (p)s(ortable)f(practice)h(is)f(to)i(restrict)e(oneself)h(further,)g(to) h(the)f(POSIX)0 3600 y(p)s(ortable)29 b(\014lename)h(c)m(haracter)i (set)f(as)f(sp)s(eci\014ed)f(in)g(POSIX.1.)0 4045 y Fa(5.4)68 b(File)31 b(transmissions)125 4319 y Ff(File)j(con)m(ten)m(ts)i (\(noted)f(b)s(elo)m(w)f(as)h Fe(\014le)f(transmission)p Ff(\))f(can)i(b)s(e)f(sen)m(t)i(in)d(one)i(of)g(t)m(w)m(o)i(forms.)53 b(The)34 b(simpler)0 4443 y(form)39 b(is)g(a)h(n)m(um)m(b)s(er)f(of)h (b)m(ytes,)j(follo)m(w)m(ed)c(b)m(y)h(a)g(linefeed,)h(follo)m(w)m(ed)e (b)m(y)h(the)g(sp)s(eci\014ed)e(n)m(um)m(b)s(er)h(of)g(b)m(ytes)i(of)0 4568 y(\014le)33 b(con)m(ten)m(ts.)54 b(These)34 b(are)h(the)f(en)m (tire)h(con)m(ten)m(ts)h(of)e(the)g(sp)s(eci\014ed)f(\014le.)51 b(Second,)36 b(if)d(b)s(oth)g(clien)m(t)h(and)g(serv)m(er)0 4692 y(supp)s(ort)f(`)p Fd(gzip-file-contents)p Ff(',)e(a)k(`)p Fd(z)p Ff(')g(ma)m(y)g(precede)g(the)g(length,)g(and)f(the)h(`\014le)f (con)m(ten)m(ts')j(sen)m(t)e(are)g(ac-)0 4817 y(tually)g(compressed)h (with)f(`)p Fd(gzip)p Ff(')h(\(RF)m(C1952/1951\))42 b(compression.)57 b(The)36 b(length)g(sp)s(eci\014ed)f(is)g(that)i(of)g(the)0 4941 y(compressed)30 b(v)m(ersion)g(of)g(the)h(\014le.)125 5215 y(In)h(neither)g(case)j(are)e(the)h(\014le)e(con)m(ten)m(t)k (follo)m(w)m(ed)d(b)m(y)g(an)m(y)g(additional)f(data.)50 b(The)33 b(transmission)e(of)i(a)h(\014le)0 5340 y(will)28 b(end)h(with)h(a)g(linefeed)f(i\013)h(that)h(\014le)e(\(or)i(its)f (compressed)g(form\))g(ends)f(with)h(a)g(linefeed.)p eop %%Page: 8 8 8 7 bop 125 366 a Ff(The)32 b(enco)s(ding)g(of)h(\014le)f(con)m(ten)m (ts)j(dep)s(ends)c(on)i(the)g(v)-5 b(alue)32 b(for)h(the)g(`)p Fd(-k)p Ff(')g(option.)48 b(If)32 b(the)h(\014le)f(is)g(binary)f(\(as)0 491 y(sp)s(eci\014ed)h(b)m(y)h(the)h(`)p Fd(-kb)p Ff(')f(option)g(in)f (the)i(appropriate)f(place\),)h(then)g(it)f(is)f(just)h(a)h(certain)g (n)m(um)m(b)s(er)e(of)h(o)s(ctets,)0 616 y(and)28 b(the)h(proto)s(col)f (con)m(tributes)h(nothing)e(to)m(w)m(ards)i(determining)e(the)i(enco)s (ding)e(\(using)h(the)h(\014le)e(name)i(is)f(one)0 740 y(widespread,)i(if)g(not)h(univ)m(ersally)d(p)s(opular,)i(mec)m (hanism\).)42 b(If)31 b(the)g(\014le)f(is)g(text)i(\(not)g(binary\),)e (then)h(the)g(\014le)f(is)0 865 y(sen)m(t)g(as)g(a)g(series)f(of)h (lines,)f(separated)h(b)m(y)f(linefeeds.)39 b(If)29 b(the)h(k)m(eyw)m (ord)g(expansion)f(is)g(set)h(to)g(something)g(other)0 989 y(than)35 b(`)p Fd(-ko)p Ff(',)i(then)f(it)f(is)g(exp)s(ected)h (that)g(the)g(\014le)f(conform)h(to)g(the)g(R)m(CS)f(exp)s(ectations)i (regarding)d(k)m(eyw)m(ord)0 1114 y(expansion|in)28 b(particular,)h (that)i(it)g(is)e(in)g(a)i(c)m(haracter)i(set)e(suc)m(h)f(as)h(ASCI)s (I)e(in)g(whic)m(h)g(0x24)j(is)e(a)h(dollar)e(sign)0 1238 y(\(`)p Fd($)p Ff('\).)0 1736 y Fa(5.5)68 b(Strings)125 2015 y Ff(In)30 b(v)-5 b(arious)30 b(con)m(texts,)k(for)d(example)g (the)g Fd(Argument)e Ff(request)i(and)g(the)h Fd(M)f Ff(resp)s(onse,)f(one)i(transmits)e(what)0 2140 y(is)h(essen)m(tially)f (an)i(arbitrary)e(string.)43 b(Often)31 b(this)g(will)e(ha)m(v)m(e)j(b) s(een)f(supplied)d(b)m(y)k(the)f(user)g(\(for)h(example,)g(the)0 2264 y(`)p Fd(-m)p Ff(')40 b(option)g(to)h(the)g Fd(ci)f Ff(request\).)71 b(The)40 b(proto)s(col)g(has)g(no)g(mec)m(hanism)g(to) h(sp)s(ecify)e(the)i(c)m(haracter)h(set)f(of)0 2389 y(suc)m(h)29 b(strings;)g(it)g(w)m(ould)g(b)s(e)g(fairly)e(safe)j(to)h(stic)m(k)f (to)g(the)g(in)m(v)-5 b(arian)m(t)29 b(ISO)f(646)j(c)m(haracter)g(set)f (but)f(the)h(existing)0 2513 y(practice)i(is)e(probably)g(to)i(just)f (transmit)f(whatev)m(er)i(the)g(user)e(sp)s(eci\014es,)h(and)g(hop)s(e) f(that)i(ev)m(ery)m(one)h(in)m(v)m(olv)m(ed)0 2638 y(agrees)e(whic)m(h) f(c)m(haracter)i(set)e(is)g(in)f(use,)h(or)h(stic)m(ks)f(to)h(a)g (common)g(subset.)0 3135 y Fa(5.6)68 b(Requests)125 3414 y Ff(By)23 b(con)m(v)m(en)m(tion,)j(requests)e(whic)m(h)e(b)s(egin)g (with)g(a)h(capital)g(letter)h(do)f(not)h(elicit)e(a)i(resp)s(onse)e (from)h(the)g(serv)m(er,)0 3539 y(while)h(all)h(others)g(do)h({)g(sa)m (v)m(e)i(one.)39 b(The)25 b(exception)h(is)f(`)p Fd(gzip-file-contents) p Ff('.)35 b(Unrecognized)26 b(requests)g(will)0 3663 y(alw)m(a)m(ys)31 b(elicit)e(a)i(resp)s(onse)e(from)h(the)h(serv)m(er,) g(ev)m(en)g(if)e(that)i(request)f(b)s(egins)f(with)g(a)i(capital)f (letter.)0 3973 y Fd(Root)f Fe(pathname)36 b Fd(\\n)480 4098 y Ff(Resp)s(onse)30 b(exp)s(ected:)43 b(no.)f(T)-8 b(ell)30 b(the)h(serv)m(er)g(whic)m(h)f Fd(CVSROOT)f Ff(to)j(use.)42 b(Note)32 b(that)g Fe(pathname)k Ff(is)480 4222 y(a)g(lo)s(cal)e(directory)h(and)f Fe(not)k Ff(a)d(fully)e (quali\014ed)g Fd(CVSROOT)g Ff(v)-5 b(ariable.)54 b Fe(pathname)40 b Ff(m)m(ust)35 b(already)480 4347 y(exist;)48 b(if)42 b(creating)h(a)f(new)g(ro)s(ot,)k(use)c(the)h Fd(init)e Ff(request,)46 b(not)d Fd(Root)p Ff(.)75 b Fe(pathname)48 b Ff(do)s(es)42 b(not)480 4471 y(include)25 b(the)i(hostname)g(of)h (the)f(serv)m(er,)h(ho)m(w)f(to)h(access)g(the)f(serv)m(er,)i(etc.;)g (b)m(y)e(the)h(time)e(the)i(CVS)480 4596 y(proto)s(col)i(is)g(in)f (use,)h(connection,)h(authen)m(tication,)g(etc.,)h(are)e(already)g(tak) m(en)i(care)f(of.)0 4781 y Fd(Valid-responses)26 b Fe(request-list)32 b Fd(\\n)480 4906 y Ff(Resp)s(onse)e(exp)s(ected:)42 b(no.)g(T)-8 b(ell)30 b(the)h(serv)m(er)g(what)g(resp)s(onses)e(the)i (clien)m(t)g(will)d(accept.)44 b(request-)480 5030 y(list)29 b(is)g(a)i(space)g(separated)g(list)e(of)i(tok)m(ens.)0 5215 y Fd(valid-requests)26 b(\\n)480 5340 y Ff(Resp)s(onse)k(exp)s (ected:)41 b(y)m(es.)g(Ask)31 b(the)f(serv)m(er)h(to)g(send)e(bac)m(k)j (a)e Fd(Valid-requests)d Ff(resp)s(onse.)p eop %%Page: 9 9 9 8 bop 0 366 a Fd(Directory)28 b Fe(lo)s(cal-directory)37 b Fd(\\n)480 491 y Ff(Additional)24 b(data:)40 b Fe(rep)s(ository)33 b Fd(\\)p Ff(n.)38 b(Resp)s(onse)26 b(exp)s(ected:)39 b(no.)g(T)-8 b(ell)26 b(the)g(serv)m(er)h(what)f(directory)480 616 y(to)37 b(use.)60 b(The)36 b Fe(rep)s(ository)44 b Ff(should)35 b(b)s(e)h(a)h(directory)f(name)h(from)f(a)h(previous)f (serv)m(er)h(resp)s(onse.)480 740 y(Note)g(that)f(this)f(b)s(oth)f(giv) m(es)i(a)g(default)f(for)g Fd(Entry)g Ff(and)g Fd(Modified)e Ff(and)i(also)g(for)h Fd(ci)f Ff(and)g(the)480 865 y(other)29 b(commands;)g(normal)f(usage)i(is)e(to)i(send)e Fd(Directory)e Ff(for)j(eac)m(h)h(directory)e(in)g(whic)m(h)g(there)480 989 y(will)k(b)s(e)i(an)g Fd(Entry)g Ff(or)g Fd(Modified)p Ff(,)g(and)g(then)g(a)h(\014nal)f Fd(Directory)e Ff(for)i(the)h (original)e(directory)-8 b(,)480 1114 y(then)29 b(the)h(command.)40 b(If)29 b(the)g(clien)m(t)g(uses)g(this)f(request,)i(it)f(a\013ects)i (the)f(w)m(a)m(y)g(the)g(serv)m(er)f(returns)480 1238 y(pathnames;)j(see)h(Section)e(5.7)i([Resp)s(onses],)f(page)h(16.)46 b Fe(lo)s(cal-directory)38 b Ff(is)31 b(relativ)m(e)h(to)h(the)f(top) 480 1363 y(lev)m(el)f(at)h(whic)m(h)e(the)h(command)g(is)f(o)s (ccurring)g(\(i.e.)43 b(the)32 b(last)f Fd(Directory)d Ff(whic)m(h)i(is)h(sen)m(t)g(b)s(efore)480 1487 y(the)g(command\);)f (to)h(indicate)f(that)h(top)f(lev)m(el,)h(`)p Fd(.)p Ff(')f(should)f(b)s(e)g(send)h(for)g Fe(lo)s(cal-directory)p Ff(.)480 1634 y(Here)f(is)f(an)h(example)g(of)g(where)f(a)i(clien)m(t)e (gets)i Fe(rep)s(ository)36 b Ff(and)28 b Fe(lo)s(cal-directory)p Ff(.)39 b(Supp)s(ose)27 b(that)480 1759 y(there)k(is)e(a)i(mo)s(dule)d (de\014ned)i(b)m(y)720 1885 y Fd(moddir)46 b(1dir)480 2032 y Ff(That)29 b(is,)h(one)f(can)h(c)m(hec)m(k)h(out)f Fd(moddir)e Ff(and)h(it)g(will)e(tak)m(e)k Fd(1dir)e Ff(in)f(the)i(rep)s(ository)e(and)h(c)m(hec)m(k)i(it)480 2156 y(out)j(to)h Fd(moddir)e Ff(in)g(the)h(w)m(orking)g(directory)-8 b(.)52 b(Then)33 b(an)i(initial)c(c)m(hec)m(k)36 b(out)e(could)g(pro)s (ceed)g(lik)m(e)480 2281 y(this:)720 2407 y Fd(C:)47 b(Root)g(/home/kingdon/zwork/cvsr)o(oot)720 2511 y(.)g(.)h(.)720 2615 y(C:)f(Argument)f(moddir)720 2718 y(C:)h(Directory)e(.)720 2822 y(C:)i(/home/kingdon/zwork/cvsro)o(ot)720 2926 y(C:)g(co)720 3030 y(S:)g(Clear-sticky)e(moddir/)720 3133 y(S:)i (/home/kingdon/zwork/cvsro)o(ot/1)o(dir)o(/)720 3237 y(.)g(.)h(.)720 3341 y(S:)f(ok)480 3488 y Ff(In)26 b(this)h(example)f (the)i(resp)s(onse)e(sho)m(wn)h(is)f Fd(Clear-sticky)p Ff(,)f(but)h(it)h(could)f(b)s(e)g(another)i(resp)s(onse)480 3612 y(instead.)53 b(Note)36 b(that)f(it)f(returns)f(t)m(w)m(o)j (pathnames.)54 b(The)34 b(\014rst)g(one,)i(`)p Fd(moddir/)p Ff(',)e(indicates)g(the)480 3737 y(w)m(orking)e(directory)g(to)h(c)m (hec)m(k)h(out)e(in)m(to.)47 b(The)32 b(second)g(one,)h(ending)e(in)g (`)p Fd(1dir/)p Ff(',)h(indicates)g(the)480 3862 y(directory)e(to)i (pass)e(bac)m(k)i(to)g(the)f(serv)m(er)g(in)e(a)j(subsequen)m(t)e Fd(Directory)e Ff(request.)42 b(F)-8 b(or)32 b(example,)480 3986 y(a)f(subsequen)m(t)e Fd(update)g Ff(request)h(migh)m(t)h(lo)s(ok) f(lik)m(e:)720 4112 y Fd(C:)47 b(Directory)e(moddir)720 4216 y(C:)i(/home/kingdon/zwork/cvsro)o(ot/1)o(dir)720 4320 y(.)g(.)h(.)720 4424 y(C:)f(update)480 4570 y Ff(F)-8 b(or)35 b(a)f(giv)m(en)f Fe(lo)s(cal-directory)p Ff(,)h(the)g(rep)s (ository)f(will)e(b)s(e)i(the)h(same)g(for)g(eac)m(h)h(of)f(the)g(resp) s(onses,)480 4695 y(so)29 b(one)g(can)g(use)g(the)g(rep)s(ository)f (from)g(whic)m(hev)m(er)g(resp)s(onse)g(is)g(most)h(con)m(v)m(enien)m (t.)42 b(T)m(ypically)27 b(a)480 4819 y(clien)m(t)h(will)e(store)k(the) f(rep)s(ository)e(along)i(with)e(the)i(sources)g(for)g(eac)m(h)g Fe(lo)s(cal-directory)p Ff(,)g(use)f(that)480 4944 y(same)f(setting)g (whenev)m(er)g(op)s(erating)f(on)h(that)g Fe(lo)s(cal-directory)p Ff(,)g(and)f(not)h(up)s(date)f(the)h(setting)g(as)480 5069 y(long)j(as)h(the)f Fe(lo)s(cal-directory)37 b Ff(exists.)480 5215 y(A)29 b(clien)m(t)f(is)f(free)i(to)g(rename)f(a)h Fe(lo)s(cal-directory)36 b Ff(at)29 b(an)m(y)g(time)f(\(for)g(example,) h(in)e(resp)s(onse)h(to)h(an)480 5340 y(explicit)f(user)i(request\).)41 b(While)29 b(it)g(is)g(true)h(that)h(the)f(serv)m(er)g(supplies)e(a)i Fe(lo)s(cal-directory)37 b Ff(to)31 b(the)p eop %%Page: 10 10 10 9 bop 480 366 a Ff(clien)m(t,)27 b(as)f(noted)f(ab)s(o)m(v)m(e,)k (this)24 b(is)h(only)g(the)h(default)f(place)h(to)g(put)f(the)h (directory)-8 b(.)39 b(Of)26 b(course,)h(the)480 491 y(v)-5 b(arious)28 b Fd(Directory)e Ff(requests)j(for)g(a)g(single)f (command)h(\(for)g(example,)g Fd(update)e Ff(or)i Fd(ci)g Ff(request\))480 616 y(should)f(name)j(a)g(particular)d(directory)i (with)f(the)i(same)g Fe(lo)s(cal-directory)p Ff(.)480 768 y(Eac)m(h)h Fd(Directory)c Ff(request)j(sp)s(eci\014es)f(a)i (brand-new)d Fe(lo)s(cal-directory)38 b Ff(and)31 b Fe(rep)s(ository)8 b Ff(;)30 b(that)i(is,)480 893 y Fe(lo)s(cal-directory)50 b Ff(and)43 b Fe(rep)s(ository)50 b Ff(are)44 b(nev)m(er)g(relativ)m(e) f(to)h(paths)f(sp)s(eci\014ed)f(in)g(an)m(y)h(previous)480 1017 y Fd(Directory)28 b Ff(request.)0 1198 y Fd(Max-dotdot)g Fe(lev)m(el)33 b Fd(\\n)480 1323 y Ff(Resp)s(onse)20 b(exp)s(ected:)36 b(no.)h(T)-8 b(ell)19 b(the)i(serv)m(er)f(that)h Fe(lev)m(el)j Ff(lev)m(els)c(of)g(directories)f(ab)s(o)m(v)m(e)j(the)e (directory)480 1447 y(whic)m(h)31 b Fd(Directory)g Ff(requests)h(are)h (relativ)m(e)g(to)g(will)d(b)s(e)i(needed.)48 b(F)-8 b(or)33 b(example,)g(if)f(the)h(clien)m(t)f(is)480 1572 y(planning)42 b(to)j(use)g(a)g Fd(Directory)d Ff(request)i(for)h(`)p Fd(../../foo)p Ff(',)h(it)e(m)m(ust)h(send)f(a)h Fd(Max-dotdot)480 1696 y Ff(request)29 b(with)e(a)j Fe(lev)m(el)i Ff(of)d(at)h(least)f (2.)40 b Fd(Max-dotdot)26 b Ff(m)m(ust)j(b)s(e)f(sen)m(t)i(b)s(efore)e (the)h(\014rst)f Fd(Directory)480 1821 y Ff(request.)0 2002 y Fd(Static-directory)e(\\n)480 2126 y Ff(Resp)s(onse)j(exp)s (ected:)41 b(no.)g(T)-8 b(ell)29 b(the)h(serv)m(er)g(that)h(the)f (directory)f(most)i(recen)m(tly)f(sp)s(eci\014ed)e(with)480 2251 y Fd(Directory)41 b Ff(should)g(not)j(ha)m(v)m(e)g(additional)d (\014les)i(c)m(hec)m(k)m(ed)i(out)e(unless)f(explicitly)f(requested.) 480 2375 y(The)h(clien)m(t)g(sends)g(this)f(if)g(the)i Fd(Entries.Static)c Ff(\015ag)k(is)e(set,)46 b(whic)m(h)c(is)f(con)m (trolled)h(b)m(y)h(the)480 2500 y Fd(Set-static-directory)25 b Ff(and)30 b Fd(Clear-static-directory)24 b Ff(resp)s(onses.)0 2681 y Fd(Sticky)29 b Fe(tagsp)s(ec)36 b Fd(\\n)480 2805 y Ff(Resp)s(onse)29 b(exp)s(ected:)41 b(no.)g(T)-8 b(ell)29 b(the)h(serv)m(er)g(that)h(the)f(directory)f(most)i(recen)m(tly)f(sp)s (eci\014ed)e(with)480 2930 y Fd(Directory)h Ff(has)i(a)h(stic)m(ky)g (tag)g(or)g(date)g Fe(tagsp)s(ec)p Ff(.)44 b(The)31 b(\014rst)g(c)m (haracter)i(of)f Fe(tagsp)s(ec)37 b Ff(is)31 b(`)p Fd(T)p Ff(')g(for)h(a)480 3054 y(tag,)g(or)e(`)p Fd(D)p Ff(')h(for)f(a)h (date.)41 b(The)30 b(remainder)f(of)h Fe(tagsp)s(ec)37 b Ff(con)m(tains)31 b(the)f(actual)h(tag)g(or)g(date.)0 3235 y Fd(Checkin-prog)c Fe(program)j Fd(\\n)480 3359 y Ff(Resp)s(onse)44 b(exp)s(ected:)70 b(no.)84 b(T)-8 b(ell)44 b(the)h(serv)m(er)g(that)h(the)f(directory)f(most)h(recen)m (tly)h(sp)s(eci\014ed)480 3484 y(with)37 b Fd(Directory)f Ff(has)i(a)h(c)m(hec)m(kin)g(program)f Fe(program)p Ff(.)64 b(Suc)m(h)38 b(a)h(program)f(w)m(ould)f(ha)m(v)m(e)j(b)s(een)480 3609 y(previously)28 b(set)j(with)e(the)i Fd(Set-checkin-prog)26 b Ff(resp)s(onse.)0 3789 y Fd(Update-prog)h Fe(program)j Fd(\\n)480 3914 y Ff(Resp)s(onse)44 b(exp)s(ected:)70 b(no.)84 b(T)-8 b(ell)44 b(the)h(serv)m(er)g(that)h(the)f(directory)f (most)h(recen)m(tly)h(sp)s(eci\014ed)480 4038 y(with)35 b Fd(Directory)e Ff(has)i(an)h(up)s(date)f(program)h Fe(program)p Ff(.)57 b(Suc)m(h)35 b(a)h(program)g(w)m(ould)f(ha)m(v)m (e)i(b)s(een)480 4163 y(previously)28 b(set)j(with)e(the)i Fd(Set-update-prog)26 b Ff(resp)s(onse.)0 4344 y Fd(Entry)j Fe(en)m(try-line)34 b Fd(\\n)480 4468 y Ff(Resp)s(onse)e(exp)s(ected:) 46 b(no.)i(T)-8 b(ell)32 b(the)h(serv)m(er)g(what)g(v)m(ersion)f(of)h (a)g(\014le)f(is)g(on)h(the)g(lo)s(cal)f(mac)m(hine.)480 4593 y(The)c(name)g(in)g Fe(en)m(try-line)k Ff(is)27 b(a)i(name)g(relativ)m(e)f(to)h(the)g(directory)f(most)h(recen)m(tly)g (sp)s(eci\014ed)d(with)480 4717 y Fd(Directory)p Ff(.)52 b(If)34 b(the)h(user)f(is)g(op)s(erating)h(on)f(only)g(some)i(\014les)e (in)f(a)i(directory)-8 b(,)37 b Fd(Entry)c Ff(requests)480 4842 y(for)j(only)g(those)h(\014les)e(need)h(b)s(e)g(included.)56 b(If)36 b(an)h Fd(Entry)e Ff(request)h(is)g(sen)m(t)g(without)g Fd(Modified)p Ff(,)480 4966 y Fd(Is-modified)p Ff(,)h(or)i Fd(Unchanged)p Ff(,)f(it)f(means)h(the)h(\014le)e(is)g(lost)i(\(do)s (es)f(not)g(exist)g(in)f(the)i(w)m(orking)480 5091 y(directory\).)49 b(If)33 b(b)s(oth)f Fd(Entry)g Ff(and)g(one)i(of)f Fd(Modified)p Ff(,)f Fd(Is-modified)p Ff(,)f(or)i Fd(Unchanged)e Ff(are)i(sen)m(t)480 5215 y(for)i(the)h(same)g(\014le,)h Fd(Entry)d Ff(m)m(ust)i(b)s(e)f (sen)m(t)h(\014rst.)56 b(F)-8 b(or)36 b(a)g(giv)m(en)g(\014le,)g(one)g (can)g(send)f Fd(Modified)p Ff(,)480 5340 y Fd(Is-modified)p Ff(,)28 b(or)i Fd(Unchanged)p Ff(,)e(but)i(not)g(more)h(than)f(one)h (of)f(these)h(three.)p eop %%Page: 11 11 11 10 bop 0 366 a Fd(Modified)28 b Fe(\014lename)35 b Fd(\\n)480 491 y Ff(Resp)s(onse)30 b(exp)s(ected:)42 b(no.)g(Additional)28 b(data:)42 b(mo)s(de,)31 b Fd(\\)p Ff(n,)f(\014le)g(transmission.)39 b(Send)30 b(the)h(serv)m(er)480 616 y(a)36 b(cop)m(y)g(of)g(one)f(lo)s(cally)f(mo)s(di\014ed)g(\014le.) 55 b Fe(\014lename)40 b Ff(is)34 b(relativ)m(e)i(to)g(the)g(most)f (recen)m(t)i(rep)s(ository)480 740 y(sen)m(t)g(with)d Fd(Directory)p Ff(.)56 b(If)35 b(the)h(user)g(is)f(op)s(erating)g(on)h (only)g(some)g(\014les)f(in)g(a)h(directory)-8 b(,)38 b(only)480 865 y(those)h(\014les)e(need)i(to)g(b)s(e)f(included.)62 b(This)37 b(can)h(also)h(b)s(e)f(sen)m(t)h(without)e Fd(Entry)p Ff(,)i(if)f(there)h(is)e(no)480 989 y(en)m(try)31 b(for)f(the)g(\014le.)0 1170 y Fd(Is-modified)d Fe(\014lename)35 b Fd(\\n)480 1294 y Ff(Resp)s(onse)c(exp)s(ected:)42 b(no.)i(Additional)28 b(data:)44 b(none.)f(Lik)m(e)31 b Fd(Modified)p Ff(,)e(but)i(used)f(if)g(the)i(serv)m(er)480 1419 y(only)d(needs)h(to)i(kno)m(w)e(whether)g(the)g(\014le)g(is)f(mo)s (di\014ed,)g(not)h(the)h(con)m(ten)m(ts.)480 1572 y(The)47 b(commands)f(whic)m(h)g(can)i(tak)m(e)g Fd(Is-modified)c Ff(instead)j(of)g Fd(Modified)e Ff(with)g(no)i(kno)m(wn)480 1696 y(c)m(hange)33 b(in)e(b)s(eha)m(vior)g(are:)45 b Fd(admin)p Ff(,)31 b Fd(diff)g Ff(\(if)h(and)f(only)g(if)g(t)m(w)m(o)j (`)p Fd(-r)p Ff(')e(or)g(`)p Fd(-D)p Ff(')g(options)f(are)i(sp)s(eci-) 480 1821 y(\014ed\),)28 b Fd(watch-on)p Ff(,)e Fd(watch-off)p Ff(,)f Fd(watch-add)p Ff(,)h Fd(watch-remove)p Ff(,)e Fd(watchers)p Ff(,)i Fd(editors)p Ff(,)g Fd(log)p Ff(,)i(and)480 1945 y Fd(annotate)p Ff(.)480 2098 y(F)-8 b(or)23 b(the)g Fd(status)e Ff(command,)j(one)f(can)g(send)f Fd(Is-modified)e Ff(but)i(if)f(the)i(clien)m(t)f(is)g(using)f(imp)s(erfect)480 2222 y(mec)m(hanisms)30 b(suc)m(h)g(a)h(timestamps)g(to)g(determine)f (whether)g(to)i(consider)d(a)i(\014le)f(mo)s(di\014ed,)f(then)480 2347 y(the)40 b(b)s(eha)m(vior)f(will)f(b)s(e)h(di\013eren)m(t.)69 b(That)40 b(is,)i(if)d(one)h(sends)f Fd(Modified)p Ff(,)h(then)g(the)g (serv)m(er)h(will)480 2472 y(actually)29 b(compare)h(the)f(con)m(ten)m (ts)i(of)e(the)h(\014le)e(sen)m(t)i(and)f(the)g(one)h(it)e(deriv)m(es)h (from)g(to)h(determine)480 2596 y(whether)h(the)g(\014le)g(is)f(gen)m (uinely)g(mo)s(di\014ed.)42 b(But)31 b(if)f(one)i(sends)e Fd(Is-modified)p Ff(,)f(then)i(the)h(serv)m(er)480 2721 y(tak)m(es)38 b(the)e(clien)m(t's)g(w)m(ord)g(for)g(it.)58 b(A)37 b(similar)d(situation)h(exists)h(for)g Fd(tag)p Ff(,)h(if)e(the)i(`)p Fd(-c)p Ff(')f(option)g(is)480 2845 y(sp)s(eci\014ed.)480 2998 y(Commands)29 b(for)h(whic)m(h)f Fd(Modified)g Ff(is)g(necessary)i(are)g Fd(co)p Ff(,)f Fd(ci)p Ff(,)g Fd(update)p Ff(,)f(and)g Fd(import)p Ff(.)480 3151 y(Commands)24 b(whic)m(h)h(do)g(not)h(need)f(to)h(inform)e(the)h (serv)m(er)h(ab)s(out)f(a)h(w)m(orking)f(directory)-8 b(,)26 b(and)f(th)m(us)480 3275 y(should)j(not)j(b)s(e)e(sending)g (either)h Fd(Modified)e Ff(or)i Fd(Is-modified)p Ff(:)38 b Fd(rdiff)p Ff(,)29 b Fd(rtag)p Ff(,)g Fd(history)p Ff(,)g Fd(init)p Ff(,)480 3400 y(and)h Fd(release)p Ff(.)480 3552 y(Commands)c(for)h(whic)m(h)f(further)g(in)m(v)m(estigation)h(is)g (w)m(arran)m(ted)g(are:)40 b Fd(remove)p Ff(,)26 b Fd(add)p Ff(,)i(and)e Fd(export)p Ff(.)480 3677 y(P)m(ending)50 b(suc)m(h)h(in)m(v)m(estigation,)57 b(the)51 b(more)h(conserv)-5 b(ativ)m(e)52 b(course)f(of)h(action)f(is)g(to)h(stic)m(k)f(to)480 3801 y Fd(Modified)p Ff(.)0 3982 y Fd(Unchanged)28 b Fe(\014lename)35 b Fd(\\n)480 4107 y Ff(Resp)s(onse)k(exp)s(ected:)59 b(no.)67 b(T)-8 b(ell)39 b(the)g(serv)m(er)h(that)g Fe(\014lename)j Ff(has)c(not)h(b)s(een)f(mo)s(di\014ed)e(in)h(the)480 4231 y(c)m(hec)m(k)m(ed)i(out)d(directory)-8 b(.)63 b(The)37 b(name)g(is)g(relativ)m(e)h(to)g(the)g(most)g(recen)m(t)h(rep)s (ository)d(sen)m(t)i(with)480 4356 y Fd(Directory)p Ff(.)0 4537 y Fd(UseUnchanged)27 b(\\n)480 4661 y Ff(Resp)s(onse)k(exp)s (ected:)44 b(no.)h(T)-8 b(o)33 b(sp)s(ecify)d(the)i(v)m(ersion)f(of)h (the)g(proto)s(col)g(describ)s(ed)e(in)h(this)f(do)s(cu-)480 4786 y(men)m(t,)f(serv)m(ers)e(m)m(ust)h(supp)s(ort)e(this)g(request)i (\(although)f(it)g(need)g(not)h(do)f(an)m(ything\))h(and)e(clien)m(ts) 480 4910 y(m)m(ust)k(issue)f(it.)0 5091 y Fd(Notify)g Fe(\014lename)34 b Fd(\\n)480 5215 y Ff(Resp)s(onse)20 b(exp)s(ected:)36 b(no.)h(T)-8 b(ell)20 b(the)g(serv)m(er)h(that)g(a)g Fd(edit)e Ff(or)i Fd(unedit)e Ff(command)h(has)g(tak)m(en)i(place.)480 5340 y(The)30 b(serv)m(er)g(needs)g(to)h(send)f(a)h Fd(Notified)d Ff(resp)s(onse,)h(but)h(suc)m(h)g(resp)s(onse)f(is)h(deferred)f(un)m (til)g(the)p eop %%Page: 12 12 12 11 bop 480 366 a Ff(next)39 b(time)g(that)g(the)g(serv)m(er)g(is)f (sending)g(resp)s(onses.)65 b(Resp)s(onse)38 b(exp)s(ected:)58 b(no.)66 b(Additional)480 491 y(data:)720 640 y Fe(noti\014cation-t)m (yp)s(e)53 b Fd(\\t)47 b Fe(time)53 b Fd(\\t)47 b Fe(clien)m(thost)i Fd(\\t)720 744 y Fe(w)m(orking-dir)j Fd(\\t)47 b Fe(w)m(atc)m(hes)54 b Fd(\\n)480 914 y Ff(where)32 b Fe(noti\014cation-t)m(yp)s(e)37 b Ff(is)32 b(`)p Fd(E)p Ff(')g(for)h(edit,)f(`)p Fd(U)p Ff(')h(for)f(unedit,)g(unde\014ned)e(b)s(eha)m(vior)h(if)h(`)p Fd(C)p Ff(',)h(and)f(all)480 1038 y(other)d(letters)g(should)e(b)s(e)h (silen)m(tly)f(ignored)h(for)h(future)f(expansion.)39 b Fe(time)33 b Ff(is)28 b(the)h(time)g(at)g(whic)m(h)480 1163 y(the)d(edit)f(or)g(unedit)f(to)s(ok)i(place,)h(in)d(a)i (user-readable)e(format)i(of)g(the)f(clien)m(t's)g(c)m(hoice)i(\(the)f (serv)m(er)480 1287 y(should)36 b(treat)k(the)e(time)g(as)h(an)f (opaque)g(string)g(rather)g(than)g(in)m(terpreting)f(it\).)64 b Fe(clien)m(thost)40 b Ff(is)480 1412 y(the)c(name)h(of)f(the)g(host)g (on)g(whic)m(h)f(the)i(edit)e(or)h(unedit)f(to)s(ok)i(place,)g(and)f Fe(w)m(orking-dir)41 b Ff(is)35 b(the)480 1536 y(pathname)g(of)g(the)h (w)m(orking)e(directory)h(where)f(the)h(edit)g(or)g(unedit)f(to)s(ok)h (place.)55 b Fe(w)m(atc)m(hes)41 b Ff(are)480 1661 y(the)31 b(temp)s(orary)g(w)m(atc)m(hes)i(to)f(set.)43 b(If)31 b Fe(w)m(atc)m(hes)36 b Ff(is)30 b(follo)m(w)m(ed)h(b)m(y)g Fd(\\)p Ff(t)g(then)g(the)g Fd(\\)p Ff(t)h(and)e(the)h(rest)h(of)480 1785 y(the)f(line)d(should)h(b)s(e)g(ignored,)h(for)g(future)g (expansion.)480 1955 y(Note)g(that)f(a)g(clien)m(t)f(ma)m(y)h(b)s(e)f (capable)h(of)f(p)s(erforming)f(an)h Fd(edit)g Ff(or)g Fd(unedit)f Ff(op)s(eration)h(without)480 2080 y(connecting)39 b(to)g(the)g(serv)m(er)g(at)h(that)f(time,)i(and)d(instead)g (connecting)h(to)h(the)f(serv)m(er)g(when)e(it)480 2204 y(is)j(con)m(v)m(enien)m(t)i(\(for)e(example,)k(when)39 b(a)i(laptop)f(is)g(on)h(the)g(net)f(again\))h(to)h(send)e(the)h Fd(Notify)480 2329 y Ff(requests.)69 b(Ev)m(en)40 b(if)f(a)h(clien)m(t) g(is)f(capable)h(of)g(deferring)e(noti\014cations,)k(it)d(should)f (attempt)j(to)480 2453 y(send)33 b(them)h(immediately)e(\(one)j(can)f (send)f Fd(Notify)g Ff(requests)g(together)j(with)d(a)h Fd(noop)f Ff(request,)480 2578 y(for)d(example\),)h(unless)d(p)s (erhaps)h(if)g(it)h(can)h(kno)m(w)f(that)h(a)g(connection)g(w)m(ould)e (b)s(e)h(imp)s(ossible.)0 2793 y Fd(Questionable)d Fe(\014lename)35 b Fd(\\n)480 2917 y Ff(Resp)s(onse)25 b(exp)s(ected:)39 b(no.)g(Additional)24 b(data:)39 b(no.)g(T)-8 b(ell)25 b(the)h(serv)m(er)g(to)h(c)m(hec)m(k)g(whether)f Fe(\014lename)480 3042 y Ff(should)43 b(b)s(e)i(ignored,)k(and)44 b(if)h(not,)k(next)d (time)f(the)g(serv)m(er)h(sends)e(resp)s(onses,)49 b(send)44 b(\(in)h(a)g Fd(M)480 3166 y Ff(resp)s(onse\))31 b(`)p Fd(?)p Ff(')g(follo)m(w)m(ed)g(b)m(y)g(the)g(directory)g(and)f (\014lename.)42 b Fe(\014lename)36 b Ff(m)m(ust)31 b(not)g(con)m(tain)g (`)p Fd(/)p Ff(';)h(it)480 3291 y(needs)e(to)h(b)s(e)f(a)h(\014le)e(in) g(the)i(directory)f(named)f(b)m(y)i(the)f(most)h(recen)m(t)g Fd(Directory)d Ff(request.)0 3506 y Fd(Case)h(\\n)163 b Ff(Resp)s(onse)36 b(exp)s(ected:)54 b(no.)60 b(T)-8 b(ell)35 b(the)i(serv)m(er)g(that)h(\014lenames)e(should)e(b)s(e)i (matc)m(hed)i(in)d(a)j(case-)480 3631 y(insensitiv)m(e)c(fashion.)58 b(Note)38 b(that)f(this)e(is)h(not)g(the)h(primary)e(mec)m(hanism)g (for)i(ac)m(hieving)f(case-)480 3755 y(insensitivit)m(y;)25 b(for)g(the)h(most)g(part)g(the)g(clien)m(t)g(k)m(eeps)g(trac)m(k)h(of) f(the)g(case)h(whic)m(h)d(the)i(serv)m(er)g(w)m(an)m(ts)480 3880 y(to)k(use)f(and)f(tak)m(es)j(care)f(to)f(alw)m(a)m(ys)h(use)f (that)h(case)g(regardless)e(of)h(what)h(the)f(user)f(sp)s(eci\014es.)39 b(F)-8 b(or)480 4004 y(example)37 b(the)h(\014lenames)f(giv)m(en)h(in)e Fd(Entry)g Ff(and)h Fd(Modified)e Ff(requests)j(for)f(the)h(same)g (\014le)f(m)m(ust)480 4129 y(matc)m(h)31 b(in)e(case)j(regardless)d(of) i(whether)e(the)i Fd(Case)e Ff(request)h(is)g(sen)m(t.)41 b(The)30 b(latter)g(mec)m(hanism)g(is)480 4253 y(more)23 b(general)f(\(it)g(could)g(also)g(b)s(e)g(used)f(for)h(8.3)i (\014lenames,)f(VMS)f(\014lenames)g(with)f(more)i(than)f(one)480 4378 y(`)p Fd(.)p Ff(',)29 b(and)f(an)m(y)h(other)g(situation)e(in)g (whic)m(h)h(there)g(is)g(a)h(predictable)e(mapping)g(b)s(et)m(w)m(een)i (\014lenames)480 4502 y(in)h(the)i(w)m(orking)e(directory)h(and)g (\014lenames)f(in)g(the)i(proto)s(col\),)g(but)e(there)i(are)f(some)h (situations)480 4627 y(it)c(cannot)h(handle)e(\(ignore)h(patterns,)h (or)f(situations)f(where)h(the)h(user)e(sp)s(eci\014es)g(a)i (\014lename)f(and)480 4751 y(the)j(clien)m(t)f(do)s(es)g(not)g(kno)m(w) h(ab)s(out)f(that)h(\014le\).)0 4966 y Fd(Argument)d Fe(text)33 b Fd(\\n)480 5091 y Ff(Resp)s(onse)43 b(exp)s(ected:)66 b(no.)80 b(Sa)m(v)m(e)44 b(argumen)m(t)g(for)f(use)g(in)f(a)h (subsequen)m(t)g(command.)79 b(Argu-)480 5215 y(men)m(ts)30 b(accum)m(ulate)g(un)m(til)e(an)h(argumen)m(t-using)g(command)g(is)f (giv)m(en,)i(at)g(whic)m(h)f(p)s(oin)m(t)f(they)i(are)480 5340 y(forgotten.)p eop %%Page: 13 13 13 12 bop 0 366 a Fd(Argumentx)28 b Fe(text)33 b Fd(\\n)480 491 y Ff(Resp)s(onse)k(exp)s(ected:)54 b(no.)61 b(App)s(end)35 b Fd(\\)p Ff(n)i(follo)m(w)m(ed)f(b)m(y)h(text)i(to)e(the)h(curren)m(t) f(argumen)m(t)g(b)s(eing)480 616 y(sa)m(v)m(ed.)0 795 y Fd(Global_option)27 b Fe(option)j Fd(\\n)480 920 y Ff(Resp)s(onse)c(exp)s(ected:)39 b(no.)g(T)-8 b(ransmit)25 b(one)i(of)f(the)h(global)e(options)h(`)p Fd(-q)p Ff(',)h(`)p Fd(-Q)p Ff(',)g(`)p Fd(-l)p Ff(',)g(`)p Fd(-t)p Ff(',)h(`)p Fd(-r)p Ff(',)f(or)480 1044 y(`)p Fd(-n)p Ff('.)40 b Fe(option)29 b Ff(m)m(ust)h(b)s(e)f(one)h(of)f(those)h(strings,)f(no)h (v)-5 b(ariations)28 b(\(suc)m(h)i(as)g(com)m(bining)e(of)h(options\)) 480 1169 y(are)34 b(allo)m(w)m(ed.)52 b(F)-8 b(or)35 b(graceful)e(handling)f(of)i Fd(valid-requests)p Ff(,)d(it)j(is)f (probably)f(b)s(etter)i(to)h(mak)m(e)480 1293 y(new)30 b(global)g(options)f(separate)j(requests,)e(rather)g(than)g(trying)g (to)h(add)f(them)g(to)h(this)f(request.)0 1473 y Fd(Gzip-stream)d Fe(lev)m(el)34 b Fd(\\n)480 1598 y Ff(Resp)s(onse)25 b(exp)s(ected:)39 b(no.)g(Use)26 b(zlib)e(\(RF)m(C)j(1950/1951\))j (compression)25 b(to)h(compress)g(all)e(further)480 1722 y(comm)m(unication)j(b)s(et)m(w)m(een)g(the)h(clien)m(t)f(and)f(the)i (serv)m(er.)40 b(After)27 b(this)f(request)h(is)g(sen)m(t,)h(all)e (further)480 1847 y(comm)m(unication)g(m)m(ust)f(b)s(e)h(compressed.)39 b(All)25 b(further)f(data)j(receiv)m(ed)f(from)g(the)g(serv)m(er)h (will)c(also)480 1971 y(b)s(e)i(compressed.)39 b(The)25 b Fe(lev)m(el)30 b Ff(argumen)m(t)c(suggests)g(to)h(the)f(serv)m(er)g (the)g(lev)m(el)g(of)g(compression)e(that)480 2096 y(it)39 b(should)f(apply;)43 b(it)d(should)d(b)s(e)j(an)f(in)m(teger)h(b)s(et)m (w)m(een)h(1)f(and)f(9,)k(inclusiv)m(e,)d(where)f(a)h(higher)480 2220 y(n)m(um)m(b)s(er)29 b(indicates)g(more)i(compression.)0 2400 y Fd(Kerberos-encrypt)26 b(\\n)480 2525 y Ff(Resp)s(onse)e(exp)s (ected:)39 b(no.)g(Use)25 b(Kerb)s(eros)f(encryption)g(to)i(encrypt)f (all)f(further)f(comm)m(unication)480 2649 y(b)s(et)m(w)m(een)41 b(the)f(clien)m(t)f(and)g(the)i(serv)m(er.)69 b(This)38 b(will)g(only)h(w)m(ork)h(if)e(the)j(connection)f(w)m(as)g(made)480 2774 y(o)m(v)m(er)32 b(Kerb)s(eros)e(in)f(the)i(\014rst)f(place.)42 b(If)31 b(b)s(oth)f(the)h Fd(Gzip-stream)c Ff(and)j(the)h Fd(Kerberos-encrypt)480 2898 y Ff(requests)e(are)h(used,)f(the)g Fd(Kerberos-encrypt)c Ff(request)k(should)e(b)s(e)i(used)f(\014rst.)40 b(This)27 b(will)g(mak)m(e)480 3023 y(the)44 b(clien)m(t)f(and)h(serv)m (er)g(encrypt)f(the)h(compressed)g(data,)k(as)c(opp)s(osed)f(to)i (compressing)e(the)480 3147 y(encrypted)30 b(data.)41 b(Encrypted)30 b(data)h(is)e(generally)h(incompressible.)0 3327 y Fd(Set)f Fe(v)-5 b(ariable)5 b Fd(=)p Fe(v)-5 b(alue)34 b Fd(\\n)480 3452 y Ff(Resp)s(onse)c(exp)s(ected:)41 b(no.)f(Set)31 b(a)g(user)e(v)-5 b(ariable)30 b Fe(v)-5 b(ariable)34 b Ff(to)d Fe(v)-5 b(alue)p Ff(.)0 3631 y Fd(expand-modules)26 b(\\n)480 3756 y Ff(Resp)s(onse)36 b(exp)s(ected:)54 b(y)m(es.)61 b(Expand)36 b(the)h(mo)s(dules)e(whic)m (h)g(are)j(sp)s(eci\014ed)d(in)g(the)i(argumen)m(ts.)480 3880 y(Returns)f(the)h(data)h(in)d Fd(Module-expansion)e Ff(resp)s(onses.)59 b(Note)38 b(that)g(the)f(serv)m(er)g(can)g(assume) 480 4005 y(that)c(this)f(is)g(c)m(hec)m(k)m(out)j(or)e(exp)s(ort,)g (not)g(rtag)h(or)e(rdi\013;)h(the)g(latter)g(do)g(not)g(access)h(the)f (w)m(orking)480 4130 y(directory)d(and)g(th)m(us)g(ha)m(v)m(e)h(no)f (need)h(to)g(expand)e(mo)s(dules)g(on)h(the)h(clien)m(t)f(side.)480 4282 y(Expand)h(ma)m(y)i(not)g(b)s(e)f(the)g(b)s(est)g(w)m(ord)h(for)f (what)g(this)f(request)i(do)s(es.)47 b(It)32 b(do)s(es)g(not)h (necessarily)480 4406 y(tell)28 b(y)m(ou)i(all)d(the)j(\014les)d(con)m (tained)j(in)d(a)j(mo)s(dule,)e(for)g(example.)40 b(Basically)29 b(it)f(is)g(a)h(w)m(a)m(y)h(of)g(telling)480 4531 y(y)m(ou)40 b(whic)m(h)f(w)m(orking)g(directories)g(the)h(serv)m(er)g(needs)g(to)h (kno)m(w)f(ab)s(out)f(in)g(order)g(to)i(handle)e(a)480 4655 y(c)m(hec)m(k)m(out)33 b(of)d(the)h(sp)s(eci\014ed)e(mo)s(dules.) 480 4807 y(F)-8 b(or)31 b(example,)f(supp)s(ose)f(that)i(the)g(serv)m (er)g(has)f(a)g(mo)s(dule)f(de\014ned)g(b)m(y)720 4939 y Fd(aliasmodule)45 b(-a)i(1dir)480 5091 y Ff(That)36 b(is,)g(one)g(can)h(c)m(hec)m(k)g(out)f Fd(aliasmodule)d Ff(and)i(it)h(will)d(tak)m(e)k Fd(1dir)e Ff(in)g(the)h(rep)s(ository)f (and)480 5215 y(c)m(hec)m(k)c(it)e(out)h(to)g Fd(1dir)f Ff(in)f(the)i(w)m(orking)f(directory)-8 b(.)40 b(No)m(w)30 b(supp)s(ose)f(the)g(clien)m(t)h(already)f(has)g(this)480 5340 y(mo)s(dule)36 b(c)m(hec)m(k)m(ed)k(out)e(and)g(is)f(planning)e (on)j(using)e(the)i Fd(co)g Ff(request)f(to)i(up)s(date)e(it.)63 b(Without)p eop %%Page: 14 14 14 13 bop 480 366 a Ff(using)38 b Fd(expand-modules)p Ff(,)h(the)h(clien)m(t)f(w)m(ould)f(ha)m(v)m(e)j(t)m(w)m(o)g(bad)e(c)m (hoices:)61 b(it)39 b(could)g(either)g(send)480 491 y(information)31 b(ab)s(out)h Fe(all)j Ff(w)m(orking)c(directories)h(under)e(the)j (curren)m(t)f(directory)-8 b(,)33 b(whic)m(h)e(could)h(b)s(e)480 616 y(unnecessarily)20 b(slo)m(w,)j(or)f(it)f(could)f(b)s(e)h(ignoran)m (t)h(of)g(the)g(fact)g(that)h Fd(aliasmodule)18 b Ff(stands)j(for)h Fd(1dir)p Ff(,)480 740 y(and)30 b(neglect)h(to)g(send)f(information)e (for)i Fd(1dir)p Ff(,)g(whic)m(h)f(w)m(ould)g(lead)h(to)h(incorrect)f (op)s(eration.)480 896 y(With)g Fd(expand-modules)p Ff(,)d(the)j(clien) m(t)g(w)m(ould)f(\014rst)h(ask)g(for)h(the)f(mo)s(dule)f(to)i(b)s(e)f (expanded:)720 1031 y Fd(C:)47 b(Root)g(/home/kingdon/zwork/cvsr)o(oot) 720 1135 y(.)g(.)h(.)720 1239 y(C:)f(Argument)f(aliasmodule)720 1343 y(C:)h(Directory)e(.)720 1446 y(C:)i(/home/kingdon/zwork/cvsro)o (ot)720 1550 y(C:)g(expand-modules)720 1654 y(S:)g(Module-expansion)d (1dir)720 1758 y(S:)j(ok)480 1914 y Ff(and)32 b(then)g(it)g(kno)m(ws)h (to)g(c)m(hec)m(k)h(the)f(`)p Fd(1dir)p Ff(')e(directory)h(and)g(send)g (requests)h(suc)m(h)f(as)g Fd(Entry)g Ff(and)480 2038 y Fd(Modified)c Ff(for)i(the)h(\014les)e(in)g(that)i(directory)-8 b(.)0 2226 y Fd(ci)30 b(\\n)0 2350 y(diff)f(\\n)0 2475 y(tag)g(\\n)0 2599 y(status)g(\\n)0 2724 y(log)g(\\n)0 2848 y(add)g(\\n)0 2973 y(remove)g(\\n)0 3097 y(admin)g(\\n)0 3222 y(export)g(\\n)0 3346 y(history)f(\\n)0 3471 y(watchers)g(\\n)0 3595 y(editors)g(\\n)0 3720 y(annotate)g(\\n)480 3844 y Ff(Resp)s(onse)20 b(exp)s(ected:)37 b(y)m(es.)h(Actually)20 b(do)h(a)g(cvs)g(command.)38 b(This)19 b(uses)h(an)m(y)i(previous)d Fd(Argument)p Ff(,)480 3969 y Fd(Directory)p Ff(,)29 b Fd(Entry)p Ff(,)i(or)g Fd(Modified)e Ff(requests,)j(if)e(they)h(ha)m (v)m(e)i(b)s(een)d(sen)m(t.)45 b(The)30 b(last)h Fd(Directory)480 4094 y Ff(sen)m(t)e(sp)s(eci\014es)e(the)i(w)m(orking)f(directory)g(at) i(the)f(time)f(of)h(the)g(op)s(eration.)39 b(No)29 b(pro)m(vision)e(is) h(made)480 4218 y(for)34 b(an)m(y)g(input)e(from)h(the)h(user.)51 b(This)32 b(means)h(that)i Fd(ci)e Ff(m)m(ust)h(use)f(a)i Fd(-m)e Ff(argumen)m(t)h(if)f(it)g(w)m(an)m(ts)480 4343 y(to)e(sp)s(ecify)e(a)i(log)f(message.)0 4530 y Fd(co)g(\\n)258 b Ff(Resp)s(onse)50 b(exp)s(ected:)82 b(y)m(es.)103 b(Get)52 b(\014les)d(from)i(the)g(rep)s(ository)-8 b(.)101 b(This)49 b(uses)h(an)m(y)h(previous)480 4654 y Fd(Argument)p Ff(,)40 b Fd(Directory)p Ff(,)h Fd(Entry)p Ff(,)g(or)f Fd(Modified)e Ff(requests,)k(if)d(they)h(ha)m(v)m(e)i(b)s(een)d(sen)m(t.)70 b(Argu-)480 4779 y(men)m(ts)39 b(to)g(this)e(command)i(are)g(mo)s(dule) d(names;)43 b(the)c(clien)m(t)f(cannot)h(kno)m(w)g(what)f(directories) 480 4904 y(they)g(corresp)s(ond)e(to)i(except)h(b)m(y)e(\(1\))i(just)e (sending)e(the)j Fd(co)f Ff(request,)j(and)d(then)g(seeing)g(what)480 5028 y(directory)f(names)g(the)g(serv)m(er)g(sends)f(bac)m(k)i(in)e (its)g(resp)s(onses,)i(and)e(\(2\))j(the)e Fd(expand-modules)480 5153 y Ff(request.)0 5340 y Fd(rdiff)29 b(\\n)p eop %%Page: 15 15 15 14 bop 0 366 a Fd(rtag)29 b(\\n)163 b Ff(Resp)s(onse)23 b(exp)s(ected:)37 b(y)m(es.)i(Actually)23 b(do)g(a)h(cvs)g(command.)38 b(This)22 b(uses)h(an)m(y)g(previous)f Fd(Argument)480 491 y Ff(requests,)43 b(if)c(they)h(ha)m(v)m(e)i(b)s(een)d(sen)m(t.)71 b(The)40 b(clien)m(t)g(should)e(not)j(send)e Fd(Directory)p Ff(,)h Fd(Entry)p Ff(,)i(or)480 616 y Fd(Modified)20 b Ff(requests)i(for)g(this)f(command;)k(they)d(are)h(not)f(used.)38 b(Argumen)m(ts)22 b(to)h(these)f(commands)480 740 y(are)31 b(mo)s(dule)d(names,)j(as)g(describ)s(ed)d(for)i Fd(co)p Ff(.)0 935 y Fd(init)f Fe(ro)s(ot-name)36 b Fd(\\n)480 1059 y Ff(Resp)s(onse)27 b(exp)s(ected:)40 b(y)m(es.)h(If)27 b(it)g(do)s(esn't)h(already)f(exist,)i(create)g(a)f Fb(cvs)f Ff(rep)s(ository)g Fe(ro)s(ot-name)p Ff(.)480 1184 y(Note)40 b(that)e Fe(ro)s(ot-name)45 b Ff(is)37 b(a)i(lo)s(cal)e(directory)h (and)f Fe(not)k Ff(a)e(fully)d(quali\014ed)g Fd(CVSROOT)g Ff(v)-5 b(ariable.)480 1308 y(The)30 b Fd(Root)f Ff(request)h(need)h (not)f(ha)m(v)m(e)i(b)s(een)d(previously)g(sen)m(t.)0 1503 y Fd(update)g(\\n)67 b Ff(Resp)s(onse)30 b(exp)s(ected:)42 b(y)m(es.)g(Actually)30 b(do)h(a)g Fd(cvs)f(update)f Ff(command.)41 b(This)29 b(uses)h(an)m(y)h(previous)480 1627 y Fd(Argument)p Ff(,)g Fd(Directory)p Ff(,)g Fd(Entry)p Ff(,)i(or)f Fd(Modified)f Ff(requests,)j(if)d(they)i(ha)m(v)m(e)h(b)s (een)e(sen)m(t.)49 b(The)32 b(last)480 1752 y Fd(Directory)h Ff(sen)m(t)i(sp)s(eci\014es)f(the)h(w)m(orking)g(directory)g(at)g(the)h (time)f(of)g(the)g(op)s(eration.)55 b(The)35 b Fd(-I)480 1876 y Ff(option)24 b(is)f(not)i(used{\014les)e(whic)m(h)g(the)h(clien) m(t)g(can)h(decide)e(whether)h(to)h(ignore)f(are)h(not)f(men)m(tioned) 480 2001 y(and)30 b(the)g(clien)m(t)g(sends)g(the)g Fd(Questionable)d Ff(request)k(for)f(others.)0 2196 y Fd(import)f(\\n)67 b Ff(Resp)s(onse)30 b(exp)s(ected:)42 b(y)m(es.)g(Actually)30 b(do)h(a)g Fd(cvs)f(import)f Ff(command.)41 b(This)29 b(uses)h(an)m(y)h(previous)480 2320 y Fd(Argument)p Ff(,)g Fd(Directory)p Ff(,)g Fd(Entry)p Ff(,)i(or)f Fd(Modified)f Ff(requests,)j(if)d(they)i(ha)m(v)m(e)h(b)s(een)e(sen)m(t.)49 b(The)32 b(last)480 2445 y Fd(Directory)d Ff(sen)m(t)j(sp)s(eci\014es)e (the)h(w)m(orking)g(directory)g(at)h(the)g(time)f(of)g(the)h(op)s (eration.)43 b(The)31 b(\014les)480 2569 y(to)j(b)s(e)g(imp)s(orted)e (are)i(sen)m(t)g(in)e Fd(Modified)g Ff(requests)i(\(\014les)f(whic)m(h) f(the)i(clien)m(t)f(kno)m(ws)h(should)e(b)s(e)480 2694 y(ignored)c(are)i(not)g(sen)m(t;)g(the)g(serv)m(er)g(m)m(ust)f(still)e (pro)s(cess)i(the)h(CVSR)m(OOT/cvsignore)e(\014le)h(unless)480 2818 y(-I)h(!)h(is)e(sen)m(t\).)42 b(A)30 b(log)h(message)g(m)m(ust)g (ha)m(v)m(e)g(b)s(een)f(sp)s(eci\014ed)f(with)g(a)h Fd(-m)g Ff(argumen)m(t.)0 3013 y Fd(watch-on)e(\\n)0 3137 y(watch-off)g(\\n)0 3262 y(watch-add)g(\\n)0 3386 y(watch-remove)f(\\n)480 3511 y Ff(Resp)s(onse)40 b(exp)s(ected:)63 b(y)m(es.)73 b(Actually)40 b(do)h(the)g Fd(cvs)29 b(watch)g(on)p Ff(,)44 b Fd(cvs)29 b(watch)g(off)p Ff(,)43 b Fd(cvs)29 b(watch)480 3635 y(add)p Ff(,)24 b(and)f Fd(cvs)30 b(watch)f(remove)21 b Ff(commands,)k(resp)s(ectiv)m(ely)-8 b(.)38 b(This)22 b(uses)h(an)m(y)h(previous)e Fd(Argument)p Ff(,)480 3760 y Fd(Directory)p Ff(,)29 b Fd(Entry)p Ff(,)i(or)g Fd(Modified)e Ff(requests,)j(if)e(they)h(ha)m(v)m(e)i(b)s(een)d(sen)m(t.)45 b(The)30 b(last)h Fd(Directory)480 3885 y Ff(sen)m(t)g(sp)s(eci\014es)e (the)h(w)m(orking)g(directory)g(at)h(the)g(time)f(of)g(the)h(op)s (eration.)0 4079 y Fd(release)d(\\n)480 4204 y Ff(Resp)s(onse)43 b(exp)s(ected:)68 b(y)m(es.)81 b(Note)45 b(that)g(a)f Fd(cvs)29 b(release)42 b Ff(command)i(has)f(tak)m(en)i(place)f(and)480 4328 y(up)s(date)30 b(the)g(history)f(\014le)h(accordingly)-8 b(.)0 4523 y Fd(noop)29 b(\\n)163 b Ff(Resp)s(onse)34 b(exp)s(ected:)48 b(y)m(es.)53 b(This)33 b(request)h(is)f(a)i(n)m(ull)d (command)i(in)f(the)h(sense)h(that)f(it)g(do)s(esn't)480 4647 y(do)c(an)m(ything,)g(but)g(merely)f(\(as)i(with)e(an)m(y)i(other) f(requests)h(exp)s(ecting)e(a)i(resp)s(onse\))f(sends)f(bac)m(k)480 4772 y(an)m(y)i(resp)s(onses)e(p)s(ertaining)f(to)j(p)s(ending)d (errors,)i(p)s(ending)e Fd(Notified)g Ff(resp)s(onses,)i(etc.)0 4966 y Fd(update-patches)c(\\n)480 5091 y Ff(Resp)s(onse)34 b(exp)s(ected:)51 b(y)m(es.)k(This)33 b(request)i(do)s(es)g(not)g (actually)g(do)g(an)m(ything.)54 b(It)35 b(is)f(used)g(as)i(a)480 5215 y(signal)31 b(that)i(the)g(serv)m(er)g(is)e(able)h(to)i(generate)g (patc)m(hes)f(when)f(giv)m(en)g(an)g Fd(update)f Ff(request.)47 b(The)480 5340 y(clien)m(t)30 b(m)m(ust)g(issue)f(the)i Fd(-u)f Ff(argumen)m(t)h(to)g Fd(update)d Ff(in)h(order)h(to)h(receiv)m (e)h(patc)m(hes.)p eop %%Page: 16 16 16 15 bop 0 366 a Fd(gzip-file-contents)25 b Fe(lev)m(el)34 b Fd(\\n)480 491 y Ff(Resp)s(onse)26 b(exp)s(ected:)39 b(no.)g(Note)28 b(that)f(this)f(request)g(do)s(es)g(not)h(follo)m(w)f (the)g(resp)s(onse)g(con)m(v)m(en)m(tion)480 616 y(stated)39 b(ab)s(o)m(v)m(e.)66 b Fd(Gzip-stream)35 b Ff(is)j(suggested)h(instead) e(of)i Fd(gzip-file-contents)33 b Ff(as)39 b(it)f(giv)m(es)480 740 y(b)s(etter)31 b(compression;)f(the)h(only)f(reason)g(to)i (implemen)m(t)d(the)i(latter)g(is)f(to)h(pro)m(vide)f(compression)480 865 y(with)22 b Fb(cvs)g Ff(1.8)i(and)e(earlier.)37 b(The)22 b Fd(gzip-file-contents)c Ff(request)23 b(asks)g(the)g(serv)m(er)h(to)f (compress)480 989 y(\014les)j(it)h(sends)g(to)h(the)f(clien)m(t)g (using)f Fd(gzip)g Ff(\(RF)m(C1952/1951\))33 b(compression,)27 b(using)f(the)i(sp)s(eci\014ed)480 1114 y(lev)m(el)i(of)h(compression.) 39 b(If)30 b(this)g(request)g(is)f(not)i(made,)g(the)f(serv)m(er)h(m)m (ust)f(not)h(compress)f(\014les.)480 1259 y(This)h(is)h(only)h(a)g(hin) m(t)f(to)i(the)f(serv)m(er.)50 b(It)33 b(ma)m(y)h(still)d(decide)h (\(for)h(example,)h(in)e(the)h(case)h(of)g(v)m(ery)480 1383 y(small)e(\014les,)i(or)g(\014les)f(that)h(already)g(app)s(ear)f (to)h(b)s(e)g(compressed\))f(not)h(to)h(do)f(the)g(compression.)480 1508 y(Compression)29 b(is)g(indicated)g(b)m(y)h(a)h(`)p Fd(z)p Ff(')g(preceding)e(the)h(\014le)g(length.)480 1653 y(Av)-5 b(ailabilit)m(y)33 b(of)i(this)g(request)g(in)f(the)i (serv)m(er)f(indicates)g(to)h(the)f(clien)m(t)g(that)h(it)f(ma)m(y)h (compress)480 1777 y(\014les)29 b(sen)m(t)i(to)g(the)g(serv)m(er,)g (regardless)e(of)i(whether)f(the)g(clien)m(t)g(actually)g(uses)g(this)f (request.)0 1942 y Fe(other-request)k(text)g Fd(\\n)480 2067 y Ff(Resp)s(onse)h(exp)s(ected:)49 b(y)m(es.)54 b(An)m(y)34 b(unrecognized)g(request)g(exp)s(ects)h(a)g(resp)s(onse,)g (and)f(do)s(es)g(not)480 2191 y(con)m(tain)43 b(an)m(y)g(additional)d (data.)79 b(The)42 b(resp)s(onse)f(will)f(normally)h(b)s(e)h(something) g(lik)m(e)g(`)p Fd(error)480 2316 y(unrecognized)27 b(request)p Ff(',)f(but)g(it)g(could)g(b)s(e)g(a)h(di\013eren)m(t)f(error)g(if)g(a) h(previous)e(command)h(whic)m(h)480 2440 y(do)s(esn't)k(exp)s(ect)h(a)g (resp)s(onse)e(pro)s(duced)g(an)h(error.)125 2735 y(When)g(the)g(clien) m(t)g(is)g(done,)g(it)g(drops)f(the)i(connection.)0 3165 y Fa(5.7)68 b(Resp)t(onses)125 3439 y Ff(After)39 b(a)g(command)g(whic) m(h)e(exp)s(ects)j(a)f(resp)s(onse,)h(the)g(serv)m(er)f(sends)f(ho)m(w) m(ev)m(er)i(man)m(y)f(of)g(the)g(follo)m(wing)0 3563 y(resp)s(onses)29 b(are)h(appropriate.)39 b(The)29 b(serv)m(er)h (should)e(not)i(send)e(data)j(at)f(other)g(times)f(\(the)h(curren)m(t)g (implemen-)0 3688 y(tation)25 b(ma)m(y)f(violate)h(this)e(principle)e (in)i(a)h(few)g(minor)f(places,)j(where)d(the)i(serv)m(er)f(is)g(prin)m (ting)e(an)i(error)g(message)0 3812 y(and)30 b(exiting|this)e(should)h (b)s(e)g(in)m(v)m(estigated)i(further\).)125 4086 y(In)25 b(the)h(follo)m(wing,)g Fe(pathname)31 b Ff(actually)25 b(indicates)g(a)h(pair)f(of)h(pathnames.)39 b(First,)27 b(a)f(lo)s(cal)f(directory)h(name)0 4211 y(relativ)m(e)42 b(to)g(the)g(directory)f(in)g(whic)m(h)f(the)i(command)g(w)m(as)g(giv)m (en)g(\(i.e.)75 b(the)42 b(last)f Fd(Directory)e Ff(b)s(efore)j(the)0 4335 y(command\).)f(Then)28 b(a)i(linefeed)e(and)h(a)h(rep)s(ository)e (name.)40 b(Then)29 b(a)h(slash)e(and)h(the)h(\014lename)e(\(without)h (a)h(`)p Fd(,v)p Ff(')0 4460 y(ending\).)41 b(F)-8 b(or)32 b(example,)f(for)g(a)g(\014le)f(`)p Fd(i386.mh)p Ff(')g(whic)m(h)f(is)h (in)g(the)h(lo)s(cal)f(directory)h(`)p Fd(gas.clean/config)p Ff(')c(and)0 4584 y(for)j(whic)m(h)f(the)i(rep)s(ository)e(is)h(`)p Fd(/rel/cvsfiles/devo/gas/)o(conf)o(ig)p Ff(':)240 4838 y Fd(gas.clean/config/)240 4941 y(/rel/cvsfiles/devo/gas/c)o(onfi)o (g/i3)o(86.)o(mh)125 5215 y Ff(If)24 b(the)h(serv)m(er)h(w)m(an)m(ts)f (to)h(tell)f(the)g(clien)m(t)f(to)i(create)h(a)e(directory)-8 b(,)27 b(then)d(it)h(merely)f(uses)h(the)g(directory)g(in)f(an)m(y)0 5340 y(resp)s(onse,)33 b(as)h(describ)s(ed)d(ab)s(o)m(v)m(e,)k(and)e (the)g(clien)m(t)g(should)e(create)k(the)e(directory)g(if)f(it)g(do)s (es)h(not)h(exist.)49 b(Note)p eop %%Page: 17 17 17 16 bop 0 366 a Ff(that)37 b(this)f(should)e(only)i(b)s(e)g(done)h (one)g(directory)f(at)h(a)g(time,)h(in)e(order)g(to)h(p)s(ermit)e(the)i (clien)m(t)f(to)i(correctly)0 491 y(store)g(the)g(rep)s(ository)f(for)g (eac)m(h)i(directory)-8 b(.)62 b(Serv)m(ers)37 b(can)h(use)g(requests)f (suc)m(h)g(as)h Fd(Clear-sticky)p Ff(,)f Fd(Clear-)0 616 y(static-directory)p Ff(,)26 b(or)31 b(an)m(y)f(other)h(requests,)f (to)i(create)f(directories.)125 895 y(Some)24 b(serv)m(er)h(implemen)m (tations)f(ma)m(y)h(p)s(o)s(orly)e(distinguish)e(b)s(et)m(w)m(een)k(a)h (directory)e(whic)m(h)f(should)g(not)i(exist)0 1020 y(and)k(a)h (directory)g(whic)m(h)e(con)m(tains)i(no)g(\014les;)f(in)g(order)g(to)i (refrain)d(from)i(creating)g(empt)m(y)g(directories)f(a)h(clien)m(t)0 1144 y(should)35 b(b)s(oth)h(send)h(the)g(`)p Fd(-P)p Ff(')g(option)f(to)i Fd(update)e Ff(or)h Fd(co)p Ff(,)h(and)e(should)f (also)i(detect)i(the)e(case)h(in)e(whic)m(h)g(the)0 1269 y(serv)m(er)d(asks)g(to)g(create)h(a)g(directory)e(but)g(not)h(an)m(y)g (\014les)e(within)g(it)h(\(in)g(that)h(case)h(the)e(clien)m(t)h(should) d(remo)m(v)m(e)0 1393 y(the)35 b(directory)f(or)g(refrain)f(from)h (creating)h(it)f(in)f(the)h(\014rst)g(place\).)53 b(Note)36 b(that)f(serv)m(ers)g(could)e(clean)i(this)e(up)0 1518 y(greatly)e(b)m(y)g(only)f(telling)g(the)h(clien)m(t)g(to)g(create)i (directories)d(if)g(the)h(directory)g(in)e(question)h(should)f(exist,)j (but)0 1642 y(un)m(til)d(serv)m(ers)h(do)g(this,)g(clien)m(ts)g(will)d (need)k(to)g(o\013er)f(the)h(`)p Fd(-P)p Ff(')f(b)s(eha)m(vior)g (describ)s(ed)e(ab)s(o)m(v)m(e.)125 1922 y(An)m(y)i(resp)s(onse)f(alw)m (a)m(ys)i(ends)f(with)f(`)p Fd(error)p Ff(')g(or)i(`)p Fd(ok)p Ff('.)40 b(This)29 b(indicates)g(that)i(the)g(resp)s(onse)e(is) h(o)m(v)m(er.)0 2232 y Fd(Valid-requests)c Fe(request-list)32 b Fd(\\n)480 2356 y Ff(Indicate)i(what)h(requests)f(the)h(serv)m(er)g (will)d(accept.)55 b Fe(request-list)36 b Ff(is)d(a)i(space)g (separated)g(list)f(of)480 2481 y(tok)m(ens.)40 b(If)27 b(the)g(serv)m(er)g(supp)s(orts)e(sending)g(patc)m(hes,)j(it)f(will)d (include)g(`)p Fd(update-patches)p Ff(')g(in)h(this)480 2605 y(list.)39 b(The)30 b(`)p Fd(update-patches)p Ff(')d(request)k(do) s(es)f(not)g(actually)g(do)h(an)m(ything.)0 2791 y Fd(Checked-in)d Fe(pathname)35 b Fd(\\n)480 2916 y Ff(Additional)29 b(data:)45 b(New)32 b(En)m(tries)f(line,)g Fd(\\)p Ff(n.)44 b(This)30 b(means)i(a)g(\014le)f Fe(pathname)37 b Ff(has)31 b(b)s(een)g(success-) 480 3040 y(fully)26 b(op)s(erated)j(on)f(\(c)m(hec)m(k)m(ed)j(in,)d (added,)g(etc.\).)42 b(name)29 b(in)e(the)h(En)m(tries)g(line)f(is)g (the)i(same)g(as)g(the)480 3165 y(last)h(comp)s(onen)m(t)h(of)f Fe(pathname)p Ff(.)0 3350 y Fd(New-entry)e Fe(pathname)35 b Fd(\\n)480 3475 y Ff(Additional)25 b(data:)39 b(New)27 b(En)m(tries)g(line,)f Fd(\\)p Ff(n.)39 b(Lik)m(e)27 b Fd(Checked-in)p Ff(,)e(but)h(the)h(\014le)f(is)g(not)h(up)f(to)i (date.)0 3660 y Fd(Updated)g Fe(pathname)36 b Fd(\\n)480 3785 y Ff(Additional)28 b(data:)41 b(New)30 b(En)m(tries)g(line,)f Fd(\\)p Ff(n,)g(mo)s(de,)h Fd(\\)p Ff(n,)g(\014le)f(transmission.)39 b(A)30 b(new)f(cop)m(y)i(of)g(the)480 3909 y(\014le)24 b(is)g(enclosed.)39 b(This)23 b(is)h(used)h(for)g(a)g(new)g(revision)e (of)i(an)g(existing)f(\014le,)i(or)f(for)g(a)g(new)g(\014le,)g(or)g (for)480 4034 y(an)m(y)j(other)f(case)i(in)d(whic)m(h)g(the)i(lo)s(cal) f(\(clien)m(t-side\))g(cop)m(y)h(of)f(the)h(\014le)f(needs)g(to)h(b)s (e)f(up)s(dated,)g(and)480 4158 y(after)j(b)s(eing)d(up)s(dated)h(it)h (will)d(b)s(e)j(up)f(to)i(date.)41 b(If)29 b(an)m(y)g(directory)g(in)f (pathname)h(do)s(es)f(not)i(exist,)480 4283 y(create)i(it.)40 b(This)29 b(resp)s(onse)g(is)h(not)g(used)g(if)f Fd(Created)g Ff(and)g Fd(Update-existing)d Ff(are)31 b(supp)s(orted.)0 4468 y Fd(Created)d Fe(pathname)36 b Fd(\\n)480 4593 y Ff(This)f(is)i(just)f(lik)m(e)h Fd(Updated)e Ff(and)h(tak)m(es)j(the) e(same)h(additional)d(data,)40 b(but)c(is)g(used)h(only)f(if)g(no)480 4717 y Fd(Entry)p Ff(,)k Fd(Modified)p Ff(,)f(or)g Fd(Unchanged)d Ff(request)j(has)g(b)s(een)f(sen)m(t)h(for)g(the)g(\014le)f(in)g (question.)65 b(The)480 4842 y(distinction)35 b(b)s(et)m(w)m(een)i Fd(Created)f Ff(and)g Fd(Update-existing)d Ff(is)j(so)h(that)h(the)f (clien)m(t)g(can)g(giv)m(e)h(an)480 4966 y(error)j(message)h(in)e(sev)m (eral)i(cases:)63 b(\(1\))43 b(there)e(is)g(a)g(\014le)g(in)f(the)h(w)m (orking)g(directory)-8 b(,)44 b(but)d(not)480 5091 y(one)31 b(for)f(whic)m(h)g Fd(Entry)p Ff(,)f Fd(Modified)p Ff(,)g(or)i Fd(Unchanged)d Ff(w)m(as)j(sen)m(t)g(\(for)g(example,)f(a)h(\014le)f (whic)m(h)g(w)m(as)480 5215 y(ignored,)j(or)g(a)g(\014le)f(for)h(whic)m (h)e Fd(Questionable)f Ff(w)m(as)j(sen)m(t\),)i(\(2\))f(there)f(is)f(a) h(\014le)f(in)g(the)h(w)m(orking)480 5340 y(directory)23 b(whose)h(name)f(di\013ers)g(from)g(the)h(one)g(men)m(tioned)f(in)g Fd(Created)e Ff(in)i(w)m(a)m(ys)h(that)g(the)g(clien)m(t)p eop %%Page: 18 18 18 17 bop 480 366 a Ff(is)30 b(unable)f(to)i(use)g(to)g(distinguish)c (\014les.)41 b(F)-8 b(or)31 b(example,)g(the)g(clien)m(t)f(is)g (case-insensitiv)m(e)g(and)g(the)480 491 y(names)g(di\013er)f(only)h (in)f(case.)0 677 y Fd(Update-existing)d Fe(pathname)36 b Fd(\\n)480 801 y Ff(This)i(is)i(just)f(lik)m(e)h Fd(Updated)e Ff(and)i(tak)m(es)i(the)e(same)h(additional)d(data,)44 b(but)39 b(is)g(used)h(only)f(if)h(a)480 926 y Fd(Entry)p Ff(,)29 b Fd(Modified)p Ff(,)g(or)h Fd(Unchanged)e Ff(request)i(has)g (b)s(een)g(sen)m(t)h(for)f(the)h(\014le)e(in)g(question.)480 1081 y(This)36 b(resp)s(onse,)i(or)f Fd(Merged)p Ff(,)h(indicates)e (that)i(the)g(serv)m(er)f(has)g(determined)f(that)i(it)f(is)g(OK)f(to) 480 1205 y(o)m(v)m(erwrite)h(the)f(previous)e(con)m(ten)m(ts)k(of)e (the)g(\014le)f(sp)s(eci\014ed)f(b)m(y)i Fe(pathname)p Ff(.)57 b(Pro)m(vided)35 b(that)i(the)480 1330 y(clien)m(t)i(has)g (correctly)h(sen)m(t)g Fd(Modified)d Ff(or)j Fd(Is-modified)c Ff(requests)j(for)g(a)h(mo)s(di\014ed)d(\014le,)42 b(and)480 1454 y(the)34 b(\014le)f(w)m(as)h(not)g(mo)s(di\014ed)e(while)f(CVS)j (w)m(as)g(running,)e(the)i(serv)m(er)g(can)g(ensure)f(that)h(a)h (user's)480 1579 y(mo)s(di\014cations)29 b(are)h(not)h(lost.)0 1764 y Fd(Merged)e Fe(pathname)35 b Fd(\\n)480 1889 y Ff(This)d(is)h(just)g(lik)m(e)g Fd(Updated)f Ff(and)h(tak)m(es)i(the)f (same)g(additional)e(data,)j(with)e(the)g(one)h(di\013erence)480 2013 y(that)e(after)h(the)f(new)f(cop)m(y)i(of)f(the)g(\014le)f(is)g (enclosed,)h(it)f(will)e(still)h(not)i(b)s(e)f(up)g(to)i(date.)45 b(Used)32 b(for)480 2138 y(the)f(results)e(of)h(a)h(merge,)g(with)e(or) i(without)e(con\015icts.)480 2293 y(It)40 b(is)f(useful)f(to)i(preserv) m(e)g(an)g(cop)m(y)g(of)g(what)g(the)g(\014le)f(lo)s(ok)m(ed)h(lik)m(e) f(b)s(efore)g(the)h(merge.)70 b(This)480 2417 y(is)40 b(basically)g(handled)f(b)m(y)j(the)f(serv)m(er;)47 b(b)s(efore)41 b(sending)f Fd(Merged)g Ff(it)h(will)d(send)j(a)g Fd(Copy-file)480 2542 y Ff(resp)s(onse.)d(F)-8 b(or)27 b(example,)g(if)e(the)h(\014le)f (is)g(`)p Fd(aa)p Ff(')g(and)h(it)f(deriv)m(es)h(from)f(revision)f (1.3,)k(the)e Fd(Copy-file)480 2666 y Ff(resp)s(onse)31 b(will)d(tell)j(the)h(clien)m(t)f(to)h(cop)m(y)g(`)p Fd(aa)p Ff(')g(to)g(`)p Fd(.#aa.1.3)p Ff('.)43 b(It)31 b(is)g(up)f(to)i(the)g(clien)m(t)f(to)i(decide)480 2791 y(ho)m(w)d(long)f(to)h(k)m(eep)h(this)d(\014le)h(around;)g (traditionally)e(clien)m(ts)j(ha)m(v)m(e)g(left)g(it)f(around)g(forev)m (er,)h(th)m(us)480 2916 y(letting)40 b(the)g(user)g(clean)g(it)g(up)f (as)h(desired.)69 b(But)40 b(another)h(answ)m(er,)i(suc)m(h)c(as)i(un)m (til)d(the)j(next)480 3040 y(commit,)31 b(migh)m(t)f(b)s(e)f (preferable.)0 3226 y Fd(Patched)f Fe(pathname)36 b Fd(\\n)480 3350 y Ff(This)c(is)h(just)g(lik)m(e)g Fd(Updated)f Ff(and)h(tak)m(es)i (the)f(same)g(additional)e(data,)j(with)e(the)g(one)h(di\013erence)480 3475 y(that)j(instead)g(of)g(sending)e(a)i(new)g(cop)m(y)g(of)g(the)g (\014le,)h(the)f(serv)m(er)g(sends)f(a)h(patc)m(h.)61 b(This)35 b(patc)m(h)480 3599 y(is)e(pro)s(duced)f(b)m(y)i(`)p Fd(diff)c(-c)p Ff(')j(for)h Fb(cvs)f Ff(1.6)i(and)e(later)h(\(see)h (POSIX.2)f(for)g(a)g(description)e(of)i(this)480 3724 y(format\),)44 b(or)c(`)p Fd(diff)30 b(-u)p Ff(')40 b(for)g(previous)f (v)m(ersions)g(of)i Fb(cvs)p Ff(;)k(clien)m(ts)40 b(are)g(encouraged)h (to)g(accept)480 3848 y(either)32 b(format.)47 b(The)32 b(clien)m(t)g(m)m(ust)g(apply)f(this)h(patc)m(h)h(to)g(the)f(existing)g (\014le.)46 b(This)30 b(will)g(only)i(b)s(e)480 3973 y(used)d(when)g(the)h(clien)m(t)f(has)h(an)g(exact)h(cop)m(y)g(of)f(an) f(earlier)g(revision)f(of)i(a)g(\014le.)40 b(This)28 b(resp)s(onse)h(is)480 4097 y(only)g(used)h(if)f(the)i Fd(update)e Ff(command)h(is)f(giv)m(en)i(the)f(`)p Fd(-u)p Ff(')g(argumen)m(t.)0 4283 y Fd(Mode)f Fe(mo)s(de)35 b Fd(\\n)480 4407 y Ff(This)j Fe(mo)s(de)45 b Ff(applies)38 b(to)j(the)f(next)g(\014le)f(men)m(tioned)g(in)g Fd(Checked-in)p Ff(.)67 b(It)40 b(do)s(es)f(not)i(apply)d(to)480 4532 y(an)m(y)i(request)g(whic)m(h)e(follo)m(ws)h(a)h Fd(Checked-in)p Ff(,)g Fd(New-entry)p Ff(,)f Fd(Updated)p Ff(,)i Fd(Merged)p Ff(,)f(or)g Fd(Patched)480 4656 y Ff(resp)s(onse.)0 4842 y Fd(Checksum)28 b Fe(c)m(hec)m(ksum)p Fd(\\n)480 4966 y Ff(The)33 b Fe(c)m(hec)m(ksum)g Ff(applies)f(to)h(the)h(next)f (\014le)f(sen)m(t)i(o)m(v)m(er)g(via)f Fd(Updated)p Ff(,)f Fd(Merged)p Ff(,)g(or)h Fd(Patched)p Ff(.)47 b(In)480 5091 y(the)35 b(case)h(of)f Fd(Patched)p Ff(,)g(the)g(c)m(hec)m(ksum)h (applies)d(to)j(the)f(\014le)f(after)h(b)s(eing)f(patc)m(hed,)j(not)e (to)h(the)480 5215 y(patc)m(h)d(itself.)47 b(The)32 b(clien)m(t)h (should)d(compute)j(the)g(c)m(hec)m(ksum)h(itself,)e(after)h(receiving) f(the)h(\014le)f(or)480 5340 y(patc)m(h,)39 b(and)c(signal)g(an)h (error)g(if)f(the)i(c)m(hec)m(ksums)g(do)f(not)g(matc)m(h.)59 b(The)36 b(c)m(hec)m(ksum)h(is)e(the)i(128)p eop %%Page: 19 19 19 18 bop 480 366 a Ff(bit)29 b(MD5)i(c)m(hec)m(ksum)f(represen)m(ted)g (as)g(32)g(hex)g(digits.)39 b(This)28 b(resp)s(onse)h(is)g(optional,)g (and)g(is)g(only)480 491 y(used)h(if)f(the)h(clien)m(t)g(supp)s(orts)f (it)h(\(as)h(judged)e(b)m(y)h(the)h Fd(Valid-responses)26 b Ff(request\).)0 670 y Fd(Copy-file)i Fe(pathname)35 b Fd(\\n)480 795 y Ff(Additional)26 b(data:)41 b Fe(newname)33 b Fd(\\)p Ff(n.)40 b(Cop)m(y)29 b(\014le)e Fe(pathname)34 b Ff(to)c Fe(newname)j Ff(in)27 b(the)i(same)g(directory)480 919 y(where)h(it)g(already)g(is.)40 b(This)28 b(do)s(es)i(not)h (a\013ect)h Fd(CVS/Entries)p Ff(.)0 1098 y Fd(Removed)c Fe(pathname)36 b Fd(\\n)480 1223 y Ff(The)30 b(\014le)f(has)h(b)s(een)g (remo)m(v)m(ed)h(from)f(the)h(rep)s(ository)e(\(this)g(is)h(the)g(case) i(where)e(cvs)g(prin)m(ts)f(`)p Fd(file)480 1347 y(foobar.c)f(is)i(no)g (longer)e(pertinent)p Ff('\).)0 1526 y Fd(Remove-entry)f Fe(pathname)35 b Fd(\\n)480 1651 y Ff(The)d(\014le)g(needs)g(its)g(en)m (try)h(remo)m(v)m(ed)h(from)e Fd(CVS/Entries)p Ff(,)f(but)h(the)h (\014le)f(itself)f(is)h(already)g(gone)480 1775 y(\(this)f(happ)s(ens)f (in)g(resp)s(onse)h(to)h(a)g Fd(ci)f Ff(request)h(whic)m(h)e(in)m(v)m (olv)m(es)i(committing)f(the)h(remo)m(v)-5 b(al)32 b(of)g(a)480 1900 y(\014le\).)0 2079 y Fd(Set-static-directory)25 b Fe(pathname)35 b Fd(\\n)480 2203 y Ff(This)i(instructs)g(the)h(clien) m(t)g(to)i(set)f(the)f Fd(Entries.Static)d Ff(\015ag,)41 b(whic)m(h)c(it)h(should)f(then)h(send)480 2328 y(bac)m(k)31 b(to)h(the)f(serv)m(er)g(in)e(a)i Fd(Static-directory)c Ff(request)j(whenev)m(er)h(the)g(directory)f(is)g(op)s(erated)480 2452 y(on.)45 b Fe(pathname)36 b Ff(ends)31 b(in)g(a)h(slash;)f(its)g (purp)s(ose)g(is)f(to)j(sp)s(ecify)d(a)i(directory)-8 b(,)32 b(not)g(a)h(\014le)d(within)g(a)480 2577 y(directory)-8 b(.)0 2756 y Fd(Clear-static-directory)24 b Fe(pathname)36 b Fd(\\n)480 2880 y Ff(Lik)m(e)30 b Fd(Set-static-directory)p Ff(,)25 b(but)30 b(clear,)h(not)f(set,)h(the)g(\015ag.)0 3059 y Fd(Set-sticky)d Fe(pathname)35 b Fd(\\n)480 3184 y Ff(Additional)c(data:)46 b Fe(tagsp)s(ec)39 b Fd(\\)p Ff(n.)48 b(T)-8 b(ell)32 b(the)h(clien)m(t)f(to)i(set)f(a)h(stic)m(ky)f (tag)h(or)f(date,)h(whic)m(h)e(should)480 3309 y(b)s(e)f(supplied)d (with)i(the)i Fd(Sticky)d Ff(request)j(for)f(future)g(op)s(erations.)43 b Fe(pathname)36 b Ff(ends)31 b(in)f(a)i(slash;)480 3433 y(its)37 b(purp)s(ose)e(is)i(to)h(sp)s(ecify)e(a)i(directory)-8 b(,)39 b(not)f(a)f(\014le)g(within)e(a)i(directory)-8 b(.)62 b(The)37 b(clien)m(t)g(should)480 3558 y(store)d Fe(tagsp)s(ec)41 b Ff(and)33 b(pass)g(it)g(bac)m(k)i(to)f(the)g(serv)m (er)g(as-is,)h(to)f(allo)m(w)f(for)h(future)f(expansion.)49 b(The)480 3682 y(\014rst)36 b(c)m(haracter)j(of)e Fe(tagsp)s(ec)43 b Ff(is)36 b(`)p Fd(T)p Ff(')h(for)g(a)g(tag,)j(`)p Fd(D)p Ff(')d(for)g(a)h(date,)h(or)e(something)f(else)h(for)g(future)480 3807 y(expansion.)j(The)29 b(remainder)g(of)i Fe(tagsp)s(ec)37 b Ff(con)m(tains)30 b(the)h(actual)f(tag)i(or)e(date.)0 3986 y Fd(Clear-sticky)d Fe(pathname)35 b Fd(\\n)480 4110 y Ff(Clear)30 b(an)m(y)g(stic)m(ky)h(tag)h(or)e(date)h(set)g(b)m (y)f Fd(Set-sticky)p Ff(.)0 4289 y Fd(Template)e Fe(pathname)35 b Fd(\\n)480 4414 y Ff(Additional)i(data:)60 b(\014le)38 b(transmission)f(\(note:)60 b(compressed)39 b(\014le)f(transmissions)f (are)j(not)g(sup-)480 4538 y(p)s(orted\).)72 b Fe(pathname)46 b Ff(ends)40 b(in)f(a)i(slash;)k(its)c(purp)s(ose)e(is)h(to)h(sp)s (ecify)f(a)h(directory)-8 b(,)44 b(not)d(a)g(\014le)480 4663 y(within)36 b(a)k(directory)-8 b(.)67 b(T)-8 b(ell)38 b(the)h(clien)m(t)f(to)i(store)g(the)f(\014le)f(transmission)f(as)i (the)g(template)h(log)480 4787 y(message,)34 b(and)e(then)h(use)f(that) h(template)g(in)e(the)i(future)f(when)f(prompting)g(the)i(user)f(for)g (a)h(log)480 4912 y(message.)0 5091 y Fd(Set-checkin-prog)26 b Fe(dir)35 b Fd(\\n)480 5215 y Ff(Additional)e(data:)51 b Fe(prog)43 b Fd(\\)p Ff(n.)55 b(T)-8 b(ell)34 b(the)i(clien)m(t)e(to) j(set)e(a)h(c)m(hec)m(kin)g(program,)g(whic)m(h)e(should)g(b)s(e)480 5340 y(supplied)27 b(with)i(the)i Fd(Checkin-prog)c Ff(request)j(for)g (future)g(op)s(erations.)p eop %%Page: 20 20 20 19 bop 0 366 a Fd(Set-update-prog)26 b Fe(dir)35 b Fd(\\n)480 491 y Ff(Additional)c(data:)47 b Fe(prog)41 b Fd(\\)p Ff(n.)49 b(T)-8 b(ell)32 b(the)h(clien)m(t)g(to)h(set)g(an)f (up)s(date)f(program,)i(whic)m(h)e(should)g(b)s(e)480 616 y(supplied)27 b(with)i(the)i Fd(Update-prog)c Ff(request)j(for)h (future)e(op)s(erations.)0 791 y Fd(Notified)f Fe(pathname)35 b Fd(\\n)480 915 y Ff(Indicate)30 b(to)i(the)f(clien)m(t)f(that)h(the)g (noti\014cation)f(for)g Fe(pathname)36 b Ff(has)30 b(b)s(een)g(done.)42 b(There)30 b(should)480 1040 y(b)s(e)38 b(one)h(suc)m(h)g(resp)s(onse)f (for)g(ev)m(ery)i Fd(Notify)d Ff(request;)44 b(if)37 b(there)i(are)h(sev)m(eral)f Fd(Notify)e Ff(requests)480 1164 y(for)29 b(a)h(single)e(\014le,)i(the)f(requests)h(should)d(b)s(e) i(pro)s(cessed)g(in)f(order;)i(the)g(\014rst)f Fd(Notified)e Ff(resp)s(onse)480 1289 y(p)s(ertains)i(to)i(the)f(\014rst)g Fd(Notify)f Ff(request,)h(etc.)0 1464 y Fd(Module-expansion)c Fe(pathname)35 b Fd(\\n)30 b(Return)f(a)h(file)f(or)h(directory)480 1589 y Ff(whic)m(h)e(is)g(included)f(in)h(a)i(particular)e(mo)s(dule.) 38 b Fe(pathname)d Ff(is)28 b(relativ)m(e)h(to)i(cvsro)s(ot,)f(unlik)m (e)e(most)480 1713 y(pathnames)35 b(in)f(resp)s(onses.)55 b Fe(pathname)41 b Ff(should)33 b(b)s(e)i(used)g(to)h(lo)s(ok)f(and)g (see)h(whether)f(some)h(or)480 1838 y(all)c(of)i(the)g(mo)s(dule)d (exists)i(on)h(the)f(clien)m(t)g(side;)i(it)e(is)f(not)i(necessarily)e (suitable)g(for)h(passing)g(as)480 1962 y(an)d(argumen)m(t)g(to)h(a)f Fd(co)f Ff(request)h(\(for)g(example,)g(if)e(the)j(mo)s(dules)d(\014le) g(con)m(tains)i(the)h(`)p Fd(-d)p Ff(')e(option,)480 2087 y(it)h(will)e(b)s(e)h(the)i(directory)f(sp)s(eci\014ed)e(with)i(`) p Fd(-d)p Ff(',)g(not)h(the)f(name)h(of)f(the)h(mo)s(dule\).)0 2262 y Fd(M)f Fe(text)j Fd(\\n)115 b Ff(A)30 b(one-line)g(message)h (for)g(the)f(user.)0 2438 y Fd(E)g Fe(text)j Fd(\\n)115 b Ff(Same)30 b(as)h Fd(M)f Ff(but)g(send)f(to)i(stderr)f(not)h(stdout.) 0 2613 y Fd(F)f(\\n)306 b Ff(Flush)35 b(stderr.)57 b(That)36 b(is,)h(mak)m(e)g(it)f(p)s(ossible)d(for)j(the)h(user)e(to)i(see)g (what)f(has)g(b)s(een)f(written)g(to)480 2738 y(stderr)29 b(\(it)h(is)f(up)g(to)i(the)g(implemen)m(tation)d(to)j(decide)f (exactly)g(ho)m(w)g(far)g(it)g(should)e(go)j(to)g(ensure)480 2862 y(this\).)0 3037 y Fd(error)e Fe(errno-co)s(de)36 b Fd(`)47 b(')30 b Fe(text)j Fd(\\n)480 3162 y Ff(The)44 b(command)f(completed)i(with)d(an)i(error.)82 b Fe(errno-co)s(de)49 b Ff(is)43 b(a)i(sym)m(b)s(olic)d(error)i(co)s(de)g(\(e.g.)480 3287 y Fd(ENOENT)p Ff(\);)39 b(if)c(the)i(serv)m(er)g(do)s(esn't)g (supp)s(ort)e(this)g(feature,)k(or)e(if)f(it's)g(not)h(appropriate)f (for)g(this)480 3411 y(particular)25 b(message,)k(it)e(just)f(omits)h (the)g(errno-co)s(de)g(\(in)f(that)h(case)h(there)f(are)h(t)m(w)m(o)g (spaces)f(after)480 3536 y(`)p Fd(error)p Ff('\).)58 b(T)-8 b(ext)37 b(is)f(an)g(error)g(message)h(suc)m(h)f(as)h(that)g (pro)m(vided)e(b)m(y)h(strerror\(\),)j(or)d(an)m(y)h(other)480 3660 y(message)31 b(the)g(serv)m(er)g(w)m(an)m(ts)g(to)g(use.)0 3835 y Fd(ok)f(\\n)258 b Ff(The)30 b(command)g(completed)g (successfully)-8 b(.)0 4288 y Fa(5.8)68 b(Example)125 4563 y Ff(Here)41 b(is)g(an)g(example;)47 b(lines)40 b(are)h(pre\014xed)g(b)m(y)g(`)p Fd(C:)30 b Ff(')41 b(to)i(indicate)d (the)i(clien)m(t)e(sends)h(them)g(or)h(`)p Fd(S:)30 b Ff(')41 b(to)0 4687 y(indicate)29 b(the)i(serv)m(er)g(sends)e(them.)125 4962 y(The)i(clien)m(t)h(starts)h(b)m(y)f(connecting,)i(sending)c(the)j (ro)s(ot,)g(and)f(completing)g(the)g(proto)s(col)h(negotiation.)47 b(In)0 5086 y(actual)31 b(practice)f(the)h(lists)e(of)h(v)-5 b(alid)29 b(resp)s(onses)g(and)h(requests)g(w)m(ould)g(b)s(e)f(longer.) 240 5340 y Fd(C:)47 b(Root)g(/home/kingdon/testing/cv)o(sro)o(ot)p eop %%Page: 21 21 21 20 bop 240 366 a Fd(C:)47 b(Valid-responses)d(ok)j(error)f (Checked-in)f(M)j(E)240 470 y(C:)f(valid-requests)240 574 y(S:)g(Valid-requests)d(Root)j(Directory)e(Entry)h(Modified)g (Argument)f(Argumentx)h(ci)h(co)240 678 y(S:)g(ok)240 782 y(C:)g(UseUnchanged)125 1056 y Ff(The)23 b(clien)m(t)h(w)m(an)m(ts) g(to)h(c)m(hec)m(k)g(out)g(the)f Fd(supermunger)d Ff(mo)s(dule)h(in)m (to)i(a)g(fresh)f(w)m(orking)h(directory)-8 b(.)38 b(Therefore)0 1180 y(it)27 b(\014rst)g(expands)f(the)i Fd(supermunger)c Ff(mo)s(dule;)j(this)f(step)h(w)m(ould)g(b)s(e)f(omitted)i(if)e(the)i (clien)m(t)f(w)m(as)g(op)s(erating)g(on)0 1305 y(a)k(directory)f (rather)g(than)g(a)h(mo)s(dule.)240 1558 y Fd(C:)47 b(Argument)f (supermunger)240 1662 y(C:)h(Directory)e(.)240 1766 y(C:)i (/home/kingdon/testing/cvs)o(root)240 1869 y(C:)g(expand-modules)125 2143 y Ff(The)37 b(serv)m(er)h(replies)e(that)i(the)g Fd(supermunger)d Ff(mo)s(dule)h(expands)h(to)h(the)g(directory)g Fd(supermunger)c Ff(\(the)0 2268 y(simplest)29 b(case\):)240 2521 y Fd(S:)47 b(Module-expansion)d(supermunger)240 2625 y(S:)j(ok)125 2899 y Ff(The)e(clien)m(t)g(then)h(pro)s(ceeds)g(to) g(c)m(hec)m(k)i(out)e(the)g(directory)-8 b(.)88 b(The)45 b(fact)i(that)f(it)g(sends)f(only)g(a)h(single)0 3023 y Fd(Directory)30 b Ff(request)i(whic)m(h)f(sp)s(eci\014es)g(`)p Fd(.)p Ff(')i(for)f(the)g(w)m(orking)g(directory)g(means)g(that)h (there)g(is)e(not)i(already)f(a)0 3148 y Fd(supermunger)27 b Ff(directory)j(on)g(the)h(clien)m(t.)240 3401 y Fd(C:)47 b(Argument)f(-N)240 3505 y(C:)h(Argument)f(supermunger)240 3609 y(C:)h(Directory)e(.)240 3713 y(C:)i(/home/kingdon/testing/cvs)o (root)240 3816 y(C:)g(co)125 4090 y Ff(The)23 b(serv)m(er)h(replies)e (with)h(the)h(requested)g(\014les.)38 b(In)23 b(this)g(example,)i (there)f(is)f(only)g(one,)j(`)p Fd(mungeall.c)p Ff('.)36 b(The)0 4215 y Fd(Clear-sticky)23 b Ff(and)j Fd(Clear-static-directory) 21 b Ff(requests)26 b(are)h(sen)m(t)g(b)m(y)f(the)h(curren)m(t)f (implemen)m(tation)g(but)0 4340 y(they)33 b(ha)m(v)m(e)h(no)f(e\013ect) h(b)s(ecause)f(the)g(default)f(is)g(for)h(those)g(settings)g(to)h(b)s (e)e(clear)h(when)f(a)h(directory)f(is)g(newly)0 4464 y(created.)240 4717 y Fd(S:)47 b(Clear-sticky)e(supermunger/)240 4821 y(S:)i(/home/kingdon/testing/cvs)o(root)o(/su)o(perm)o(unge)o(r/) 240 4925 y(S:)g(Clear-static-directory)42 b(supermunger/)240 5029 y(S:)47 b(/home/kingdon/testing/cvs)o(root)o(/su)o(perm)o(unge)o (r/)240 5132 y(S:)g(E)h(cvs)f(server:)e(Updating)h(supermunger)240 5236 y(S:)h(M)h(U)f(supermunger/mungeall.c)240 5340 y(S:)g(Created)f (supermunger/)p eop %%Page: 22 22 22 21 bop 240 366 a Fd(S:)47 b(/home/kingdon/testing/cvs)o(root)o(/su)o (perm)o(unge)o(r/m)o(unge)o(all.)o(c)240 470 y(S:)g(/mungeall.c/1.1///) 240 574 y(S:)g(u=rw,g=r,o=r)240 678 y(S:)g(26)240 782 y(S:)g(int)g(mein)g(\(\))g({)g(abort)g(\(\);)g(})240 885 y(S:)g(ok)125 1168 y Ff(The)26 b(curren)m(t)g(clien)m(t)h(implemen) m(tation)e(w)m(ould)h(break)h(the)g(connection)g(here)f(and)g(mak)m(e)i (a)f(new)g(connection)0 1293 y(for)j(the)h(next)f(command.)41 b(Ho)m(w)m(ev)m(er,)32 b(the)f(proto)s(col)f(allo)m(ws)g(it)g(to)h(k)m (eep)g(the)f(connection)h(op)s(en)f(and)f(con)m(tin)m(ue,)0 1417 y(whic)m(h)g(is)h(what)g(w)m(e)h(sho)m(w)f(here.)125 1700 y(After)37 b(the)g(user)g(mo)s(di\014es)e(the)j(\014le)e(and)h (instructs)f(the)h(clien)m(t)g(to)h(c)m(hec)m(k)h(it)d(bac)m(k)i(in.)60 b(The)37 b(clien)m(t)g(sends)0 1825 y(argumen)m(ts)31 b(to)g(sp)s(ecify)e(the)h(log)h(message)g(and)f(\014le)g(to)h(c)m(hec)m (k)h(in:)240 2087 y Fd(C:)47 b(Argument)f(-m)240 2190 y(C:)h(Argument)f(Well,)g(you)h(see,)g(it)g(took)f(me)i(hours)e(and)h (hours)f(to)h(find)g(this)g(typo)f(and)h(I)240 2294 y(C:)g(Argumentx)e (searched)h(and)h(searched)e(and)i(eventually)e(had)i(to)g(ask)g(John)g (for)g(help.)240 2398 y(C:)g(Argument)f(mungeall.c)125 2681 y Ff(It)23 b(also)h(sends)f(information)f(ab)s(out)h(the)h(con)m (ten)m(ts)i(of)e(the)g(w)m(orking)f(directory)-8 b(,)25 b(including)20 b(the)k(new)f(con)m(ten)m(ts)0 2805 y(of)45 b(the)g(mo)s(di\014ed)e(\014le.)83 b(Note)46 b(that)g(the)f(user)f(has) g(c)m(hanged)i(in)m(to)f(the)g(`)p Fd(supermunger)p Ff(')d(directory)i (b)s(efore)0 2930 y(executing)29 b(this)e(command;)j(the)e(top)h(lev)m (el)g(directory)f(is)f(a)i(user-visible)d(concept)k(b)s(ecause)e(the)h (serv)m(er)g(should)0 3054 y(prin)m(t)g(\014lenames)g(in)h Fd(M)g Ff(and)f Fd(E)h Ff(resp)s(onses)g(relativ)m(e)g(to)h(that)g (directory)-8 b(.)240 3316 y Fd(C:)47 b(Directory)e(.)240 3420 y(C:)i(/home/kingdon/testing/cvs)o(root)o(/su)o(perm)o(unge)o(r) 240 3524 y(C:)g(Entry)g(/mungeall.c/1.1///)240 3628 y(C:)g(Modified)f (mungeall.c)240 3731 y(C:)h(u=rw,g=r,o=r)240 3835 y(C:)g(26)240 3939 y(C:)g(int)g(main)g(\(\))g({)g(abort)g(\(\);)g(})125 4222 y Ff(And)29 b(\014nally)-8 b(,)29 b(the)i(clien)m(t)e(issues)h (the)g(c)m(hec)m(kin)h(command)f(\(whic)m(h)f(mak)m(es)j(use)e(of)g (the)h(data)g(just)f(sen)m(t\):)240 4484 y Fd(C:)47 b(ci)125 4767 y Ff(And)29 b(the)i(serv)m(er)f(tells)g(the)g(clien)m(t)g(that)h (the)g(c)m(hec)m(kin)f(succeeded:)240 5029 y Fd(S:)47 b(M)h(Checking)d(in)i(mungeall.c;)240 5132 y(S:)g(E)h (/home/kingdon/testing/c)o(vsro)o(ot/)o(supe)o(rmun)o(ger)o(/mun)o (geal)o(l.c)o(,v)89 b(<--)95 b(mungeall.c)240 5236 y(S:)47 b(E)h(new)f(revision:)e(1.2;)h(previous)g(revision:)f(1.1)240 5340 y(S:)i(E)h(done)p eop %%Page: 23 23 23 22 bop 240 366 a Fd(S:)47 b(Mode)g(u=rw,g=r,o=r)240 470 y(S:)g(Checked-in)e(./)240 574 y(S:)i(/home/kingdon/testing/cvs)o (root)o(/su)o(perm)o(unge)o(r/m)o(unge)o(all.)o(c)240 678 y(S:)g(/mungeall.c/1.2///)240 782 y(S:)g(ok)0 1230 y Fa(5.9)68 b(Required)31 b(v)l(ersus)g(optional)g(parts)g(of)g(the)f (proto)t(col)125 1504 y Ff(The)22 b(follo)m(wing)f(are)i(part)f(of)h (ev)m(ery)g(kno)m(wn)f(implemen)m(tation)f(of)i(the)g(CVS)f(proto)s (col)g(\(except)i(obsolete,)h(pre-)0 1628 y(1.5,)31 b(v)m(ersions)d(of) h(CVS\))g(and)f(it)h(is)f(considered)f(reasonable)i(b)s(eha)m(vior)f (to)i(completely)f(fail)e(to)j(w)m(ork)f(if)f(y)m(ou)i(are)0 1753 y(connected)j(with)d(an)i(implemen)m(tation)e(whic)m(h)g(attempts) j(to)f(not)g(supp)s(ort)e(them.)45 b(Requests:)f Fd(Root)p Ff(,)31 b Fd(Valid-)0 1877 y(responses)p Ff(,)42 b Fd(valid-requests)p Ff(,)f Fd(Directory)p Ff(,)h Fd(Entry)p Ff(,)h Fd(Modified)p Ff(,)f Fd(Unchanged)p Ff(,)g Fd(Argument)p Ff(,)g Fd(Argumentx)p Ff(,)0 2002 y Fd(ci)p Ff(,)28 b Fd(co)p Ff(,)g Fd(update)p Ff(.)39 b(Resp)s(onses:)f Fd(ok)p Ff(,)29 b Fd(error)p Ff(,)e Fd(Valid-requests)p Ff(,)e Fd(Checked-in)p Ff(,)h Fd(Updated)p Ff(,)h Fd(Merged)p Ff(,)g Fd(Removed)p Ff(,)0 2127 y Fd(M)p Ff(,)j Fd(E)p Ff(.)125 2401 y(A)23 b(serv)m(er)h(need)f (not)h(implemen)m(t)e Fd(Repository)p Ff(,)h(but)g(in)f(order)h(to)h (in)m(terop)s(erate)g(with)e(CVS)h(1.5)i(through)e(1.9)0 2525 y(it)30 b(m)m(ust)f(claim)h(to)g(implemen)m(t)f(it)h(\(in)f Fd(Valid-requests)p Ff(\).)37 b(The)29 b(clien)m(t)h(will)d(not)k (actually)e(send)g(the)i(request.)0 2973 y Fa(5.10)68 b(Obsolete)32 b(proto)t(col)f(elemen)l(ts)125 3247 y Ff(This)39 b(section)i(brie\015y)f(describ)s(es)f(proto)s(col)i(elemen) m(ts)h(whic)m(h)e(are)h(obsolete.)74 b(There)41 b(is)f(no)h(attempt)h (to)0 3372 y(do)s(cumen)m(t)30 b(them)h(in)e(full)f(detail.)125 3646 y(There)i(w)m(as)g(a)h Fd(Repository)d Ff(request)j(whic)m(h)e(w)m (as)i(lik)m(e)e Fd(Directory)f Ff(except)k(it)e(only)g(pro)m(vided)f Fe(rep)s(ository)p Ff(,)0 3770 y(and)h(the)g(lo)s(cal)g(directory)g(w)m (as)h(assumed)e(to)i(b)s(e)f(similarly)d(named.)125 4044 y(If)i(the)g Fd(UseUnchanged)e Ff(request)i(w)m(as)h(not)g(sen)m(t,)h (there)e(w)m(as)h(a)g Fd(Lost)f Ff(request)g(whic)m(h)g(w)m(as)g(sen)m (t)i(to)f(indicate)0 4169 y(that)c(a)f(\014le)g(did)e(not)j(exist)f(in) f(the)h(w)m(orking)g(directory)-8 b(,)26 b(and)f(the)g(meaning)g(of)g (sending)f Fd(Entries)f Ff(without)h Fd(Lost)0 4293 y Ff(or)32 b Fd(Modified)d Ff(w)m(as)j(di\013eren)m(t.)44 b(All)30 b(curren)m(t)i(clien)m(ts)f(\(CVS)g(1.5)i(and)e(later\))h (will)d(send)i Fd(UseUnchanged)d Ff(if)j(it)g(is)0 4418 y(supp)s(orted.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF