Project

General

Profile

Trabajar a la vez con subversion y el git para el branching

nos apoyamos sobre este articulo

condiciones

  • en trunk de subversion ignora el .git y .gitignore
  • el git ignora todo lo que es de subversior (los '.svn')
  • la branch master tiene que siempre integrar los updates del trunk
  • trabajamos en un branch separado que será ignorada por svn

secuencia de trabajo ejemplo

estamos en trunk y master.
creamos un branch 'pascal_branch':

git checkout -b pascal_branch

Trabajamos en esta branch.
Hay un update del trunk que trae "Ticket #2836 . Errores en fechas de periodos".
Nos aseguramos que estamos en la branch master de git:
  git checkout master

git status nos dice que los ficheros app/controllers/info_controller.rb, app/models/periodo.rb2 app/views/datos_proyecto/_formulario_periodo.html.erb, app/views/info/_periodos.html.erb y db/seeds.rb han sido modificados.
Hacemos un commit en master de esos ficheros:
  git commit app/controllers/info_controller.rb, app/models/periodo.rb2 app/views/datos_proyecto/_formulario_periodo.html.erb, app/views/info/_periodos.html.erb db/seeds.rb -m "Ticket #2836 . Errores en fechas de periodos" 

(el hecho que demos el mismo nombre al los commit es solamente para orientarnos)
Traemos este update a la branch de trabajo 'pascal_branch:
git checkout pascal_branch
git merge master

Con eso nos aseguramos que los cambios en nuestra branch de trabajo (aquí 'pascal_branch' serán siempre compatible con la evolución del trunk de snv.
Una vez que hemos terminado nuestro trabajo en nuestra branch, nos aseguramos que el master este 'up to date' con el trunk de subversion :
git checkout master
svn update

Traemos todo eventual cambio a nuestra branch de trabajo:
git checkout pascal_branch
git merge master

Traemos nuestros cambios en master:
git checkout master
git merge pascal_branch

Ahora svn 've' los cambios que hemos hecho en 'pascal_branch'.
Hacemos el commit en subversion:
svn ci . -m 'ticket #<numero de ticket> <intitulado del cambio>'

Financiado por:

Desarrollado por:
Software libre forjado en: