Sunday, July 5, 2009

SVN Support Group


It's gotten so bad I have to share. 


Have you been there? The endless circle of "clean up this folder", "wait, you can't clean up this folder, it is locked by this folder... clean that up" "you can't clean this up, this file is locking it" "this file is no where to be freaking found, go clean that up"... you go down to the root and it can't be cleaned and it's an endless cycle until you move the files that you changed somewhere safe, then you delete the local repository and check out again.... then paste the files you changed and then check them in no problem. A week later it happens all over again. 



Has this happened to you 2437823467234 times? Please join my support group. Or do I just have bad SVN Ju-Ju.



Have you used Git? Is it 100% better? I will switch, but no argument has been convincing enough. Though, with all the trouble I've run into it would make a lot of sense.  



18 comments:

  1. Try SourceGear. It's free for a single user and most excellent.
    (I don't work for SourceGear but am a happy user)

    ReplyDelete
  2. I haven't had any issues yet with Subversion/Tortoise, so I'll join your support group but I won't be much comfort.
    My projects are hosted at Google Code, so Git isn't an option for me. :)

    ReplyDelete
  3. I suggest you go with Mercurial, most of all because it works very very nicely on Windows (and you are a .Net developer).
    You're considering switching from a centralized SCM to a distributed one. The two biggest distributed SCMs today are Mercurial and Git. Check Eric Sink's post about these two: www.ericsink.com/.../hg_denzel.html
    A few months ago, Guido Van Rossum was deciding which distributed SCM to choose for the Python source tree. He finally chose Mercurial too: mail.python.org/.../087931.html
    Both Guido and Eric come to the same conclusion: Git has many supporters but raises too much antipathy, while Mercurial seems to do things just right.

    ReplyDelete
  4. Before you run off and go to a distributed model, which has its own set of problems.
    The two biggest questions I have is what servers are you using SVN against? Because they are not all created equal.
    Second, how long do you develop before performing some type of action against SVN. Such as if you develop for a whole day in Visual Studio then checkin you are going to have many problems especially if you are doing moves.
    There are two SVN/Visual Studio plugins to choose from that perform all your renames, moves, and etc. as SVN commands as you do them in Visual Studio.
    ankhsvn.open.collab.net http://www.visualsvn.com/
    These help cut down on the actions you have to do afterwords, because the server already knows about your pending moves and renames and new files.
    Nick

    ReplyDelete
  5. Git really is much better than SVN, but as far as I know, it doesn't work quite smoothly on Windows.

    ReplyDelete
  6. I'm ready to join the SVN support group. :)
    As for SVN vs. Git, etc., well, I think that's really a question of whether what you're trying to do needs to be distributed. So, for instance, we're going to stick with SVN for a project that needs to have a central repository. For my own work, which needs to manage multiple branches (experimental code projects), needs offline and online access, and for work we're doing that will have lots of informal contributors, distributed makes more sense. I'm really liking Mercurial, which is Python-based and works with Google Code. Bazaar is interesting as it lies somewhere in between SVN and Git.
    I think the short answer is that any of these solutions rock, and they're certainly getting heavy use on high-profile projects, to boot.

    ReplyDelete
  7. try
    svn cleanup
    git is more advanced than svn but is has a steep learning curve as distributed scm is different from centralized scm

    ReplyDelete
  8. If you want to stick with SVN, I'd suggest giving VisualSVN a try (as already mentioned).
    If you want to try something new without moving to a distributed SCM (which brings its own set of problems), try SourceGear (it should work at least as well as SVN, if not better).

    ReplyDelete
  9. I can safely say that in the 3 years of using svn daily at work (used Perforce previously at work) I can count the number of times I've had to do a cleanup using only my thumbs.
    Are you using the command line? Tortoise (I do)? Or some other thing that is perhaps what is actually responsible for your woes and not svn directly?

    ReplyDelete
  10. I have been using svn everyday, for about 3 years, I only get this kind of messy cleanup mess, when I have multiple clients running (i.e. tortoise, and visualSvn, or ankh). I've found that separating source control from Visual Studio, by using tortoise, or a command line tool such as slik. That I get a much more focused workflow, and less svn problems.
    VS holds locks on files, and sometimes, when you are trying to check in, you are say, in the middle of a build or its doing a background compile through resharper to regen your red glifs. And bam, lock fails for the svn client and now both are hosing each other. So I do my work in VS, close it, or minimize it, and then do my source operations. Also make sure after an svn update, you refresh your solution.

    ReplyDelete
  11. Git is most certainly better, but in a different way, you are checking in to your own little world, and then synchronising that with the world view of the server later. Its a different workflow and not one that everyone can get into. Although if you work disconnected a lot, it has huge advantages, and branches are a snap to merge.

    ReplyDelete
  12. I would join the support group, but only because I am a very happy SVN user.
    I have to agree with developingchris. I often pick up problems when using AnkSVN and Tortiose together, however when using one independantly in 3+ years have never had major cleanup issues. I also started using the ignore option extensively with 1.6 because I find that the cleanups often occur with bin, debug folders. With them ignored the process is a lot simpler.

    ReplyDelete
  13. Git is 1000 times better than SVN. You have to give GitHub a try!
    Best!

    ReplyDelete
  14. I need to join a TFS support group.

    ReplyDelete
  15. I switched to Git for all my projects including .NET. If you branch and merge often, Git is great. VERY cheap local branching. It's fast and runs fine on windows.
    James Meridith has an excellent 3 part tut on getting started with Git on Windows: www.lostechies.com/.../git-for-windows
    Since I started with Git I don't think I've experienced any messy issues like svn cleanup is used for. As well, GitHub rocks as a repot and there is a thriving community swelling around Git.
    Good luck!

    ReplyDelete
  16. Sigh. I wrote a comment, submitted, then was told to enter my name and lost my comment. Bad UX.
    I have seen this cleanup loop regularly while supporting SVN users at work. The issue happens exclusively with windows and tortoiseSVN. It is most pronounced when repos are accessed over windows network drives (SMB/CIFS).
    I can run `svn cleanup` in a cli on the top level of their working copy and then they can work again.
    There are a number of other issues that also occur regularly, but only with windows/tortoise and shared drives.

    ReplyDelete
  17. I recommend to go with SVN, because its credible and effective.

    ReplyDelete
  18. ..After reading you blog,I think a lot,If you want to make you life more comfortable,you can come our website to choose a shoes which you like.Our mean is let our coustom fell more happy and comfortable.I f you come,I will tahnk you very much.

    ReplyDelete