<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.guia-ubuntu.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://www.guia-ubuntu.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LirelTacos</id>
		<title>Guía Ubuntu - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://www.guia-ubuntu.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LirelTacos"/>
		<link rel="alternate" type="text/html" href="https://www.guia-ubuntu.com/index.php/Especial:Contribuciones/LirelTacos"/>
		<updated>2026-04-24T10:15:34Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.22.7</generator>

	<entry>
		<id>https://www.guia-ubuntu.com/index.php/CVS</id>
		<title>CVS</title>
		<link rel="alternate" type="text/html" href="https://www.guia-ubuntu.com/index.php/CVS"/>
				<updated>2008-01-25T02:25:19Z</updated>
		
		<summary type="html">&lt;p&gt;LirelTacos: outrpasdomo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://towandakittrell.ifrance.com/styles/video-tifa.html tifa hentai video] [http://maishagerdes.ifrance.com/original-uncut.html original uncut video of beheading nick b] [http://lacreshacappell.ifrance.com/pages/ddg.html  ddg] [http://maishagerdes.ifrance.com/videoclip-gratuiti.html videoclip gratuiti porno] [http://tamerahypes.ifrance.com/data/tera-patrick-videos.html tera patrick videos] [http://mairetrader.ifrance.com/html/ambrose-video.html ambrose video publishing inc.] [http://moniquehoran.ifrance.com/articles/lina-sybian.html lina sybian movie] [http://moniquehoran.ifrance.com/articles/james-bond-movies.html the complete james bond movie encyclopedia] [http://maishagerdes.ifrance.com/bruni-video.html bruni video] [http://generennick.ifrance.com/pages/sakis-video.html sakis video] [http://bereniceeads.ifrance.com/poprno-video.html poprno video] [http://janeebruck.ifrance.com/topic/scott-wolf.html scott wolf] [http://bereniceeads.ifrance.com/video-on-demand.html video on demand] [http://lynndigregorio.ifrance.com/library/autobahn-videos.html autobahn video] [http://towandakittrell.ifrance.com/styles/video-camera-surveillance.html video camera surveillance in schools] [http://towandakittrell.ifrance.com/styles/pussy-movie.html black pussy movie] [http://bereniceeads.ifrance.com/hp-videoproiettore.html hp videoproiettore] [http://charmaincurrey.ifrance.com/pages/video-de-dido.html video de dido] [http://lacreshacappell.ifrance.com/pages/leveret.html leveret] [http://generennick.ifrance.com/pages/canalis-video-backstage.html canalis video backstage] [http://maishagerdes.ifrance.com/videos-decapitazioni.html videos decapitazioni] [http://moniquehoran.ifrance.com/articles/latinas-movies.html latinas movies and galleries] [http://generennick.ifrance.com/pages/video-chat-incontri.html video chat incontri] [http://generennick.ifrance.com/pages/paris-hilton-videos.html paris hilton videos] [http://mariazook.ifrance.com/styles/parts-of-the.html parts of the ear] [http://tamerahypes.ifrance.com/data/christian-video.html christian video production] [http://mairetrader.ifrance.com/html/geil-video-umsonst.html geil video umsonst anschauen porno] [http://towandakittrell.ifrance.com/styles/history-of-video.html history of home video game console] [http://mairetrader.ifrance.com/html/video-flash.html video-flash] [http://mairetrader.ifrance.com/html/veronica-black.html veronica black video] [http://bereniceeads.ifrance.com/video-don-omar.html video don omar] [http://moniquehoran.ifrance.com/articles/video-clip-deutsch.html video clip deutsch panzer] [http://mairetrader.ifrance.com/html/sickle-cell-anemia.html sickle cell anemia video] [http://marthamaloney.ifrance.com/videocitofono.html videocitofono con antifurto] [http://mairetrader.ifrance.com/html/3-claus-movie-santa.html 3 claus movie santa] [http://moniquehoran.ifrance.com/articles/free-hand-job-videos.html aebn free hand job video] [http://janeebruck.ifrance.com/topic/air-purifier.html uv air purifier] [http://bereniceeads.ifrance.com/video-donne-che.html video donne che si masturbano] [http://mariazook.ifrance.com/styles/jasmine-wang.html jasmine wang] [http://lynndigregorio.ifrance.com/library/pussy-movies.html pussy movies] [http://generennick.ifrance.com/pages/abbonamenti-accessori.html abbonamenti accessori audio video] [http://tamerahypes.ifrance.com/data/video-mature-gratis.html video mature gratis] [http://mairetrader.ifrance.com/html/2gether-the.html 2gether the original movie] [http://towandakittrell.ifrance.com/styles/videos-de-musica.html videos de musica en espanol] [http://janeebruck.ifrance.com/topic/medical-equipment.html medical equipment sale] [http://generennick.ifrance.com/pages/telecamere-videosorveglianza.html telecamere videosorveglianza] [http://maishagerdes.ifrance.com/video-mezz-ora.html video mezz ora zeroassoluto] [http://mariazook.ifrance.com/styles/cartoon-horses.html cartoon horses] [http://janeebruck.ifrance.com/topic/motorweek.html motorweek] [http://moniquehoran.ifrance.com/articles/sex-underage.html sex underage videos] [http://maishagerdes.ifrance.com/video-lesbo-gratuiti.html video lesbo gratuiti] [http://moniquehoran.ifrance.com/articles/firefox-movie.html firefox movie] [http://lacreshacappell.ifrance.com/pages/stephenville.html stephenville tx] [http://tamerahypes.ifrance.com/data/video-lesbici.html video lesbici gratis] [http://maishagerdes.ifrance.com/bambola-nude.html bambola nude video] [http://bereniceeads.ifrance.com/jvc-videocamere.html jvc videocamere] [http://mairetrader.ifrance.com/html/rc-truck-video-clip.html rc truck video clip] [http://bereniceeads.ifrance.com/televideo-telenorba.html televideo telenorba] [http://lacreshacappell.ifrance.com/pages/red-bottom-shoes.html red bottom shoes] [http://bereniceeads.ifrance.com/video-nudiste.html video nudiste] [http://marthamaloney.ifrance.com/nicholas-berg.html nicholas berg execution video] [http://janeebruck.ifrance.com/topic/fire-safety-education.html fire safety education] [http://marthamaloney.ifrance.com/video-la-mesa.html video la mesa que mas aplauda] [http://maishagerdes.ifrance.com/moviebox-dv.html moviebox dv] [http://bereniceeads.ifrance.com/video-shemale.html video shemale] [http://generennick.ifrance.com/pages/videocamera-dcr.html videocamera dcr pc55] [http://mariazook.ifrance.com/styles/lovehammers.html lovehammers ultrasound] [http://bereniceeads.ifrance.com/video-porni.html video porni] [http://towandakittrell.ifrance.com/styles/sapphire-video.html sapphire video driver] [http://moniquehoran.ifrance.com/articles/wwwhotmoviescom.html hotmovies.com vod.com] [http://mairetrader.ifrance.com/html/rental-video.html rental video projectors edinburgh] [http://towandakittrell.ifrance.com/styles/trish-stratus-wet.html trish stratus wet and wild video] [http://bereniceeads.ifrance.com/video-esibizioni.html video esibizioni] [http://towandakittrell.ifrance.com/styles/wwwgirl-movies.html www.girl movies] [http://mairetrader.ifrance.com/html/10-time-top-video.html 10 time top video viral] [http://mariazook.ifrance.com/styles/hairline-transplant.html hairline transplant repairs] [http://generennick.ifrance.com/pages/video-mario-winans.html video mario winans] [http://moniquehoran.ifrance.com/articles/xxx-video-chat.html asian chat teen video xxx] [http://marthamaloney.ifrance.com/videosdiarios.html videosdiarios] [http://mairetrader.ifrance.com/html/video-authoring.html video authoring and dvd replication] [http://janeebruck.ifrance.com/topic/ronnie-van-zant.html grave ronnie van zant] [http://maishagerdes.ifrance.com/videocamere-canon.html videocamere canon mv800] [http://generennick.ifrance.com/pages/webcam-videocamere.html webcam videocamere] [http://towandakittrell.ifrance.com/styles/holes-the-movie.html holes the movie] [http://tamerahypes.ifrance.com/data/audio-video-cable.html audio video cable] [http://lacreshacappell.ifrance.com/pages/2009-dodge-ram.html  2009 dodge ram] [http://mariazook.ifrance.com/styles/new-orleans-aquarium.html new orleans aquarium] [http://janeebruck.ifrance.com/topic/st-andrews-golf.html st. andrews golf picture] [http://mariazook.ifrance.com/styles/craps-tables.html craps tables kits] [http://towandakittrell.ifrance.com/styles/movie-quest.html movie quest vision] [http://janeebruck.ifrance.com/topic/eluxury.html eluxury] [http://lynndigregorio.ifrance.com/library/my-space-video-clips.html my space video clips] [http://maishagerdes.ifrance.com/scheda-video-uscita.html scheda video uscita tv] [http://mairetrader.ifrance.com/html/video-remote.html video remote interpreting] [http://mariazook.ifrance.com/styles/beer-companies.html british beer company] [http://maishagerdes.ifrance.com/video-di-cameron.html video di cameron diaz] [http://tamerahypes.ifrance.com/data/star-trek-movies.html movie next star trek] [http://mairetrader.ifrance.com/html/advance-movie-adapter.html advance movie adapter] [http://generennick.ifrance.com/pages/videos-de-pesca.html videos de pesca] [http://towandakittrell.ifrance.com/styles/ai-nagase-videos.html ai nagase videos] [http://janeebruck.ifrance.com/topic/avk.html avk] [http://lacreshacappell.ifrance.com/pages/daniela-sea.html daniela sea] [http://mairetrader.ifrance.com/html/free-amateur-video.html free amateur video] [http://mairetrader.ifrance.com/html/69-music-summer.html 69 music summer video] [http://mairetrader.ifrance.com/html/abba-knowing-me.html abba knowing me knowing you video] [http://maishagerdes.ifrance.com/video-musical.html video musical de kalimba] [http://tamerahypes.ifrance.com/data/pompini-video.html pompini video] [http://marthamaloney.ifrance.com/trasmettitore-ricevitore.html trasmettitore-ricevitore audio video] [http://bereniceeads.ifrance.com/matura-video.html matura video] [http://bereniceeads.ifrance.com/jay-z-streets.html jay-z. streets is watching. the movie] [http://mairetrader.ifrance.com/html/mp3-video-player.html mp3 video player kaufen] [http://maishagerdes.ifrance.com/gianluca-grignani.html gianluca grignani video di speciale] [http://charmaincurrey.ifrance.com/pages/video-porno-credit.html video porno credit card] [http://lacreshacappell.ifrance.com/pages/george-m-cohan.html george m cohan] [http://tamerahypes.ifrance.com/data/televideo-telenorba.html televideo telenorba] [http://moniquehoran.ifrance.com/articles/cohf-movies.html cohf movies] [http://lynndigregorio.ifrance.com/library/assassins-movie.html assassin movie] [http://bereniceeads.ifrance.com/video-gratis-scopate.html video gratis scopate] [http://bereniceeads.ifrance.com/videoannunci-amatoriali.html videoannunci amatoriali] [http://lynndigregorio.ifrance.com/library/auto-racing.html auto racing crash videos] [http://bereniceeads.ifrance.com/mature-video.html mature video tgp] [http://mariazook.ifrance.com/styles/maui-homes-for-sale.html home maui sale] [http://towandakittrell.ifrance.com/styles/old-school-movie.html old school movie] [http://moniquehoran.ifrance.com/articles/xxx-video-women.html xxx video women orgasms] [http://mariazook.ifrance.com/styles/portable-batting.html portable batting cages] [http://maishagerdes.ifrance.com/s-video-scart.html s-video scart] [http://charmaincurrey.ifrance.com/pages/cavo-di-connessione.html cavo di connessione video] [http://tamerahypes.ifrance.com/data/medical-video.html medical video production] [http://generennick.ifrance.com/pages/magnolia-video.html magnolia video] [http://generennick.ifrance.com/pages/video-jerry-rivera.html video jerry rivera] [http://charmaincurrey.ifrance.com/pages/michele-vieth.html michele vieth video] [http://maishagerdes.ifrance.com/video-decapitazioni.html video decapitazioni in iraq] [http://mariazook.ifrance.com/styles/movie-reel.html in knockouts movie reel violent woman] [http://mairetrader.ifrance.com/html/reno-911-video.html reno 911 video clip] [http://marthamaloney.ifrance.com/video-asia-argento.html video asia argento fantasma dell opera] [http://charmaincurrey.ifrance.com/pages/gameboy-advance.html gameboy advance videogiochi] [http://marthamaloney.ifrance.com/video-tati-albero.html video tati albero] [http://tamerahypes.ifrance.com/data/college-video.html college video] [http://generennick.ifrance.com/pages/video-alta-ris.html video alta ris] [http://mariazook.ifrance.com/styles/change-management.html change management consultant] [http://towandakittrell.ifrance.com/styles/ebony-videos.html free ebony girl video] [http://bereniceeads.ifrance.com/hipo-rave-video.html hipo rave video] [http://janeebruck.ifrance.com/topic/stereotype.html african american stereotype] [http://lynndigregorio.ifrance.com/library/amateur-teen-sex.html amateur teen home video sex] [http://generennick.ifrance.com/pages/kenneth-bingley.html kenneth bingley video] [http://mairetrader.ifrance.com/html/logitech-pocket.html logitech pocket video] [http://generennick.ifrance.com/pages/lettore-mp3-con.html lettore mp3 con video] [http://janeebruck.ifrance.com/topic/rating-sites.html pic rating site] [http://janeebruck.ifrance.com/topic/black-teenagers.html black teenager nude] [http://lynndigregorio.ifrance.com/library/movies-in-the-90s.html 90s horror movie] [http://generennick.ifrance.com/pages/video-marco-masini.html video marco masini] [http://marthamaloney.ifrance.com/tiziano-ferro.html tiziano ferro video ti voglio bene] [http://mariazook.ifrance.com/styles/francine.html francine] [http://charmaincurrey.ifrance.com/pages/video-dei-goal.html video dei goal di del piero] [http://bereniceeads.ifrance.com/video-masturbazioni.html video masturbazioni maschili] [http://maishagerdes.ifrance.com/video-cecenia.html video cecenia] [http://bereniceeads.ifrance.com/video-matura.html video matura] [http://moniquehoran.ifrance.com/articles/cartoon-sex-videos.html cartoon sex video] [http://generennick.ifrance.com/pages/decapitare-video.html decapitare video] [http://janeebruck.ifrance.com/topic/mls-austin-texas.html mls austin texas] [http://bereniceeads.ifrance.com/nuovi-video-musicali.html nuovi video musicali] [http://marthamaloney.ifrance.com/musica-e-video.html musica e video clip] [http://maishagerdes.ifrance.com/video-del-soldato.html video del soldato decapitato] [http://mairetrader.ifrance.com/html/shoreline-movie.html shoreline movie mountain view ca] [http://charmaincurrey.ifrance.com/pages/video-esecuzione.html video esecuzione ostaggi] [http://mariazook.ifrance.com/styles/bbc-world-news.html bbc world news] [http://marthamaloney.ifrance.com/testo-e-video.html testo e video di sara perche ti amo] [http://moniquehoran.ifrance.com/articles/women-in-rap-videos.html women in rap videos] [http://maishagerdes.ifrance.com/hanson-video.html hanson video] [http://marthamaloney.ifrance.com/coolpix-4600-accessori.html coolpix 4600 accessori nikon audio video] [http://lynndigregorio.ifrance.com/library/new-miami-vice.html new miami vice movie] [http://maishagerdes.ifrance.com/dvd--videoregistratore.html dvd- videoregistratore] [http://bereniceeads.ifrance.com/video-sexi-gratis.html video sexi gratis] [http://maishagerdes.ifrance.com/keith-m-maupin.html keith m maupin video] [http://generennick.ifrance.com/pages/videocassetta-180.html videocassetta 180] [http://janeebruck.ifrance.com/topic/chobits-wallpaper.html chobits wallpaper] [http://lynndigregorio.ifrance.com/library/adult-movie-web.html adult movie web] [http://tamerahypes.ifrance.com/data/spring-break-movies.html spring break movie] [http://mairetrader.ifrance.com/html/video-door.html video door] [http://towandakittrell.ifrance.com/styles/brad-pitt-movies.html brad pitt latest movie] [http://bereniceeads.ifrance.com/dipendenza-videogioco.html dipendenza videogioco] [http://maishagerdes.ifrance.com/free-video-clip.html free video clip hard] [http://maishagerdes.ifrance.com/shakira-tu-video.html shakira tu video] [http://bereniceeads.ifrance.com/gang-bang-video.html gang bang video anteprima] [http://lynndigregorio.ifrance.com/library/video-editing-guide.html video editing guide] [http://lynndigregorio.ifrance.com/library/where-the-boy.html where the boy arent video] [http://maishagerdes.ifrance.com/video-sexo-com.html video sexo com] [http://janeebruck.ifrance.com/topic/loraine.html loraine] [http://charmaincurrey.ifrance.com/pages/video-drammatici.html video drammatici] [http://moniquehoran.ifrance.com/articles/fischer-video.html fischer video] [http://maishagerdes.ifrance.com/xm2-videocamere.html xm2 videocamere canon] [http://maishagerdes.ifrance.com/terroristi-video.html terroristi video] [http://mariazook.ifrance.com/styles/chuck-e-cheeses.html chuck e cheeses] [http://maishagerdes.ifrance.com/batterie-toshiba.html batterie toshiba per foto e video] [http://tamerahypes.ifrance.com/data/melissa-midwest.html masturbating melissa midwest video] [http://lynndigregorio.ifrance.com/library/video-editting-software.html video editting software free] [http://maishagerdes.ifrance.com/video-della-decapitazione.html video della decapitazione dell ostaggio] [http://lacreshacappell.ifrance.com/pages/max-liron-bratman.html  max liron bratman] [http://janeebruck.ifrance.com/topic/vegetable-gardening.html vegetable gardening tips] [http://tamerahypes.ifrance.com/data/war-videos.html war videos] &lt;br /&gt;
