Awesome
<img src="./Docs/Logo-Round-500x500.png" width="200" align="right">WiseSVN For Unity
Simple but powerful SVN Integration for Unity 3D utilizing TortoiseSVN (for Windows), SnailSVN (for MacOS) or RabbitVCS (for Linux) user interface. A must have plugin if you use SVN as your version control system in your project.
Assets Store | Unity Forum | Reddit
Table of Contents
Features<br /> Usage<br /> Installation<br /> Overlay Icons<br /> Screenshots<br />
Features
- Hooks up to Unity move and delete file operations and executes respective svn commands to stay in sync.
- Handles meta files as well.
- Moving assets to unversioned folder will ask the user to add that folder to SVN as well.
- Moving folders / files that have conflicts will be rejected.
- Will work with other custom tools as long as they move / rename assets using Unity API.
- Provides assets context menu for manual SVN operations like commit, update, revert etc.
- Show overlay svn status icons
- Show server changes that you need to update.
- Show locked files by you and your colleges.
- Show "svn:ignore" and "svn:global-ignores" icons.
- Displays warning in the SceneView when the current scene or edited prefab is out of date or locked.
- Lock prompt on modifying assets by path and type (perforce checkout like)
- If asset or its meta becomes modified a pop-up window will prompt the user to lock or ignore it.
- The window shows if modified assets are locked by others or out of date, which prevents locking them.
- If left unlocked, the window won't prompt again for those assets. Will prompt on editor restart.
- Branch Selector
- Scans for Unity projects in your SVN repository's branches.
- Lists all available branches.
- Opens Repo-Browser showing target asset in selected branch.
- Opens "Show Log" on target asset in selected branch.
- Switches to selected branch.
- Scans for conflicts (shows which branches have changes to the target asset).
- Minimal performance impact
- Survives assembly reloads
- You don't have to leave Unity to do SVN chores.
- Works on Windows, MacOS and Linux.
- Simple API to integrate with your tools.
- Use
WiseSVNIntegration.RequestSilence()
andWiseSVNIntegration.ClearSilence()
to temporarily suppress any WiseSVN pop-ups. - Use
WiseSVNIntegration.RequestTemporaryDisable()
andWiseSVNIntegration.ClearTemporaryDisable()
to temporarily disable any WiseSVN handling of file operations and updates. - Use
SVNContextMenusManager
methods to invoke TortoiseSVN / SnailSVN / RabbitVCS commands. - Use
WiseSVNIntegration.*Async()
methods to run direct SVN commands without any GUI (checkExampleStatusWindow
).
- Use
Check the screenshots below
Usage
Do your file operations in Unity and the plugin will handle the rest.
User SVN operations are available in the menu (or right-click on any asset): Assets/SVN/...
WARNING: Never focus Unity while the project is updating in the background. Newly added asset guids may get corrupted in which case the Library folder needs to be deleted. <br /> Preferred workflow is to always work inside Unity - use the "Assets/SVN/..." menus. "Assets/SVN/Update All" will block Unity while updating, to avoid Unity processing assets at the same time. <br /> This is an issue with how Unity works, not the plugin iteself. Unity says its by "design".
Installation
- Asset Store plugin: https://assetstore.unity.com/packages/tools/version-control/wise-svn-162636
- OpenUPM support:
npm install -g openupm-cli
openupm add devlocker.versioncontrol.wisesvn
... or merge this to your Packages/manifest.json
(replace the package version XXXXX with current):
{
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"devlocker.versioncontrol.wisesvn"
]
}
],
"dependencies": {
"devlocker.versioncontrol.wisesvn": "1.4.XXXXX"
}
}
- Github upm package (DO NOT RECOMMEND as you need git installed) - merge this to your
Packages/manifest.json
{
"dependencies": {
"devlocker.versioncontrol.wisesvn": "https://github.com/NibbleByte/UnityWiseSVN.git#upm"
}
Prerequisites
- You need to have SVN command line interface (CLI) installed.
- TortoiseSVN (for Windows) comes with CLI, but needs to be added on installing
- For MacOS or Linux, select one of the options here: https://subversion.apache.org/packages.html
- You need to have TortoiseSVN (for Windows), SnailSVN (for MacOS) or RabbitVCS (for Linux) installed.
Overlay Icons
- Unversioned <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/SVNUnversionedIcon.png" width="16">
- Modified <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/SVNModifiedIcon.png" width="16">
- Added <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/SVNAddedIcon.png" width="16">
- Deleted <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/SVNDeletedIcon.png" width="16">
- Conflict <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/SVNConflictIcon.png" width="16">
- Locked by me <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/Locks/SVNLockedHereIcon.png" width="16">
- Locked by others <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/Locks/SVNLockedOtherIcon.png" width="16">
- Server has changes, update <img src="./Assets/DevLocker/VersionControl/WiseSVN/Editor/Resources/SVNOverlayIcons/Others/SVNRemoteChangesIcon.png" width="16">
Screenshots