{"id":19,"date":"2008-08-20T13:37:11","date_gmt":"2008-08-20T11:37:11","guid":{"rendered":"http:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/repositorios-e-mantemento-do-codigo"},"modified":"2008-08-20T13:37:11","modified_gmt":"2008-08-20T11:37:11","slug":"repositorios-e-mantemento-do-codigo","status":"publish","type":"post","link":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/2008\/08\/20\/repositorios-e-mantemento-do-codigo\/","title":{"rendered":"Repositorios e mantemento do c\u00f3digo"},"content":{"rendered":"<p><img decoding=\"async\" align=\"right\" alt=\"repositorio de c\u00f3digo\" src=\"http:\/\/svnbook.red-bean.com\/nightly\/en\/images\/ch02dia1.png\" \/>En xeral, nos proxectos de software libre, colaboran persoas de diferentes lugares que coordinan as s\u00faas acci\u00f3ns a trav\u00e9s de internet (listas de correo, chat, &#8230;). Esta caracter\u00edstica demanda unha ferramenta que posibilite o traballo en grupo sobre o c\u00f3digo de forma eficiente.<\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/History_of_software_configuration_management\">Para cubrir esa necesidade emerxe<\/a> unha das ferramentas cl\u00e1sicas no desenvolvemento de software libre: os <strong><a href=\"http:\/\/es.wikipedia.org\/wiki\/Control_de_versiones\">sistemas de control de versi\u00f3ns<\/a><\/strong>.<\/p>\n<p>Nun primeiro momento podemos entender esta ferramenta como un <strong>sistema para compartir informaci\u00f3n<\/strong>.<\/p>\n<p>Pero os sistemas de control de versi\u00f3ns posibil\u00edtannos moito m\u00e1is que iso .. perm\u00edtennos, por exemplo, a <strong>xesti\u00f3n das revisi\u00f3ns do documento<\/strong>. Ch\u00e1mase revisi\u00f3n a cada estado do repositorio \u00f3 longo do tempo, \u00e9 dicir, \u00f3s arquivos que inclu\u00e9 nun instante <em>n<\/em>. A diferencia entre a <em>revisi\u00f3n3<\/em> e a <em>revisi\u00f3n4<\/em> pode ser que se inclu\u00edron,  borraron ou modificaron os arquivos do repositorio.<\/p>\n<p>Un sistema de control de versi\u00f3ns perm\u00edtenos recuperar calquera das revisi\u00f3ns do repositorio.<\/p>\n<p>Nas seguinte figura podemos observar c\u00f3mo var\u00eda o estado do repositorio (dende a revisi\u00f3n 0 ata a 3) a medida que imos facendo cambios, \u00e9 dicir, \u00f3 engadir, modificar ou borrar alg\u00fan ficheiro\/directorio:<\/p>\n<div style=\"text-align: center\"><img decoding=\"async\" src=\"http:\/\/svnbook.red-bean.com\/nightly\/en\/images\/ch02dia7.png\" \/><\/div>\n<p>E, a pesar de que o estado final do repositorio \u00e9 a revisi\u00f3n 3, temos acceso a calquera das anteriores, o que nos posibilita recuperar unha revisi\u00f3n antigua si, por exemplo, algu\u00e9n introduciu un cambio que fai que o c\u00f3digo xa non funcione como deber\u00eda.<\/p>\n<p>Adem\u00e1is disto, os sistemas de control de versi\u00f3ns <strong>almacenan a historia de cada cambio<\/strong>. Dependendo do sistema elexido, teremos acceso a m\u00e1is ou menos informaci\u00f3n, pero en xeral, sempre se pode observar a data da modificaci\u00f3n, o autor e os cambios que realizou.<\/p>\n<p>En resumo, <strong>un <a href=\"http:\/\/producingoss.com\/es\/vc.html\">sistemas de control de versi\u00f3ns<\/a> ofr\u00e9cenos<\/strong>:<\/p>\n<ul><a href=\"http:\/\/svnbook.red-bean.com\/en\/1.4\/svn.tour.revs.specifiers.html\"> \t<\/a><\/p>\n<li>Un lugar onde comparti-lo c\u00f3digo do proxecto<\/li>\n<li>A posibilidade de xestionar as revisi\u00f3ns<\/li>\n<li>Un hist\u00f3rico das modificaci\u00f3ns de cada revisi\u00f3n<\/li>\n<p><a href=\"http:\/\/svnbook.red-bean.com\/en\/1.4\/svn.tour.revs.specifiers.html\"> <\/a><\/ul>\n<p><a href=\"http:\/\/svnbook.red-bean.com\/en\/1.4\/svn.tour.revs.specifiers.html\"> <\/a><a href=\"http:\/\/svnbook.red-bean.com\/en\/1.4\/svn.tour.revs.specifiers.html\">No caso da <\/a><a href=\"http:\/\/forxa.mancomun.org\">forxa de mancom\u00fan<\/a>, o sistema de control de versi\u00f3ns que se usa \u00e9 <em><a href=\"http:\/\/subversion.tigris.org\/\">Subversion<\/a> <\/em>(tam\u00e9n co\u00f1ecido como <em>svn<\/em>). Unha moi boa referencia para introducirse no uso deste sistema \u00e9 o libro <a href=\"http:\/\/svnbook.red-bean.com\/\">Version Control with Subversion<\/a>, cunha versi\u00f3n dispo\u00f1ible tam\u00e9n <a href=\"http:\/\/svnbook.red-bean.com\/nightly\/es\/index.html\">en espa\u00f1ol<\/a>.<\/p>\n<p><strong>FLUXO DE TRABALLO CON SVN<\/strong><\/p>\n<p>Co \u00e1nimo de exemplificar o seu uso, mostramos a continuaci\u00f3n o <a href=\"http:\/\/svnbook.red-bean.com\/en\/1.4\/svn.tour.cycle.html\">fluxo de traballo dunha sesi\u00f3n normal<\/a>:<\/p>\n<ol>\n<li>Descargar o que hay no repositorio (<em>checkout<\/em> do repositorio).<\/li>\n<li>Traballar sobre o c\u00f3digo facendo as modificaci\u00f3ns oportunas para implementar a nova caracter\u00edstica ou correxir un bug.<\/li>\n<li>Comprobar que ningu\u00e9n subiu cambios dende que descargamos a \u00faltima revisi\u00f3n. Pode darse que:<\/li>\n<ol>\n<li>Algu\u00e9n fixo cambios pero <em>non afectan<\/em> \u00f3 c\u00f3digo que modificamos.<\/li>\n<li>Algu\u00e9n fixo cambios e <em>s\u00ed afectan<\/em> \u00f3 c\u00f3digo que modificamos: neste caso pode existir un <em>conflicto<\/em> entre os seus cambios e os nosos. De ser as\u00ed, \u00e9 necesario adaptar o c\u00f3digo a estes cambios.<\/li>\n<\/ol>\n<li>Subir os cambios \u00f3 repositorio.<\/li>\n<\/ol>\n<p>Co \u00e1nimo de exemplificar o seu uso, no seguinte post mostraremos c\u00f3mo traballar con <em>svn<\/em> e as ferramentas usadas para enviar un parche a un proxecto de software libre.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En xeral, nos proxectos de software libre, colaboran persoas de diferentes lugares que coordinan as s\u00faas acci\u00f3ns a trav\u00e9s de internet (listas de correo, chat, &#8230;). Esta caracter\u00edstica demanda unha ferramenta que posibilite o traballo en grupo sobre o c\u00f3digo de forma eficiente. Para cubrir esa necesidade emerxe unha das ferramentas cl\u00e1sicas no desenvolvemento de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-19","post","type-post","status-publish","format-standard","hentry","category-sw-libre-ferramentas"],"_links":{"self":[{"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/posts\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":0,"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/posts\/19\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/media?parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/categories?post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.igalia.com\/premio-pfcsoftwarelibre-2008\/wp-json\/wp\/v2\/tags?post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}