[http://velvadehart.freekong.cn/view/band-good-charlotte.html band good charlotte] [http://lareequiroz.ifrance.com/styles/queen-of-sheba.html queen of sheba] [http://karolynodea.ifrance.com/the-leaky-cauldron.html the leaky cauldron] [http://murielmesta.ifrance.com/multnomah-county.html multnomah county library] [http://sheakenner.freekong.cn/male-erection.html male erection picture] [http://allegracobbins.infinites.net/lagu-artis-indonesia.html lagu artis indonesia] [http://karolynodea.ifrance.com/wicca.html history of wicca] [http://rosemariehauer.marte.ro/text/dyson-vacuum-cleaner.html dyson vacuum cleaner] [http://ashleepolito.ifrance.com/wiki/good-sams-club.html good sams club] [http://loretakan.ifrance.com/backwards.html 360 backwards box compatibility list x] [http://cythiacoldiron.ibelgique.com/fatal-frame.html fatal frame] [http://diedreprewitt.marte.ro/blog/park-city-hotels.html park city hotel] [http://lareequiroz.ifrance.com/styles/audio-files.html audio file] [http://rosemariehauer.marte.ro/text/shoking-photos.html shoking photos] [http://ellenarubio.ibelgique.com/pages/sundance-boats.html sundance boats] [http://brittenyengleha.infinites.net/styles/baltimore-zoo.html baltimore in maryland zoo] [http://jennahodge.infinites.net/styles/animae.html anime] [http://jerriechiu.ourprofile.net/new-order-waiting.html new order waiting for the sirens call tracklist] [http://ewagaudet.ifrance.com/bicycle-parts.html schwinn bicycle part] [http://tobylongwell.ibelgique.com/wiki/japanese-maple.html japanese maple trees] [http://lorrettakohl.freekong.cn/punx-unite-mp3.html punx unite mp3] [http://junkonelsen.ibelgique.com/topic/goodbye-quotes.html goodbye quotes] [http://lorrettakohl.freekong.cn/uss-missouri.html uss missouri replica] [http://diedreprewitt.marte.ro/blog/eheim-ecco-2231.html eheim ecco 2231] [http://lareequiroz.ifrance.com/styles/naughty-people.html naughty people] [http://emiliapearman.ifrance.com/web/eminem-without-me.html eminem without me lyric] [http://rosemariehauer.marte.ro/text/maryanne.html maryanne nubiles] [http://brittenyengleha.infinites.net/styles/juliet-lewis.html juliet lewis] [http://solaguerre.ifrance.com/q/refurbished.html refurbished ipods] [http://williameury.freekong.cn/wiki/tiny-titties-schoolgirl.html tiny titties schoolgirl thumbnail galleries] [http://juttahuntington.ifrance.com/resources/christian-singles.html portable dance floor] [http://loretakan.ifrance.com/perfume-oil.html aromatherapy oil perfume] [http://carlinemucci.ibelgique.com/articles/niji.html niji] [http://marklemasters.ifrance.com/picture-galleries.html yahoo picture gallery] [http://iraokeefe.ifrance.com/content/eps.html car eps graco seat snugride] [http://diedreprewitt.marte.ro/blog/corporate-social.html corporate social responsibility] [http://terinariver.go2net.ws/oconee-memorial.html oconee memorial park] [http://idaliabanner.ifrance.com/leg-lymphedema.html leg lymphedema] [http://jenaequirion.go2net.ws/content/top-ten-baby-names.html baby name ten top] [http://juttahuntington.ifrance.com/resources/tree-care.html money tree plant care] [http://loretakan.ifrance.com/nicole-richie-diet.html nicole richie diet] [http://ashleepolito.ifrance.com/wiki/we-fest.html we fest] [http://tennillelamothe.marte.ro/blog/unlock-motorola.html unlock motorola v3 for free] [http://verlineschwanke.ibelgique.com/sterling-silver.html sterling silver jewelry] [http://diedreprewitt.marte.ro/blog/mig.html 17 mig] [http://gitavandoren.infinites.net/outdoor-baby.html outdoor baby swing] [http://lorenzahaycraft.freekong.cn/blog/mobile-suit-gundam.html mobile suit gundam seed nintendo ds] [http://ewagaudet.ifrance.com/ncesccom.html ncesc.com] [http://arlethabrickey.ifrance.com/data/meningitis.html meningitis] [http://charisseratley.marte.ro/wiki/dennis-kucinich.html dennis kucinich] [http://emiliapearman.ifrance.com/web/psychology-jobs.html psychology jobs] [http://karolynodea.ifrance.com/electronic-health.html electronic health records software] [http://enidbarroso.marte.ro/web/most-expensive.html most expensive car in the world] [http://florencearneson.ifrance.com/help-with-reading.html help in reading] [http://harrietnoone.ifrance.com/pages/knock-knock.html knock on wood] [http://randaservice.marte.ro/data/extensis-photoframe.html extensis photoframe crack] [http://tanyaryans.ifrance.com/mineral-pre-mix.html mineral pre-mix] [http://allegracobbins.infinites.net/council.html council] [http://randaservice.marte.ro/data/apakah-itu-tsunami.html apakah itu tsunami] [http://yongbacker.ifrance.com/html/spread-cheeks.html cheek her spread] [http://karolynodea.ifrance.com/business-internet.html business home internet marketing opportunity] [http://verlineschwanke.ibelgique.com/dating-services.html dating services california] [http://jolynnepley.marte.ro/view/ramada-hotel.html ramada hotel pudong] [http://carlinemucci.ibelgique.com/articles/howard-stern-ex.html howard stern ex wife] [http://janeerentschler.ifrance.com/article/hp-57.html hp 57] [http://leshasartor.ibelgique.com/content/googlecom.html google.com] [http://loretakan.ifrance.com/women-wrestling.html free nude video woman wrestling] [http://arlethabrickey.ifrance.com/data/fire-fighting.html fighting fire] [http://goodbyetoday.ourprofile.net/styles/woodland-park-real.html woodland park real estate] [http://emiliapearman.ifrance.com/web/sand-dollar.html sand dollar marine] [http://harrietnoone.ifrance.com/pages/celtic-mythology.html celtic irish mythology] [http://lorenzahaycraft.freekong.cn/blog/volkswagen-parts.html volkswagen parts online] [http://loretakan.ifrance.com/gays-in-the-military.html gays in the military] [http://jennahodge.infinites.net/styles/frozen.html frozen] [http://tanyaryans.ifrance.com/christina-agulara.html aguilera christina hurt] [http://juttahuntington.ifrance.com/resources/respironics.html respironics] [http://arlethabrickey.ifrance.com/data/spot-welder.html spot welder] [http://jennahodge.infinites.net/styles/long-video-cables.html long video cables] [http://rosemariehauer.marte.ro/text/janet-jackson-weight.html janet jackson weight loss interview] [http://terinariver.go2net.ws/nastia-liukin.html nastia liukin picture] [http://karolynodea.ifrance.com/tape.html tape] [http://rosemariehauer.marte.ro/text/tanger-outlet.html tanger outlet] [http://lareequiroz.ifrance.com/styles/concrete-sealant.html concrete floor sealant] [http://arlethabrickey.ifrance.com/data/https.html https] [http://verlineschwanke.ibelgique.com/atlanta-georgia.html atlanta georgia] [http://janeerentschler.ifrance.com/article/cash-register.html cash register sales] [http://harrietnoone.ifrance.com/pages/director-chairs.html director chairs] [http://harrietnoone.ifrance.com/pages/seafood-cold.html seafood cold cases] [http://helencrose.marte.ro/italian-leather.html italian leather dining room chairs] [http://anyadingle.ifrance.com/view/symbolic-meaning.html symbolic meaning of flowers] [http://arlethabrickey.ifrance.com/data/sissy-bar.html honda sissy bar] [http://lareequiroz.ifrance.com/styles/microsoft-picture.html microsoft picture it] [http://emiliapearman.ifrance.com/web/pointed-toes.html boot pointed toe] [http://deloisenation.infinites.net/articles/tying-a-tie.html tying a tie] [http://enidbarroso.marte.ro/web/rog-reviews.html rog reviews] [http://juttahuntington.ifrance.com/resources/touch-screen.html touch screen] [http://harrietnoone.ifrance.com/pages/welcome-back.html welcome back kotter] [http://tennillelamothe.marte.ro/blog/luciana-paluzzi.html luciana paluzzi] [http://tanyaryans.ifrance.com/silver-springs.html silver springs florida] [http://janeerentschler.ifrance.com/article/twins-kissing.html twins kissing] [http://iraokeefe.ifrance.com/content/extreme-atv.html extreme atv video] [http://marklemasters.ifrance.com/j-crew.html j. crew] [http://emiliapearman.ifrance.com/web/copeland-sports.html copeland sports] [http://loretakan.ifrance.com/make-money-at.html make money online work at home opportunity] [http://carlinemucci.ibelgique.com/articles/midi-to-mp3.html midi to mp3] [http://sabragilyard.freekong.cn/beat-box.html beat box] [http://sonjaspeights.infinites.net/content/lightyear-alliance.html lightyear alliance] [http://charisseratley.marte.ro/wiki/coloradoavalanchecom.html coloradoavalanche.com] [http://iraokeefe.ifrance.com/content/dumpster.html dumpster slut] [http://tanyaryans.ifrance.com/how-to-make-bows.html how to make bows] [http://helencrose.marte.ro/silk-screening.html silk screening equipment] [http://nadiaprim.infinites.net/wisconsin-unemployment.html wisconsin unemployment] [http://janeerentschler.ifrance.com/article/ice-cream-carts.html cart cream ice vending] [http://helencrose.marte.ro/particle-count.html particle count] [http://karolynodea.ifrance.com/ethics-and-finance.html cd corporate est ethics finance finance finance hill in in insurance irwin mcgraw poors powerweb principle real series standard student] [http://solaguerre.ifrance.com/q/mencom.html nude men.com] [http://rosemariehauer.marte.ro/text/jkii-mods.html jkii mods] [http://helencrose.marte.ro/wyoming-incorporations.html wyoming incorporations] [http://ewagaudet.ifrance.com/king-cobras.html fact about king cobras] [http://allegracobbins.infinites.net/brook-hunter.html brook hunter] [http://florencearneson.ifrance.com/grammar.html kelsey grammar] [http://arlethabrickey.ifrance.com/data/free-online-casino.html free online casino game] [http://ewagaudet.ifrance.com/wheelcovers.html cover wheel] [http://tennillelamothe.marte.ro/blog/summer-poems.html poem summer time] [http://nadiaprim.infinites.net/astm-grease-working.html astm grease working machine] [http://enidbarroso.marte.ro/web/kenwood-programming.html kenwood radio programming software] [http://ewagaudet.ifrance.com/g-string-girls.html g string girls] [http://harrietnoone.ifrance.com/pages/city-of-evil.html city evil lyric] [http://ashleepolito.ifrance.com/wiki/helicopter-dust.html helicopter dust] [http://ashleepolito.ifrance.com/wiki/hair-inhibitor.html as hair inhibitor milk soy] [http://randaservice.marte.ro/data/string-theory-equations.html string theory equations] [http://harrietnoone.ifrance.com/pages/vera-drake.html vera drake movie] [http://arlethabrickey.ifrance.com/data/oakwood-hospital.html hospital michigan oakwood] [http://jerriechiu.ourprofile.net/american-girls.html american girls] [http://lareequiroz.ifrance.com/styles/hilton-chicago.html hilton chicago] [http://janeerentschler.ifrance.com/article/ocean-life.html ocean life] [http://marklemasters.ifrance.com/kitchen-planning.html kitchen planning] [http://tanyaryans.ifrance.com/baker-furniture.html baker furniture] [http://emiliapearman.ifrance.com/web/torrents.html gay torrent] [http://diedreprewitt.marte.ro/blog/nbc-las-vegas-tv.html nbc las vegas tv show] [http://idaliabanner.ifrance.com/mauritius-hotels.html grand bay hotel mauritius] [http://karolynodea.ifrance.com/discount-travel.html discount travel packages] [http://helencrose.marte.ro/moisture-chambers.html moisture chambers] [http://juttahuntington.ifrance.com/resources/takagism.html takagism history] [http://janeerentschler.ifrance.com/article/warehouse-storage.html warehouse storage] [http://murielmesta.ifrance.com/gential-herpes.html picture of gential herpes] [http://ellenarubio.ibelgique.com/pages/limos-arizona.html limos arizona] [http://harrietnoone.ifrance.com/pages/da-brat-oops.html da brat oops] [http://lareequiroz.ifrance.com/styles/bravo.html bravo] [http://ethelkuster.freekong.cn/content/george-washinton.html george washinton] [http://jennahodge.infinites.net/styles/humble.html humble] [http://janeerentschler.ifrance.com/article/anti-aging-natural.html anti aging natural supplement] [http://marklemasters.ifrance.com/online-reservation.html online reservation] [http://carlynbeyers.ourprofile.net/performance.html performance] [http://solaguerre.ifrance.com/q/reston-relocation.html reston relocation] [http://anyadingle.ifrance.com/view/pamela-anderson.html pamela anderson gallery] [http://cythiacoldiron.ibelgique.com/golf-swing.html 2nd swing golf store] [http://ashleepolito.ifrance.com/wiki/club-lighting.html night club lighting] [http://solaguerre.ifrance.com/q/story-brother-sister.html story brother sister bedroom] [http://enidbarroso.marte.ro/web/pirate-4x4-mercedes.html pirate 4x4 mercedes] [http://tommiepham.ourprofile.net/content/sonoma-county.html sonoma county realtors] [http://lorenzahaycraft.freekong.cn/blog/breeds-of-cats.html domestic cat breed] [http://lauriebolden.marte.ro/wiki/heavily-scented.html heavily scented candle] [http://juttahuntington.ifrance.com/resources/pocket-dragons.html pocket dragon figurine] [http://iraokeefe.ifrance.com/content/library-furniture.html school library furniture] [http://jenaequirion.go2net.ws/content/educational-toys.html educational toys and games] [http://arceliakimmons.ibelgique.com/blog/husqvarna-motorcycles.html husqvarna motorcycles] [http://idaliabanner.ifrance.com/buying-long-term.html buying long term care insurance] [http://carlinemucci.ibelgique.com/articles/odor-cleaner.html odor cleaner] [http://ashleepolito.ifrance.com/wiki/cell-one.html free cell one ringtone] [http://ewagaudet.ifrance.com/used-laptop-computers.html cheap computer laptop sale used] [http://tanyaryans.ifrance.com/2005-mustang-saleen.html 2005 mustang saleen] [http://helencrose.marte.ro/us-customs-regulations.html us customs regulations] [http://diedreprewitt.marte.ro/blog/773n.html 773n] [http://karolynodea.ifrance.com/free-long-distance.html call distance free long] [http://jenaequirion.go2net.ws/content/bariatric-surgery.html bariatric surgery support group] [http://karolynodea.ifrance.com/fireplace-mantel.html stone fireplace mantel] [http://anyadingle.ifrance.com/view/facade-tarot.html facade tarot reading] [http://rosemariehauer.marte.ro/text/texas-mustangs.html texas mustangs soccer club] [http://janeerentschler.ifrance.com/article/cedar-gazebo.html cedar gazebo] [http://tanyaryans.ifrance.com/free-get-well-cards.html free get well cards] [http://arceliakimmons.ibelgique.com/blog/humanoids-from-the.html humanoids deep] [http://karolynodea.ifrance.com/gorgeous-men.html black gorgeous man] [http://lareequiroz.ifrance.com/styles/warwick.html estate real ri warwick] [http://tennillelamothe.marte.ro/blog/pickin-wild-flowers.html pickin wild flowers] [http://nadiaprim.infinites.net/10-bo-derek.html 10 bo derek] [http://mikaricherson.infinites.net/dale-earnhardt.html dale earnhardt jr girlfriend] [http://solaguerre.ifrance.com/q/climbing-ratings.html climbing ratings] [http://ewagaudet.ifrance.com/gazelle.html gazelle] [http://mikaricherson.infinites.net/problem-boys.html boy problem teenage] [http://tanyaryans.ifrance.com/superman-mp3.html mp3 music superman theme] [http://lauriebolden.marte.ro/wiki/automotive-radiator.html automotive radiator] [http://ashleepolito.ifrance.com/wiki/feather-boas.html add boas feather link] [http://karolynodea.ifrance.com/alphabet-beads.html sterling alphabet bead] [http://mikaricherson.infinites.net/mc-sporting-goods.html mc sporting goods michigan] [http://emiliapearman.ifrance.com/web/wwwyellcom.html www.yell.com] [http://ewagaudet.ifrance.com/lawn-mower-blades.html lawn mower blades] [http://xsuddenlynowx.ourprofile.net/wiki/allmusiccom.html allmusic.com] [http://lareequiroz.ifrance.com/styles/in-vitro.html in vitro] [http://solaguerre.ifrance.com/q/wwwusajobsgov.html impact usajobs.gov] &lt;br /&gt;
{{INDdcha}}&lt;br /&gt;
El '''Sistema de Control de Versiones''' (''CVS'') permite que varios programadores trabajen de forma colaborativa en un mismo proyecto llevando un control de las versiones de los ficheros. De esta forma se permiten cambios concurrentes en un mismo fichero sin perder lo cambios realizados. Si usas o quieres usar esta herramienta se recomienda que pruebes [[CVSTrac]].&lt;br /&gt;
&lt;br /&gt;
== InstalaciÃÂ³n ==&lt;br /&gt;
&lt;br /&gt;
El programa viene en el paquete '''cvs''' que podemos [[aÃÂ±adir aplicaciones|instalar]] los repositorios oficiales de Ubuntu.&lt;br /&gt;
&lt;br /&gt;
== ConfiguraciÃÂ³n de un repositorio ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tener cada proyecto en un repositorio separado, que es lo suyo para tener un control mÃÂ¡s fino sobre cada uno de los distintos repositorios. Es mejor asÃÂ­ por el tema de usuarios, permisos y configuraciones varias. Todos estos repositorios los vamos a crear dentro del directorio '''/var/lib/repositorio/''', por ejemplo, para tenerlos juntos y facilitar el tema de la copia de seguridad. &lt;br /&gt;
&lt;br /&gt;
Como buena prÃÂ¡ctica es aconsejable tener un usuario ''cvs'' que serÃÂ¡ el propietario de los ficheros:&lt;br /&gt;
&lt;br /&gt;
 $ adduser cvs&lt;br /&gt;
 $ chown cvs:cvs -R /var/lib/repositorio&lt;br /&gt;
&lt;br /&gt;
Una vez declaradas estas premisas procedemos a la inicializaciÃÂ³n del repositorio que albergarÃÂ¡ un hipotÃÂ©tico llamado ''tuxitron''. Estas tareas de instalaciÃÂ³n las haremos como ''root'':&lt;br /&gt;
&lt;br /&gt;
 $ cvs -d /var/lib/repositorio/tuxitron init&lt;br /&gt;
&lt;br /&gt;
Para que todos los usuarios del grupo '''cvs''' tengan permisos para trabajar con el repositorio, hacemos que todos los ficheros del reciÃÂ©n creado repositorio pertenezcan a ese grupo:&lt;br /&gt;
&lt;br /&gt;
 $ chgrp cvs /var/lib/repositorio/tuxitron -R&lt;br /&gt;
&lt;br /&gt;
Ahora le tenemos que indicar al CVS que puede disponer del nuevo repositorio. Si usamos el superdemonio ''xinetd'' tendremos que crear el fichero:&lt;br /&gt;
&lt;br /&gt;
 $ gedit /etc/xinetd.d/cvs &lt;br /&gt;
&lt;br /&gt;
y aÃÂ±adir el nuevo repositorio:&lt;br /&gt;
&lt;br /&gt;
 --allow-root=/var/lib/repositorio/tuxitron&lt;br /&gt;
&lt;br /&gt;
Al final debe quedar una cosa asÃÂ­:&lt;br /&gt;
&lt;br /&gt;
 service cvspserver&lt;br /&gt;
 {&lt;br /&gt;
         socket_type = stream&lt;br /&gt;
         protocol = tcp&lt;br /&gt;
         user = root&lt;br /&gt;
         group = cvs&lt;br /&gt;
         server = /usr/bin/cvs&lt;br /&gt;
         server_args = -f --allow-root=/var/lib/repositorio/perico --allow-root=/var/lib/repositorio/tuxitron pserver&lt;br /&gt;
         wait = no&lt;br /&gt;
         disable = no&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Y reiniciamos el superservidor para que los cambios surtan efecto:&lt;br /&gt;
 $ /etc/init.d/xinetd reload&lt;br /&gt;
&lt;br /&gt;
== PersonalizaciÃÂ³n del repositorio ==&lt;br /&gt;
&lt;br /&gt;
Antes de empezar a poner cÃÂ³digo en el repositorio hay algunas cosas por hacer que nos facilitarÃÂ¡n luego el proceso de desarrollo. En el repositorio que acabamos de crear existe un directorio '''CVSROOT''' que contiene ficheros de carÃÂ¡cter administrativo, esto es, que nos permiten personalizar el comportamiento del CVS. Veamos algunos de ellos para el caso de programar en [[Java]]:&lt;br /&gt;
&lt;br /&gt;
* '''cvsignore''': Indica patrones de ficheros a ignorar por el CVS. Estos ficheros no se podrÃÂ¡n aÃÂ±adir al repositorio. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 *.class&lt;br /&gt;
 *.war&lt;br /&gt;
 *.ear&lt;br /&gt;
&lt;br /&gt;
* '''cvswrappers''': Especifica cÃÂ³mo serÃÂ¡n gestionados determinados ficheros. Sirve para indicar quÃÂ© ficheros son binarios. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 *.gif -k 'b'&lt;br /&gt;
 *.jpg -k 'b'&lt;br /&gt;
 *.png -k 'b'&lt;br /&gt;
 *.jar -k 'b'&lt;br /&gt;
 *.swf -k 'b'&lt;br /&gt;
&lt;br /&gt;
* '''writers''': Listado de usuarios que tienen permisos de escritura en el repositorio. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 fulanito&lt;br /&gt;
 menganito&lt;br /&gt;
 zutanito&lt;br /&gt;
&lt;br /&gt;
* '''passwd''': Nombre de los usuarios junto con sus correspondientes passwords. Cada lÃÂ­nea estÃÂ¡ compuesta de nombre del usuario, password codificado y correspondencia con usuario local. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 fulanito:********:cvs&lt;br /&gt;
 menganito:*********:cvs&lt;br /&gt;
 zutanito:*********:cvs&lt;br /&gt;
&lt;br /&gt;
Para encriptar los passwords puedes usar este programa en Perl, al que le pasas el password en plano como parÃÂ¡metro y lo devuelve convenientemente codificado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;perl&amp;gt;&lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 &lt;br /&gt;
 srand (time());&lt;br /&gt;
 my $randletter = &amp;quot;(int (rand (26)) + (int (rand (1) + .5) % 2 ?  65 : 97))&amp;quot;;&lt;br /&gt;
 my $salt = sprintf (&amp;quot;%c%c&amp;quot;, eval $randletter, eval $randletter);&lt;br /&gt;
 my $plaintext = shift;&lt;br /&gt;
 my $crypttext = crypt ($plaintext, $salt);&lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;${crypttext}\n&amp;quot;;&lt;br /&gt;
&amp;lt;/perl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Estos ficheros no se editan directamente en el repositorio, a excepciÃÂ³n del ''passwd'' por motivos de seguridad, sino que deberemos hacer un ''checkout'' del directorio ''CVSROOT'' del repositorio para modificarlos y luego el ''commit'' correspondiente. Los ficheros ''cvsignore'' y ''writers'' tendrÃÂ¡s que crearlos y aÃÂ±adirlos al repositorio.&lt;br /&gt;
&lt;br /&gt;
== AÃÂ±adir un proyecto al repositorio ==&lt;br /&gt;
&lt;br /&gt;
Una vez tengamos creado el repositorio tenemos que crear un proyecto. En los proyectos simples habrÃÂ¡ un sÃÂ³lo proyecto por repositorio, pero en los mÃÂ¡s complejos puede haber varios proyectos relacionados en un mismo repositorio. En GNOME, por ejemplo, hay un repositorio y cada uno de los componentes de GNOME es un proyecto (Evolution, Nautilus, Evince, etc.). &lt;br /&gt;
&lt;br /&gt;
Lo que haremos en importar lo que tenemos creando un proyecto en el repositorio, de esta forma pondremos disponible el cÃÂ³digo para que otra gente se pueda incluir en el proceso de desarrollo. Se usa el comando '''import''' del CVS. Es importante ejecutar este comando desde el directorio donde tengamos las fuentes para importar. TambiÃÂ©n es fundamental establecer la variable de entorno '''CVSROOT''' que le indicarÃÂ¡ al cliente CVS donde estÃÂ¡ el repositorio.&lt;br /&gt;
&lt;br /&gt;
 $ export CVSROOT=/var/lib/repositorio/tuxitron&lt;br /&gt;
&lt;br /&gt;
La sintaxis del comando de importaciÃÂ³n es la siguiente:&lt;br /&gt;
&lt;br /&gt;
 $ cvs import -m &amp;quot;comentario&amp;quot; &amp;lt;proyecto&amp;gt; &amp;lt;etiqueta_vendedor&amp;gt; &amp;lt;etiqueta_version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Los dos ÃÂºltimos parÃÂ¡metros tienen poca importancia, de modo que puedes sustituirlos por tu usuario y la palabra &amp;quot;inicio&amp;quot; mismo. Por ejemplo, si eres el usuario ''monkiki'' y el proyecto a importar se llama ''tuxitron'' la lÃÂ­nea de comandos serÃÂ­a:&lt;br /&gt;
&lt;br /&gt;
 $ cvs import -m &amp;quot;ImportaciÃÂ³n inicial&amp;quot; tuxitron monkiki inicio&lt;br /&gt;
&lt;br /&gt;
{{Nota|Si vas a usar [[CVSTrac]] en lugar de importar todo el proyecto, importa un directorio vacÃÂ­o o uno que contenga un fichero de texto sin importancia (del estilo de leeme.txt) y haz un commit del resto de los ficheros. Los ficheros importados no aparecen en el navegador web de CVS.}}&lt;br /&gt;
&lt;br /&gt;
== Binarios importados sin '-kb' ==&lt;br /&gt;
&lt;br /&gt;
Si accidentalmente aÃÂ±ades un fichero binario sin la opciÃÂ³n '-kb', puedes usar el comando ''cvs admin'' para arreglarlo. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 $ cvs add -m &amp;quot;Imagen de prueba&amp;quot; imagen.gif&lt;br /&gt;
 $ cvs ci -m &amp;quot;Enviamos la imagen no marcada como binario&amp;quot; image.gif&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a decirle que es un fichero binario:&lt;br /&gt;
&lt;br /&gt;
 $ cvs admin -kb imagen.gif&lt;br /&gt;
 $ cvs update -A imagen.gif&lt;br /&gt;
&lt;br /&gt;
{{nota|Esto no pasarÃÂ­a si tuviÃÂ©ramos el fichero '''cvswrappers''' correctamente configurado}}&lt;br /&gt;
&lt;br /&gt;
== Trabajar con CVS ==&lt;br /&gt;
&lt;br /&gt;
[[Imagen:TkCVS.jpg|thumb|TkCVS es un magnÃÂ­fico cliente grÃÂ¡fico para CVS.]]&lt;br /&gt;
La lÃÂ­nea de comandos admite gran cantidad de comandos y opciones. En la nomenclatura de CVS, los comandos son parÃÂ¡metros funcionales de CVS. En lugar de tener varios ejecutables, uno para hacer ''checkout'', otro para ''checkin'', otro para ''status''... tiene uno sÃÂ³lo llamado '''cvs''' que admite todos estos modos de funcionamiento. Veamos los principales:&lt;br /&gt;
&lt;br /&gt;
* '''checkout:''' Saca el fichero del repositorio y lo almacena localmente para poder trabajar con ÃÂ©l.&lt;br /&gt;
* '''checkin:''' Una vez realizados los cambios, volcamos el fichero al repositorio donde estarÃÂ¡ disponible para el resto de desarrolladores.&lt;br /&gt;
* '''status:''' Indica el estado actual del fichero.&lt;br /&gt;
* '''log:''' Saca un listado con las revisiones del fichero.&lt;br /&gt;
&lt;br /&gt;
Pero lo mÃÂ¡s normal es que uses alguno de los clientes grÃÂ¡ficos que existen. Uno de los mejores, aunque no tenga buena apariencia, es '''TkCVS''', el cual podemos [[AÃÂ±adir aplicaciones|instalar]] con el paquete '''tkcvs''' de los repositorios oficiales de Ubuntu.&lt;br /&gt;
&lt;br /&gt;
== NotificaciÃÂ³n de los commits ==&lt;br /&gt;
&lt;br /&gt;
La configuraciÃÂ³n de un repositorio tambiÃÂ©n estÃÂ¡ sujeta al versionado. AsÃÂ­ que para aÃÂ±adir la opciÃÂ³n de notificaciÃÂ³n de correo de los ''commits'' tenemos que hacer un ''checkout'' del directorio especial '''CVSROOT'''.&lt;br /&gt;
&lt;br /&gt;
 $ cvs co CVSROOT&lt;br /&gt;
&lt;br /&gt;
Dentro de ese directorio hay unos cuantos ficheros. El que nos interesa ahora es '''loginfo''', al que tenemos que aÃÂ±adir la siguiente lÃÂ­nea:&lt;br /&gt;
&lt;br /&gt;
 DEFAULT /usr/bin/cvs-mailcommit --mailto direccion@correo.com --from direccion@correo.com --cvs %{sVv} --diff --full&lt;br /&gt;
&lt;br /&gt;
El programa que envÃÂ­a los correos lo podemos encontrar [http://www.infodrom.org/Infodrom/tools/cvs-mailcommit.html aquÃÂ­]. El parÃÂ¡metro ''mailto'' indica a quiÃÂ©n va destinado el correo. Podemos especificar varios ''mailto''. Lo que yo hago es crear un alias en el servidor de correo y enviar el correo a ese alias. AsÃÂ­ puedo poner o quitar los usuarios de destino sin tocar este fichero de configuraciÃÂ³n.&lt;br /&gt;
&lt;br /&gt;
== Hacer una copia de seguridad ==&lt;br /&gt;
&lt;br /&gt;
Veamos un ejemplo de cÃÂ³mo hacer una copia de seguridad de nuestro preciado repositorio de CVS. Simplemente lo que hace es:&lt;br /&gt;
&lt;br /&gt;
* Crea un archivo ''.tgz'' con el contenido del repositorio&lt;br /&gt;
* EnvÃÂ­a el archivo a un servidor de backup&lt;br /&gt;
* EnvÃÂ­a un correo al usuario ''root'' para avisarle del proceso&lt;br /&gt;
&lt;br /&gt;
El script es bastante simple y puedes adaptarlo a tus necesidades sin gran esfuerzo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 CVS_ROOT=&amp;quot;/var/lib/cvs&amp;quot;&lt;br /&gt;
 TMP_MSG=&amp;quot;/tmp/backup_cvs.tmp&amp;quot;&lt;br /&gt;
 TMP_DATA=&amp;quot;/root/Backup/CVS#$(date +%Y-%m-%d).tgz&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Make backup&lt;br /&gt;
 echo $TMP_DATA &amp;gt; $TMP_MSG&lt;br /&gt;
 echo &amp;quot;==================================&amp;quot; &amp;gt;&amp;gt; $TMP_MSG&lt;br /&gt;
 /bin/tar czf $TMP_DATA $CVS_ROOT 2&amp;gt;&amp;gt; $TMP_MSG&lt;br /&gt;
 &lt;br /&gt;
 # Subimos todo al FTP de GIT&lt;br /&gt;
 lftp -e &amp;quot;mput $TMP_DATA;quit&amp;quot; ftp://usuario:password@ftp.servidor.com/cvs&lt;br /&gt;
 &lt;br /&gt;
 # Send mail&lt;br /&gt;
 /bin/mail -s &amp;quot;CVS Backup&amp;quot; root &amp;lt; $TMP_MSG&lt;br /&gt;
 /bin/rm $TMP_MSG&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ver tambiÃÂ©n ==&lt;br /&gt;
&lt;br /&gt;
* [[CVSTrac]]&lt;br /&gt;
&lt;br /&gt;
=== Aplicaciones similares ===&lt;br /&gt;
&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[:CategorÃÂ­a:ProgramaciÃÂ³n|Ver mÃÂ¡s en la categorÃÂ­a ''ProgramaciÃÂ³n'']]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
{{Wikipedia}}&lt;br /&gt;
{{Wikilibros|Tutorial de uso de CVS}}&lt;br /&gt;
* [http://www.linux.ie/articles/tutorials/cvs.php linux.ie :: Getting Started with CVS] {{en}}&lt;br /&gt;
* [http://www.cvstrac.org/ Sitio web oficial de CVSTrac] {{en}}&lt;br /&gt;
* [http://www.sanchivi.com/cm/cvspermissions/ CVSPermissions] {{en}}&lt;br /&gt;
* [http://www.ossp.org/pkg/tool/shiela/ OSSP shiela: CVS Access Control and Logging] {{en}}&lt;br /&gt;
* [http://ali.as/devel/cvsmonitor/ Sitio web oficial de CVS Monitor] {{en}}&lt;br /&gt;
* [http://www.linux.ie/articles/tutorials/managingaccesswithcvs.php Managing Access with CVS] {{en}}&lt;br /&gt;
&lt;br /&gt;
[[CategorÃÂ­a:ProgramaciÃÂ³n]]&lt;/div&gt;</summary>
		<author><name>LirelTacos</name></author>	</entry>

	<entry>
		<id>https://www.guia-ubuntu.com/index.php/CVS</id>
		<title>CVS</title>
		<link rel="alternate" type="text/html" href="https://www.guia-ubuntu.com/index.php/CVS"/>
				<updated>2008-01-24T08:26:39Z</updated>
		
		<summary type="html">&lt;p&gt;LirelTacos: droncnaelt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://velvadehart.freekong.cn/view/band-good-charlotte.html band good charlotte] [http://lareequiroz.ifrance.com/styles/queen-of-sheba.html queen of sheba] [http://karolynodea.ifrance.com/the-leaky-cauldron.html the leaky cauldron] [http://murielmesta.ifrance.com/multnomah-county.html multnomah county library] [http://sheakenner.freekong.cn/male-erection.html male erection picture] [http://allegracobbins.infinites.net/lagu-artis-indonesia.html lagu artis indonesia] [http://karolynodea.ifrance.com/wicca.html history of wicca] [http://rosemariehauer.marte.ro/text/dyson-vacuum-cleaner.html dyson vacuum cleaner] [http://ashleepolito.ifrance.com/wiki/good-sams-club.html good sams club] [http://loretakan.ifrance.com/backwards.html 360 backwards box compatibility list x] [http://cythiacoldiron.ibelgique.com/fatal-frame.html fatal frame] [http://diedreprewitt.marte.ro/blog/park-city-hotels.html park city hotel] [http://lareequiroz.ifrance.com/styles/audio-files.html audio file] [http://rosemariehauer.marte.ro/text/shoking-photos.html shoking photos] [http://ellenarubio.ibelgique.com/pages/sundance-boats.html sundance boats] [http://brittenyengleha.infinites.net/styles/baltimore-zoo.html baltimore in maryland zoo] [http://jennahodge.infinites.net/styles/animae.html anime] [http://jerriechiu.ourprofile.net/new-order-waiting.html new order waiting for the sirens call tracklist] [http://ewagaudet.ifrance.com/bicycle-parts.html schwinn bicycle part] [http://tobylongwell.ibelgique.com/wiki/japanese-maple.html japanese maple trees] [http://lorrettakohl.freekong.cn/punx-unite-mp3.html punx unite mp3] [http://junkonelsen.ibelgique.com/topic/goodbye-quotes.html goodbye quotes] [http://lorrettakohl.freekong.cn/uss-missouri.html uss missouri replica] [http://diedreprewitt.marte.ro/blog/eheim-ecco-2231.html eheim ecco 2231] [http://lareequiroz.ifrance.com/styles/naughty-people.html naughty people] [http://emiliapearman.ifrance.com/web/eminem-without-me.html eminem without me lyric] [http://rosemariehauer.marte.ro/text/maryanne.html maryanne nubiles] [http://brittenyengleha.infinites.net/styles/juliet-lewis.html juliet lewis] [http://solaguerre.ifrance.com/q/refurbished.html refurbished ipods] [http://williameury.freekong.cn/wiki/tiny-titties-schoolgirl.html tiny titties schoolgirl thumbnail galleries] [http://juttahuntington.ifrance.com/resources/christian-singles.html portable dance floor] [http://loretakan.ifrance.com/perfume-oil.html aromatherapy oil perfume] [http://carlinemucci.ibelgique.com/articles/niji.html niji] [http://marklemasters.ifrance.com/picture-galleries.html yahoo picture gallery] [http://iraokeefe.ifrance.com/content/eps.html car eps graco seat snugride] [http://diedreprewitt.marte.ro/blog/corporate-social.html corporate social responsibility] [http://terinariver.go2net.ws/oconee-memorial.html oconee memorial park] [http://idaliabanner.ifrance.com/leg-lymphedema.html leg lymphedema] [http://jenaequirion.go2net.ws/content/top-ten-baby-names.html baby name ten top] [http://juttahuntington.ifrance.com/resources/tree-care.html money tree plant care] [http://loretakan.ifrance.com/nicole-richie-diet.html nicole richie diet] [http://ashleepolito.ifrance.com/wiki/we-fest.html we fest] [http://tennillelamothe.marte.ro/blog/unlock-motorola.html unlock motorola v3 for free] [http://verlineschwanke.ibelgique.com/sterling-silver.html sterling silver jewelry] [http://diedreprewitt.marte.ro/blog/mig.html 17 mig] [http://gitavandoren.infinites.net/outdoor-baby.html outdoor baby swing] [http://lorenzahaycraft.freekong.cn/blog/mobile-suit-gundam.html mobile suit gundam seed nintendo ds] [http://ewagaudet.ifrance.com/ncesccom.html ncesc.com] [http://arlethabrickey.ifrance.com/data/meningitis.html meningitis] [http://charisseratley.marte.ro/wiki/dennis-kucinich.html dennis kucinich] [http://emiliapearman.ifrance.com/web/psychology-jobs.html psychology jobs] [http://karolynodea.ifrance.com/electronic-health.html electronic health records software] [http://enidbarroso.marte.ro/web/most-expensive.html most expensive car in the world] [http://florencearneson.ifrance.com/help-with-reading.html help in reading] [http://harrietnoone.ifrance.com/pages/knock-knock.html knock on wood] [http://randaservice.marte.ro/data/extensis-photoframe.html extensis photoframe crack] [http://tanyaryans.ifrance.com/mineral-pre-mix.html mineral pre-mix] [http://allegracobbins.infinites.net/council.html council] [http://randaservice.marte.ro/data/apakah-itu-tsunami.html apakah itu tsunami] [http://yongbacker.ifrance.com/html/spread-cheeks.html cheek her spread] [http://karolynodea.ifrance.com/business-internet.html business home internet marketing opportunity] [http://verlineschwanke.ibelgique.com/dating-services.html dating services california] [http://jolynnepley.marte.ro/view/ramada-hotel.html ramada hotel pudong] [http://carlinemucci.ibelgique.com/articles/howard-stern-ex.html howard stern ex wife] [http://janeerentschler.ifrance.com/article/hp-57.html hp 57] [http://leshasartor.ibelgique.com/content/googlecom.html google.com] [http://loretakan.ifrance.com/women-wrestling.html free nude video woman wrestling] [http://arlethabrickey.ifrance.com/data/fire-fighting.html fighting fire] [http://goodbyetoday.ourprofile.net/styles/woodland-park-real.html woodland park real estate] [http://emiliapearman.ifrance.com/web/sand-dollar.html sand dollar marine] [http://harrietnoone.ifrance.com/pages/celtic-mythology.html celtic irish mythology] [http://lorenzahaycraft.freekong.cn/blog/volkswagen-parts.html volkswagen parts online] [http://loretakan.ifrance.com/gays-in-the-military.html gays in the military] [http://jennahodge.infinites.net/styles/frozen.html frozen] [http://tanyaryans.ifrance.com/christina-agulara.html aguilera christina hurt] [http://juttahuntington.ifrance.com/resources/respironics.html respironics] [http://arlethabrickey.ifrance.com/data/spot-welder.html spot welder] [http://jennahodge.infinites.net/styles/long-video-cables.html long video cables] [http://rosemariehauer.marte.ro/text/janet-jackson-weight.html janet jackson weight loss interview] [http://terinariver.go2net.ws/nastia-liukin.html nastia liukin picture] [http://karolynodea.ifrance.com/tape.html tape] [http://rosemariehauer.marte.ro/text/tanger-outlet.html tanger outlet] [http://lareequiroz.ifrance.com/styles/concrete-sealant.html concrete floor sealant] [http://arlethabrickey.ifrance.com/data/https.html https] [http://verlineschwanke.ibelgique.com/atlanta-georgia.html atlanta georgia] [http://janeerentschler.ifrance.com/article/cash-register.html cash register sales] [http://harrietnoone.ifrance.com/pages/director-chairs.html director chairs] [http://harrietnoone.ifrance.com/pages/seafood-cold.html seafood cold cases] [http://helencrose.marte.ro/italian-leather.html italian leather dining room chairs] [http://anyadingle.ifrance.com/view/symbolic-meaning.html symbolic meaning of flowers] [http://arlethabrickey.ifrance.com/data/sissy-bar.html honda sissy bar] [http://lareequiroz.ifrance.com/styles/microsoft-picture.html microsoft picture it] [http://emiliapearman.ifrance.com/web/pointed-toes.html boot pointed toe] [http://deloisenation.infinites.net/articles/tying-a-tie.html tying a tie] [http://enidbarroso.marte.ro/web/rog-reviews.html rog reviews] [http://juttahuntington.ifrance.com/resources/touch-screen.html touch screen] [http://harrietnoone.ifrance.com/pages/welcome-back.html welcome back kotter] [http://tennillelamothe.marte.ro/blog/luciana-paluzzi.html luciana paluzzi] [http://tanyaryans.ifrance.com/silver-springs.html silver springs florida] [http://janeerentschler.ifrance.com/article/twins-kissing.html twins kissing] [http://iraokeefe.ifrance.com/content/extreme-atv.html extreme atv video] [http://marklemasters.ifrance.com/j-crew.html j. crew] [http://emiliapearman.ifrance.com/web/copeland-sports.html copeland sports] [http://loretakan.ifrance.com/make-money-at.html make money online work at home opportunity] [http://carlinemucci.ibelgique.com/articles/midi-to-mp3.html midi to mp3] [http://sabragilyard.freekong.cn/beat-box.html beat box] [http://sonjaspeights.infinites.net/content/lightyear-alliance.html lightyear alliance] [http://charisseratley.marte.ro/wiki/coloradoavalanchecom.html coloradoavalanche.com] [http://iraokeefe.ifrance.com/content/dumpster.html dumpster slut] [http://tanyaryans.ifrance.com/how-to-make-bows.html how to make bows] [http://helencrose.marte.ro/silk-screening.html silk screening equipment] [http://nadiaprim.infinites.net/wisconsin-unemployment.html wisconsin unemployment] [http://janeerentschler.ifrance.com/article/ice-cream-carts.html cart cream ice vending] [http://helencrose.marte.ro/particle-count.html particle count] [http://karolynodea.ifrance.com/ethics-and-finance.html cd corporate est ethics finance finance finance hill in in insurance irwin mcgraw poors powerweb principle real series standard student] [http://solaguerre.ifrance.com/q/mencom.html nude men.com] [http://rosemariehauer.marte.ro/text/jkii-mods.html jkii mods] [http://helencrose.marte.ro/wyoming-incorporations.html wyoming incorporations] [http://ewagaudet.ifrance.com/king-cobras.html fact about king cobras] [http://allegracobbins.infinites.net/brook-hunter.html brook hunter] [http://florencearneson.ifrance.com/grammar.html kelsey grammar] [http://arlethabrickey.ifrance.com/data/free-online-casino.html free online casino game] [http://ewagaudet.ifrance.com/wheelcovers.html cover wheel] [http://tennillelamothe.marte.ro/blog/summer-poems.html poem summer time] [http://nadiaprim.infinites.net/astm-grease-working.html astm grease working machine] [http://enidbarroso.marte.ro/web/kenwood-programming.html kenwood radio programming software] [http://ewagaudet.ifrance.com/g-string-girls.html g string girls] [http://harrietnoone.ifrance.com/pages/city-of-evil.html city evil lyric] [http://ashleepolito.ifrance.com/wiki/helicopter-dust.html helicopter dust] [http://ashleepolito.ifrance.com/wiki/hair-inhibitor.html as hair inhibitor milk soy] [http://randaservice.marte.ro/data/string-theory-equations.html string theory equations] [http://harrietnoone.ifrance.com/pages/vera-drake.html vera drake movie] [http://arlethabrickey.ifrance.com/data/oakwood-hospital.html hospital michigan oakwood] [http://jerriechiu.ourprofile.net/american-girls.html american girls] [http://lareequiroz.ifrance.com/styles/hilton-chicago.html hilton chicago] [http://janeerentschler.ifrance.com/article/ocean-life.html ocean life] [http://marklemasters.ifrance.com/kitchen-planning.html kitchen planning] [http://tanyaryans.ifrance.com/baker-furniture.html baker furniture] [http://emiliapearman.ifrance.com/web/torrents.html gay torrent] [http://diedreprewitt.marte.ro/blog/nbc-las-vegas-tv.html nbc las vegas tv show] [http://idaliabanner.ifrance.com/mauritius-hotels.html grand bay hotel mauritius] [http://karolynodea.ifrance.com/discount-travel.html discount travel packages] [http://helencrose.marte.ro/moisture-chambers.html moisture chambers] [http://juttahuntington.ifrance.com/resources/takagism.html takagism history] [http://janeerentschler.ifrance.com/article/warehouse-storage.html warehouse storage] [http://murielmesta.ifrance.com/gential-herpes.html picture of gential herpes] [http://ellenarubio.ibelgique.com/pages/limos-arizona.html limos arizona] [http://harrietnoone.ifrance.com/pages/da-brat-oops.html da brat oops] [http://lareequiroz.ifrance.com/styles/bravo.html bravo] [http://ethelkuster.freekong.cn/content/george-washinton.html george washinton] [http://jennahodge.infinites.net/styles/humble.html humble] [http://janeerentschler.ifrance.com/article/anti-aging-natural.html anti aging natural supplement] [http://marklemasters.ifrance.com/online-reservation.html online reservation] [http://carlynbeyers.ourprofile.net/performance.html performance] [http://solaguerre.ifrance.com/q/reston-relocation.html reston relocation] [http://anyadingle.ifrance.com/view/pamela-anderson.html pamela anderson gallery] [http://cythiacoldiron.ibelgique.com/golf-swing.html 2nd swing golf store] [http://ashleepolito.ifrance.com/wiki/club-lighting.html night club lighting] [http://solaguerre.ifrance.com/q/story-brother-sister.html story brother sister bedroom] [http://enidbarroso.marte.ro/web/pirate-4x4-mercedes.html pirate 4x4 mercedes] [http://tommiepham.ourprofile.net/content/sonoma-county.html sonoma county realtors] [http://lorenzahaycraft.freekong.cn/blog/breeds-of-cats.html domestic cat breed] [http://lauriebolden.marte.ro/wiki/heavily-scented.html heavily scented candle] [http://juttahuntington.ifrance.com/resources/pocket-dragons.html pocket dragon figurine] [http://iraokeefe.ifrance.com/content/library-furniture.html school library furniture] [http://jenaequirion.go2net.ws/content/educational-toys.html educational toys and games] [http://arceliakimmons.ibelgique.com/blog/husqvarna-motorcycles.html husqvarna motorcycles] [http://idaliabanner.ifrance.com/buying-long-term.html buying long term care insurance] [http://carlinemucci.ibelgique.com/articles/odor-cleaner.html odor cleaner] [http://ashleepolito.ifrance.com/wiki/cell-one.html free cell one ringtone] [http://ewagaudet.ifrance.com/used-laptop-computers.html cheap computer laptop sale used] [http://tanyaryans.ifrance.com/2005-mustang-saleen.html 2005 mustang saleen] [http://helencrose.marte.ro/us-customs-regulations.html us customs regulations] [http://diedreprewitt.marte.ro/blog/773n.html 773n] [http://karolynodea.ifrance.com/free-long-distance.html call distance free long] [http://jenaequirion.go2net.ws/content/bariatric-surgery.html bariatric surgery support group] [http://karolynodea.ifrance.com/fireplace-mantel.html stone fireplace mantel] [http://anyadingle.ifrance.com/view/facade-tarot.html facade tarot reading] [http://rosemariehauer.marte.ro/text/texas-mustangs.html texas mustangs soccer club] [http://janeerentschler.ifrance.com/article/cedar-gazebo.html cedar gazebo] [http://tanyaryans.ifrance.com/free-get-well-cards.html free get well cards] [http://arceliakimmons.ibelgique.com/blog/humanoids-from-the.html humanoids deep] [http://karolynodea.ifrance.com/gorgeous-men.html black gorgeous man] [http://lareequiroz.ifrance.com/styles/warwick.html estate real ri warwick] [http://tennillelamothe.marte.ro/blog/pickin-wild-flowers.html pickin wild flowers] [http://nadiaprim.infinites.net/10-bo-derek.html 10 bo derek] [http://mikaricherson.infinites.net/dale-earnhardt.html dale earnhardt jr girlfriend] [http://solaguerre.ifrance.com/q/climbing-ratings.html climbing ratings] [http://ewagaudet.ifrance.com/gazelle.html gazelle] [http://mikaricherson.infinites.net/problem-boys.html boy problem teenage] [http://tanyaryans.ifrance.com/superman-mp3.html mp3 music superman theme] [http://lauriebolden.marte.ro/wiki/automotive-radiator.html automotive radiator] [http://ashleepolito.ifrance.com/wiki/feather-boas.html add boas feather link] [http://karolynodea.ifrance.com/alphabet-beads.html sterling alphabet bead] [http://mikaricherson.infinites.net/mc-sporting-goods.html mc sporting goods michigan] [http://emiliapearman.ifrance.com/web/wwwyellcom.html www.yell.com] [http://ewagaudet.ifrance.com/lawn-mower-blades.html lawn mower blades] [http://xsuddenlynowx.ourprofile.net/wiki/allmusiccom.html allmusic.com] [http://lareequiroz.ifrance.com/styles/in-vitro.html in vitro] [http://solaguerre.ifrance.com/q/wwwusajobsgov.html impact usajobs.gov] &lt;br /&gt;
{{INDdcha}}&lt;br /&gt;
El '''Sistema de Control de Versiones''' (''CVS'') permite que varios programadores trabajen de forma colaborativa en un mismo proyecto llevando un control de las versiones de los ficheros. De esta forma se permiten cambios concurrentes en un mismo fichero sin perder lo cambios realizados. Si usas o quieres usar esta herramienta se recomienda que pruebes [[CVSTrac]].&lt;br /&gt;
&lt;br /&gt;
== InstalaciÃ³n ==&lt;br /&gt;
&lt;br /&gt;
El programa viene en el paquete '''cvs''' que podemos [[aÃ±adir aplicaciones|instalar]] los repositorios oficiales de Ubuntu.&lt;br /&gt;
&lt;br /&gt;
== ConfiguraciÃ³n de un repositorio ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tener cada proyecto en un repositorio separado, que es lo suyo para tener un control mÃ¡s fino sobre cada uno de los distintos repositorios. Es mejor asÃ­ por el tema de usuarios, permisos y configuraciones varias. Todos estos repositorios los vamos a crear dentro del directorio '''/var/lib/repositorio/''', por ejemplo, para tenerlos juntos y facilitar el tema de la copia de seguridad. &lt;br /&gt;
&lt;br /&gt;
Como buena prÃ¡ctica es aconsejable tener un usuario ''cvs'' que serÃ¡ el propietario de los ficheros:&lt;br /&gt;
&lt;br /&gt;
 $ adduser cvs&lt;br /&gt;
 $ chown cvs:cvs -R /var/lib/repositorio&lt;br /&gt;
&lt;br /&gt;
Una vez declaradas estas premisas procedemos a la inicializaciÃ³n del repositorio que albergarÃ¡ un hipotÃ©tico llamado ''tuxitron''. Estas tareas de instalaciÃ³n las haremos como ''root'':&lt;br /&gt;
&lt;br /&gt;
 $ cvs -d /var/lib/repositorio/tuxitron init&lt;br /&gt;
&lt;br /&gt;
Para que todos los usuarios del grupo '''cvs''' tengan permisos para trabajar con el repositorio, hacemos que todos los ficheros del reciÃ©n creado repositorio pertenezcan a ese grupo:&lt;br /&gt;
&lt;br /&gt;
 $ chgrp cvs /var/lib/repositorio/tuxitron -R&lt;br /&gt;
&lt;br /&gt;
Ahora le tenemos que indicar al CVS que puede disponer del nuevo repositorio. Si usamos el superdemonio ''xinetd'' tendremos que crear el fichero:&lt;br /&gt;
&lt;br /&gt;
 $ gedit /etc/xinetd.d/cvs &lt;br /&gt;
&lt;br /&gt;
y aÃ±adir el nuevo repositorio:&lt;br /&gt;
&lt;br /&gt;
 --allow-root=/var/lib/repositorio/tuxitron&lt;br /&gt;
&lt;br /&gt;
Al final debe quedar una cosa asÃ­:&lt;br /&gt;
&lt;br /&gt;
 service cvspserver&lt;br /&gt;
 {&lt;br /&gt;
         socket_type = stream&lt;br /&gt;
         protocol = tcp&lt;br /&gt;
         user = root&lt;br /&gt;
         group = cvs&lt;br /&gt;
         server = /usr/bin/cvs&lt;br /&gt;
         server_args = -f --allow-root=/var/lib/repositorio/perico --allow-root=/var/lib/repositorio/tuxitron pserver&lt;br /&gt;
         wait = no&lt;br /&gt;
         disable = no&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Y reiniciamos el superservidor para que los cambios surtan efecto:&lt;br /&gt;
 $ /etc/init.d/xinetd reload&lt;br /&gt;
&lt;br /&gt;
== PersonalizaciÃ³n del repositorio ==&lt;br /&gt;
&lt;br /&gt;
Antes de empezar a poner cÃ³digo en el repositorio hay algunas cosas por hacer que nos facilitarÃ¡n luego el proceso de desarrollo. En el repositorio que acabamos de crear existe un directorio '''CVSROOT''' que contiene ficheros de carÃ¡cter administrativo, esto es, que nos permiten personalizar el comportamiento del CVS. Veamos algunos de ellos para el caso de programar en [[Java]]:&lt;br /&gt;
&lt;br /&gt;
* '''cvsignore''': Indica patrones de ficheros a ignorar por el CVS. Estos ficheros no se podrÃ¡n aÃ±adir al repositorio. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 *.class&lt;br /&gt;
 *.war&lt;br /&gt;
 *.ear&lt;br /&gt;
&lt;br /&gt;
* '''cvswrappers''': Especifica cÃ³mo serÃ¡n gestionados determinados ficheros. Sirve para indicar quÃ© ficheros son binarios. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 *.gif -k 'b'&lt;br /&gt;
 *.jpg -k 'b'&lt;br /&gt;
 *.png -k 'b'&lt;br /&gt;
 *.jar -k 'b'&lt;br /&gt;
 *.swf -k 'b'&lt;br /&gt;
&lt;br /&gt;
* '''writers''': Listado de usuarios que tienen permisos de escritura en el repositorio. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 fulanito&lt;br /&gt;
 menganito&lt;br /&gt;
 zutanito&lt;br /&gt;
&lt;br /&gt;
* '''passwd''': Nombre de los usuarios junto con sus correspondientes passwords. Cada lÃ­nea estÃ¡ compuesta de nombre del usuario, password codificado y correspondencia con usuario local. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 fulanito:********:cvs&lt;br /&gt;
 menganito:*********:cvs&lt;br /&gt;
 zutanito:*********:cvs&lt;br /&gt;
&lt;br /&gt;
Para encriptar los passwords puedes usar este programa en Perl, al que le pasas el password en plano como parÃ¡metro y lo devuelve convenientemente codificado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;perl&amp;gt;&lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 &lt;br /&gt;
 srand (time());&lt;br /&gt;
 my $randletter = &amp;quot;(int (rand (26)) + (int (rand (1) + .5) % 2 ?  65 : 97))&amp;quot;;&lt;br /&gt;
 my $salt = sprintf (&amp;quot;%c%c&amp;quot;, eval $randletter, eval $randletter);&lt;br /&gt;
 my $plaintext = shift;&lt;br /&gt;
 my $crypttext = crypt ($plaintext, $salt);&lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;${crypttext}\n&amp;quot;;&lt;br /&gt;
&amp;lt;/perl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Estos ficheros no se editan directamente en el repositorio, a excepciÃ³n del ''passwd'' por motivos de seguridad, sino que deberemos hacer un ''checkout'' del directorio ''CVSROOT'' del repositorio para modificarlos y luego el ''commit'' correspondiente. Los ficheros ''cvsignore'' y ''writers'' tendrÃ¡s que crearlos y aÃ±adirlos al repositorio.&lt;br /&gt;
&lt;br /&gt;
== AÃ±adir un proyecto al repositorio ==&lt;br /&gt;
&lt;br /&gt;
Una vez tengamos creado el repositorio tenemos que crear un proyecto. En los proyectos simples habrÃ¡ un sÃ³lo proyecto por repositorio, pero en los mÃ¡s complejos puede haber varios proyectos relacionados en un mismo repositorio. En GNOME, por ejemplo, hay un repositorio y cada uno de los componentes de GNOME es un proyecto (Evolution, Nautilus, Evince, etc.). &lt;br /&gt;
&lt;br /&gt;
Lo que haremos en importar lo que tenemos creando un proyecto en el repositorio, de esta forma pondremos disponible el cÃ³digo para que otra gente se pueda incluir en el proceso de desarrollo. Se usa el comando '''import''' del CVS. Es importante ejecutar este comando desde el directorio donde tengamos las fuentes para importar. TambiÃ©n es fundamental establecer la variable de entorno '''CVSROOT''' que le indicarÃ¡ al cliente CVS donde estÃ¡ el repositorio.&lt;br /&gt;
&lt;br /&gt;
 $ export CVSROOT=/var/lib/repositorio/tuxitron&lt;br /&gt;
&lt;br /&gt;
La sintaxis del comando de importaciÃ³n es la siguiente:&lt;br /&gt;
&lt;br /&gt;
 $ cvs import -m &amp;quot;comentario&amp;quot; &amp;lt;proyecto&amp;gt; &amp;lt;etiqueta_vendedor&amp;gt; &amp;lt;etiqueta_version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Los dos Ãºltimos parÃ¡metros tienen poca importancia, de modo que puedes sustituirlos por tu usuario y la palabra &amp;quot;inicio&amp;quot; mismo. Por ejemplo, si eres el usuario ''monkiki'' y el proyecto a importar se llama ''tuxitron'' la lÃ­nea de comandos serÃ­a:&lt;br /&gt;
&lt;br /&gt;
 $ cvs import -m &amp;quot;ImportaciÃ³n inicial&amp;quot; tuxitron monkiki inicio&lt;br /&gt;
&lt;br /&gt;
{{Nota|Si vas a usar [[CVSTrac]] en lugar de importar todo el proyecto, importa un directorio vacÃ­o o uno que contenga un fichero de texto sin importancia (del estilo de leeme.txt) y haz un commit del resto de los ficheros. Los ficheros importados no aparecen en el navegador web de CVS.}}&lt;br /&gt;
&lt;br /&gt;
== Binarios importados sin '-kb' ==&lt;br /&gt;
&lt;br /&gt;
Si accidentalmente aÃ±ades un fichero binario sin la opciÃ³n '-kb', puedes usar el comando ''cvs admin'' para arreglarlo. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 $ cvs add -m &amp;quot;Imagen de prueba&amp;quot; imagen.gif&lt;br /&gt;
 $ cvs ci -m &amp;quot;Enviamos la imagen no marcada como binario&amp;quot; image.gif&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a decirle que es un fichero binario:&lt;br /&gt;
&lt;br /&gt;
 $ cvs admin -kb imagen.gif&lt;br /&gt;
 $ cvs update -A imagen.gif&lt;br /&gt;
&lt;br /&gt;
{{nota|Esto no pasarÃ­a si tuviÃ©ramos el fichero '''cvswrappers''' correctamente configurado}}&lt;br /&gt;
&lt;br /&gt;
== Trabajar con CVS ==&lt;br /&gt;
&lt;br /&gt;
[[Imagen:TkCVS.jpg|thumb|TkCVS es un magnÃ­fico cliente grÃ¡fico para CVS.]]&lt;br /&gt;
La lÃ­nea de comandos admite gran cantidad de comandos y opciones. En la nomenclatura de CVS, los comandos son parÃ¡metros funcionales de CVS. En lugar de tener varios ejecutables, uno para hacer ''checkout'', otro para ''checkin'', otro para ''status''... tiene uno sÃ³lo llamado '''cvs''' que admite todos estos modos de funcionamiento. Veamos los principales:&lt;br /&gt;
&lt;br /&gt;
* '''checkout:''' Saca el fichero del repositorio y lo almacena localmente para poder trabajar con Ã©l.&lt;br /&gt;
* '''checkin:''' Una vez realizados los cambios, volcamos el fichero al repositorio donde estarÃ¡ disponible para el resto de desarrolladores.&lt;br /&gt;
* '''status:''' Indica el estado actual del fichero.&lt;br /&gt;
* '''log:''' Saca un listado con las revisiones del fichero.&lt;br /&gt;
&lt;br /&gt;
Pero lo mÃ¡s normal es que uses alguno de los clientes grÃ¡ficos que existen. Uno de los mejores, aunque no tenga buena apariencia, es '''TkCVS''', el cual podemos [[AÃ±adir aplicaciones|instalar]] con el paquete '''tkcvs''' de los repositorios oficiales de Ubuntu.&lt;br /&gt;
&lt;br /&gt;
== NotificaciÃ³n de los commits ==&lt;br /&gt;
&lt;br /&gt;
La configuraciÃ³n de un repositorio tambiÃ©n estÃ¡ sujeta al versionado. AsÃ­ que para aÃ±adir la opciÃ³n de notificaciÃ³n de correo de los ''commits'' tenemos que hacer un ''checkout'' del directorio especial '''CVSROOT'''.&lt;br /&gt;
&lt;br /&gt;
 $ cvs co CVSROOT&lt;br /&gt;
&lt;br /&gt;
Dentro de ese directorio hay unos cuantos ficheros. El que nos interesa ahora es '''loginfo''', al que tenemos que aÃ±adir la siguiente lÃ­nea:&lt;br /&gt;
&lt;br /&gt;
 DEFAULT /usr/bin/cvs-mailcommit --mailto direccion@correo.com --from direccion@correo.com --cvs %{sVv} --diff --full&lt;br /&gt;
&lt;br /&gt;
El programa que envÃ­a los correos lo podemos encontrar [http://www.infodrom.org/Infodrom/tools/cvs-mailcommit.html aquÃ­]. El parÃ¡metro ''mailto'' indica a quiÃ©n va destinado el correo. Podemos especificar varios ''mailto''. Lo que yo hago es crear un alias en el servidor de correo y enviar el correo a ese alias. AsÃ­ puedo poner o quitar los usuarios de destino sin tocar este fichero de configuraciÃ³n.&lt;br /&gt;
&lt;br /&gt;
== Hacer una copia de seguridad ==&lt;br /&gt;
&lt;br /&gt;
Veamos un ejemplo de cÃ³mo hacer una copia de seguridad de nuestro preciado repositorio de CVS. Simplemente lo que hace es:&lt;br /&gt;
&lt;br /&gt;
* Crea un archivo ''.tgz'' con el contenido del repositorio&lt;br /&gt;
* EnvÃ­a el archivo a un servidor de backup&lt;br /&gt;
* EnvÃ­a un correo al usuario ''root'' para avisarle del proceso&lt;br /&gt;
&lt;br /&gt;
El script es bastante simple y puedes adaptarlo a tus necesidades sin gran esfuerzo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 CVS_ROOT=&amp;quot;/var/lib/cvs&amp;quot;&lt;br /&gt;
 TMP_MSG=&amp;quot;/tmp/backup_cvs.tmp&amp;quot;&lt;br /&gt;
 TMP_DATA=&amp;quot;/root/Backup/CVS#$(date +%Y-%m-%d).tgz&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Make backup&lt;br /&gt;
 echo $TMP_DATA &amp;gt; $TMP_MSG&lt;br /&gt;
 echo &amp;quot;==================================&amp;quot; &amp;gt;&amp;gt; $TMP_MSG&lt;br /&gt;
 /bin/tar czf $TMP_DATA $CVS_ROOT 2&amp;gt;&amp;gt; $TMP_MSG&lt;br /&gt;
 &lt;br /&gt;
 # Subimos todo al FTP de GIT&lt;br /&gt;
 lftp -e &amp;quot;mput $TMP_DATA;quit&amp;quot; ftp://usuario:password@ftp.servidor.com/cvs&lt;br /&gt;
 &lt;br /&gt;
 # Send mail&lt;br /&gt;
 /bin/mail -s &amp;quot;CVS Backup&amp;quot; root &amp;lt; $TMP_MSG&lt;br /&gt;
 /bin/rm $TMP_MSG&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ver tambiÃ©n ==&lt;br /&gt;
&lt;br /&gt;
* [[CVSTrac]]&lt;br /&gt;
&lt;br /&gt;
=== Aplicaciones similares ===&lt;br /&gt;
&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[:CategorÃ­a:ProgramaciÃ³n|Ver mÃ¡s en la categorÃ­a ''ProgramaciÃ³n'']]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
{{Wikipedia}}&lt;br /&gt;
{{Wikilibros|Tutorial de uso de CVS}}&lt;br /&gt;
* [http://www.linux.ie/articles/tutorials/cvs.php linux.ie :: Getting Started with CVS] {{en}}&lt;br /&gt;
* [http://www.cvstrac.org/ Sitio web oficial de CVSTrac] {{en}}&lt;br /&gt;
* [http://www.sanchivi.com/cm/cvspermissions/ CVSPermissions] {{en}}&lt;br /&gt;
* [http://www.ossp.org/pkg/tool/shiela/ OSSP shiela: CVS Access Control and Logging] {{en}}&lt;br /&gt;
* [http://ali.as/devel/cvsmonitor/ Sitio web oficial de CVS Monitor] {{en}}&lt;br /&gt;
* [http://www.linux.ie/articles/tutorials/managingaccesswithcvs.php Managing Access with CVS] {{en}}&lt;br /&gt;
&lt;br /&gt;
[[CategorÃ­a:ProgramaciÃ³n]]&lt;/div&gt;</summary>
		<author><name>LirelTacos</name></author>	</entry>

	<entry>
		<id>https://www.guia-ubuntu.com/index.php/CVS</id>
		<title>CVS</title>
		<link rel="alternate" type="text/html" href="https://www.guia-ubuntu.com/index.php/CVS"/>
				<updated>2008-01-08T18:04:25Z</updated>
		
		<summary type="html">&lt;p&gt;LirelTacos: litadel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;cbascodron&lt;br /&gt;
{{INDdcha}}&lt;br /&gt;
El '''Sistema de Control de Versiones''' (''CVS'') permite que varios programadores trabajen de forma colaborativa en un mismo proyecto llevando un control de las versiones de los ficheros. De esta forma se permiten cambios concurrentes en un mismo fichero sin perder lo cambios realizados. Si usas o quieres usar esta herramienta se recomienda que pruebes [[CVSTrac]].&lt;br /&gt;
&lt;br /&gt;
== InstalaciÃ³n ==&lt;br /&gt;
&lt;br /&gt;
El programa viene en el paquete '''cvs''' que podemos [[aÃ±adir aplicaciones|instalar]] los repositorios oficiales de Ubuntu.&lt;br /&gt;
&lt;br /&gt;
== ConfiguraciÃ³n de un repositorio ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tener cada proyecto en un repositorio separado, que es lo suyo para tener un control mÃ¡s fino sobre cada uno de los distintos repositorios. Es mejor asÃ­ por el tema de usuarios, permisos y configuraciones varias. Todos estos repositorios los vamos a crear dentro del directorio '''/var/lib/repositorio/''', por ejemplo, para tenerlos juntos y facilitar el tema de la copia de seguridad. &lt;br /&gt;
&lt;br /&gt;
Como buena prÃ¡ctica es aconsejable tener un usuario ''cvs'' que serÃ¡ el propietario de los ficheros:&lt;br /&gt;
&lt;br /&gt;
 $ adduser cvs&lt;br /&gt;
 $ chown cvs:cvs -R /var/lib/repositorio&lt;br /&gt;
&lt;br /&gt;
Una vez declaradas estas premisas procedemos a la inicializaciÃ³n del repositorio que albergarÃ¡ un hipotÃ©tico llamado ''tuxitron''. Estas tareas de instalaciÃ³n las haremos como ''root'':&lt;br /&gt;
&lt;br /&gt;
 $ cvs -d /var/lib/repositorio/tuxitron init&lt;br /&gt;
&lt;br /&gt;
Para que todos los usuarios del grupo '''cvs''' tengan permisos para trabajar con el repositorio, hacemos que todos los ficheros del reciÃ©n creado repositorio pertenezcan a ese grupo:&lt;br /&gt;
&lt;br /&gt;
 $ chgrp cvs /var/lib/repositorio/tuxitron -R&lt;br /&gt;
&lt;br /&gt;
Ahora le tenemos que indicar al CVS que puede disponer del nuevo repositorio. Si usamos el superdemonio ''xinetd'' tendremos que crear el fichero:&lt;br /&gt;
&lt;br /&gt;
 $ gedit /etc/xinetd.d/cvs &lt;br /&gt;
&lt;br /&gt;
y aÃ±adir el nuevo repositorio:&lt;br /&gt;
&lt;br /&gt;
 --allow-root=/var/lib/repositorio/tuxitron&lt;br /&gt;
&lt;br /&gt;
Al final debe quedar una cosa asÃ­:&lt;br /&gt;
&lt;br /&gt;
 service cvspserver&lt;br /&gt;
 {&lt;br /&gt;
         socket_type = stream&lt;br /&gt;
         protocol = tcp&lt;br /&gt;
         user = root&lt;br /&gt;
         group = cvs&lt;br /&gt;
         server = /usr/bin/cvs&lt;br /&gt;
         server_args = -f --allow-root=/var/lib/repositorio/perico --allow-root=/var/lib/repositorio/tuxitron pserver&lt;br /&gt;
         wait = no&lt;br /&gt;
         disable = no&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Y reiniciamos el superservidor para que los cambios surtan efecto:&lt;br /&gt;
 $ /etc/init.d/xinetd reload&lt;br /&gt;
&lt;br /&gt;
== PersonalizaciÃ³n del repositorio ==&lt;br /&gt;
&lt;br /&gt;
Antes de empezar a poner cÃ³digo en el repositorio hay algunas cosas por hacer que nos facilitarÃ¡n luego el proceso de desarrollo. En el repositorio que acabamos de crear existe un directorio '''CVSROOT''' que contiene ficheros de carÃ¡cter administrativo, esto es, que nos permiten personalizar el comportamiento del CVS. Veamos algunos de ellos para el caso de programar en [[Java]]:&lt;br /&gt;
&lt;br /&gt;
* '''cvsignore''': Indica patrones de ficheros a ignorar por el CVS. Estos ficheros no se podrÃ¡n aÃ±adir al repositorio. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 *.class&lt;br /&gt;
 *.war&lt;br /&gt;
 *.ear&lt;br /&gt;
&lt;br /&gt;
* '''cvswrappers''': Especifica cÃ³mo serÃ¡n gestionados determinados ficheros. Sirve para indicar quÃ© ficheros son binarios. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 *.gif -k 'b'&lt;br /&gt;
 *.jpg -k 'b'&lt;br /&gt;
 *.png -k 'b'&lt;br /&gt;
 *.jar -k 'b'&lt;br /&gt;
 *.swf -k 'b'&lt;br /&gt;
&lt;br /&gt;
* '''writers''': Listado de usuarios que tienen permisos de escritura en el repositorio. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 fulanito&lt;br /&gt;
 menganito&lt;br /&gt;
 zutanito&lt;br /&gt;
&lt;br /&gt;
* '''passwd''': Nombre de los usuarios junto con sus correspondientes passwords. Cada lÃ­nea estÃ¡ compuesta de nombre del usuario, password codificado y correspondencia con usuario local. Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 fulanito:********:cvs&lt;br /&gt;
 menganito:*********:cvs&lt;br /&gt;
 zutanito:*********:cvs&lt;br /&gt;
&lt;br /&gt;
Para encriptar los passwords puedes usar este programa en Perl, al que le pasas el password en plano como parÃ¡metro y lo devuelve convenientemente codificado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;perl&amp;gt;&lt;br /&gt;
 #!/usr/bin/perl&lt;br /&gt;
 &lt;br /&gt;
 srand (time());&lt;br /&gt;
 my $randletter = &amp;quot;(int (rand (26)) + (int (rand (1) + .5) % 2 ?  65 : 97))&amp;quot;;&lt;br /&gt;
 my $salt = sprintf (&amp;quot;%c%c&amp;quot;, eval $randletter, eval $randletter);&lt;br /&gt;
 my $plaintext = shift;&lt;br /&gt;
 my $crypttext = crypt ($plaintext, $salt);&lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;${crypttext}\n&amp;quot;;&lt;br /&gt;
&amp;lt;/perl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Estos ficheros no se editan directamente en el repositorio, a excepciÃ³n del ''passwd'' por motivos de seguridad, sino que deberemos hacer un ''checkout'' del directorio ''CVSROOT'' del repositorio para modificarlos y luego el ''commit'' correspondiente. Los ficheros ''cvsignore'' y ''writers'' tendrÃ¡s que crearlos y aÃ±adirlos al repositorio.&lt;br /&gt;
&lt;br /&gt;
== AÃ±adir un proyecto al repositorio ==&lt;br /&gt;
&lt;br /&gt;
Una vez tengamos creado el repositorio tenemos que crear un proyecto. En los proyectos simples habrÃ¡ un sÃ³lo proyecto por repositorio, pero en los mÃ¡s complejos puede haber varios proyectos relacionados en un mismo repositorio. En GNOME, por ejemplo, hay un repositorio y cada uno de los componentes de GNOME es un proyecto (Evolution, Nautilus, Evince, etc.). &lt;br /&gt;
&lt;br /&gt;
Lo que haremos en importar lo que tenemos creando un proyecto en el repositorio, de esta forma pondremos disponible el cÃ³digo para que otra gente se pueda incluir en el proceso de desarrollo. Se usa el comando '''import''' del CVS. Es importante ejecutar este comando desde el directorio donde tengamos las fuentes para importar. TambiÃ©n es fundamental establecer la variable de entorno '''CVSROOT''' que le indicarÃ¡ al cliente CVS donde estÃ¡ el repositorio.&lt;br /&gt;
&lt;br /&gt;
 $ export CVSROOT=/var/lib/repositorio/tuxitron&lt;br /&gt;
&lt;br /&gt;
La sintaxis del comando de importaciÃ³n es la siguiente:&lt;br /&gt;
&lt;br /&gt;
 $ cvs import -m &amp;quot;comentario&amp;quot; &amp;lt;proyecto&amp;gt; &amp;lt;etiqueta_vendedor&amp;gt; &amp;lt;etiqueta_version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Los dos Ãºltimos parÃ¡metros tienen poca importancia, de modo que puedes sustituirlos por tu usuario y la palabra &amp;quot;inicio&amp;quot; mismo. Por ejemplo, si eres el usuario ''monkiki'' y el proyecto a importar se llama ''tuxitron'' la lÃ­nea de comandos serÃ­a:&lt;br /&gt;
&lt;br /&gt;
 $ cvs import -m &amp;quot;ImportaciÃ³n inicial&amp;quot; tuxitron monkiki inicio&lt;br /&gt;
&lt;br /&gt;
{{Nota|Si vas a usar [[CVSTrac]] en lugar de importar todo el proyecto, importa un directorio vacÃ­o o uno que contenga un fichero de texto sin importancia (del estilo de leeme.txt) y haz un commit del resto de los ficheros. Los ficheros importados no aparecen en el navegador web de CVS.}}&lt;br /&gt;
&lt;br /&gt;
== Binarios importados sin '-kb' ==&lt;br /&gt;
&lt;br /&gt;
Si accidentalmente aÃ±ades un fichero binario sin la opciÃ³n '-kb', puedes usar el comando ''cvs admin'' para arreglarlo. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 $ cvs add -m &amp;quot;Imagen de prueba&amp;quot; imagen.gif&lt;br /&gt;
 $ cvs ci -m &amp;quot;Enviamos la imagen no marcada como binario&amp;quot; image.gif&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a decirle que es un fichero binario:&lt;br /&gt;
&lt;br /&gt;
 $ cvs admin -kb imagen.gif&lt;br /&gt;
 $ cvs update -A imagen.gif&lt;br /&gt;
&lt;br /&gt;
{{nota|Esto no pasarÃ­a si tuviÃ©ramos el fichero '''cvswrappers''' correctamente configurado}}&lt;br /&gt;
&lt;br /&gt;
== Trabajar con CVS ==&lt;br /&gt;
&lt;br /&gt;
[[Imagen:TkCVS.jpg|thumb|TkCVS es un magnÃ­fico cliente grÃ¡fico para CVS.]]&lt;br /&gt;
La lÃ­nea de comandos admite gran cantidad de comandos y opciones. En la nomenclatura de CVS, los comandos son parÃ¡metros funcionales de CVS. En lugar de tener varios ejecutables, uno para hacer ''checkout'', otro para ''checkin'', otro para ''status''... tiene uno sÃ³lo llamado '''cvs''' que admite todos estos modos de funcionamiento. Veamos los principales:&lt;br /&gt;
&lt;br /&gt;
* '''checkout:''' Saca el fichero del repositorio y lo almacena localmente para poder trabajar con Ã©l.&lt;br /&gt;
* '''checkin:''' Una vez realizados los cambios, volcamos el fichero al repositorio donde estarÃ¡ disponible para el resto de desarrolladores.&lt;br /&gt;
* '''status:''' Indica el estado actual del fichero.&lt;br /&gt;
* '''log:''' Saca un listado con las revisiones del fichero.&lt;br /&gt;
&lt;br /&gt;
Pero lo mÃ¡s normal es que uses alguno de los clientes grÃ¡ficos que existen. Uno de los mejores, aunque no tenga buena apariencia, es '''TkCVS''', el cual podemos [[AÃ±adir aplicaciones|instalar]] con el paquete '''tkcvs''' de los repositorios oficiales de Ubuntu.&lt;br /&gt;
&lt;br /&gt;
== NotificaciÃ³n de los commits ==&lt;br /&gt;
&lt;br /&gt;
La configuraciÃ³n de un repositorio tambiÃ©n estÃ¡ sujeta al versionado. AsÃ­ que para aÃ±adir la opciÃ³n de notificaciÃ³n de correo de los ''commits'' tenemos que hacer un ''checkout'' del directorio especial '''CVSROOT'''.&lt;br /&gt;
&lt;br /&gt;
 $ cvs co CVSROOT&lt;br /&gt;
&lt;br /&gt;
Dentro de ese directorio hay unos cuantos ficheros. El que nos interesa ahora es '''loginfo''', al que tenemos que aÃ±adir la siguiente lÃ­nea:&lt;br /&gt;
&lt;br /&gt;
 DEFAULT /usr/bin/cvs-mailcommit --mailto direccion@correo.com --from direccion@correo.com --cvs %{sVv} --diff --full&lt;br /&gt;
&lt;br /&gt;
El programa que envÃ­a los correos lo podemos encontrar [http://www.infodrom.org/Infodrom/tools/cvs-mailcommit.html aquÃ­]. El parÃ¡metro ''mailto'' indica a quiÃ©n va destinado el correo. Podemos especificar varios ''mailto''. Lo que yo hago es crear un alias en el servidor de correo y enviar el correo a ese alias. AsÃ­ puedo poner o quitar los usuarios de destino sin tocar este fichero de configuraciÃ³n.&lt;br /&gt;
&lt;br /&gt;
== Hacer una copia de seguridad ==&lt;br /&gt;
&lt;br /&gt;
Veamos un ejemplo de cÃ³mo hacer una copia de seguridad de nuestro preciado repositorio de CVS. Simplemente lo que hace es:&lt;br /&gt;
&lt;br /&gt;
* Crea un archivo ''.tgz'' con el contenido del repositorio&lt;br /&gt;
* EnvÃ­a el archivo a un servidor de backup&lt;br /&gt;
* EnvÃ­a un correo al usuario ''root'' para avisarle del proceso&lt;br /&gt;
&lt;br /&gt;
El script es bastante simple y puedes adaptarlo a tus necesidades sin gran esfuerzo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bash&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 CVS_ROOT=&amp;quot;/var/lib/cvs&amp;quot;&lt;br /&gt;
 TMP_MSG=&amp;quot;/tmp/backup_cvs.tmp&amp;quot;&lt;br /&gt;
 TMP_DATA=&amp;quot;/root/Backup/CVS#$(date +%Y-%m-%d).tgz&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Make backup&lt;br /&gt;
 echo $TMP_DATA &amp;gt; $TMP_MSG&lt;br /&gt;
 echo &amp;quot;==================================&amp;quot; &amp;gt;&amp;gt; $TMP_MSG&lt;br /&gt;
 /bin/tar czf $TMP_DATA $CVS_ROOT 2&amp;gt;&amp;gt; $TMP_MSG&lt;br /&gt;
 &lt;br /&gt;
 # Subimos todo al FTP de GIT&lt;br /&gt;
 lftp -e &amp;quot;mput $TMP_DATA;quit&amp;quot; ftp://usuario:password@ftp.servidor.com/cvs&lt;br /&gt;
 &lt;br /&gt;
 # Send mail&lt;br /&gt;
 /bin/mail -s &amp;quot;CVS Backup&amp;quot; root &amp;lt; $TMP_MSG&lt;br /&gt;
 /bin/rm $TMP_MSG&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ver tambiÃ©n ==&lt;br /&gt;
&lt;br /&gt;
* [[CVSTrac]]&lt;br /&gt;
&lt;br /&gt;
=== Aplicaciones similares ===&lt;br /&gt;
&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[:CategorÃ­a:ProgramaciÃ³n|Ver mÃ¡s en la categorÃ­a ''ProgramaciÃ³n'']]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
{{Wikipedia}}&lt;br /&gt;
{{Wikilibros|Tutorial de uso de CVS}}&lt;br /&gt;
* [http://www.linux.ie/articles/tutorials/cvs.php linux.ie :: Getting Started with CVS] {{en}}&lt;br /&gt;
* [http://www.cvstrac.org/ Sitio web oficial de CVSTrac] {{en}}&lt;br /&gt;
* [http://www.sanchivi.com/cm/cvspermissions/ CVSPermissions] {{en}}&lt;br /&gt;
* [http://www.ossp.org/pkg/tool/shiela/ OSSP shiela: CVS Access Control and Logging] {{en}}&lt;br /&gt;
* [http://ali.as/devel/cvsmonitor/ Sitio web oficial de CVS Monitor] {{en}}&lt;br /&gt;
* [http://www.linux.ie/articles/tutorials/managingaccesswithcvs.php Managing Access with CVS] {{en}}&lt;br /&gt;
&lt;br /&gt;
[[CategorÃ­a:ProgramaciÃ³n]]&lt;/div&gt;</summary>
		<author><name>LirelTacos</name></author>	</entry>

	</feed>