Subversion
Creación de repositorio SVN
(http://svnbook.red-bean.com/nightly/en/svn.intro.quickstart.html)
- Pararse en el directorio a donde quiero crear el repositorio. (e.g ~/comp/tesis)
- svnadmin create <nombrerepos> (e.g. <nombrerepos>=svn)
- svn import preproyecto file:/././home/francolq/comp/tesis/svn/preproyecto -m”Primer import: preproyecto tesis y carta al decano.”
- svn list –verbose file:/././home/francolq/comp/tesis/svn
- mv preproyecto preproyecto.old
- svn co file:/././home/francolq/comp/tesis/svn/preproyecto preproyecto
- Si lo anterior anduvo bien, rm -rf preproyecto.old
Importar con excepciones
Aca el drama es que los directorios que importo tienen muchas cosas que no quiero meter. La clave es usar la opción -N (–non-recursive).
- Primero backup del repositorio: cp -r svn/ svn.bak
- svn import eiffelTests file:/././home/francolq/comp/tesis/svn/eiffelTests -m”Agrego directorio para poner las pruebas con eiffel.” –non-recursive
- svn import build file:/././home/francolq/comp/tesis/svn/eiffelTests/build -m”Agrego mi primera aplicacion con GUI.” –non-recursive
- Borro los archivos de build que importé (o los muevo por las dudas).
- svn co file:/././home/francolq/comp/tesis/svn/eiffelTests/build build
A build/vision2_application.e
A build/ace.Unix.ace
A build/main_window_imp.e
A build/system_interface.xml
A build/vision2_project.epr
A build/build_project.bpr
A build/ace.Windows.ace
A build/main_window.e
Revisión obtenida: 3
Agrego Wiki al repositorio: Ver knotes de francolq@rodolfa.
(Chequeos entre pasos 3 y 4:
- svn list –verbose file:/././home/francolq/comp/tesis/svn
- svn list –verbose file:/././home/francolq/comp/tesis/svn/eiffelTests
- svn list –verbose file:/././home/francolq/comp/tesis/svn/eiffelTests/build)
Resolucion de Conflictos
(http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.resolve)
Cuando aparece la letra C luego de hacer un update o un merge. Editar el archivo, solucionar el conflicto y ejecutar
svn resolved <archivo>
Reorganizo repositorio
svn mkdir -m"Hago directorio para poner los prototipos." file:///home/francolq/comp/tesis/svn/prototipos svn move -m"Muevo los prototipos a su directorio." file:///home/francolq/comp/tesis/svn/javaTests/Prototipo4 file:///home/francolq/comp/tesis/svn/prototipos
Branching
http://svnbook.red-bean.com/nightly/en/svn.branchmerge.using.html
http://zen.sh.nu/book/en/svn.branchmerge.using.html
(revision: 31) # svn copy file:/home/francolq/comp/tesis/svn/dokuwiki file:/home/francolq/comp/tesis/svn/tesiswiki -m”Creo branch tesiswiki para deajar dokuwiki para uso general. Tesiswiki va ser la wiki para este proyecto.” (Revisión: 32) # svn co file:/home/francolq/comp/tesis/svn/tesiswiki cd tesiswiki (hacer todos los find y chmod de arriba) * Caso 1: cambio algo en dokuwiki y quiero que aparezca en tesiswiki: # cd tesiswiki # svn update # svn info (sea R1 la ultima revision indicada por estos dos comandos) # svn log (sea R2 la revision del merge mas reciente por dokuwiki) # svn diff -r R2:R1 file:/home/francolq/comp/tesis/svn/dokuwiki
# svn merge --dry-run -r R2:R1 file:///home/francolq/comp/tesis/svn/dokuwiki # svn merge -r R2:R1 file:///home/francolq/comp/tesis/svn/dokuwiki (Resolver conflictos y lo que haga falta) # svn commit -m"MERGE dokuwiki rR1" (OJO poner el valor de R1)
- Caso 2: cambio algo en tesiswiki y lo quiero poner en dokuwiki:
Averiguar la revision que hace el cambio. Sea R1 ésta y R2=R1-1.
# svn merge -r R2:R1 file:///home/francolq/comp/tesis/svn/dokuwiki (Resolver conflictos y lo que haga falta) # svn commit -m"MERGE tesiswiki rR2:R1" # svn commit -m"el mensaje que se me cante"
Haciendo una release
La onda es crear un tag. Aqui hago release del informe de tesis.
(http://svnbook.red-bean.com/nightly/en/svn.branchmerge.tags.html)
- Creo el directorio para los tags porque no tenia: que cagada!
# svn mkdir file:///home/francolq/comp/tesis/svn/informe/tags/ -m"creo directorio para hacer tags del informe de tesis."
- Hago el tag propiamente dicho:
svn copy file:///home/francolq/comp/tesis/svn/informe file:///home/francolq/comp/tesis/svn/informe/tags/entrega1 -m"Primera entrega de los capitulos 1 al 4 (22mar2007 a las 10 am). Ver entrega1.tex y entrega1.dvi. Faltan 8 dias para presentar la tesis :)"
Cambiar mensaje de commit pasado
svnadmin setlog /home/svn/francolq/ log.txt -r 274 --bypass-hooks
Ofrecer repositorio SVN por red
Subversion con NetBeans
- Si no anda el protocolo svn+ssh: ver http://weimo.de/node/852.
Subversion + SSH (Nico Wolovick)
#Para el checkout inicial (del trunk!), donde USER es el username de la russell svn co svn+ssh://russell.famaf.unc.edu.ar/home/svn/sistop/trunk # para hacer el checkout del release 2004 svn co svn+ssh://russell.famaf.unc.edu.ar/home/svn/sistop/tags/release_2006 # para marcar un release svn copy svn+ssh://russell/home/svn/sistop/trunk svn+ssh://russell/home/svn/sistop/tags/release-2006 -m "tag 2006" #Setear propiedad de ignores svn propset svn:ignore '*~' Como #Para activar la keyword substitution svn propset svn:keywords "Date Revision" como-entregar.html como-informe.html como-general.html #Para exportar un dir y luego generar un tarball de distribucion svn export svn+ssh://russell.famaf.unc.edu.ar/home/svn/sistop/trunk/Lab-ksamp/broken ksamp-1.0