El sistema de control de versiones de Dropbox

Que Dropbox es una maravilla y que me encanta no es nada nuevo. Es sorprendente que te den, gratis, hasta 8 GB sincronizados en la nube y poder acceder a ellos desde Windows, Mac, Linux, tu iPad o tu iPhone. Se ha convertido en una de mis herramientas básicas, de esas que instalas en una máquina nueva en cuanto te la dan.

Y una de las características de Dropbox mejores, pero de las que extrañamente menos se habla, es su sistema de control de versiones integrado y automático. Si eres programador, estarás habituado a usar un SCM, bien sea CVS, svn, git o Mercurial. Si no, voy a explicar con un ejemplo lo que supone tener ese sistema en Dropbox.

Supongamos que necesitas dibujar un nuevo icono para esa aplicación de iPhone que ya estás terminando. Abres tu programa de retoque fotográfico y dibujo favorito (en mi caso Pixelmator) y creas el nuevo icono en una carpeta de tu Dropbox. Inmediatamente ves que en el icono de tu Dropbox se activa la sincronización: Dropbox está subiendo esa primera versión de tu archivo (vacío y sin nada dibujado aún) a sus servidores. Dibujas, retocas y cambias cosas durante una hora, sin pulsar la combinación de teclas de grabar. Eso, desde luego, es una invitación al desastre: no lo hagas. Seguro que cuando tengas el icono, o el documento, o lo que sea en lo que estás trabajando se te cuelga el programa y no te deja grabar. Así que graba más a menudo. Bueno, pues al grabar antes de irte a por tu merecido café, Dropbox sube la versión tal y como está ahora: casi perfecta. Hay dos versiones de tu icono entonces, la primera que creaste y que está vacía, y esta segunda casi terminada de antes del café.

Tras el descanso y de discutir con tus compañeros (es increíble que la gente piense que Java es mejor que Objective C!), vuelves un poco enfadado y te pones a experimentar con un nuevo filtro que se carga tu icono, y “sin querer”, grabas el icono. ¡Desastre!. En otro caso habrías perdido una mañana de trabajo. Pero ahora, Dropbox al rescate. Cierras tu programa de dibujo, para no liarla más, navegas hasta el fichero y pulsas con el botón derecho del ratón. Dentro del menú contextual de Dropbox, te encuentras con un pequeño menú como este:


Pulsando sobre la segunda opción (View Previous Versions) podremos consultar nuestro histórico de versiones para ese fichero, en la web de Dropbox. Y lo mejor, podemos convertir en la versión última (la que veremos en nuestra carpeta de Dropbox) cualquiera de esas. Así que nuestro sufrimiento se soluciona simplemente marcando la versión que grabamos antes del café y pulsando Restore. ¡Ya está!. Volvemos a tener la versión casi buena y podemos volver a estropearla las veces que sea necesario: siempre tendremos a Dropbox que vendrá pacientemente a nuestro rescate.

8 comments

  1. Pues sí, es una *gran* ayuda. Y más en redes heterogéneas en las que algún ordenador, cuyo sistema operativo no quiero mentar, se infecta con vete-tu-a-saber qué virus y se cepilla directorios de datos al azar. Simplemente te vas al dashboard de Dropbox, ves los últimos cambios que se han hecho y los deshaces (por no hablar de que tienes los datos replicados y a salvo en N equipos de tu misma red)

    ¿Java vs Objective C? cielos, ¿en qué clase de flamewars participas…? 😛

    • ¿Virus que borran carpetas? ¿De verdad existe eso? Me está entrando miedo de verdad. Menos mal que mis máquinas principales son UNIX por algún lado: iOS, Mac OS X, Linux… Sólo mantengo mi viejo portátil PC con Win 7 para jugar.
      El detalle de la copia distribuída de los ficheros de Dropbox es muy importante. Si pierdes tu portátil del trabajo en la estación, no lo pierdes todo…

      ¿Flamewars yo? Nooo! Yo le doy a todo por lo que me paguen. Cocoa, Java y lo que tengamos que hacer. Las Religiones no se inventaron para decidir temas técnicos ¿no?

    • Mi reflexion es que si no eres como usuario no eres capaz de evitar que un “virus” te “cepille” directorios.. la solucion no es no usar windows, es que sencillamente en cuestiones de seguridad haces agua. No quisiera toparme con tu codigo.

  2. ¿Se pueden programar páginas web en Objetive-C?. No quiero iniciar un conflicto, es sólo curiosidad. De todas formas yo apuesto por Java porque me dá de comer, pero está claro que para aplicaciones que necesiten sacar jugo al hardware sobre el que corre es mejor alguna variante de C.

    Por cierto, que maravilla todo lo que ocurre en la nube. Nunca antes estar en las nubes estaba tan bien visto.

    • Pues la verdad es que no lo se, como tantas cosas 🙂

      Muy bueno el apunte de que “estar en la nube” está ahora bien visto. Parece que todo debe ser nuboso y 2.0 últimamente. Hartazgo 2.0 🙂

  3. Yo no creo que el tema sea si se puede o no hacer tal o cual cosa con un lenguaje determinado. Está claro que sí. Incluso podrías escribir un clon de Facebook en Brainfuck, ya que es Turing completo (cielos, espero que nadie se embarque en ello)
    La cuestión es simplemente que sea el que te resulte más cómo para ello 🙂

    Ya puestos a hablar de lenguajes, para las labores web y los pequeños scripts de mantenimiento personalmente tiro más por Python por la inmediatez que me da, aunque conozco gente que no podrá despegarse nunca de Perl o de los CGIs con C o Pascal.
    En cuanto a iPhone, mi lenguaje ideal es C# (Monotouch), pero está claro que el combo lenguaje-bibliotecas que escoge el fabricante siempre tendrá más punch 😀

    Ahora mismo estoy explorando las aplicaciones multiplataforma (iPhone+Android) escritas en Javascript y os puedo decir que el resultado es bastante satisfactorio 😉

  4. Pingback: Gestionando Revisiones en Proyectos BI

Comments are closed.