Documentos de Académico
Documentos de Profesional
Documentos de Cultura
zarate.tvdandolachapa.comloqueyosede.com TraduccinporCayGarridoventdaval.com
JuanDelgadoZrate
LoqueyosdeSVN1/33
ndice
Introduccin Aviso Agradecimientos Licencia IntroduccinaSVN Definicin CmofuncionaSVN Glosario TrabajandoconSVN InstalandoSubversion Creandoturepositorio RutinadiariaconSVN Checkout Addycommit Update(actualizar) Revert(deshacercambios) Tag(etiquetar) Conflictos CosasmolonasquehacerconSubversionundomingoporlamaana ActualizarWordPressdeformasencilla TweeteatuscommitsusandoSVNhooks AadirinformacindeSVNatusarchivos IntegrarSVNconsistemasdegestindebugs Enlaces ClientesSVN Documentacin Tutorialesyotrosartculos Miscelnea
Aviso
Estedocumentonoestterminadoanestendesarrollo,meencantararecibirsugerencias, mejorasocorrecciones. Tenedencuentaquenosoyningnexpertoencontroldeversionesypuedoestarequivocado. Recomiendoveresteartculomscomolasexplicacionesdeuncompaerodetrabajoquelleva unosaosusandocontroldeversiones,nimsnimenos.Sivesalgnerror,porfavorponteen contactoconmigoencuentamearrobazarate.tv. LoqueyosdeSVNestconcebidocomopuntodeentradaparausuariosnovelesaunquepuede tambinayudarausuariosintermedios.Dudomuchoqueleenseealgoausuariosavanzados.
LoqueyosdeSVN2/33
Agradecimientos
Graciasatodaslaspersonasquecompartenconocimientodeformagratuita.Internetsesale.
Licencia EstaobraestbajounalicenciaReconocimientoCompartirbajolamisma licencia2.5EspaadeCreativeCommons.Paraverunacopiadeestalicencia, visite http://creativecommons.org/licenses/bysa/2.5/es/ o envie una carta a CreativeCommons,171SecondStreet,Suite300,SanFrancisco,California 94105,USA.
OenlawebdeCreativeCommons: http://creativecommons.org/licenses/bysa/2.5/es/ NOTA:EstelibroesunatraduccindeloriginalWhatIknowaboutSVNquesepuedeencontraren: http://zarate.tv/articles/whatiknowaboutsvn/ Esoimplicaquealgunosprrafosopalabraspuedensonarextraosyaquefueronescritos originalmenteeningls.Esosincontarconelabundantenmerodeextranjerismosquepueden convertirlalecturaencastellanoenmenos...natural. Traduciressiempreunatareacomplicada,citandoamrAlbertoRomero: Traduceinterfaces,noprrafos.Sialguienenmisituacin(hola,nosoytraductornibilinge nitengoexperienciaadaptandounprogramaaotroidiomay,bueno,enrealidadloqueme apeteceesirmealaplaya)mepidieraunconsejo,serase:cuidadoconponerseatraducir palabraporpalabraoprrafoporprrafo.Siteatascasconuntexto,pruebaacogeruntrozoms grandedetexto,omejor,pregntatealgocomosiestapantallahablaraingls,cmopediraa lapersonaqueestenfrentequehicieraaquelloparaloquelapantallaestdiseada? Hemosintentadoaplicaresto,peronosiempreesfcil.Aceptamosconhumildadcualquierconsejo uobservacinsobreeltema.Gracias!
LoqueyosdeSVN3/33
Introduccin
DelaWikipedia: VersionControlSystems(VCS)orSourceCodeManagement(SCM)isthemanagementof multiplerevisionsofthesameunitofinformation. Traduccin: SistemasdeControldeVersiones(VCS)oGestindeCdigoFuente(SCM)eslagestinde multiplesrevisionesdeunamismaunidaddeinformacin. Yporunidaddeinformacinentendemosficheros.as,.fla,imgenes,sonidos,etc...Cualquier tipodeficheropuedesersometidoacontroldeversiones. Utilizarcontroldeversionessuenabien,peroenrealidadsereduceaBUSCARCULPABLES:
LoqueyosdeSVN4/33
Elcontroldeversionestedejavolveraversionesanterioresdetusarchivos.Nosloaversiones dondeesemalditobugnoestabapresente,sinotambinporejemploalconjuntodeficherosexactos queenviasteauncliente(silosetiquetasteensumomento,porsupuesto,loveremosmsadelante). Haymuchossistemassistemasdecontroldeversionesdisponiblesperosobrepasaelambitodeeste documentorevisarlostodos.NoscentraremosenSubversionoSVNporqueesunodelosVCSms simplesyconocidos.Siquieresmsinformacinsobreotrossistemasylasdiferenciasentreellos chaleunojoalaseccindeEnlaces. Aunqueelcontroldeversionesdemuestratodosupodercuandosetrabajaenequiposestambien muytilsitrabajassolo.Yaseacomodesarrollador,diseador,ejecutivodecuentas,etc...Sialguna vezhasvistoentuscarpetasalgocomo:
CmofuncionaSVN
SVNesunVCScentralizado(enlugardedistribuido)loquesignificaquehayunsitiocentral (llamadorepositorioorepo)quehacedecopiamaestra.Lagenteaccedealrepositoriocentraly obtieneunacopialimpiadeloquehayaenl.Unavezhechaslasmodificacionessesuben
LoqueyosdeSVN5/33
Glosario
Aprenderausarunodelosclientesestbien,peroesmuchomsimportanteaprendercmo funcionarealmenteSVN.Cadaclientetienesusprosycontrasyalgunossonmejoresqueotros.Los puedesvercomonavegadores,loquerealmenteimportaesaprenderHTMLnoIE(bueno, especialmentenoIE). AsquelomejoresquetetomesunmomentoparaaprenderlaterminologabsicadeSVN,lacual, porcierto,tienemuchoencomnconotrossistemasdecontroldeversiones:
Checkout:Obtienerunacopialimpiadelrepo.Normalmentesehaceunavezporproyecto. Commit:Subetuscambiosalrepositiorio.Yporcambiosnosreferimosacualquierdiferencia entretucopialocalyelrepositorio:agregar/borrar/renombrararchivosocarpetas,modificar ficheros,etc...CualquiercambioquehagasatucopialocalNOllegaralrepositoriohasta quehagasuncommit. Add(agregar):Siquieresagregarnuevosficherosalrepoprimerohayquehacerunadda travesdeSVN.Despuscommit. Update(actualizar):Updateactualizatucopialocalconlosultimoscambiosdelrepo.SVN intentarcombinarofusionarficheroscuandoseaposibleperopuedehaberconflictos(ms informacinenlaseccinConflictos). Revert(deshacercambios):Cuandoquieresdeshacertedeloscambioslocalesyobteneruna copialimpiadelrepo. trunk(tronco),tags(etiquetas)ybranches(ramas).UnrepositoriodeSVNtienenormalmente3 carpetas/seccionesdiferentes: Eltrunk(tronco)esdondesehacenlamayoradeloscambios,dondesehaceeltrabajo diario.Normalmenteseleconsiderainestableenelsentidodequeelcdigonoseha probadoonotodaslascaractersticasestanimplementadas. tags(etiquetas).Cuandoeltrunkesestableosehallegadoaunhitoimportantesesuele crearunaetiqueta.Puedesverlasetiquetascomofotosdeunproyecto.Unaveztomadaes fija,nosedeberanhacercambios.Tagstpicosson0.3,RC1,etc.,perosiests inspiradopuedesusartagscomoGreatWhite,CortoCircuito,etc. branches(ramas).Cuandoundesarrolladornecesitaimplementarunacaractersticade ciertamagnitudquepuedeinterferirdemasiadoconeltrunkperonoquierehacerloenlocal (porejemploporquelacaracteristicaseaimplementadaenequipo)sepuedecrearunarama. Alcontrarioquelasetiquetas,losdesarrolladoresactualizancontinuamentelasramashasta queelproblemaestresueltoolanuevacaractersticaimplementada.Unavezresueltola
LoqueyosdeSVN6/33
ramasefusionaocombinaconeltrunk.Esoss,SVNesconocidopornocombinarramas muybien,portantosesueleevitar.Noeselcasodeotrossistemasdecontroldeversiones.
TrabajandoconSVN InstalandoSubversion
EnWindowsTortoiseSVNinstalatodolonecesario,asquedeberasersuficiente. LamayoradelasdistribuicionesdeLinuxvienenconelclienteporlneadecomandosinstalado,lo mismoqueMacOSX.Sinembargo,siprefieresunclientegrfico,puedesencontraralgunosenla secciondeEnlaces.
Creandoturepositorio
CrearunrepositorioSVNesmuy,muyfcil.LosrepositoriosSVNNOnecesitanunservidor,slo espacioeneldiscoduro.Tambinfuncionanbastantebienencarpetascompartidasenred. UsandoTortoisesimplementehazclickconelbotnderechoenunacarpetavacayselecciona TortoiseSVN>Createrepositoryhere:
LoqueyosdeSVN7/33
LoqueyosdeSVN8/33
Ahorahazclickenladireccinsuperioryselecciona"Createfolder":
LoqueyosdeSVN9/33
LoqueyosdeSVN10/33
Yyatienesturepositoriolistoparatrabajar.
RutinadiariaconSVN
Checkout
Unaveztengasturepocreadoylisto(ositieneslaURLdelproyecto)loprimeroeshacerun checkout:
LoqueyosdeSVN11/33
LoqueyosdeSVN12/33
SeleccionalacarpetaypresionaaOK:
LoqueyosdeSVN13/33
Unavezseleccionado,confirmaqueestashaciendoelcheckoutdeltrunk.Situclientenoha agregado/trunkagrgalotmismo:
LoqueyosdeSVN14/33
Yaest:)Ahoratienesunacopialimpiadelproyectoentucarpetalocalparapoderempezara trabajar.
LoqueyosdeSVN15/33
LoqueyosdeSVN16/33
Deverdad,nosetocan.
Addycommit
LoqueyosdeSVN17/33
ParaagregarloalrepositoriodebesagregarlomedianteSVNparaquestesepaqueesunfichero quedebecontrolar:
LoqueyosdeSVN18/33
Estomarcarelficherocomolistoparasersubidoalrepositorioyeliconocambiaraunsigno+. IMPORTANTE:elficheroaunNOhallegadoalrepositorio,debeshaceruncommit:
LoqueyosdeSVN19/33
Despusdehacerelcommitelficherotendruniconoverdequenosdicequenuestracopialocales idnticaalaquehayenelrepositorio:
LoqueyosdeSVN20/33
Yyaest,listo.Esteprocesoeslomismoqueejecutarloscomandosaddycommit: svnaddHelloWorld.txt svncim"Addingmyfirstfile!"HelloWorld.txt Unanotasobrequycundodebeshaceruncommit: Whenyoucommitachangetotherepository,makesureyourchangereflectsasinglepurpose: thefixingofaspecificbug,theadditionofanewfeature,orsomeparticulartask Traduccin: Cuandohacesuncommitdeuncambioalrepositorioasegratedequetuscambiospersiguenun nicopropsito:arreglarunbug,implementarunanuevacaractersticaoalgunatareaen particular. SacadodeSubversionbestpractices.
LoqueyosdeSVN21/33
Tambinesimportanteverladifereciaentreunmensajedelogbuenoyunomalo: MALO bugarreglado BUENO Fixissue#1729:Quenosecaigaporquefaltaunfichero. *get_editor.c (frobnicate_file):Comprobarqueexisteelficheroantesdefrobnicar, Recibeunarutaabsolutaenvezdeunarelativa. *do_thing.c (frobnicate_things):Actualizalasllamadasafrobnicate_file. SacadodeOSCON2004,SVNbestpractices.
Update(actualizar)
Sinotrabajassolonecesitarsbajarlosltimoscambiosqueotrosmiembrosdelequipohayan hecho:
LoqueyosdeSVN22/33
Avecesdespusdemodificarunficherodecidesquetuscambiosnosoncorrectosyquieresvolver alaversindelrepositorio.Parahacerestousaelcomandorevert:
LoqueyosdeSVN23/33
LoqueyosdeSVN24/33
Estocrearunacopiadetucopialocaldondetdigas.Porejemplo,vamosconalgosencillo,0.1:
LoqueyosdeSVN25/33
LoqueyosdeSVN26/33
Etiquetaturepocuandoleenviesalgoauncliente. Etiquetaturepocuandoliberesunreleasedetuproducto.
Conflictos
Cuandoactualizastucopialocal,SVNbajatodoslosficherosnuevosquesehayanaadido.Adema
LoqueyosdeSVN27/33
LoqueyosdeSVN28/33
LoqueyosdeSVN29/33
CosasmolonasquehacerconSubversionundomingoporlamaana
AcontinuacinunaunapequealistadecosasavanzadasquesepuedenhacerconSubversion, algunasmssencillasqueotras.LamayoratratansobreenlazarautomticamenteSubversioncon otrastecnologasutilizadaseneldesarrollodeSoftware.Lasmismascosassepuedenhaceramano, peroalautomatizarelprocesoteasegurasdequea)noteolvidasdehacerlo,b)lohacesbienyc) ahorrastiempo.
ActualizarWordPressdeformasencilla
Sitienesunblogseguramentesabesquemanteneractualizadalaversinesunatareabastante aburrida.LoschicosdeWordpresslosabenyporesotienenuntutorialmuyfacilitosobreello: http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion AnoserquequierastrastearconelcdigodeWordpress(msalldelainstalacintpica)elije instalarunaversinestable.
TweeteatuscommitsusandoSVNhooks
NOTADELTRADUCTOR:(Tuiteatuscomitsusandoesbienjuksesunafrasequeapestaen castellanoperonotengounamejortraduccin) SabesquepuedesgenerarunTweetcadavezquehacesuncommit?Loschicosdevi.vutecuentan cmo.NecesitasusarSVNhooks(msinformacinenlaseccindeEnlaces)quenosonmsque scriptsqueseejecutanautomticamentepordiferenteseventos(commit,crearunaetiqueta,etc.) UsandoSVNhookspuedesllamaraunscriptPHP(oJavaounarchivobat,dependedelsistema operativosobreelqueestelrepositorio)queseconectaaTweetercreandounTweetconla informacindelcommit.Elprocesoesalgocomoesto: friki>commit>hook>script>tweet>elrestodefrikisrecibenlanotificacin Msinformacinaqu: http://remeseiro.com/metadata/index.php/2007/10/25/enviandocommitsdesubversionatwitter/ http://quarkblog.org/2007/02/06/subversionhooks/
AadirinformacindeSVNatusarchivos
EsposibleconfigurarSVNparaqueinyecteinformacin(nmeroderevisin,quinhizoel commit,etc.)atusarchivos. Estoporejemplopermiteconoceresosdatossimplementemirandoelcdigo,nohacefaltaarrancar elclientedeSVN.Msinformacin:
LoqueyosdeSVN30/33
http://svnbook.redbean.com/en/1.0/ch07s02.html
IntegrarSVNconsistemasdegestindebugs
AlgunosclientesdeSVNpermitenenlazarunrepositorioyunsistemadegestindebugs.Ms informacin: http://blog.platinumsolutions.com/node/102
LoqueyosdeSVN31/33
Enlaces
AlgunosdelosenlacestocantemasavanzadosdeSVNqueseguramentenonecesitesahoramismo. Miconsejoesquelosleasdetodasformasporqueayudanatenerunavisinmsampliadeloque sepuedehacer. Estosonsloalgunosdelosenlacesqueherecopiladoescribiendoestetutorial.Comodijeal principio,muchasgraciasatodoslosquecompartenconocimientodeformagratuita.
ClientesdeSVN
TortoiseSVN(Windows):http://tortoisesvn.tigris.org RapidSVN(multiplataforma):http://rapidsvn.tigris.org SCPluing(Mac):http://scplugin.tigris.org Cornerstone(Mac,depago):http://www.zennaware.com/cornerstone Syncro(multiplataforma):http://www.syncrosvnclient.com Versions(Mac,depago):http://www.versionsapp.com
Documentacin
SitiooficialdeSubversion: http://subversion.tigris.org LibrooficialdeSubversion(esgrandeperovalelapenaparaconsultar): http://svnbook.redbean.com ListadodeloscomandosSVN: http://svnbook.redbean.com/en/1.1/ch09.html SVNhooks: http://svnbook.redbean.com/en/1.1/ch05s02.html AgregarpropiedadesdeSVNatusarchivos: http://svnbook.redbean.com/en/1.0/ch07s02.html IntegrarSVNyApache: http://svnbook.redbean.com/en/1.1/ch06s04.html ArtculodelaWikipediasobresistemasdecontroldeversiones: http://en.wikipedia.org/wiki/Source_control ArtculodelaWikipediasobreSubversion: http://en.wikipedia.org/wiki/Subversion_(software)
LoqueyosdeSVN32/33
Tutorialesyotrosartculos
TrucosconSVNhooks: http://www.petefreitag.com/item/244.cfm http://chicken.wiki.br/svnpostcommithooks IntegracindeSVNconsistemasdecontroldebugs(Bugzilla,Mantis,etc): http://blog.platinumsolutions.com/node/102 http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/doc/issuetrackers.txt(user:guest,password: empty) CollaborateandconnectwithSubversion: http://www.alistapart.com/articles/collaboratewithsubversion ListadodetutorialessobreSVN: http://www.subversionary.org/taxonomy/term/14 MejoresprcticasconSubversion: http://svn.collab.net/repos/svn/trunk/doc/user/svnbestpractices.html 5SVNbestpractices: http://www.iovene.com/5svnbestpractices/ ClienteporlneadecomandosparaWindows(sinTortoise): https://www.projects.dev2dev.bea.com/Subversion%20Clients/CommandLineSVN.html
Miscelnea
Putty,unclienteSSHgratuitoparaWindows(necesarioporejemploparainstalarWordpresscon SVN.PuedequeprimerotengasquecontactarcontuhostingparaobtenerdatosdeaccesoSSH): http://www.chiark.greenend.org.uk/~sgtatham/putty/ ListadodeempresasqueofrecenhostingSVNgratuitoydepago: http://www.subversionary.org/hosting/hostingservices YnosemeolvidaquetengoquepedirpermisoaAngusBlacksheepparausarsufotoperonotengo unacuentadeYahoo!Alguienmeechaunamano? http://www.flickr.com/photos/43933977@N00/1455304619/
LoqueyosdeSVN33/33