Estás en: línea de comandos de LinuxSVN confirmación atómica cómo-a
El problema que tengo ahora:
A veces no podía hacer commit atómicos (que consisten todas las modificaciones requeridas por un boleto especial/tarea), porque tenemos algunos archivos en el repositorio, cuyos contenidos varían en los entornos de desarrollo locales.
Por ejemplo: database.xml
(dbname, nombre de usuario, contraseña, etc.). Modifico este archivo en mi entorno local, y cada vez que necesito hacer un commit/checkin he enumerado manualmente todos los archivos/carpetas requeridos para el commit (excluyendo estos archivos modificados localmente).
tal vez es una decisión de diseño equivocado y database.xml
tiene que ser eliminado del repositorio y cambiado para database.xml.template
(almacenado en SVN), por lo que este archivo no será incluido para comprometerse hasta que ejecute manualmente svn add
por ello? Tal vez sea un enfoque incorrecto: almacenar toda esta información dependiente del entorno en el repositorio; en ese caso podemos romper todo al comprometer una configuración modificada, por ejemplo ...
Según tengo entendido, la propiedad svn:ignore
no pudo ayudar esta situación, porque se puede usar solo para archivos que no están almacenados en el repositorio ..
¿Cómo se puede resolver este problema?
P.S .: Estoy usando Ubuntu y la línea de comandos pura en su mayoría para SVN.
Estoy de acuerdo con mantener un archivo '.template' en Subversion y la configuración real, versión modificada, solo localmente.Es importante que los desarrolladores * nunca * modifiquen el archivo de configuración real para una configuración que no sea personal. Es decir, si se va a agregar una nueva opción al archivo, debe agregarse al archivo '.template' y luego volver a crear su propio archivo de configuración (tal vez automatizar la reconstrucción de la configuración desde' .template' archivo con una secuencia de comandos para facilitar el trabajo). –
Sí, tendría database.xml.template en SVN, database.xml.override en los checkouts locales e ignorado, y un script para combinar los dos para producir database.xml. Al menos, lo haría si tuviera tiempo para escribir el guión ;-) De lo contrario, los desarrolladores tienen que hacer una fusión manual en databaes.xml cada vez que cambie database.xml.template. –
De hecho, si los desarrolladores quieren ser realmente sofisticados, pueden hacer que database.xml.override un enlace rígido a un archivo que controlan las versiones en su rama personal del repositorio, para que la configuración personal también esté controlada. –