Subir un directorio recursivamente por FTP por línea de comandos

Porque de seguro que alguna vez te tocará un cliente imposible de convencer de las bondades de git o bzr, de que te entregue un acceso SSH o cualquier forma medianamente moderna de poder subir tu sitio a su servidor, nunca está de más saber algunas técnicas de la antigüedad.

Si intentas subir un montón de archivos por FTP, la opción más básica es con el comando mput *, que no sólo no opera de forma recursiva (!) sino que además, de modo predeterminado, te solicita confirmar la subida de cada archivo (!!)

Por suerte, hay una herramienta un poco más inteligente de hacerlo, con un cliente de FTP llamado ncftp, que está en los repositorios de Ubuntu con ese mismo nombre y está disponible también para otros linuxes (obviamente), OSX y Windows.

La conexión al servidor es un poco distinta a la forma de hacerlo con FTP; debes indicar lo siguiente: ncftp -u <usuario> -p <password> ftp.servidor.com

Una vez conectado al servidor, puedes subir todos los archivos, recursivamente y sin confirmación con mput -r *

Recuperar revisiones perdidas en Bazaar

Como saben los regulares de este blog, hace bastante tiempo me he rendido ante Bazaar, el sistema de control de versiones distribuido creado por Canonical y parte del proyecto GNU; más poderoso que SVN, más simple que git… en fin.

Una secuencia de acciones me llevó a una situación terrible: por un momento pensé que había perdido un conjunto de cambios del historial. La condiciones fueron más o menos las siguientes:

  1. Estaba trabajando en una copia local sobre la cual no sabía que estaba bindeada a un repositorio remoto (o sea, un checkout)
  2. Hice commit de un conjunto de cambios (que se grabaron con número de revisión 5)
  3. Ejecuté un bzr bind, con lo se aplicaron una serie de cambios que estaban en el repositorio remoto
  4. La versión del repositorio local bajó a 4… ¡los cambios realizados en la 5ª versión no estaban en ninguna parte!

En resumen, lo que había ocurrido era que había cambiado de línea temporal (al mejor estilo Fringe). Transformar nuevamente la copia en una rama no solucionaba nada, sin embargo suponía que esa revisión debía existir en el repositorio…. ¿cómo restituirla?

Continue reading “Recuperar revisiones perdidas en Bazaar”