SnailSVN

SnailSVN is a TortoiseSVN-like Apache Subversion (SVN) client for Mac OS X, implemented as a Finder extension.

SnailSVN allows you to access the most frequently used SVN features, from the Finder context menu directly.

SnailSVN also adds icon overlays to your SVN working copies in Finder. It tracks your SVN working copies and updates the icon overlays automatically, giving you visual feedback of the current state of your working copies.

In a few steps, you can start using SnailSVN easily:
1. Enable “SnailSVN Extension” in “System Preferences » Extensions”.
2. Checkout a SVN working copy with SnailSVN (File » SVN Checkout…) or add a SVN working copy to SnailSVN.
3. Navigate to your working copy in Finder and right click to access SnailSVN functionalities.

* FAQ

Q: There is no icon overlays / context menu for the files?
A: Please make sure that you’ve enabled “SnailSVN Extension” in “System Preferences » Extensions”, and also make sure that you’ve added the working copy to SnailSVN Preferences.
If your SVN working copy is monitored by multiple Finder extensions, please make sure that SnailSVN Extension comes first in “System Preferences » Extensions » Finder”, you can drag and drop the extensions to adjust the order.
If the problem persists, please disable “SnailSVN Extension” in “System Preferences » Extensions” and then enable it again. The last resort is to relaunch Finder or restart your computer.

Q: Does SnailSVN work well with other SVN clients?
A: In theory, SnailSVN works with any kinds of SVN clients that is compatible with Subversion 1.7, 1.8 or 1.9, from the command line clients to the GUI apps.

Q: Does SnailSVN work for file managers other than Finder?
A: SnailSVN is primarily a Finder extension, so it is likely that it will not work for other file managers.

Download SnailSVN

SnailSVN Free

Leave a comment ?

