÷ƒ’À;è TeX output 2003.11.03:1748‹/ÿÿÿÿ‘·ºâŸ·ºâòO! /DvipsToPDF { 72.27 mul Resolution div } def /PDFToDvips { 72.27 div Resolution mul } def /HyperBorder { 1 PDFToDvips } def /H.V {pdf@hoff pdf@voff null} def /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def /H.S { currentpoint HyperBorder add /pdf@lly exch def dup DvipsToPDF /pdf@hoff exch def HyperBorder sub /pdf@llx exch def } def /H.L { 2 sub dup /HyperBasePt exch def PDFToDvips /HyperBaseDvips exch def currentpoint HyperBaseDvips sub /pdf@ury exch def /pdf@urx exch def } def /H.A { H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF HyperBasePt sub sub /pdf@voff exch def } def /H.R { currentpoint HyperBorder sub /pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint exch pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def } def systemdict /pdfmark known not {userdict /pdfmark systemdict /cleartomark get put} if ïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if endï˜ps:SDict begin [ /Title () /Subject () /Creator (LaTeX with hyperref package) /Author () /Producer (dvips + Distiller) /Keywords () /DOCINFO pdfmark end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark endï color popŽ’ÃFfï color popŽŽ ¬ã–‘H ý^jïTps:SDict begin [ /Page 1 /View [ /Fit ] /PageMode /UseOutlines /DOCVIEW pdfmark endïJps:SDict begin [ {Catalog} << /ViewerPreferences << >> >> /PUT pdfmark endïps:SDict begin H.S endïps:SDict begin 12 H.A endïMps:SDict begin [ /View [/XYZ H.V] /Dest (Doc-Start) cvn H.B /DEST pdfmark endïpapersize=0.0pt,0.0ptïps:SDict begin H.S endïps:SDict begin 12 H.A endïEps:SDict begin [ /View [/XYZ H.V] /Dest (0) cvn H.B /DEST pdfmark endŸÄ‘sh óª,«â ptmb8t¾Uso–8ƒpr€áctico“de“CVSŽŸ!C–’¡¯Lóª,«G® ptmb8t¿Carlos‘QëHer½°nandoޤ ’”ËÚóª,« ptmb8tÀCap€ítulo–de“Estudiantes“A‘ÿWCMŽ©’%ícherÑónando@acm.asoc..upm.esŽ¡¦Ÿ+‘Í‘ó?Á|‰ ptmr8t½Actualmente–€viÀvimos“en“la“losof€ía“óϯ8 ptmri8tÁOpenSour¡Gce“½y“hacer“que“nuestro“c€ódigo“sea“libre“y“abierto“nosŽ¡‘Í‘permite–nlen™Ÿviarlo“a“lugó7ares“en“los“que“nunca“antes“podr€íamos“haber“imaginado.“Sin“embarÑðgo“a“la“hora“deŽ¡‘Í‘mantener–€softwægare“de“esta“forma“surÑðgen“problemas“para“poder“poner“en“contacto“y“coordinar“a“losŽ¡‘Í‘desarrolladores–€que“colaboran“en“el“proægyecto.“Por“suerte“contamos“con“una“herramienta“que“har€á“lasŽ¡‘Í‘cosas–€m€ás“f€áciles,“CVS.ŽŸ@¦‘ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (28) cvn H.B /DEST pdfmark endŽŸ-lŒ¿1.–QëSobr°ge“este“documentoŽž5ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (30) cvn H.B /DEST pdfmark endŸ'Póª,«ff ptmb8tÂ1.1.‘™™LicenciaŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (32) cvn H.B /DEST pdfmark endŸ ÓʽSe–€otorÑðgó7a“permiso“para“copiar™Ÿ,“distribÌÐuir“y/o“modicar“este“documento“bajo“los“t€érminos“de“la“Licencia“deŽ¡Documentaci€ón–€Libre“GNU,“V‘þã×ersi€ón“1.1“o“cualquier“otra“vÙ ersi€ón“posterior“publicada“por“la“Free“SoftwægareŽ¡FšÙ oundation.–€Se“considerar€á“como“Secciones“In™ŸvÀariantes“todo“el“documento,“no“habiendo“T‘ÿLÐe˜xtos“de“Portada“niŽ¡T‘ÿLÐeÙ xtos–€de“Contra“Portada.“Puede“consultar“una“copia“de“la“licencia“en:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (33) cvn H.B /DEST pdfmark endhttp://www‘ÿY .gnu.orÑðg/copægyleft/fdl.html.Ž©j8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (34) cvn H.B /DEST pdfmark endŸ%ZçÂ1.2.–™™DescarÛ$gar“el“documentoŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (36) cvn H.B /DEST pdfmark endŸ ¬½Las–€€últimas“vÙ ersiones“de“este“documento“se“publican“en“diferentes“formatos“en:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (37) cvn H.B /DEST pdfmark endHTMLŽ¡(http://acm.asoc..upm.es/~chernando/doc/cvs/),‘€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (38) cvn H.B /DEST pdfmark endD™ŸVIŽ¡(http://acm.asoc..upm.es/~chernando/doc/cvs/usocvs.dvi),‘€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (39) cvn H.B /DEST pdfmark endPDFŽ¡(http://acm.asoc..upm.es/~chernando/doc/cvs/usocvs.pdf),‘€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (40) cvn H.B /DEST pdfmark endPSŽ¡(http://acm.asoc..upm.es/~chernando/doc/cvs/usocvs.ps)–€y“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (41) cvn H.B /DEST pdfmark endR‘ÿfgTFŽ¡(http://acm.asoc..upm.es/~chernando/doc/cvs/usocvs.rtf).ަïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (42) cvn H.B /DEST pdfmark endŸ%ZçÂ1.3.–™™Estado“del“documentoŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (44) cvn H.B /DEST pdfmark endŸ ÓʽEn–€desarrollo.“Se“agradece“cualquier“sugerencia“/“correci€ón“/“aporte“a“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (45) cvn H.B /DEST pdfmark endmi“e-mailŽ¡(mailto:chernando@acm.asoc..upm.es)ŽŸ j8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (46) cvn H.B /DEST pdfmark endŽŸ0‘Hïcolor push Black’¾FfÁ1ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/*‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýjª+‘H¿2.–QëIntr°goducci€ón“a“CVSŽ‘HŸ5ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (48) cvn H.B /DEST pdfmark endŸ Êò½CVS,–€Concurrent“V‘þã×ersions“System,“es“una“aplicaci€ón“cliente/servidor“que“se“encarÑðgó7a“de“mantener“un“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (49) cvn H.B /DEST pdfmark endÁr¡Gepositorioޤ ½de–€softwægare“centralizado“que“es“actualizado“y“distribÌÐuido“desde“y“hacia“las“copias“locales“de“los“desarrolladores.Ž¡Es–€una“utilidad“muy“sencilla“de“usar“;-)ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (50) cvn H.B /DEST pdfmark endŸ%ZçÂ2.1.–™™€¾C€ómo“funciona?ŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (52) cvn H.B /DEST pdfmark endŸ ¬½El–€funcionamiento“es“muy“simple:“el“desarrollador“se“conecta“con“el“servidor“CVS“y“le“pide“la“€última“vÙ ersi€ónŽ¡disponible–€del“proægyecto,“en“este“paso“el“desarrollador“puede“vÙ er“que“cambios“se“han“realizado“respecto“a“suŽ¡vÙ ersi€ón–€local“y“los“conictos“que“pudiera“ocasionar“el“c€ódigo“que“el“desarrollador“ha“realizado“en“su“copia“localŽ¡con–€el“c€ódigo“que“ya“est€á“disponible“en“el“servidor‘ÿs8.“En“caso“de“que“el“c€ódigo“no“sea“problem€ático“se“modicanŽ¡los–€cheros“locales“respentando“los“cambios“del“desarrollador‘ÿs8.Ž©*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (53) cvn H.B /DEST pdfmark endŸ ÕÈEl–€servidor“CVS“se“encarÑðgó7a“de“manejar“el“hist€órico“de“lo“que“ocurre,“mantener“un“reÙ gistro“de“los“cambiosŽ¡realizados–€a“cada“chero“y“de“servirlos“sešÙ g€ún“las“necesidades“del“desarrollador‘ÿs8.“Adem€ás“gestiona“diÀv˜ersasŽ¡utilidades–€para“controlar“en“que“cheros“se“esta“trabajando,“noticar“a“los“autores“de“los“cheros“de“losŽ¡cambios...–€y“muchas“m€ás“cosas“pues“es“posible“a€ñadir“scripts“al“funcionamiento“a“su“conguraci€ón.ަïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (54) cvn H.B /DEST pdfmark endŸ ÕÈEl–€cliente“CVS“del“desarrollador“se“encarÑðgó7a“de“obtener“las“€últimas“vÙ ersiones“disponibles“(o“las“que“necesite),“deŽ¡confrontarlas–€con“las“copias“locales“y“de“crear“una“copia“local“de“los“cheros“del“proægyecto“que“sean“editables“porŽ¡el–€desarrollador‘ÿs8.“Y“por“supuesto“de“a€ñadir“el“c€ódigo“del“desarrollador“al“proægyecto.ŽŸj8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (55) cvn H.B /DEST pdfmark endŸ%ZçÂ2.2.–™™€¾Qu€é“estructura“tiene“el“serÛ$vidor?ŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (57) cvn H.B /DEST pdfmark endŸ ¬½El–€servidor“de“CVS“se“encarÑðgó7a“de“mantener“los“cheros“que“conforman“nuestro“proægyecto“de“tal“forma“que“seŽ¡mantienen–€los“cambios“realizados“hasta“el“momento,“esto“nos“permite“consultar“vÙ ersiones“anteriores“de“unŽ¡mismo–€chero“de“una“forma“r€ápida“y“sencilla.ަïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (58) cvn H.B /DEST pdfmark endŸ ÕÈEn–€la“ra€íz“del“servidor“se“encuentran“los“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (59) cvn H.B /DEST pdfmark endÁm€ódulos“½que“est€án“disponibles,“normalmente“cada“m€ódulo“correspondeŽ¡a–€un“directorio“en“el“ra€íz.“Los“directorios“que“cuelgó7an“de“un“directorio“del“ra€íz“se“consideran“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (60) cvn H.B /DEST pdfmark endÁsubm€ódulos½,“esŽ¡decir™Ÿ,–€la“estructura“es“as€í:ŽŸ qèïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (61) cvn H.B /DEST pdfmark endŸ AKó‰š pcrr8tÃ/Ra€íz_CVSޤ ³3|Ž¡|---/M€ódulo_1Ž¡|‘32|Ž¡|‘32|---/Subm€ódulo_1–ffdel“M€ódulo_1Ž¡|‘32|---/Subm€ódulo_2–ffdel“M€ódulo_1Ž¡|Ž¡|---/M€ódulo_2Ž¡|---/CVSROOTïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (62) cvn H.B /DEST pdfmark endŸüffó‰šff pcrr8tÄ1ŽŽ¡ŸŽŸ0‘Hïcolor push Black’¾FfÁ2ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/\‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã–‘H ý^jïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (64) cvn H.B /DEST pdfmark endŸ ½Los–€cheros“que“el“servidor“almacena“son“del“tipo“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (65) cvn H.B /DEST pdfmark endÃfichero.ext,v½.“En“estos“cheros“se“encuentra“nuestroޤ chero–€original,“los“cambios“realizados“en“las“vÙ ersiones“anteriores“y“m€ás“informaci€ón.“Al“manejarse“en“unŽ¡formato–€especial“debemos“tener“cuidado“al“en™Ÿviar“cheros“especiales“como“binarios“y“formatos“de“teÙ xto“estrictoŽ¡ya–€que“es“posible“que“alguna“combinaci€ón“pueda“ser“interpretada“por“el“servidor™Ÿ,“vÙ eremos“m€ás“adelante“laŽ¡manera–€de“marcar“estos“cheros“especiales.ŽŸj8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (66) cvn H.B /DEST pdfmark endŸ%ZçÂ2.3.–™™€¾Qu€é“estructura“tiene“el“cliente?Ž©ìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (68) cvn H.B /DEST pdfmark endŸ ¬½La–€copia“local“que“realiza“el“cliente“de“CVS“solamente“incluye“el“chero,“que“es“lo“que“el“desarrollador“necesitaŽ¡pues–€es“el“c€ódigo“con“el“que“trabaja.“Una“peculiaridad“de“la“copia“local“es“que“todos“los“directorios“tienen“unŽ¡subdirectorio–€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (69) cvn H.B /DEST pdfmark endÃCVS½,“en“€él“se“guardan“tres“archišÀvÌÐos:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (70) cvn H.B /DEST pdfmark endÃEntries,–ffRepository,“Root½.–€En“estos“tres“archi˜vÌÐos“seŽ¡guarda–€informaci€ón“relacionada“al“repositorio“de“d€ónde“se“obtuvÌÐo“el“proægyecto.“Es“decir™Ÿ,“cada“directorio“se“puedeŽ¡manejar–€de“forma“completamente“independiente“y“sin“necesidad“de“especicar“el“repositorio“de“origen.ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (71) cvn H.B /DEST pdfmark endŸ ˆûÃ/Directorio_Localޤ ³3|Ž¡|---/M€ódulo_1Ž¡‘™˜|Ž¡‘™˜|---/Subm€ódulo_1–ffdel“M€ódulo_1Ž¡‘™˜|‘32|---/CVSŽ¡‘™˜|Ž¡‘™˜|---/Subm€ódulo_2–ffdel“M€ódulo_1Ž¡‘™˜|‘32|---/CVSŽ¡‘™˜|Ž¡‘™˜|---/CVSŽ¡ŸŸ@ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (72) cvn H.B /DEST pdfmark endŸ'…Â2.4.–™™€¾PÛ$ara“qu€é“se“usa“CVS?ަïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (74) cvn H.B /DEST pdfmark endŸ ¬½CVS–€se“puede“utilizar“en“casi“todo“proægyecto“que“implique“una“colaboraci€ón“entre“desarrolladores“(aunqueޤ solamente–€haya“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (75) cvn H.B /DEST pdfmark endÁuno½)“simplemente“darle“un“vistazo“a“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (76) cvn H.B /DEST pdfmark endSourceFÙ oršÑðge“(http://sourcefor˜ge.net/)“para“descubrir“la“granŽ¡cantidad–€de“proægyectos“que“lo“est€án“usando.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (77) cvn H.B /DEST pdfmark endŸ ÕÈSin–€embarÑðgo“no“se“utiliza“solamente“para“desarrollo“de“softwægare“y“manejo“de“c€ódigo“fuente.“CVS“est€á“siendoŽ¡utilizado–€para“mantener“sitios“web,“como“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (78) cvn H.B /DEST pdfmark endGNOME“Hispano“(http://www‘ÿY .es.gnome.orÑðg/),“o“para“mantenerŽ¡documentaci€ón,–€como“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (79) cvn H.B /DEST pdfmark endDebian“Documentation“Proægyect“(http://www‘ÿY .debian.orÑðg/doc/ddp)“y“para“grandesŽ¡proægyectos–€como“los“ports“que“forman“parte“de“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (80) cvn H.B /DEST pdfmark endFreeBSD“(http://www‘ÿY .freebsd.orÑðg/).“Incluso“se“puede“utilizar“paraŽ¡mantener–€copias“de“trabajo“en“la“m€áquina“de“casa,“en“la“del“trabajo,“en“el“notebook,“€éct...ŽŸj8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (81) cvn H.B /DEST pdfmark endŸ%ZçÂ2.5.–™™Instalaci€ón“de“CVSŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (83) cvn H.B /DEST pdfmark endŸ ÓʽSolamente–€es“necesario“instalar“el“paquete“cvs:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (84) cvn H.B /DEST pdfmark endóª,« ptmb8tÅapt-get“install“cvs½,“Debian“rulez!“;-).“En“otras“distribÌÐucionesŽ¡eÙ xisten–€los“correspondientes“paquetes“RPM“o“los“tgz“cuya“instalaci€ón“es“muy“sencilla.“El“cliente“y“el“servidorŽ¡vienen–€en“el“mismo“paquete“por“lo“que“nos“preÙ guntar€á“en“que“directorio“se“situar€á“el“ra€íz“del“servidor“CVS,Ž¡recomendado–€en“/všÀar/cvs,“/v˜ar/lib/cvs“o“en“/home/cvs.ŽŽŸ0‘Hïcolor push Black’¾FfÁ3ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/*•‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark endï color popŸüfdŸ÷™œïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (118) cvn H.B /DEST pdfmark endŸfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã–‘H ý^jïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (85) cvn H.B /DEST pdfmark endŸ ½PÙ ara–€iniciar“un“repositorio“en“nuestra“maquina“ser€á“necesario“ejecutar:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (86) cvn H.B /DEST pdfmark endÅcvs“-d“$CVSR³7OO™ŸT“init½,“siendoޤ ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (87) cvn H.B /DEST pdfmark endÃ$CVSROOT–€½la“vÀariable“que“contiene“el“directorio“de“nuestro“respositorio.“Despu€és“de“ejecutarlo“se“crear€á“elŽ¡directorio›€CVSR•™ŸOO“T˜en˜la˜ra€íz˜del˜CVS,˜ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (88) cvn H.B /DEST pdfmark endÁno˜confundir˜el˜dir¡Gectorio˜rÙ a€íz˜del˜CVS,˜$CVSR“OO“T‘ÿB,˜con˜el˜dir¡GectorioŽ¡CVSR•™ŸOO“T–€que“hay“en“la“rÙ a€íz“½(Esto“€último“puede“hacerse“autom€áticamente“en“la“instalaci€ón“del“paquete“cvs).ŽŸj8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (89) cvn H.B /DEST pdfmark endŸ%ZçÂ2.6.–™™El“comando“cvsŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (92) cvn H.B /DEST pdfmark endŸ ÓʽAntes–€de“entrar“en“materia“un“par“de“notas“sobre“el“uso“del“commando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (93) cvn H.B /DEST pdfmark endÅcvs½:Ž©*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (94) cvn H.B /DEST pdfmark endïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (95) cvn H.B /DEST pdfmark endŸ ÕÈÅcvs–€[opcion_globales]“operaci€ón“[opcion_operaci€ón“|“cherÑðo“|“m€ódulo]ŽŸ¬ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (96) cvn H.B /DEST pdfmark endŸ øT½En–€opciones“globales“normalmente“utilizaremos“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (97) cvn H.B /DEST pdfmark endÅ-q“½para“limitar“la“salida,“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (98) cvn H.B /DEST pdfmark endÅ-Q“½para“que“la“salida“se“reduza“a“loŽ¡m€ínimo,–€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïFps:SDict begin [ /View [/XYZ H.V] /Dest (99) cvn H.B /DEST pdfmark endÅ-d“$CVSR³7OO™ŸT“½para“indicar“la“localizaci€ón“del“repositorio“y“por“€último“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (100) cvn H.B /DEST pdfmark endÅ-z“N“½siendo“N“el“niÀvÙ el“deŽ¡compresion–€al“que“queremos“someter“a“los“datos“que“se“vÀan“a“intercambiar™Ÿ,“normalmente“de“3“a“5.ަïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (101) cvn H.B /DEST pdfmark endŸ ÕÈLas–€operaciones“y“sus“opciones“las“vÙ eremos“a“lo“larÑðgo“de“este“documento.“Las“m€ás“comunes“son:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (102) cvn H.B /DEST pdfmark endÅupdate,Ž¡checkÙ out,‘€commit½.ŽŸ½lïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (103) cvn H.B /DEST pdfmark endŸ B”A–€lo“larÑðgo“de“esta“documentaci€ón“en“algunos“ejemplos“despu€és“de“la“operaci€ón“viene“la“ruta“hasta“un“chero“oŽ¡no–€hay“nada.“Si“al“comando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (104) cvn H.B /DEST pdfmark endÅcvs“½se“indica“una“ruta“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (105) cvn H.B /DEST pdfmark endÁsolamente“½actuar€á“en“ese“directorio“o“chero,“por“el“contrarioŽ¡si–€se“le“ejecuta“sin“especicar“ninguna“ruta“actuar€á“sobre“el“directorio“de“trabajo“actual“y“de“forma“recursi•Àv“a‘€enŽ¡sus‘€subdirectorios.ŽŸ Y”ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (106) cvn H.B /DEST pdfmark endŸ-Rø¿3.–QëCurioseando“un“r°gepositorio“de“CVSŽŸþïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (108) cvn H.B /DEST pdfmark endŸ ~½La–€mejor“forma“de“empezar“a“colaborar“en“un“proægyecto“es“tener“su“c€ódigo.“En“este“apartado“vÀamos“a“conectarnosŽ¡a–€un“servidor“CVS,“descarÑðgó7aremos“uno“de“sus“m€ódulos“y“lo“mantendremos“actualizado“seÙ g€ún“pase“el“tiempo.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (109) cvn H.B /DEST pdfmark endŸ%ZçÂ3.1.–™™F£×ormas“de“identicarse“en“un“serÛ$vidor“CVSŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (111) cvn H.B /DEST pdfmark endŸ ÓʽNormalmente–€el“servidor“de“CVS“est€á“escuchando“en“el“puerto“2401“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (112) cvn H.B /DEST pdfmark endÃpserver“½y“es“la“conguraci€ón“por“defectoŽ¡de–€los“clientes,“por“ejemplo:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (113) cvn H.B /DEST pdfmark endÅcvs“-d“:pser•ægv“er:anoncvs@ser“vidor‘þÿÿ.dom:/home/cvs‘€update½.ަïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (114) cvn H.B /DEST pdfmark endŸ ÕÈEsta–y¬identicaci€ón“se“realiza“por“teÙ xto“plano,“nos“pedir€á“una“contrase€ña“asociada“al“usuario“anoncvs.“Este“tipo“deŽ¡identicacion–€recuerda“la“contrase€ña“del“usuario“por“lo“que“solo“ser€á“necesario“logearse“una“sola“vÙ ez“(en“elŽ¡chero–€$HOME/.cvspass).“Este“m€étodo“es“inseÙ guro“para“los“desarrolladores“del“proægyecto“si“bien“para“permitir“elŽ¡acceso–€al“c€ódigo“a“todo“el“mundo“es“una“bÌÐuena“soluci€ón.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (115) cvn H.B /DEST pdfmark endŸ obÀ3.1.1.–Usando“SSH“para“conectarÑónos“con“el“seráIvidorŽŸo›ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (117) cvn H.B /DEST pdfmark endŸ e½Por–€motiÀvÌÐos“de“seÙ guridad“se“recomienda“a“los“desarrolladores“(y“a“todo“aquel“que“tengó7a“cuenta“en“el“servidor)“elŽ¡uso–€de“SSH“para“establecer“comunicaciones“con“el“servidor“CVS,“este“tipo“de“identicaci€ón“obligó7a“a“introducirŽŽŸ0‘Hïcolor push Black’¾FfÁ4ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/@ã‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýhj‘H½la–€contrase€ña“siempre“que“se“realice“una“operaci€ón“con“el“servidor“de“CVS.ŽŸ!‘HPšÙ ara–€poder“realizar“la“cone˜xi€ón“con“SSH“ser€á“necesario“jar“el“všÀalor“de“la“v˜ariable“ÃCVS_RSH“½a“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (120) cvn H.B /DEST pdfmark endÃSSH“½y“cambiar“laޤ ‘Hm€étodo–€de“coneÙ xi€ón“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (121) cvn H.B /DEST pdfmark endÃpserver“½a“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (122) cvn H.B /DEST pdfmark endÃext½.“Es“interesante“jar“las“siguientes“vÀariables“en“el“prole“para“economizarŽ¡‘Hlas–€pulsaciones“(y“la“vida“€útil“del“teclado“;-)“)Ž‘HŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (123) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$‘ffCVS_RSH=sshޤ ³3charlie$‘ffCVSROOT=:ext:$USER@servidor.dom:/home/cvsŽ¡charlie$–ffexport“CVS_RSH“CVSROOTŽ¡ŸŸïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (124) cvn H.B /DEST pdfmark end¤ ½A–€partir“de“este“momento“el“cliente“de“cvs“tomar€á“por“defecto“conectar“utilizando“ssh“y“al“repositorio“disponibleŽ¡en–€servidor‘ÿs8.dom“identic€ándome“como“$USER.ŽŸÀïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (125) cvn H.B /DEST pdfmark endŸ"ÃÚÀ3.1.2.–Desde“un“ršÈ¹epositorio“de“nuestra“pr˜opia“m€áquinaŽŸo›ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (127) cvn H.B /DEST pdfmark endŸ e½Si–€el“repositorio“al“que“queremos“acceder“reside“en“el“mismo“sistema“en“el“que“trabajamos“no“ser€á“necesarioŽ¡especicar–€el“m€étodo“de“coneÙ xi€ón“ni“al“sistema“al“que“se“accede,“solamente“es“necesario“especicar“la“ruta“hastaŽ¡el‘€repositorio.Ž©*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (128) cvn H.B /DEST pdfmark endŸ ÕÈPÙ ara–€acceder“al“repositorio“dentro“de“mi“sistema“utilizo“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (129) cvn H.B /DEST pdfmark endÅexport“CVSR³7OO™ŸT=/vægar/lib/cvs“½o“la“opci€ón“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (130) cvn H.B /DEST pdfmark endÅ-dŽ¡/vægar/lib/cvs–€½y“la“operaci€ón“que“quiera“realizar‘ÿs8.ŽŸ j8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (131) cvn H.B /DEST pdfmark endŸ%ZçÂ3.2.–™™DescaršÛ$gar“un“pr½«oy˜ecto“del“r½«epositorioŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (133) cvn H.B /DEST pdfmark endŸ ¬½PšÙ ara–€descarÑðgó7ar“un“proægyecto“del“repositorio“utilizaremos“el“comando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (134) cvn H.B /DEST pdfmark endÅcheck˜out“½o“su“abreÀviatura“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (135) cvn H.B /DEST pdfmark endÅco“½y“el“nombreŽ¡del–€m€ódulo“a“descarÑðgó7ar‘ÿs8.ަïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (136) cvn H.B /DEST pdfmark endŸ ÕÈSupongó7amos–€que“queremos“colaborar“en“el“proægyecto“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (137) cvn H.B /DEST pdfmark endVIM-ES“(http://helvÙ ete.escomposlinux.orÑðg/vimes/),“que“seŽ¡encaršÑðgó7a–€de“traducir“la“documentaci€ón“eÙ xistente“del“editor“VI,“para“ello“vÀamos“a“descar˜gó7ar“su“proægyecto“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (138) cvn H.B /DEST pdfmark endÃvimes½.ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (139) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$‘ffpwdޤ ³3/home/charlie/cvsŽ¡¡charlie$–ffcvs“-z3“-d“\Ž¡‘ ÌÌ:pserver:anoncvs:anoncvs@helvete.escomposlinux.org:/var/cvs/vim‘ff\Ž¡‘ ÌÌcheckout‘ffvimesŽ¡cvs–ffserver:“Updating“vimesŽ¡U‘ffvimes/DIRECTORIOSŽ¡U‘ffvimes/PROGRESOŽ¡cvs–ffserver:“Updating“vimes/beerŽ¡cvs–ffserver:“Updating“vimes/docŽ¡U‘ffvimes/doc/autocmd.txtŽ¡U‘ffvimes/doc/change.txtŽ¡U‘ffvimes/doc/cmdline.txtŽ¡U‘ffvimes/doc/debugger.txtŽŽŸ0‘Hïcolor push Black’¾FfÁ5ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/];‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýhj‘HÃ#‘ff...ޤ ³3¡‘Hcharlie$‘fflsŽ¡‘HvimesŽ¡©‘HŸïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (140) cvn H.B /DEST pdfmark end¤ ½El–€programa“nos“informa“de“los“pasos“que“est€á“siguiendo,“las“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (141) cvn H.B /DEST pdfmark endÃU“½signica“que“la“copia“local“ha“sido“creada.“ElŽ¡resultado–€es“la“creaci€ón“de“un“directorio“llamado“como“el“m€ódulo“que“hemos“descarÑðgó7ado“y“que“contiene“todosŽ¡los–€archiÀvÌÐos“y“subdirectorios“que“cuelgó7an“del“mismo.“Prestar“atenci€ón“a“la“creaci€ón“del“directorio“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (142) cvn H.B /DEST pdfmark endÃCVS“½en“cadaŽ¡directorio–€del“m€ódulo.ŽŸY”ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (143) cvn H.B /DEST pdfmark endŸ'k‹Â3.3.–™™Actualizando“nuestra“copia“localŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (145) cvn H.B /DEST pdfmark endŸ ¬½PÙ ara–m actualizar“nuestra“copia“local“respecto“a“los“cambios“del“repositorio“central“se“utiliza“el“comando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (146) cvn H.B /DEST pdfmark endÅupdate½.“ElŽ¡resultado–€de“este“comando“nos“informar€á“de“que“archiÀvÌÐos“hayamos“modicado“localmente“con“una“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (147) cvn H.B /DEST pdfmark endÃM½,“de“losŽ¡cheros–€que“se“actualizan“con“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (148) cvn H.B /DEST pdfmark endÃUïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (149) cvn H.B /DEST pdfmark endŸüó?Á|‰ ptmr8tÇ2Ž‘½,“los“cheros“que“tienen“conictos“con“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (151) cvn H.B /DEST pdfmark endÃC“½y“un“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (152) cvn H.B /DEST pdfmark endÃ?“½en“caso“de“que“tengó7amosŽ¡cheros–€localmente“que“no“eÙ xisten“en“el“repositorio.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (153) cvn H.B /DEST pdfmark endŸ ÕÈDespu€és–€de“unas“semanas“curioseando“el“proægyecto“vimes“queremos“comprobrar“que“tenemos“una“copia“localŽ¡actualizada–€para“ello“haremos“lo“siguiente:ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (154) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$‘ffpwdޤ ³3/home/charlie/cvs/vimesŽ¡#–ffComo“ya“estoy“en“el“directorio“vimes“no“ser€á“necesario“espeficarŽ¡#–ffni“el“repositorio“ni“el“m€ódulo“pues“est€án“en“el“directorio“CVSŽ¡¡charlie$–ffcvs“-z3“updateŽ¡cvs–ffserver:“Updating“.Ž¡U‘ff./PROGRESOŽ¡cvs–ffserver:“Updating“beerŽ¡cvs–ffserver:“Updating“docŽ¡cvs–ffserver:“Updating“doc-6.0Ž¡#‘ff...Ž¡¦Ÿïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (155) cvn H.B /DEST pdfmark end¤ ½El–€resultado,“hemos“actualizado“el“chero“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (156) cvn H.B /DEST pdfmark endÃPROGRESO“½(y“algunos“archišÀvÌÐos“m€ás)“y“hemos“re˜visado“el“estado“deŽ¡todo.ŽŸ”ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (157) cvn H.B /DEST pdfmark endŸ ælPuede–€ocurrir“que“en“alg€ún“momento“cvs“nos“informe“de“la“ešÙ xistencia“de“un“chero“que“no“vÌÐolv˜er€á“a“serŽ¡pertinente–€en“el“proægyecto,“es“decir™Ÿ,“ha“sido“eliminado.“El“cliente“nos“mostrar€á“el“mensaje“y“lo“borrar€á.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (158) cvn H.B /DEST pdfmark endŸ ÕÈCon–€los“directorios“no“ocurre“lo“mismo.“Si“un“directorio“se“crea“en“un“proægyecto“depu€és“de“nuestro“primerŽ¡checkægout–€no“se“nos“noticar€á“su“eÙ xistencia“(tendremos“que“estar“informados“de“antemano),“por“lo“que“tendremosŽ¡que–€vÌÐolvšÙ er“a“ejecutar“un“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (159) cvn H.B /DEST pdfmark endÅcvs“check˜out“m€ódulo“½si“queremos“trabajar“con“el“nueÀvÌÐo“directorio“creado“en“elŽ¡proægyecto.–€Si“un“directorio“despu€és“de“una“actualizaci€ón“se“queda“vÀacio“no“se“borra“autom€áticamente.“PÙ ara“borrarŽ¡los–€directorios“vÀacios“a€ñadiremos“la“opci€ón“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (160) cvn H.B /DEST pdfmark endÅ-P½,“quedando“as€í:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (161) cvn H.B /DEST pdfmark endÅcvs“update“-P½.ŽŽŸ0‘Hïcolor push Black’¾¦Á6ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/qE‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã–‘H ý^jïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (162) cvn H.B /DEST pdfmark endŸ çå¿4.–QëT‘þ¸¦rabajando“con“CVSŽŸþïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (164) cvn H.B /DEST pdfmark endŸ ~½Es–€momento“de“colaborar“acti•Àv“amente–€en“el“proægyecto,“para“ello“necesitaremos“tener“cuenta“de“desarrollador“en“elޤ servidor–€CVS“ya“que“la“cuenta“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (165) cvn H.B /DEST pdfmark endÃanoncvs“½no“suele“tener“priÀvileÙ gios“para“mandar“c€ódigo“al“repositorio.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (166) cvn H.B /DEST pdfmark endŸ%ZçÂ4.1.–™™Subiendo“nuestras“modicacionesŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (168) cvn H.B /DEST pdfmark endŸ ÓʽUna–sîvÙ ez“que“hemos“realizado“las“modicaciones“adecuadas“a“nuestros“cheros“locales“procederemos“a“actualizarŽ¡el–€repositorio“y“a€ñadiremos“un“peque€ño“comentario“sobre“el“motiÀvÌÐo“del“cambio.“PÙ ara“eso“utilizaremos“elŽ¡comando–€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (169) cvn H.B /DEST pdfmark endÅcommit“½con“el“modicador“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (170) cvn H.B /DEST pdfmark endÅ-m“"Comentario“sobršÑðe“el“cambio“r˜ealizado"½.ŽŸ´ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (171) cvn H.B /DEST pdfmark endŸ áLComo–€no“tengo“cuenta“en“el“prošægyecto“vimes“vÌÐo˜y“a“cambiar“a“otro“pro˜yecto“local“;-)“.“En“este“caso“he“modicadoŽ¡unas–€cosas“en“el“chero“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (172) cvn H.B /DEST pdfmark endÃshell.sgml“½y“vÌÐoægy“a“actualizar“el“repositorio.“PÙ ara“ello“primero“actualizo“mi“copia“conŽ¡ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (173) cvn H.B /DEST pdfmark endÅupdate–€½(lo“que“me“permite“saber“si“alguien“m€ás“ha“modicado“el“mismo“archiÀvÌÐo“y“puede“surÑðgir“conicto)“yŽ¡despu€és–€lo“subo“al“repositorio.Ž© *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (174) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$‘ffpwdޤ ³3/home/charlie/cvsŽ¡¡charlie$–ffcvs“update“doc-generalŽ¡#‘ff...Ž¡M‘ffdoc-general/shell.sgmlŽ¡#–ffMe“notifica“que“poseo“una“versi€ón“local“modificada“respecto“alŽ¡#‘ ÌÌrepositorioŽ¡¡#–ffVoy“a“subir“mis“modificacionesŽ¡charlie$–ffcvs“commit“-m“"Actualizada“seccion“2"“doc-general/shell.sgmlŽ¡Checking–ffin“shell.sgml;Ž¡/home/cvs/doc-general/shell.sgml,v– ÌÌó5ùž" cmmi9Ê<Ã--“shell.sgmlŽ¡new–ffrevision:“1.4;“previous“revision:“1.3Ž¡doneŽ¡#–ffLa“actualizaci€ón“ha“sido“correctaŽ¡Ÿ‘ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (175) cvn H.B /DEST pdfmark endŽŸ"™šÀ4.1.1.–PršÈ¹oblemas“al“actualizar“ar˜chi•áIv“osŽŸ$Øïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (177) cvn H.B /DEST pdfmark endŸ Û(½Cuando–€dos“desarrolladores“est€án“trabajando“sobre“el“mismo“archiÀvÌÐo“es“posible“que“que“en“alg€ún“momento“lasޤ modicaciones–€que“realiza“cada“uno“de“ellos“coincida.“Por“lo“que“cuando“el“seÙ gundo“actualice“el“archiÀvÌÐo“CVS“leŽ¡de•Àvuelv“a–€una“linea“de“error“mostrando“lo“que“tiene“la“všÙ ersi€ón“local“y“lo“que“tiene“la“v˜ersi€ón“del“CVS.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (178) cvn H.B /DEST pdfmark endŸ ÕÈDespu€és–€de“trabajar“en“unos“cambios“en“el“chero“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (179) cvn H.B /DEST pdfmark endÃmenu.php“½quiero“subir“mi“vÙ ersi€ón“al“servidor™Ÿ,“lo“que“no“s€é“esŽ¡que–€otro“desarrollador“ya“ha“realizado“cambios“en“la“misma“secci€ón“del“chero.“Al“intentar“actualizar“el“cheroŽ¡cvs–€nos“deÀvÌÐolvšÙ er€á“un“error“dici€éndonos“que“es“no“es“capaz“de“fusionar“la“v˜ersi€ón“local“con“la“que“hay“en“elŽ¡repositorio.–€Este“es“el“caso:ަïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (180) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$–ffcvs“updateޤ ³3cvs–ffupdate:“Updating“.Ž¡RCS–fffile:“/var/cvs/web/menu.php,vŽŽŸ0‘Hïcolor push Black’½ç®Á7ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/‡[‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýhj‘HÃretrieving–ffrevision“1.5ޤ ³3‘Hretrieving–ffrevision“1.6Ž¡‘HMerging–ffdifferences“between“1.5“and“1.6“into“menu.phpŽ¡‘Hrcsmerge:–ffwarning:“conflicts“during“mergeŽ¡‘Hcvs–ffupdate:“conflicts“found“in“menu.phpŽ¡‘HC‘ffmenu.phpŽ¡¡‘Hcharlie$Ž¡©‘HŸïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (181) cvn H.B /DEST pdfmark end¤ ½Si–€ahora“edito“el“chero“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (182) cvn H.B /DEST pdfmark endÃmenu.php“½vÙ eo“que“cvs“ha“realizado“unos“cambios“en“el“chero“que“son“los“que“est€ánŽ¡dando‘€problemas:ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (183) cvn H.B /DEST pdfmark endŸ ˆûÊ<<<<<<<‘ffÃmenu.phpޤ ³3Ê<Ãa‘ffhref="foro.cgi"Ê>ÃForoÊ<Ã/aÊ>Ž¡Ã=======Ž¡Ê<Ãa–ffhref="libro.cgi"Ê>ÃLibro“de“visitasÊ<Ã/aÊ>Ž¡>>>>>>>‘ffÃ1.6Ž¡¦Ÿïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (184) cvn H.B /DEST pdfmark end¤ ½Al–~„realizar“la“actualizaci€ón“se“ha“remarcado“que“problema“hay“en“el“chero,“en“este“caso“la“vÙ ersi€ón“disponible“enŽ¡servidor–€es“la“1.6“pero“la“copia“sobre“la“que“realice“los“cambios“era“la“1.5.“Se“puede“vÙ er“que“el“otro“desarrolladorŽ¡y–€yo“hemos“modicado“la“misma“l€ínea“del“chero“(el“otro“desarrollador“fue“m€ás“r€ápido“y“actualiz€ó“antes)“y“CVSŽ¡no–€sabe“eleÙ gir“entre“las“dos.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (185) cvn H.B /DEST pdfmark endŸ ÕÈSimplemente–€se“editan“las“l€íneas“que“dan“problemas“y“se“eliminan“las“marcas.“Una“vÙ ez“el“chero“sea“correcto“loŽ¡subimos–€al“repositorio.ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (186) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$–ffcvs“commit“-m“"Enlace“al“libro“de“visitas“arreglado"“menu.phpޤ ³3Checking–ffin“menu.php;Ž¡/var/cvs/web/menu.php,v‘ ÌÌÊ<Ã--‘ffmenu.phpŽ¡new–ffrevision:“1.7;“previous“revision:“1.6Ž¡doneŽ¡¦Ÿ@ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (187) cvn H.B /DEST pdfmark endŸ#™šÀ4.1.2.–Recuperando“una“váIersi€ón“anteriorŽŸo›ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (189) cvn H.B /DEST pdfmark endŸ e½En–€alg€ún“momento“un“desarrollador“subir€á“al“repositorio“unas“modicaciones“que“no“sean“muy“acertadas“o“queޤ podr€ían–€causar“problemas“con“los“otros“archiÀvšÌÐos“y“tal“vÙ ez“nos“interesase“v˜olvšÙ er“a“una“v˜ersi€ón“anterior“delŽ¡proægyecto–€y“hacer“como“si“nunca“se“hubiese“modicado.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (190) cvn H.B /DEST pdfmark endŸ ÕÈDesarrollando–€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (191) cvn H.B /DEST pdfmark endÃmenu.php“½otro“desarrollador“ha“introducido“una“nue•Àv“a–€funci€ón,“sin“embarÑðgo“esa“funci€ón“ni“esŽ¡necesaria–€ni“es“sešÙ gura“por“lo“que“es“con™Ÿv˜eniente“recuperar“la“v˜ersi€ón“anterior“y“olvidar“esos“cambios:ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (192) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$–ffcvs“update“-j“1.8“-j“1.7“menu.phpŽŸ ³3RCS–fffile:“/var/cvs/web/menu.php,vŽŽŸ0‘Hïcolor push Black’¾FfÁ8ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹ /›×‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïJps:SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýhj‘HÃretrieving–ffrevision“1.8ޤ ³3‘Hretrieving–ffrevision“1.7Ž¡‘HMerging–ffdifferences“between“1.8“and“1.7“into“menu.phpŽ¡¡‘Hcharlie$–ffcvs“updateŽ¡‘Hcvs–ffupdate:“Updating“.Ž¡‘HM‘ffmenu.phpŽ¡¡‘Hcharlie$–ffcvs“commit“-m“"Regreso“a“la“version“1.7"“menu.phpŽ¡‘HChecking–ffin“menu.php;Ž¡‘H/var/cvs/web/menu.php,v– ÌÌÊ<Ã--“menu.phpŽ¡‘Hnew–ffrevision:“1.9;“previous“revision:“1.8Ž¡‘HdoneŽ¡©‘HŸ @ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (193) cvn H.B /DEST pdfmark endŸ'…Â4.2.–™™A€ñadir“arš½«chi•Û$v“os–™™al“r˜epositorioŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (195) cvn H.B /DEST pdfmark endŸ ¬½Durante–€el“desarrollo“de“un“proægyecto“es“casi“seÙ guro“que“necesitaremos“incluir“m€ás“cheros“de“los“que“estabanޤ prešÀvistos–r=al“comienzo“del“mismo.“PÙ ara“incluir“un“chero“nue˜vÌÐo“solamente“ser€á“necesario“utilizar“el“comando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (196) cvn H.B /DEST pdfmark endÅaddŽ¡½y–€el“chero“a“a€ñadir“al“repositorio.“PÙ ara“a€ñadir“un“nueÀvÌÐo“directorio“se“sigue“el“mismo“m€étodo.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (197) cvn H.B /DEST pdfmark endŸ ÕÈEn–w³este“caso“všÌÐoægy“a€ñadir“un“nueÀv˜o“directorio“y“el“archiÀv˜o“que“cuelgó7a“de“€él.“La“€única“diferencia“es“que“el“directorioŽ¡se–€a€ñade“autom€áticamente“y“para“el“chero“es“necesario“realizar“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (198) cvn H.B /DEST pdfmark endÅcvs“commit“-m“"Comentario"½.ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (199) cvn H.B /DEST pdfmark endŸ ˆûÃ#–ffA€ñadir“un“nuevo“directorio:“kde-gnomeޤ ³3charlie$–ffcvs“add“kde-gnome/Ž¡Directory–ff/home/cvs/lpractico/kde-gnome“added“to“the“repositoryŽ¡#–ffEl“directorio“ya“forma“parte“del“repositorio.Ž¡¡#–ffA€ñado“el“fichero“kde.tex“en“el“directorio“kde-gnomeŽ¡charlie$–ffcd“kde-gnomeŽ¡charlie$–ffcvs“add“kde.texŽ¡cvs–ffadd:“scheduling“'kde.tex'“for“addtionŽ¡cvs–ffadd:“use“'cvs“commit'“to“add“this“file“permanentlyŽ¡#–ffEl“fichero“kde.tex“ha“sido“programado“para“ser“a€ñadido“al“repositorioŽ¡¡#–ffConfirmo“la“adici€ón“del“fichero“kde.texŽ¡charlie$–ffcvs“ci“-m“"Adicion:“Texto“de“la“comparativa“de“KDE-GNOME"Ž¡cvs–ffcommit:“Examining“.Ž¡RCS–fffile:“/home/cvs/lpractico/kde-gnome/kde.tex,vŽ¡doneŽ¡Checking–ffin“kde.tex;Ž¡/home/cvs/lpractico/kde-gnome/kde.tex,v– ÌÌÊ<Ã--“kde.texŽ¡initial–ffrevision:“1.1Ž¡doneŽ¡#–ffLa“adicci€ón“del“nuevo“fichero“ha“sido“correcta.Ž¡¦‘ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (200) cvn H.B /DEST pdfmark endŽŽŸ0‘Hïcolor push Black’¾FfÁ9ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹ /«ý‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïKps:SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýhj‘HÀ4.2.1.–Ficherȹos“especialesŽ‘HŸo›ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (202) cvn H.B /DEST pdfmark endŸ e½En–€la“introducci€ón“se“mencionaba“que“CVS“maneja“los“cheros“en“un“formato“especial“y“que“en“alg€ún“caso“eraޤ posible–€que“nuestro“chero“pudiera“ser“malinterpretado“por“el“servidor“al“guardarlo“(con“lo“que“seÙ guramenteŽ¡perder€íamos–€el“chero).“Este“caso“es“muy“com€ún“cuando“se“maneja“binarios“y“algunos“cheros“de“teÙ xto“(aunqueŽ¡esto–€es“menos“normal).ŽŸÊ8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (203) cvn H.B /DEST pdfmark endŸ 5ÈT¦grabajando–€en“la“documentaci€ón“he“decidido“a€ñadir“una“im€ágen“de“una“captura“del“escritorio“en“formato“eps.Ž¡PÙ ara–€eÀvitar“problemas“vÌÐoægy“a“a€ñadirla“marcando“como“binario“el“chero:Ž© *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (204) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$–ffcvs“add“-k“'b'“captura.epsޤ ³3cvs–ffadd:“scheduling“file“`captura.eps'“for“additionŽ¡cvs–ffadd:“use“'cvs“commit'“to“add“this“file“permanentlyŽ¡charlie$–ffcvs“commit“-m“"Nueva“captura“de“escritorio"“captura.epsŽ¡RCS–fffile:“/home/cvs/lpractico/consola/captura.eps,vŽ¡doneŽ¡Checking–ffin“captura.eps;Ž¡/home/cvs/lpractico/consola/captura.eps,v– ÌÌÊ<Ã--“captura.epsŽ¡initial–ffrevision:“1.1Ž¡doneŽ¡ŸŸïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (205) cvn H.B /DEST pdfmark end¤ ½La–€opci€ón“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (206) cvn H.B /DEST pdfmark endÅ-k“'b'“½marca“el“chero“como“binario,“es“decir“el“servidor“CVS“lo“guardar€á“eÙ xactamente“igual“sinŽ¡a€ñadirle–€nada.“Sin“embarÑðgo“no“se“nos“informa“de“que“el“chero“ha“sido“marcado“como“binario.ŽŸ j8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (207) cvn H.B /DEST pdfmark endŸ%ZçÂ4.3.–™™Eliminar“cherš½«os“del“r˜epositorioŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (209) cvn H.B /DEST pdfmark endŸ ¬½Los–€pasos“a“seÙ guir“para“eliminar“cheros“del“repositorio“son“id€énticos“al“caso“de“a€ñadir“cheros“con“una“solaŽ¡peculiaridad,–€primero“deberemos“borrar“localmentel“chero“que“queremos“eliminar:ަïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (210) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$–ffrm“variance.sgmlޤ ³3¡charlie$–ffcvs“remove“variance.sgmlŽ¡cvs–ffremove:“scheduling“`variance.sgml'“for“removalŽ¡cvs–ffremove:“use“'cvs“commit'“to“remove“this“file“permanentlyŽ¡¡charlie$–ffcvs“commit“-m“"Fichero“obsoleto"“variance.sgmlŽ¡cvs–ffcommit:“Examining“.Ž¡Removing‘ffvariance.sgml;Ž¡/home/cvs/doc-general/variance.sgml,v– ÌÌÊ<Ã--“variance.sgmlŽ¡new–ffrevision:“delete;“previous“revision:“1.1.1.1Ž¡doneŽ¡ŸŸïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (211) cvn H.B /DEST pdfmark end¤ ½En–€el“caso“de“los“directorios“tendremos“que“ser“m€ás“cuidadosos,“primero“deberemos“comprobar“que“no“hayaŽ¡cheros–€en“€él:ŽŽŸ0‘Hïcolor push Black’¹FfÁ10ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹ /¹ñ‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïKps:SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã–‘H ý^jïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (212) cvn H.B /DEST pdfmark endŸ Ãcharlie$–ffcvs“remove“parte2/ޤ ³3cvs–ffremove:“Removing“parte2/Ž¡cvs–ffremove:“file“`parte2//index.html'“still“in“working“directoryŽ¡cvs–ffremove:“1“file“exists;“remove“it“firstŽ¡¡charlie$–ffrm“parte2/index.htmlŽ¡¡charlie$–ffcvs“remove“parte2/Ž¡cvs–ffremove:“Removing“parte2/Ž¡cvs–ffremove:“scheduling“`parte2//index.html'“for“removalŽ¡cvs–ffremove:“use“'cvs“commit'“to“remove“this“file“permanentlyŽ¡¡charlie$–ffcvs“commit“-m“"Parte“asimilada“;)"“parte2Ž¡cvs–ffcommit:“Examining“parte2Ž¡Removing‘ffparte2/index.html;Ž¡/home/cvs/lpractico/consola/parte2/index.html,v– ÌÌÊ<Ã--“index.htmlŽ¡new–ffrevision:“delete;“previous“revision:“1.1Ž¡doneŽ¡©Ÿïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (213) cvn H.B /DEST pdfmark end¤ ½Primero–€nos“dice“que“todašÌÐv€ía“hay“archiÀv˜os“en“el“directorio“que“queremos“eliminar‘ÿs8.“Una“vÙ ez“borrados“los“cherosŽ¡que–€hay“el“directorio“procedemos“a“su“eliminaci€ón:“el“directorio“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (214) cvn H.B /DEST pdfmark endÃparte2“½es“eliminado“inmediatamente“mientrasŽ¡que–€el“chero“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (215) cvn H.B /DEST pdfmark endÃindex.html“½queda“pendiente“de“conrmaci€ón“con“la“operaci€ón“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (216) cvn H.B /DEST pdfmark endÅcommit½.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (217) cvn H.B /DEST pdfmark endŸ obÀ4.3.1.–CVS“y“los“cherȹos“eliminadosŽŸo›ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (219) cvn H.B /DEST pdfmark endŸ e½CVS‘yäse–yæencarÑðgó7a“de“mantener“un“hist€órico“y“todas“las“vÙ ersiones“de“los“arhiÀvÌÐos“que“hay“en“los“proægyectos.“Si“esto“esŽ¡cierto–€no“se“pueden“borrar“los“cheros“pues“aunque“no“sean“necesarios“en“las“vÙ ersiones“actuales“del“proægyecto“siŽ¡que–€lo“fueron“en“etapas“anteriores.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (220) cvn H.B /DEST pdfmark endŸ ÕÈEn–€realidad“CVS“no“borra“ning€ún“chero“de“repositorio“simplemente“lo“mueÀvÙ e“a“un“directorio“llamado“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (221) cvn H.B /DEST pdfmark endÃAttic“½yŽ¡lo–€marca“como“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (222) cvn H.B /DEST pdfmark endmuerto“estando“disponible“en“caso“de“tener“que“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (223) cvn H.B /DEST pdfmark endre•Àvi“virlo.ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (224) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$‘ffpwdޤ ³3/home/cvs/doc-general/AtticŽ¡¡charlie$‘fflsŽ¡variance.sgml,vŽ¡¦Ÿ@ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (225) cvn H.B /DEST pdfmark endŸ-lŒ¿5.–QëM€ás“posibilidades“con“CVSŽŸþïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (227) cvn H.B /DEST pdfmark endŸ ~½CVS–€tiene“muchas“posibilidades“para“sešÙ guir“el“recorrido“que“ha“se˜guido“un“proægyecto“ya“que“mantiene“un“cheroŽŸ de–€reÙ gistro“con“todo“lo“acontecido.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (228) cvn H.B /DEST pdfmark endŽŸ0‘Hïcolor push Black’¹FfÁ11ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹ /Él‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïKps:SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýhj‘HÂ5.1.–™™Mar½«car“con“etiquetasŽ‘HŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (230) cvn H.B /DEST pdfmark endŸ ¬½Uno–€de“los“incon™ŸvšÙ enientes“de“trabajar“con“CVS“es“que“siempre“se“manejan“los“cheros“con“sus“v˜ersiones“yޤ mantener–€una“lista“de“vÙ ersiones“relaciona“con“todos“los“archiÀvÌÐos“puede“resultar“muy“molesto“en“proægyectos“noŽ¡muy–€grandes.“PšÙ ara“eÀvitar“esto“e˜xiste“el“comando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (231) cvn H.B /DEST pdfmark endÅtag“etiqueta“½que“nos“permite“enlazar“diferentes“v˜ersiones“conŽ¡un–€nombre“simb€ólico.ŽŸ”ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (232) cvn H.B /DEST pdfmark endŸ ælUna–€semana“despu€és“de“empezar“un“proægyecto“y“de“desarrollo“marco“todo“el“contenido“actual“comoŽ¡ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (233) cvn H.B /DEST pdfmark endÃversion_2001-12-31½:ŽŸ ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (234) cvn H.B /DEST pdfmark endŸ ¥¦Ãcharlie$–ffcvs“tag“version_2001-12-31ޤ ³3cvs–fftag:“Tagging“.Ž¡T‘ffindex.sgmlŽ¡T‘ffMakefileŽ¡T‘ffbibliografia.sgmlŽ¡cvs–fftag:“Tagging“capitulo01Ž¡T‘ffcapitulo01/shell.sgmlŽ¡[...]Ž¡ŸŸïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (235) cvn H.B /DEST pdfmark end¤ ½A–€partir“de“ahora“puedo“hacer“referencia“a“este“estado“de“vÙ ersiones“como“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (236) cvn H.B /DEST pdfmark endÃversion_2001-12-31½,“lo“que“meŽ¡permitir€á–hôen“un“futuro“recuperar“todos“los“archiÀvÌÐos“tal“y“c€ómo“estaban“en“el“momento“en“el“que“los“he“etiquetado.ŽŸj8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (237) cvn H.B /DEST pdfmark endŸ%ZçÂ5.2.–™™La“historia“de“un“cher½«oŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (239) cvn H.B /DEST pdfmark endŸ ÓʽSešÙ g€ún–€se“vÀa“desarrollando“un“proægyecto“es“interesante“saber“que“trayectoria“ha“se˜guido“un“chero“y“aqu€í“es“dondeŽ¡entra–€la“calidad“de“los“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (240) cvn H.B /DEST pdfmark endÁcomentarios“½introducidos“por“los“desarrolladores.“PÙ ara“ello“se“utiliza“el“commando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (241) cvn H.B /DEST pdfmark endÅlog½.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (242) cvn H.B /DEST pdfmark endŸ ÕÈEn–€este“ejemplo“vÌÐoægy“a“consultar“la“historia“del“chero“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (243) cvn H.B /DEST pdfmark endÃmenu.php½:ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (244) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$–ffcvs“log“menu.phpޤ ³3¡RCS–fffile:“/var/cvs/web/menu.php,vŽ¡Working–fffile:“menu.phpŽ¡head:‘ff1.12Ž¡branch:Ž¡locks:‘ffstrictŽ¡access‘fflist:Ž¡symbolic‘ffnames:Ž¡‘ ÌÌDiciembre_2001:‘ff1.1.1.1Ž¡‘ ÌÌchernando:‘ff1.1.1Ž¡keyword–ffsubstitution:“kvŽ¡total–ffrevisions:“13;‘™˜selected“revisions:“13Ž¡description:Ž¡----------------------------Ž¡revision‘ff1.12Ž¡date:–ff2001/12/30“15:54:18;› ÌÌauthor:“chernando;˜state:“Exp;˜lines:“+1“-1Ž¡De–ffsiglinux“a“quienes“y“por“tanto“nuevo“siggulfi“con“enlaceŽ¡----------------------------ŽŽŸ0‘Hïcolor push Black’¹FfÁ12ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹ /Úã‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïKps:SDict begin [ /View [/XYZ H.V] /Dest (page.13) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýhj‘HÃrevision‘ff1.11ޤ ³3‘Hdate:–ff2001/12/30“12:01:56;› ÌÌauthor:“chernando;˜state:“Exp;˜lines:“+7“-7Ž¡‘HLimando–ffdetalles“2Ž¡‘H----------------------------Ž¡‘Hrevision‘ff1.10Ž¡‘Hdate:–ff2001/12/30“11:57:15;› ÌÌauthor:“chernando;˜state:“Exp;˜lines:“+7“-5Ž¡‘HLimando–ffdetalles“1Ž¡‘H----------------------------Ž¡‘Hrevision‘ff1.9Ž¡‘Hdate:–ff2001/12/30“11:40:43;› ÌÌauthor:“chernando;˜state:“Exp;˜lines:“+8“-9Ž¡‘HArreglado–ffun“enlace“erroneoŽ¡‘H[...]Ž¡©‘HŸ@ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (245) cvn H.B /DEST pdfmark endŸ'…Â5.3.–™™IncluyšÛ$endo“la“v˜ersi€ón“dentrš½«o“del“pr˜opio“cher˜oŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (247) cvn H.B /DEST pdfmark endŸ ¬½CVS–€maneja“internamente“los“cheros“que“se“suben“al“repositorio,“por“ello“es“necesario“controlar“a“los“cheroޤ binarios–€y“algunos“formatos“de“tešÙ xto“ya“que“es“posible“que“CVS“los“interprete.“En“este“caso“vÀamos“a“v˜er“cualesŽ¡son–€algunas“de“las“ešÙ xpresiones“que“se“e˜xpanden“autom€áticamente.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (248) cvn H.B /DEST pdfmark endŸ ÕÈUn–€ejemplo“muy“sencillo“es“a€ñadir“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (249) cvn H.B /DEST pdfmark endÃ$Id$½,“que“ser€á“autom€áticamente“por“informaci€ón“relacionada“a“la“€últimaŽ¡modicaci€ón,–€el“autor“de“la“misma“y“la“vÙ ersi€ón.“Este“ejemplo“es“del“XML“de“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (250) cvn H.B /DEST pdfmark endSIGLinux“-“GULFIŽ¡(http://acm.asoc..upm.es/siglinux/):ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (251) cvn H.B /DEST pdfmark endŸ ˆûÃchernando@acm:~/cvs/gulfi-web/servicios$–ffhead“cvs.xmlޤ ³3Ê<Ã?xml–ffversion="1.0"“encoding="ISO-8859-1"“?Ê>Ž¡<Ã!DOCTYPE–ffwebpage“PUBLIC“"-//laespiral.org//DTD“LE-document“1.1//EN"Ž¡‘32"LE-document-1.1.dtd"–ff[Ê<Ã!ENTITY“menu“SYSTEM“"menu.xml"Ê>“Ã]“Ê>Ž¡¡<Ã!--–ff$Id:“cvs.xml,v“1.2“2002/04/03“18:16:11“chernando“Exp“$“--Ê>Ž¡<Ãwebpage–fflang="es"“xreflabel="CVS"“folder="servicios"“id="cvs"Ê>Ž¡‘ ÌÌ<ÃtitleÊ>ÃCVSÊ<Ã/titleÊ>Ž¡‘ ÌÌ<Ãsect1Ê>Ž¡‘™˜<ÃtitleÊ>ÃCVSÊ<Ã/titleÊ>Ž¡‘™˜<ÃparaÊ>Ž¡Ã#‘ff...Ž¡¦½En–€este“caso,“cada“vÙ ez“que“sea“actualiza“el“chero“la“l€ínea“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (252) cvn H.B /DEST pdfmark endÊ<Ã!--–ff$Id:“cvs.xml,v“1.2“2002/04/03ޤ 18:16:11–ffchernando“Exp“$“--Ê>–€½tambi€én“se“actualiza.ŽŸi·ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (253) cvn H.B /DEST pdfmark endŸ –IExisten–€otros“patrones“de“sustituci€ón“como“son:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (254) cvn H.B /DEST pdfmark endÃ$Author$,–ff$Date$,“$Header$,“$Name$,“$Log$,...½.Ž¡PÙ ara–€m€ás“informaci€ón“consultar“el“manual“de“CVS.ŽŸ”ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (255) cvn H.B /DEST pdfmark endŸ ælHay–€que“tener“en“cuenta“la“precauci€ón“de“dejar“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (256) cvn H.B /DEST pdfmark endÃ$Id“½dentro“de“un“comentario“dentro“del“lenguaje“que“estemosŽ¡utilzando.ŽŸ Y”ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (257) cvn H.B /DEST pdfmark endŽŸ0‘Hïcolor push Black’¹FfÁ13ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/ì*‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïKps:SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark endï color popŸüfdŸ÷™œïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (278) cvn H.B /DEST pdfmark endŸfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã– ýjO‘H¿6.–QëAdministrando“un“serÓÅvidor“CVSŽ‘HŸ5ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (259) cvn H.B /DEST pdfmark endŸ Êò½Una–v™vÙ ez“instalado“el“servidor“CVS‘v—es“momento“de“jugó7ar“con“€él“y“comenzar“un“proægyecto“completamente“nueÀvÌÐo“enޤ nuestro–€propio“servidor‘ÿs8.ŽŸ*8ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (260) cvn H.B /DEST pdfmark endŸ%ZçÂ6.1.–™™Cr½«eando“un“nueȽvÛ$o“m€óduloŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (262) cvn H.B /DEST pdfmark endŸ ÓʽPšÙ ara–€comenzar“un“proægyecto“es“necesario,“o“al“menos“recomendable,“partir“de“algo“que“tengó7a“contenido.“Una“v˜ezŽ¡que–€tengó7amos“un“poco“la“estructura“de“nuestro“m€ódulo“es“el“momento“de“lle•Àv“arlo–€al“servidor“CVS“con“elŽ¡comando–€ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (263) cvn H.B /DEST pdfmark endÅimport“-m“"Comentario"“nombrÑðe_m€ódulo“etiqueta_origen“etiqueta_vægersi€ón“½y“empezar“a“trabajarŽ¡tirando–€del“CVS.ŽŸ ”ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (264) cvn H.B /DEST pdfmark endŸ ™ŸÃcharlie$‘ffpwdޤ ³3/home/charlie/documentacion-cvsŽ¡¡charlie$–ffcvs“-d“/home/cvs“import“-m“"Documentacion“sobre“CVS"“\Ž¡‘0™–cvs-doc–ffchernando“diciembre-2001Ž¡N‘ffcvs-doc/cvs.sgmlŽ¡N‘ffcvs-doc/MakefileŽ¡¡No–ffconflicts“created“by“this“importŽ¡¡charlie$Ž¡©Ÿïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (265) cvn H.B /DEST pdfmark end¤ ½En–€este“caso“he“creado“el“m€ódulo“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (266) cvn H.B /DEST pdfmark endÃcvs-doc“½y“he“creado“dos“cheros:“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (267) cvn H.B /DEST pdfmark endÃcvs.sgml–ffy“Makefile–€½(las“etiquetas“deŽ¡origen–€y“vÙ ersi€ón“no“son“importantes,“su“uso“solamente“interesa“cuando“estamos“desarrollando“para“terceros).“AŽ¡partir–€de“ahora“se“puede“acceder“al“m€ódulo“normalmente.ŽŸ *8ïps:SDict begin H.S endïps:SDict begin 11.7 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (268) cvn H.B /DEST pdfmark endŸ ˆûÃcharlie$‘ffpwdޤ ³3/home/charlie/cvsŽ¡¡charlie$–ffcvs“-d“/home/cvs“checkout“cvs-docŽ¡cvs–ffcheckout:“Updating“cvs-docŽ¡U‘ffcvs-doc/MakefileŽ¡U‘ffcvs-doc/cvs.sgmlŽ¡¦Ÿ@ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (269) cvn H.B /DEST pdfmark endŸ'…Â6.2.–™™Liberando“una“vÛ$ersi€ónŽŸ,6ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (271) cvn H.B /DEST pdfmark endŸ ÓʽA–€lo“laršÑðgo“del“desarrollo“sur˜gen“vÙ ersiones“que“son“estables“y“pueden“ser“distribÌÐuidas,“para“eÀvitar“a“los“posiblesޤ usuarios–€el“uso“de“CVS“se“realiza“mediante“el“comando“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (272) cvn H.B /DEST pdfmark endÅexport“-t“etiqueta“-d“ruta_destino“m€ódulo“½una“copiaŽ¡ešÙ xacta–€de“la“v˜ersi€ón“etiquetada“sin“los“directorios“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (273) cvn H.B /DEST pdfmark endÃCVS“½que“es“distribÌÐuible“si“la“empaquetamos“con“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (274) cvn H.B /DEST pdfmark endÅtar“½y“ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (275) cvn H.B /DEST pdfmark endÅgzip“½oŽ¡ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (276) cvn H.B /DEST pdfmark endÅbzip2½.ŽŽŸ0‘Hïcolor push Black’¹FfÁ14ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒ‹/ý!‘·ºâŸ·ºâïþps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end ã– ý#j‘Hïcolor push Blackïcolor push gray 0ïps:SDict begin H.S endïcolor push gray 0ï color popŽïps:SDict begin H.R endïKps:SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark endï color popŸüfd’o (ÁUso–€pr€áctico“de“CVSŽŽŽŽŽŽŽ’ÃFfï color popŽŽ ¬ã–‘H ý^jïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (277) cvn H.B /DEST pdfmark endŸ ½Mi–€documentaci€ón“sobre“CVS“es“sucientemente“madura“como“para“poder“distribÌÐuirla“para“ello“realizo“loŽ© siguiente:ŽŸ³3Ãcharlie$–ffcvs“-d“/home/cvs/“export“-t“v0.5“-d“/home/charlie/cvsdoc-0.5“cvs-docޤ ³3cvs–ffexport:“Updating“/home/charlie/cvsdoc-0.5Ž¡U‘ff/home/charlie/cvsdoc-0.5/MakefileŽ¡U‘ff/home/charlie/cvsdoc-0.5/cvs.sgmlŽ¡ŸŸ@ïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (279) cvn H.B /DEST pdfmark endŸ'…Â6.3.–™™Manejando“ramasŽŸìTïps:SDict begin H.S endïps:SDict begin 13 H.A endïGps:SDict begin [ /View [/XYZ H.V] /Dest (281) cvn H.B /DEST pdfmark endŸ ¬½Contenido–€para“las“pr€óximas“vÀacaciones“;)ŽŸ.¬Œ¿Notasޤïcolor push Black½1.‘€ï color popŽŽ‘El–€directorio“CVSR•™ŸOO“T–€contiene“la“conguraci€ón“y“cheros“de“informaci€ón“del“servidor“CVS.Ž¡ïcolor push Black2.‘€ï color popŽŽ‘La–€actualizaci€ón“implica“descarÑðgó7ar“los“cambios“a“la“vÙ ersi€ón“local,“pero“no“actualizar“los“archiÀvÌÐos“locales“alަ‘repositorio‘€centralŽŽŸ0‘Hïcolor push Black’¹FfÁ15ŽŽŽŽŽŽŽ’ÃFfï color popŽŽŒøhƒ’À;èÔ8ÃH ó5ùž" cmmi9ó?Á|‰ ptmr8tóª,« ptmb8tó‰šff pcrr8tó‰š pcrr8tóª,«ff ptmb8tóϯ8 ptmri8tóª,« ptmb8tóª,«G® ptmb8tóª,«â ptmb8tó?Á|‰ ptmr8tù»ßßßß