¿Cómo hacer y aplicar el parche SVN?
Me gustaría crear un archivo de parche de tipo SVN para httpd.conf
para poder aplicarlo fácilmente a otros hosts.
Si lo hago
cd /root
diff -Naur /etc/httpd/conf/httpd.conf_original /etc/httpd/conf/httpd.conf > httpd.patch
cp /etc/httpd/conf/httpd.conf_original /etc/httpd/conf/httpd.conf
patch < httpd.patch
Obtengo:
can't find file to patch at input line 3
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|--- /etc/httpd/conf/httpd.conf_original 2012-04-26 13:36:08.331068438 +0200
|+++ /etc/httpd/conf/httpd.conf 2012-04-26 14:27:36.857075085 +0200
--------------------------
File to patch:
Pregunta
¿Qué estoy haciendo mal?
3 answers
De forma predeterminada, patch
ignora la porción de directorio del nombre de archivo de destino; solo está buscando "httpd.conf " en su directorio de trabajo actual. Si quieres que use la ruta completa, tienes que pedirle explícitamente que lo haga con la opción -p
:
patch -p0 < httpd.patch
(El número después de -p
le dice cuántos niveles eliminar de la ruta del nombre de archivo; -p N
elimina todo hasta e incluyendo el número de barra inclinada N. La primera barra inclinada es el número 1, por lo que -p0
significa " no nada".)
En general, podría ser mejor no confiar en tener la ruta completa en el archivo de parche; el parche será más útil en general si funciona incluso para archivos en un diseño de directorio diferente. Siempre puede cd en el directorio que contiene el archivo antes de ejecutar el parche (y utilizar una ruta completa para encontrar el archivo de parche en sí, si es necesario, en su lugar).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-28 16:33:08
Uso svn patch
.
Caso 1: usando /usr/bin/patch
:
svn diff > $TMPDIR/mypatchfile.patch
cd myOtherCheckOut
patch -p0 < $TMPDIR/mypatchfile.patch
Aplica bien sus cambios si no hay archivos agregados/eliminados a través de svn add
o svn delete
Caso 2: usando svn patch
:
svn diff > $TMPDIR/mypatchfile.patch
cd myOtherCheckOut
svn patch $TMPDIR/mypatchfile.patch
Rastrea los archivos agregados y eliminados también.
Tenga en cuenta que ni las pistas svn move
s y rename
s
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-16 14:11:53
Si está utilizando TortoiseSVN, hay una interfaz fácil de usar para crear y aplicar un parche.
Para crear:
Haga clic derecho en la carpeta - > TortoiseSVN - > Crear parche
Se le pedirá Que seleccione un archivo de salida
Para aplicar:
Haga clic derecho en la carpeta - > TortoiseSVN - > Aplicar parche
Se le pedirá una interfaz para seleccionar los archivos a los que aplicar los parches, y fusionar si necassary.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-21 18:36:12