Subversion Quick Reference
It’s really easy, there are many version control systems. Subversion has been widely adopted, not as wide as CVS, but.
| Check out code from a remote web repository | Explaination |
|---|---|
| svn co http://svn.collab.net/repos/svn/trunk subversion | This command will check out a working copy of the subversion source code into a new subdirectory called subversion. Note, this is just an example, checking out the subversion source could take a while, so don’t do it. You would generally substitute the URL with the one you are trying to access, and change the working directory to something different. |
| svn checkout –username myuser –password …… | On the majority of the commands you can set the –username parameter and the –pasword to help automate things, instead of being prompted for them. Once you create a local working copy, your client should really cache that information, however. |
| Basic Subversion Commands | |
| svn update | Run this in your project directory to get the latest changes from the source control server. |
| svn update -r 123 | Run this in your project directory to update to the specific revision 123 |
| svn stat OR svn st | Run this in your project directory, gives you the status of all the files and directories. If it returns nothing, then you are in sync. M before a file means modified, and ? means the file is not in source control. |
| svn revert | This will revert the changes that you have made to your working copy. |
| svn diff filename.cpp | This will show the differences between filename.cpp and the working copy. This is most useful after running an svn stat and seeing that the file is modified. You can then run this command to see what the differences are. |
| svn revert filename.cpp | This will revert all changes you have made to filename.cpp back to the copy in the repository. |
| svn revert -R * | This will revert all changes you have made to the entire project back to the repository version. |
| svn -v list | This will list the files in source control for the current workspace directory |
| svn -v list http://svn.collab.net/repos/svn/trunk | This will list all files in source control at the particular subversion repository URL. Fairly useful if you want to see what the structure is before doing a checkout. |
| svn info | Gives you info about the current working copy, including the URL of the repository it points to, and the last changed date/author. |
| svn commit -m “Adding new function” filename.cpp | Commit the changes in filename.cpp, and give it a useful message. Using the messages is highly important down the road when you want to figure out what a particular change did. Make sure you use them. |
| svn commit -m “Adding lots of new functions” | Use this function without the filename to commit all changes to all files. This is useful when you have a set of changes spanning multiple files. (common) |
| svn commit -F log-filename - - username USUARIO | Commit all changes with a log prepared (about current committing changes). BE CAREFULL: subversion username and files owner must be the same. If not you can get a commit failed: (…) svn: Accces Denied |
| svn log OR svn log filename.cpp OR svn log –limit 5 http://svn.collab.net/repos/svn/trunk | Use this function to take a look at the log messages. The first one is for the entire working copy, the last one shows just the last 5 log messages on a web repository. |
| svn add newfile.cpp | Add a file or directory to version control. Note that you still have to commit to actually send the file to the source control server. You also can only use this command from within a working copy directory, meaning if you haven’t used source control on that directory you will need to import it first. |
| svn move filename.cpp newfilename.cpp | Allows you to rename or move files within source control. You can either use filenames in your local repository, or you can even pass in two URL locations to have it be moved/renamed on the server side. This command is the same as doing a copy and then a delete. |
| svn copy MySource MyNewSource | Allows you to copy a file or directory, either with local files, or on the repository using the URL syntax. |
| svn delete filename.cpp | Deletes the filename from source control. Note that the filename will still exist in older revisions, but will be deleted from the current revision. |
| svn blame filename.cpp | This is one of my favorite commands in subversion. This lists out the file, giving the revision and person who changed every single line in the file. Very useful |
| Import Code into Subversion | |
| svn import -m “Importing the files” MySource http://svn.theserver.com/mysource | Imports the directory MySource and all files contained within into the subversion server. The URL can be several levels deep or more. Note: once you import a source code directory, you should remove the directory and then checkout the directory so that you can have a proper working copy. Oh, and back up your files before you delete them. I don’t want any nasty emails about how you lost source code. |
| Commands for administrators | Explaination |
|---|---|
| svnadmin create /svnroot/RepositoryName | Creates a new repository at RepositoryName. If you are using the URL model for accessing your site, make sure that the location you create it at is accessible via your local web server. |
| svnadmin hotcopy /svnroot/reponame /backups/reponame | Makes a “Hot Copy” of the repository, which means a copy of the repository that can be instantly reusable. This method seems to work pretty well for full backups. |
| svn copy -m “Making a new branch for that new feature” http://://svn.server.com/trunk http://svn.server.com/branches/johnnysbranch | Make a branch copy of the trunk into a seperate branch. This should only be used by power users or people that know what they are doing. |
| svn copy -m “Tagging version 1.0″ http://svn.server.com/trunk http://svn.server.com/versions/version_1.0 | Tag a version of the application. This uses the same copy command that the branching does, and it’s really the same underlying operation. Copying in subversion does not actually make a new copy of the file, it just tags the current version. Once changes are made, then the changes would be stored to the file seperately. |
Original URL (I’m only archiving it): subversion-quick-reference
Etiquetas: debian, gnu, guia rapida, howto, linux, quick reference, subversionFlash 9 en Debian con Pulseaudio y Esound
Este “parche”, diseñado por Revolution LINUX, añade soporte para Esound y PulseAudio.
Con PulseAudio los vídeos en flash quedan sincronizados con el sonido. Con Esound a veces se perdía la sincronía.
Hay un paquete Debian ya preparado en http://pulseaudio.vdbonline.net/
Con la vuelta al desarrollo de adobe para LINUX con flash player 9 beta (hay paquete en Debian) y con este parche parece que el mundo GNU/Linux queda algo menos lejos de la multitud de páginas web que hoy en día siguen usando flash.
Mientras llega la solución libre gnash, se puede ir tirando.
Ya no es versión Beta, hoy hay versión final de Flash 9 para GNU/Linux.
Etiquetas: debian, gnu, Informática, linuxAnjuta DevStudio 2.1.0 (beta) ‘The Wind’
El sábado 14 Anjuta DevStudio 2.1.0 (versión beta)– The Wind fue liberado.
Anjuta es uno de los mejores y más completos entornos de desarrollo hecho en GTK/GNOME para GTK/GNOME. Para plataformas GNU/Linux.
The Breeze, The Wind until The Storm.
Instalar las librerias gdl >= 0.7.0 bajo /opt desde el CVS (o svn, recomendado tras el cambio de repositorio ) de GNOME.
ACTUALIZADO 2007-01-30 : La versión de gdl 0.7.0 y 0.7.1 están disponibles en el FTP.
ACTUALIZADO 2007-03-12 : La versión de gdl 0.7.2 está ya disponible en Debian como paquete libgdl-*. Ya no hay que hacer el export!!
user@einstein:~/src/cvs/anjuta $ export PKG_CONFIG_PATH=/opt/lib/pkgconfig:/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig
user@einstein:~/src/cvs/anjuta $ ./configure –prefix=/opt
user@einstein:~/src/cvs/anjuta $ make
user@einstein:~/src/cvs/anjuta $ su
root@einstein:~/src/cvs/anjuta $ make install
Instalar g\nome-build >= 0.1.4 bajo /opt desde el FTP de GNOME
En Debian el paquete se llama libgbf-* y van por la versión 0.1.3
ACTUALIZADO 2007-03-12 : La versión actual es la 0.1.5
user@einstein:~/src/cvs/gnome-build $ ./configure –prefix=/opt
user@einstein:~/src/cvs/gnome-build $ make
user@einstein:~/src/cvs/gnome-build $ su
root@einstein:~/src/cvs/gnome-build $ make install
Referencias:
- pkgconfig
- Descargar Anjuta 2.1.1
Anjuta DevStudio 2.1.0 (beta)– The Wind — released!- Anjuta DevStudio 2.1.1 (beta) — The Wind — released!
GNOME-buildLibrerias gdl 0.7.0 y 0.7.1 en el FTP
Extra: Para hacer pinitos con gentoo
Etiquetas: Anjuta, Anjuta 2.1, anjuta beta, Anjuta debian, debian, gnu, Informática, linuxVaciar la cache de miniaturas (thumbnails) de nautilus
El navegador de ficheros nautilus muestra miniaturas de imágenes, vídeos, archivos PDF, etc mientras navegas por los directorios.
Nautilus guarda una copia de esas miniaturas para acelerar posteriores accesos a esos directorios con los contenidos ya mencionados. Esas miniaturas se guardan en el directorio ~/.thumbnails .
Todo eso se supone que ya lo sabías.
Con el tiempo, las miniaturas se acumulan. A pesar de que borres un fichero, su miniatura asociada permanece. Hacer una limpieza de estas miniaturas puede recuperar bastantes megas de disco duro ocupados. Se pueden recuperar desde varios megas hasta cientos.
Para realizar estas tareas de limpieza se puede usar el comando find de una forma ciertamente avanzada.
En concreto, con los atributos que se ejecuta en la siguiente línea, se pueden borrar las miniaturas que no hayan sido visualizadas los últimos X días.
El riesgo de ejecutar este comando es nulo, puesto que si borramos alguna miniatura que no deberíamos nautilus se encargaría de volver a crearla de nuevo la próxima vez que accediésemos al fichero.
$ find ~/.thumbnails -type f -atime +7 -exec rm {} \\;
Se puede poner el código anterior en una tarea de cron, por ejemplo.
También hay quien prefiere tener un alias para BASH.
alias limpiarminiauras='find ~/.thumbnails -type f -atime +7
-exec rm {} \\;
(limpiarminiaturas es un nombre tomado como ejemplo)
Así bastará con teclear limpiarminiauras en el terminal con BASH.
Para hacer un alias permanente hay que editar .bashrc y .bash_aliases.
Primero crear .bash_aliases, si no lo tienes ya creado. Añade los alias dentro del fichero, recordemos que uno por línea.
Posteriormente edita el .bashrc y busca las siguientes líneas:
#if [ -f ~/.bash_aliases ]; then
# . ~/.bash_aliases
#fi
las almohadillas son comentarios (#), si están comentadas esas líneas descoméntalas.
Para que los cambios surjan efecto habrás de reiniciar BASH.
Referencias y enlaces:
Etiquetas: debian, gnu, Informática, linuxEl por qué del fuera de servicio de la página.
El gráfico representa la carga de mi servidor (en el que tengo albergada la página).
Como se puede concluir al ver el gráfico, desde el jueves hasta el lunes Iberdrola me ha tenido sin conexión a la Internet. La carga es mínima porque el servidor se toca las pelotillas. Los valores el martes son muy altos porque con el parón actualicé alguna cosilla de PHP y me dejé sin funcionar el eaccelerator.
Luego, entre el lunes y el martes la culpa ha sido mía. Extrañamente no llegaban peticiones a la página por culpa de algún cabo suelto con el cortafuegos.
El jueves se fue la luz, durante al menos una hora y seguramente que la avería, que llegó poco después de recuperar la electricidad, estuviera relacionada con el corte de conexión.
Me hubiera gustado que me diesen una explicación de lo ocurrido. A todos nos gusta saber y estar informados.
Aunque, lo que me molesta, es que sé que el fin de semana no ha trabajado nadie en la reparación y a mí Iberdrola me cobra lo mismo por todos los días del mes. Pero que se le va a hacer, no todo es perfecto, mientras no se repita…
COMO hize funcionar mi impresora HP PSC 1410 All-in-one
Sencillo de realizar.
Bueno de exponer lo que cada uno a aprendido para facilitar el trabajo de otros.
Para poder imprimir y escanear en Ubuntu usando la impresora multifunción HP PSC 1410.
Todo lo que este a continuación de $ debe ser escrito en un terminal/shell .
- Yo necesite tener la impresora encendida antes de arrancar Ubuntu.
- Instalar los paquetes hpoj, hpijs y xsane:
$ sudo aptitude install hpoj hpijs xsane
- Configurar el escáner:
$ sudo ptal-init setup (seguir los pasos de la configuración)
- Arrancar ptal-init:
$ sudo ptal-init start
- Configurar impresora:
$ gnome-cups-manager
(Pinchar en nueva impresora y seguir los pasos para activarla). - Ahora solo queda probarlo todo.
Podemos abrir openoffice e imprimir un documento cualquiera. Para el escáner abrimos xsane y ya podremos escanear nuestra maravillosa mano. Por fin, toda la vida queriendo el escáner para algo útil y lo teníamos tan cerca (también se puede usar la mano de otra persona).
Hay otra aplicación llamada hplip que mejora a hpoj pero cuando lo instalé yo no soportaba la el modelo de HP PSC 1410.
Etiquetas: debian, gnu, Informática, linuxSubversion Server. Howto
Here you can find how to prepare a subversion repository and its integration with Apache 2.
You need apache with webDAV to access repository content using HTTP or HTTPS protocol. If you prefer not to use apache, then you should use svnserve (prefered in daemon mode). This will mean using svn protocol.
Be careful with firewalls (see ahead).
And, of course, always better with Debian.
Subversion for repository administrators (using Apache 2)
In order to create a repository you need to follow these steps (do it in a root shell).
Install the needed packages:
- apache2
- subversion
- libapache2-svn
Add next rules to your host in Apache 2. In Debian a mostly equal config (that you should modify) exists under /etc/apache2/mods-available/dav_svn.conf
Configuration sniplet:
< Location /svn>
# Uncomment this to enable the repository,
DAV svn
# Set this to the path to your repository
# SVNPath /var/lib/svn
# SVNParentPath /var/lib/svn/repository
SVNPath /var/lib/svn/repository
# The following allows for basic HTTP authentication. Basic authentication
# should not be considered secure for any particularly rigorous definition of
# secure.
# to create a passwd file
# # rm -f /etc/apache2/dav_svn.passwd
# # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
# New password:
# Re-type new password:
# Adding password for user dwhedon
# #
# http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html
# configuration for mixed authenticated/anonymous access
Satisfy Any
Require valid-user
# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
# Uncomment the following line to enable Authz Authentication
# AuthzSVNAccessFile /etc/apache2/dav_svn.authz
# The following three lines allow anonymous read, but make
# committers authenticate themselves.
< LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
< /LimitExcept>
(Important: Don’t use a DocumentRoot setting for this virtual host!”)
Restart apache with or reload apache configuration without finishing open connections with (prefered)
root@maquine:~ $ /etc/init.d/apache2 reload
or
root@maquine:~ $ apache2ctl graceful (prefered)
Create the repository and create a password file:
root@maquine:~ $ svnadmin create /var/lib/svn/repository
root@maquine:~ $ htpasswd2 -c /etc/subversion/passwd [username]
root@maquine:~ $ chown -R www-data:www-data /home/svn
Don’t forget to make the repository accessible for your web server:
To test it, try accessing it with a browser or try to check out the file:
user@maquine:~ $ lynx http://localhost/svn
user@maquine:~ $ svn co http://server/svn
(You will not be prompted for credentials. That’s normal.)
Worked?
Voila. The repository is set up.
You can check a ready setup in http://www.eldemonionegro.com/svn/.
Subversion for repository administrators (using subversion protocol)
You just need to put on work svn server.
user@maquine:~ $ ls -la /var/lib/svn/
total 1
drwxr-xr-x 4 root www-data 96 2005-06-06 00:45 .
drwxr-xr-x 56 root root 1480 2005-06-03 17:00 ..
drwxr-x— 7 root www-data 224 2003-02-20 00:37 project1
drwxr-x— 7 root www-data 224 2004-11-15 21:23 project2
user@maquine:~ $ svnserve -d -T -r REPOSITORY_DIR (Example 1: /var/lib/svn/project1/ - Example 2: /var/lib/svn/)
(-d: daemon, -T: spawn a thread instead of a process for each connection, -r root: root repository)
Try to check out the file:
user@maquine:~ $ svn co REPOSITORY_URL (Example 1: svn://server/ - Example 2: svn://server/project1/)
Worked?
Voila. The repository is set up.
Subversion for repository users
To checkout (=download) the files in the repository for the very first time run this command::
user@maquine:~ $ svn co http://server/svn
Don’t worry about other people working on the same files. Just do your changes to the files and when you seem to have a stable state (make sure everything works well enough so not everything will break for others) you should check in(=upload) your work:
user@maquine:~ $ svn ci
(Only when committing your changes you will be prompted for your username and password.)
Run the following command regularly to get the changes from other contributors::
user@maquine:~ $ svn update
If you want to add new files to the repository::
user@maquine:~ $ svn add [filename]
To get a status of which files have changed::
user@maquine:~ $ svn stat
Subversion for local repositories
This type of installation is used when you want subversion to track your local files but don’t want/need to put it on a host. You can create a local repository and access it directly. This repository is not password protected and it’s permissions depend on the filesystem’s permissions.
Install the needed packages (as root or with sudo) and create the repository (with your user):
root@maquine:~ $ apt-get install subversion
root@maquine:~ $ svnadmin create /home/joe/repositorie
The URL to your repository is it’s path preceeded with file://. For example to checkout you would do the following:
user@maquine:~ $ svn co file:///home/joe/repositorie
Subversion firewall rules
In order to acces your subversion repository using svn protocol you should reconfigure your firewall or update daemon config.
If you need to access subversion remotely, by default it runs on port 3690 using TCP.
Resources and comments
- Subversion’s Official Homepage
- Online free book: Version Control with Subversion
- http://workaround.org/moin/SubVersion
Original Authors: Christoph Haas, Tiago Cogumbreiro
Modified by: Enrique Garcia
Viewvc (previously viewcvs)
Right now viewcvs is the old version which is available under Debian. I recomend to install the latest viewvc from official website until package gets updated.
For more about it’s history, look up in http://www.viewvc.org/who.html
Instalation is really simple, it’s only complexity resides in the apache 2 configuration. Which is not really well documented and can cause some headache.
Installation
Download here latest stable version from viewvc
I will install everything under /opt because it’s my favourite place (and because it’s standar (LSB rules I think) to put extrange things there).
user@machine:~$ cd /opt
user@machine:~$ wget http://viewvc.tigris.org/files/documents/3330/34803/viewvc-1.0.3.tar.gz
user@machine:~$ tar -xvzf viewvc-1.0.3.tar.gz
user@machine:~$ cd viewvc-1.0.3
user@machine:~$ ./viewvc-install
[will be prompted some easy questions] Answer first /opt and then leave it as it is.
Take a look at INSTALL and README. It’s always good to read this stuff, and doesn’t hurt.
user@machine:~$ emacs /opt/viewvc/viewvc.conf
[main changes I made]
user@machine:~$ diff viewvc.conf ../viewvc-1.0.3/viewvc.conf.dist
72c72
< #cvs_roots = cvs: /home/cvsroot
---
> cvs_roots = cvs: /home/cvsroot
80c80
< svn_roots = svn: /var/lib/svn/repository
---
> #svn_roots = svn: /home/svnrepos
105c105
< default_root = svn
---
> default_root = CVS
138c138
< mime_types_file = /etc/mime.types
---
> #mime_types_file = /usr/local/apache/conf/mime.types
142c142
< address = < a href="mailto:svn-admin@XXX.XXX">Administrador del repositorio Subversion< / a>
—
> address = < a href="mailto:cvs-admin@insert.your.domain.here">No admin address has been configured< / a>
248c248
< languages = es-es, en-us
---
> languages = en-us
391c391
< docroot = /viewvc-doc
--- (LOOK APACHE 2 CONFIG TO EXPLAIN THIS CHANGE)
> #docroot = /docroot
435c435
< use_enscript = 1
---
> use_enscript = 0
445c445
< use_highlight = 1
---
> use_highlight = 0
459c459
< use_php = 1
---
> use_php = 0
473c473
< allow_tar = 1
---
> allow_tar = 0
For coloured syntax I installed next packages. But I am not really sure they are needed.
user@machine:~$ apt-get install highlight enscript
Apache 2 configuration
Here I put my apache 2 configuration for viewvc. I’ve two versions, both of them work. Again I recomend take a take a look at INSTALL and README for answers. One is the version for CGI and the other for mod_python. I’m using mod_python because it’s known to be faster.
CGI
< IfModule !mod_python.c>
< IfModule cgi.c>
# para la instalacion local
ScriptAlias /viewvc /opt/viewvc/bin/cgi/viewvc.cgi
# para el paquete debian
# ScriptAlias /viewsvn /usr/lib/cgi-bin/viewcvs.cgi
< /IfModule>
< /IfModule>
mod_python
< IfModule mod_python.c>
Alias /viewvc-doc “/opt/viewvc/templates/docroot”
ScriptAlias /viewvc /opt/viewvc/bin/mod_python/viewvc.py
< Location /viewvc>
AddHandler python-program .py
# This appends “our path” to python path
PythonPath “['/opt/viewvc/bin/mod_python'] + sys.path”
PythonHandler handler
PythonDebug On
< /Location>
< /IfModule>
Look the result at http://www.eldemonionegro.com/viewvc/
Resources and comments
- viewvc official homepage
- Any comments will be welcome.
Estos son los resultados para ...

Últimos comentarios