100 Comments.

  1. Icon overlays were not showing, even after enabling SnailSVN Extension in system preferences.

    Solution: need to enable SnailSVN Extension and then temporarily disable Dropbox extension (it can be reenabled after). For some reason this solved the problem.

    Looks like a nice application!

    • Hi Gabriele,

      It’s very kind of you to report the issue.

      This issue may happen if several Finder extensions are monitoring the same folder, only the extension that comes first will be able to add icon overlays.
      You can drag and drop the extensions in System Preferences -> Extensions -> Finder to adjust the priority (the priority is in descending order).
      That why your solution works is that it makes SnailSVN Extension comes before Dropbox extension.
      We are very glad that you figured out the solution 😉

      Thank you!

  2. Here’s another one! Icon overlays and context menu did not appears when I checked out repository inside a folder synced with iCloud Drive.

    Moved it out and it worked fine. By this logic, as Gabriele already pointed out, it would be best to checkout outside a cloud synced folder if you want it to work out of the box. Otherwise, get ready to find a workaround.

    Nice App though. I was missing Tortoise SVN so much after switching to Mac and this was long time coming. Thanks!

    • Hi Vikram,

      The iCloud Drive folder is not an ordinary folder, since the iCould daemon is monitoring it and it seems that no other Finder plugins can get a higher priority. Currently there no much we can do to fix this issue yet.

      Thanks for the feedback!

  3. When committing files in is there a way to select all files quickly

    Thanks

    • Hi Chris,
      Please select all the files in the SVN commit window, right click and select “Mark as selected” from the context menu.
      Do remember to check the files before committing so that unwanted files are not included.
      Thank you!

  4. Is there a means to perform a Clean Up? When I performed a Checkout, the repo locked and I could not find a way to force the Clean up call from within Snail SVN or the Finder plugin right-click popup menu?

    • Hi Greg,
      To clean up a working copy, please right click on the blank space of your working copy and select “Clean up”, we suggest that you switch to icons view and try this.
      The “Clean up” menu item is not available if files are selected.
      We’ll improve the behavior in the new version, so that the clean up functionality can be accessed easily.
      Thank you!

  5. Beginner at svn, so please forgive me if I use wrong terminology!
    How do i “copy” the trunk to a new tags version?

    • Hi Andy,

      You can create a tag / branch by following these steps:
      1. Right click in the working copy folder and select “Repo-browser”
      2. Navigate to the root of the repository in the Repository Browser (you may need to change the URL manually)
      3. Right click on the trunk dir and select “Copy to…”
      4. Change the destination URL (for example, svn://localhost/Mac/SnailSVN/tags/1.0 )
      5. Enter a commit message and click “OK”

      We suggest that you experiment this on a testing repository first and then use it for production.

      Thank you!

  6. Diff was working for me in Version 1.0. With the update to Version 1.1, it no longer works. Anyone else has this problem?

    • Hi Nam,

      Since SnailMerge is very basic and lacks many features, we decided to remove it from SnailSVN.

      There are third-party diff tools available, we suggest that you install DiffMerge or KDiff3 and then you’ll be able to select it in SnailSVN preferences (in the “General” tab).
      If you’ve installed Xcode, FileMerge is also supported.

      DiffMerge: http://www.sourcegear.com/diffmerge/
      KDiff3: http://kdiff3.sourceforge.net/

      Thank you!

  7. Hi

    Updating externals is very slow is there a way to speed this up?

    Thanks

  8. Ok adding my svn server IP to /etc/hosts fixed the slow externals issue :-)

  9. Hi, when this snailSVN compatible with 1.8 client ? Thanks.

    • Hi Zil,
      SnailSVN is compatible with Subversion 1.7.x, 1.8.x and 1.9.x, you can try SnailSVN Free before buying the full version.
      Thank you!

  10. Thank you.
    This is awesom App!!

    But Bundled SVN Client can’t use with unicode file name (CJK Character)
    And Custom SVN can’t excuted because of El Capitan Permission. When I setup custom svn and click “Test”, It says “Operation not permitted”

    Can you change bundle svn compiled with option “–with-unicode-path”

    If you change this, I will buy several app for our developement team.

    thank you again for awesom APP.

    • Hi,

      The “Operation not permitted” error is caused by SIP (System Integrity Protection). More details: https://support.apple.com/en-us/HT204899

      Please copy your custom svn binaries to /Applications or /Library (or a subdir of them), and configure the svn path in SnailSVN.

      BTW, the “–with-unicode-path” option is not available for subverion (confirmed with the “./configure –help” command).

      You may also consider avoid using CJK characters in the file paths.

      Thank you!

  11. I(We) strongly want you to provide svn bundle compiled with ‘–with-unicode-path” option.
    SnailSVN is a great tool but it’d be useless in other countries unless you provide unicode compatible svn bundle.

  12. How can I switch user?

  13. SnailSVN full version install to multiple mac or not. i mean 1 licence for multiple mac

    • Hi Rahul,
      SnailSVN is associated with your Apple ID, once purchased you can sign in your Apple ID and download it on different Mac computers.
      Thank you!

  14. Thanks for replay…but i m confused. i have 2 mac pc then i have purchase two licence snailSVN or 1 licence can work in both mac.

  15. Hi, How can i ignore File or directory for commiting ?
    Thank you

    • Hi Stéphane,
      Please right click on the file / directory you would like to ignore in the Finder window and select “Add to ignore list”.
      Thank you!

  16. Hi, thanks you for making the wonderful extension. But I m confused. When I used SnailSvn, I enter the username and password for svn and it stored the username and password for me and worked well. But, recently, I changed my svn password, and now SnailSvn asks me to enter username and password every time. How can I fix it?
    Thank you.

    • Hi kkk,

      It seems that SnailSVN is not allowed to access the SVN accounts stored in OS X Keychain.

      Please search for the specific SVN accounts in Keychain Access and delete them.
      (Be careful and make sure that you know what you are doing)

      Next time you do SVN operations, you may be prompted that svn wants to use your confidential information in your keychain, please select “Allow” or “Always Allow” so that SnailSVN can read your SVN accounts.

      Thank you!

  17. 作者你好,就是我从自己这几天的体验来说,还是有些问题,就比如说我在某个文件夹下面修改了某个文件,但是我必须进入到该文件夹下才能看到该文件是修改的状态,而他的这个修改的所在的文件夹依旧是未更改的状态,还希望作者能修复这个问题

    • Hi leeyomwang,
      很抱歉给您带来了一些困惑。
      出于效率考虑,目前 SnailSVN 只监控 Finder 中展示的文件,如果您所修改的文件处于子目录中,修改状态将不会反映到上层目录。
      我们曾经在之前的版本尝试过监控更深层目录,但是对于包含大量文件的工作目录来说,这种方式资源占用过高,因此取消了这项特性。
      如果以后找到了合适的方法,我们将会再次考虑加入该项特性。
      感谢您的反馈!

  18. 作者你好,就是这个snailSVN,假如svn上的仓库地址更改了,我在本地的项目工作副本怎么更改svn仓库地址呢?望回复

    • 您好,

      请在 Finder 中前往工作目录的顶层,在空白处点击右键,选择“重定位…”。

      谢谢!

  19. When doing a checkout, need an option to set file timestamp with the file commit time.

    This is available in TortoiseSVN and command live svn but not in Snail.

    • You can set the option in the subversion config file ( ~/Library/Containers/net.langui.snailsvn/Data/.subversion/config ):

      [miscellany]
      use-commit-times = yes

      Thank you!

  20. What is the difference between the free and full versions?

  21. I really like snailSVN but can I add other diff tools like Kaleidoscope etc.

    • Hi Dave,
      We are sorry but Kaleidoscope is currently not supported yet.
      We consider adding support for more diff tools in the future.
      Thank you!

  22. I’m a beginner with this and trying to figure out how to install. I’m stumped by how to complete the three fields on this dialogue box….SnailSVN would like to access the following paths:

    • Hi,
      You can skip this step if you would like, you can always add the paths to SnailSVN later (SnailSVN Preferences -> SVN Settings -> Paths).
      Thanks!

  23. Provide search functionality based on file names in the “svn log” search bar as if in tortoise svn UI.

  24. Thanks for that tool. I have been waiting so long.
    One remark: When I select one subfolder in the project and then perform SVN update, it updates the whole project, not only the selected folder. Can this be fixed?
    Thanks!

  25. I reinstalled snail, and now I don´t know what to put in the folders path.
    My android studio can’t call subversion command lines. And I think it has to do with this.
    Before, I have found what to put there, and everything worked.Please, help!

    • Sorry… This happened because I didn’t started the Xcode for the first time. It looks like it installs the command line tool. Now its working… thanks

  26. How can I merge my trunk into some of my branches with SnailSVN?

    • You can merge trunk into a branch by following these steps:
      1. Make sure that you’ve checked out a working copy of the branch
      2. Do an “SVN Update” operation and make sure that working copy is clean
      3. Right click in the working copy folder and select “Merge…”
      4. Use “Merge a range of revisions” as the merge type and click “Next”
      5. Enter the trunk repository URL for the “URL to merge from” combo box and click “Next”
      6. Configure the merge options and start merging
      7. Review the changes, test your code and commit (or revert, if things go wrong)
      Thank you!

  27. I could not get Finder context menu to show Merge feature any other way than reinstalling SnailSVN 1.6. Hope this comment helps to somebody else as well.

    • Hi,
      You need to select 1 or 0 folder first.
      The selected item or its parent folder must be clean in order to start merge.
      Thanks!

  28. Hi,

    It seems that commits will not proceed if file changes are more than a substantiate number of change.

    • Hi,
      It’s likely that you were committing more than 4096 files, the commit failed since the shell can not handle that many arguments.
      We’ll fix the issue in next version.
      Thanks!

  29. 我每次比较文件都失败是个什么情况

    • 您好,
      SnailSVN 使用第三方工具对比文件,请您检查是否安装了合适的文件对比工具。
      谢谢!

  30. Hi,
    thank you for this awesome tool! It is worth every Cent! :-)

    I have one question/problem I couldn’t find help for:
    when selecting “compare with base” of a modified file it does open BeyondCompare 4 (my preferred diff tool) but supplies to temporary files.
    In this way I can not revert certain lines of code from the repository back into my local working copy.

    Here is a picture of the 2 files that are compared:
    http://imgur.com/a/i4Otv

    One should be a local file on my drive and not a temporary one created (?) by SnailSVN.
    However I must say that 1 out of 5 files are compared correctly.

    Please let me know if you need any more information.
    Thank you very much!

  31. 您好怎么对比两个版本的差异性呢,就是比较两个版本文件的差异

    • 您好,请在文件或目录上点击右键选择“显示日志”,在弹出的日志窗口中选择两个版本点击右键选择“比较版本”。谢谢!

  32. Hairunizam Mohamed Salleh

    Hi, recently my SnailSVN been updated to version 1.6.2. The issue is i cannot do file comparison. Both of my compare tools (DiffMerge and FileMerge) unable to do so. Please assist

    • Hi, please run the following command in Terminal to fix the issue:
      defaults write net.langui.snailsvn svn.diff.tool -dict-add no-sandbox -bool YES

  33. I am paid user of snailSVN since 1 month.
    It was working fine at beginning but suddenly, it has stopped working. When I commit or update or any other operation, it does not bring up the SnailSVN dialog.

    I have tried everything including quit and restart, restarting machine, uninstalling and reinstalling. But problem still persist. Please suggest, how I can make it working.

    Thanks,

  34. My problem seems to be solved.
    I moved my working directory to other folder and then it stopped working.

    In windows, moving working directory was no issue but in Mac, it looks like; you have to remap the working directory if moved to new location.

    Cheers..!
    Himanshu

  35. I upgraded my macbook pro and restored from a Timeline full back up and have been having issues. Now I really have it screwed up. I have the purchased version and it has run flawlessly. First symptom was it kept asking for the password. Then when it started I only got the preferences and not the menu (File …). Also nothing in the Finder right click even though extension is checked is sys pref. Out of desperation I downloaded copy of Lite and created a working copy of the stuff I needed but both the computer and I are totally confused. How can I completely remove, download a fresh copy from app store, and start fresh?? Thanks so much for this essential tool.

    • To reset the SnailSVN preferences:

      defaults delete net.langui.snailsvn
      defaults delete net.langui.SnailSVNCache

      To reset the SnailSVN Lite (Free) preferences:

      defaults delete net.langui.SnailSVNFree
      defaults delete net.langui.SnailSVNFreeCache

  36. 希望支持同一分支下,任意多个不相邻版本的文件比较。这个功能是小乌龟提供的非常有价值的功能点,小蜗牛什么时候可以支持?

  37. why I can’t See the “Add to ignore list” button?

    • Hi, “Add to ignore list” is available for unversioned items (items with question mark badge) only.

      • My problem is: It’s only available for unversioned items, but when I execute it, to ignore a directory I get the error message:
        “svn: E200005: ‘/Users/xxx/Documents/server/node_modules’ is not under version control”

        Which doesn’t make any sense, because thats the requirement to add it to the ignore list

        • You can’t ignore an item which is contained in an unversioned dir. Please ignore ‘/Users/xxx/Documents/server/node_modules’ instead or add the dir to version control first.
          Thank you!

  38. 我在做 check out 時,一選擇目錄就會出現以下 error message
    un: error: cannot be used within an App Sandbox.

    不知道要做什麼方法解決 ❓

  39. Compare each other is not working.

    WHen I select 2 revisions for the same file and right click and select “compare each other”, the option is opening another window which is displaying all the files and folders changed between those 2 versions, but is it never comparing the same file.

    • Hi, please double click each file in the “Compare Revisions” window to see the changes.

      • Thanks, it worked.

        By the way, before posting the question, after reading some previous questions I ran the below command thinking that this might work.

        defaults write net.langui.snailsvn svn.diff.tool -dict-add no-sandbox -bool YES

        However, after posting the question, I felt like the above command is of no use. How to revert the above command? or does it make any issues if I still continue with that setting? Hnestly I do not know what that does.

    • When there are more fies between revisions, the app is timing out and not displaying the files. I waited for more than 10 min and tried more than 10 times.

      • Please try the following command in the Terminal and see if it works:
        svn diff -r REV1:REV2 --summarize --xml SVN-REPO-URL

  40. Neal Neuburger

    When trying to perform a “svn diff” on a bash shell script file, svn errors out stating that file is marked as binary. On the command line the workaround is to use svn –force diff, which then treats all files as Text. When using the SnailSVN GUI there is no option to tell svn that the files are text files.

    neals-mbp:init.d nealn$ file –mime-type ls-route
    ls-route: text/x-shellscript
    neals-mbp:init.d nealn$ pwd
    /Users/nealn/svn/prodit/operations/sendmail/trunk/clusters/icm-app/sun5/etc/init.d
    neals-mbp:init.d nealn$ vi ls-route
    neals-mbp:init.d nealn$ svn diff
    Index: ls-route
    ===================================================================
    Cannot display: file marked as a binary type.
    svn:mime-type = application/x-shellscript
    neals-mbp:init.d nealn$ file ls-route
    ls-route: Bourne-Again shell script text executable, ASCII text
    neals-mbp:init.d nealn$ svn –force diff
    Index: ls-route
    ===================================================================
    — ls-route (revision 371)
    +++ ls-route (working copy)
    @@ -2,6 +2,7 @@
    #
    # chkconfig: 345 99 99
    # description: Starts LightSurf custom routes
    +# NAN

    case “$1” in
    ‘start’)

  41. 作者,您好!
    想问下在一个顶层目录下的一个项目做tag标记,他的源地址无法选择,而且标识的是顶层的项目地址,这是为什么?

  42. HI, I’m testing SnailSVN, and it looks great. But I can only compare “.txt” and “.cs” files. I want to be able to compare “.asset” files also (Unity files, also text based). Is there any way?
    OBS: If I open DiffMerge manually I can compare the files perfectly.

    • Hi, please set the “svn:mime-type” property to “text/plain” for your “.asset” files and try again.
      (right click on the “.asset” file -> select “Properties” to edit the SVN properties)

  43. Colin Campbell

    It would be very helpful to have the “update to revision….” option in the repo browser from tortoiseSVN.

    This allows you to do a sparse checkout deep into the directory tree while keeping the folder structure intact – is it possible to add this feature?

  44. Christian Domsch

    Hi,

    I would like to make a feature request: I would really love the ability to create a new folder from the repository browser.

    Christian

  45. I cannot seem to find an option to revert my working copy to a particular revision. Is this possible?

    • Hi Paul, please right click in the working copy folder and select “Show log” to see the old revisions.
      You can export the files and replace those in your working copy manually.
      You may also use the repository browser to browse the older revisions.

  46. I’m getting error:
    dyld: could not load inserted library ‘/usr/local/lib/dgagent/libpreload.dylib’ because no suitable image found. Did find:
    file system sandbox blocked open() of ‘/usr/local/lib/dgagent/libpreload.dylib’

    Any ideas what is going on?
    Thanks in advance

  47. Could you add option for checking out specific revision, please? :-)

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>