/UnityWiseSVN

Simple but powerful SVN Integration for Unity 3D

Primary LanguageC#MIT LicenseMIT

WiseSVN For Unity

Simple but powerful SVN Integration for Unity 3D utilizing TortoiseSVN (for Windows) or SnailSVN (for MacOS) user interface. A must have plugin if you use SVN as your version control system in your project.

Table of Contents

Features
Usage
Installation
Overlay Icons
Screenshots
Community

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.
  • Auto-Lock assets by path and type
    • Modified files (asset or meta) that match specified path and type will be automatically locked.
    • When files are locked by someone else a prompt will be shown allowing users to steal the lock by force.
    • When file changes are cleared, they will be unlocked automatically.
  • 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 and MacOS (maybe Linux?).
  • Simple API to integrate with your tools.

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.
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.
This is an issue with how Unity works, not the plugin iteself. Unity says its by "design".

Installation

  • Github upm package (pointless if you use git?) - merge this to your Packages/manifest.json
{
  "dependencies": {
    "devlocker.versioncontrol.wisesvn": "https://github.com/NibbleByte/UnityWiseSVN.git#upm"
}

Prerequisites

  • Have SVN installed
    • Have installed SVN command line interface (CLI)
  • (Optional) Have TortoiseSVN (for Windows) or SnailSVN (for MacOS) installed.

SVN CLI

Overlay Icons

  • Unversioned
  • Modified
  • Added
  • Deleted
  • Conflict
  • Locked by me
  • Locked by others
  • Server has changes, update

Screenshots

OverlayIcons1 OverlayIcons2

ContextMenu File Operations Preferences

Auto-Locking

Branch Selector

Community