Earlier in this discussion I saw link to the FAQ which recommends using a
"template" file and a manual copy to an unversioned file (an instance of the
template). http://subversion.apache.org/faq.html#ignore-commit
I can see how that approach handles part of the
please-help-me-with-these-semi-custom-ide-project-files requests, but also
leaves some key facets up to a manual procedure, like: "you just checked out
a new working copy? don't forget to copy the template project file into the
real project file" and "hey: I just updated the template project file; time
for everyone to merge these changes into their real project files (or just
copy the template again, understanding you may get re-prompted for login
credentials, etc)"
On the other hand, the template/instance procedure neatly avoids the "oops,
I just committed my local changes back to the repository" problems, since
the instance file (the one that the IDE mucks around with) never gets
committed.
What if svn were to grow a feature that directly supported this
template/instance pattern? Possibly as a svn:template property set on the
template file (and maybe the value of svn:template being name of the
instance file?). When "svn checkout" creates the template file, it would
also copy the template file to the instance file. When "svn update" or "svn
merge" applies changes to the template file, the same changes would be
applied to the instance file (of course this is where things get a bit
tricky). Allowing local changes to exist in the instance file would, of
course, be essential, but the instance file would never be committed back to
the repository.
I'm sure there are a list of other tricky issues with this approach, but my
sense is that it may be closer to the mark than a single file that serves
two purposes. Need to set something for your local working copy? -- changes
go into the instance file and don't worry: those changes won't be committed.
Need to make changes that get committed back to the repository so that
other working copies can get them? -- those changes go into the template
file.
regards,
markt
Received on 2011-08-25 03:24:15 CEST