Where I am: Linux command line
The problem I have now:
Sometimes I couldn't make atomic commits (consisting all the modifications required for one particular ticket/task), because we have some files in the repository, which contents vary at local development environments.
For example: database.xml
(dbname, username, password, etc.). I modify this file in my local environment, and every time I need to make a commit/checkin I have manually list all the required files/folders for the commit (excluding this locally modified files).
Maybe it is a wrong design decision and database.xml
has to be deleted from the repository and changed for database.xml.template
(stored in SVN), so this file won't be included to commit until you manually execute svn add
for it? Maybe it is wrong approach - to store all this environment dependent information in the repository - in that case we can break everything by commiting a modified configuration, for example..
As I understand it, svn:ignore
property couldn't help in this situation, because it can be used only for files which isn't stored in the repository..
How can this problem be solved?
P.S.: I'm using Ubuntu and mostly pure command line for SVN.
.template
file in Subversion and the real configuration, modified version, only locally. It is important that developers should never modify the real configuration file for other than personal configuration. That is, if a new option is to be added to the file, then it must be added to the.template
file and then recreate their own configuration file out of it (maybe automatize rebuilding of the configuration from the.template
file with a script to ease the work). – Internode