2011-09-10 23 views
10

Por accidente cometí dos veces porque olvidé agregar dos archivos. ¿Puedo eliminar una confirmación específica del registro?¿Puedo eliminar una confirmación en Subversion?

screenshot of log

Quiero borrar cometer № 4.

+2

Le recomendamos leer esta pregunta: http://stackoverflow.com/questions/5566327/delete-all-traces-of-a-svn-commit –

Respuesta

9

La respuesta simple es "no", porque Subversion no sabe cómo resolver el caso cuando agrega un compromiso, alguien más actualiza su pago, y luego elimina el compromiso del historial. Puede haber o no una respuesta compleja que implique cirugía en el almacenamiento de Subversion.

1

¿Por qué? Deje que Subversion mantenga la historia, para eso sirve. Check in temprano y a menudo. No hay necesidad de borrar commit # 4.

+1

Porque no agregué Site.cc y Site.hh (Olvidé hacer eso), pero el mensaje de confirmación dice que sí. –

+3

@WTP: la solución canónica es simplemente la comisión de un ninjafix y comentarlo en consecuencia. Si desea un historial "ordenado", de un solo compromiso por paquete de trabajo, Subversion (o Subversion solo) podría no ser la herramienta adecuada para eso. – millimoose

+0

Si realizó una verificación limpia del proyecto, ¿aparecerían esos dos archivos? Si es así, entonces los cometiste. Cree la Subversión. – duffymo

4
  1. AFAICS, que ha no elimine R4, pero combinación con R5, sí?
  2. En general, el historial de confirmaciones de SVN es inmutable, como dijo Sii, y si no tiene derecho a borrar/crear el repositorio, no puede hacer nada.

Si puede eliminar repo actual y crear una nueva con una nueva historia, que puede probar:

  • svnadmin dump para conseguir legible por humanos (apenas, tengo que decir) repositorio-volcado, el formato grok y editar volcado, eliminar repo, svnadmin load para recrear el repositorio
  • otra idea es (en lugar de volcado de edición) otra SMC, que tiene un puente a SVN (Hg + MQ (histedit) + hg-GIT, fe, voluntad le permiten obtener el repositorio y doblar/eliminar el conjunto de cambios s). Para reemplazar repositorio de edad - vea p.2 anterior
1

En su caso, sólo es necesario modificar el mensaje de consignación asociada a cometer # 4 para reflejar los cambios reales realizados. Puede hacerlo con Subversion modificando la configuración del repositorio SVN. Vea el Subversion FAQ.

Cuestiones relacionadas