
Robert Mathews wrote:
1) svn:externals. We used svn:externals to replace SourceSafe's concept of "shared files". However, svn:externals are bad because - commits at the top of a tree that contains externals do not propogate through the externals. So, if you have a large tree, some parts that are externals and some that are not, and you've made changes all over, when you commit you have to remember to visit every single external and then commit there as well. - branching and tagging doesn't do anything special with svn:externals, and you'd want it to.
We use svn:externals for the same reason and I understand the problems too. From the svn bug reports it looks like they are working on 'relative' externals which will then be known to be in the same repository and can therefore be commited in one go. This will also bring in extra flags for externals to say whether to copy the external on a branch/tag or to mark it for the current revision etc. This should address what you need (and we) need, but I've no idea when this functionality will be completed. Might be worth searching their mailing list/bug reports for more info.
3) berkley-DB repository speed. It's slow to do common operations like fetching new files and getting history. You might want to consider using the new native file format FSFS, as it is faster.
FSFS is faster for a lot of things, but not for a checkout of HEAD. Read the docs as they explain that the FSFS repo format stores diffs from the previous revision so to build up the HEAD revision, it has to go back to the start the slowly build up the changes. We changed our repo from a BDB to an FSFS with 1.1.4 when a few more issues seemed to have been cleared up, mainly because it allows us to use rsync to back it up to another server as each revision is just a file, rather than having to do a hotcopy of the entire db file. FSFS is quicker for other operations, and are much smaller in our experience.
We also used TortoiseSVN to replace the SourceSafe explorer. It's very slow, and I've basically stopped using it except for the merge dialog.
Turn of 'recurse into folders to fetch status' in the 'look and feel' tab of TSVN options. That will dramatically increase its speed. I've come from VSS too, and there isn't a single feature of VSS that I miss now I've been using subversion and TSVN for over a year.
I can't comment on the dysfunctional merge issue - I've used the merge feature, and I've not lost any work with it yet.
I use merge and have had no issues with it. Cheers Russell