SVN performance after many revisions

后端 未结 9 1165
终归单人心
终归单人心 2020-11-30 01:54

My project is currently using a svn repository which gains several hundred new revisions per day. The repository resides on a Win2k3-server and is served through Apache/mod_

相关标签:
9条回答
  • 2020-11-30 02:26

    Subversion only stores the delta (differences), between 2 revisions, so this helps saving a LOT of space, specially if you only commit code (text) and no binaries (images and docs).

    Additionally I´ve seen a lot of very big projects using svn and never complained about performance.

    Maybe you are worried about checkout times? then I guess this would really be a networking problem.

    Oh, and I´ve worked on CVS repositories with 2Gb+ of stuff (code, imgs, docs) and never had an performance problem. Since svn is a great improvement on cvs I don´t think you should worry about.

    Hope it helps easy your mind a little ;)

    0 讨论(0)
  • 2020-11-30 02:26

    The only operations which are likely to slow down are things which read information from multiple revisions (e.g. SVN Blame).

    0 讨论(0)
  • 2020-11-30 02:27

    What type of repo do you have? FSFS or BDB?

    (Let's assume FSFS for now, since that's the default.)

    In the case of FSFS, each revision is stored as a diff against the previous. So, you would think that yes, after many revisions, it would be very slow.

    However, this isn't the case. FSFS uses what are called "skip deltas" to avoid having to do too many lookups on previous revs.

    (So, if you are using an FSFS repo, Brad Wilson's answer is wrong.)

    In the case of a BDB repo, the HEAD (latest) revision is full-text, but the earlier revisions are built as a series of diffs against the head. This means the previous revs have to be re-calculated after each commit.

    For more info: http://svn.apache.org/repos/asf/subversion/trunk/notes/skip-deltas

    P.S. Our repo is about 20GB, with about 35,000 revisions, and we have not noticed any performance degradation.

    0 讨论(0)
提交回复
热议问题