Quantcast
Viewing all articles
Browse latest Browse all 5661

Please improve SVN support in IntelliJ IDEA

Lately I'm getting more and more frustrated with the lack of decent Subversion support in IDEA. Ever since 11.1 (introducing SVN 1.7 support, with newer SVNKit versions, ...) there have been so many issues [1] that it's hard to keep working. The incidents of corrupted working copies (causing huge loss of time) and threading-issues just make it almost unusable. Like I mentioned in one of those issues, the loss of time / productivity that we incur because of this broken svn support is just staggering. I'm actively discouraging my colleagues from upgrading to 11.1, and instead prefer them to stay on 11.0 or 10.5.

 

This is very sad, knowing that the Apache Subversion project has released 1.7 almost 1 year ago (October 2011), with very nice improvements like the much faster new working copy format, and IDEA still hasn't gotten proper SVN 1.7 support (and in the meantime it has destabilized SVN support in general, also for 1.6 working copies). When SVN 1.8 gets released in a couple of months, will IDEA have decent SVN 1.7 support by then? Will we have to wait for another year then to get 1.8 support?

 

I'd like to point out that:

  • Version control is one of the most critical pieces of infrastructure for professional developers. You need it all the time, and it needs to work flawlessly. You need to be able to trust it. Issues that break working copies, or even have the potential to lose uncommitted changes are extremely disrupting.
  • SVN is still one of the most widely used version control systems overall, and even more so in the corporate world. I thought enterprise users were one of the main target audiences of a commercial IDE like IntelliJ IDEA.
  • As far as I know, none of the current stability issues are problems with core SVN itself, but are exclusive to IDEA and/or SVNKit (in any case, the responsibility currently lies with Jetbrains -- either fix the bugs in IDEA's SVN plugin, or work together more closely with the SVNKit team to get issues fixed, or get us some proper SVN support in some other way).

 

Still, these disruptive issues do not get fixed, and Jetbrains keeps shipping releases of IDEA with outdated snapshot builds of SVNKit [2].

 

To be clear, I don't blame the people that actually work on SVN integration, but perhaps there just aren't enough people able to spend enough time on this. But what I don't understand is why Jetbrains as a company does not put more effort into this (freeing up resources to work on this, maybe work closer together with the SVNKit team to get your SVN plugin really rock-solid, hiring additional experts, ...), thereby causing major problems for a lot of its customers.

 

Please address this situation and get us some SVN integration that works, so we can again start to trust our IDE.

 


[1] Some of the most destabilizing issues:

  • IDEA-83673: Checksum mismatch on SVN update
  • IDEA-85496: Getting svn: E200030: Commit failed (details follow): svn: E200030: BUSY
  • IDEA-88764: Subversion client requests non-existing revisions
  • IDEA-88772: Subversion operations occasionally act on wrong file
  • IDEA-81144: File has probably wrong encoding after getting a specific revision from SVN
  • IDEA-65331: Files are lost when package is moved  (loss of uncommitted changes -- needs to be backported to 11 IMO)

 

[2] IDEA 11.1.3 (released July 26th) was shipped with version r9277_v20120530_1958 of SVNKit (snapshot build of May 30th). In the meantime, SVNKit had already long released its final 1.7.5 version (on June 21st). Moreover, the SVNKit team had in the meantime already fixed more workingcopy-corrupting bugs for their upcoming 1.7.5-v1 release, so if IDEA 11.1.3 would have taken a more recent snapshot (1.7.5-v1 rc1 was made on July 18th), it would have gotten these fixes (see 'svn log http://svn.svnkit.com/repos/svnkit/') (note: I'm just guessing that these are relevant ... but they sound interesting):

  • r9324 (2012-06-25): SVNSqlJetStatement#reset was not called in several places, fix. That could lead to wrong recount value in PRISTINE table (because the trigger list wasn't cleared properly).
  • r9331 (2012-06-27): Possible corruption fixes: added reset() calls to finally block for SQLJet statements. Absense of reset() method may lead to invalid triggers set.
  • r9333 (2012-06-28): DAV URL cache was not properly cleaned on update when "useDAVWCURL" option was set to false.
  • r9336 (2012-06-28): SVNKIT-273: ACTUAL_NODE contained not NULL but empty 'conflict_working' in absense of "mine" version, fixed.
  • r9343 (2012-06-29): WC16: do not round file last modified time to 1 second precision when comparing it to the value stored in .svn/entries
  • r9348 (2012-07-01): External switch could produce wrong conflicting information in ACTUAL_NODE because base properties weren't read properly.
  • r9351 (2012-07-01): WC 1.6: Deletion and addition of a directory could lead to working copy root replacement, fixed.
  • r9356 (2012-07-02): Last modified time was wrong, * 1000 multiplier was mssing, fixed.
  • r9358 (2012-07-03): Checkout shouldn't allow 'null' value to get to dav cache storage because it is kept as an empty string there (and this transform should be considered as some kind of corruption).

Viewing all articles
Browse latest Browse all 5661

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>