%!PS-Adobe-2.0 %%Creator: dvips(k) 5.85 Copyright 1999 Radical Eye Software %%Title: cvsclient.dvi %%Pages: 32 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips cvsclient.dvi -o cvsclient.ps %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 1999.07.27:1341 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}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{A A 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/IEn 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 IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A 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/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 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 A 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 A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 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}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A mul exch 0 get A 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/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 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/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/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 %DVIPSBitmapFont: Fa cmtt12 14.4 1 /Fa 1 35 df<001F147C486C13FE486C487E00FF1580A8007F1500A8497EA9003F5CA590 C7127E6C147C212372C93E>34 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmti10 10.95 8 /Fb 8 117 df<147E49B47E903907C1C38090391F80EFC090383F00FF017E137F491480 4848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90C7FCA21401485C5A A21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13E0003E137FECF3E1 261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E>97 D101 D108 DIII115 DI E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmbx12 14.4 44 /Fc 44 121 df12 D46 D<913803FFC0023F13FC91B6FC010315C0010F018113F0903A1FFC 003FF849486D7E49486D7E49486D7E48496D138048496D13C0A24817E04890C813F0A348 17F8A24817FC49157FA3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D15FFA26C 17F8A36C17F0A26C6D4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495AD91FFCEB 3FF8903A0FFF81FFF06D90B55A01011580D9003F01FCC7FC020313C0384F7BCD43>48 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A600 7FB712FEA52F4E76CD43>II<91380FFFC091B512FC 0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D8 07FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005F A24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113 F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8 487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A13 80D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F 1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D 5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C 5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E 127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>III<121F7F7FEBFF8091B81280A45A1900606060A2606060485F0180C86CC7FC 007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A15 0F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA3 14FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0027F13FC0103B67E010F15 E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717 C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313 009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D8101 0F15E06D81010115FC010781011F81491680EBFFE748018115C048D9007F14E04848011F 14F048487F48481303030014F8484880161F4848020713FC1601824848157F173FA2171F A2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C 010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F 13C0364F7ACD43>I<91380FFF8091B512F8010314FE010F6E7E4901037F90267FF8007F 4948EB3FF048496D7E484980486F7E484980824817805A91C714C05A7013E0A218F0B5FC A318F8A618FCA46C5DA37EA25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF80301 1FB512E36D14C30103028313F89039007FFE03EC00401500A218F05EA3D801F816E0487E 486C16C0487E486D491380A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48495BD8 03FC010F5B9027FF807FFEC7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0364F7A CD43>I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA80 3F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9 FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A 3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F 6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D 6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF8020390 3AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D2 61>67 DIII73 D76 DI<93380FFFC00303B6FC03 1F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F 494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F49854948707F4948707FA2 4849717E48864A83481B804A83481BC0A2481BE04A83A2481BF0A348497113F8A5B51AFC AF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A 6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01 FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8FC020016FC031F15E00303 92C9FCDB001F13E0565479D265>79 D82 D<91260FFF80130791B500F85B010702FF5B011FEDC03F49EDF07F9026FFFC 006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F001F824981123F498100 7F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86CECFF8016FC6CED FFC017F06C16FC6C16FF6C17C06C836C836D826D82010F821303010082021F1680140003 0F15C0ED007F040714E01600173F050F13F08383A200788200F882A3187FA27EA219E07E A26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1F FFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D9007F90C8FC3C5479 D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF8060113C001E0844919 7F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B9 12F0A553517BD05E>I97 DI<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A 1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F13 00705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F 806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A0100158002 3F49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE002 1F13FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F484914 3F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E 6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101 ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC0107 15C04901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18 C0488191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218 E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91F FEEB03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I< ED3FFC0203B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FF FC495A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3 A7007FB512FEA52E547CD329>III< 137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512 017EB3B3A6B612E0A51B547BD325>I108 DII<913801FFE002 1F13FE91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48 496D7F48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC 007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C 495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A38 7CB643>I<903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F800 7FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4 721380AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EB FFFC9126FBFE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D 7BB54B>I<912601FFE0EB0780021F01F8130F91B500FE131F0103ECFF80010F9039F03F C03F499039800FE07F903A7FFE0003F04948903801F8FF4849EB00FD4849147F4A805A48 49805A4A805AA291C87E5AA35B12FFAC6C7EA37EA2806C5EA26C6D5CA26C6D5C6C6D5C6C 93B5FC6C6D5B6D6C5B6DB4EB0FEF010F9038C07FCF6D90B5120F010114FED9003F13F802 03138091C8FCB1040FB61280A5414D7CB547>I<90397FE003FEB590380FFF80033F13E0 4B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FE EB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>I<903903FFF00F01 3FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980127F90C87EA24881 A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C816C816C81C68101 3F1580010F15C01300020714E0EC003F030713F015010078EC007F00F8153F161F7E160F A27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC 1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414FEA21301A3130313 07A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F80 80A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B020313802A4D7ECB34> II I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A 6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEB FF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C 7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F 7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmcsc10 10.95 6 /Fd 6 119 df99 DI111 D<90383FC00C9038FFF81C0003EBFE3C390FE03FFC381F8007 EB0003003E1301481300157C5A153CA36C141CA27E6C14006C7E13E013FE383FFFE06C13 FE6CEBFF806C14E0000114F06C6C13F8010F13FC1300EC07FE14011400157F153F12E015 1FA37EA2151E6C143E6C143C6C147C6C14F89038C001F039FBF807E000F1B512C0D8E07F 130038C007FC20317BAF2A>115 D<007FB712F8A39039801FF0073A7E000FE000007816 78A20070163800F0163CA348161CA5C71500B3A8EC3FF8011FB512F0A32E2E7CAD36>I< B500E0903807FFF0A3000790C7000113806C48913800FE000001167C0000167817706D15 F06D5DA26D6C495AA26E1303011F5DA26D6C49C7FCA26E5B0107140EA26D6C5BA26E133C 010114388001005CA26E13F06E5B1581023F5BA215C3021F5B15E7020F90C8FCA2EC07FE A36E5AA26E5AA36E5AA234307EAE38>118 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmsy10 10.95 1 /Fe 1 16 df15 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmtt10 10.95 90 /Ff 90 126 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00 A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2 02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F 90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2 29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3 6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01 1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C 5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>II II<141E147F14FF5BEB03 FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F 5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7E EB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812 FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB 03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14 E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A12781847 78BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9 FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048 B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD8 7E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7 FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>II<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120F EA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A2 1507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA2 4A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249 C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA22547 7BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F48 48EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FE EC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A2 6C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FE C7FC273A7CB830>IIIII<000FB6128048 15C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0007F C049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC150716 F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C 6C14E06C6C1380D90FFCC7FC25397BB730>II<127CB712FC16FEA416FC48C7EA 0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5A A24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830 >I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF049 131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6C EB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE4880 2607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C712014815 FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE0 6C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13 E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0F F048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D 133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190380060011400ED03F8 A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC 90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0 A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F 000C276EA630>II<16F01503ED07F8151F157FEDFFF0 14034A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0 485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F3800 7FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7F F8151F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003F B612FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1F FF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF80 6E13C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801 FFF0495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE0 5B90C9FC127E1278252F7BB230>II<147F4A7EA2497FA4497F14F7A40107 7F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA3 4881A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C49 6C130029397DB830>65 D<007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E15 01A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000F F8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16 C05E6C02FCC7FC29387EB730>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFF FE5B9038FFE07F48EB801F3903FE000F484813075B48481303A2484813015B123F491300 A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C 6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D1400010713 FC6D13F09038007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F800 7FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3 163F1780A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14 FC6C14E02B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C 15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B38 7EB730>I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157F A490B6FCA69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I< 02FF13F00103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F484813 1F49130F485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14 805CA26C7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE 133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830 >I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE 00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C 496C13E02D387FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB7 1280A46C1500213879B730>I<49B512F04914F85BA27F6D14F090C7EAFE00B3B3123C12 7EB4FCA24A5A1403EB8007397FF01FF86CB55A5D6C5C00075C000149C7FC38003FF02539 7AB730>II<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9 003FB7FC5AB8FCA27E6C16802A387EB730>III<90383FFFE048B512FC000714FF4815 804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C14 07A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C15000001 14FCD8003F13E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0F FCED03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E 16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512 FC000714FF4815804815C04815E0EBF80001E0133F4848EB1FF049130F90C71207A44815 F8481403B3A8147E14FE6CEBFF076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE0 14E0EBF80F90B6FC6C15C06C15806C1500000114FCD8003F7FEB00016E7EA21680157F16 C0153F16E0151F16F0150FED07E025467BB830>I<003FB57E4814F0B612FC15FF6C816C 812603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB4 5A90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF80 03FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>I<9039 0FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E4848137F90C7 123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E000 0114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07F8A200 7C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD 5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA43AFE00 3F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFF C007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE 6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFC EC1FF02F3980B730>II I<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00005C6D 5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90C8FCA4 497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F498000 03141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730>II<001FB612FC4815FE5AA490C7EA03FCED07F816F0150FED1FE016C0153FED7F80003E 1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A5A92C7FC5C495A5C1303495A5C130F49 5A5C133F495A91C8FC5B4848147C4914FE1203485A5B120F485A5B123F485A90B6FCB7FC A46C15FC27387CB730>I<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C1400 19476DBE30>I<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017F A26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E 7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07 F8A21503A2ED01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5 FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D<1338137CEA01FE12031207EA0FFC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EA FFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70BE30>II< EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82EC FE079138F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8160FA2 17E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E7F 13C0D93C1F90C7FC90380003FC2C3980B730>II<913801FFE04A7F5CA2 8080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F4913 1F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F39 0FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FCC8 FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC00 7FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516F0 48C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE06C 90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>IIII<14 E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003FB6 12C04815E0B7FCA27E6C15C023397AB830>III<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730> I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE 07EB03F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548 018F13C0A46C486C01071380322881A730>II<49B4 FC010F13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB 0FF0A24848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303 003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15 006C6C13FC6D5B010F13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A48138139 0FFC007F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C 6C1307150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1 010F13C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I I<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F 91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF020013 80007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D 00FC14F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC0 7FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D 130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA2 14F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE048 6D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE0001 5DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290 393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37F B580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F0 6DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890 381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C114 8014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16 C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214 C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147F A26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8F F0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90 C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A 4990C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48 B7FCB8FCA46C15FE28277DA630>II125 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmsl10 10.95 33 /Fg 33 122 df12 DI<007FB5FCA2B512FEA418067C96 1E>45 D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F15C0A5143F 1580A5147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612F8A31D 3D78BC2D>49 DI67 D<013FB7FC18E018F8903B007FF0000FFE6E48EB01FF9438007FC04B6E7E 180F85727E727E147F4B6E7EA2727EA302FF178092C9FCA54918C05CA41A8013034A5DA4 1A0013074A5DA261A24E5A130F4A5E180F61181F61011F4C5A5C4E5A4EC7FC4D5A4D5A01 3F4B5A4A4A5AEF3FE0EF7F80017F4A48C8FC01FFEC1FFCB812F0178004FCC9FC423E7DBD 45>I<9238FF80070207EBE00F021FEBF81E91387F00FE02FCEB1F3ED903F0EB0FFE4948 1307494813034AEB01FC49C7FC491400133E137E177C491578A57F1770A26D1500808080 EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F02031480DA003F13C015 031500EE7FE0163F161FA2160F121CA31607160F003C16C0A31780003E151F1700007E5D 007F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC7FC D8E00713F839C0007FC030427BBF33>83 D86 D97 DI IIII<177C913907F803FE91393FFE0F8F9139FC0F9C3F903901F007F89039 07E003E0D90FC013F0011F903801F80C02801400133FD97F007FA315035B495CA3017E49 5A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F8091C9FC485AA47F A27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F801300003FC8127F00 3E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903 F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA25CA513015CA513 035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F049 5A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B4915 00A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14 FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F 1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<147FEB3FFFA31301 7FA25CA513015CA513035CA501070103B5FC02F014FEA26F13F06F1380EEFE00010F14F8 4A485AED03C04B5A031FC7FC153E011F13784A5AECC3E0ECC7F0ECCFF814FF497F14F9EC E1FE14C04A7E4A7E4980017E133F82151F82150F01FE8049130782A2000181486C49B4FC B5D8F03F13F04B13E0A2303F7EBE30>107 D<143FEB1FFF5BA213017FA214FEA5130114 FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA 03FF007F13F8A2B5FC183F7DBE1A>I<902707F007F8EB03FCD803FFD91FFF90380FFF80 913CE0781FC03C0FE09126E1E00FEBF0073E001FE38007E1C003F090260FE700EBE38002 EEDAF70013F802FC14FE02D85C14F84A5CA24A5C011F020F14074A4A14F0A5013F021F14 0F4A4A14E0A5017F023F141F91C74914C0A549027F143F4992C71380A300014B147F486C 496DEBFFC0B5D8F87FD9FC3F13FEA347287DA74C>I<903907F007F8D803FFEB1FFF9139 E0781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85CA24A130F 131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C49 1380B5D8F87F13FCA32E287DA733>II<91387F01FE903A7FFF 0FFFC09139FE3E03F09238F801F8903A03FFE000FE6D49137F4B7F92C713804A15C04A14 1FA218E0A20103150F5C18F0A3171F010716E05CA3173F18C0130F4A147F1880A2EFFF00 4C5A011F5D16034C5A6E495AEE1FC06E495AD93FDC017EC7FC91388F01F8913883FFE002 8090C8FC92C9FC137FA291CAFCA45BA25BA31201487EB512F8A3343A81A733>I<91390F E003C0DAFFFC1380903903F81E0790390FE0070F90391F80038FD97F0013DF01FE130148 48903800FF00485A1207485A8248485C123F495CA2485AA2150112FF90C75BA41503A25E A37E15077F003F4A5A151F6C6C133F6C6C137F000714FF3903F003CF3A00FC0F8FE09038 3FFE0FEB0FF090C7FC151F5EA5153F5EA4157F4B7E023F13FEA32A3A7AA730>I<903907 F01F80D803FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC13F002D813 E09138F801804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FE A325287EA724>I<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B 00031407A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F 13079038007FFE1403140100381300157EA2123C153E157E007C147CA2007E147815F800 7F495A4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>II<01FE147F00FFEC7FFF4914FEA2000714030003 1401A34914FCA4150312074914F8A41507120F4914F0A4150F121F4914E0A2151FA3153F 4914C0157F15FFEC01DF3A0FC003BFE09138073FFF3803F01E3801FFF826003FE0138028 2977A733>III<48B539C07FFFC0A33C000FFE003FF800 6D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1F C7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F02707FECE01F0101 80903803C00F49486C7ED90F007F491303017E80D801FE80D807FF497EB5D8803F13F8A3 32277FA630>I<90B539E007FFF05E18E0902707FE000313006D48EB01FC705A5F01014A 5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05EED81C015C19138 1FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E14 1C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80 A630>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmr10 10.95 81 /Fh 81 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 DIII<121EEA7F80EAFFC0A9EA7F80ACEA3F00AC 121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33 D<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8 1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092 C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303 01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC 158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280 D93FFEC7FCEB0FF8EB00E0A422497BC32D>36 D<121EEA7F8012FF13C0A213E0A3127FEA 1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2485A A2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F 120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00E014 701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA2 7FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA31480 A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A 145A7BC323>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113 80120313005A120E5A1218123812300B1C798919>44 DI<121E EA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>IIIIII< 150E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01 C0A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5A B8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5 FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8 496C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA4 16E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C48 5A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>II<1238123C123F90B612FCA316F85A16F016E00078C712010070EC 03C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25C A2147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407B BD2D>III<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FC B3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA 7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A312031300 5A1206120E120C121C5A1230A20A3979A619>I63 D<15074B7EA34B7EA34B7EA34B 7EA34B7E15E7A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D 7EA34A6D7EA34A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157F A2011E82011C153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0 010FB512F8A33D417DC044>65 DIIIIIIII75 DIIIIIIII<003FB91280A3903A F0007FE001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF 00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>IIII<00 7FB5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C14 1C6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5B EDF81E913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3B FEED71FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02 386D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E 00076DEC7FFFB500FC0103B512FEA33F3E7EBD44>II91 D93 D96 DII<49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B 121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F14031680 6C6C13076C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC22 2A7DA828>IIII<167C903903F801FF903A1FFF078F8090397E0F DE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E 6D13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120E A3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E 140048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D8 00FE017FC7FC90383FFFFC010313C0293D7EA82D>III<1478EB 01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38 FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C> III<2701F801FE14FF00FF90 2707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9 C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF 80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091 387803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C 497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F 4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA448 15FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB 1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00 FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F80 5BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE 9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D 3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E48 48EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15 076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B 7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C1000313 81EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383F C0603901FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E 7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB00 1FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E0 1F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA212011203120700 1FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F87 00EB07FEEB01F81B397EB723>IIIIII<00 1FB61280A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F 5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B48481307 1207491400485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>III E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fi cmbx12 17.28 38 /Fi 38 120 df<19F0F001F8F003FCA3180719F8180FA219F0181F19E0183FA219C0187F 198018FFA219005F601703A260170760170FA260171F60173FA260177F6017FFA295C7FC 5E5F1603A25F16075F160FA25F161F5F163FA25F167F5F16FFA294C8FC5D5E1503A25E15 075E150FA25E151F5EA2153F5E157FA25E15FF93C9FC5CA25D14035D1407A25D140F5D14 1FA25D143F5D147FA25D14FF92CAFC5BA25C13035C1307A25C130F5C131FA25C133F5C13 7FA25C13FF91CBFC5AA25B12035B1207A25B120F5B121FA25B123F5B127FA25B12FF90CC FCA3127E123C3E9077EB51>47 D<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7 FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFF C091B612F8010315FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F 48486E7FD807F86E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E 80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FC A219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A 4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48 157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90 B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5FC020F14F8023F14FF49 B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F49486D8049C86C7F4848 83486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B6C5B6C495E011FC85A90 C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F138092260FFFFEC8FC020FB512F8 17E094C9FC17F817FF91C7003F13E0040713F8040113FE707F717F7113E085717FA2717F 85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A80A34D14005C7E4A5E5F 6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C4914806C01F0010791C7FC6C90 26FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14F0020149C9FC426079DD 51>II<01C0 EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B71280190060606060606060 95C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFCADED3FFE0203B512F002 0F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F801007F02E06EB4FC0280 6E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC83A219FEA419FFA3EA03 F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B4917F8EA3FF001804B13 F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B6C6C6C01075B6C01E001 1F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D9003F1480020301F0C8FC40 6078DD51>II65 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC 137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C3020702C09138007FE74A 91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB7E4949844949844949 8449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA448 99C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E 1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A 6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0ED1FF8020102F8ED7FF06E02FF91 3803FFE0033F02F8013F1380030F91B648C8FC030117F86F6C16E004071680DC007F02F8 C9FC050191CAFC626677E375>67 D<4DB5ED03C0057F02F014070407B600FE140F047FDB FFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0 020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B548824902 80824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84A24891CD12 7FA25A4A1A3F5AA348491A1FA44899C8FCA25CA3B5FCB07E071FB812F880A37EA296C700 01ECC000A26C7FA37E807EA26C80A26C80A26C807F6D7F816D7F7F6D7F6D6D5F6D14C06D 6E5E6E7F6E01FC5E020F01FF5E6E02C0ED7FEF020102F8EDFFC76E02FF02071383033F02 FC013F1301030F91B638FC007F03014D131F6F6C04E01307040704801301DC007F02F8CA FC050191CBFC6D6677E37F>71 DII78 D<94381FFFE00407B67E043F15F0 4BB712FE030FEEFFC0033FD9FC0014F092B500C0010F13FC020349C7000113FF4A01F86E 6C7F021F496F13E04A01C0030F7F4A496F7F91B5C96C7F0103497013FF494970804B8349 49717F49874949717F49874B8390B586484A717FA24891CB6C7FA2481D804A84481DC0A3 48497214E0A3481DF0A34A85481DF8A5B51CFCB06C1DF8A36E96B5FCA36C1DF0A46C6D4E 14E0A36C1DC06E606C1D80A26C6E4D1400A26C6E4D5BA26C6E4D5BA26D6D4D5B6D636D6D 4D5B6F94B5FC6D636D6D4C5C6D6D4C91C7FC6D6E4B5B6D02E0031F5B023F6D4B13F06E01 FC92B55A6E01FF02035C020302C0010F91C8FC020002FC90B512FC033F90B712F0030F17 C0030394C9FCDB007F15F804071580DC001F01E0CAFC666677E379>II83 D<001FBEFCA64849C79126E0000F148002E0180091C8171F498601F81A0349864986A249 1B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3 021FBAFCA663617AE070>I86 D<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077F D9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090 C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891 C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903 F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC13 0F010302F001011400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3 A8EFFFF8040FEBFF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFF C001077F93C76C7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A3 7313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A 5B4AB402075B4A6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC0 0115F84A6C15E091C7001F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E02 0F15F0023F15FC91B77E01039039FE001FFF4901F8010113804901E0010713C049018049 13E0017F90C7FC49484A13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE 0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F0 6C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03F FC010091B512F0023F5D020F1580020102FCC7FCDA000F13C03E437BC148>II<92380FFFC0 4AB512FC020FECFF80023F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F 7F49496D7F4990C76C7F49486E7F48498048844A804884485B727E5A5C48717EA35A5C72 1380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF1 7F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A 6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A >III<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714 FC041F14FF4C8193267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F03 9FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>II<903807FF80B6 FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B6 91B500F00207EBFF80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D48 01037F922781FE001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F 6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B 5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607 FF80EB1FFFB691B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83 F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2 B7D8F007B71280A651417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE49 4848C66C6C7E010701F0010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E 48496F13804819C04A814819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FF AD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C 6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC 023F15FC020715E0020092C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEB FF80047F14F00381B612FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D 91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21B FCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A 5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E004 1F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A>I114 D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0 014890C7121FD80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D 92C7FC13FF14E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F 1680010F16C01303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC8117 7F6C163FA2171F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002 C0EB0FFE02FCEB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437B C140>II<90 2607FFC0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D14 7E4E7F6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8 DA003F018002F0C7FC51427BC05A>III E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop 150 299 a Fi(CVS)53 b(Clien)l(t/Serv)l(er)275 533 y Fh(This)33 b(do)s(cumen)m(t)j(describ)s(es)e(the)i(clien)m (t/serv)m(er)g(proto)s(col)g(used)f(b)m(y)g(CVS.)g(It)h(do)s(es)g(not)g (describ)s(e)150 643 y(ho)m(w)c(to)h(use)f(or)g(administer)e(clien)m (t/serv)m(er)i(CVS;)g(see)h(the)f(regular)f(CVS)h(man)m(ual)f(for)h (that.)47 b(This)30 b(is)150 752 y(v)m(ersion)f(1.10.7)j(of)d(the)h (proto)s(col)f(sp)s(eci\014cation|See)g(Chapter)f(1)i([In)m(tro)s (duction],)f(page)h(2,)h(for)e(more)150 862 y(on)h(what)h(this)e(v)m (ersion)h(n)m(um)m(b)s(er)f(means.)p eop %%Page: 2 2 2 1 bop 150 299 a Fi(1)80 b(In)l(tro)t(duction)275 533 y Fh(CVS)29 b(is)g(a)h(v)m(ersion)f(con)m(trol)i(system)f(\(with)f (some)h(additional)e(con\014guration)h(managemen)m(t)j(func-)150 643 y(tionalit)m(y\).)39 b(It)27 b(main)m(tains)e(a)i(cen)m(tral)g Fg(rep)s(ository)33 b Fh(whic)m(h)25 b(stores)i(\014les)e(\(often)j (source)e(co)s(de\),)i(including)150 752 y(past)40 b(v)m(ersions,)h (information)d(ab)s(out)h(who)g(mo)s(di\014ed)e(them)j(and)f(when,)i (and)e(so)h(on.)68 b(P)m(eople)39 b(who)150 862 y(wish)26 b(to)j(lo)s(ok)f(at)h(or)f(mo)s(dify)e(those)j(\014les,)f(kno)m(wn)f (as)i Fg(dev)m(elop)s(ers)p Fh(,)f(use)g(CVS)f(to)i Fg(c)m(hec)m(k)h (out)g Fh(a)f Fg(w)m(orking)150 971 y(directory)38 b Fh(from)30 b(the)h(rep)s(ository)-8 b(,)31 b(to)g Fg(c)m(hec)m(k)i(in)c Fh(new)i(v)m(ersions)f(of)h(\014les)e(to)j(the)f(rep)s(ository)-8 b(,)30 b(and)h(other)150 1081 y(op)s(erations)d(suc)m(h)g(as)g(viewing) f(the)h(mo)s(di\014cation)f(history)g(of)i(a)g(\014le.)39 b(If)28 b(dev)m(elop)s(ers)f(are)i(connected)g(to)150 1191 y(the)i(rep)s(ository)f(b)m(y)h(a)g(net)m(w)m(ork,)h(particularly) c(a)k(slo)m(w)e(or)h(\015aky)g(one,)g(the)g(most)g(e\016cien)m(t)h(w)m (a)m(y)g(to)f(use)150 1300 y(the)g(net)m(w)m(ork)g(is)e(with)g(the)i (CVS-sp)s(eci\014c)e(proto)s(col)h(describ)s(ed)e(in)h(this)h(do)s (cumen)m(t.)275 1435 y(Dev)m(elop)s(ers,)d(using)e(the)i(mac)m(hine)f (on)g(whic)m(h)g(they)g(store)h(their)f(w)m(orking)g(directory)-8 b(,)27 b(run)e(the)i(CVS)150 1544 y Fg(clien)m(t)f Fh(program.)38 b(T)-8 b(o)24 b(p)s(erform)f(op)s(erations)g(whic)m(h)g(cannot)i(b)s(e) e(done)h(lo)s(cally)-8 b(,)24 b(it)g(connects)h(to)f(the)h(CVS)150 1654 y Fg(serv)m(er)40 b Fh(program,)33 b(whic)m(h)f(main)m(tains)f (the)i(rep)s(ository)-8 b(.)48 b(F)-8 b(or)34 b(more)f(information)e (on)h(ho)m(w)h(to)h(connect)150 1763 y(see)d(Chapter)f(3)h([Connection) f(and)f(Authen)m(tication],)i(page)g(4.)275 1898 y(This)h(do)s(cumen)m (t)j(describ)s(es)e(the)h(CVS)g(proto)s(col.)54 b(Unfortunately)-8 b(,)35 b(it)f(do)s(es)h(not)f(y)m(et)i(completely)150 2007 y(do)s(cumen)m(t)g(one)g(asp)s(ect)g(of)g(the)g(proto)s(col|the)g (detailed)f(op)s(eration)h(of)g(eac)m(h)h(CVS)e(command)h(and)150 2117 y(option|and)28 b(one)i(m)m(ust)f(lo)s(ok)g(at)h(the)f(CVS)g(user) f(do)s(cumen)m(tation,)i(`)p Ff(cvs.texinfo)p Fh(',)d(for)i(that)h (infor-)150 2227 y(mation.)40 b(The)27 b(proto)s(col)h(is)e (non-proprietary)h(\(an)m(y)m(one)i(who)e(w)m(an)m(ts)i(to)f(is)f (encouraged)i(to)f(implemen)m(t)150 2336 y(it\))41 b(and)f(an)h (implemen)m(tation,)i(kno)m(wn)d(as)h(CVS,)g(is)f(a)m(v)-5 b(ailable)40 b(under)g(the)h(GNU)g(Public)e(License.)150 2446 y(The)23 b(CVS)f(distribution,)g(con)m(taining)h(this)f(implemen)m (tation,)h(`)p Ff(cvs.texinfo)p Fh(',)g(and)g(a)g(cop)m(y)h(\(p)s (ossibly)150 2555 y(more)e(or)f(less)g(up)f(to)j(date)f(than)f(what)g (y)m(ou)h(are)g(reading)f(no)m(w\))h(of)f(this)g(do)s(cumen)m(t,)i(`)p Ff(cvsclient.texi)p Fh(',)150 2665 y(can)31 b(b)s(e)e(found)g(at)j(the) e(usual)f(GNU)i(FTP)f(sites,)g(with)g(a)g(\014lename)g(suc)m(h)g(as)h (`)p Ff(cvs-)p Fg(v)m(ersion)p Ff(.tar.gz)p Fh('.)275 2800 y(This)25 b(is)g(v)m(ersion)i(1.10.7)i(of)e(the)g(proto)s(col)f (sp)s(eci\014cation.)39 b(This)25 b(v)m(ersion)h(n)m(um)m(b)s(er)f(is)h (in)m(tended)g(only)150 2909 y(to)36 b(aid)f(in)f(distinguishing)d (di\013eren)m(t)k(v)m(ersions)f(of)i(this)e(sp)s(eci\014cation.)55 b(Although)35 b(the)g(sp)s(eci\014cation)150 3019 y(is)27 b(curren)m(tly)h(main)m(tained)f(in)g(conjunction)g(with)h(the)g(CVS)g (implemen)m(tation,)f(and)h(carries)g(the)h(same)150 3128 y(v)m(ersion)24 b(n)m(um)m(b)s(er,)h(it)f(also)h(in)m(tends)e(to)j (do)s(cumen)m(t)e(what)h(is)f(in)m(v)m(olv)m(ed)g(with)g(in)m(terop)s (erating)f(with)h(other)150 3238 y(implemen)m(tations)i(\(suc)m(h)i(as) g(other)g(v)m(ersions)f(of)h(CVS\);)f(see)h(Section)g(5.14)h ([Requiremen)m(ts],)f(page)h(30.)150 3347 y(This)g(v)m(ersion)i(n)m(um) m(b)s(er)e(should)g(not)i(b)s(e)g(used)f(b)m(y)h(clien)m(ts)f(or)h (serv)m(ers)g(to)h(determine)e(what)h(v)-5 b(arian)m(t)31 b(of)150 3457 y(the)e(proto)s(col)g(to)h(sp)s(eak;)g(they)f(should)e (instead)h(use)h(the)g Ff(valid-requests)d Fh(and)i Ff(Valid-responses) 150 3567 y Fh(mec)m(hanism)i(\(see)h(Chapter)f(5)h([Proto)s(col],)g (page)g(7\),)g(whic)m(h)f(is)f(more)i(\015exible.)p eop %%Page: 3 3 3 2 bop 150 299 a Fi(2)80 b(Goals)225 533 y Fe(\017)60 b Fh(Do)35 b(not)f(assume)f(an)m(y)h(access)h(to)g(the)f(rep)s(ository) f(other)h(than)f(via)h(this)e(proto)s(col.)51 b(It)34 b(do)s(es)g(not)330 643 y(dep)s(end)29 b(on)h(NFS,)h(rdist,)e(etc.)225 777 y Fe(\017)60 b Fh(Pro)m(viding)29 b(a)i(reliable)d(transp)s(ort)i (is)g(outside)g(this)f(proto)s(col.)41 b(The)30 b(proto)s(col)h(exp)s (ects)g(a)g(reliable)330 887 y(transp)s(ort)j(that)h(is)f(transparen)m (t)h(\(that)h(is,)f(there)g(is)f(no)h(translation)f(of)h(c)m (haracters,)i(including)330 996 y(c)m(haracters)26 b(suc)m(h)e(as)g (suc)m(h)g(as)h(linefeeds)d(or)j(carriage)f(returns\),)h(and)f(can)h (transmit)e(all)g(256)j(o)s(ctets)330 1106 y(\(for)38 b(example)f(for)g(prop)s(er)f(handling)f(of)j(binary)d(\014les,)k (compression,)f(and)f(encryption\).)61 b(The)330 1215 y(enco)s(ding)34 b(of)g(c)m(haracters)i(sp)s(eci\014ed)d(b)m(y)i(the)g (proto)s(col)f(\(the)h(names)g(of)g(requests)f(and)g(so)h(on\))g(is)330 1325 y(the)c(in)m(v)-5 b(arian)m(t)29 b(ISO)h(646)i(c)m(haracter)g(set) f(\(a)g(subset)f(of)g(most)h(p)s(opular)d(c)m(haracter)k(sets)f (including)330 1435 y(ASCI)s(I)k(and)h(others\).)61 b(F)-8 b(or)38 b(more)e(details)g(on)h(running)d(the)j(proto)s(col)g(o)m(v)m (er)h(the)f(TCP)f(reliable)330 1544 y(transp)s(ort,)30 b(see)h(Chapter)f(3)g([Connection)g(and)g(Authen)m(tication],)h(page)g (4.)225 1679 y Fe(\017)60 b Fh(Securit)m(y)40 b(and)f(authen)m (tication)h(are)h(handled)d(outside)h(this)g(proto)s(col)h(\(but)g(see) h(b)s(elo)m(w)e(ab)s(out)330 1788 y(`)p Ff(cvs)30 b(kserver)p Fh(')e(and)i(`)p Ff(cvs)g(pserver)p Fh('\).)225 1923 y Fe(\017)60 b Fh(The)28 b(proto)s(col)h(mak)m(es)h(it)e(p)s(ossible)f (for)h(up)s(dates)g(to)i(b)s(e)e(atomic)i(with)d(resp)s(ect)i(to)h(c)m (hec)m(kins;)f(that)330 2032 y(is)g(if)f(someone)i(commits)f(c)m (hanges)i(to)f(sev)m(eral)g(\014les)e(in)h(one)g(cvs)h(command,)g(then) f(an)g(up)s(date)g(b)m(y)330 2142 y(someone)e(else)g(w)m(ould)e(either) h(get)i(all)e(the)h(c)m(hanges,)h(or)f(none)f(of)h(them.)39 b(The)27 b(curren)m(t)f Fd(cvs)g Fh(serv)m(er)330 2252 y(can't)31 b(do)g(this,)e(but)h(that)h(isn't)e(the)i(proto)s(col's)f (fault.)225 2386 y Fe(\017)60 b Fh(The)30 b(proto)s(col)g(is,)f(with)g (a)h(few)g(exceptions,)h(transaction-based.)40 b(That)30 b(is,)g(the)g(clien)m(t)g(sends)f(all)330 2496 y(its)23 b(requests)h(\(without)g(w)m(aiting)f(for)h(serv)m(er)g(resp)s (onses\),)h(and)f(then)f(w)m(aits)i(for)e(the)i(serv)m(er)f(to)h(send) 330 2605 y(bac)m(k)h(all)f(resp)s(onses)f(\(without)h(w)m(aiting)g(for) g(further)g(clien)m(t)g(requests\).)39 b(This)24 b(has)h(the)h(adv)-5 b(an)m(tage)330 2715 y(of)42 b(minimizing)c(net)m(w)m(ork)43 b(turnarounds)c(and)j(the)f(disadv)-5 b(an)m(tage)43 b(of)f(sometimes)g(transferring)330 2824 y(more)34 b(data)h(than)e(w)m (ould)g(b)s(e)g(necessary)h(if)f(there)h(w)m(ere)g(a)h(ric)m(her)e(in)m (teraction.)51 b(Another,)35 b(more)330 2934 y(subtle,)24 b(adv)-5 b(an)m(tage)25 b(is)e(that)h(there)g(is)e(no)i(need)f(for)g (the)h(proto)s(col)g(to)g(pro)m(vide)f(lo)s(c)m(king)f(for)i(features) 330 3044 y(suc)m(h)40 b(as)h(making)f(c)m(hec)m(kins)g(atomic)h(with)f (resp)s(ect)g(to)h(up)s(dates.)70 b(An)m(y)41 b(suc)m(h)f(lo)s(c)m (king)g(can)h(b)s(e)330 3153 y(handled)d(en)m(tirely)i(b)m(y)g(the)g (serv)m(er.)71 b(A)40 b(go)s(o)s(d)g(serv)m(er)h(implemen)m(tation)e (\(suc)m(h)h(as)h(the)f(curren)m(t)330 3263 y Fd(cvs)28 b Fh(serv)m(er\))i(will)d(mak)m(e)j(sure)f(that)h(it)f(do)s(es)g(not)g (ha)m(v)m(e)i(an)m(y)e(suc)m(h)g(lo)s(c)m(ks)h(in)e(place)h(whenev)m (er)g(it)g(is)330 3372 y(w)m(aiting)j(for)h(comm)m(unication)f(with)g (the)h(clien)m(t;)h(this)e(prev)m(en)m(ts)h(one)g(clien)m(t)g(on)f(a)i (slo)m(w)e(or)h(\015aky)330 3482 y(net)m(w)m(ork)e(from)f(in)m (terfering)f(with)g(the)i(w)m(ork)f(of)h(others.)225 3616 y Fe(\017)60 b Fh(It)41 b(is)e(a)i(general)f(design)f(goal)i(to)h (pro)m(vide)d(only)h(one)g(w)m(a)m(y)i(to)f(do)f(a)h(giv)m(en)f(op)s (eration)g(\(where)330 3726 y(p)s(ossible\).)55 b(F)-8 b(or)37 b(example,)g(implemen)m(tations)e(ha)m(v)m(e)i(no)f(c)m(hoice)g (ab)s(out)g(whether)f(to)i(terminate)330 3836 y(lines)f(with)h (linefeeds)g(or)h(some)h(other)f(c)m(haracter\(s\),)43 b(and)37 b(request)i(and)e(resp)s(onse)g(names)i(are)330 3945 y(case-sensitiv)m(e.)47 b(This)30 b(is)i(to)h(enhance)f(in)m (terop)s(erabilit)m(y)-8 b(.)44 b(If)32 b(a)h(proto)s(col)f(allo)m(ws)f (more)i(than)f(one)330 4055 y(w)m(a)m(y)e(to)f(do)f(something,)h(it)f (is)g(all)f(to)s(o)j(easy)f(for)f(some)h(implemen)m(tations)f(to)h (supp)s(ort)e(only)h(some)330 4164 y(of)j(them)f(\(p)s(erhaps)f (acciden)m(tally\).)p eop %%Page: 4 4 4 3 bop 150 141 a Fi(3)80 b(Ho)l(w)53 b(to)g(Connect)f(to)h(and)h (Authen)l(ticate)e(Oneself)h(to)311 299 y(the)g(CVS)g(serv)l(er)275 504 y Fh(Connection)33 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.)51 b(There)150 613 y(are)31 b(sev)m(eral)g(w)m(a)m(ys)g(to)g(connect.)150 761 y(serv)m(er)247 b(If)32 b(the)h(clien)m(t)g(has)f(a)h(w)m(a)m(y)h (to)g(execute)g(commands)e(on)h(the)g(serv)m(er,)h(and)e(pro)m(vide)g (input)630 871 y(to)k(the)f(commands)g(and)f(output)h(from)f(them,)j (then)d(it)h(can)g(connect)h(that)g(w)m(a)m(y)-8 b(.)56 b(This)630 980 y(could)33 b(b)s(e)g(the)h(usual)f(rsh)f(\(p)s(ort)i (514\))i(proto)s(col,)e(Kerb)s(eros)f(rsh,)h(SSH,)f(or)h(an)m(y)h (similar)630 1090 y(mec)m(hanism.)60 b(The)36 b(clien)m(t)h(ma)m(y)h (allo)m(w)e(the)h(user)g(to)g(sp)s(ecify)f(the)h(name)g(of)g(the)h (serv)m(er)630 1199 y(program;)30 b(the)g(default)g(is)f Ff(cvs)p Fh(.)40 b(It)30 b(is)f(in)m(v)m(ok)m(ed)h(with)f(one)i (argumen)m(t,)f Ff(server)p Fh(.)39 b(Once)30 b(it)630 1309 y(in)m(v)m(ok)m(es)h(the)g(serv)m(er,)g(the)f(clien)m(t)g(pro)s (ceeds)g(to)h(start)g(the)g(cvs)f(proto)s(col.)150 1457 y(kserv)m(er)199 b(The)45 b(k)m(erb)s(erized)f(serv)m(er)h(listens)f (on)h(a)h(p)s(ort)e(\(in)h(the)g(curren)m(t)g(implemen)m(tation,)j(b)m (y)630 1566 y(ha)m(ving)36 b(inetd)f(call)g Ff(")p Fh(cvs)h(kserv)m(er) p Ff(")p Fh(\))h(whic)m(h)e(defaults)g(to)i(1999.)59 b(The)36 b(clien)m(t)g(connects,)630 1676 y(sends)h(the)i(usual)d(k)m (erb)s(eros)i(authen)m(tication)h(information,)f(and)g(then)g(starts)g (the)h(cvs)630 1785 y(proto)s(col.)63 b(Note:)57 b(p)s(ort)37 b(1999)j(is)d(o\016cially)g(registered)g(for)h(another)g(use,)i(and)d (in)g(an)m(y)630 1895 y(ev)m(en)m(t)28 b(one)f(cannot)h(register)f (more)g(than)f(one)h(p)s(ort)f(for)h(CVS,)f(so)h(GSS-API)g(\(see)g(b)s (elo)m(w\))630 2005 y(is)i(recommended)h(instead)g(of)h(kserv)m(er)f (as)h(a)g(w)m(a)m(y)g(to)g(supp)s(ort)e(k)m(erb)s(eros.)150 2152 y(pserv)m(er)196 b(The)25 b(name)h Fg(pserv)m(er)31 b Fh(is)25 b(somewhat)h(confusing.)38 b(It)25 b(refers)g(to)i(b)s(oth)d (a)i(generic)g(framew)m(ork)630 2262 y(whic)m(h)31 b(allo)m(ws)g(the)h (CVS)f(proto)s(col)h(to)g(supp)s(ort)e(sev)m(eral)j(authen)m(tication)f (mec)m(hanisms,)630 2372 y(and)h(a)h(name)g(for)f(a)h(sp)s(eci\014c)f (mec)m(hanism)g(whic)m(h)f(transfers)h(a)h(username)f(and)h(a)g(clear-) 630 2481 y(text)k(passw)m(ord.)61 b(Serv)m(ers)37 b(need)g(not)h(supp)s (ort)d(all)h(mec)m(hanisms,)j(and)e(in)f(fact)i(serv)m(ers)630 2591 y(will)29 b(t)m(ypically)h(w)m(an)m(t)j(to)f(supp)s(ort)e(only)h (those)h(mec)m(hanisms)f(whic)m(h)f(meet)j(the)f(relev)-5 b(an)m(t)630 2700 y(securit)m(y)30 b(needs.)630 2829 y(The)g(pserv)m(er)g(serv)m(er)g(listens)f(on)h(a)g(p)s(ort)g(\(in)f (the)h(curren)m(t)g(implemen)m(tation,)f(b)m(y)h(ha)m(ving)630 2939 y(inetd)20 b(call)g Ff(")p Fh(cvs)h(pserv)m(er)p Ff(")p Fh(\))g(whic)m(h)e(defaults)h(to)i(2401)h(\(this)d(p)s(ort)g(is) g(o\016cially)g(registered\).)630 3048 y(The)30 b(clien)m(t)g (connects,)h(and)f(sends)f(the)i(follo)m(wing:)705 3177 y Fe(\017)60 b Fh(the)31 b(string)e(`)p Ff(BEGIN)g(AUTH)g(REQUEST)p Fh(',)g(a)i(linefeed,)705 3305 y Fe(\017)60 b Fh(the)31 b(cvs)f(ro)s(ot,)h(a)g(linefeed,)705 3434 y Fe(\017)60 b Fh(the)31 b(username,)f(a)g(linefeed,)705 3563 y Fe(\017)60 b Fh(the)53 b(passw)m(ord)f(trivially)e(enco)s(ded)j(\(see)g(Chapter)g (4)g([P)m(assw)m(ord)g(scram)m(bling],)810 3672 y(page)31 b(6\),)g(a)g(linefeed,)705 3801 y Fe(\017)60 b Fh(the)31 b(string)e(`)p Ff(END)h(AUTH)f(REQUEST)p Fh(',)g(and)h(a)g(linefeed.) 630 3949 y(The)38 b(clien)m(t)f(m)m(ust)h(send)g(the)g(iden)m(tical)f (string)g(for)h(cvs)h(ro)s(ot)f(b)s(oth)f(here)i(and)e(later)h(in)630 4058 y(the)d Ff(Root)f Fh(request)h(of)h(the)f(cvs)g(proto)s(col)h (itself.)53 b(Serv)m(ers)35 b(are)h(encouraged)g(to)f(enforce)630 4168 y(this)40 b(restriction.)70 b(The)41 b(p)s(ossible)d(serv)m(er)j (resp)s(onses)e(\(eac)m(h)k(of)e(whic)m(h)e(is)h(follo)m(w)m(ed)g(b)m (y)630 4277 y(a)h(linefeed\))e(are)i(the)g(follo)m(wing.)70 b(Note)42 b(that)f(although)f(there)h(is)e(a)i(small)f(similarit)m(y) 630 4387 y(b)s(et)m(w)m(een)31 b(this)e(authen)m(tication)i(proto)s (col)f(and)g(the)g(cvs)h(proto)s(col,)g(they)f(are)h(separate.)630 4535 y Ff(I)f(LOVE)f(YOU)1110 4644 y Fh(The)j(authen)m(tication)g(is)f (successful.)44 b(The)32 b(clien)m(t)f(pro)s(ceeds)h(with)f(the)h(cvs) 1110 4754 y(proto)s(col)e(itself.)630 4902 y Ff(I)g(HATE)f(YOU)1110 5011 y Fh(The)39 b(authen)m(tication)i(fails.)68 b(After)40 b(sending)e(this)h(resp)s(onse,)j(the)e(serv)m(er)1110 5121 y(ma)m(y)32 b(close)g(the)g(connection.)45 b(It)32 b(is)f(up)g(to)h(the)g(serv)m(er)g(to)g(decide)g(whether)1110 5230 y(to)h(giv)m(e)f(this)f(resp)s(onse,)h(whic)m(h)f(is)g(generic,)h (or)g(a)h(more)f(sp)s(eci\014c)f(resp)s(onse)1110 5340 y(using)e(`)p Ff(E)p Fh(')h(and/or)h(`)p Ff(error)p Fh('.)p eop %%Page: 5 5 5 4 bop 630 299 a Ff(E)30 b Fg(text)244 b Fh(Pro)m(vide)28 b(a)g(message)i(for)e(the)g(user.)40 b(After)28 b(this)f(rep)s(onse,)i (the)f(authen)m(tica-)1110 408 y(tion)d(proto)s(col)g(con)m(tin)m(ues)g (with)f(another)i(resp)s(onse.)38 b(T)m(ypically)23 b(the)j(serv)m(er) 1110 518 y(will)j(pro)m(vide)h(a)h(series)g(of)g(`)p Ff(E)p Fh(')g(resp)s(onses)g(follo)m(w)m(ed)f(b)m(y)h(`)p Ff(error)p Fh('.)43 b(Compat-)1110 628 y(ibilit)m(y)32 b(note:)49 b Fd(cvs)34 b Fh(1.9.10)j(and)d(older)f(clien)m(ts)h(will)e (prin)m(t)h Ff(unrecognized)1110 737 y(auth)c(response)42 b Fh(and)i Fg(text)p Fh(,)49 b(and)44 b(then)f(exit,)48 b(up)s(on)43 b(receiving)h(this)f(re-)1110 847 y(sp)s(onse.)630 1006 y Ff(error)29 b Fg(co)s(de)36 b(text)1110 1116 y Fh(The)j(authen)m(tication)i(fails.)68 b(After)40 b(sending)e(this)h (resp)s(onse,)j(the)e(serv)m(er)1110 1225 y(ma)m(y)g(close)g(the)f (connection.)69 b(The)39 b Fg(co)s(de)44 b Fh(is)39 b(a)h(co)s(de)f (describing)e(wh)m(y)i(it)1110 1335 y(failed,)21 b(in)m(tended)e(for)i (computer)f(consumption.)36 b(The)20 b(only)f(co)s(de)i(curren)m(tly) 1110 1445 y(de\014ned)g(is)h(`)p Ff(0)p Fh(')h(whic)m(h)f(is)f(nonsp)s (eci\014c,)i(but)f(clien)m(ts)g(m)m(ust)h(silen)m(tly)e(treat)j(an)m(y) 1110 1554 y(unrecognized)31 b(co)s(des)g(as)g(nonsp)s(eci\014c.)42 b(The)30 b Fg(text)35 b Fh(should)29 b(b)s(e)h(supplied)e(to)1110 1664 y(the)44 b(user.)82 b(Compatibilit)m(y)42 b(note:)69 b Fd(cvs)43 b Fh(1.9.10)k(and)c(older)h(clien)m(ts)g(will)1110 1773 y(prin)m(t)29 b Ff(unrecognized)e(auth)i(response)f Fh(and)i Fg(text)p Fh(,)h(and)f(then)g(exit,)h(up)s(on)1110 1883 y(receiving)40 b(this)f(resp)s(onse.)70 b(Note)42 b(that)f Fg(text)i Fh(for)e(this)e(resp)s(onse,)j(or)f(the)1110 1993 y Fg(text)e Fh(in)34 b(an)h Ff(E)h Fh(resp)s(onse,)g(is)e(not)i (designed)f(for)g(mac)m(hine)g(parsing.)55 b(More)1110 2102 y(vigorous)31 b(use)g(of)h Fg(co)s(de)p Fh(,)g(or)g(future)e (extensions,)i(will)d(b)s(e)i(needed)g(to)h(pro)m(v)m(e)1110 2212 y(a)f(cleaner)f(mac)m(hine-parseable)g(indication)e(of)j(what)f (the)h(error)f(w)m(as.)630 2371 y(If)37 b(the)g(clien)m(t)g(wishes)e (to)j(merely)f(authen)m(ticate)h(without)e(starting)h(the)g(cvs)h (proto)s(col,)630 2481 y(the)33 b(pro)s(cedure)e(is)h(the)h(same,)g (except)h(BEGIN)f(A)m(UTH)g(REQUEST)f(is)f(replaced)h(with)630 2590 y(BEGIN)24 b(VERIFICA)-8 b(TION)23 b(REQUEST,)f(END)h(A)m(UTH)h (REQUEST)e(is)h(replaced)f(with)630 2700 y(END)27 b(VERIFICA)-8 b(TION)26 b(REQUEST,)f(and)h(up)s(on)e(receipt)j(of)f(I)g(LO)m(VE)g (YOU)h(the)f(con-)630 2809 y(nection)k(is)g(closed)g(rather)g(than)g (con)m(tin)m(uing.)630 2944 y(Another)i(mec)m(hanism)g(is)f(GSSAPI)g (authen)m(tication.)47 b(GSSAPI)31 b(is)h(a)g(generic)g(in)m(terface) 630 3054 y(to)24 b(securit)m(y)e(services)h(suc)m(h)f(as)h(k)m(erb)s (eros.)38 b(GSSAPI)22 b(is)g(sp)s(eci\014ed)f(in)g(RF)m(C2078)k (\(GSSAPI)630 3163 y(v)m(ersion)34 b(2\))i(and)e(RF)m(C1508)j(\(GSSAPI) d(v)m(ersion)g(1\);)k(w)m(e)d(are)h(not)f(a)m(w)m(are)h(of)f (di\013erences)630 3273 y(b)s(et)m(w)m(een)i(the)g(t)m(w)m(o)h(whic)m (h)e(a\013ect)i(the)f(proto)s(col)g(in)e(incompatible)g(w)m(a)m(ys,)40 b(so)d(w)m(e)g(mak)m(e)630 3382 y(no)32 b(attempt)g(to)h(sp)s(ecify)d (one)i(v)m(ersion)f(or)h(the)f(other.)45 b(The)31 b(pro)s(cedure)g (here)g(is)g(to)h(start)630 3492 y(with)d(`)p Ff(BEGIN)g(GSSAPI)g (REQUEST)p Fh('.)39 b(GSSAPI)29 b(authen)m(tication)h(information)e(is) i(then)f(ex-)630 3601 y(c)m(hanged)f(b)s(et)m(w)m(een)h(the)e(clien)m (t)h(and)f(the)h(serv)m(er.)40 b(Eac)m(h)28 b(pac)m(k)m(et)i(of)d (information)f(consists)630 3711 y(of)37 b(a)g(t)m(w)m(o)i(b)m(yte)e (big)f(endian)g(length,)i(follo)m(w)m(ed)f(b)m(y)f(that)i(man)m(y)f(b)m (ytes)g(of)h(data.)61 b(After)630 3821 y(the)24 b(GSSAPI)f(authen)m (tication)i(is)e(complete,)j(the)e(serv)m(er)g(con)m(tin)m(ues)g(with)f (the)h(resp)s(onses)630 3930 y(describ)s(ed)k(ab)s(o)m(v)m(e)k(\(`)p Ff(I)e(LOVE)g(YOU)p Fh(',)g(etc.\).)150 4090 y(future)f(p)s (ossibilities)630 4199 y(There)c(are)i(a)f(nearly)f(unlimited)e(n)m(um) m(b)s(er)h(of)i(w)m(a)m(ys)h(to)g(connect)g(and)e(authen)m(ticate.)40 b(One)630 4309 y(migh)m(t)21 b(w)m(an)m(t)i(to)f(allo)m(w)f(access)i (based)e(on)g(IP)h(address)e(\(similar)f(to)k(the)f(usual)e(rsh)g (proto)s(col)630 4418 y(but)31 b(with)f(di\013eren)m(t/no)i (restrictions)f(on)g(p)s(orts)g Ff(<)h Fh(1024\),)i(to)e(adopt)g(mec)m (hanisms)f(suc)m(h)630 4528 y(as)j(Pluggable)f(Authen)m(tication)g(Mo)s (dules)g(\(P)-8 b(AM\),)35 b(to)g(allo)m(w)e(users)g(to)h(run)e(their)h (o)m(wn)630 4638 y(serv)m(ers)27 b(under)f(their)g(o)m(wn)i(usernames)e (without)g(ro)s(ot)i(access,)h(or)f(an)m(y)f(n)m(um)m(b)s(er)f(of)i (other)630 4747 y(p)s(ossibilities.)39 b(The)31 b(w)m(a)m(y)i(to)f(add) e(future)h(mec)m(hanisms,)g(for)g(the)h(most)f(part,)h(should)e(b)s(e) 630 4857 y(to)c(con)m(tin)m(ue)f(to)h(use)e(p)s(ort)h(2401,)j(but)c(to) h(use)g(di\013eren)m(t)g(strings)e(in)h(place)h(of)g(`)p Ff(BEGIN)k(AUTH)630 4966 y(REQUEST)p Fh('.)p eop %%Page: 6 6 6 5 bop 150 299 a Fi(4)80 b(P)l(assw)l(ord)52 b(scram)l(bling)h (algorithm)275 533 y Fh(The)39 b(pserv)m(er)h(authen)m(tication)g (proto)s(col,)j(as)d(describ)s(ed)e(in)h(Chapter)g(3)i([Connection)f (and)f(Au-)150 643 y(then)m(tication],)c(page)e(4,)i(trivially)30 b(enco)s(des)k(the)f(passw)m(ords.)48 b(This)32 b(is)g(only)g(to)i (prev)m(en)m(t)g(inadv)m(erten)m(t)150 752 y(compromise;)41 b(it)c(pro)m(vides)g(no)g(protection)h(against)g(ev)m(en)g(a)g(relativ) m(ely)f(unsophisticated)f(attac)m(k)m(er.)150 862 y(F)-8 b(or)32 b(comparison,)f(HTTP)g(Basic)h(Authen)m(tication)f(\(as)h (describ)s(ed)d(in)h(RF)m(C2068\))k(uses)d(BASE64)h(for)150 971 y(a)f(similar)c(purp)s(ose.)40 b(CVS)29 b(uses)h(its)g(o)m(wn)g (algorithm,)g(describ)s(ed)e(here.)275 1106 y(The)20 b(scram)m(bled)g(passw)m(ord)g(starts)i(with)e(`)p Ff(A)p Fh(',)j(whic)m(h)d(serv)m(es)h(to)h(iden)m(tify)d(the)i(scram)m(bling)f (algorithm)150 1215 y(in)30 b(use.)44 b(After)32 b(that)h(follo)m(ws)d (a)i(single)f(o)s(ctet)i(for)e(eac)m(h)i(c)m(haracter)g(in)d(the)i (passw)m(ord,)g(according)f(to)i(a)150 1325 y(\014xed)i(enco)s(ding.)56 b(The)36 b(v)-5 b(alues)35 b(are)h(sho)m(wn)g(here,)h(with)e(the)h (enco)s(ded)f(v)-5 b(alues)35 b(in)g(decimal.)56 b(Con)m(trol)150 1435 y(c)m(haracters,)28 b(space,)f(and)e(c)m(haracters)i(outside)e (the)h(in)m(v)-5 b(arian)m(t)24 b(ISO)h(646)i(c)m(haracter)g(set)f(are) g(not)f(sho)m(wn;)150 1544 y(suc)m(h)35 b(c)m(haracters)i(are)f(not)f (recommended)g(for)h(use)f(in)f(passw)m(ords.)55 b(There)35 b(is)f(a)i(long)f(discussion)e(of)150 1654 y(c)m(haracter)f(set)f (issues)e(in)g(Chapter)h(6)h([Proto)s(col)f(Notes],)j(page)e(31.)772 1782 y Ff(0)47 b(111)524 b(P)48 b(125)524 b(p)95 b(58)390 1886 y(!)47 b(120)143 b(1)95 b(52)143 b(A)95 b(57)142 b(Q)96 b(55)142 b(a)48 b(121)142 b(q)48 b(113)390 1990 y(")95 b(53)143 b(2)95 b(75)143 b(B)95 b(83)142 b(R)96 b(54)142 b(b)48 b(117)142 b(r)95 b(32)772 2094 y(3)47 b(119)143 b(C)95 b(43)142 b(S)96 b(66)142 b(c)48 b(104)142 b(s)95 b(90)772 2198 y(4)g(49)143 b(D)95 b(46)142 b(T)48 b(124)142 b(d)48 b(101)142 b(t)95 b(44)390 2301 y(\045)47 b(109)143 b(5)95 b(34)143 b(E)47 b(102)142 b(U)48 b(126)142 b(e)48 b(100)142 b(u)95 b(98)390 2405 y(&)g(72)143 b(6)95 b(82)143 b(F)95 b(40)142 b(V)96 b(59)142 b(f)95 b(69)143 b(v)95 b(60)390 2509 y(')47 b(108)143 b(7)95 b(81)143 b(G)95 b(89)142 b(W)96 b(47)142 b(g)95 b(73)143 b(w)95 b(51)390 2613 y(\()g(70)143 b(8)95 b(95)143 b(H)95 b(38)142 b(X)96 b(92)142 b(h)95 b(99)143 b(x)95 b(33)390 2716 y(\))g(64)143 b(9)95 b(65)143 b(I)47 b(103)142 b(Y)96 b(71)142 b(i)95 b(63)143 b(y)95 b(97)390 2820 y(*)g(76)143 b(:)47 b(112)143 b(J)95 b(45)142 b(Z)48 b(115)142 b(j)95 b(94)143 b(z)95 b(62)390 2924 y(+)g(67)143 b(;)95 b(86)143 b(K)95 b(50)524 b(k)95 b(93)390 3028 y(,)47 b(116)143 b(<)47 b(118)143 b(L)95 b(42)524 b(l)95 b(39)390 3132 y(-)g(74)143 b(=)47 b(110)143 b(M)47 b(123)524 b(m)95 b(37)390 3235 y(.)g(68)143 b(>)47 b(122)143 b(N)95 b(91)524 b(n)95 b(61)390 3339 y(/)g(87)143 b(?)47 b(105)143 b(O)95 b(35)142 b(_)96 b(56)142 b(o)95 b(48)p eop %%Page: 7 7 7 6 bop 150 299 a Fi(5)80 b(The)54 b(CVS)f(clien)l(t/serv)l(er)f(proto) t(col)275 537 y Fh(In)28 b(the)h(follo)m(wing,)f(`)p Ff(\\n)p Fh(')h(refers)g(to)g(a)h(linefeed)d(and)i(`)p Ff(\\t)p Fh(')f(refers)h(to)h(a)f(horizon)m(tal)g(tab;)h Fg(requests)j Fh(are)150 647 y(what)26 b(the)h(clien)m(t)e(sends)h(and) f Fg(resp)s(onses)k Fh(are)e(what)f(the)g(serv)m(er)h(sends.)38 b(In)26 b(general,)h(the)f(connection)h(is)150 756 y(go)m(v)m(erned)32 b(b)m(y)e(the)h(clien)m(t|the)f(serv)m(er)h(do)s(es)g(not)f(send)g (resp)s(onses)g(without)f(\014rst)h(receiving)g(requests)150 866 y(to)h(do)f(so;)h(see)g(Section)f(5.9)i([Resp)s(onse)e(in)m(tro],)g (page)h(21)h(for)e(more)g(details)g(of)g(this)f(con)m(v)m(en)m(tion.) 275 1002 y(It)44 b(is)e(t)m(ypical,)47 b(early)d(in)f(the)h (connection,)j(for)d(the)g(clien)m(t)f(to)i(transmit)e(a)h Ff(Valid-responses)150 1111 y Fh(request,)39 b(con)m(taining)e(all)f (the)i(resp)s(onses)e(it)g(supp)s(orts,)i(follo)m(w)m(ed)f(b)m(y)g(a)g Ff(valid-requests)d Fh(request,)150 1221 y(whic)m(h)43 b(elicits)g(from)h(the)g(serv)m(er)h(a)g Ff(Valid-requests)40 b Fh(resp)s(onse)k(con)m(taining)f(all)h(the)g(requests)g(it)150 1330 y(understands.)37 b(In)25 b(this)g(w)m(a)m(y)-8 b(,)28 b(the)e(clien)m(t)f(and)g(serv)m(er)h(eac)m(h)h(\014nd)d(out)i (what)g(the)g(other)g(supp)s(orts)d(b)s(efore)150 1440 y(exc)m(hanging)31 b(large)f(amoun)m(ts)h(of)f(data)h(\(suc)m(h)g(as)f (\014le)g(con)m(ten)m(ts\).)150 1701 y Fc(5.1)68 b(En)l(tries)46 b(Lines)275 1895 y Fh(En)m(tries)29 b(lines)g(are)i(transmitted)e(as:) 390 2025 y Ff(/)47 b Fg(name)53 b Ff(/)48 b Fg(v)m(ersion)f Ff(/)h Fg(con\015ict)h Ff(/)f Fg(options)i Ff(/)e Fg(tag)p 2266 2025 28 4 v 34 w(or)p 2381 2025 V 33 w(date)275 2161 y(tag)p 405 2161 V 34 w(or)p 520 2161 V 32 w(date)40 b Fh(is)33 b(either)g(`)p Ff(T)p Fh(')h Fg(tag)43 b Fh(or)34 b(`)p Ff(D)p Fh(')g Fg(date)39 b Fh(or)34 b(empt)m(y)-8 b(.)52 b(If)33 b(it)h(is)e(follo)m(w)m(ed)i(b)m(y)g(a)g(slash,)g(an)m (ything)150 2270 y(after)d(the)f(slash)g(shall)e(b)s(e)i(silen)m(tly)f (ignored.)275 2406 y Fg(v)m(ersion)j Fh(can)h(b)s(e)f(empt)m(y)-8 b(,)35 b(or)e(start)g(with)f(`)p Ff(0)p Fh(')h(or)f(`)p Ff(-)p Fh(',)i(for)f(no)g(user)f(\014le,)h(new)f(user)g(\014le,)h(or)g (user)f(\014le)150 2516 y(to)f(b)s(e)f(remo)m(v)m(ed,)h(resp)s(ectiv)m (ely)-8 b(.)275 2651 y Fg(con\015ict)p Fh(,)27 b(if)f(it)h(starts)g (with)e(`)p Ff(+)p Fh(',)j(indicates)e(that)i(the)f(\014le)f(had)g (con\015icts)h(in)e(it.)40 b(The)26 b(rest)h(of)g Fg(con\015ict)150 2761 y Fh(is)33 b(`)p Ff(=)p Fh(')i(if)e(the)h(timestamp)g(matc)m(hes)i (the)e(\014le,)h(or)f(an)m(ything)g(else)g(if)f(it)h(do)s(esn't.)52 b(If)34 b Fg(con\015ict)i Fh(do)s(es)e(not)150 2871 y(start)d(with)e(a) i(`)p Ff(+)p Fh(',)g(it)e(is)h(silen)m(tly)f(ignored.)275 3006 y Fg(options)c Fh(signi\014es)c(the)i(k)m(eyw)m(ord)g(expansion)e (options)h(\(for)h(example)f(`)p Ff(-ko)p Fh('\).)38 b(In)22 b(an)g Ff(Entry)g Fh(request,)150 3116 y(this)33 b(indicates)g(the)h(options)f(that)h(w)m(ere)h(sp)s(eci\014ed)d(with)g (the)i(\014le)f(from)h(the)g(previous)e(\014le)h(up)s(dating)150 3226 y(resp)s(onse)d(\(see)i(Section)f(5.9)h([Resp)s(onse)f(in)m(tro],) h(page)g(21,)g(for)f(a)g(list)f(of)i(\014le)e(up)s(dating)f(resp)s (onses\);)i(if)150 3335 y(the)g(clien)m(t)f(is)f(sp)s(ecifying)f(the)j (`)p Ff(-k)p Fh(')f(or)h(`)p Ff(-A)p Fh(')f(option)g(to)h Ff(update)p Fh(,)e(then)h(it)g(is)f(the)i(serv)m(er)g(whic)m(h)e (\014gures)150 3445 y(out)i(what)f(o)m(v)m(errides)g(what.)150 3706 y Fc(5.2)68 b(File)46 b(Mo)t(des)275 3899 y Fh(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) 390 4029 y Fg(mo)s(de-t)m(yp)s(e)53 b Ff(=)47 b Fg(data)275 4165 y Fh(separated)30 b(b)m(y)h(`)p Ff(,)p Fh('.)275 4301 y Fg(mo)s(de-t)m(yp)s(e)f Fh(is)24 b(an)h(iden)m(ti\014er)f(comp)s (osed)h(of)g(alphan)m(umeric)e(c)m(haracters.)41 b(Curren)m(tly)23 b(sp)s(eci\014ed:)37 b(`)p Ff(u)p Fh(')150 4411 y(for)f(user,)i(`)p Ff(g)p Fh(')e(for)h(group,)g(`)p Ff(o)p Fh(')g(for)f(other)h(\(see)g(b) s(elo)m(w)f(for)g(discussion)e(of)i(whether)g(these)h(ha)m(v)m(e)h (their)150 4520 y(POSIX)26 b(meaning)g(or)h(are)g(more)g(lo)s(ose\).)39 b(Unrecognized)27 b(v)-5 b(alues)26 b(of)h Fg(mo)s(de-t)m(yp)s(e)32 b Fh(are)c(silen)m(tly)d(ignored.)275 4656 y Fg(data)i Fh(consists)f(of)g(an)m(y)h(data)g(not)g(con)m(taining)f(`)p Ff(,)p Fh(',)i(`)p Ff(\\0)p Fh(')e(or)g(`)p Ff(\\n)p Fh('.)40 b(F)-8 b(or)27 b(`)p Ff(u)p Fh(',)g(`)p Ff(g)p Fh(',)h(and)e(`)p Ff(o)p Fh(')h(mo)s(de)f(t)m(yp)s(es,)150 4766 y(data)31 b(consists)e(of)h(alphan)m(umeric)e(c)m(haracters,)k (where)d(`)p Ff(r)p Fh(')h(means)g(read,)g(`)p Ff(w)p Fh(')h(means)e(write,)h(`)p Ff(x)p Fh(')g(means)150 4875 y(execute,)i(and)e(unrecognized)f(letters)i(are)g(silen)m(tly)d (ignored.)275 5011 y(The)35 b(t)m(w)m(o)j(most)e(ob)m(vious)g(w)m(a)m (ys)g(in)f(whic)m(h)g(the)h(mo)s(de)g(matters)h(are:)52 b(\(1\))38 b(is)d(it)g(writeable?)57 b(This)150 5121 y(is)33 b(used)g(b)m(y)h(the)g(dev)m(elop)s(er)f(comm)m(unication)h (features,)h(and)e(is)g(implemen)m(ted)g(ev)m(en)h(on)g(OS/2)g(\(and) 150 5230 y(could)27 b(b)s(e)g(implemen)m(ted)f(on)h(DOS\),)h(whose)g (notion)f(of)h(mo)s(de)f(is)g(limited)e(to)j(a)g(readonly)f(bit.)39 b(\(2\))29 b(is)d(it)150 5340 y(executable?)41 b(Unix)29 b(CVS)g(users)h(need)f(CVS)h(to)h(store)f(this)f(setting)i(\(for)f (shell)e(scripts)h(and)h(the)g(lik)m(e\).)p eop %%Page: 8 8 8 7 bop 150 299 a Fh(The)34 b(curren)m(t)h(CVS)e(implemen)m(tation)h (on)g(unix)f(do)s(es)h(a)h(little)f(bit)g(more)g(than)h(just)f(main)m (tain)f(these)150 408 y(t)m(w)m(o)d(settings,)f(but)f(it)g(do)s(esn't)h (really)e(ha)m(v)m(e)j(a)f(nice)f(general)h(facilit)m(y)e(to)j(store)f (or)g(v)m(ersion)f(con)m(trol)h(the)150 518 y(mo)s(de,)c(ev)m(en)g(on)f (unix,)g(m)m(uc)m(h)g(less)f(across)i(op)s(erating)e(systems)i(with)d (div)m(erse)i(protection)g(features.)39 b(So)150 628 y(all)31 b(the)h(ins)e(and)h(outs)h(of)g(what)g(the)g(mo)s(de)f(means)h (across)h(op)s(erating)e(systems)h(ha)m(v)m(en't)h(really)e(b)s(een)150 737 y(w)m(ork)m(ed)g(out)f(\(e.g.)43 b(should)28 b(the)j(VMS)f(p)s(ort) g(use)g(A)m(CLs)g(to)h(get)h(POSIX)d(seman)m(tics)i(for)f(groups?\).) 150 995 y Fc(5.3)68 b(Con)l(v)l(en)l(tions)47 b(regarding)e (transmission)h(of)g(\014le)f(names)275 1187 y Fh(In)31 b(most)h(con)m(texts,)i(`)p Ff(/)p Fh(')e(is)f(used)h(to)g(separate)h (directory)f(and)f(\014le)g(names)h(in)f(\014lenames,)g(and)h(an)m(y) 150 1297 y(use)j(of)h(other)g(con)m(v)m(en)m(tions)h(\(for)e(example,)i (that)f(the)g(user)f(migh)m(t)g(t)m(yp)s(e)h(on)f(the)h(command)g (line\))e(is)150 1406 y(con)m(v)m(erted)43 b(to)g(that)f(form.)74 b(The)42 b(only)e(exceptions)i(migh)m(t)g(b)s(e)f(a)h(few)f(cases)i(in) d(whic)m(h)h(the)h(serv)m(er)150 1516 y(pro)m(vides)32 b(a)h(magic)g(co)s(okie)h(whic)m(h)d(the)i(clien)m(t)g(then)f(rep)s (eats)h(v)m(erbatim,)h(but)e(as)h(the)g(serv)m(er)g(has)g(not)150 1626 y(y)m(et)38 b(b)s(een)f(p)s(orted)g(b)s(ey)m(ond)f(unix,)i(the)f (t)m(w)m(o)i(rules)d(pro)m(vide)g(the)i(same)f(answ)m(er)g(\(and)h (what)f(to)h(do)f(if)150 1735 y(future)25 b(serv)m(er)i(p)s(orts)e(are) i(op)s(erating)e(on)h(a)h(rep)s(ository)e(lik)m(e)g(e:/fo)s(o)j(or)e (CVS)p 2795 1735 28 4 v 32 w(R)m(OOT:[F)m(OO.BAR])h(has)150 1845 y(not)k(b)s(een)e(carefully)g(though)m(t)i(out\).)275 1979 y(Characters)i(outside)g(the)g(in)m(v)-5 b(arian)m(t)33 b(ISO)f(646)i(c)m(haracter)h(set)f(should)d(b)s(e)i(a)m(v)m(oided)h(in) e(\014lenames.)150 2089 y(This)24 b(restriction)g(ma)m(y)j(need)e(to)h (b)s(e)f(relaxed)h(to)g(allo)m(w)f(for)g(c)m(haracters)i(suc)m(h)f(as)g (`)p Ff([)p Fh(')f(and)g(`)p Ff(])p Fh(')h(\(see)h(ab)s(o)m(v)m(e)150 2198 y(ab)s(out)h(non-unix)e(serv)m(ers\);)j(this)e(has)h(not)g(b)s (een)f(carefully)g(considered)g(\(and)h(curren)m(tly)f(implemen)m(ta-) 150 2308 y(tions)i(probably)e(use)i(whatev)m(er)h(c)m(haracter)h(sets)f (that)g(the)f(op)s(erating)g(systems)g(they)h(are)f(running)e(on)150 2418 y(allo)m(w,)h(and/or)g(that)g(users)f(sp)s(ecify\).)39 b(Of)27 b(course)h(the)g(most)g(p)s(ortable)f(practice)h(is)e(to)j (restrict)e(oneself)150 2527 y(further,)i(to)i(the)g(POSIX)e(p)s (ortable)h(\014lename)f(c)m(haracter)j(set)f(as)g(sp)s(eci\014ed)e(in)g (POSIX.1.)150 2785 y Fc(5.4)68 b(File)46 b(transmissions)275 2977 y Fh(File)35 b(con)m(ten)m(ts)j(\(noted)f(b)s(elo)m(w)e(as)h Fg(\014le)g(transmission)p Fh(\))e(can)i(b)s(e)g(sen)m(t)h(in)d(one)j (of)f(t)m(w)m(o)i(forms.)57 b(The)150 3087 y(simpler)27 b(form)j(is)e(a)j(n)m(um)m(b)s(er)d(of)i(b)m(ytes,)h(follo)m(w)m(ed)e (b)m(y)h(a)g(linefeed,)e(follo)m(w)m(ed)i(b)m(y)f(the)h(sp)s(eci\014ed) e(n)m(um)m(b)s(er)150 3196 y(of)j(b)m(ytes)h(of)g(\014le)e(con)m(ten)m (ts.)45 b(These)31 b(are)h(the)g(en)m(tire)f(con)m(ten)m(ts)i(of)e(the) h(sp)s(eci\014ed)d(\014le.)43 b(Second,)31 b(if)g(b)s(oth)150 3306 y(clien)m(t)40 b(and)f(serv)m(er)h(supp)s(ort)f(`)p Ff(gzip-file-contents)p Fh(',)f(a)i(`)p Ff(z)p Fh(')g(ma)m(y)h(precede) f(the)g(length,)i(and)e(the)150 3416 y(`\014le)29 b(con)m(ten)m(ts')j (sen)m(t)e(are)g(actually)f(compressed)h(with)e(`)p Ff(gzip)p Fh(')h(\(RF)m(C1952/1951\))35 b(compression.)k(The)150 3525 y(length)30 b(sp)s(eci\014ed)e(is)i(that)h(of)f(the)h(compressed)f (v)m(ersion)g(of)g(the)h(\014le.)275 3660 y(In)c(neither)h(case)h(are)g (the)g(\014le)f(con)m(ten)m(t)i(follo)m(w)m(ed)e(b)m(y)g(an)m(y)h (additional)e(data.)41 b(The)28 b(transmission)e(of)150 3769 y(a)31 b(\014le)e(will)f(end)i(with)f(a)h(linefeed)f(i\013)h(that) h(\014le)e(\(or)i(its)f(compressed)g(form\))g(ends)g(with)f(a)i (linefeed.)275 3904 y(The)23 b(enco)s(ding)g(of)i(\014le)e(con)m(ten)m (ts)j(dep)s(ends)c(on)i(the)g(v)-5 b(alue)24 b(for)g(the)g(`)p Ff(-k)p Fh(')g(option.)38 b(If)24 b(the)g(\014le)g(is)f(binary)150 4013 y(\(as)31 b(sp)s(eci\014ed)e(b)m(y)h(the)h(`)p Ff(-kb)p Fh(')f(option)g(in)f(the)i(appropriate)e(place\),)i(then)g(it)f(is)f (just)h(a)h(certain)f(n)m(um)m(b)s(er)150 4123 y(of)38 b(o)s(ctets,)j(and)d(the)g(proto)s(col)f(con)m(tributes)h(nothing)f(to) m(w)m(ards)h(determining)e(the)i(enco)s(ding)f(\(using)150 4232 y(the)d(\014le)e(name)i(is)e(one)i(widespread,)e(if)h(not)h(univ)m (ersally)c(p)s(opular,)j(mec)m(hanism\).)49 b(If)33 b(the)h(\014le)e (is)h(text)150 4342 y(\(not)d(binary\),)e(then)h(the)h(\014le)e(is)h (sen)m(t)h(as)f(a)h(series)f(of)g(lines,)f(separated)i(b)m(y)f (linefeeds.)39 b(If)29 b(the)g(k)m(eyw)m(ord)150 4452 y(expansion)g(is)h(set)g(to)h(something)f(other)h(than)f(`)p Ff(-ko)p Fh(',)g(then)g(it)g(is)f(exp)s(ected)i(that)g(the)g(\014le)e (conform)h(to)150 4561 y(the)f(R)m(CS)f(exp)s(ectations)i(regarding)e (k)m(eyw)m(ord)h(expansion|in)d(particular,)i(that)h(it)g(is)f(in)f(a)i (c)m(haracter)150 4671 y(set)i(suc)m(h)f(as)h(ASCI)s(I)d(in)h(whic)m(h) h(0x24)h(is)f(a)g(dollar)f(sign)h(\(`)p Ff($)p Fh('\).)150 4928 y Fc(5.5)68 b(Strings)275 5121 y Fh(In)24 b(v)-5 b(arious)25 b(con)m(texts,)k(for)c(example)g(the)h Ff(Argument)d Fh(request)j(and)f(the)h Ff(M)f Fh(resp)s(onse,)h(one)g(transmits)150 5230 y(what)32 b(is)f(essen)m(tially)h(an)g(arbitrary)f(string.)45 b(Often)32 b(this)f(will)f(ha)m(v)m(e)j(b)s(een)f(supplied)d(b)m(y)j (the)g(user)g(\(for)150 5340 y(example,)d(the)h(`)p Ff(-m)p Fh(')f(option)g(to)h(the)f Ff(ci)g Fh(request\).)41 b(The)29 b(proto)s(col)g(has)g(no)g(mec)m(hanism)g(to)h(sp)s(ecify)e(the)p eop %%Page: 9 9 9 8 bop 150 299 a Fh(c)m(haracter)23 b(set)e(of)h(suc)m(h)e(strings;)k (it)c(w)m(ould)g(b)s(e)h(fairly)e(safe)i(to)h(stic)m(k)g(to)f(the)h(in) m(v)-5 b(arian)m(t)20 b(ISO)g(646)i(c)m(haracter)150 408 y(set)35 b(but)f(the)h(existing)e(practice)i(is)f(probably)e(to)k (just)e(transmit)f(whatev)m(er)i(the)g(user)f(sp)s(eci\014es,)h(and)150 518 y(hop)s(e)j(that)h(ev)m(ery)m(one)g(in)m(v)m(olv)m(ed)f(agrees)i (whic)m(h)d(c)m(haracter)j(set)f(is)e(in)g(use,)j(or)f(stic)m(ks)f(to)h (a)g(common)150 628 y(subset.)150 881 y Fc(5.6)68 b(Dates)275 1072 y Fh(The)29 b(proto)s(col)i(con)m(tains)f(times)g(and)g(dates)h (in)e(v)-5 b(arious)29 b(places.)275 1205 y(F)-8 b(or)29 b(the)f(`)p Ff(-D)p Fh(')h(option)f(to)h(the)g Ff(annotate)p Fh(,)e Ff(co)p Fh(,)h Ff(diff)p Fh(,)g Ff(export)p Fh(,)g Ff(history)p Fh(,)f Ff(rdiff)p Fh(,)g Ff(rtag)p Fh(,)h Ff(tag)p Fh(,)h(and)150 1315 y Ff(update)g Fh(requests,)h(the)h(serv)m (er)f(should)f(supp)s(ort)f(t)m(w)m(o)k(formats:)390 1442 y Ff(26)47 b(May)g(1997)g(13:01:40)e(-0000)94 b(;)48 b Fh(RF)m(C)30 b(822)i(as)f(mo)s(di\014ed)d(b)m(y)i(RF)m(C)h(1123)390 1546 y Ff(5/26/1997)45 b(13:01:40)h(GMT)190 b(;)47 b Fh(traditional)275 1679 y(The)37 b(former)h(format)g(is)f(preferred;)k (the)d(latter)g(ho)m(w)m(ev)m(er)i(is)d(sen)m(t)h(b)m(y)g(the)h(CVS)e (command)h(line)150 1789 y(clien)m(t)30 b(\(v)m(ersions)g(1.5)h (through)f(at)h(least)g(1.9\).)275 1922 y(F)-8 b(or)36 b(the)h(`)p Ff(-d)p Fh(')f(option)f(to)i(the)g Ff(log)e Fh(request,)j(serv)m(ers)e(should)e(at)j(least)g(supp)s(ort)d(RF)m(C)i (822/1123)150 2032 y(format.)k(Clien)m(ts)25 b(are)i(encouraged)g(to)g (use)f(this)f(format)i(to)s(o)g(\(traditionally)d(the)j(command)f(line) f(CVS)150 2141 y(clien)m(t)30 b(has)g(just)g(passed)g(along)g(the)h (date)g(format)f(sp)s(eci\014ed)f(b)m(y)h(the)h(user,)f(ho)m(w)m(ev)m (er\).)275 2274 y(The)j Ff(Mod-time)e Fh(resp)s(onse)i(and)g Ff(Checkin-time)e Fh(request)j(use)f(RF)m(C)h(822/1123)k(format)c (\(see)h(the)150 2384 y(descriptions)28 b(of)j(that)g(resp)s(onse)e (and)h(request)g(for)h(details\).)275 2517 y(F)-8 b(or)31 b Ff(Notify)p Fh(,)e(see)i(the)f(description)f(of)h(that)h(request.)150 2770 y Fc(5.7)68 b(Request)46 b(in)l(tro)275 2962 y Fh(By)33 b(con)m(v)m(en)m(tion,)h(requests)f(whic)m(h)f(b)s(egin)f(with)g(a)j (capital)e(letter)h(do)g(not)g(elicit)e(a)j(resp)s(onse)d(from)150 3071 y(the)f(serv)m(er,)g(while)e(all)h(others)h(do)f({)h(sa)m(v)m(e)i (one.)41 b(The)29 b(exception)h(is)f(`)p Ff(gzip-file-contents)p Fh('.)36 b(Unrec-)150 3181 y(ognized)g(requests)f(will)e(alw)m(a)m(ys)k (elicit)d(a)i(resp)s(onse)f(from)h(the)g(serv)m(er,)h(ev)m(en)g(if)d (that)j(request)e(b)s(egins)150 3290 y(with)29 b(a)i(capital)f(letter.) 275 3424 y(The)21 b(term)h Fg(command)j Fh(means)d(a)g(request)g(whic)m (h)f(exp)s(ects)h(a)g(resp)s(onse)f(\(except)i Ff(valid-requests)p Fh(\).)150 3533 y(The)40 b(general)g(mo)s(del)g(is)f(that)i(the)g (clien)m(t)f(transmits)g(a)g(great)i(n)m(um)m(b)s(er)d(of)i(requests,)i (but)d(nothing)150 3643 y(happ)s(ens)30 b(un)m(til)g(the)i(v)m(ery)g (end)f(when)f(the)i(clien)m(t)g(transmits)e(a)i(command.)45 b(Although)31 b(the)g(in)m(ten)m(tion)150 3752 y(is)j(that)h (transmitting)f(sev)m(eral)h(commands)f(in)g(one)h(connection)g(should) e(b)s(e)h(legal,)i(existing)e(serv)m(ers)150 3862 y(probably)21 b(ha)m(v)m(e)i(some)g(bugs)f(with)f(some)i(com)m(binations)f(of)h(more) g(than)f(one)h(command,)h(and)e(so)g(clien)m(ts)150 3972 y(ma)m(y)28 b(\014nd)e(it)h(necessary)h(to)g(mak)m(e)h(sev)m(eral)e (connections)h(in)e(some)i(cases.)41 b(This)25 b(should)h(b)s(e)h (though)m(t)h(of)150 4081 y(as)j(a)f(w)m(ork)-5 b(around)30 b(rather)g(than)g(a)h(desired)e(attribute)h(of)g(the)h(proto)s(col.)150 4334 y Fc(5.8)68 b(Requests)275 4526 y Fh(Here)30 b(are)h(the)g (requests:)150 4682 y Ff(Root)e Fg(pathname)36 b Ff(\\n)630 4792 y Fh(Resp)s(onse)29 b(exp)s(ected:)40 b(no.)h(T)-8 b(ell)28 b(the)h(serv)m(er)h(whic)m(h)e Ff(CVSROOT)f Fh(to)j(use.)40 b(Note)31 b(that)f Fg(path-)630 4902 y(name)j Fh(is)28 b(a)g(lo)s(cal)g(directory)g(and)g Fb(not)37 b Fh(a)29 b(fully)d(quali\014ed)g Ff(CVSROOT)g Fh(v)-5 b(ariable.)39 b Fg(pathname)630 5011 y Fh(m)m(ust)23 b(already)g(exist;)j(if)c(creating)i(a)g(new)f(ro)s(ot,)i(use)e(the)h Ff(init)e Fh(request,)j(not)f Ff(Root)p Fh(.)37 b Fg(path-)630 5121 y(name)43 b Fh(do)s(es)37 b(not)g(include)e(the)j(hostname)g(of)f (the)h(serv)m(er,)i(ho)m(w)d(to)h(access)h(the)e(serv)m(er,)630 5230 y(etc.;)h(b)m(y)c(the)g(time)g(the)g(CVS)g(proto)s(col)g(is)f(in)g (use,)i(connection,)h(authen)m(tication,)f(etc.,)630 5340 y(are)c(already)f(tak)m(en)h(care)g(of.)p eop %%Page: 10 10 10 9 bop 630 299 a Fh(The)44 b Ff(Root)g Fh(request)g(m)m(ust)h(b)s(e)f (sen)m(t)h(only)f(once,)49 b(and)44 b(it)g(m)m(ust)h(b)s(e)f(sen)m(t)h (b)s(efore)g(an)m(y)630 408 y(requests)38 b(other)g(than)g Ff(Valid-responses)p Fh(,)e Ff(valid-requests)p Fh(,)g Ff(UseUnchanged)p Fh(,)h Ff(Set)630 518 y Fh(or)30 b Ff(init)p Fh(.)150 697 y Ff(Valid-responses)c Fg(request-list)32 b Ff(\\n)630 807 y Fh(Resp)s(onse)i(exp)s(ected:)51 b(no.)j(T)-8 b(ell)34 b(the)h(serv)m(er)g(what)g(resp)s(onses)f(the)h(clien)m(t)g (will)d(accept.)630 916 y(request-list)d(is)h(a)h(space)g(separated)f (list)f(of)i(tok)m(ens.)150 1095 y Ff(valid-requests)26 b(\\n)630 1205 y Fh(Resp)s(onse)37 b(exp)s(ected:)57 b(y)m(es.)64 b(Ask)38 b(the)g(serv)m(er)g(to)h(send)e(bac)m(k)h(a)h Ff(Valid-requests)34 b Fh(re-)630 1314 y(sp)s(onse.)150 1493 y Ff(Directory)28 b Fg(lo)s(cal-directory)37 b Ff(\\n)630 1603 y Fh(Additional)31 b(data:)48 b Fg(rep)s(ository)41 b Ff(\\)p Fh(n.)49 b(Resp)s(onse)33 b(exp)s(ected:)48 b(no.)j(T)-8 b(ell)32 b(the)i(serv)m(er)g(what)630 1712 y(directory)h(to)g(use.)55 b(The)34 b Fg(rep)s(ository)42 b Fh(should)33 b(b)s(e)h(a)i(directory)e(name)h(from)g(a)g(previous)630 1822 y(serv)m(er)h(resp)s(onse.)56 b(Note)37 b(that)f(this)f(b)s(oth)f (giv)m(es)i(a)h(default)d(for)i Ff(Entry)e Fh(and)h Ff(Modified)630 1932 y Fh(and)f(also)g(for)g Ff(ci)g Fh(and)g(the)g(other)h(commands;)h (normal)d(usage)i(is)f(to)h(send)e Ff(Directory)630 2041 y Fh(for)25 b(eac)m(h)h(directory)e(in)g(whic)m(h)g(there)h(will)d(b)s (e)j(an)f Ff(Entry)g Fh(or)h Ff(Modified)p Fh(,)f(and)g(then)h(a)g (\014nal)630 2151 y Ff(Directory)33 b Fh(for)j(the)g(original)d (directory)-8 b(,)38 b(then)d(the)h(command.)57 b(The)35 b Fg(lo)s(cal-directory)630 2260 y Fh(is)j(relativ)m(e)i(to)g(the)f (top)h(lev)m(el)f(at)h(whic)m(h)e(the)h(command)h(is)e(o)s(ccurring)g (\(i.e.)68 b(the)39 b(last)630 2370 y Ff(Directory)33 b Fh(whic)m(h)i(is)g(sen)m(t)h(b)s(efore)g(the)g(command\);)j(to)e (indicate)e(that)h(top)h(lev)m(el,)g(`)p Ff(.)p Fh(')630 2479 y(should)28 b(b)s(e)i(sen)m(t)h(for)f Fg(lo)s(cal-directory)p Fh(.)630 2624 y(Here)j(is)e(an)h(example)f(of)i(where)e(a)h(clien)m(t)g (gets)h Fg(rep)s(ository)39 b Fh(and)31 b Fg(lo)s(cal-directory)p Fh(.)45 b(Sup-)630 2733 y(p)s(ose)30 b(that)h(there)g(is)e(a)i(mo)s (dule)d(de\014ned)i(b)m(y)870 2872 y Ff(moddir)46 b(1dir)630 3016 y Fh(That)32 b(is,)f(one)h(can)h(c)m(hec)m(k)g(out)f Ff(moddir)e Fh(and)h(it)h(will)d(tak)m(e)k Ff(1dir)e Fh(in)g(the)h(rep)s(ository)f(and)630 3126 y(c)m(hec)m(k)c(it)d(out)h (to)h Ff(moddir)e Fh(in)f(the)j(w)m(orking)e(directory)-8 b(.)39 b(Then)24 b(an)h(initial)d(c)m(hec)m(k)27 b(out)e(could)630 3235 y(pro)s(ceed)30 b(lik)m(e)g(this:)870 3374 y Ff(C:)47 b(Root)g(/home/kingdon/zwork/cvsr)o(oot)870 3477 y(.)g(.)h(.)870 3581 y(C:)f(Argument)f(moddir)870 3685 y(C:)h(Directory)e(.)870 3789 y(C:)i(/home/kingdon/zwork/cvsro)o(ot)870 3892 y(C:)g(co)870 3996 y(S:)g(Clear-sticky)e(moddir/)870 4100 y(S:)i (/home/kingdon/zwork/cvsro)o(ot/1)o(dir)o(/)870 4204 y(.)g(.)h(.)870 4308 y(S:)f(ok)630 4452 y Fh(In)32 b(this)f(example)h (the)h(resp)s(onse)f(sho)m(wn)g(is)f Ff(Clear-sticky)p Fh(,)f(but)i(it)g(could)g(b)s(e)g(another)630 4561 y(resp)s(onse)23 b(instead.)38 b(Note)25 b(that)f(it)g(returns)e(t)m(w)m(o)k(pathnames.) 38 b(The)23 b(\014rst)g(one,)j(`)p Ff(moddir/)p Fh(',)630 4671 y(indicates)35 b(the)g(w)m(orking)g(directory)h(to)g(c)m(hec)m(k)h (out)f(in)m(to.)57 b(The)35 b(second)h(one,)h(ending)d(in)630 4781 y(`)p Ff(1dir/)p Fh(',)48 b(indicates)d(the)g(directory)g(to)h (pass)f(bac)m(k)h(to)g(the)f(serv)m(er)h(in)e(a)i(subsequen)m(t)630 4890 y Ff(Directory)25 b Fh(request.)39 b(F)-8 b(or)28 b(example,)g(a)g(subsequen)m(t)e Ff(update)g Fh(request)h(migh)m(t)g (lo)s(ok)f(lik)m(e:)870 5029 y Ff(C:)47 b(Directory)e(moddir)870 5132 y(C:)i(/home/kingdon/zwork/cvsro)o(ot/1)o(dir)870 5236 y(.)g(.)h(.)870 5340 y(C:)f(update)p eop %%Page: 11 11 11 10 bop 630 299 a Fh(F)-8 b(or)44 b(a)h(giv)m(en)e Fg(lo)s(cal-directory)p Fh(,)k(the)d(rep)s(ository)e(will)f(b)s(e)i (the)h(same)g(for)g(eac)m(h)h(of)f(the)630 408 y(resp)s(onses,)31 b(so)h(one)g(can)h(use)e(the)h(rep)s(ository)f(from)g(whic)m(hev)m(er)g (resp)s(onse)g(is)g(most)h(con-)630 518 y(v)m(enien)m(t.)49 b(T)m(ypically)31 b(a)i(clien)m(t)g(will)d(store)j(the)h(rep)s(ository) d(along)i(with)f(the)h(sources)g(for)630 628 y(eac)m(h)38 b Fg(lo)s(cal-directory)p Fh(,)f(use)g(that)g(same)g(setting)g(whenev)m (er)f(op)s(erating)h(on)f(that)h Fg(lo)s(cal-)630 737 y(directory)p Fh(,)30 b(and)g(not)h(up)s(date)e(the)i(setting)f(as)h (long)f(as)g(the)h Fg(lo)s(cal-directory)37 b Fh(exists.)630 871 y(A)24 b(clien)m(t)f(is)g(free)g(to)i(rename)f(a)g Fg(lo)s(cal-directory)30 b Fh(at)25 b(an)m(y)f(time)f(\(for)h(example,) h(in)d(resp)s(onse)630 981 y(to)37 b(an)f(explicit)e(user)h(request\).) 58 b(While)35 b(it)h(is)f(true)h(that)g(the)h(serv)m(er)f(supplies)d(a) j Fg(lo)s(cal-)630 1091 y(directory)g Fh(to)29 b(the)g(clien)m(t,)g(as) g(noted)f(ab)s(o)m(v)m(e,)j(this)c(is)h(only)f(the)i(default)f(place)h (to)g(put)f(the)630 1200 y(directory)-8 b(.)40 b(Of)26 b(course,)i(the)f(v)-5 b(arious)26 b Ff(Directory)f Fh(requests)i(for)g (a)g(single)f(command)h(\(for)630 1310 y(example,)40 b Ff(update)c Fh(or)i Ff(ci)g Fh(request\))g(should)e(name)j(a)f (particular)e(directory)i(with)f(the)630 1419 y(same)31 b Fg(lo)s(cal-directory)p Fh(.)630 1554 y(Eac)m(h)j Ff(Directory)c Fh(request)j(sp)s(eci\014es)f(a)h(brand-new)f Fg(lo)s(cal-directory)40 b Fh(and)32 b Fg(rep)s(ository)8 b Fh(;)630 1663 y(that)37 b(is,)f Fg(lo)s(cal-directory)43 b Fh(and)35 b Fg(rep)s(ository)43 b Fh(are)36 b(nev)m(er)h(relativ)m(e)f(to)g(paths)g(sp)s(eci\014ed)e (in)630 1773 y(an)m(y)d(previous)e Ff(Directory)e Fh(request.)630 1907 y(Here's)36 b(a)f(more)g(complex)g(example,)h(in)e(whic)m(h)g(w)m (e)i(request)f(an)g(up)s(date)f(of)h(a)h(w)m(orking)630 2017 y(directory)30 b(whic)m(h)f(has)h(b)s(een)g(c)m(hec)m(k)m(ed)i (out)f(from)f(m)m(ultiple)e(places)i(in)f(the)h(rep)s(ository)-8 b(.)870 2145 y Ff(C:)47 b(Argument)f(dir1)870 2249 y(C:)h(Directory)e (dir1)870 2352 y(C:)i(/home/foo/repos/mod1)870 2456 y(.)g(.)h(.)870 2560 y(C:)f(Argument)f(dir2)870 2664 y(C:)h(Directory)e(dir2)870 2768 y(C:)i(/home/foo/repos/mod2)870 2871 y(.)g(.)h(.)870 2975 y(C:)f(Argument)f(dir3)870 3079 y(C:)h(Directory)e(dir3/subdir3) 870 3183 y(C:)i(/home/foo/repos/mod3)870 3286 y(.)g(.)h(.)870 3390 y(C:)f(update)630 3524 y Fh(While)26 b(directories)h Ff(dir1)g Fh(and)g Ff(dir2)f Fh(will)g(b)s(e)h(handled)e(in)i(similar)e (fashion)h(to)j(the)f(other)630 3634 y(examples)37 b(giv)m(en)g(ab)s(o) m(v)m(e,)k Ff(dir3)36 b Fh(is)g(sligh)m(tly)g(di\013eren)m(t)h(from)g (the)g(serv)m(er's)h(standp)s(oin)m(t.)630 3744 y(Notice)33 b(that)g(mo)s(dule)d Ff(mod3)h Fh(is)g(actually)h(c)m(hec)m(k)m(ed)i (out)e(in)m(to)g Ff(dir3/subdir3)p Fh(,)e(meaning)630 3853 y(that)h(directory)f Ff(dir3)g Fh(is)f(either)h(empt)m(y)h(or)g (do)s(es)f(not)h(con)m(tain)g(data)g(c)m(hec)m(k)m(ed)i(out)d(from)630 3963 y(this)f(rep)s(ository)-8 b(.)630 4097 y(The)28 b(ab)s(o)m(v)m(e)j(example)d(will)e(w)m(ork)j(correctly)h(in)d Fd(cvs)h Fh(1.10.1)j(and)e(later.)40 b(The)28 b(serv)m(er)i(will)630 4207 y(descend)k(the)g(tree)h(starting)g(from)e(all)h(directories)f (men)m(tioned)h(in)f Ff(Argument)f Fh(requests)630 4316 y(and)e(up)s(date)f(those)i(directories)f(sp)s(eci\014cally)e(men)m (tioned)i(in)f Ff(Directory)f Fh(requests.)630 4450 y(Previous)f(v)m (ersions)h(of)h Fd(cvs)e Fh(\(1.10)k(and)d(earlier\))g(do)g(not)h(b)s (eha)m(v)m(e)g(the)g(same)g(w)m(a)m(y)-8 b(.)41 b(While)630 4560 y(the)25 b(descen)m(t)h(of)f(the)g(tree)h(b)s(egins)d(at)i(all)f (directories)g(men)m(tioned)h(in)e Ff(Argument)g Fh(requests,)630 4669 y(descen)m(t)34 b(in)m(to)g(sub)s(directories)d(only)h(o)s(ccurs)i (if)e(a)i(directory)f(has)g(b)s(een)g(men)m(tioned)g(in)g(a)630 4779 y Ff(Directory)f Fh(request.)53 b(Therefore,)35 b(the)f(ab)s(o)m(v)m(e)i(example)e(w)m(ould)f(succeed)i(in)e(up)s (dating)630 4889 y Ff(dir1)25 b Fh(and)g Ff(dir2)p Fh(,)h(but)f(w)m (ould)f(skip)h Ff(dir3)f Fh(b)s(ecause)i(that)h(directory)e(w)m(as)h (not)g(sp)s(eci\014cally)630 4998 y(men)m(tioned)43 b(in)f(a)h Ff(Directory)e Fh(request.)79 b(A)43 b(functional)f(v)m(ersion)g(of)i (the)f(ab)s(o)m(v)m(e)h(that)630 5108 y(w)m(ould)29 b(run)g(on)h(a)h (1.10)h(or)e(earlier)g(serv)m(er)g(is)g(as)g(follo)m(ws:)870 5236 y Ff(C:)47 b(Argument)f(dir1)870 5340 y(C:)h(Directory)e(dir1)p eop %%Page: 12 12 12 11 bop 870 299 a Ff(C:)47 b(/home/foo/repos/mod1)870 403 y(.)g(.)h(.)870 506 y(C:)f(Argument)f(dir2)870 610 y(C:)h(Directory)e(dir2)870 714 y(C:)i(/home/foo/repos/mod2)870 818 y(.)g(.)h(.)870 922 y(C:)f(Argument)f(dir3)870 1025 y(C:)h(Directory)e(dir3)870 1129 y(C:)i(/home/foo/repos/.)870 1233 y(.)g(.)h(.)870 1337 y(C:)f(Directory)e(dir3/subdir3)870 1440 y(C:)i(/home/foo/repos/mod3)870 1544 y(.)g(.)h(.)870 1648 y(C:)f(update)630 1787 y Fh(Note)28 b(the)f(extra)h Ff(Directory)g(dir3)e Fh(request.)39 b(It)28 b(migh)m(t)e(b)s(e)h(b)s (etter)g(to)g(use)g Ff(Emptydir)e Fh(as)630 1897 y(the)31 b(rep)s(ository)e(for)h(the)h Ff(dir3)e Fh(directory)-8 b(,)30 b(but)g(the)h(ab)s(o)m(v)m(e)g(will)d(certainly)h(w)m(ork.)630 2036 y(One)55 b(more)h(p)s(eculiarit)m(y)e(of)i(the)g(1.10)h(and)e (earlier)g(proto)s(col)h(is)e(the)i(ordering)f(of)630 2146 y Ff(Directory)23 b Fh(argumen)m(ts.)40 b(In)25 b(order)h(for)f(a)h(sub)s(directory)e(to)j(b)s(e)e(registered)h (correctly)g(for)630 2255 y(descen)m(t)32 b(b)m(y)g(the)f(recursion)f (pro)s(cessor,)h(its)g(paren)m(t)h(m)m(ust)f(b)s(e)g(sen)m(t)h (\014rst.)43 b(F)-8 b(or)32 b(example,)630 2365 y(the)f(follo)m(wing)d (w)m(ould)i(not)g(w)m(ork)h(to)g(up)s(date)e Ff(dir3/subdir3)p Fh(:)870 2498 y Ff(.)47 b(.)h(.)870 2602 y(C:)f(Argument)f(dir3)870 2706 y(C:)h(Directory)e(dir3/subdir3)870 2810 y(C:)i (/home/foo/repos/mod3)870 2913 y(.)g(.)h(.)870 3017 y(C:)f(Directory)e (dir3)870 3121 y(C:)i(/home/foo/repos/.)870 3225 y(.)g(.)h(.)870 3329 y(C:)f(update)630 3468 y Fh(The)30 b(implemen)m(tation)f(of)i(the) f(serv)m(er)h(in)e(1.10)j(and)e(earlier)f(writes)h(the)g (administration)630 3577 y(\014les)35 b(for)i(a)g(giv)m(en)f(directory) g(at)i(the)e(time)h(of)f(the)h Ff(Directory)d Fh(request.)59 b(It)37 b(also)g(tries)630 3687 y(to)c(register)e(the)h(directory)f (with)g(its)g(paren)m(t)h(to)h(mark)e(it)h(for)f(recursion.)44 b(In)31 b(the)h(ab)s(o)m(v)m(e)630 3797 y(example,)f(at)g(the)g(time)f Ff(dir3/subdir3)e Fh(is)h(created,)j(the)f(ph)m(ysical)f(directory)g (for)g Ff(dir3)630 3906 y Fh(will)c(b)s(e)i(created)h(on)g(disk,)e(but) h(the)h(administration)d(\014les)h(will)f(not)j(ha)m(v)m(e)h(b)s(een)e (created.)630 4016 y(Therefore,)43 b(when)c(the)h(serv)m(er)h(tries)e (to)i(register)f Ff(dir3/subdir3)d Fh(for)j(recursion,)i(the)630 4125 y(op)s(eration)32 b(will)d(silen)m(tly)i(fail)g(b)s(ecause)h(the)h (administration)d(\014les)h(do)h(not)h(y)m(et)g(exist)f(for)630 4235 y Ff(dir3)p Fh(.)150 4404 y Ff(Max-dotdot)c Fg(lev)m(el)33 b Ff(\\n)630 4513 y Fh(Resp)s(onse)27 b(exp)s(ected:)39 b(no.)h(T)-8 b(ell)26 b(the)i(serv)m(er)g(that)g Fg(lev)m(el)i Fh(lev)m(els)d(of)h(directories)e(ab)s(o)m(v)m(e)j(the)630 4623 y(directory)23 b(whic)m(h)f Ff(Directory)e Fh(requests)k(are)f (relativ)m(e)h(to)g(will)c(b)s(e)j(needed.)38 b(F)-8 b(or)24 b(example,)630 4733 y(if)36 b(the)h(clien)m(t)g(is)f(planning)f (to)j(use)e(a)i Ff(Directory)c Fh(request)k(for)e(`)p Ff(../../foo)p Fh(',)h(it)g(m)m(ust)630 4842 y(send)27 b(a)h Ff(Max-dotdot)d Fh(request)j(with)e(a)i Fg(lev)m(el)j Fh(of)d(at)h(least)f(2.)40 b Ff(Max-dotdot)25 b Fh(m)m(ust)i(b)s(e)g (sen)m(t)630 4952 y(b)s(efore)j(the)h(\014rst)e Ff(Directory)f Fh(request.)150 5121 y Ff(Static-directory)e(\\n)630 5230 y Fh(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(the)g(directory)f(most)h(recen)m (tly)g(sp)s(eci\014ed)630 5340 y(with)35 b Ff(Directory)e Fh(should)h(not)i(ha)m(v)m(e)h(additional)d(\014les)g(c)m(hec)m(k)m(ed) k(out)e(unless)e(explicitly)p eop %%Page: 13 13 13 12 bop 630 299 a Fh(requested.)69 b(The)39 b(clien)m(t)h(sends)f (this)f(if)h(the)h Ff(Entries.Static)c Fh(\015ag)k(is)f(set,)k(whic)m (h)c(is)630 408 y(con)m(trolled)i(b)m(y)h(the)f Ff (Set-static-directory)36 b Fh(and)41 b Ff(Clear-static-directory)36 b Fh(re-)630 518 y(sp)s(onses.)150 675 y Ff(Sticky)29 b Fg(tagsp)s(ec)36 b Ff(\\n)630 785 y Fh(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(the) g(directory)f(most)h(recen)m(tly)g(sp)s(eci\014ed)630 895 y(with)k Ff(Directory)f Fh(has)i(a)h(stic)m(ky)g(tag)h(or)e(date)h Fg(tagsp)s(ec)p Fh(.)41 b(The)26 b(\014rst)f(c)m(haracter)j(of)f Fg(tagsp)s(ec)630 1004 y Fh(is)44 b(`)p Ff(T)p Fh(')h(for)g(a)g(tag,)50 b(`)p Ff(D)p Fh(')c(for)e(a)i(date,)j(or)c(some)h(other)f(c)m(haracter) h(supplied)c(b)m(y)j(a)g(Set-)630 1114 y(stic)m(ky)25 b(resp)s(onse)f(from)h(a)h(previous)d(request)i(to)h(the)f(serv)m(er.) 40 b(The)24 b(remainder)g(of)h Fg(tagsp)s(ec)630 1223 y Fh(con)m(tains)31 b(the)f(actual)h(tag)g(or)g(date,)g(again)f(as)h (supplied)c(b)m(y)j(Set-stic)m(ky)-8 b(.)630 1357 y(The)24 b(serv)m(er)g(should)f(remem)m(b)s(er)h Ff(Static-directory)c Fh(and)j Ff(Sticky)g Fh(requests)h(for)g(a)h(par-)630 1466 y(ticular)19 b(directory;)24 b(the)d(clien)m(t)f(need)h(not)g (resend)f(them)g(eac)m(h)i(time)e(it)h(sends)e(a)i Ff(Directory)630 1576 y Fh(request)34 b(for)g(a)g(giv)m(en)h(directory)-8 b(.)51 b(Ho)m(w)m(ev)m(er,)38 b(the)c(serv)m(er)g(is)g(not)g(obliged)f (to)i(remem)m(b)s(er)630 1686 y(them)30 b(b)s(ey)m(ond)g(the)h(con)m (text)h(of)e(a)h(single)e(command.)150 1843 y Ff(Checkin-prog)e Fg(program)j Ff(\\n)630 1953 y Fh(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(the)g(directory)f (most)h(recen)m(tly)g(sp)s(eci\014ed)630 2062 y(with)31 b Ff(Directory)f Fh(has)i(a)h(c)m(hec)m(kin)g(program)f Fg(program)p Fh(.)47 b(Suc)m(h)31 b(a)i(program)f(w)m(ould)g(ha)m(v)m (e)630 2172 y(b)s(een)e(previously)e(set)j(with)e(the)h Ff(Set-checkin-prog)c Fh(resp)s(onse.)150 2329 y Ff(Update-prog)h Fg(program)j Ff(\\n)630 2439 y Fh(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(the)g(directory)f (most)h(recen)m(tly)g(sp)s(eci\014ed)630 2548 y(with)28 b Ff(Directory)f Fh(has)j(an)f(up)s(date)g(program)g Fg(program)p Fh(.)40 b(Suc)m(h)29 b(a)h(program)f(w)m(ould)g(ha)m(v)m (e)630 2658 y(b)s(een)h(previously)e(set)j(with)e(the)h Ff(Set-update-prog)d Fh(resp)s(onse.)150 2815 y Ff(Entry)i Fg(en)m(try-line)34 b Ff(\\n)630 2925 y Fh(Resp)s(onse)j(exp)s(ected:) 56 b(no.)63 b(T)-8 b(ell)36 b(the)i(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)630 3035 y(mac)m(hine.)83 b(The)44 b(name)h(in)e Fg(en)m(try-line)49 b Fh(is)43 b(a)i(name)g(relativ)m(e)f(to)i(the)f(directory)f(most)630 3144 y(recen)m(tly)35 b(sp)s(eci\014ed)e(with)h Ff(Directory)p Fh(.)52 b(If)34 b(the)h(user)g(is)f(op)s(erating)g(on)h(only)f(some)h (\014les)630 3254 y(in)26 b(a)i(directory)-8 b(,)28 b Ff(Entry)f Fh(requests)g(for)g(only)g(those)h(\014les)f(need)g(b)s(e)g (included.)37 b(If)27 b(an)g Ff(Entry)630 3363 y Fh(request)37 b(is)g(sen)m(t)g(without)g Ff(Modified)p Fh(,)g Ff(Is-modified)p Fh(,)f(or)h Ff(Unchanged)p Fh(,)g(it)g(means)g(the)630 3473 y(\014le)32 b(is)f(lost)i(\(do)s(es)f(not)h(exist)g(in)e(the)i(w)m (orking)f(directory\).)47 b(If)32 b(b)s(oth)g Ff(Entry)f Fh(and)h(one)h(of)630 3582 y Ff(Modified)p Fh(,)22 b Ff(Is-modified)p Fh(,)f(or)h Ff(Unchanged)e Fh(are)i(sen)m(t)h(for)f (the)g(same)h(\014le,)g Ff(Entry)e Fh(m)m(ust)h(b)s(e)630 3692 y(sen)m(t)j(\014rst.)38 b(F)-8 b(or)25 b(a)f(giv)m(en)h(\014le,)f (one)h(can)f(send)g Ff(Modified)p Fh(,)f Ff(Is-modified)p Fh(,)g(or)h Ff(Unchanged)p Fh(,)630 3802 y(but)30 b(not)g(more)h(than)f (one)h(of)f(these)h(three.)150 3959 y Ff(Kopt)e Fg(option)h Ff(\\n)630 4069 y Fh(This)c(indicates)g(to)i(the)g(serv)m(er)g(whic)m (h)e(k)m(eyw)m(ord)i(expansion)e(options)h(to)h(use)f(for)g(the)h (\014le)630 4178 y(sp)s(eci\014ed)h(b)m(y)i(the)h(next)f Ff(Modified)e Fh(or)i Ff(Is-modified)d Fh(request)j(\(for)g(example)g (`)p Ff(-kb)p Fh(')f(for)630 4288 y(a)i(binary)d(\014le\).)43 b(This)30 b(is)g(similar)f(to)j Ff(Entry)p Fh(,)e(but)h(is)f(used)h (for)g(a)h(\014le)e(for)h(whic)m(h)f(there)i(is)630 4397 y(no)h(en)m(tries)f(line.)46 b(T)m(ypically)31 b(this)h(will)e(b)s(e)i (a)h(\014le)f(b)s(eing)f(added)h(via)g(an)h Ff(add)f Fh(or)h Ff(import)630 4507 y Fh(request.)41 b(The)30 b(clien)m(t)g(ma)m(y)h(not)f(send)g(b)s(oth)f Ff(Kopt)h Fh(and)f Ff(Entry)g Fh(for)h(the)h(same)g(\014le.)150 4664 y Ff(Checkin-time)c Fg(time)35 b Ff(\\n)630 4774 y Fh(F)-8 b(or)40 b(the)g(\014le)e(sp)s(eci\014ed)g(b)m(y)h(the)h(next) f Ff(Modified)e Fh(request,)42 b(use)d Fg(time)45 b Fh(as)39 b(the)h(time)f(of)630 4884 y(the)g(c)m(hec)m(kin.)68 b(The)38 b Fg(time)44 b Fh(is)38 b(in)g(the)h(format)h(sp)s(eci\014ed)d (b)m(y)i(RF)m(C822)i(as)e(mo)s(di\014ed)e(b)m(y)630 4993 y(RF)m(C1123.)42 b(The)29 b(clien)m(t)f(ma)m(y)i(sp)s(ecify)d(an)m(y)i (timezone)h(it)e(c)m(ho)s(oses;)i(serv)m(ers)f(will)e(w)m(an)m(t)i(to) 630 5103 y(con)m(v)m(ert)k(that)f(to)g(their)e(o)m(wn)h(timezone)h(as)f (appropriate.)42 b(An)31 b(example)g(of)g(this)g(format)630 5212 y(is:)870 5340 y Ff(26)47 b(May)g(1997)g(13:01:40)e(-0400)p eop %%Page: 14 14 14 13 bop 630 299 a Fh(There)27 b(is)g(no)h(requiremen)m(t)f(that)i (the)f(clien)m(t)g(and)f(serv)m(er)h(clo)s(c)m(ks)g(b)s(e)g(sync)m (hronized.)38 b(The)630 408 y(clien)m(t)26 b(just)g(sends)f(its)h (recommendation)g(for)g(a)h(timestamp)f(\(based)h(on)f(\014le)f (timestamps)630 518 y(or)36 b(whatev)m(er\),)k(and)c(the)g(serv)m(er)h (should)e(just)h(b)s(eliev)m(e)f(it)h(\(this)g(means)g(that)i(the)e (time)630 628 y(migh)m(t)30 b(b)s(e)g(in)f(the)h(future,)g(for)g (example\).)630 759 y(Note)i(that)g(this)e(is)g(not)i(a)f(general-purp) s(ose)f(w)m(a)m(y)i(to)g(tell)e(the)i(serv)m(er)f(ab)s(out)g(the)g (times-)630 869 y(tamp)f(of)g(a)h(\014le;)e(that)i(w)m(ould)e(b)s(e)g (a)i(separate)g(request)f(\(if)f(there)h(are)h(serv)m(ers)f(whic)m(h)f (can)630 978 y(main)m(tain)g(timestamp)h(and)g(time)g(of)h(c)m(hec)m (kin)f(separately\).)630 1110 y(This)24 b(request)j(should)d(a\013ect)j (the)g Ff(import)d Fh(request,)k(and)d(ma)m(y)i(optionally)d(a\013ect)k (the)f Ff(ci)630 1219 y Fh(request)j(or)h(other)f(relev)-5 b(an)m(t)31 b(requests)f(if)g(an)m(y)-8 b(.)150 1373 y Ff(Modified)28 b Fg(\014lename)35 b Ff(\\n)630 1482 y Fh(Resp)s(onse)j(exp)s(ected:)57 b(no.)65 b(Additional)37 b(data:)57 b(mo)s(de,)41 b Ff(\\)p Fh(n,)f(\014le)d(transmission.)63 b(Send)630 1592 y(the)30 b(serv)m(er)g(a)g(cop)m(y)h(of)f(one)g(lo)s (cally)e(mo)s(di\014ed)g(\014le.)39 b Fg(\014lename)34 b Fh(is)29 b(a)h(\014le)f(within)f(the)i(most)630 1702 y(recen)m(t)39 b(directory)e(sen)m(t)i(with)d Ff(Directory)p Fh(;)k(it)d(m)m(ust)h(not)g(con)m(tain)h(`)p Ff(/)p Fh('.)63 b(If)38 b(the)g(user)f(is)630 1811 y(op)s(erating)27 b(on)h(only)f(some)h(\014les)f(in)g(a)h(directory)-8 b(,)29 b(only)e(those)h(\014les)f(need)h(to)g(b)s(e)f(included.)630 1921 y(This)i(can)h(also)h(b)s(e)e(sen)m(t)i(without)f Ff(Entry)p Fh(,)f(if)g(there)i(is)e(no)h(en)m(try)h(for)f(the)h (\014le.)150 2074 y Ff(Is-modified)c Fg(\014lename)35 b Ff(\\n)630 2184 y Fh(Resp)s(onse)27 b(exp)s(ected:)40 b(no.)g(Additional)26 b(data:)40 b(none.)f(Lik)m(e)28 b Ff(Modified)p Fh(,)f(but)g(used)g(if)g(the)630 2293 y(serv)m(er)k(only)e(needs)h(to)h(kno)m(w)g(whether)e(the)i(\014le)e (is)h(mo)s(di\014ed,)e(not)j(the)f(con)m(ten)m(ts.)630 2425 y(The)47 b(commands)g(whic)m(h)g(can)g(tak)m(e)i Ff(Is-modified)c Fh(instead)i(of)g Ff(Modified)f Fh(with)g(no)630 2534 y(kno)m(wn)41 b(c)m(hange)h(in)e(b)s(eha)m(vior)h(are:)63 b Ff(admin)p Fh(,)43 b Ff(diff)d Fh(\(if)h(and)g(only)f(if)h(t)m(w)m(o) h(`)p Ff(-r)p Fh(')g(or)f(`)p Ff(-D)p Fh(')630 2644 y(options)61 b(are)g(sp)s(eci\014ed\),)68 b Ff(watch-on)p Fh(,)f Ff(watch-off)p Fh(,)g Ff(watch-add)p Fh(,)g Ff(watch-remove)p Fh(,)630 2754 y Ff(watchers)p Fh(,)28 b Ff(editors)p Fh(,)h Ff(log)p Fh(,)h(and)g Ff(annotate)p Fh(.)630 2885 y(F)-8 b(or)31 b(the)f Ff(status)f Fh(command,)h(one)g(can)h(send)e Ff(Is-modified)e Fh(but)j(if)f(the)h(clien)m(t)g(is)f(using)630 2995 y(imp)s(erfect)i(mec)m(hanisms)g(suc)m(h)g(as)h(timestamps)g(to)g (determine)f(whether)g(to)i(consider)e(a)630 3104 y(\014le)22 b(mo)s(di\014ed,)g(then)g(the)h(b)s(eha)m(vior)f(will)e(b)s(e)i (di\013eren)m(t.)38 b(That)22 b(is,)i(if)d(one)i(sends)f Ff(Modified)p Fh(,)630 3214 y(then)32 b(the)h(serv)m(er)g(will)c (actually)j(compare)h(the)g(con)m(ten)m(ts)h(of)f(the)g(\014le)e(sen)m (t)i(and)f(the)h(one)630 3324 y(it)e(deriv)m(es)g(from)h(to)g (determine)f(whether)g(the)h(\014le)f(is)g(gen)m(uinely)f(mo)s (di\014ed.)43 b(But)32 b(if)f(one)630 3433 y(sends)38 b Ff(Is-modified)p Fh(,)f(then)i(the)f(serv)m(er)h(tak)m(es)h(the)f (clien)m(t's)f(w)m(ord)g(for)g(it.)65 b(A)39 b(similar)630 3543 y(situation)29 b(exists)h(for)g Ff(tag)p Fh(,)g(if)g(the)g(`)p Ff(-c)p Fh(')g(option)g(is)g(sp)s(eci\014ed.)630 3674 y(Commands)f(for)h(whic)m(h)f Ff(Modified)g Fh(is)g(necessary)i(are)g Ff(co)p Fh(,)f Ff(ci)p Fh(,)g Ff(update)p Fh(,)f(and)g Ff(import)p Fh(.)630 3806 y(Commands)h(whic)m(h)g(do)h(not)g(need)g(to) h(inform)d(the)j(serv)m(er)f(ab)s(out)g(a)g(w)m(orking)g(directory)-8 b(,)630 3915 y(and)26 b(th)m(us)g(should)e(not)j(b)s(e)e(sending)g (either)h Ff(Modified)e Fh(or)i Ff(Is-modified)p Fh(:)36 b Ff(rdiff)p Fh(,)26 b Ff(rtag)p Fh(,)630 4025 y Ff(history)p Fh(,)j Ff(init)p Fh(,)g(and)h Ff(release)p Fh(.)630 4156 y(Commands)g(for)h(whic)m(h)f(further)g(in)m(v)m(estigation)i(is)e(w)m (arran)m(ted)i(are:)43 b Ff(remove)p Fh(,)30 b Ff(add)p Fh(,)h(and)630 4266 y Ff(export)p Fh(.)48 b(P)m(ending)33 b(suc)m(h)g(in)m(v)m(estigation,)i(the)e(more)h(conserv)-5 b(ativ)m(e)35 b(course)e(of)h(action)g(is)630 4376 y(to)d(stic)m(k)g (to)g Ff(Modified)p Fh(.)150 4529 y Ff(Unchanged)d Fg(\014lename)35 b Ff(\\n)630 4639 y Fh(Resp)s(onse)30 b(exp)s(ected:)41 b(no.)f(T)-8 b(ell)30 b(the)g(serv)m(er)h(that)g Fg(\014lename)k Fh(has)30 b(not)g(b)s(een)g(mo)s(di\014ed)e(in)630 4748 y(the)23 b(c)m(hec)m(k)m(ed)h(out)e(directory)-8 b(.)38 b(The)22 b Fg(\014lename)27 b Fh(is)21 b(a)i(\014le)e(within)f(the)i (most)h(recen)m(t)g(directory)630 4858 y(sen)m(t)31 b(with)e Ff(Directory)p Fh(;)f(it)i(m)m(ust)g(not)h(con)m(tain)g(`)p Ff(/)p Fh('.)150 5011 y Ff(UseUnchanged)c(\\n)630 5121 y Fh(Resp)s(onse)g(exp)s(ected:)40 b(no.)g(T)-8 b(o)28 b(sp)s(ecify)f(the)h(v)m(ersion)f(of)i(the)f(proto)s(col)g(describ)s (ed)d(in)i(this)630 5230 y(do)s(cumen)m(t,)e(serv)m(ers)g(m)m(ust)e (supp)s(ort)g(this)g(request)h(\(although)g(it)f(need)h(not)g(do)g(an)m (ything\))630 5340 y(and)30 b(clien)m(ts)g(m)m(ust)g(issue)f(it.)p eop %%Page: 15 15 15 14 bop 150 299 a Ff(Notify)29 b Fg(\014lename)34 b Ff(\\n)630 408 y Fh(Resp)s(onse)e(exp)s(ected:)44 b(no.)j(T)-8 b(ell)31 b(the)h(serv)m(er)h(that)f(an)g Ff(edit)f Fh(or)i Ff(unedit)d Fh(command)i(has)630 518 y(tak)m(en)24 b(place.)38 b(The)22 b(serv)m(er)h(needs)f(to)i(send)e(a)h Ff(Notified)d Fh(resp)s(onse,)k(but)e(suc)m(h)g(resp)s(onse)g(is)630 628 y(deferred)29 b(un)m(til)f(the)i(next)g(time)g(that)g(the)g(serv)m (er)h(is)e(sending)f(resp)s(onses.)39 b(The)30 b Fg(\014lename)630 737 y Fh(is)41 b(a)h(\014le)g(within)d(the)j(most)h(recen)m(t)g (directory)e(sen)m(t)i(with)e Ff(Directory)p Fh(;)k(it)d(m)m(ust)g(not) 630 847 y(con)m(tain)31 b(`)p Ff(/)p Fh('.)41 b(Additional)28 b(data:)870 979 y Fg(noti\014cation-t)m(yp)s(e)53 b Ff(\\t)47 b Fg(time)53 b Ff(\\t)47 b Fg(clien)m(thost)i Ff(\\t)870 1083 y Fg(w)m(orking-dir)j Ff(\\t)47 b Fg(w)m(atc)m(hes)54 b Ff(\\n)630 1222 y Fh(where)33 b Fg(noti\014cation-t)m(yp)s(e)38 b Fh(is)32 b(`)p Ff(E)p Fh(')h(for)g(edit,)g(`)p Ff(U)p Fh(')g(for)g(unedit,)g(unde\014ned)d(b)s(eha)m(vior)j(if)f(`)p Ff(C)p Fh(',)630 1331 y(and)38 b(all)f(other)h(letters)h(should)d(b)s (e)i(silen)m(tly)f(ignored)g(for)h(future)f(expansion.)64 b Fg(time)43 b Fh(is)630 1441 y(the)36 b(time)g(at)h(whic)m(h)d(the)j (edit)e(or)h(unedit)f(to)s(ok)h(place,)i(in)d(a)h(user-readable)f (format)i(of)630 1550 y(the)31 b(clien)m(t's)g(c)m(hoice)h(\(the)f (serv)m(er)g(should)e(treat)j(the)f(time)g(as)g(an)g(opaque)g(string)f (rather)630 1660 y(than)35 b(in)m(terpreting)f(it\).)56 b Fg(clien)m(thost)37 b Fh(is)d(the)i(name)f(of)h(the)g(host)f(on)g (whic)m(h)g(the)g(edit)g(or)630 1770 y(unedit)g(to)s(ok)j(place,)g(and) e Fg(w)m(orking-dir)41 b Fh(is)36 b(the)h(pathname)g(of)g(the)f(w)m (orking)g(directory)630 1879 y(where)c(the)g(edit)g(or)g(unedit)f(to)s (ok)i(place.)47 b Fg(w)m(atc)m(hes)37 b Fh(are)c(the)g(temp)s(orary)f (w)m(atc)m(hes,)i(zero)630 1989 y(or)h(more)g(of)h(the)f(follo)m(wing)f (c)m(haracters)i(in)e(the)h(follo)m(wing)f(order:)50 b(`)p Ff(E)p Fh(')35 b(for)g(edit,)h(`)p Ff(U)p Fh(')f(for)630 2098 y(unedit,)25 b(`)p Ff(C)p Fh(')h(for)g(commit,)h(and)e(all)g (other)h(letters)g(should)e(b)s(e)h(silen)m(tly)f(ignored)h(for)h (future)630 2208 y(expansion.)47 b(If)33 b Fg(noti\014cation-t)m(yp)s (e)k Fh(is)32 b(`)p Ff(E)p Fh(')h(the)h(temp)s(orary)e(w)m(atc)m(hes)i (are)g(set;)h(if)c(it)i(is)f(`)p Ff(U)p Fh(')630 2318 y(they)j(are)h(cleared.)55 b(If)35 b Fg(w)m(atc)m(hes)40 b Fh(is)34 b(follo)m(w)m(ed)h(b)m(y)g Ff(\\)p Fh(t)h(then)e(the)i Ff(\\)p Fh(t)f(and)g(the)g(rest)g(of)h(the)630 2427 y(line)29 b(should)f(b)s(e)i(ignored,)g(for)g(future)f(expansion.)630 2566 y(The)e Fg(time)p Fh(,)h Fg(clien)m(thost)p Fh(,)g(and)f Fg(w)m(orking-dir)32 b Fh(\014elds)26 b(ma)m(y)i(not)g(con)m(tain)g (the)g(c)m(haracters)h(`)p Ff(+)p Fh(',)630 2675 y(`)p Ff(,)p Fh(',)i(`)p Ff(>)p Fh(',)g(`)p Ff(;)p Fh(',)f(or)h(`)p Ff(=)p Fh('.)630 2814 y(Note)i(that)f(a)f(clien)m(t)g(ma)m(y)h(b)s(e)f (capable)g(of)h(p)s(erforming)d(an)i Ff(edit)f Fh(or)i Ff(unedit)d Fh(op)s(eration)630 2923 y(without)35 b(connecting)i(to)g (the)f(serv)m(er)h(at)g(that)g(time,)h(and)e(instead)f(connecting)i(to) g(the)630 3033 y(serv)m(er)27 b(when)f(it)g(is)g(con)m(v)m(enien)m(t)i (\(for)e(example,)i(when)e(a)h(laptop)f(is)g(on)g(the)h(net)g(again\))g (to)630 3142 y(send)j(the)h Ff(Notify)e Fh(requests.)41 b(Ev)m(en)31 b(if)e(a)i(clien)m(t)f(is)g(capable)h(of)f(deferring)f (noti\014cations,)630 3252 y(it)40 b(should)e(attempt)j(to)g(send)f (them)g(immediately)f(\(one)h(can)h(send)e Ff(Notify)g Fh(requests)630 3362 y(together)32 b(with)e(a)h Ff(noop)e Fh(request,)i(for)g(example\),)g(unless)e(p)s(erhaps)g(if)g(it)i(can)g (kno)m(w)f(that)630 3471 y(a)h(connection)f(w)m(ould)f(b)s(e)h(imp)s (ossible.)150 3638 y Ff(Questionable)d Fg(\014lename)35 b Ff(\\n)630 3748 y Fh(Resp)s(onse)c(exp)s(ected:)43 b(no.)g(Additional)29 b(data:)43 b(no.)g(T)-8 b(ell)31 b(the)g(serv)m(er)h(to)g(c)m(hec)m(k)h(whether)630 3858 y Fg(\014lename)41 b Fh(should)34 b(b)s(e)i(ignored,)h(and)f(if)f(not,) k(next)d(time)g(the)h(serv)m(er)f(sends)g(resp)s(onses,)630 3967 y(send)24 b(\(in)h(a)g Ff(M)g Fh(resp)s(onse\))g(`)p Ff(?)p Fh(')g(follo)m(w)m(ed)g(b)m(y)g(the)g(directory)g(and)f (\014lename.)39 b Fg(\014lename)29 b Fh(m)m(ust)630 4077 y(not)i(con)m(tain)f(`)p Ff(/)p Fh(';)h(it)f(needs)g(to)h(b)s(e)f(a)h (\014le)e(in)g(the)i(directory)e(named)h(b)m(y)h(the)f(most)h(recen)m (t)630 4186 y Ff(Directory)d Fh(request.)150 4354 y Ff(Case)h(\\n)163 b Fh(Resp)s(onse)37 b(exp)s(ected:)55 b(no.)63 b(T)-8 b(ell)36 b(the)i(serv)m(er)g(that)g(\014lenames)e(should)g(b)s(e)h (matc)m(hed)h(in)630 4463 y(a)j(case-insensitiv)m(e)g(fashion.)71 b(Note)43 b(that)e(this)f(is)g(not)i(the)f(primary)e(mec)m(hanism)h (for)630 4573 y(ac)m(hieving)28 b(case-insensitivit)m(y;)g(for)h(the)g (most)g(part)f(the)h(clien)m(t)f(k)m(eeps)h(trac)m(k)h(of)f(the)g(case) 630 4682 y(whic)m(h)20 b(the)i(serv)m(er)g(w)m(an)m(ts)h(to)f(use)f (and)g(tak)m(es)i(care)g(to)f(alw)m(a)m(ys)g(use)g(that)g(case)h (regardless)e(of)630 4792 y(what)i(the)g(user)f(sp)s(eci\014es.)37 b(F)-8 b(or)24 b(example)e(the)h(\014lenames)f(giv)m(en)h(in)e Ff(Entry)h Fh(and)g Ff(Modified)630 4902 y Fh(requests)36 b(for)g(the)h(same)g(\014le)e(m)m(ust)i(matc)m(h)g(in)e(case)i (regardless)f(of)h(whether)f(the)g Ff(Case)630 5011 y Fh(request)28 b(is)e(sen)m(t.)40 b(The)27 b(latter)h(mec)m(hanism)f(is) f(more)i(general)f(\(it)h(could)e(also)i(b)s(e)e(used)h(for)630 5121 y(8.3)e(\014lenames,)g(VMS)e(\014lenames)g(with)g(more)h(than)g (one)g(`)p Ff(.)p Fh(',)i(and)d(an)m(y)h(other)g(situation)f(in)630 5230 y(whic)m(h)e(there)h(is)f(a)h(predictable)f(mapping)f(b)s(et)m(w)m (een)j(\014lenames)e(in)g(the)h(w)m(orking)f(directory)630 5340 y(and)32 b(\014lenames)f(in)g(the)i(proto)s(col\),)g(but)f(there)g (are)h(some)g(situations)e(it)g(cannot)i(handle)p eop %%Page: 16 16 16 15 bop 630 299 a Fh(\(ignore)26 b(patterns,)i(or)e(situations)g (where)g(the)g(user)g(sp)s(eci\014es)f(a)i(\014lename)f(and)g(the)g (clien)m(t)630 408 y(do)s(es)k(not)h(kno)m(w)f(ab)s(out)g(that)h (\014le\).)150 559 y Ff(Argument)d Fg(text)33 b Ff(\\n)630 669 y Fh(Resp)s(onse)43 b(exp)s(ected:)69 b(no.)81 b(Sa)m(v)m(e)45 b(argumen)m(t)f(for)g(use)g(in)e(a)j(subsequen)m(t)e(command.)630 778 y(Argumen)m(ts)c(accum)m(ulate)i(un)m(til)c(an)i(argumen)m(t-using) g(command)g(is)f(giv)m(en,)k(at)e(whic)m(h)630 888 y(p)s(oin)m(t)29 b(they)i(are)g(forgotten.)150 1039 y Ff(Argumentx)d Fg(text)33 b Ff(\\n)630 1148 y Fh(Resp)s(onse)g(exp)s(ected:)48 b(no.)i(App)s(end)32 b Ff(\\)p Fh(n)h(follo)m(w)m(ed)g(b)m(y)h(text)h (to)f(the)g(curren)m(t)f(argumen)m(t)630 1258 y(b)s(eing)c(sa)m(v)m (ed.)150 1408 y Ff(Global_option)e Fg(option)j Ff(\\n)630 1518 y Fh(Resp)s(onse)41 b(exp)s(ected:)64 b(no.)75 b(T)-8 b(ransmit)41 b(one)h(of)g(the)g(global)f(options)g(`)p Ff(-q)p Fh(',)k(`)p Ff(-Q)p Fh(',)g(`)p Ff(-l)p Fh(',)630 1628 y(`)p Ff(-t)p Fh(',)36 b(`)p Ff(-r)p Fh(',)f(or)g(`)p Ff(-n)p Fh('.)53 b Fg(option)34 b Fh(m)m(ust)g(b)s(e)g(one)h(of)g (those)g(strings,)f(no)h(v)-5 b(ariations)33 b(\(suc)m(h)i(as)630 1737 y(com)m(bining)e(of)h(options\))f(are)i(allo)m(w)m(ed.)51 b(F)-8 b(or)35 b(graceful)f(handling)d(of)k Ff(valid-requests)p Fh(,)630 1847 y(it)28 b(is)f(probably)f(b)s(etter)i(to)h(mak)m(e)g(new) e(global)g(options)h(separate)h(requests,)f(rather)g(than)630 1956 y(trying)h(to)j(add)d(them)i(to)g(this)e(request.)150 2107 y Ff(Gzip-stream)e Fg(lev)m(el)34 b Ff(\\n)630 2217 y Fh(Resp)s(onse)25 b(exp)s(ected:)39 b(no.)g(Use)27 b(zlib)d(\(RF)m(C)i(1950/1951\))31 b(compression)25 b(to)h(compress)g (all)630 2326 y(further)j(comm)m(unication)h(b)s(et)m(w)m(een)i(the)e (clien)m(t)h(and)e(the)i(serv)m(er.)42 b(After)31 b(this)e(request)i (is)630 2436 y(sen)m(t,)g(all)d(further)g(comm)m(unication)h(m)m(ust)h (b)s(e)f(compressed.)40 b(All)28 b(further)g(data)j(receiv)m(ed)630 2545 y(from)37 b(the)g(serv)m(er)g(will)e(also)i(b)s(e)f(compressed.)61 b(The)36 b Fg(lev)m(el)41 b Fh(argumen)m(t)c(suggests)h(to)g(the)630 2655 y(serv)m(er)i(the)g(lev)m(el)f(of)h(compression)f(that)h(it)g (should)d(apply;)44 b(it)39 b(should)f(b)s(e)h(an)h(in)m(teger)630 2765 y(b)s(et)m(w)m(een)27 b(1)g(and)f(9,)i(inclusiv)m(e,)e(where)g(a)h (higher)e(n)m(um)m(b)s(er)g(indicates)h(more)h(compression.)150 2915 y Ff(Kerberos-encrypt)f(\\n)630 3025 y Fh(Resp)s(onse)d(exp)s (ected:)38 b(no.)g(Use)24 b(Kerb)s(eros)f(encryption)g(to)h(encrypt)f (all)g(further)f(comm)m(u-)630 3134 y(nication)h(b)s(et)m(w)m(een)i (the)f(clien)m(t)f(and)h(the)g(serv)m(er.)39 b(This)22 b(will)f(only)j(w)m(ork)g(if)f(the)h(connection)630 3244 y(w)m(as)36 b(made)g(o)m(v)m(er)h(Kerb)s(eros)e(in)g(the)h(\014rst)f (place.)57 b(If)35 b(b)s(oth)h(the)g Ff(Gzip-stream)c Fh(and)k(the)630 3354 y Ff(Kerberos-encrypt)18 b Fh(requests)23 b(are)g(used,)h(the)f Ff(Kerberos-encrypt)18 b Fh(request)23 b(should)e(b)s(e)630 3463 y(used)34 b(\014rst.)53 b(This)33 b(will)f(mak)m(e)j(the)g(clien)m(t)f(and)g(serv)m(er)h(encrypt)g(the)g (compressed)f(data,)630 3573 y(as)40 b(opp)s(osed)f(to)i(compressing)e (the)h(encrypted)g(data.)70 b(Encrypted)39 b(data)i(is)e(generally)630 3682 y(incompressible.)630 3813 y(Note)25 b(that)e(this)g(request)g(do) s(es)g(not)h(fully)c(prev)m(en)m(t)k(an)g(attac)m(k)m(er)i(from)d (hijac)m(king)f(the)h(con-)630 3922 y(nection,)29 b(in)f(the)h(sense)g (that)g(it)f(do)s(es)h(not)g(prev)m(en)m(t)g(hijac)m(king)f(the)h (connection)g(b)s(et)m(w)m(een)630 4032 y(the)i(initial)c(authen)m (tication)k(and)e(the)i Ff(Kerberos-encrypt)26 b Fh(request.)150 4182 y Ff(Gssapi-encrypt)g(\\n)630 4292 y Fh(Resp)s(onse)g(exp)s (ected:)39 b(no.)g(Use)26 b(GSSAPI)g(encryption)f(to)i(encrypt)e(all)g (further)g(comm)m(u-)630 4402 y(nication)e(b)s(et)m(w)m(een)i(the)f (clien)m(t)f(and)h(the)g(serv)m(er.)39 b(This)22 b(will)f(only)j(w)m (ork)g(if)f(the)h(connection)630 4511 y(w)m(as)35 b(made)f(o)m(v)m(er)h (GSSAPI)f(in)f(the)h(\014rst)g(place.)52 b(See)34 b Ff (Kerberos-encrypt)p Fh(,)d(ab)s(o)m(v)m(e,)37 b(for)630 4621 y(the)31 b(relation)e(b)s(et)m(w)m(een)i Ff(Gssapi-encrypt)c Fh(and)i Ff(Gzip-stream)p Fh(.)630 4751 y(Note)c(that)e(this)g(request) g(do)s(es)g(not)h(fully)c(prev)m(en)m(t)k(an)g(attac)m(k)m(er)i(from)d (hijac)m(king)f(the)h(con-)630 4861 y(nection,)29 b(in)f(the)h(sense)g (that)g(it)f(do)s(es)h(not)g(prev)m(en)m(t)g(hijac)m(king)f(the)h (connection)g(b)s(et)m(w)m(een)630 4970 y(the)i(initial)c(authen)m (tication)k(and)e(the)i Ff(Gssapi-encrypt)c Fh(request.)150 5121 y Ff(Gssapi-authenticate)e(\\n)630 5230 y Fh(Resp)s(onse)38 b(exp)s(ected:)57 b(no.)65 b(Use)39 b(GSSAPI)f(authen)m(tication)g(to)i (authen)m(ticate)f(all)f(fur-)630 5340 y(ther)c(comm)m(unication)g(b)s (et)m(w)m(een)h(the)f(clien)m(t)g(and)g(the)g(serv)m(er.)53 b(This)33 b(will)e(only)j(w)m(ork)g(if)p eop %%Page: 17 17 17 16 bop 630 299 a Fh(the)38 b(connection)g(w)m(as)g(made)f(o)m(v)m (er)i(GSSAPI)e(in)g(the)g(\014rst)g(place.)63 b(Encrypted)37 b(data)h(is)630 408 y(automatically)21 b(authen)m(ticated,)j(so)d (using)f(b)s(oth)g Ff(Gssapi-authenticate)c Fh(and)k Ff(Gssapi-)630 518 y(encrypt)25 b Fh(has)i(no)f(e\013ect)j(b)s(ey)m (ond)d(that)i(of)f Ff(Gssapi-encrypt)p Fh(.)36 b(Unlik)m(e)25 b(encrypted)i(data,)630 628 y(it)j(is)f(reasonable)i(to)g(compress)f (authen)m(ticated)h(data.)630 806 y(Note)25 b(that)e(this)g(request)g (do)s(es)g(not)h(fully)c(prev)m(en)m(t)k(an)g(attac)m(k)m(er)i(from)d (hijac)m(king)f(the)h(con-)630 915 y(nection,)29 b(in)f(the)h(sense)g (that)g(it)f(do)s(es)h(not)g(prev)m(en)m(t)g(hijac)m(king)f(the)h (connection)g(b)s(et)m(w)m(een)630 1025 y(the)i(initial)c(authen)m (tication)k(and)e(the)i Ff(Gssapi-authenticate)25 b Fh(request.)150 1271 y Ff(Set)k Fg(v)-5 b(ariable)5 b Ff(=)p Fg(v)-5 b(alue)34 b Ff(\\n)630 1380 y Fh(Resp)s(onse)c(exp)s(ected:)41 b(no.)f(Set)31 b(a)g(user)e(v)-5 b(ariable)30 b Fg(v)-5 b(ariable)34 b Fh(to)d Fg(v)-5 b(alue)p Fh(.)150 1627 y Ff(expand-modules)26 b(\\n)630 1736 y Fh(Resp)s(onse)31 b(exp)s(ected:)44 b(y)m(es.)i(Expand)31 b(the)h(mo)s(dules)e(whic)m(h)h (are)h(sp)s(eci\014ed)e(in)h(the)h(argu-)630 1846 y(men)m(ts.)40 b(Returns)25 b(the)i(data)g(in)e Ff(Module-expansion)c Fh(resp)s(onses.)39 b(Note)27 b(that)g(the)g(serv)m(er)630 1955 y(can)32 b(assume)g(that)h(this)e(is)g(c)m(hec)m(k)m(out)k(or)d (exp)s(ort,)h(not)f(rtag)h(or)f(rdi\013;)g(the)g(latter)h(do)f(not)630 2065 y(access)g(the)f(w)m(orking)f(directory)g(and)g(th)m(us)g(ha)m(v)m (e)i(no)f(need)f(to)h(expand)f(mo)s(dules)f(on)i(the)630 2175 y(clien)m(t)f(side.)630 2352 y(Expand)41 b(ma)m(y)i(not)f(b)s(e)g (the)g(b)s(est)g(w)m(ord)g(for)f(what)i(this)e(request)h(do)s(es.)76 b(It)42 b(do)s(es)g(not)630 2462 y(necessarily)33 b(tell)g(y)m(ou)h (all)e(the)i(\014les)f(con)m(tained)h(in)e(a)i(mo)s(dule,)g(for)f (example.)51 b(Basically)630 2572 y(it)37 b(is)f(a)h(w)m(a)m(y)h(of)g (telling)d(y)m(ou)i(whic)m(h)f(w)m(orking)h(directories)f(the)h(serv)m (er)g(needs)g(to)h(kno)m(w)630 2681 y(ab)s(out)30 b(in)f(order)h(to)h (handle)e(a)i(c)m(hec)m(k)m(out)i(of)d(the)h(sp)s(eci\014ed)d(mo)s (dules.)630 2859 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)870 3031 y Ff(aliasmodule)45 b(-a)i(1dir)630 3209 y Fh(That)27 b(is,)h(one)g(can)f(c)m(hec)m(k)j(out)d Ff(aliasmodule)e Fh(and)i(it)g(will)e(tak)m(e)k Ff(1dir)d Fh(in)g(the)i(rep)s(ository) 630 3319 y(and)41 b(c)m(hec)m(k)j(it)d(out)h(to)h Ff(1dir)d Fh(in)h(the)h(w)m(orking)f(directory)-8 b(.)75 b(No)m(w)43 b(supp)s(ose)d(the)i(clien)m(t)630 3428 y(already)35 b(has)h(this)e(mo)s(dule)g(c)m(hec)m(k)m(ed)k(out)e(and)f(is)g (planning)e(on)j(using)e(the)i Ff(co)f Fh(request)630 3538 y(to)g(up)s(date)f(it.)53 b(Without)34 b(using)f Ff(expand-modules)p Fh(,)f(the)j(clien)m(t)f(w)m(ould)f(ha)m(v)m(e)j(t) m(w)m(o)g(bad)630 3647 y(c)m(hoices:)56 b(it)37 b(could)f(either)h (send)g(information)f(ab)s(out)h Fb(al)5 b(l)47 b Fh(w)m(orking)37 b(directories)f(under)630 3757 y(the)25 b(curren)m(t)g(directory)-8 b(,)26 b(whic)m(h)e(could)g(b)s(e)g(unnecessarily)f(slo)m(w,)j(or)f(it) g(could)f(b)s(e)g(ignoran)m(t)630 3867 y(of)30 b(the)g(fact)h(that)f Ff(aliasmodule)d Fh(stands)i(for)g Ff(1dir)p Fh(,)g(and)h(neglect)g(to) h(send)e(information)630 3976 y(for)h Ff(1dir)p Fh(,)g(whic)m(h)f(w)m (ould)g(lead)h(to)h(incorrect)f(op)s(eration.)630 4154 y(With)21 b Ff(expand-modules)p Fh(,)f(the)h(clien)m(t)g(w)m(ould)f (\014rst)h(ask)h(for)f(the)h(mo)s(dule)d(to)k(b)s(e)d(expanded:)870 4326 y Ff(C:)47 b(Root)g(/home/kingdon/zwork/cvsr)o(oot)870 4430 y(.)g(.)h(.)870 4534 y(C:)f(Argument)f(aliasmodule)870 4637 y(C:)h(Directory)e(.)870 4741 y(C:)i(/home/kingdon/zwork/cvsro)o (ot)870 4845 y(C:)g(expand-modules)870 4949 y(S:)g(Module-expansion)d (1dir)870 5053 y(S:)j(ok)630 5230 y Fh(and)23 b(then)h(it)f(kno)m(ws)h (to)h(c)m(hec)m(k)g(the)f(`)p Ff(1dir)p Fh(')f(directory)h(and)f(send)g (requests)h(suc)m(h)f(as)h Ff(Entry)630 5340 y Fh(and)30 b Ff(Modified)e Fh(for)i(the)h(\014les)e(in)g(that)i(directory)-8 b(.)p eop %%Page: 18 18 18 17 bop 150 299 a Ff(ci)30 b(\\n)150 408 y(diff)f(\\n)150 518 y(tag)g(\\n)150 628 y(status)g(\\n)150 737 y(log)g(\\n)150 847 y(admin)g(\\n)150 956 y(history)f(\\n)150 1066 y(watchers)g(\\n)150 1176 y(editors)g(\\n)150 1285 y(annotate)g(\\n)630 1395 y Fh(Resp)s(onse)k(exp)s(ected:)47 b(y)m(es.)i(Actually)32 b(do)h(a)g(cvs)g(command.)48 b(This)32 b(uses)g(an)m(y)h(previous)630 1504 y Ff(Argument)p Fh(,)40 b Ff(Directory)p Fh(,)g Ff(Entry)p Fh(,)i(or)e Ff(Modified)d Fh(requests,)43 b(if)c(they)h(ha)m(v)m(e)h(b)s(een)e(sen)m(t.)630 1614 y(The)44 b(last)g Ff(Directory)e Fh(sen)m(t)j(sp)s(eci\014es)e(the)h(w) m(orking)g(directory)g(at)h(the)f(time)g(of)h(the)630 1724 y(op)s(eration.)c(No)31 b(pro)m(vision)e(is)h(made)h(for)f(an)m(y) h(input)e(from)h(the)h(user.)41 b(This)29 b(means)h(that)630 1833 y Ff(ci)g Fh(m)m(ust)g(use)g(a)h Ff(-m)f Fh(argumen)m(t)g(if)g(it) g(w)m(an)m(ts)h(to)g(sp)s(ecify)e(a)i(log)f(message.)150 1987 y Ff(co)g(\\n)258 b Fh(Resp)s(onse)31 b(exp)s(ected:)45 b(y)m(es.)h(Get)33 b(\014les)e(from)h(the)g(rep)s(ository)-8 b(.)45 b(This)30 b(uses)i(an)m(y)g(previous)630 2096 y Ff(Argument)p Fh(,)40 b Ff(Directory)p Fh(,)g Ff(Entry)p Fh(,)i(or)e Ff(Modified)d Fh(requests,)43 b(if)c(they)h(ha)m(v)m(e)h(b) s(een)e(sen)m(t.)630 2206 y(Argumen)m(ts)34 b(to)h(this)e(command)h (are)g(mo)s(dule)e(names;)k(the)f(clien)m(t)e(cannot)i(kno)m(w)f(what) 630 2315 y(directories)h(they)g(corresp)s(ond)g(to)h(except)h(b)m(y)e (\(1\))i(just)e(sending)f(the)h Ff(co)g Fh(request,)j(and)630 2425 y(then)e(seeing)f(what)h(directory)g(names)g(the)g(serv)m(er)g (sends)f(bac)m(k)i(in)e(its)g(resp)s(onses,)i(and)630 2534 y(\(2\))31 b(the)g Ff(expand-modules)c Fh(request.)150 2688 y Ff(export)i(\\n)67 b Fh(Resp)s(onse)31 b(exp)s(ected:)45 b(y)m(es.)h(Get)33 b(\014les)e(from)h(the)g(rep)s(ository)-8 b(.)45 b(This)30 b(uses)i(an)m(y)g(previous)630 2798 y Ff(Argument)p Fh(,)40 b Ff(Directory)p Fh(,)g Ff(Entry)p Fh(,)i(or)e Ff(Modified)d Fh(requests,)43 b(if)c(they)h(ha)m(v)m(e)h(b) s(een)e(sen)m(t.)630 2907 y(Argumen)m(ts)24 b(to)i(this)d(command)h (are)h(mo)s(dule)d(names,)k(as)f(describ)s(ed)d(for)i(the)h Ff(co)f Fh(request.)630 3017 y(The)e(in)m(ten)m(tion)g(b)s(ehind)e (this)i(command)g(is)g(that)h(a)g(clien)m(t)f(can)h(get)h(sources)e (from)h(a)g(serv)m(er)630 3126 y(without)d(storing)h(CVS)f(information) g(ab)s(out)h(those)g(sources.)38 b(That)21 b(is,)h(a)g(clien)m(t)f (probably)630 3236 y(should)26 b(not)i(coun)m(t)g(on)g(b)s(eing)e(able) h(to)i(tak)m(e)g(the)f(en)m(tries)g(line)e(returned)h(in)f(the)i Ff(Created)630 3345 y Fh(resp)s(onse)k(from)h(an)g Ff(export)e Fh(request)i(and)g(send)f(it)h(in)e(a)j(future)e Ff(Entry)g Fh(request.)49 b(Note)630 3455 y(that)33 b(the)g(en)m(tries)f(line)f (in)g(the)i Ff(Created)d Fh(resp)s(onse)i(m)m(ust)g(indicate)g(whether) g(the)g(\014le)g(is)630 3565 y(binary)d(or)h(text,)i(so)e(the)h(clien)m (t)f(can)g(create)i(it)e(correctly)-8 b(.)150 3718 y Ff(rdiff)29 b(\\n)150 3828 y(rtag)g(\\n)163 b Fh(Resp)s(onse)39 b(exp)s(ected:)59 b(y)m(es.)68 b(Actually)38 b(do)i(a)f(cvs)h(command.) 67 b(This)37 b(uses)i(an)m(y)h(previ-)630 3937 y(ous)i Ff(Argument)e Fh(requests,)46 b(if)41 b(they)i(ha)m(v)m(e)h(b)s(een)d (sen)m(t.)78 b(The)42 b(clien)m(t)g(should)e(not)j(send)630 4047 y Ff(Directory)p Fh(,)27 b Ff(Entry)p Fh(,)i(or)g Ff(Modified)e Fh(requests)i(for)g(this)f(command;)i(they)f(are)h(not)f (used.)630 4156 y(Argumen)m(ts)h(to)i(these)e(commands)g(are)h(mo)s (dule)e(names,)h(as)h(describ)s(ed)d(for)i Ff(co)p Fh(.)150 4310 y Ff(init)f Fg(ro)s(ot-name)36 b Ff(\\n)630 4419 y Fh(Resp)s(onse)j(exp)s(ected:)60 b(y)m(es.)70 b(If)40 b(it)f(do)s(esn't)h(already)f(exist,)j(create)g(a)e Fd(cvs)f Fh(rep)s(ository)630 4529 y Fg(ro)s(ot-name)p Fh(.)54 b(Note)36 b(that)f Fg(ro)s(ot-name)40 b Fh(is)34 b(a)h(lo)s(cal)e (directory)h(and)g Fb(not)44 b Fh(a)35 b(fully)d(quali\014ed)630 4639 y Ff(CVSROOT)c Fh(v)-5 b(ariable.)40 b(The)30 b Ff(Root)f Fh(request)h(need)h(not)f(ha)m(v)m(e)i(b)s(een)d(previously)f (sen)m(t.)150 4792 y Ff(update)h(\\n)67 b Fh(Resp)s(onse)34 b(exp)s(ected:)50 b(y)m(es.)55 b(Actually)34 b(do)h(a)g Ff(cvs)30 b(update)j Fh(command.)54 b(This)33 b(uses)i(an)m(y)630 4902 y(previous)24 b Ff(Argument)p Fh(,)h Ff(Directory)p Fh(,)g Ff(Entry)p Fh(,)g(or)h Ff(Modified)e Fh(requests,)j(if)e(they)h (ha)m(v)m(e)h(b)s(een)630 5011 y(sen)m(t.)40 b(The)25 b(last)g Ff(Directory)f Fh(sen)m(t)i(sp)s(eci\014es)e(the)i(w)m(orking) f(directory)g(at)i(the)e(time)h(of)g(the)630 5121 y(op)s(eration.)40 b(The)30 b Ff(-I)g Fh(option)g(is)f(not)i(used{\014les)e(whic)m(h)g (the)h(clien)m(t)g(can)h(decide)f(whether)630 5230 y(to)f(ignore)f(are) g(not)h(men)m(tioned)f(and)f(the)i(clien)m(t)e(sends)h(the)g Ff(Questionable)d Fh(request)j(for)630 5340 y(others.)p eop %%Page: 19 19 19 18 bop 150 299 a Ff(import)29 b(\\n)67 b Fh(Resp)s(onse)34 b(exp)s(ected:)50 b(y)m(es.)55 b(Actually)34 b(do)h(a)g Ff(cvs)30 b(import)j Fh(command.)54 b(This)33 b(uses)i(an)m(y)630 408 y(previous)24 b Ff(Argument)p Fh(,)h Ff(Directory)p Fh(,)g Ff(Entry)p Fh(,)g(or)h Ff(Modified)e Fh(requests,)j(if)e(they)h (ha)m(v)m(e)h(b)s(een)630 518 y(sen)m(t.)62 b(The)37 b(last)h Ff(Directory)d Fh(sen)m(t)i(sp)s(eci\014es)g(the)g(w)m(orking) g(directory)g(at)h(the)g(time)f(of)630 628 y(the)31 b(op)s(eration)g(-) g(unlik)m(e)f(most)h(commands,)h(the)f(rep)s(ository)f(\014eld)g(of)h (eac)m(h)h Ff(Directory)630 737 y Fh(request)21 b(is)g(ignored)f(\(it)i (merely)e(m)m(ust)i(p)s(oin)m(t)e(somewhere)h(within)e(the)j(ro)s (ot\).)38 b(The)21 b(\014les)f(to)630 847 y(b)s(e)28 b(imp)s(orted)f(are)j(sen)m(t)f(in)f Ff(Modified)e Fh(requests)j (\(\014les)f(whic)m(h)g(the)h(clien)m(t)f(kno)m(ws)h(should)630 956 y(b)s(e)f(ignored)f(are)i(not)g(sen)m(t;)h(the)f(serv)m(er)f(m)m (ust)h(still)d(pro)s(cess)i(the)h(CVSR)m(OOT/cvsignore)630 1066 y(\014le)42 b(unless)f(-I)j(!)f(is)f(sen)m(t\).)79 b(A)43 b(log)h(message)g(m)m(ust)f(ha)m(v)m(e)h(b)s(een)e(sp)s (eci\014ed)f(with)h(a)i Ff(-m)630 1176 y Fh(argumen)m(t.)150 1358 y Ff(add)29 b(\\n)211 b Fh(Resp)s(onse)47 b(exp)s(ected:)74 b(y)m(es.)92 b(Add)46 b(a)i(\014le)e(or)h(directory)-8 b(.)91 b(This)45 b(uses)i(an)m(y)g(previous)630 1468 y Ff(Argument)p Fh(,)40 b Ff(Directory)p Fh(,)g Ff(Entry)p Fh(,)i(or)e Ff(Modified)d Fh(requests,)43 b(if)c(they)h(ha)m(v)m(e)h(b) s(een)e(sen)m(t.)630 1577 y(The)31 b(last)g Ff(Directory)d Fh(sen)m(t)k(sp)s(eci\014es)e(the)h(w)m(orking)g(directory)g(at)h(the)f (time)g(of)g(the)h(op-)630 1687 y(eration.)630 1833 y(T)-8 b(o)50 b(add)e(a)i(directory)-8 b(,)54 b(send)49 b(the)g(directory)g (to)h(b)s(e)e(added)h(using)f Ff(Directory)f Fh(and)630 1942 y Ff(Argument)28 b Fh(requests.)41 b(F)-8 b(or)31 b(example:)870 2083 y Ff(C:)47 b(Root)g(/u/cvsroot)870 2186 y(.)g(.)h(.)870 2290 y(C:)f(Argument)f(nsdir)870 2394 y(C:)h(Directory)e(nsdir)870 2498 y(C:)i(/u/cvsroot/1dir/nsdir)870 2601 y(C:)g(Directory)e(.)870 2705 y(C:)i(/u/cvsroot/1dir)870 2809 y(C:)g(add)870 2913 y(S:)g(M)h(Directory)d(/u/cvsroot/1dir/nsdir)d (added)k(to)h(the)g(repository)870 3017 y(S:)g(ok)630 3163 y Fh(Y)-8 b(ou)23 b(will)e(notice)i(that)g(the)g(serv)m(er)h(do)s (es)e(not)h(signal)f(to)h(the)g(clien)m(t)g(in)f(an)m(y)h(particular)e (w)m(a)m(y)630 3272 y(that)34 b(the)f(directory)f(has)h(b)s(een)f (successfully)f(added.)48 b(The)33 b(clien)m(t)g(is)f(supp)s(osed)f(to) j(just)630 3382 y(assume)f(that)g(the)g(directory)g(has)f(b)s(een)g (added)h(and)f(up)s(date)g(its)g(records)h(accordingly)-8 b(.)630 3491 y(Note)42 b(also)g(that)f(adding)f(a)i(directory)e(is)g (immediate;)46 b(it)41 b(do)s(es)g(not)g(w)m(ait)h(un)m(til)d(a)j Ff(ci)630 3601 y Fh(request)30 b(as)h(\014les)e(do.)630 3747 y(T)-8 b(o)28 b(add)f(a)g(\014le,)h(send)e(the)i(\014le)e(to)i(b)s (e)f(added)f(using)g(a)i Ff(Modified)d Fh(request.)40 b(F)-8 b(or)28 b(example:)870 3887 y Ff(C:)47 b(Argument)f(nfile)870 3991 y(C:)h(Directory)e(.)870 4095 y(C:)i(/u/cvsroot/1dir)870 4198 y(C:)g(Modified)f(nfile)870 4302 y(C:)h(u=rw,g=r,o=r)870 4406 y(C:)g(6)870 4510 y(C:)g(hello)870 4614 y(C:)g(add)870 4717 y(S:)g(E)h(cvs)f(server:)e(scheduling)g(file)i(`nfile')f(for)h (addition)870 4821 y(S:)g(Mode)g(u=rw,g=r,o=r)870 4925 y(S:)g(Checked-in)e(./)870 5029 y(S:)i(/u/cvsroot/1dir/nfile)870 5132 y(S:)g(/nfile/0///)870 5236 y(S:)g(E)h(cvs)f(server:)e(use)i('cvs) g(commit')f(to)h(add)g(this)f(file)h(permanently)870 5340 y(S:)g(ok)p eop %%Page: 20 20 20 19 bop 630 299 a Fh(Note)40 b(that)f(the)g(\014le)e(has)h(not)h(b)s (een)f(added)g(to)h(the)g(rep)s(ository;)j(the)c(only)g(e\013ect)i(of)f (a)630 408 y(successful)j Ff(add)f Fh(request,)47 b(for)42 b(a)h(\014le,)i(is)d(to)i(supply)c(the)j(clien)m(t)f(with)g(a)h(new)f (en)m(tries)630 518 y(line)31 b(con)m(taining)h(`)p Ff(0)p Fh(')h(to)g(indicate)f(an)g(added)g(\014le.)47 b(In)32 b(fact,)i(the)f(clien)m(t)f(probably)f(could)630 628 y(p)s(erform)e(this)g(op)s(eration)h(without)g(con)m(tacting)i(the)f (serv)m(er,)g(although)f(using)f Ff(add)g Fh(do)s(es)630 737 y(cause)i(the)f(serv)m(er)h(to)g(p)s(erform)e(a)i(few)f(more)h(c)m (hec)m(ks.)630 878 y(The)f(clien)m(t)g(sends)f(a)i(subsequen)m(t)f Ff(ci)f Fh(to)j(actually)d(add)h(the)h(\014le)e(to)i(the)g(rep)s (ository)-8 b(.)630 1019 y(Another)32 b(quirk)e(of)i(the)g Ff(add)f Fh(request)g(is)g(that)i(with)d(CVS)h(1.9)i(and)e(older,)h(a)g (pathname)630 1129 y(sp)s(eci\014ed)h(in)f(an)j Ff(Argument)c Fh(request)k(cannot)g(con)m(tain)f(`)p Ff(/)p Fh('.)53 b(There)33 b(is)h(no)g(go)s(o)s(d)g(reason)630 1238 y(for)40 b(this)e(restriction,)k(and)d(in)g(fact)i(more)f(recen)m(t)h(CVS)e (serv)m(ers)h(don't)g(ha)m(v)m(e)h(it.)69 b(But)630 1348 y(the)33 b(w)m(a)m(y)g(to)g(in)m(terop)s(erate)g(with)e(the)i(older)f (serv)m(ers)g(is)g(to)h(ensure)f(that)h(all)e Ff(Directory)630 1457 y Fh(requests)d(for)g Ff(add)g Fh(\(except)i(those)e(used)g(to)h (add)f(directories,)g(as)g(describ)s(ed)f(ab)s(o)m(v)m(e\),)j(use)630 1567 y(`)p Ff(.)p Fh(')41 b(for)f Fg(lo)s(cal-directory)p Fh(.)70 b(Sp)s(ecifying)37 b(another)k(string)e(for)h Fg(lo)s(cal-directory)48 b Fh(ma)m(y)41 b(not)630 1677 y(get)32 b(an)e(error,)g(but)g(it)g(will)d(get)32 b(y)m(ou)f(strange)g Ff(Checked-in)c Fh(resp)s(onses)j(from)g(the)g(buggy)630 1786 y(serv)m(ers.)150 1958 y Ff(remove)f(\\n)67 b Fh(Resp)s(onse)42 b(exp)s(ected:)65 b(y)m(es.)77 b(Remo)m(v)m(e)44 b(a)f(\014le.)75 b(This)41 b(uses)h(an)m(y)g(previous)f Ff(Argument)p Fh(,)630 2068 y Ff(Directory)p Fh(,)j Ff(Entry)p Fh(,)h(or)e Ff(Modified)e Fh(requests,)46 b(if)c(they)h(ha)m(v)m(e)h(b)s(een)e(sen) m(t.)80 b(The)42 b(last)630 2178 y Ff(Directory)28 b Fh(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.)630 2318 y(Note)c(that)g(this)d (request)i(do)s(es)g(not)g(actually)f(do)h(an)m(ything)g(to)g(the)g (rep)s(ository;)h(the)f(only)630 2428 y(e\013ect)34 b(of)f(a)f (successful)g Ff(remove)e Fh(request)j(is)e(to)j(supply)c(the)i(clien)m (t)g(with)f(a)i(new)f(en)m(tries)630 2538 y(line)c(con)m(taining)h(`)p Ff(-)p Fh(')h(to)g(indicate)f(a)h(remo)m(v)m(ed)h(\014le.)39 b(In)29 b(fact,)i(the)f(clien)m(t)f(probably)f(could)630 2647 y(p)s(erform)36 b(this)g(op)s(eration)h(without)f(con)m(tacting)i (the)g(serv)m(er,)h(although)e(using)f Ff(remove)630 2757 y Fh(ma)m(y)31 b(cause)g(the)f(serv)m(er)h(to)g(p)s(erform)e(a)i (few)f(more)h(c)m(hec)m(ks.)630 2898 y(The)f(clien)m(t)g(sends)f(a)h (subsequen)m(t)g Ff(ci)g Fh(request)g(to)h(actually)f(record)g(the)g (remo)m(v)-5 b(al)31 b(in)e(the)630 3007 y(rep)s(ository)-8 b(.)150 3180 y Ff(watch-on)28 b(\\n)150 3289 y(watch-off)g(\\n)150 3399 y(watch-add)g(\\n)150 3508 y(watch-remove)f(\\n)630 3618 y Fh(Resp)s(onse)38 b(exp)s(ected:)56 b(y)m(es.)65 b(Actually)38 b(do)g(the)h Ff(cvs)29 b(watch)g(on)p Fh(,)40 b Ff(cvs)29 b(watch)g(off)p Fh(,)40 b Ff(cvs)630 3727 y(watch)29 b(add)p Fh(,)f(and)h Ff(cvs)g(watch)g(remove)e Fh(commands,)i(resp)s(ectiv)m(ely)-8 b(.)40 b(This)27 b(uses)h(an)m(y)h(pre-)630 3837 y(vious)37 b Ff(Argument)p Fh(,)h Ff(Directory)p Fh(,)g Ff(Entry)p Fh(,)h(or)f Ff(Modified)e Fh(requests,)k(if)d(they)h(ha)m(v)m(e)i(b)s(een)630 3947 y(sen)m(t.)g(The)25 b(last)g Ff(Directory)f Fh(sen)m(t)i(sp)s (eci\014es)e(the)i(w)m(orking)f(directory)g(at)i(the)e(time)h(of)g(the) 630 4056 y(op)s(eration.)150 4228 y Ff(release)i(\\n)630 4338 y Fh(Resp)s(onse)35 b(exp)s(ected:)51 b(y)m(es.)56 b(Note)36 b(that)g(a)g Ff(cvs)29 b(release)34 b Fh(command)h(has)g(tak) m(en)h(place)630 4448 y(and)30 b(up)s(date)f(the)i(history)e(\014le)h (accordingly)-8 b(.)150 4620 y Ff(noop)29 b(\\n)163 b Fh(Resp)s(onse)41 b(exp)s(ected:)64 b(y)m(es.)76 b(This)40 b(request)i(is)f(a)h(n)m(ull)e(command)i(in)e(the)i(sense)g(that)630 4729 y(it)g(do)s(esn't)h(do)f(an)m(ything,)j(but)d(merely)g(\(as)i (with)d(an)m(y)i(other)g(requests)f(exp)s(ecting)h(a)630 4839 y(resp)s(onse\))51 b(sends)f(bac)m(k)i(an)m(y)f(resp)s(onses)g(p)s (ertaining)d(to)k(p)s(ending)d(errors,)56 b(p)s(ending)630 4949 y Ff(Notified)28 b Fh(resp)s(onses,)i(etc.)150 5121 y Ff(update-patches)c(\\n)630 5230 y Fh(Resp)s(onse)h(exp)s(ected:)40 b(y)m(es.)h(This)26 b(request)i(do)s(es)g(not)g(actually)f(do)h(an)m (ything.)40 b(It)28 b(is)f(used)630 5340 y(as)37 b(a)g(signal)e(that)i (the)f(serv)m(er)h(is)f(able)g(to)h(generate)h(patc)m(hes)f(when)f(giv) m(en)g(an)h Ff(update)p eop %%Page: 21 21 21 20 bop 630 299 a Fh(request.)51 b(The)34 b(clien)m(t)f(m)m(ust)h (issue)f(the)h Ff(-u)f Fh(argumen)m(t)i(to)f Ff(update)e Fh(in)h(order)g(to)i(receiv)m(e)630 408 y(patc)m(hes.)150 579 y Ff(gzip-file-contents)25 b Fg(lev)m(el)34 b Ff(\\n)630 689 y Fh(Resp)s(onse)k(exp)s(ected:)57 b(no.)65 b(Note)39 b(that)g(this)f(request)g(do)s(es)g(not)h(follo)m(w)e(the)i(resp)s (onse)630 799 y(con)m(v)m(en)m(tion)46 b(stated)g(ab)s(o)m(v)m(e.)87 b Ff(Gzip-stream)42 b Fh(is)i(suggested)i(instead)e(of)i Ff(gzip-file-)630 908 y(contents)41 b Fh(as)j(it)f(giv)m(es)h(b)s (etter)g(compression;)49 b(the)44 b(only)f(reason)g(to)i(implemen)m(t)d (the)630 1018 y(latter)g(is)f(to)h(pro)m(vide)e(compression)h(with)f Fd(cvs)h Fh(1.8)i(and)d(earlier.)74 b(The)41 b Ff(gzip-file-)630 1127 y(contents)31 b Fh(request)i(asks)h(the)f(serv)m(er)h(to)g (compress)f(\014les)f(it)h(sends)f(to)i(the)g(clien)m(t)e(using)630 1237 y Ff(gzip)27 b Fh(\(RF)m(C1952/1951\))34 b(compression,)28 b(using)f(the)h(sp)s(eci\014ed)f(lev)m(el)h(of)g(compression.)39 b(If)630 1347 y(this)29 b(request)i(is)e(not)i(made,)f(the)h(serv)m(er) g(m)m(ust)f(not)g(compress)h(\014les.)630 1487 y(This)h(is)g(only)h(a)h (hin)m(t)f(to)h(the)g(serv)m(er.)50 b(It)34 b(ma)m(y)g(still)e(decide)h (\(for)g(example,)i(in)d(the)i(case)630 1597 y(of)29 b(v)m(ery)h(small)e(\014les,)g(or)h(\014les)g(that)g(already)g(app)s (ear)g(to)h(b)s(e)e(compressed\))h(not)h(to)g(do)f(the)630 1706 y(compression.)40 b(Compression)28 b(is)i(indicated)f(b)m(y)h(a)h (`)p Ff(z)p Fh(')f(preceding)g(the)g(\014le)g(length.)630 1846 y(Av)-5 b(ailabilit)m(y)40 b(of)j(this)f(request)g(in)g(the)h (serv)m(er)g(indicates)e(to)j(the)f(clien)m(t)f(that)h(it)f(ma)m(y)630 1956 y(compress)32 b(\014les)e(sen)m(t)j(to)f(the)g(serv)m(er,)h (regardless)e(of)h(whether)f(the)i(clien)m(t)e(actually)g(uses)630 2066 y(this)e(request.)150 2237 y Ff(wrapper-sendme-rcsOption)o(s)24 b(\\n)630 2346 y Fh(Resp)s(onse)31 b(exp)s(ected:)43 b(y)m(es.)i(Request)32 b(that)g(the)g(serv)m(er)f(transmit)g(mappings)f (from)h(\014le-)630 2456 y(names)f(to)h(k)m(eyw)m(ord)g(expansion)e(mo) s(des)h(in)f Ff(Wrapper-rcsOption)d Fh(resp)s(onses.)150 2627 y Fg(other-request)33 b(text)g Ff(\\n)630 2736 y Fh(Resp)s(onse)20 b(exp)s(ected:)37 b(y)m(es.)h(An)m(y)21 b(unrecognized)g(request)g(exp)s(ects)g(a)h(resp)s(onse,)g(and)e(do)s (es)630 2846 y(not)30 b(con)m(tain)g(an)m(y)g(additional)d(data.)41 b(The)29 b(resp)s(onse)g(will)e(normally)h(b)s(e)h(something)g(lik)m(e) 630 2956 y(`)p Ff(error)g(unrecognized)e(request)p Fh(',)33 b(but)h(it)f(could)g(b)s(e)g(a)i(di\013eren)m(t)e(error)g(if)g(a)h (previous)630 3065 y(request)c(whic)m(h)g(do)s(esn't)g(exp)s(ect)h(a)f (resp)s(onse)g(pro)s(duced)e(an)j(error.)275 3242 y(When)f(the)g(clien) m(t)g(is)g(done,)g(it)g(drops)f(the)i(connection.)150 3528 y Fc(5.9)68 b(In)l(tro)t(duction)45 b(to)g(Resp)t(onses)275 3733 y Fh(After)24 b(a)g(command)g(whic)m(h)f(exp)s(ects)h(a)h(resp)s (onse,)g(the)f(serv)m(er)g(sends)f(ho)m(w)m(ev)m(er)j(man)m(y)e(of)g (the)g(follo)m(w-)150 3842 y(ing)k(resp)s(onses)g(are)i(appropriate.)39 b(The)29 b(serv)m(er)g(should)e(not)j(send)e(data)i(at)f(other)h(times) e(\(the)i(curren)m(t)150 3952 y(implemen)m(tation)23 b(ma)m(y)i(violate)f(this)f(principle)e(in)i(a)h(few)g(minor)f(places,) i(where)f(the)g(serv)m(er)h(is)e(prin)m(ting)150 4061 y(an)30 b(error)g(message)i(and)e(exiting|this)e(should)g(b)s(e)i(in)m (v)m(estigated)h(further\).)275 4208 y(An)m(y)f(set)i(of)f(resp)s (onses)e(alw)m(a)m(ys)j(ends)e(with)f(`)p Ff(error)p Fh(')h(or)h(`)p Ff(ok)p Fh('.)42 b(This)29 b(indicates)g(that)j(the)f (resp)s(onse)150 4317 y(is)e(o)m(v)m(er.)275 4463 y(The)h(resp)s(onses) g Ff(Checked-in)p Fh(,)e Ff(New-entry)p Fh(,)h Ff(Updated)p Fh(,)h Ff(Created)p Fh(,)f Ff(Update-existing)p Fh(,)e Ff(Merged)p Fh(,)150 4573 y(and)j Ff(Patched)e Fh(are)j(refered)f(to)h (as)f Fg(\014le)f(up)s(dating)36 b Fh(resp)s(onses,)30 b(b)s(ecause)g(they)h(c)m(hange)g(the)g(status)f(of)h(a)150 4682 y(\014le)24 b(in)g(the)h(w)m(orking)f(directory)h(in)e(some)j(w)m (a)m(y)-8 b(.)40 b(The)24 b(resp)s(onses)g Ff(Mode)p Fh(,)h Ff(Mod-time)p Fh(,)f(and)h Ff(Checksum)e Fh(are)150 4792 y(referred)33 b(to)h(as)g Fg(\014le)e(up)s(date)h(mo)s(difying)39 b Fh(resp)s(onses)32 b(b)s(ecause)i(they)f(mo)s(dify)f(the)i(next)f (\014le)g(up)s(dating)150 4902 y(resp)s(onse.)38 b(In)24 b(no)h(case)h(shall)e(a)h(\014le)f(up)s(date)g(mo)s(difying)f(resp)s (onse)h(apply)g(to)h(a)h(\014le)e(up)s(dating)f(resp)s(onse)150 5011 y(other)32 b(than)f(the)h(next)g(one.)45 b(Nor)32 b(can)f(the)h(same)g(\014le)f(up)s(date)g(mo)s(difying)e(resp)s(onse)i (o)s(ccur)g(t)m(wice)h(for)150 5121 y(a)d(giv)m(en)g(\014le)f(up)s (dating)f(resp)s(onse)h(\(if)g(serv)m(ers)h(diagnose)f(this)g(problem,) g(it)g(ma)m(y)i(aid)e(in)f(detecting)j(the)150 5230 y(case)25 b(where)f(clien)m(ts)f(send)h(an)g(up)s(date)f(mo)s(difying)f(resp)s (onse)h(without)g(follo)m(wing)g(it)g(b)m(y)h(a)h(\014le)e(up)s(dating) 150 5340 y(resp)s(onse\).)p eop %%Page: 22 22 22 21 bop 150 299 a Fc(5.10)68 b(The)45 b Fa(")p Fc(pathname)p Fa(")f Fc(in)h(resp)t(onses)275 498 y Fh(Man)m(y)f(of)f(the)h(resp)s (onses)e(con)m(tain)i(something)f(called)f Fg(pathname)p Fh(.)80 b(The)43 b(name)g(is)g(somewhat)150 608 y(misleading;)f(it)e (actually)f(indicates)g(a)h(pair)f(of)h(pathnames.)68 b(First,)42 b(a)e(lo)s(cal)f(directory)h(name)f(rel-)150 717 y(ativ)m(e)i(to)f(the)g(directory)g(in)e(whic)m(h)h(the)h(command)f (w)m(as)h(giv)m(en)g(\(i.e.)69 b(the)40 b(last)g Ff(Directory)d Fh(b)s(efore)150 827 y(the)i(command\).)67 b(Then)38 b(a)i(linefeed)d(and)h(a)i(rep)s(ository)e(name.)67 b(Then)38 b(a)h(slash)f(and)g(the)i(\014lename)150 937 y(\(without)c(a)h(`)p Ff(,v)p Fh(')f(ending\).)58 b(F)-8 b(or)37 b(example,)h(for)e(a)h (\014le)e(`)p Ff(i386.mh)p Fh(')g(whic)m(h)h(is)f(in)g(the)i(lo)s(cal)e (directory)150 1046 y(`)p Ff(gas.clean/config)p Fh(')26 b(and)k(for)g(whic)m(h)f(the)i(rep)s(ository)e(is)h(`)p Ff(/rel/cvsfiles/devo/gas/c)o(onfi)o(g)p Fh(':)390 1182 y Ff(gas.clean/config/)390 1285 y(/rel/cvsfiles/devo/gas/c)o(onfi)o (g/i3)o(86.)o(mh)275 1427 y Fh(If)22 b(the)h(serv)m(er)h(w)m(an)m(ts)g (to)g(tell)e(the)h(clien)m(t)g(to)h(create)g(a)g(directory)-8 b(,)25 b(then)d(it)h(merely)f(uses)h(the)g(directory)150 1536 y(in)i(an)m(y)j(resp)s(onse,)e(as)h(describ)s(ed)e(ab)s(o)m(v)m (e,)k(and)d(the)h(clien)m(t)g(should)d(create)29 b(the)e(directory)f (if)g(it)g(do)s(es)h(not)150 1646 y(exist.)53 b(Note)35 b(that)g(this)e(should)g(only)g(b)s(e)h(done)g(one)h(directory)f(at)h (a)g(time,)g(in)e(order)h(to)h(p)s(ermit)e(the)150 1755 y(clien)m(t)e(to)i(correctly)f(store)g(the)g(rep)s(ository)f(for)h(eac) m(h)h(directory)-8 b(.)44 b(Serv)m(ers)32 b(can)g(use)g(requests)f(suc) m(h)h(as)150 1865 y Ff(Clear-sticky)p Fh(,)27 b Ff (Clear-static-directory)p Fh(,)e(or)30 b(an)m(y)h(other)g(requests,)f (to)h(create)h(directories.)275 2006 y(Some)f(serv)m(er)h(implemen)m (tations)d(ma)m(y)j(p)s(o)s(orly)e(distinguish)d(b)s(et)m(w)m(een)32 b(a)g(directory)f(whic)m(h)f(should)150 2116 y(not)36 b(exist)f(and)f(a)i(directory)f(whic)m(h)f(con)m(tains)h(no)g(\014les;) i(in)d(order)h(to)h(refrain)e(from)h(creating)h(empt)m(y)150 2226 y(directories)25 b(a)i(clien)m(t)e(should)f(b)s(oth)i(send)f(the)h (`)p Ff(-P)p Fh(')g(option)g(to)h Ff(update)d Fh(or)i Ff(co)p Fh(,)h(and)e(should)g(also)h(detect)150 2335 y(the)34 b(case)h(in)e(whic)m(h)f(the)i(serv)m(er)g(asks)g(to)h(create) h(a)e(directory)f(but)g(not)i(an)m(y)f(\014les)f(within)e(it)i(\(in)g (that)150 2445 y(case)38 b(the)e(clien)m(t)h(should)d(remo)m(v)m(e)k (the)f(directory)f(or)h(refrain)e(from)h(creating)h(it)f(in)g(the)h (\014rst)e(place\).)150 2554 y(Note)d(that)f(serv)m(ers)f(could)g (clean)g(this)f(up)h(greatly)h(b)m(y)f(only)f(telling)g(the)i(clien)m (t)f(to)h(create)h(directories)150 2664 y(if)e(the)i(directory)f(in)f (question)h(should)e(exist,)j(but)e(un)m(til)g(serv)m(ers)i(do)f(this,) g(clien)m(ts)f(will)f(need)i(to)i(o\013er)150 2773 y(the)e(`)p Ff(-P)p Fh(')f(b)s(eha)m(vior)f(describ)s(ed)g(ab)s(o)m(v)m(e.)150 3048 y Fc(5.11)68 b(Resp)t(onses)275 3247 y Fh(Here)30 b(are)h(the)g(resp)s(onses:)150 3417 y Ff(Valid-requests)26 b Fg(request-list)32 b Ff(\\n)630 3526 y Fh(Indicate)45 b(what)g(requests)h(the)g(serv)m(er)f(will)e(accept.)88 b Fg(request-list)46 b Fh(is)f(a)g(space)h(sepa-)630 3636 y(rated)f(list)e(of)h(tok)m(ens.)84 b(If)43 b(the)i(serv)m(er)g (supp)s(orts)d(sending)h(patc)m(hes,)49 b(it)44 b(will)d(include)630 3746 y(`)p Ff(update-patches)p Fh(')23 b(in)i(this)g(list.)38 b(The)26 b(`)p Ff(update-patches)p Fh(')d(request)j(do)s(es)g(not)g (actually)630 3855 y(do)k(an)m(ything.)150 4021 y Ff(Checked-in)e Fg(pathname)35 b Ff(\\n)630 4131 y Fh(Additional)d(data:)50 b(New)35 b(En)m(tries)e(line,)i Ff(\\)p Fh(n.)52 b(This)33 b(means)h(a)h(\014le)f Fg(pathname)39 b Fh(has)c(b)s(een)630 4240 y(successfully)c(op)s(erated)j(on)f(\(c)m(hec)m(k)m(ed)j(in,)d (added,)h(etc.\).)52 b(name)34 b(in)e(the)h(En)m(tries)g(line)f(is)630 4350 y(the)f(same)f(as)h(the)g(last)f(comp)s(onen)m(t)g(of)h Fg(pathname)p Fh(.)150 4516 y Ff(New-entry)d Fg(pathname)35 b Ff(\\n)630 4626 y Fh(Additional)27 b(data:)41 b(New)30 b(En)m(tries)f(line,)g Ff(\\)p Fh(n.)40 b(Lik)m(e)29 b Ff(Checked-in)p Fh(,)e(but)i(the)h(\014le)f(is)g(not)h(up)630 4735 y(to)h(date.)150 4902 y Ff(Updated)d Fg(pathname)36 b Ff(\\n)630 5011 y Fh(Additional)24 b(data:)39 b(New)26 b(En)m(tries)g(line,)f Ff(\\)p Fh(n,)i(mo)s(de,)g Ff(\\)p Fh(n,)f(\014le)f(transmission.)37 b(A)27 b(new)e(cop)m(y)630 5121 y(of)40 b(the)f(\014le)f(is)h(enclosed.)67 b(This)38 b(is)g(used)h(for)g(a)h(new)e(revision)g(of)h(an)h(existing)e(\014le,)j (or)630 5230 y(for)31 b(a)h(new)f(\014le,)g(or)g(for)h(an)m(y)f(other)h (case)g(in)f(whic)m(h)f(the)h(lo)s(cal)g(\(clien)m(t-side\))g(cop)m(y)h (of)g(the)630 5340 y(\014le)e(needs)h(to)i(b)s(e)d(up)s(dated,)h(and)g (after)h(b)s(eing)d(up)s(dated)i(it)f(will)f(b)s(e)i(up)f(to)i(date.)45 b(If)31 b(an)m(y)p eop %%Page: 23 23 23 22 bop 630 299 a Fh(directory)37 b(in)g(pathname)g(do)s(es)h(not)g (exist,)i(create)f(it.)62 b(This)36 b(resp)s(onse)h(is)g(not)h(used)f (if)630 408 y Ff(Created)28 b Fh(and)i Ff(Update-existing)c Fh(are)31 b(supp)s(orted.)150 573 y Ff(Created)d Fg(pathname)36 b Ff(\\n)630 682 y Fh(This)24 b(is)h(just)h(lik)m(e)f Ff(Updated)f Fh(and)i(tak)m(es)h(the)g(same)f(additional)e(data,)k(but) d(is)g(used)h(only)f(if)630 792 y(no)e Ff(Entry)p Fh(,)g Ff(Modified)p Fh(,)f(or)g Ff(Unchanged)f Fh(request)h(has)h(b)s(een)f (sen)m(t)h(for)f(the)h(\014le)f(in)f(question.)630 902 y(The)37 b(distinction)f(b)s(et)m(w)m(een)i Ff(Created)e Fh(and)h Ff(Update-existing)c Fh(is)k(so)h(that)g(the)g(clien)m(t)630 1011 y(can)h(giv)m(e)g(an)f(error)g(message)i(in)d(sev)m(eral)i(cases:) 58 b(\(1\))40 b(there)f(is)e(a)i(\014le)f(in)f(the)i(w)m(orking)630 1121 y(directory)-8 b(,)31 b(but)g(not)g(one)h(for)f(whic)m(h)e Ff(Entry)p Fh(,)i Ff(Modified)p Fh(,)e(or)i Ff(Unchanged)e Fh(w)m(as)i(sen)m(t)h(\(for)630 1230 y(example,)f(a)f(\014le)g(whic)m (h)f(w)m(as)i(ignored,)f(or)h(a)g(\014le)e(for)h(whic)m(h)g Ff(Questionable)d Fh(w)m(as)k(sen)m(t\),)630 1340 y(\(2\))42 b(there)f(is)e(a)j(\014le)d(in)h(the)h(w)m(orking)f(directory)g(whose)g (name)h(di\013ers)e(from)i(the)g(one)630 1450 y(men)m(tioned)c(in)f Ff(Created)f Fh(in)h(w)m(a)m(ys)i(that)g(the)f(clien)m(t)g(is)f(unable) g(to)i(use)f(to)h(distinguish)630 1559 y(\014les.)63 b(F)-8 b(or)39 b(example,)h(the)e(clien)m(t)g(is)f(case-insensitiv)m(e) g(and)h(the)g(names)g(di\013er)f(only)g(in)630 1669 y(case.)150 1833 y Ff(Update-existing)26 b Fg(pathname)36 b Ff(\\n)630 1943 y Fh(This)24 b(is)h(just)h(lik)m(e)f Ff(Updated)f Fh(and)i(tak)m(es)h(the)g(same)f(additional)e(data,)k(but)d(is)g(used)h (only)f(if)630 2052 y(a)i Ff(Entry)p Fh(,)f Ff(Modified)p Fh(,)g(or)g Ff(Unchanged)f Fh(request)h(has)h(b)s(een)f(sen)m(t)h(for)f (the)h(\014le)f(in)f(question.)630 2189 y(This)35 b(resp)s(onse,)j(or)f Ff(Merged)p Fh(,)h(indicates)e(that)h(the)h(serv)m(er)f(has)g (determined)f(that)h(it)g(is)630 2299 y(OK)32 b(to)h(o)m(v)m(erwrite)g (the)g(previous)e(con)m(ten)m(ts)j(of)f(the)g(\014le)e(sp)s(eci\014ed)g (b)m(y)i Fg(pathname)p Fh(.)47 b(Pro-)630 2408 y(vided)30 b(that)h(the)h(clien)m(t)e(has)h(correctly)h(sen)m(t)f Ff(Modified)e Fh(or)i Ff(Is-modified)d Fh(requests)j(for)630 2518 y(a)26 b(mo)s(di\014ed)d(\014le,)j(and)f(the)h(\014le)e(w)m(as)i (not)g(mo)s(di\014ed)d(while)g(CVS)i(w)m(as)h(running,)e(the)i(serv)m (er)630 2628 y(can)31 b(ensure)e(that)i(a)g(user's)f(mo)s (di\014cations)e(are)j(not)g(lost.)150 2792 y Ff(Merged)e Fg(pathname)35 b Ff(\\n)630 2902 y Fh(This)40 b(is)h(just)h(lik)m(e)f Ff(Updated)f Fh(and)i(tak)m(es)h(the)f(same)h(additional)d(data,)46 b(with)40 b(the)j(one)630 3011 y(di\013erence)32 b(that)h(after)h(the)e (new)h(cop)m(y)g(of)g(the)g(\014le)e(is)h(enclosed,)h(it)f(will)f (still)f(not)j(b)s(e)f(up)630 3121 y(to)f(date.)41 b(Used)31 b(for)f(the)g(results)g(of)g(a)h(merge,)g(with)e(or)h(without)g (con\015icts.)630 3258 y(It)36 b(is)g(useful)e(to)j(preserv)m(e)f(an)g (cop)m(y)h(of)g(what)f(the)g(\014le)f(lo)s(ok)m(ed)h(lik)m(e)g(b)s (efore)g(the)g(merge.)630 3367 y(This)g(is)h(basically)f(handled)g(b)m (y)h(the)h(serv)m(er;)k(b)s(efore)c(sending)e Ff(Merged)g Fh(it)h(will)f(send)h(a)630 3477 y Ff(Copy-file)25 b Fh(resp)s(onse.)39 b(F)-8 b(or)28 b(example,)g(if)f(the)h(\014le)e(is)h (`)p Ff(aa)p Fh(')g(and)g(it)h(deriv)m(es)f(from)g(revision)630 3587 y(1.3,)j(the)e Ff(Copy-file)d Fh(resp)s(onse)i(will)e(tell)i(the)h (clien)m(t)f(to)i(cop)m(y)g(`)p Ff(aa)p Fh(')e(to)i(`)p Ff(.#aa.1.3)p Fh('.)38 b(It)28 b(is)630 3696 y(up)e(to)h(the)g(clien)m (t)g(to)g(decide)g(ho)m(w)g(long)f(to)i(k)m(eep)f(this)f(\014le)g (around;)h(traditionally)d(clien)m(ts)630 3806 y(ha)m(v)m(e)39 b(left)f(it)g(around)f(forev)m(er,)42 b(th)m(us)37 b(letting)h(the)h (user)e(clean)h(it)g(up)f(as)i(desired.)63 b(But)630 3915 y(another)31 b(answ)m(er,)f(suc)m(h)g(as)h(un)m(til)d(the)j(next)g (commit,)f(migh)m(t)g(b)s(e)g(preferable.)150 4080 y Ff(Rcs-diff)e Fg(pathname)35 b Ff(\\n)630 4189 y Fh(This)40 b(is)h(just)h(lik)m(e)f Ff(Updated)f Fh(and)i(tak)m(es)h(the)f(same)h (additional)d(data,)46 b(with)40 b(the)j(one)630 4299 y(di\013erence)37 b(that)h(instead)f(of)h(sending)e(a)i(new)g(cop)m(y)g (of)g(the)g(\014le,)g(the)g(serv)m(er)g(sends)f(an)630 4408 y(R)m(CS)h(c)m(hange)i(text.)66 b(This)37 b(c)m(hange)j(text)g(is) d(pro)s(duced)g(b)m(y)i(`)p Ff(diff)29 b(-n)p Fh(')39 b(\(the)g(GNU)g(di\013)630 4518 y(`)p Ff(-a)p Fh(')c(option)f(ma)m(y)h (also)f(b)s(e)g(used\).)53 b(The)35 b(clien)m(t)f(m)m(ust)g(apply)f (this)h(c)m(hange)i(text)f(to)h(the)630 4628 y(existing)g(\014le.)60 b(This)35 b(will)f(only)i(b)s(e)h(used)f(when)g(the)h(clien)m(t)g(has)g (an)g(exact)h(cop)m(y)g(of)f(an)630 4737 y(earlier)32 b(revision)f(of)i(a)g(\014le.)47 b(This)31 b(resp)s(onse)h(is)g(only)g (used)g(if)f(the)i Ff(update)e Fh(command)i(is)630 4847 y(giv)m(en)d(the)h(`)p Ff(-u)p Fh(')f(argumen)m(t.)150 5011 y Ff(Patched)e Fg(pathname)36 b Ff(\\n)630 5121 y Fh(This)d(is)i(just)f(lik)m(e)h Ff(Rcs-diff)e Fh(and)h(tak)m(es)j (the)e(same)h(additional)d(data,)k(except)g(that)e(it)630 5230 y(sends)24 b(a)h(standard)e(patc)m(h)j(rather)e(than)g(an)h(R)m (CS)f(c)m(hange)i(text.)40 b(The)24 b(patc)m(h)h(is)f(pro)s(duced)630 5340 y(b)m(y)e(`)p Ff(diff)30 b(-c)p Fh(')21 b(for)h Fd(cvs)g Fh(1.6)h(and)e(later)i(\(see)g(POSIX.2)f(for)g(a)g (description)f(of)h(this)f(format\),)p eop %%Page: 24 24 24 23 bop 630 299 a Fh(or)24 b(`)p Ff(diff)30 b(-u)p Fh(')23 b(for)h(previous)f(v)m(ersions)g(of)h Fd(cvs)p Fh(;)i(clien)m(ts)d(are)i(encouraged)f(to)h(accept)g(either)630 408 y(format.)58 b(Lik)m(e)35 b Ff(Rcs-diff)p Fh(,)h(this)e(resp)s (onse)h(is)g(only)g(used)g(if)g(the)h Ff(update)e Fh(command)i(is)630 518 y(giv)m(en)30 b(the)h(`)p Ff(-u)p Fh(')f(argumen)m(t.)630 665 y(The)j Ff(Patched)e Fh(resp)s(onse)h(is)g(deprecated)h(in)f(fa)m (v)m(or)i(of)f(the)g Ff(Rcs-diff)e Fh(resp)s(onse.)48 b(Ho)m(w-)630 774 y(ev)m(er,)31 b(older)f(clien)m(ts)g(\(CVS)g(1.9)h (and)f(earlier\))g(only)f(supp)s(ort)g Ff(Patched)p Fh(.)150 958 y Ff(Mode)g Fg(mo)s(de)35 b Ff(\\n)630 1067 y Fh(This)j Fg(mo)s(de)45 b Fh(applies)38 b(to)j(the)f(next)g(\014le)f(men)m (tioned)h(in)f Ff(Checked-in)p Fh(.)67 b Ff(Mode)38 b Fh(is)h(a)i(\014le)630 1177 y(up)s(date)21 b(mo)s(difying)f(resp)s (onse)i(as)g(describ)s(ed)e(in)h(Section)h(5.9)i([Resp)s(onse)e(in)m (tro],)i(page)f(21.)150 1360 y Ff(Mod-time)28 b Fg(time)35 b Ff(\\n)630 1470 y Fh(Set)25 b(the)g(mo)s(di\014cation)e(time)i(of)g (the)g(next)g(\014le)f(sen)m(t)i(to)f Fg(time)p Fh(.)39 b Ff(Mod-time)23 b Fh(is)g(a)j(\014le)e(up)s(date)630 1579 y(mo)s(difying)29 b(resp)s(onse)i(as)i(describ)s(ed)d(in)g (Section)i(5.9)h([Resp)s(onse)f(in)m(tro],)g(page)h(21.)46 b(The)630 1689 y Fg(time)31 b Fh(is)24 b(in)h(the)h(format)g(sp)s (eci\014ed)e(b)m(y)h(RF)m(C822)j(as)e(mo)s(di\014ed)d(b)m(y)j(RF)m (C1123.)41 b(The)26 b(serv)m(er)630 1799 y(ma)m(y)33 b(sp)s(ecify)e(an)m(y)h(timezone)h(it)e(c)m(ho)s(oses;)k(clien)m(ts)c (will)f(w)m(an)m(t)j(to)f(con)m(v)m(ert)i(that)f(to)g(their)630 1908 y(o)m(wn)d(timezone)h(as)g(appropriate.)40 b(An)30 b(example)g(of)g(this)f(format)i(is:)870 2049 y Ff(26)47 b(May)g(1997)g(13:01:40)e(-0400)630 2195 y Fh(There)27 b(is)g(no)h(requiremen)m(t)f(that)i(the)f(clien)m(t)g(and)f(serv)m(er)h (clo)s(c)m(ks)g(b)s(e)g(sync)m(hronized.)38 b(The)630 2305 y(serv)m(er)31 b(just)e(sends)h(its)f(recommendation)h(for)g(a)h (timestamp)f(\(based)g(on)g(its)g(o)m(wn)g(clo)s(c)m(k,)630 2415 y(presumably\),)40 b(and)f(the)h(clien)m(t)f(should)e(just)i(b)s (eliev)m(e)g(it)g(\(this)g(means)g(that)i(the)e(time)630 2524 y(migh)m(t)30 b(b)s(e)g(in)f(the)h(future,)g(for)g(example\).)630 2671 y(If)35 b(the)g(serv)m(er)g(do)s(es)g(not)g(send)f Ff(Mod-time)f Fh(for)i(a)g(giv)m(en)g(\014le,)h(the)f(clien)m(t)g (should)e(pic)m(k)i(a)630 2780 y(mo)s(di\014cation)e(time)i(in)e(the)i (usual)e(w)m(a)m(y)j(\(usually)-8 b(,)35 b(just)f(let)g(the)h(op)s (erating)f(system)h(set)630 2890 y(the)c(mo)s(di\014cation)d(time)i(to) h(the)g(time)f(that)h(the)g(CVS)e(command)h(is)g(running\).)150 3073 y Ff(Checksum)e Fg(c)m(hec)m(ksum)p Ff(\\n)630 3183 y Fh(The)34 b Fg(c)m(hec)m(ksum)i Fh(applies)d(to)j(the)f(next)g (\014le)f(sen)m(t)h(\(that)h(is,)f Ff(Checksum)e Fh(is)h(a)h(\014le)f (up)s(date)630 3292 y(mo)s(difying)e(resp)s(onse)i(as)h(describ)s(ed)e (in)h(Section)g(5.9)i([Resp)s(onse)f(in)m(tro],)h(page)f(21\).)56 b(In)630 3402 y(the)25 b(case)h(of)g Ff(Patched)p Fh(,)e(the)h(c)m(hec) m(ksum)h(applies)d(to)j(the)f(\014le)g(after)g(b)s(eing)f(patc)m(hed,)j (not)e(to)630 3512 y(the)30 b(patc)m(h)g(itself.)40 b(The)29 b(clien)m(t)g(should)f(compute)i(the)g(c)m(hec)m(ksum)g(itself,)f (after)i(receiving)630 3621 y(the)43 b(\014le)g(or)g(patc)m(h,)k(and)c (signal)f(an)h(error)g(if)f(the)h(c)m(hec)m(ksums)h(do)f(not)g(matc)m (h.)80 b(The)630 3731 y(c)m(hec)m(ksum)36 b(is)e(the)i(128)g(bit)e(MD5) j(c)m(hec)m(ksum)f(represen)m(ted)f(as)g(32)h(hex)f(digits)f(\(MD5)j (is)630 3840 y(describ)s(ed)25 b(in)h(RF)m(C1321\).)43 b(This)25 b(resp)s(onse)i(is)f(optional,)i(and)f(is)f(only)h(used)f(if) h(the)g(clien)m(t)630 3950 y(supp)s(orts)h(it)i(\(as)h(judged)f(b)m(y)g (the)h Ff(Valid-responses)26 b Fh(request\).)150 4133 y Ff(Copy-file)i Fg(pathname)35 b Ff(\\n)630 4243 y Fh(Additional)e (data:)51 b Fg(newname)40 b Ff(\\)p Fh(n.)55 b(Cop)m(y)35 b(\014le)g Fg(pathname)40 b Fh(to)c Fg(newname)k Fh(in)34 b(the)i(same)630 4353 y(directory)30 b(where)g(it)g(already)g(is.)39 b(This)29 b(do)s(es)h(not)h(a\013ect)h Ff(CVS/Entries)p Fh(.)630 4499 y(This)h(can)i(optionally)e(b)s(e)g(implemen)m(ted)h(as)g (a)h(rename)g(instead)f(of)g(a)h(cop)m(y)-8 b(.)55 b(The)34 b(only)630 4609 y(use)f(for)g(it)g(whic)m(h)g(curren)m(tly)f(has)h(b)s (een)g(iden)m(ti\014ed)f(is)g(prior)g(to)i(a)g Ff(Merged)e Fh(resp)s(onse)h(as)630 4718 y(describ)s(ed)g(under)g Ff(Merged)p Fh(.)53 b(Clien)m(ts)34 b(can)h(probably)e(assume)i(that)h (is)e(ho)m(w)h(it)f(is)g(b)s(eing)630 4828 y(used,)j(if)d(they)j(w)m (an)m(t)f(to)h(w)m(orry)e(ab)s(out)h(things)f(lik)m(e)g(ho)m(w)h(long)f (to)i(k)m(eep)f(the)g Fg(newname)630 4937 y Fh(\014le)29 b(around.)150 5121 y Ff(Removed)f Fg(pathname)36 b Ff(\\n)630 5230 y Fh(The)26 b(\014le)g(has)g(b)s(een)g(remo)m(v)m(ed)h(from)f(the) h(rep)s(ository)e(\(this)h(is)g(the)g(case)i(where)e(cvs)g(prin)m(ts) 630 5340 y(`)p Ff(file)j(foobar.c)g(is)g(no)h(longer)f(pertinent)p Fh('\).)p eop %%Page: 25 25 25 24 bop 150 299 a Ff(Remove-entry)27 b Fg(pathname)35 b Ff(\\n)630 408 y Fh(The)26 b(\014le)f(needs)h(its)f(en)m(try)h(remo)m (v)m(ed)i(from)d Ff(CVS/Entries)p Fh(,)f(but)i(the)g(\014le)f(itself)g (is)g(already)630 518 y(gone)33 b(\(this)f(happ)s(ens)e(in)h(resp)s (onse)h(to)h(a)f Ff(ci)g Fh(request)g(whic)m(h)g(in)m(v)m(olv)m(es)g (committing)g(the)630 628 y(remo)m(v)-5 b(al)31 b(of)f(a)h(\014le\).) 150 786 y Ff(Set-static-directory)25 b Fg(pathname)35 b Ff(\\n)630 896 y Fh(This)30 b(instructs)g(the)i(clien)m(t)f(to)h(set) g(the)g Ff(Entries.Static)c Fh(\015ag,)k(whic)m(h)f(it)g(should)e(then) 630 1005 y(send)d(bac)m(k)i(to)g(the)f(serv)m(er)h(in)e(a)h Ff(Static-directory)c Fh(request)k(whenev)m(er)g(the)g(directory)630 1115 y(is)i(op)s(erated)i(on.)41 b Fg(pathname)35 b Fh(ends)30 b(in)f(a)i(slash;)f(its)f(purp)s(ose)g(is)h(to)h(sp)s(ecify)e(a)i (directory)-8 b(,)630 1224 y(not)31 b(a)f(\014le)g(within)e(a)i (directory)-8 b(.)150 1383 y Ff(Clear-static-directory)24 b Fg(pathname)36 b Ff(\\n)630 1492 y Fh(Lik)m(e)30 b Ff(Set-static-directory)p Fh(,)25 b(but)30 b(clear,)h(not)f(set,)h(the) g(\015ag.)150 1650 y Ff(Set-sticky)d Fg(pathname)35 b Ff(\\n)630 1760 y Fh(Additional)30 b(data:)45 b Fg(tagsp)s(ec)39 b Ff(\\)p Fh(n.)46 b(T)-8 b(ell)31 b(the)i(clien)m(t)f(to)h(set)g(a)g (stic)m(ky)f(tag)i(or)e(date,)i(whic)m(h)630 1870 y(should)g(b)s(e)i (supplied)d(with)i(the)h Ff(Sticky)f Fh(request)h(for)g(future)f(op)s (erations.)58 b Fg(pathname)630 1979 y Fh(ends)24 b(in)f(a)j(slash;)f (its)f(purp)s(ose)g(is)f(to)j(sp)s(ecify)d(a)i(directory)-8 b(,)26 b(not)f(a)h(\014le)d(within)g(a)i(directory)-8 b(.)630 2089 y(The)27 b(clien)m(t)f(should)g(store)h Fg(tagsp)s(ec)34 b Fh(and)27 b(pass)f(it)h(bac)m(k)h(to)g(the)f(serv)m (er)h(as-is,)g(to)f(allo)m(w)g(for)630 2198 y(future)k(expansion.)45 b(The)31 b(\014rst)g(c)m(haracter)j(of)e Fg(tagsp)s(ec)38 b Fh(is)32 b(`)p Ff(T)p Fh(')g(for)f(a)i(tag,)h(`)p Ff(D)p Fh(')e(for)g(a)g(date,)630 2308 y(or)e(something)g(else)g(for)g(future) g(expansion.)39 b(The)30 b(remainder)f(of)h Fg(tagsp)s(ec)37 b Fh(con)m(tains)31 b(the)630 2418 y(actual)g(tag)g(or)g(date.)150 2576 y Ff(Clear-sticky)c Fg(pathname)35 b Ff(\\n)630 2685 y Fh(Clear)30 b(an)m(y)g(stic)m(ky)h(tag)h(or)e(date)h(set)g(b)m (y)f Ff(Set-sticky)p Fh(.)150 2844 y Ff(Template)e Fg(pathname)35 b Ff(\\n)630 2953 y Fh(Additional)29 b(data:)42 b(\014le)30 b(transmission)f(\(note:)42 b(compressed)31 b(\014le)f(transmissions)e (are)k(not)630 3063 y(supp)s(orted\).)67 b Fg(pathname)44 b Fh(ends)39 b(in)f(a)i(slash;)j(its)c(purp)s(ose)f(is)g(to)j(sp)s (ecify)d(a)i(directory)-8 b(,)630 3173 y(not)29 b(a)h(\014le)e(within)e (a)j(directory)-8 b(.)41 b(T)-8 b(ell)28 b(the)h(clien)m(t)f(to)i (store)g(the)f(\014le)f(transmission)f(as)i(the)630 3282 y(template)24 b(log)f(message,)k(and)c(then)g(use)g(that)h(template)g (in)e(the)i(future)e(when)h(prompting)630 3392 y(the)31 b(user)e(for)h(a)h(log)g(message.)150 3550 y Ff(Set-checkin-prog)26 b Fg(dir)35 b Ff(\\n)630 3660 y Fh(Additional)20 b(data:)38 b Fg(prog)30 b Ff(\\)p Fh(n.)37 b(T)-8 b(ell)22 b(the)g(clien)m(t)g(to) i(set)f(a)g(c)m(hec)m(kin)g(program,)h(whic)m(h)d(should)630 3769 y(b)s(e)30 b(supplied)d(with)i(the)h Ff(Checkin-prog)d Fh(request)k(for)f(future)g(op)s(erations.)150 3927 y Ff(Set-update-prog)c Fg(dir)35 b Ff(\\n)630 4037 y Fh(Additional)k (data:)62 b Fg(prog)49 b Ff(\\)p Fh(n.)72 b(T)-8 b(ell)40 b(the)h(clien)m(t)f(to)i(set)g(an)e(up)s(date)h(program,)i(whic)m(h)630 4147 y(should)28 b(b)s(e)i(supplied)d(with)i(the)i Ff(Update-prog)c Fh(request)k(for)f(future)f(op)s(erations.)150 4305 y Ff(Notified)f Fg(pathname)35 b Ff(\\n)630 4415 y Fh(Indicate)29 b(to)i(the)f(clien)m(t)f(that)h(the)g(noti\014cation)f(for)h Fg(pathname)35 b Fh(has)29 b(b)s(een)g(done.)40 b(There)630 4524 y(should)19 b(b)s(e)h(one)h(suc)m(h)f(resp)s(onse)g(for)h(ev)m (ery)g Ff(Notify)e Fh(request;)25 b(if)19 b(there)i(are)h(sev)m(eral)f Ff(Notify)630 4634 y Fh(requests)39 b(for)f(a)i(single)d(\014le,)j(the) f(requests)g(should)e(b)s(e)h(pro)s(cessed)g(in)g(order;)43 b(the)c(\014rst)630 4743 y Ff(Notified)28 b Fh(resp)s(onse)i(p)s (ertains)e(to)j(the)g(\014rst)f Ff(Notify)e Fh(request,)j(etc.)150 4902 y Ff(Module-expansion)26 b Fg(pathname)35 b Ff(\\n)630 5011 y Fh(Return)c(a)i(\014le)e(or)h(directory)f(whic)m(h)g(is)g (included)f(in)g(a)j(particular)d(mo)s(dule.)44 b Fg(pathname)630 5121 y Fh(is)35 b(relativ)m(e)h(to)g(cvsro)s(ot,)j(unlik)m(e)34 b(most)i(pathnames)f(in)g(resp)s(onses.)56 b Fg(pathname)41 b Fh(should)630 5230 y(b)s(e)31 b(used)f(to)i(lo)s(ok)f(and)f(see)i (whether)f(some)g(or)h(all)e(of)h(the)g(mo)s(dule)f(exists)h(on)g(the)g (clien)m(t)630 5340 y(side;)37 b(it)e(is)g(not)h(necessarily)e (suitable)g(for)h(passing)g(as)g(an)h(argumen)m(t)g(to)g(a)g Ff(co)f Fh(request)p eop %%Page: 26 26 26 25 bop 630 299 a Fh(\(for)25 b(example,)h(if)e(the)h(mo)s(dules)e (\014le)g(con)m(tains)i(the)g(`)p Ff(-d)p Fh(')g(option,)h(it)e(will)e (b)s(e)i(the)h(directory)630 408 y(sp)s(eci\014ed)k(with)g(`)p Ff(-d)p Fh(',)h(not)h(the)f(name)h(of)f(the)h(mo)s(dule\).)150 585 y Ff(Wrapper-rcsOption)26 b Fg(pattern)k Ff(-k)g(')p Fg(option)p Ff(')f(\\n)630 695 y Fh(T)-8 b(ransmit)32 b(to)i(the)f(clien)m(t)g(a)g(\014lename)f(pattern)h(whic)m(h)f(implies) e(a)k(certain)f(k)m(eyw)m(ord)g(ex-)630 805 y(pansion)g(mo)s(de.)54 b(The)35 b Fg(pattern)g Fh(is)e(a)j(wildcard)c(pattern)j(\(for)g (example,)h(`)p Ff(*.exe)p Fh('.)53 b(The)630 914 y Fg(option)33 b Fh(is)f(`)p Ff(b)p Fh(')h(for)g(binary)-8 b(,)33 b(and)f(so)h(on.)49 b(Note)35 b(that)e(although)g(the)g(syn)m(tax)h(happ)s(ens)d(to)630 1024 y(resem)m(ble)h(the)h(syn)m(tax)h(in)d(certain)i(CVS)f (con\014guration)h(\014les,)f(it)h(is)e(more)i(constrained;)630 1133 y(there)44 b(m)m(ust)g(b)s(e)f(exactly)i(one)f(space)g(b)s(et)m(w) m(een)h Fg(pattern)f Fh(and)f(`)p Ff(-k)p Fh(')h(and)f(exactly)i(one) 630 1243 y(space)34 b(b)s(et)m(w)m(een)g(`)p Ff(-k)p Fh(')g(and)f(`)p Ff(')p Fh(',)i(and)e(no)g(string)g(is)f(p)s(ermitted)h (in)f(place)h(of)h(`)p Ff(-k)p Fh(')g(\(exten-)630 1353 y(sions)23 b(should)f(b)s(e)i(done)g(with)e(new)i(resp)s(onses,)h(not)f (b)m(y)g(extending)f(this)g(one,)j(for)e(graceful)630 1462 y(handling)k(of)i Ff(Valid-responses)p Fh(\).)150 1639 y Ff(M)g Fg(text)j Ff(\\n)115 b Fh(A)34 b(one-line)f(message)i (for)e(the)h(user.)50 b(Note)35 b(that)g(the)f(format)g(of)g Fg(text)i Fh(is)d(not)h(designed)630 1749 y(for)40 b(mac)m(hine)f (parsing.)68 b(Although)39 b(sometimes)h(scripts)e(and)i(clien)m(ts)f (will)e(ha)m(v)m(e)k(little)630 1858 y(c)m(hoice,)g(the)e(exact)h(text) f(whic)m(h)e(is)g(output)h(is)f(sub)5 b(ject)38 b(to)h(v)-5 b(ary)39 b(at)g(the)f(discretion)f(of)630 1968 y(the)27 b(serv)m(er)g(and)f(the)h(example)f(output)h(giv)m(en)f(in)g(this)f(do) s(cumen)m(t)i(is)f(just)g(that,)i(example)630 2078 y(output.)40 b(Serv)m(ers)29 b(are)h(encouraged)f(to)h(use)f(the)h(`)p Ff(MT)p Fh(')f(resp)s(onse,)f(and)h(future)f(v)m(ersions)h(of)630 2187 y(this)d(do)s(cumen)m(t)h(will)d(hop)s(efully)g(standardize)j (more)g(of)g(the)g(`)p Ff(MT)p Fh(')g(tags;)j(see)e(Section)e(5.12)630 2297 y([T)-8 b(ext)31 b(tags],)h(page)f(28.)150 2474 y Ff(Mbinary)d(\\n)630 2583 y Fh(Additional)h(data:)42 b(\014le)30 b(transmission)f(\(note:)42 b(compressed)31 b(\014le)f(transmissions)e(are)k(not)630 2693 y(supp)s(orted\).)70 b(This)39 b(is)h(lik)m(e)f(`)p Ff(M)p Fh(',)44 b(except)e(the)f(con)m (ten)m(ts)h(of)f(the)g(\014le)e(transmission)g(are)630 2803 y(binary)d(and)h(should)f(b)s(e)h(copied)g(to)h(standard)f(output) g(without)g(translation)f(to)j(lo)s(cal)630 2912 y(text)29 b(\014le)e(con)m(v)m(en)m(tions.)41 b(T)-8 b(o)28 b(transmit)f(a)h (text)h(\014le)e(to)i(standard)e(output,)h(serv)m(ers)g(should)630 3022 y(use)i(a)h(series)f(of)g(`)p Ff(M)p Fh(')h(requests.)150 3199 y Ff(E)f Fg(text)j Ff(\\n)115 b Fh(Same)30 b(as)h Ff(M)f Fh(but)g(send)f(to)i(stderr)f(not)h(stdout.)150 3376 y Ff(F)f(\\n)306 b Fh(Flush)23 b(stderr.)38 b(That)24 b(is,)h(mak)m(e)h(it)e(p)s(ossible)e(for)i(the)h(user)e(to)j(see)f (what)f(has)g(b)s(een)g(written)630 3485 y(to)30 b(stderr)e(\(it)h(is)f (up)g(to)h(the)h(implemen)m(tation)d(to)j(decide)e(exactly)i(ho)m(w)f (far)g(it)f(should)f(go)630 3595 y(to)k(ensure)f(this\).)150 3772 y Ff(MT)g Fg(tagname)37 b(data)31 b Ff(\\n)630 3882 y Fh(This)c(resp)s(onse)i(pro)m(vides)f(for)h(tagged)i(text.)41 b(It)29 b(is)f(similar)f(to)j(SGML/HTML/XML)g(in)630 3991 y(that)d(the)g(data)g(is)f(structured)g(and)g(a)h(naiv)m(e)f (application)f(can)i(also)g(mak)m(e)g(some)g(sense)g(of)630 4101 y(it)e(without)f(understanding)f(the)i(structure.)39 b(The)25 b(syn)m(tax)g(is)g(not)g(SGML-lik)m(e,)h(ho)m(w)m(ev)m(er,)630 4210 y(in)i(order)g(to)i(\014t)e(in)m(to)h(the)g(CVS)g(proto)s(col)f(b) s(etter)h(and)g(\(more)g(imp)s(ortan)m(tly\))f(to)h(mak)m(e)h(it)630 4320 y(easier)g(to)h(parse,)g(esp)s(ecially)d(in)h(a)i(language)g(lik)m (e)f(p)s(erl)e(or)j(a)m(wk.)630 4463 y(The)36 b Fg(tagname)43 b Fh(can)37 b(ha)m(v)m(e)h(sev)m(eral)f(forms.)59 b(If)36 b(it)g(starts)h(with)f(`)p Ff(a)p Fh(')h(to)g(`)p Ff(z)p Fh(')g(or)f(`)p Ff(A)p Fh(')h(to)h(`)p Ff(Z)p Fh(',)630 4573 y(then)28 b(it)f(represen)m(ts)h(tagged)i(text.)41 b(If)27 b(the)i(implemen)m(tation)d(recognizes)j Fg(tagname)p Fh(,)h(then)630 4682 y(it)36 b(ma)m(y)h(in)m(terpret)e Fg(data)i Fh(in)e(some)i(particular)e(fashion.)57 b(If)36 b(the)g(implemen)m(tation)f(do)s(es)630 4792 y(not)24 b(recognize)g Fg(tagname)p Fh(,)j(then)c(it)g(should)f(simply)f(treat)k Fg(data)f Fh(as)g(text)h(to)f(b)s(e)f(sen)m(t)h(to)h(the)630 4902 y(user)h(\(similar)d(to)k(an)f(`)p Ff(M)p Fh(')h(resp)s(onse\).)39 b(There)25 b(are)i(t)m(w)m(o)g(tags)h(whic)m(h)d(are)h(general)g(purp)s (ose.)630 5011 y(The)k(`)p Ff(text)p Fh(')g(tag)i(is)d(similar)f(to)k (an)e(unrecognized)g(tag)i(in)d(that)i(it)f(pro)m(vides)g(text)h(whic)m (h)630 5121 y(will)26 b(ordinarily)f(b)s(e)i(sen)m(t)i(to)g(the)g (user.)39 b(The)28 b(`)p Ff(newline)p Fh(')f(tag)i(is)f(used)f(without) h Fg(data)h Fh(and)630 5230 y(indicates)24 b(that)j(a)e(newline)f(will) f(ordinarily)f(b)s(e)j(sen)m(t)h(to)g(the)g(user)f(\(there)h(is)e(no)i (pro)m(vision)630 5340 y(for)k(em)m(b)s(edding)f(newlines)f(in)h(the)i Fg(data)g Fh(of)f(other)h(tagged)h(text)f(resp)s(onses\).)p eop %%Page: 27 27 27 26 bop 630 299 a Fh(If)39 b Fg(tagname)46 b Fh(starts)40 b(with)e(`)p Ff(+)p Fh(')h(it)g(indicates)f(a)i(start)g(tag)h(and)e(if) f(it)h(starts)h(with)e(`)p Ff(-)p Fh(')h(it)630 408 y(indicates)25 b(an)h(end)f(tag.)41 b(The)25 b(remainder)f(of)j Fg(tagname)32 b Fh(should)24 b(b)s(e)h(the)i(same)f(for)g(matc)m(h-)630 518 y(ing)k(start)h(and)e(end)h(tags,)i(and)e(tags)h(should)e(b)s(e)g (nested)i(\(for)f(example)h(one)f(could)g(ha)m(v)m(e)630 628 y(tags)g(in)f(the)g(follo)m(wing)f(order)h Ff(+bold)f(+italic)f (text)i(-italic)e(-bold)h Fh(but)h(not)g Ff(+bold)630 737 y(+italic)j(text)h(-bold)f(-italic)p Fh(\).)50 b(A)34 b(particular)e(start)i(and)f(end)h(tag)h(ma)m(y)f(b)s(e)f(do)s(cu-)630 847 y(men)m(ted)e(to)g(constrain)f(the)g(tagged)i(text)f(resp)s(onses)f (whic)m(h)f(are)i(v)-5 b(alid)28 b(b)s(et)m(w)m(een)j(them.)630 977 y(Note)43 b(that)f(if)e Fg(data)i Fh(is)e(presen)m(t)i(there)f (will)e(alw)m(a)m(ys)j(b)s(e)f(exactly)h(one)f(space)h(b)s(et)m(w)m (een)630 1086 y Fg(tagname)35 b Fh(and)27 b Fg(data)p Fh(;)j(if)d(there)i(is)e(more)h(than)g(one)h(space,)g(then)f(the)h (spaces)f(b)s(ey)m(ond)g(the)630 1196 y(\014rst)i(are)g(part)h(of)f Fg(data)p Fh(.)630 1326 y(Here)f(is)e(an)i(example)f(of)h(some)f (tagged)j(text)e(resp)s(onses.)39 b(Note)30 b(that)f(there)g(is)e(a)i (trailing)630 1435 y(space)i(after)g(`)p Ff(Checking)d(in)p Fh(')j(and)f(`)p Ff(initial)e(revision:)p Fh(')g(and)i(there)h(are)g(t) m(w)m(o)h(trailing)630 1545 y(spaces)f(after)g(`)p Ff(<--)p Fh('.)40 b(Suc)m(h)30 b(trailing)e(spaces)j(are,)g(of)g(course,)f(part) h(of)f Fg(data)p Fh(.)870 1669 y Ff(MT)47 b(+checking-in)870 1773 y(MT)g(text)g(Checking)e(in)870 1876 y(MT)i(fname)g(gz.tst)870 1980 y(MT)g(text)g(;)870 2084 y(MT)g(newline)870 2188 y(MT)g(rcsfile)f(/home/kingdon/zwork/cvsr)o(oot/)o(foo/)o(gz.)o(tst,)o (v)870 2292 y(MT)h(text)142 b(<--)870 2395 y(MT)47 b(fname)g(gz.tst)870 2499 y(MT)g(newline)870 2603 y(MT)g(text)g(initial)f(revision:)870 2707 y(MT)h(init-rev)f(1.1)870 2810 y(MT)h(newline)870 2914 y(MT)g(text)g(done)870 3018 y(MT)g(newline)870 3122 y(MT)g(-checking-in)630 3252 y Fh(If)34 b(the)h(clien)m(t)f(do)s(es)h (not)g(supp)s(ort)e(the)i(`)p Ff(MT)p Fh(')f(resp)s(onse,)h(the)g(same) g(resp)s(onses)f(migh)m(t)h(b)s(e)630 3361 y(sen)m(t)c(as:)870 3485 y Ff(M)47 b(Checking)f(in)h(gz.tst;)870 3589 y(M)g (/home/kingdon/zwork/cvsroo)o(t/fo)o(o/g)o(z.ts)o(t,v)89 b(<--)95 b(gz.tst)870 3693 y(M)47 b(initial)f(revision:)g(1.1)870 3796 y(M)h(done)630 3926 y Fh(F)-8 b(or)31 b(a)g(list)e(of)h(sp)s (eci\014c)g(tags,)h(see)g(Section)f(5.12)i([T)-8 b(ext)32 b(tags],)g(page)f(28.)150 4076 y Ff(error)e Fg(errno-co)s(de)36 b Ff(`)47 b(')30 b Fg(text)j Ff(\\n)630 4186 y Fh(The)k(command)h (completed)f(with)f(an)i(error.)62 b Fg(errno-co)s(de)43 b Fh(is)36 b(a)i(sym)m(b)s(olic)e(error)i(co)s(de)630 4296 y(\(e.g.)h Ff(ENOENT)p Fh(\);)24 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)630 4405 y(for)30 b(this)g(particular)e(message,)k(it)e (just)g(omits)g(the)h(errno-co)s(de)g(\(in)e(that)i(case)h(there)f(are) 630 4515 y(t)m(w)m(o)37 b(spaces)f(after)g(`)p Ff(error)p Fh('\).)56 b(T)-8 b(ext)36 b(is)f(an)h(error)f(message)h(suc)m(h)g(as)g (that)g(pro)m(vided)e(b)m(y)630 4624 y(strerror\(\),)d(or)f(an)m(y)h (other)g(message)g(the)g(serv)m(er)g(w)m(an)m(ts)g(to)g(use.)41 b(The)30 b Fg(text)j Fh(is)d(lik)m(e)g(the)g Ff(M)630 4734 y Fh(resp)s(onse,)c(in)f(the)i(sense)f(that)h(it)f(is)f(not)i (particularly)d(in)m(tended)h(to)i(b)s(e)e(mac)m(hine-parsed;)630 4843 y(serv)m(ers)34 b(ma)m(y)h(wish)d(to)j(prin)m(t)d(an)i(error)g (message)h(with)e Ff(MT)g Fh(resp)s(onses,)h(and)f(then)h(issue)630 4953 y(a)f Ff(error)e Fh(resp)s(onse)h(without)f Fg(text)36 b Fh(\(although)c(it)g(should)f(b)s(e)h(noted)h(that)g Ff(MT)f Fh(curren)m(tly)630 5063 y(has)e(no)f(w)m(a)m(y)i(of)f (\015agging)g(the)g(output)g(as)g(in)m(tended)f(for)g(standard)h (error,)f(the)h(w)m(a)m(y)h(that)630 5172 y(the)g Ff(E)f Fh(resp)s(onse)f(do)s(es\).)150 5322 y Ff(ok)h(\\n)258 b Fh(The)30 b(command)g(completed)g(successfully)-8 b(.)p eop %%Page: 28 28 28 27 bop 150 299 a Fc(5.12)68 b(T)-11 b(ags)45 b(for)g(the)h(MT)d (tagged)k(text)e(resp)t(onse)275 490 y Fh(The)30 b Ff(MT)g Fh(resp)s(onse,)g(as)h(describ)s(ed)d(in)i(Section)g(5.11)j([Resp)s (onses],)d(page)i(22,)g(o\013ers)f(a)g(w)m(a)m(y)g(for)g(the)150 600 y(serv)m(er)g(to)g(send)f(tagged)i(text)g(to)f(the)g(clien)m(t.)41 b(This)29 b(section)i(describ)s(es)d(sp)s(eci\014c)i(tags.)42 b(The)30 b(in)m(ten)m(tion)150 709 y(is)f(to)j(up)s(date)d(this)g (section)i(as)g(serv)m(ers)f(add)g(new)g(tags.)275 843 y(In)37 b(the)h(follo)m(wing)f(descriptions,)i Ff(text)e Fh(and)g Ff(newline)f Fh(tags)k(are)e(omitted.)65 b(Suc)m(h)37 b(tags)j(con)m(tain)150 952 y(information)31 b(whic)m(h)g(is)h(in)m (tended)f(for)h(users)g(\(or)h(to)g(b)s(e)f(discarded\),)g(and)g(are)h (sub)5 b(ject)32 b(to)i(c)m(hange)f(at)150 1062 y(the)28 b(whim)d(of)j(the)f(serv)m(er.)40 b(T)-8 b(o)28 b(a)m(v)m(oid)g(b)s (eing)e(vulnerable)g(to)i(suc)m(h)f(whim,)f(clien)m(ts)h(should)e(lo)s (ok)j(for)f(the)150 1171 y(tags)k(listed)e(here,)i(not)f Ff(text)p Fh(,)g Ff(newline)p Fh(,)f(or)h(other)h(tags.)275 1304 y(The)d(follo)m(wing)g(tag)i(means)f(to)h(indicate)e(to)i(the)g (user)e(that)i(a)g(\014le)e(has)h(b)s(een)f(up)s(dated.)39 b(It)30 b(is)e(more)150 1414 y(or)33 b(less)g(redundan)m(t)e(with)h (the)i Ff(Created)d Fh(and)h Ff(Update-existing)d Fh(resp)s(onses,)k (but)g(w)m(e)g(don't)g(try)g(to)150 1524 y(sp)s(ecify)d(here)h(whether) f(it)h(o)s(ccurs)f(in)g(exactly)i(the)f(same)g(circumstances)g(as)g Ff(Created)e Fh(and)i Ff(Update-)150 1633 y(existing)p Fh(.)38 b(The)29 b Fg(name)34 b Fh(is)29 b(the)g(pathname)g(of)h(the)f (\014le)g(b)s(eing)f(up)s(dated)g(relativ)m(e)h(to)h(the)f(directory)g (in)150 1743 y(whic)m(h)j(the)h(command)g(is)f(o)s(ccurring)f(\(that)j (is,)f(the)h(last)e Ff(Directory)f Fh(request)i(whic)m(h)f(is)g(sen)m (t)h(b)s(efore)150 1852 y(the)e(command\).)390 1980 y Ff(MT)47 b(+updated)390 2084 y(MT)g(fname)g Fg(name)390 2187 y Ff(MT)g(-updated)275 2320 y Fh(The)30 b Ff(importmergecmd)d Fh(tag)32 b(is)e(used)h(when)f(doing)g(an)h(imp)s(ort)e(whic)m(h)h(has) h(con\015icts.)42 b(The)30 b(clien)m(t)150 2430 y(can)e(use)f(it)h(to)g (rep)s(ort)f(ho)m(w)h(to)g(merge)h(in)d(the)i(newly)e(imp)s(orted)g(c)m (hanges.)41 b(The)27 b Fg(coun)m(t)k Fh(is)26 b(the)i(n)m(um)m(b)s(er) 150 2540 y(of)23 b(con\015icts.)38 b(The)23 b(newly)e(imp)s(orted)h(c)m (hanges)i(can)f(b)s(e)f(merged)h(b)m(y)g(running)d(the)j(follo)m(wing)f (command:)390 2667 y Ff(cvs)47 b(checkout)e(-j)j Fg(tag1)56 b Ff(-j)47 b Fg(tag2)57 b(rep)s(ository)390 2794 y Ff(MT)47 b(+importmergecmd)390 2898 y(MT)g(conflicts)e Fg(coun)m(t)390 3002 y Ff(MT)i(mergetag1)e Fg(tag1)390 3106 y Ff(MT)i(mergetag2)e Fg(tag2)390 3209 y Ff(MT)i(repository)e Fg(rep)s(ository)390 3313 y Ff(MT)i(-importmergecmd)150 3567 y Fc(5.13)68 b(Example)275 3758 y Fh(Here)31 b(is)e(an)i(example;)f(lines)f(are)i (pre\014xed)f(b)m(y)g(`)p Ff(C:)g Fh(')h(to)g(indicate)f(the)h(clien)m (t)f(sends)g(them)g(or)h(`)p Ff(S:)f Fh(')150 3867 y(to)h(indicate)f (the)g(serv)m(er)h(sends)e(them.)275 4001 y(The)h(clien)m(t)g(starts)i (b)m(y)e(connecting,)i(sending)d(the)i(ro)s(ot,)h(and)e(completing)g (the)h(proto)s(col)g(negotia-)150 4110 y(tion.)40 b(In)30 b(actual)h(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)f(b)s(e)h(longer.)390 4238 y Ff(C:)47 b(Root)g(/u/cvsroot)390 4341 y(C:)g(Valid-responses)d (ok)j(error)f(Checked-in)f(M)j(E)390 4445 y(C:)f(valid-requests)390 4549 y(S:)g(Valid-requests)d(Root)j(Directory)e(Entry)h(Modified)g (Argument)f(Argumentx)h(ci)h(co)390 4653 y(S:)g(ok)390 4756 y(C:)g(UseUnchanged)275 4890 y Fh(The)32 b(clien)m(t)h(w)m(an)m (ts)h(to)g(c)m(hec)m(k)h(out)e(the)h Ff(supermunger)c Fh(mo)s(dule)h(in)m(to)i(a)h(fresh)e(w)m(orking)h(directory)-8 b(.)150 4999 y(Therefore)26 b(it)g(\014rst)g(expands)g(the)h Ff(supermunger)c Fh(mo)s(dule;)k(this)e(step)i(w)m(ould)e(b)s(e)h (omitted)h(if)f(the)g(clien)m(t)150 5109 y(w)m(as)31 b(op)s(erating)f(on)g(a)h(directory)e(rather)i(than)f(a)h(mo)s(dule.) 390 5236 y Ff(C:)47 b(Argument)f(supermunger)390 5340 y(C:)h(Directory)e(.)p eop %%Page: 29 29 29 28 bop 390 299 a Ff(C:)47 b(/u/cvsroot)390 403 y(C:)g (expand-modules)275 549 y Fh(The)28 b(serv)m(er)h(replies)d(that)k(the) e Ff(supermunger)e Fh(mo)s(dule)h(expands)h(to)h(the)g(directory)f Ff(supermunger)150 659 y Fh(\(the)j(simplest)d(case\):)390 800 y Ff(S:)47 b(Module-expansion)d(supermunger)390 903 y(S:)j(ok)275 1050 y Fh(The)28 b(clien)m(t)h(then)g(pro)s(ceeds)f(to)i (c)m(hec)m(k)h(out)e(the)g(directory)-8 b(.)41 b(The)28 b(fact)i(that)g(it)e(sends)h(only)f(a)h(single)150 1160 y Ff(Directory)38 b Fh(request)i(whic)m(h)e(sp)s(eci\014es)h(`)p Ff(.)p Fh(')h(for)g(the)h(w)m(orking)e(directory)h(means)g(that)g (there)h(is)e(not)150 1269 y(already)30 b(a)h Ff(supermunger)c Fh(directory)j(on)g(the)h(clien)m(t.)390 1410 y Ff(C:)47 b(Argument)f(-N)390 1514 y(C:)h(Argument)f(supermunger)390 1618 y(C:)h(Directory)e(.)390 1721 y(C:)i(/u/cvsroot)390 1825 y(C:)g(co)275 1972 y Fh(The)e(serv)m(er)h(replies)e(with)g(the)i (requested)g(\014les.)85 b(In)45 b(this)g(example,)k(there)d(is)f(only) g(one)h(\014le,)150 2081 y(`)p Ff(mungeall.c)p Fh('.)c(The)31 b Ff(Clear-sticky)d Fh(and)j Ff(Clear-static-directory)26 b Fh(requests)31 b(are)h(sen)m(t)g(b)m(y)g(the)150 2191 y(curren)m(t)f(implemen)m(tation)e(but)h(they)h(ha)m(v)m(e)h(no)f (e\013ect)h(b)s(ecause)f(the)g(default)f(is)g(for)g(those)h(settings)g (to)150 2301 y(b)s(e)f(clear)g(when)g(a)g(directory)g(is)g(newly)f (created.)390 2441 y Ff(S:)47 b(Clear-sticky)e(supermunger/)390 2545 y(S:)i(/u/cvsroot/supermunger/)390 2649 y(S:)g (Clear-static-directory)42 b(supermunger/)390 2753 y(S:)47 b(/u/cvsroot/supermunger/)390 2856 y(S:)g(E)h(cvs)f(server:)e(Updating) h(supermunger)390 2960 y(S:)h(M)h(U)f(supermunger/mungeall.c)390 3064 y(S:)g(Created)f(supermunger/)390 3168 y(S:)h (/u/cvsroot/supermunger/mu)o(ngea)o(ll.)o(c)390 3272 y(S:)g(/mungeall.c/1.1///)390 3375 y(S:)g(u=rw,g=r,o=r)390 3479 y(S:)g(26)390 3583 y(S:)g(int)g(mein)g(\(\))g({)g(abort)g(\(\);)g (})390 3687 y(S:)g(ok)275 3833 y Fh(The)38 b(curren)m(t)i(clien)m(t)f (implemen)m(tation)f(w)m(ould)g(break)h(the)h(connection)f(here)g(and)g (mak)m(e)i(a)e(new)150 3943 y(connection)33 b(for)f(the)g(next)h (command.)46 b(Ho)m(w)m(ev)m(er,)35 b(the)e(proto)s(col)f(allo)m(ws)g (it)g(to)h(k)m(eep)g(the)g(connection)150 4052 y(op)s(en)d(and)f(con)m (tin)m(ue,)i(whic)m(h)e(is)h(what)g(w)m(e)h(sho)m(w)f(here.)275 4199 y(After)k(the)h(user)f(mo)s(di\014es)e(the)j(\014le)f(and)f (instructs)h(the)g(clien)m(t)g(to)h(c)m(hec)m(k)h(it)e(bac)m(k)i(in.)51 b(The)34 b(clien)m(t)150 4309 y(sends)29 b(argumen)m(ts)i(to)g(sp)s (ecify)e(the)i(log)f(message)i(and)e(\014le)f(to)i(c)m(hec)m(k)h(in:) 390 4449 y Ff(C:)47 b(Argument)f(-m)390 4553 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)390 4657 y(C:)g(Argumentx)e(this)i(typo)g(and)g(I)g(searched)f(and)h (searched)e(and)i(eventually)390 4761 y(C:)g(Argumentx)e(had)i(to)h (ask)e(John)h(for)g(help.)390 4865 y(C:)g(Argument)f(mungeall.c)275 5011 y Fh(It)d(also)g(sends)f(information)f(ab)s(out)i(the)g(con)m(ten) m(ts)h(of)f(the)h(w)m(orking)e(directory)-8 b(,)46 b(including)40 b(the)150 5121 y(new)33 b(con)m(ten)m(ts)i(of)e(the)g(mo)s(di\014ed)e (\014le.)49 b(Note)34 b(that)g(the)g(user)e(has)h(c)m(hanged)h(in)m(to) f(the)h(`)p Ff(supermunger)p Fh(')150 5230 y(directory)h(b)s(efore)g (executing)g(this)f(command;)k(the)d(top)h(lev)m(el)f(directory)g(is)f (a)i(user-visible)c(concept)150 5340 y(b)s(ecause)e(the)h(serv)m(er)g (should)d(prin)m(t)h(\014lenames)g(in)g Ff(M)h Fh(and)g Ff(E)g Fh(resp)s(onses)g(relativ)m(e)g(to)h(that)g(directory)-8 b(.)p eop %%Page: 30 30 30 29 bop 390 299 a Ff(C:)47 b(Directory)e(.)390 403 y(C:)i(/u/cvsroot/supermunger)390 506 y(C:)g(Entry)g (/mungeall.c/1.1///)390 610 y(C:)g(Modified)f(mungeall.c)390 714 y(C:)h(u=rw,g=r,o=r)390 818 y(C:)g(26)390 922 y(C:)g(int)g(main)g (\(\))g({)g(abort)g(\(\);)g(})275 1056 y Fh(And)36 b(\014nally)-8 b(,)37 b(the)g(clien)m(t)f(issues)g(the)h(c)m(hec)m(kin)g(command)g (\(whic)m(h)f(mak)m(es)i(use)f(of)g(the)g(data)h(just)150 1166 y(sen)m(t\):)390 1294 y Ff(C:)47 b(ci)275 1429 y Fh(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:)390 1557 y Ff(S:)47 b(M)h(Checking)d(in)i (mungeall.c;)390 1661 y(S:)g(E)h(/u/cvsroot/supermunger/)o(mung)o(eal)o (l.c,)o(v)90 b(<--)k(mungeall.c)390 1765 y(S:)47 b(E)h(new)f(revision:) e(1.2;)h(previous)g(revision:)f(1.1)390 1869 y(S:)i(E)h(done)390 1973 y(S:)f(Mode)g(u=rw,g=r,o=r)390 2076 y(S:)g(Checked-in)e(./)390 2180 y(S:)i(/u/cvsroot/supermunger/mu)o(ngea)o(ll.)o(c)390 2284 y(S:)g(/mungeall.c/1.2///)390 2388 y(S:)g(ok)150 2645 y Fc(5.14)68 b(Required)46 b(v)l(ersus)f(optional)h(parts)g(of)f (the)g(proto)t(col)275 2838 y Fh(The)d(follo)m(wing)g(are)h(part)g(of)h (ev)m(ery)g(kno)m(wn)e(implemen)m(tation)g(of)i(the)f(CVS)f(proto)s (col)i(\(except)150 2947 y(obsolete,)35 b(pre-1.5,)h(v)m(ersions)d(of)g (CVS\))h(and)f(it)g(is)f(considered)h(reasonable)g(b)s(eha)m(vior)g(to) h(completely)150 3057 y(fail)44 b(to)j(w)m(ork)f(if)e(y)m(ou)i(are)g (connected)h(with)d(an)i(implemen)m(tation)e(whic)m(h)h(attempts)h(to)h (not)f(sup-)150 3166 y(p)s(ort)k(them.)102 b(Requests:)81 b Ff(Root)p Fh(,)55 b Ff(Valid-responses)p Fh(,)d Ff(valid-requests)p Fh(,)g Ff(Directory)p Fh(,)h Ff(Entry)p Fh(,)150 3276 y Ff(Modified)p Fh(,)48 b Ff(Unchanged)p Fh(,)g Ff(Argument)p Fh(,)g Ff(Argumentx)p Fh(,)g Ff(ci)p Fh(,)h Ff(co)p Fh(,)h Ff(update)p Fh(.)86 b(Resp)s(onses:)71 b Ff(ok)p Fh(,)50 b Ff(error)p Fh(,)150 3386 y Ff(Valid-requests)p Fh(,)27 b Ff(Checked-in)p Fh(,)h Ff(Updated)p Fh(,)g Ff(Merged)p Fh(,)h Ff(Removed)p Fh(,)g Ff(M)p Fh(,)h Ff(E)p Fh(.)275 3520 y(A)37 b(serv)m(er)g(need)g(not)g(implemen)m(t)f Ff(Repository)p Fh(,)g(but)h(in)f(order)g(to)i(in)m(terop)s(erate)g (with)d(CVS)i(1.5)150 3630 y(through)23 b(1.9)i(it)e(m)m(ust)h(claim)e (to)j(implemen)m(t)d(it)h(\(in)g Ff(Valid-requests)p Fh(\).)35 b(The)23 b(clien)m(t)g(will)e(not)j(actually)150 3739 y(send)30 b(the)g(request.)150 3997 y Fc(5.15)68 b(Obsolete)47 b(proto)t(col)e(elemen)l(ts)275 4189 y Fh(This)26 b(section)i(brie\015y)e(describ)s(es)g(proto)s(col)i(elemen) m(ts)h(whic)m(h)d(are)j(obsolete.)40 b(There)28 b(is)f(no)h(attempt)150 4299 y(to)j(do)s(cumen)m(t)f(them)h(in)e(full)f(detail.)275 4433 y(There)43 b(w)m(as)g(a)h Ff(Repository)d Fh(request)i(whic)m(h)g (w)m(as)h(lik)m(e)e Ff(Directory)f Fh(except)k(it)e(only)f(pro)m(vided) 150 4543 y Fg(rep)s(ository)p Fh(,)30 b(and)f(the)i(lo)s(cal)f (directory)f(w)m(as)i(assumed)f(to)h(b)s(e)f(similarly)d(named.)275 4677 y(If)39 b(the)i Ff(UseUnchanged)c Fh(request)j(w)m(as)h(not)g(sen) m(t,)i(there)e(w)m(as)f(a)h Ff(Lost)e Fh(request)i(whic)m(h)e(w)m(as)h (sen)m(t)150 4787 y(to)c(indicate)f(that)h(a)g(\014le)e(did)g(not)i (exist)f(in)f(the)i(w)m(orking)f(directory)-8 b(,)37 b(and)d(the)i(meaning)f(of)h(sending)150 4897 y Ff(Entries)c Fh(without)g Ff(Lost)g Fh(or)i Ff(Modified)d Fh(w)m(as)j(di\013eren)m (t.)50 b(All)32 b(curren)m(t)h(clien)m(ts)g(\(CVS)g(1.5)i(and)e (later\))150 5006 y(will)28 b(send)h Ff(UseUnchanged)e Fh(if)j(it)g(is)f(supp)s(orted.)p eop %%Page: 31 31 31 30 bop 150 299 a Fi(6)80 b(Notes)53 b(on)g(the)g(Proto)t(col)275 558 y Fh(A)33 b(n)m(um)m(b)s(er)f(of)i(enhancemen)m(ts)g(are)g(p)s (ossible.)48 b(Also)33 b(see)h(the)g(\014le)e Fd(todo)h Fh(in)f(the)i Fd(cvs)e Fh(source)i(dis-)150 668 y(tribution,)27 b(whic)m(h)g(has)i(further)e(ideas)h(concerning)g(v)-5 b(arious)27 b(asp)s(ects)i(of)g Fd(cvs)p Fh(,)f(some)h(of)g(whic)m(h)e (impact)150 777 y(the)f(proto)s(col.)40 b(Similarly)-8 b(,)24 b(the)i Ff(http://www.cyclic.com)21 b Fh(site,)27 b(in)e(particular)g(the)h Fg(Dev)m(elopmen)m(t)i(of)150 887 y(CVS)35 b Fh(page.)225 1030 y Fe(\017)60 b Fh(The)37 b Ff(Modified)f Fh(request)i(could)f(b)s(e)g(sp)s(eeded)g(up)g(b)m(y)h (sending)e(di\013s)h(rather)g(than)h(en)m(tire)g(\014les.)330 1140 y(The)f(clien)m(t)f(w)m(ould)g(need)h(some)h(w)m(a)m(y)g(to)g(k)m (eep)g(the)f(v)m(ersion)g(of)g(the)h(\014le)e(whic)m(h)g(w)m(as)i (originally)330 1249 y(c)m(hec)m(k)m(ed)c(out;)g(probably)d(requiring)f (the)j(use)f(of)g Ff(")p Fh(cvs)h(edit)p Ff(")e Fh(in)g(this)h(case)h (is)f(the)g(most)h(sensible)330 1359 y(course)f(\(the)g Ff(")p Fh(cvs)f(edit)p Ff(")g Fh(could)f(b)s(e)h(handled)f(b)m(y)h(a)h (pac)m(k)-5 b(age)33 b(lik)m(e)e(V)m(C)h(for)f(emacs\).)45 b(This)30 b(w)m(ould)330 1468 y(also)g(allo)m(w)g(lo)s(cal)g(op)s (eration)g(of)g Ff(cvs)g(diff)f Fh(without)g(argumen)m(ts.)225 1607 y Fe(\017)60 b Fh(The)33 b(fact)h(that)g Ff(pserver)d Fh(requires)h(an)h(extra)h(net)m(w)m(ork)g(turnaround)d(in)h(order)h (to)h(p)s(erform)e(au-)330 1717 y(then)m(tication)45 b(w)m(ould)e(b)s(e)h(nice)g(to)i(a)m(v)m(oid.)84 b(This)43 b(relates)i(to)g(the)g(issue)e(of)i(rep)s(orting)e(errors;)330 1826 y(probably)35 b(the)h(clean)g(solution)f(is)h(to)h(defer)f(the)g (error)g(un)m(til)f(the)h(clien)m(t)g(has)g(issued)f(a)i(request)330 1936 y(whic)m(h)28 b(exp)s(ects)i(a)f(resp)s(onse.)40 b(T)-8 b(o)29 b(some)h(exten)m(t)h(this)d(migh)m(t)h(relate)h(to)g(the) f(next)h(item)f(\(in)f(terms)330 2045 y(of)33 b(ho)m(w)f(easy)h(it)f (is)g(to)h(skip)e(a)i(whole)f(bunc)m(h)f(of)i(requests)f(un)m(til)f(w)m (e)i(get)h(to)f(one)g(that)g(exp)s(ects)g(a)330 2155 y(resp)s(onse\).)40 b(I)30 b(kno)m(w)h(that)f(the)h(k)m(erb)s(eros)f (co)s(de)h(do)s(esn't)f(w)m(ait)g(in)f(this)g(fashion,)h(but)f(that)i (proba-)330 2265 y(bly)24 b(can)h(cause)h(net)m(w)m(ork)g(deadlo)s(c)m (ks)f(and)g(p)s(erhaps)e(future)i(problems)e(running)g(o)m(v)m(er)j(a)g (transp)s(ort)330 2374 y(whic)m(h)e(is)h(more)g(transaction)h(orien)m (ted)f(than)g(TCP)-8 b(.)25 b(On)g(the)g(other)h(hand)e(I'm)h(not)h (sure)f(it)f(is)h(wise)330 2484 y(to)39 b(mak)m(e)h(the)e(clien)m(t)g (conduct)h(a)g(length)m(y)f(upload)f(only)h(to)h(\014nd)e(there)i(is)e (an)i(authen)m(tication)330 2593 y(failure.)225 2732 y Fe(\017)60 b Fh(The)50 b(proto)s(col)h(uses)f(an)h(extra)h(net)m(w)m (ork)f(turnaround)e(for)h(proto)s(col)h(negotiation)g(\()p Ff(valid-)330 2842 y(requests)p Fh(\).)38 b(It)28 b(migh)m(t)g(b)s(e)f (nice)g(to)i(a)m(v)m(oid)g(this)d(b)m(y)i(ha)m(ving)g(the)g(clien)m(t)f (b)s(e)h(able)f(to)i(send)e(requests)330 2951 y(and)38 b(tell)g(the)g(serv)m(er)h(to)g(ignore)g(them)f(if)g(they)g(are)h (unrecognized)f(\(di\013eren)m(t)g(requests)h(could)330 3061 y(pro)s(duce)33 b(a)i(fatal)g(error)f(if)g(unrecognized\).)53 b(T)-8 b(o)35 b(do)g(this)e(there)i(should)e(b)s(e)h(a)h(standard)e (syn)m(tax)330 3170 y(for)39 b(requests.)69 b(F)-8 b(or)40 b(example,)i(p)s(erhaps)c(all)h(future)f(requests)i(should)d(b)s(e)i(a) h(single)f(line,)h(with)330 3280 y(mec)m(hanisms)30 b(analogous)h(to)h Ff(Argumentx)p Fh(,)d(or)i(sev)m(eral)g(requests)g(w)m(orking)f (together,)j(to)f(pro)m(vide)330 3390 y(greater)e(amoun)m(ts)g(of)f (information.)39 b(Or)29 b(there)g(migh)m(t)g(b)s(e)g(a)g(standard)g (mec)m(hanism)f(for)h(coun)m(ted)330 3499 y(data)40 b(\(analogous)g(to) g(that)g(used)e(b)m(y)h Ff(Modified)p Fh(\))f(or)h(con)m(tin)m(uation)g (lines)f(\(lik)m(e)h(a)g(generalized)330 3609 y Ff(Argumentx)p Fh(\).)45 b(It)32 b(w)m(ould)g(b)s(e)g(useful)e(to)j(compare)g(what)g (HTTP)f(is)f(planning)f(in)h(this)g(area;)k(last)330 3718 y(I)j(lo)s(ok)m(ed)g(they)g(w)m(ere)g(con)m(templating)g (something)g(called)f(Proto)s(col)h(Extension)f(Proto)s(col)i(but)330 3828 y(I)e(ha)m(v)m(en't)h(lo)s(ok)m(ed)e(at)i(the)f(relev)-5 b(an)m(t)37 b(IETF)g(do)s(cumen)m(ts)f(in)g(an)m(y)h(detail.)59 b(Ob)m(viously)-8 b(,)37 b(w)m(e)g(w)m(an)m(t)330 3938 y(something)30 b(as)g(simple)f(as)h(p)s(ossible)e(\(but)i(no)h (simpler\).)225 4076 y Fe(\017)60 b Fh(The)20 b(scram)m(bling)g (algorithm)g(in)f(the)i(CVS)f(clien)m(t)h(and)f(serv)m(er)h(actually)f (supp)s(ort)f(more)i(c)m(haracters)330 4186 y(than)32 b(those)h(do)s(cumen)m(ted)f(in)f(Chapter)g(4)i([P)m(assw)m(ord)g (scram)m(bling],)e(page)i(6.)47 b(Someda)m(y)33 b(w)m(e)g(are)330 4295 y(going)41 b(to)g(either)f(ha)m(v)m(e)i(to)f(do)s(cumen)m(t)g (them)g(all)e(\(but)h(this)g(is)g(not)h(as)f(easy)i(as)f(it)f(ma)m(y)h (lo)s(ok,)330 4405 y(see)33 b(b)s(elo)m(w\),)g(or)g(\(gradually)e(and)h (with)f(adequate)j(pro)s(cess\))f(phase)f(out)h(the)f(supp)s(ort)f(for) i(other)330 4515 y(c)m(haracters)44 b(in)e(the)h(CVS)g(implemen)m (tation.)77 b(This)41 b(business)g(of)i(ha)m(ving)f(the)h(feature)h (partly)330 4624 y(undo)s(cumen)m(ted)29 b(isn't)h(a)g(desirable)f (state)j(long-term.)330 4763 y(The)25 b(problem)f(with)g(do)s(cumen)m (ting)g(other)h(c)m(haracters)i(is)e(that)g(unless)f(w)m(e)i(kno)m(w)f (what)g(c)m(haracter)330 4872 y(set)k(is)e(in)g(use,)h(there)h(is)e(no) h(w)m(a)m(y)h(to)g(mak)m(e)g(a)g(passw)m(ord)e(p)s(ortable)g(from)h (one)g(system)h(to)f(another.)330 4982 y(F)-8 b(or)25 b(example,)g(a)g(with)e(a)h(circle)g(on)g(top)g(migh)m(t)g(ha)m(v)m(e)h (di\013eren)m(t)f(enco)s(dings)f(in)g(di\013eren)m(t)g(c)m(haracter)330 5092 y(sets.)330 5230 y(It)g Fb(almost)33 b Fh(w)m(orks)23 b(to)g(sa)m(y)h(that)f(the)g(clien)m(t)f(pic)m(ks)h(an)f(arbitrary)-8 b(,)24 b(unkno)m(wn)d(c)m(haracter)k(set)e(\(indeed,)330 5340 y(ha)m(ving)k(the)h(CVS)f(clien)m(t)g(kno)m(w)g(what)h(c)m (haracter)h(set)f(the)g(user)e(has)i(in)e(mind)f(is)i(a)h(hard)f (problem)p eop %%Page: 32 32 32 31 bop 330 299 a Fh(otherwise\),)42 b(and)e(scram)m(bles)f (according)h(to)h(a)f(certain)g(o)s(ctet)p Ff(<)p Fh(-)p Ff(>)p Fh(o)s(ctet)i(mapping.)68 b(There)40 b(are)330 408 y(t)m(w)m(o)32 b(problems)d(with)g(this.)41 b(One)30 b(is)g(that)h(the)g(proto)s(col)f(has)h(no)f(w)m(a)m(y)i(to)f(transmit) f(c)m(haracter)i(10)330 518 y(decimal)c(\(linefeed\),)h(and)g(the)h (curren)m(t)f(serv)m(er)g(and)g(clien)m(ts)g(ha)m(v)m(e)i(no)e(w)m(a)m (y)h(to)g(handle)e(0)i(decimal)330 628 y(\(NUL\).)c(This)e(ma)m(y)i (cause)g(problems)d(with)h(certain)h(m)m(ultib)m(yte)g(c)m(haracter)i (sets,)g(in)d(whic)m(h)g(o)s(ctets)330 737 y(10)d(and)f(0)h(will)d(app) s(ear)i(in)f(the)i(middle)d(of)j(other)g(c)m(haracters.)39 b(The)20 b(other)h(problem,)g(whic)m(h)e(is)h(more)330 847 y(minor)35 b(and)h(p)s(ossibly)e(not)j(w)m(orth)f(w)m(orrying)g(ab) s(out,)i(is)d(that)j(someone)f(can)g(t)m(yp)s(e)g(a)g(passw)m(ord)330 956 y(on)c(one)g(system)g(and)g(then)g(go)g(to)h(another)f(system)h (whic)m(h)d(uses)i(a)g(di\013eren)m(t)g(enco)s(ding)f(for)h(the)330 1066 y(same)e(c)m(haracters,)h(and)e(ha)m(v)m(e)h(their)f(passw)m(ord)f (not)i(w)m(ork.)330 1200 y(The)j(restriction)f(to)i(the)g(ISO646)f(in)m (v)-5 b(arian)m(t)34 b(subset)g(is)f(the)h(b)s(est)g(approac)m(h)h(for) f(strings)f(whic)m(h)330 1310 y(are)44 b(not)g(particularly)e (signi\014can)m(t)g(to)j(users.)80 b(P)m(assw)m(ords)44 b(are)g(visible)d(enough)j(that)g(this)f(is)330 1420 y(somewhat)d(doubtful)e(as)i(applied)e(here.)69 b(ISO646)40 b(do)s(es,)j(ho)m(w)m(ev)m(er,)h(ha)m(v)m(e)d(the)f(virtue)f(\(!?\))70 b(of)330 1529 y(o\013ending)29 b(ev)m(ery)m(one.)43 b(It)30 b(is)g(easy)h(to)g(sa)m(y)g Ff(")p Fh(But)g(the)f($)h(is)e(righ)m(t)h (on)h(p)s(eople's)e(k)m(eyb)s(oards!)41 b(Surely)330 1639 y(w)m(e)33 b(can't)g(forbid)d(that)p Ff(")p Fh(.)47 b(F)-8 b(rom)33 b(a)g(h)m(uman)e(factors)j(p)s(oin)m(t)d(of)h(view,)h (that)g(mak)m(es)g(quite)f(a)g(bit)g(of)330 1748 y(sense.)41 b(The)29 b(con)m(trary)i(argumen)m(t,)g(of)f(course,)g(is)f(that)i(a)f (with)f(a)h(circle)g(on)g(top,)g(or)g(some)h(of)f(the)330 1858 y(c)m(haracters)i(p)s(o)s(orly)c(handled)h(b)m(y)h(Unico)s(de,)g (are)h(on)f Fb(some)-5 b(one)7 b Fh('s)32 b(k)m(eyb)s(oard.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF