2011-09-28 13 views
5

¡Ayúdame a hacer algo de daño! Estoy cansado de solo media docena de éxitos de Google que me dicen que nunca haga esto. Vamos a ensuciar las cosas muy bien! Estoy bastante seguro de que puedo obtener los archivos reales en db/transacciones, así que ¿cómo puedo arruinarlos de maneras interesantes? Miré a SVN :: Delta, pero no puedo ni imaginarme qué se supone que debe hacer (dejar que alguien haga gráficas de cambios en un repositorio, ¿cómo enviar mensajes codificados a la CIA?).¿Cuál es el formato de los deltas en un repositorio de subversión, y qué tan gravemente puedo explotarlo si los cambio en un enlace de precompromiso?

Realmente no me importa escuchar más razones para no hacerlo. Trabajo en un entorno con 40 o 50 personas más que usan la subversión. Y mientras codificamos, necesitamos algunas contraseñas en los archivos web.config, en los archivos DataSource.groovy, lo que sea. Y solo rechazar el compromiso porque los dejamos es tan molesto como el infierno. Tenemos que guardar los archivos con las contraseñas borradas manualmente (y tenemos que abrir esos archivos, no es que estén necesariamente abiertos), y una vez que hayamos terminado de comprometernos, tenemos que volverlos a poner para continuar trabajando. Esta es una buena idea, supongo, si solo quieres intercambiar bitcheslap personas cada vez que se comprometen hasta que desarrollan un reflejo pavloviano para nunca cometer nada. ¿Y por qué? Porque las computadoras no deben automatizar las tareas? ¿Porque el cliente de software no sabrá que el enlace precomprometido realmente no guardó la versión todavía en la máquina del desarrollador?

Aquí estoy bastante agnóstico del idioma. Muéstrame un ejemplo de cómo hacer lo que nunca se supone que debes hacer ... ¿qué archivo edito de precompromiso? ¿Cómo interpreto el galimatías después de la línea DELTA # # #? ¿Hay alguna biblioteca que te ayude con eso? ¡Vamos a divertirnos un poco!

PS En serio, nadie ha creado una etiqueta de "malas ideas"? WTF.

+2

+1 por encantadora perversidad – daxim

Respuesta

4

Es su proceso de compilación defectuoso, no Subversion. Si no debe asignar contraseñas, haga algo como lo siguiente:

1 - Web.config no se deben confirmar los archivos. En su lugar, envíe archivos como Web.config.dev o Web.config.qa.
2 - Haga que su script de construcción cambie el nombre del archivo .config apropiado al Web.config, y luego reponga el token para que se inserten las contraseñas correctas. Esta información puede provenir de otro archivo que tampoco está comprometido, que dice en qué entorno se encuentra (para saber qué archivo .config usar) y cuáles son las contraseñas.

+0

Eso es realmente bueno ... diciéndome que no debemos hacer control de versiones en los archivos. Supongo que si uno se pierde o se corrompe en la producción (ocurrió hace solo un mes), entonces podemos pedirles que extraigan copias de seguridad en cinta y que funcionen nuevamente en un par de días. El lado del cliente suena muy bien, solo hay varias docenas de desarrolladores ... y cuando las nuevas computadoras se lanzan en un par de meses, ¡podemos instalarlo en varias docenas de sistemas otra vez solo por diversión! –

+2

@John No creo que me estés siguiendo. Los archivos que no se comprometen se generan automáticamente mediante su script de compilación. El único archivo que no está creado por checkout yo el script de compilación es el archivo de contraseñas, que no está explícitamente comprometido por usted. De manera similar, su script de implementación crea el web.config por usted. – RedFilter

+2

@JohnO: No, él le dice que controle la versión de los archivos, excepto que sin las contraseñas insertadas, y luego tiene un proceso automatizado para insertar la contraseña. Más o menos como la versión controla un archivo '.c', pero no el' .o' generado. – derobert

Cuestiones relacionadas