Hello,

after going "full retard" in IRC (it was good for me) I have calmed down enough to give constructive criticism in regards of subversion and how it handles symbolic links on Unix (and compat.) platforms.

I wan't to start with a question. I am confident there is no answer to it. At least not from people who share code between projects.

* Why does subversion store symbolic links instead of following them? *

I really don't get it. Who has a symbolic link inside a codebase pointing to another place inside the same codebase? That. And only that would justify the way how subversion handles symbolic links.

It is in my 20 years experience with Unix, code and CVS and subversion much, /much/ more likely you use symlinks to point to code that is shared between multiple repositories.

So it would be intuitive and conform to operating system standards if subversion would follow these instead of storing the actual symlinks and, by that, potentially cause a loss of precious work in an update in another local copy.

So it was suggested to do it the subversion way. I can only assume that subversion reinvents the usability of symlinks in it's own murky/un-intuitive/proprietary way because of alternative operating systems like windows that have nothing like symlinks. (I am sure there will be a enthusiast trying to convince me that subversion does it better than the symlinks i used the last 15 years. - It doesn't.)

So subversion has been developed for more than a decade now and nobody thought about adding --enable-follow-symlinks or something similar to the configure script. Fine. I can do it myself.

So I did just remove the #define HAVE_SYMLINKS from the config and build it myself.

Only to end up with a client who /still/ recognizes symbolic links and refuses to follow them.

Tonight I found out that subversion also has a problem when I just use mount --bind to share code between projects. I thought I could do that after the .svn was centralized in the root of the project. But no. Subversion doesn't like that.

Another Problem I have with subversion is that everything is stored in binary files. It is not like that I damage my repositories all the time. It happens maybe once every couple of years. But when it happens there is nothing else to do that to start a new repository with whatever is left in the local copy.

I'd like to point out that CVS can, under any circumstance, be fixed with a standard text editor. I just never had it that I has to reimport a CVS repository to fix a broken one.

I really wonder what the advantages of subversion are except from that TortoiseSVN is more actively developed than TortoiseCVS whose developers seem to have a irrational aversion against switching from XP to Win7. Win7 is ok for a Windows.

So. Despite knowing that some narcissistic project herald will announce to my face that "It is impossible. Because it doesn't flow with out vision." I would like ask you to include a compile option in the configure script that makes subversion follow symlinks. Just for (the majority of) us developers who have no use for symbolic links instead of the actual files in their repository.

The package maintainers shall continue ignoring that little feature.

That way subversion would embrace something that made Linux great: Choice.


Thank you,
Dirk

Reply via email to