Mostrando entradas con la etiqueta Software Versioning. Mostrar todas las entradas
Mostrando entradas con la etiqueta Software Versioning. Mostrar todas las entradas

viernes, 24 de julio de 2015

SVN: Ancestrally problem or How to copy branch to trunk


Cómo solucionar el problema de tratar de generar el trunk cuando se partó a trabajar en una rama directamente y no desde el trunk.

PROBLEMA:


Se intenta mergear desde una rama (el código del proyecto está en una rama) cuando el trunk está vacío y el proyectos se creó desde la rama y no desde el trunk.

svn merge ^/branches/MyBranch/ --reintegrate
svn: 'https://svn.example.com/repos/MyRepo/branches/MyBranch@92' must be ancestrally related to 'https://svn.dev.example.com/repos/MyRepo/trunk@92'
dario.palminio@exampleglb-l1077:~/Workspace/reissuePrice_trunk$ svn merge ^/branches/MyBranch/
--- Merging r11 through r92 into '.':
   C doc
   C src
   C pom.xml
 U   .
Summary of conflicts:
  Tree conflicts: 3
dario.palminio@exampleglb-l1077:~/Workspace/reissuePrice_trunk$ ll


SOLUCIÓN:


Una solución es regenerar el trunk (que actualmente está vacío):

svn delete -m 'Borra el trunk para regenerarlo' https://svn.example.com/repos/MyRepo/trunk

svn copy -m 'Genera el trunk copiando desde el branche 1260' https://svn.example.com/repos/MyRepo/MyBranch https://svn.example.com/repos/MyRepo/trunk

Esto debería funcionar, pero si tira un error como el que sigue:
...svn: Path 'https://svn.example.com/repos/MyRepo/MyBranch' does not exist in revision 93

Se puede probar copiar la copia local al trunk (regenerándolo):

svn copy . https://svn.example.com/repos/MyRepo/trunk



jueves, 23 de octubre de 2014

SVN: Machete de comandos mas usados

Status
svn st

Checkout
svn co https://URL/branches/branch --ignore-externals


Reintegrate del trunk
trunk]$ svn up --ignore-externals
trunk]$ svn merge ^/branches/branch --reintegrate
trunk]$ svn ci -m "message"

Enviar cambios

svn ci -m "msg”

svn commit PATH -m "Message"

Revertir cambios locales
svn revert . -R

Update
svn update --ignore-externals
svn up --ignore-externals



Referencias:
https://code.google.com/p/relaxtives/wiki/Subversion



SVN: Crear y aplicar un Patch

Crear y aplicar un Patch



svn diff > ~/BUG_FIXED_.diff

patch -p0 -i ~/BUG_FIXED_.diff




Patch para volver a hacer un commit revertido:



Si el commit revertido fue r999 y su commit anterior r998, como indica el log:
svn log -l2
------------------------------------------------------------------------
r999 | dario | 2015-01-13 17:32:35 +0000 (Tue, 13 Jan 2015) | 1 line
MY COMMIT: comment.
------------------------------------------------------------------------
r998 | juan | 2015-01-13 12:53:00 +0000 (Tue, 13 Jan 2015) | 1 line
PREVIOUS COMMIT: comment.


Se puede hacer un diff de la siguiente manera:


svn diff -r r998:r999 > Patch_MY_COMMIT.diff


Luego aplicamos el Patch:


patch -p0 -i Patch_MY_COMMIT.diff



Referencia:
- Quick-n-Dirty Guide to Creating and Applying diff-style Patches.
- Crear y aplicar parches (patches) en Linux.


SVN: Log (Consultar Historial)

¿Cómo recuperar información histórica de commits y revisiones?



Traigo mis commit
svn log -l 100 | grep USER
svn log -l 100 | grep -A 3 -B 3 USER

Todos los commit de un usuario entre dos fechas:
svn log -r '{2010-12-10}:{2010-12-11}'|sed -n '1p; 2,/^-/d; /USER/,/^-/p'
svn log -r '{2014-09-23}:{2014-10-15}'|sed -n '1p; 2,/^-/d; /USER/,/^-/p' > $HOME/resultado_USER_commits.log

Revisar commits de una revisión dada
svn log -r NRO_REVISION -v
svn log --revision NRO_REVISION

Revisar commits de un rango de revisión dado
svn log -r NRO_REVISION_1:NRO_REVISION_2

Listar commit entre fechas
svn log -v -r {2014-05-23}:{2014-05-28} --xml > $HOME/resultado_log_entre_fechas.xml
svn log -v -r {2014-08-20}:{2014-08-24} > $HOME/resultado_log_entre_fechas.log

Listar historia de un archivo
svn log FILE

Listar últimos 5 commit
svn log -l 5 -v

Show author and revision information inline for the specified files or URLs
svn blame -v filename
svn blame -v filename > $HOME/resultado_blame.xml


Referencias:

lunes, 20 de octubre de 2014

SVN: Rollback commit (revert revision)


Revertir los cambios de una revisión

¿Cómo deshacer un commit o una revisión?
Podemos querer revertir (deshacer) un commit que hicimos o volver a una revisión pasada.

Si queremos revertir un commit que hicimos con numero_de_revision dado, la forma general es:
                svn merge -r -numero_de_revision url-del-repositorio
... y despues hacer commit.

#Otra manera:
svn merge -c -1003 file:///path/my_project/trunk
svn commit -m "Rollback de la revisión 1003 (revert commit 1003)"

O podemos querer volver a una revisión pasada. La forma general es:
                svn merge -r version-actual:version-anterior url-del-repositorio
... y despues hacer commit.

#Por ejemplo:
svn merge -r 1003:1002 http://repo/project/trunk
svn commit -m "Revert a la revisión 1002"

#Otra forma:
cd ruta/de/miproyecto/
svn merge -r 1003:1002
svn commit -m "Reversión de cambios del ultimo commit"

#Otra
svn merge -r 1003:1002 .
svn commit -m "Rollback de la revisión 1003"

#También podemos indicar tan solo un dir o un archivo al que volver (no toda la rama).
svn merge -r HEAD:543 my_file.pm

#Una forma simulada:
svn merge --dry-run -r 1003:1002 http://repo/project/trunk
#La opción --dry-run lo que hace es mostrarte en la terminal el resultado del merge si hacerlo realmente.

#Si quieremos ver exactamente que cambiará en cada archivo y cada dir, también puedes hacer un:
svn diff -r 1003:1002 http://repo/project/trunk


sábado, 24 de noviembre de 2012

Subversion SVN on Ubuntu




# Install subversion
sudo apt-get install subversion libapache2-svn

# If usu java and subversion instal JavaHL Library
# Subclipse 1.8.x requires JavaHL version 1.7.x.
# I need Subclipse 1.8.x in order to use svn 1.7.x. ...see more...
sudo add-apt-repository ppa:dominik-stadler/subversion-1.7
sudo apt-get update
sudo apt-get install libsvn-java

#Install visual graphic client (cliente visual para SVN (RapidSVN) en Ubuntu)
sudo apt-get install rapidsvn


Reference:
- Subversion installing
-Instalar un cliente visual para SVN (RapidSVN) en Ubuntu.
-SVN Cheatsheet.