bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


git_exemple_de_conflicte

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
git_exemple_de_conflicte [2024/03/28 18:00]
enric_mieza_sanchez
git_exemple_de_conflicte [2024/03/28 18:09] (actual)
enric_mieza_sanchez [Codi]
Línia 1: Línia 1:
 ====== Git: Exemple de conflicte ====== ====== Git: Exemple de conflicte ======
 Els conflictes de versions es donen quan dos desenvolupadors han modificat la mateixa línia (o línies) de codi. Forçarem un senzill exemple de conflicte que Git detectarà, simulant el treball de dos //developers// en branques diferents. Partirem d'un simple arxiu ''circ.py'' del qual derivarem 2 branques i, finalment, les fusionarem, trobant el conflicte. Els conflictes de versions es donen quan dos desenvolupadors han modificat la mateixa línia (o línies) de codi. Forçarem un senzill exemple de conflicte que Git detectarà, simulant el treball de dos //developers// en branques diferents. Partirem d'un simple arxiu ''circ.py'' del qual derivarem 2 branques i, finalment, les fusionarem, trobant el conflicte.
 +
 +{{vcs-merge.png?500}}
  
 {{tag> #Daw #DawMp08 #DawMp08Uf4 #DawMp08Uf04 #DawMp05 #DawMp05Uf2 #DawMp05Uf02 #Dam #DamMp05 #DamMp05Uf2 #DamMp05Uf02 #Ciber #CiberMp03 #Ceti #CetiMp03 git cvs vcs versions subversion svn DevOps }} {{tag> #Daw #DawMp08 #DawMp08Uf4 #DawMp08Uf04 #DawMp05 #DawMp05Uf2 #DawMp05Uf02 #Dam #DamMp05 #DamMp05Uf2 #DamMp05Uf02 #Ciber #CiberMp03 #Ceti #CetiMp03 git cvs vcs versions subversion svn DevOps }}
  
 +<WRAP info>
 En aquest exemple es fa tot a la mateixa màquina i carpeta per forçar un conflicte. La situació "real" seria que dos desenvolupadors estarien en màquines diferents i el conflicte arribaria quan incorporessin els canvis de l'altre mitjançant un //fetch//. En aquest exemple es fa tot a la mateixa màquina i carpeta per forçar un conflicte. La situació "real" seria que dos desenvolupadors estarien en màquines diferents i el conflicte arribaria quan incorporessin els canvis de l'altre mitjançant un //fetch//.
 +</WRAP>
  
 +===== Codi =====
  
 Dos desenvolupadors volen treballar amb el següent codi i parteixen d'aquesta primera versió. Tots dos tindran la mateixa pensada, millorar la precisió del valor ''PI'', però un hi afegirà 4 decimals i l'altre 5, resultant en un conflicte de codi. Dos desenvolupadors volen treballar amb el següent codi i parteixen d'aquesta primera versió. Tots dos tindran la mateixa pensada, millorar la precisió del valor ''PI'', però un hi afegirà 4 decimals i l'altre 5, resultant en un conflicte de codi.
  
-<code python>+<file python circ.py>
 #!/usr/bin/env python3 #!/usr/bin/env python3
 radi = input("Radi de la circumferència? ") radi = input("Radi de la circumferència? ")
Línia 16: Línia 20:
 perimetre = 2*PI*float(radi) perimetre = 2*PI*float(radi)
 print("El perímetre de la circumferència de radi {} és {}".format(radi,perimetre)) print("El perímetre de la circumferència de radi {} és {}".format(radi,perimetre))
-</code>+</file> 
 + 
 +\\ 
 + 
 +===== Branques =====
  
 <WRAP info> <WRAP info>
Línia 60: Línia 68:
  1 file changed, 1 insertion(+), 1 deletion(-)  1 file changed, 1 insertion(+), 1 deletion(-)
 </code> </code>
 +
 +\\
 +
 +===== Conflicte =====
  
 La fusió de la branca //dev_a// sobre //main// no ha donat errors. Procedim amb la fusió de la segona branca: La fusió de la branca //dev_a// sobre //main// no ha donat errors. Procedim amb la fusió de la segona branca:
Línia 83: Línia 95:
 print("El perímetre de la circumferència de radi {} és {}".format(radi,perimetre)) print("El perímetre de la circumferència de radi {} és {}".format(radi,perimetre))
 </code> </code>
 +
 +\\
 +
 +===== Resolució =====
  
 El darrer desenvolupador es trobarà el conflicte en fer el merge de l'altra branca, i haurà de decidir si posa un valor o un altre, eliminar les línies que ressalten el conflicte i tornar a fer un //commit// amb la correcció sobre la branca //main//. En aquest cas, **el darrer desenvolupador opta per emprar el valor de PI amb més decimals de precisió**: El darrer desenvolupador es trobarà el conflicte en fer el merge de l'altra branca, i haurà de decidir si posa un valor o un altre, eliminar les línies que ressalten el conflicte i tornar a fer un //commit// amb la correcció sobre la branca //main//. En aquest cas, **el darrer desenvolupador opta per emprar el valor de PI amb més decimals de precisió**:
git_exemple_de_conflicte.1711648835.txt.gz · Darrera modificació: 2024/03/28 18:00 per enric_mieza_sanchez