bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


vcs

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
vcs [2022/09/19 18:29]
enrique_mieza_sanchez
vcs [2023/09/26 15:33] (actual)
enric_mieza_sanchez
Línia 50: Línia 50:
 **Aquesta operació és delicada i implica refer tots els tests necessaris per assegurar-nos que el codi fusionat continua funcionant**. **Aquesta operació és delicada i implica refer tots els tests necessaris per assegurar-nos que el codi fusionat continua funcionant**.
  
-{{ vcs-merge.png?direct&400 }}+{{ vcs-merge.png?direct }}
  
 \\ \\
Línia 59: Línia 59:
 Exemples d'aquest sistema son CVS, Subversion o Razor. Exemples d'aquest sistema son CVS, Subversion o Razor.
  
-{{vcs-centralitzat.png?300}} {{vcs-distribuit.png?300}}+{{ vcs-centralitzat.png }}
  
-En canvi, un **sistema de control de versions distribuit** permet treballar amb la filosofia //peer to peer//, és a dir, que puc descarregar els canvis de qualsevol altre usuari en qualsevol moment, sense tenir un repositori central com al cas anterior.+Per exemeple, quan un desenvolupador havia d'editar un arxiu, el bloquejava i els altres usuaris no el podien escriure, només llegir-ho. 
 + 
 +===== VCS distribuït ===== 
 + 
 +{{ vcs-distribuit.png }} 
 + 
 +En canvi, un **sistema de control de versions distribuït** permet treballar amb la filosofia //peer to peer//, és a dir, que puc descarregar els canvis de qualsevol altre usuari en qualsevol moment, sense tenir un repositori central com al cas anterior.
  
 Exemples de sistemes de control de versions: Exemples de sistemes de control de versions:
Línia 79: Línia 85:
 Git controla contingut, no arxius. Per tant, és molt fàcil esborrar, reanomenar sense avisar a Git, i l'historial es manté :) Git controla contingut, no arxius. Per tant, és molt fàcil esborrar, reanomenar sense avisar a Git, i l'historial es manté :)
  
 +\\
 +
 +===== Git (2) =====
 Algunes dades de referència (del 2009): Algunes dades de referència (del 2009):
   * Linux Kernel constava de 22.000 arxius.   * Linux Kernel constava de 22.000 arxius.
Línia 87: Línia 96:
     * En Git : 300 MB     * En Git : 300 MB
  
 +\\
  
-==== Com funciona Git ==== +===== Com funciona Git ===== 
-Mostrem en images com funciona Git:+Mostrem en imatges com funciona Git:
  
-----+{{ git1.png?600 }}
  
-{{git1.png }} 
 Comencem desenvolupant un projecte en local. Comencem desenvolupant un projecte en local.
  
-----+Prem abaix per seguir la seqüència:
  
-{{ git2.png}}+==== Clonació ==== 
 Un segon desenvolupador fa una còpia del nostre projecte. Un segon desenvolupador fa una còpia del nostre projecte.
  
-----+{{ git2.png?600 }}
  
-{{git3.png }}+==== Afegint codi ====
 Cada desenvolupador segueix treballant individualment. Cada desenvolupador segueix treballant individualment.
  
-----+{{ git3.png?600 }}
  
-{{ git4.png}}+==== Més codi ====
 Els canvis de cadascun no afecten l'altre. Els canvis de cadascun no afecten l'altre.
  
----- +{{ git4.png?600 }}
- +
-{{git5.png }}+
  
 +==== Fetch ====
 El desenvolupador principal descarrega els canvis que ha fet el 2n desenvolupador. El desenvolupador principal descarrega els canvis que ha fet el 2n desenvolupador.
  
-----+{{ git5.png?600 }}
  
-{{ git6.png}} +==== Merge ==== 
-...i els barreja amb el seu projecte amb un MERGE.+Combina els canvis amb el seu projecte amb un MERGE.
  
-----+{{ git6.png?600 }}
  
-{{git7.png }}+==== Fetch (2) ====
 Finalment, el segon desenvolupador descarrega els canvis del primer, amb els seus propis canvis integrats. Finalment, el segon desenvolupador descarrega els canvis del primer, amb els seus propis canvis integrats.
  
----- +{{ git7.png?600 }}
- +
-\\ +
  
 \\ \\
Línia 137: Línia 142:
 Disposar de Git és una gran cosa, però també cal seguir unes bones pràctiques a l'hora de crear i administrar les branques. Disposar de Git és una gran cosa, però també cal seguir unes bones pràctiques a l'hora de crear i administrar les branques.
  
 +===== Distribuït però centralitzat =====
 +Amb **"distribuït però centralitzat"** es vol dir que el sistema suporta un esquema distribuït on els desenvolupadors poden descarregar-se el codi d'altres companys, però finalment **hi ha un repositori de referència que es sol dir //origin//**, on es deixen els canvis consolidats i testejats.
  
-==== Distribuït però centralitzat ?? ====+Un projecte en Git pot ser centralitzat per conveniència, però no per arquitectura, permetent els desenvolupadors treballar descentralitzadament.
  
-Amb Git es sol utilitzar un esquema "distribuït però centralitzat", volent dir que el sistema suporta un esquema distribuït on els desenvolupadors poden descarregar-se el codi d'altres companys, però que finalment hi ha un repositori de referència (que es sol dir //origin//) on es deixen els canvis consolidats i testejats.+{{ centr-decentralized-vcs.png?direct&650 }}
  
-O sigui, que un determinat projecte Git pot ser centralitzat per conveniència, però no necessàriament per arquitectura, permetent els desenvolupadors treballar descentralitzadament. 
  
-{{centr-decentralized-vcs.png?direct&450}} +===== Model exitós: git-flow =====
- +
- +
-==== Model exitós ====+
 Fa 10 anys [[https://nvie.com/posts/a-successful-git-branching-model/|Vincent Driessen va proposar un model de treball]] o //workflow// que encara avui es considera el de referència de forma estàndard, fins al punt que l'han anomenat **"Git-flow"**. Fa 10 anys [[https://nvie.com/posts/a-successful-git-branching-model/|Vincent Driessen va proposar un model de treball]] o //workflow// que encara avui es considera el de referència de forma estàndard, fins al punt que l'han anomenat **"Git-flow"**.
  
 +{{ hotfix-branches.png?500 }}
  
-{{ hotfix-branches.png?250}} +===== Caraterístiques del "git-flow" ===== 
-En aquest article s'expliquen els diversos tipus de branques i com utilitzar-les: +A l'[[https://nvie.com/posts/a-successful-git-branching-model/|article de git-flow de Driessen]] s'expliquen els diversos tipus de branques i com utilitzar-les: 
-  * **Main branches**, existeixen sempre +  * Main branches, existeixen sempre 
-    * **master** : actualment s'ha passat a "main" per evitar nomenclatures esclavistes. +    * **main** : abans es deia "master", però s'ha canviat a "main" per evitar nomenclatures esclavistes. 
-    * **develop** +    * **develop** : mes coneguda per **dev** 
-  * **Supporting branches**: +  Supporting branches
-    * Feature branch +    * Feature branch : noves funcionalitats 
-    * Release branch : pre / pro +    * Release branch : **pre** (preproducció) **pro** (production) 
-    * Hotfix branch +    * Hotfix branch : per solucionar //bugs//.
- +
-\\ +
- +
-\\ +
- +
-\\+
  
 \\ \\
vcs.1663612175.txt.gz · Darrera modificació: 2022/09/19 18:29 per enrique_mieza_sanchez