CONTROL DE VERSIONES CON MERCURIAL


Mercurial es una herramienta que nos permite hacer un control de versiones de nuestros proyectos informáticos como documentación, aplicaciones desktop, sistemas web, aplicaciones móviles, etc.

Esta herramienta permite crear un lugar de almacenamiento donde estarán alojadas los proyectos y las subversiones de estos, es así que cada vez que nosotros modifiquemos algo en nuestro proyecto la versión anterior quedara almacenada y así no tendremos problemas si queremos recuperar algo.Para lograr esto debemos descargar e instalar el Mercurial para Windows, lo encontramos aqui.



Para empezar primero creamos una carpeta, en mi caso lo he creado en el Disco  Local C, con el nombre “repositorio”, es aquí donde se almacenaran todas las versiones del proyecto a desarrollar.




Luego usamos el comando init para inicializar  nuestro controlador de versiones e indicar la carpeta donde se alojara el repositorio.




Ahora agregamos un archivo al repositorio con el comando add  para que Mercurial rastrée los cambios en el archivo, en este caso trabajaremos con  “archivo1.txt”.




Podemos ver el estado con el comando status.   

 * M   : El archivo contiene modificaciones que no se han registrado en el repositorio   

 * A    : El archivo está marcado para ser añadido al repositorio en el siguiente envío de  cambios o “commit”  

  * ?    : El archivo no está siendo seguido por Mercurial. 





En nuestro caso se muestra  A, que indica que el archivo esta listo para su seguimiento.


Ahora hacemos commit  a los archivos, para ello nos creamos una carpeta dentro del repositorio a la cual lo llamaremos “archivos”



Usando el comando log  se puede ver una lista de los conjuntos de cambios que se han ido haciendo a lo largo de la historia de un proyecto. 

En nuestro caso hay tres cambios o actualizaciones que se hicieron:

0:7c3dda…  

1:9d1c9e… 

2:1117f3a… 


Podemos actualizar con el comando update las revisiones a cualquiera de las tres anteriores que se muestran.



Podemos ver las diferencias las entre dos revisiones con el comando diff


Podemos sacar copia o clonar los repositorios con el comando clone, en este caso clonaremos la carpeta “repositorio” a otra que la llamaremos “repositorio-copia”


Ahora trasladaremos información entre repositorios, esto se puede hacer de dos maneras. Ah pero antes no olvidemos hacer commit para realizar cambios, sino el push o el pull no lo encontraran. 


La primera es con el comando push: lo que hace es llevar a un repositorio remoto los de cambios del repositorio actual que no se encuentren en él.


La segunda es el comando pull que hace lo contrario al push, que es traer de un repositorio remoto los cambios al repositorio actual


Cuando integramos los cambios de distintos repositorios mediante push o pull , es probable que se produzcan desarrollos paralelos que den lugar a distintas ramas de desarrollo en el proyecto.


Bueno para localizar las distintas cabezas existentes en el repositorio usamos el comando heads.


Digamos queremos unir o mezclar  estos dos heads entre el 3 y 4, entonces usamos el comando merge.


Seguidamente hacemos un commit de mezcla


Tras la mezcla solamente nos queda una cabeza, el 5 el cual vemos con un hg heads



Bueno eso seria algo basico de Mercurial y las funciones que realiza, estén al tanto de otros manuales que pronto se subirán.




CRUCERO DE GUERRA TUMBADO POR UN CERO


Buque de guerra, el USS Yorktown (CG-48). Puesto en funcionamiento a principio de los 80, contaba con todo tipo de misiles, torpedos y otras armas de la época; circuló por el mar negro y las costas de Libia en diferentes misiones.


Al parecer en 1997, estando de maniobras, un técnico introdujo un número cero en una base de datos de los sistemas del buque, lo que provocó un error en cadena en otros sistemas de la red informática que gobernaba la nave, que eran 27 Pentiums Pro y un servidor, todos corriendo Windows NT 4.0.


 Esto hizo que se inutilizara completamente el sistema de propulsión de 80.000 CV, que se detuvo sin arrancar de nuevo. El Yorktown quedó a la deriva durante casi tres horas, lo que tardaron en anular los sistemas informáticos y conectar controles de emergencia para poder llevarlo a puerto. 


Allí los ingenieros pasaron dos días hasta dar con el problema, reparando los motores y volviendo a dejar todo como estaba originalmente.Tras la investigación del incidente se concluyó que aquel «cero» había causado un" error de división por cero", uno de los más tradicionales errores lógicos en informática, que el gestor de base de datos no había podido digerir, provocando a su vez una cascada de fallos que inutilizaron el control del sistema de propulsión.





MARS CLIMATE ORBITER, DESAPARICION EN MARTE


El 23 de septiembre de 1999 la sonda MARS CLIMATE ORBITE de los EE.UU. desapareció después de haber realizado unas correcciones en la trayectoria que tenía esta. La desaparición fue confirmada después de haber perdido contacto con la sonda al haberse puesto detrás del planeta Marte cumpliendo con una nueva órbita.

En  Busca de Respuestas

El anuncio fue publicado horas después del incidente por el laboratorio de propulsión a chorro desde Pasadena (California). Centrándose en que el accidente se debió a una inestabilidad en el cálculo de órbita, ya que se tenía estimado sobrevolar Marte a 150KM, mientras que la sonda se encontraba a los 60KM, esto era una gran diferencia lo cual provocó la destrucción y pérdida de la sonda MARS CLIMATE ORBITE.

Un Error Inverosímil

Después de cierta investigación realizada se denomina que el error no pudo ser por parte del personal de control de órbitas porque con tantos años de la experiencia en la NASA sería casi imposible que haya pasado una falla como esta sin ser detectado por algún sistema.
Por tal motivo el incidente se refiere a un error muy lamentable por parte del sistema de control programado. Se apunta que la perdida de la nave fue por la variación en la órbita de la misma siendo la diferencia de 90 KM. Ahora ¿Por qué sucede esto? Se dice que la falla fue en el tipo de conversiones del sistema de navegación de millas inglesas a kilómetros. Por lo tanto si fue un lamentable error humano.