La guía de diez minutos de diff y el parche Situación uno: usted está tratando de compilar un paquete de origen y descubre que alguien ya ha hecho el trabajo para usted de modificarlo ligeramente para compilar en su sistema. Han hecho su trabajo disponible como un parche, pero no estás seguro de cómo hacer uso de ella. La respuesta es que se aplica el parche al código fuente original con una herramienta de línea de comandos denominada, apropiadamente, parche. Situación dos: ha descargado el código fuente a un paquete de código abierto y después de una hora o menos de ediciones menores, logra compilarlo en su sistema. Desea poner su trabajo a disposición de otros programadores, o de los autores del paquete, sin redistribuir todo el paquete modificado. Ahora estás en una situación en la que necesitas crear un parche propio, y la herramienta que necesitas es diff. Esta es una guía rápida de diff y parche que le ayudará en estas situaciones describiendo las herramientas como son más comúnmente utilizados. Te dice lo suficiente para empezar de inmediato. Más tarde, puede aprender los entresijos de diff y parche en su tiempo libre, utilizando las páginas de manual. Aplicación de parches con parche Para aplicar un parche a un solo archivo, cambie al directorio donde se encuentra el archivo y el parche de llamada: Estas instrucciones suponen que el parche se distribuye en formato unificado, que identifica el archivo al que se debe aplicar el parche. Si no, puede especificar el archivo en la línea de comandos: La aplicación de parches a directorios completos (quizás el caso más común) es similar, pero hay que tener cuidado al establecer un nivel p. Lo que esto significa es que, dentro de los archivos de parches, los archivos que se van a parchear están identificados por nombres de ruta que pueden ser diferentes ahora que los archivos se encuentran en su computadora en lugar de en el equipo donde se creó el parche. El nivel p indica al parche que ignore partes del nombre de la ruta de acceso para que pueda identificar los archivos correctamente. La mayoría de las veces un nivel p de uno funcionará, por lo que se utiliza: Debería cambiar al directorio de origen de nivel superior antes de ejecutar este comando. Si un nivel de parche de uno no identifica correctamente ningún archivo a parche, inspeccione el archivo de revisión para ver los nombres de archivo. Si ves un nombre como y estás trabajando en un directorio que contiene net / http. c, usa En general, cuenta uno para cada separador de ruta (carácter de barra) que quites desde el principio de la ruta, hasta que quede lo que queda Una ruta que existe en su directorio de trabajo. El conteo que alcanzas es el nivel p. Para eliminar un parche, utilice el indicador - R, es decir, creando parches con diff. El uso de diff es sencillo si está trabajando con archivos individuales o directorios de origen completos. Para crear un parche para un solo archivo, utilice el formulario: Para crear un parche para un árbol de origen completo, haga una copia del árbol: Realice los cambios necesarios en el directorio nuevo /. A continuación, cree un parche con el siguiente comando: Eso es todo lo que necesita para empezar con diff y parche. Para más información utilice: Traducciones Este artículo ha sido traducido y reeditado en los siguientes idiomas: Comentario sobre este artículo y su tema Copyright copy 2006-2008 Stephen Jungels. Se requiere permiso por escrito para volver a publicar o reimprimir este artículo Última modificación: Mon Oct 26 10:31:23 CDT 2009Ok este post se marcó en meta para las respuestas dadas, así que voy a pesar en esto. Xdelta es un programa de diferencia binaria que, en lugar de proporcionarle una imagen completa, sólo le da lo que ha cambiado y dónde. Un ejemplo de un diff de texto tendrá - y - indica antes de líneas de texto que le muestra que estos han sido agregados o eliminados en la nueva versión. Hay dos maneras de actualizar una imagen binaria: reemplazarla usando su propio programa o reemplazarla usando alguna forma de administración de paquetes. Por ejemplo, los sistemas Linux utilizan rpm etc para enviar actualizaciones a los paquetes. En un entorno de Windows sus opciones están limitadas por lo que está instalado si no está en una red corporativa. Si lo es, pruebe el empaquetado de WSUS y MSI. Thatll le dará una vida más fácil, o ClickOnce como alguien ha mencionado. Si no estás sin embargo, deberás tener en cuenta lo siguiente: Necesitas ser un administrador para actualizar algo en ciertas carpetas como otros han dicho. Le animo encarecidamente a aceptar este comportamiento. Si el usuario es un administrador, puede ofrecer para comprobar si hay actualizaciones. Entonces, usted puede hacer una de dos cosas. Puede descargar una versión completamente nueva de su aplicación y escribirla sobre la imagen en el disco duro (es decir, el archivo - recuerde que las imágenes se cargan en la memoria para que pueda volver a escribir su propio archivo de programa). A continuación, debe decirle al usuario que la actualización ha tenido éxito y volver a cargar el programa como la nueva imagen será diferente. O, puede aplicar un diff si el ancho de banda es una preocupación. Probablemente no en su caso, pero usted tendrá que saber a partir del programa cliente las dos versiones a diferencia entre para que el servidor de actualización le da el parche correcto. De lo contrario, el diff podría no tener éxito. No creo que para sus propósitos xdelta va a darle mucho ganar de todos modos. Simplemente reemplace la imagen completa. Editar si no se debe preguntar al usuario, simplemente vuelva a cargar la aplicación. Sin embargo, le recomiendo encarecidamente informar al usuario que está hablando en su red y pedir permiso para hacerlo / activar un modo de actualización manual, de lo contrario personas como yo lo bloqueará. ¿Qué tipo de aplicación es esta. Tal vez podría utilizar clickonce para implementar su aplicación. Clickonce muy fácilmente le permite enviar actualizaciones a sus usuarios. Clickonce crea una instalación que permite a sus usuarios instalar la aplicación desde un servidor web o un recurso compartido de archivos, habilitar actualizaciones automáticas y cada vez que coloca una nueva versión de la aplicación en el servidor, la aplicación automáticamente (o Pregunte al usuario si desea) actualizar la aplicación. El marco clickonce se encarga del resto: busca la actualización. Averiguar qué archivos han cambiado y necesitan ser descargados de nuevo y realiza la actualización. También puede comprobar / realizar la actualización mediante programación. Dicho esto, clickonce te deja con poco control sobre el procedimiento de instalación real, y no tienes nada cerca de la libertad de construir tu propia. msi. Respondió Apr 10 10 at 21:19 Dependiendo del tamaño de su aplicación, youd probablemente lo han dividido en varios dlls, un exe, y otros archivos. Lo que usted podría hacer es tener la comprobación principal del programa para las actualizaciones. Si las actualizaciones están disponibles, el programa principal se cerrará y el programa de actualización se haría cargo: actualizar los archivos antiguos, crear nuevos y eliminar los archivos actuales según las instrucciones enviadas junto con un archivo de parches (probablemente un formato comprimido como. zip ) Descargado por el actualizador. Si su aplicación es pequeña (por ejemplo, un único exe) sería suficiente para que el actualizador sustituya ese exe. Otra forma de hacerlo sería (al compilar el nuevo exe), comparar el nuevo con el antiguo, y simplemente enviar las diferencias al actualizador. Entonces haría los ajustes apropiados. Respondió Apr 10 10 at 21:24 Cam 8,433 9679 10 9679 49 9679 102 Puede hacer que su función residan en una DLL por separado. Así que sólo puede reemplazar la DLL en lugar de parchear todo el programa. (Suponiendo que Windows como la plataforma de destino para un programa de C.) Mi punto fue principalmente para aprender cómo patching funciona para usos futuros ndash UserDrink Pitell Granite En Pitell Granite, se espera que su proyecto sea nuestra prioridad número uno. Habiendo estado en el negocio por 50 años, hemos ganado una reputación como un fabricante confiable del granito e instalador en la región de Pittsburgh y de Pennsylvania occidental. Cuando se trata de otras empresas de granito en la zona, nadie puede simplificar el proceso y producir resultados de calidad como Pitell granito. Servicios de instalación Materiales de encimera CONTACTO 2016 Pitell Granite, Inc. Todos los derechos reservados. Buscar
No comments:
Post a Comment