Control de versións

Na Galipedia, a Wikipedia en galego.

Os sistema de control de versións (VCS, do inglés «version control system»), xestor de código fonte (SCM, do inglés «source code manager») ou sistema de control de revisións (RCS, do inglés «revision contol system») son as ferramentas de xestión e control dos cambios en diferentes versións de código fonte de software ou doutros contidos como información de imaxes, bases de datos, documentación ou similares[1][2]. O control de versións séguelle os cambios aos documentos e ao código fonte, como é o caso de proxectos de desenvolvemento de software ou creación de páxinas web, e recompila esa información. Aos cambios asígnalles un código de letras ou números, que se denominan «número de revisión», «nivel de revisión» ou «revisión». A calquera cambio posterior a un número de revisión que se lle faga a un documento ou código fonte, como son o engadido dunha imaxe ou bloque de código, o control de versións asígnalle unha nova etiqueta, estampa temporal, e traza que cambios se fixeron e quen os fixo, i.e. un desenvolvedor. O control de versións permite comparar, restaurar e resolver conflitos entre cambios de ficheiros e xunguilos.

A necesidade da lóxica de organización e control de revisións existiu desde que a escrita existe, mais isto fíxose máis necesario na época do nacemento da computación. A numeración de edicións ou especificación de revisión nas edicións imprentas de libros e revistas é un exemplo disto na época onde só existía a imprenta. Hoxe en día os sistemas de control de revisións sustentan o desenvolvemento de software, xa que implican a participación de par de ducias de desenvolvedores na edición dos mesmos ficheiros e código.

Os sistemas de control de versións, VCS, soen executarse como aplicativos separados. Porén, moitos xa dispoñen de interfaces nas que aparecen incorporados. Así é que hai procesadores de texto ou follas de cálculo que os incorporan para que fagan edicións colaborativas. Os sistemas de control de versións permiten desfacer os cambios dun documento á anterior ou calquera outra previa modificación. Grazas a iso os editores poden analizar os cambios feitos por outros autores, corrixir os erros e defenderse do vandalismo e do spam.

Os controis de versións poden ser centralizados ou descentralizados. Os centralizados empregan un repositorio centralizado onde todos os desenvolvedores envían os seus cambios do código, ficheiros e/ou datos, como é o caso de Subversion. Outros, os que se desenvolveron na última década como Git ou Mercurial, son descentralizados. Para estes cada copia nun computador actúa como un repositorio e os cambios pódense enviar e xunguir en calquera deles[3].

Para os proxectos de múltiples desenvolvedores os sistemas de control de versións son esenciais.[4]. Un caso a destacar é o emprego ge Git para o desenvolvemento do kernel de linux [5]. Actualmente os controis de versións máis empregados son Baazar, Mercurial e Git.

Historia dos control de versións[editar | editar a fonte]

Os sistemas de control de versións pódense agrupar en tres períodos históricos de desenvolvemento[6]. Os primeiros sistemas de control, como RCS e SCCS, xestionaban a información por bloques, co que só unha persoa se podía encargar de mudar un ficheiro de cada vez. Os seguintes, como foron CVS, Subversion e Team Foundation Server. Foron máis permisivos e permitiron facer mudanzas simultáneas dos mesmo ficheiros. Mais, cada persoa tiña que primeiro xunguir, unificar, os cambios no seu espazo de traballo e logo enviar ao repositorio central cos cambios xa unificados. Na última xeración de sistemas de control de versións están Bazaar, Git e Mercurial. Estes sistemas non son centralizados e permiten xunguir e enviar os cambios de cada persoa por separado [6][7].

Software de control de versións[editar | editar a fonte]

Pódense clasificar o software de control de versión actual segundo a aproximación de xestión de cambios, que casa co seu desenvolvemento histórico. Poden ser de traballos só locais, no que cada desenvolvedor ou persoa usa o mesmo conxunto de ficheiros ou datos. Pode ser dun modelo cliente-servidor, no que todas os desenvolvedores empregan un único repositorio central. Finalmente, poden ser distribuídos, nos que cada desenvolvedor traballa no seu propio repositorio e fai cambios e xuncións de xeito separado.

As principais ferramentas de control de versións lístanse nas seguintes seccións.

Modelos de traballo local[editar | editar a fonte]

  • Revision Control System (RCS)
  • Source Code Control System (SCCS)

Modelo cliente-servidor[editar | editar a fonte]

  • Concurrent Versions System (CVS)
    • CVSNT
    • OpenCVS
  • Subversion (SVN)
  • Vesta

Modelo distribuído[editar | editar a fonte]

  • ArX
  • Bazaar
  • BitKeeper
  • Codeville
  • Darcs
  • DCVS
  • Fossil
  • Git
  • GNU arch
  • Mercurial
  • Monotone
  • SVK
  • Veracity

Notas[editar | editar a fonte]

  1. Sammes, A. J. (2009). From P2P and Grids to Services on the Web. Computer Communications and Networks. Ian J. Taylor, Andrew B. Harrison (eds.). London: Springer London. ISBN 978-1-84800-123-7. Consultado o 6 de xaneiro de 2017. 
  2. McCullough, Jon Loeliger, Matthew (2009). Version Control with Git. ISBN 978-1-4493-1638-9. Consultado o 6 de xaneiro de 2017. 
  3. "Version Control in Scientific Computing". Consultado o 6 de xaneiro de 2017. 
  4. "Rapid Subversion Adoption Validates Enterprise Readiness and Challenges Traditional Software Configuration Management Leaders". Collabnet. 15 de maio de 2007. Consultado o 6 de xaneiro de 2017. A xestión de versións é crucial para o desenvolvemento de software e considérase a compoñente máis crítica para calquera ambiente de desenvolvemento. 
  5. "What Is Git & Why You Should Use Version Control If You’re a Developer". MakeUseOf. Consultado o 6 de xaneiro de 2017. 
  6. 6,0 6,1 "Version Control by Example". Consultado o 2017-01-06. 
  7. "Astonishments, ten, in the history of version control : Francis Irving". Consultado o 6 de xaneiro de 2017. 

Véxase tamén[editar | editar a fonte]

Outros artigos[editar | editar a fonte]


Este artigo tan só é un bosquexo
 Este artigo sobre informática é, polo de agora, só un bosquexo. Traballa nel para axudar a contribuír a que a Galipedia mellore e medre.
 Existen igualmente outros artigos relacionados con este tema nos que tamén podes contribuír.