Snapshotting your work

Scene Snapshot

This app lets you quickly take a snapshot of the scene that you are working on - essentially a quick, personal backup. You can also browse your history and restore old snapshots.


By: Shotgun Software
Latest Version: v0.7.3 (prod)
For our version numbers, we follow the Semantic Versioning standard.
System Name: tk-multi-snapshot

Overview

This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the Shotgun Integrations User Guide for details. A Shotgun Snapshot is a quick incremental backup that let's you version and manage increments of your work without sharing it with anyone else. Take a Snapshot, add a description and a thumbnail, and you create a point in time to which you can always go back to at a later point and restore. This is useful if you are making big changes and want to make sure you have a backup of previous versions of your scene.

Documentation

We're working on the documentation as we speak & it will be coming soon. We'll make sure it's worth the wait!

Related Apps and Documents

Publish

This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the Shotgun Integrations User Guide for details. Multi Publish is a workflow app that artists can use to publish files to Shotgun. The app provides a simple UI on top of a highly customizable core that can be easily configured to publish any combination of files or data from a work scene and it's dependencies (e.g. the Maya scene, Nuke Script, OBJ's, Alembic Caches, Cameras, Textures, etc.). The multi publish app is used in all default configurations and can be easily configured to support workflows ranging from Alembic Cache generation in Maya to render publish in Nuke, art reference management in Photoshop or plate ingestion in the Shotgun and shell environments.

Publish

The Publish app allows artists to publish their work so that it can be used by artists downstream. It supports traditional publishing workflows within the artist’s content creation software as well as stand-alone publishing of any file on disk. When working in content creation software and using the basic Shotgun integration, the app will automatically discover and display items for the artist to publish. For more sophisticated production needs, studios can write custom publish plugins to drive artist workflows.

Shotgun Workfiles

This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the Shotgun Integrations User Guide for details. This application forms the basis for file management in the Shotgun Pipeline Toolkit. It lets you jump around quickly between your various Shotgun entities and gets you started working quickly. No path needs to be specified as the application manages that behind the scenes. The application helps you manage your working files inside a Work Area and makes it easy to share your work with others.

Installation and Updates

Adding this App to the Shotgun Pipeline Toolkit

If you want to add this app to Project XYZ, in an environment named asset, execute the following command:

> tank Project XYZ install_app asset tk-maya tk-multi-snapshot

Updating to the latest version

If you already have this item installed in a project and you want to get the latest version, you can run the update command. You can either navigate to the tank command that comes with that specific project, and run it there:

> cd /my_tank_configs/project_xyz
> ./tank updates

Alternatively, you can run your studio tank command and specify the project name to tell it which project to run the update check for:

> tank Project XYZ updates

Collaboration and Evolution

If you have access to the Shotgun Pipeline Toolkit, you also have access to the source code for all apps, engines and frameworks in Github where we store and manage them. Feel free to evolve these items; use them as a base for further independent development, make changes (and submit pull requests back to us!) or simply tinker with them to see how they have been built and how the toolkit works. You can access this code repository at https://github.com/shotgunsoftware/tk-multi-snapshot.

Special Requirements

  • You need Shotgun Pipeline Toolkit Core API version v0.14.58 or higher to use this.

Configuration

Below is a summary of all the configuration settings used. These settings need to be defined in the environment file where you want to enable this App or Engine.

hook_thumbnail

Type: hook

Default Value: thumbnail

Description: Specify a hook to pre-generate a thumbnail for the snapshot.

template_work

Type: template

Description: A reference to a template which locates a work file on disk.

template_snapshot

Type: template

Description: A reference to a template which defines the location where snapshot backups will be stored on disk.

hook_copy_file

Type: hook

Default Value: copy_file

Description: Specify a hook that will be used to copy the file 'source_path' to 'target_path'.

hook_scene_operation

Type: hook

Default Value: scene_operation_{engine_name}

Description: All the application specific scene operations (open, save etc) that the app needs to carry out are collected in this hook.

Release Notes

Welcome to the release notes for this App. Below you will find an overview of all the changes we did for each release. We try to be as detailed as possible and include all bugs we have fixed, features we have added and things that may have changed. If you have questions about a particular release, don't hesitate to contact our support team!

v0.7.3

2017-Mar-16

Switches to writing jpg for thumbnails instead of png.

Details:

This stops further libpng errors mentioned in v0.7.2 release notes from occurring.

v0.7.2

2017-Mar-14

Removes problematic profiles from png files used as icons.

Details:

This will silence libpng warnings from Qt when the png files are loaded as pixmaps. This is a second attempt as this profile stripping, and uses ImageMagick's "mogrify" command to achieve the desired result, which maintains color consistency.

v0.7.0

2017-Jan-30

Adds support for tk-photoshopcc.

v0.6.1

Adds context switching for Nuke Studio support.

v0.5.2

2015-Dec-18

Now prompts yes,no,cancel asking if a snapshot should be taken prior to restore.

v0.5.1

Merges Hiero scene operations into the Nuke hook.

Details:

Changes necessary to allow the tk-nuke engine to run within the Hiero mode of Nuke 9.0+.

v0.4.1

23021: 3DS Max Engine w/MaxPlus

v0.4.0

Added support for Motion Builder

v0.4.0

Added support for Motion Builder

v0.3.1

Fixed issue with file permissions on the snapshot comments file

v0.3.0

Updated to use the new framework versioning syntax

Details:

  • This also requires core v0.14.58

v0.3

Updated to use the new framework versioning syntax

Details:

  • Also updated to require core v0.14.58

v0.2.14

Manually emit missing kBeforeProjectLoad signal from Hiero before loading project

v0.2.13

Fix for Unicode issue

v0.2.12

Fix for PyQt compatibility.

Details: Fix for PyQt compatibility.

v0.2.11

Fixed Python 2.5 compatibility issues

v0.2.10

Updated to use the latest version of the widget framework (v0.1.18)

v0.2.9

BrowserWidget is now cleaned up correctly when Snapshot History dialog is closed

v0.2.8

Updated to require widget framework v0.1.17

v0.2.7

Exposed core functionality as methods on the app class

v0.2.6

Fixed issues when snapshotting files with non-ascii characters in the path

v0.2.5

Tweaked the display name when name is not specified in the template

v0.2.4

The name key is no longer required in templates used by this app

v0.2.3

Updated to require widget framework v0.1.16

v0.2.2

Improved support for Softimage engine

v0.2.1

Added Photoshop Support. Improved Softimage Support.

v0.2.0

Added Hiero and Houdini Support.

v0.1.22

Updated to use latest version of the widget framework

v0.1.21

Updated to use latest version of the tk-multi-workfiles Save-As command

v0.1.20

Renames and support for the new name Sgtk.

v0.1.19

Renames and support for the new name Sgtk.

v0.1.18

Added hooks for Softimage.

v0.1.17

Snapshot history now displays snapshots in reverse order if using increment instead of timestamp

v0.1.16

Added support for increment when doing snapshots

v0.1.15

Minor UI tweaks.

v0.1.14

Another fix to make snapshot more robust when template contains the user but the work template does not.

v0.1.13

Fixed issue stopping snapshot from working when snapshot template contains the user but the work template doesn't.

v0.1.12

Fixed various issues stopping Snapshot app from working with PyQt

v0.1.11

Fixed bug stopping snapshot from loading

v0.1.10

UI tweaks and addition of snapshot interface to app

v0.1.10

Various UI tweaks & fixes. Added 'snapshot' interface to app for use by tk-nuke-quickdailies.

v0.1.9

First release to the Tank Store.

Follow

12 Comments

  • 0
    Avatar
    Benoit Leveau

    Anyone else thinks that the Restore feature is annoying?

    There's a lot of cases where you don't want to save a snapshot of the current scene before restoring.

    Worst case is if you have, say, 5 snapshots of the current scene, and wants to open them one by one to find something you did in the past, then you'll end up with 10 snapshots because the app won't let you restore a snapshot without creating a new one.

  • 0
    Avatar
    Ryan Mayeda

    Hi Benoit.

    This is a really good point.  What do you think the ideal flow would be?  Off the top of my head, what jumps out as possible ideas are:

    1. We keep this dialog, but it instead it asks you if want to snapshot the current scene, with Yes/No/Cancel as the options.
    2. There's a per-user "sticky" checkbox pref in the Snapshot History UI that lets you specify if the current scene should be snapshot when one is restored, so the user wouldn't get a pop-up dialog each time.
    3. There's a setting in the environment configuration for the app that lets this behavior be set for the environment (i.e. always snapshot, always don't snapshot).

    1 feels the strongest to me, and the pop-up is ok since it doubles as the "Are you sure you want to do this restore?" but it would be great to hear your take on this!

    Ryan.

  • 0
    Avatar
    Benoit Leveau

    Hi Ryan,

    I think too that option #1 is best as it keeps the existing behavior.

    I'm curious though how you would implement the per-user sticky behavior of option #2? Is there such mechanism in place in Toolkit?

    Benoit

  • 0
    Avatar
    Ryan Mayeda

    Hi Benoit.

    Some of the apps make use of this "sticky" feature already, like the File Manager/Set Work Area app(s), which will remember if the user has checked the "Show Only My Tasks" box across Maya sessions.  The new Loader will also likely make use of this for remembering certain filters, and in general, we feel like this can be a nice usability improvement when it makes sense.

    Do you want more details on this?  If so, I can have one of the engineers weigh in...

    Ryan.

  • 0
    Avatar
    Oliver Hilbert

    Mmm stumbled on this page to see if I could find exactly how I could disable this behavior for now - till something like option 1 is implemented. Could I just comment out something somewhere to disable that portion of the restore action?

  • 0
    Avatar
    Manne Öhrström

    Hey there oliver! To disable the app you need to go into your configuration, find the env folder and then comment out/remove all tk-multi-snapshot app declarations. It can be a bit technical, let us know if you get stuck!

  • 0
    Avatar
    Oliver Hilbert

    HI Manne,

    Sorry I think I was not quite clear. I meant disable the creation of a snapshot on the restore of a snapshot. We use snapshot's exclusively for saves to ensure our publish and work versions stay in sync - so that part is great. Looking through previous files via the snapshot tool however spams us with many duplicate versions of our existing snapshots. Very quickly artists leave the pipeline tools and start digging through the physical snapshot files to circumvent this.

    I did have a look in the config/env folder and poked through a few .yml's and couldn't find the said app-declarations. However I am not at a computer with any ability like "find in files" at the moment. Will check again when I get the chance.

  • 0
    Avatar
    Benoit Leveau

    Hi,

    We had the same issue. What we ended up doing is forking the app and doing the change in the code.

    Basically instead of getting the message:

    "A snapshot of the current work file will be made before restoring.\n\nContinue?",  OK | CANCEL

    We now get:

    "Do you want to snapshot the current work file before restoring?",  YES | NO | CANCEL

    This is the only change we have in our forked version, so if Shotgun wants to integrate such a change, we could create a pull request for this, so then we can use the official version again.

    Benoit

  • 0
    Avatar
    Rob Blau

    Hi Benoit, we'd love to take a look at that change... sounds like a good one.  Could you submit the pull request and we'll take a look?

  • 0
    Avatar
    Benoit Leveau

    Hi Rob,

    I just did the pull request for this app. The change is quite small. You might want to re-phrase the message.

    Benoit

  • 0
    Avatar
    Manne Öhrström

    Hi Benoit! Looking sweet! I just released 0.5.2 with this functionality added. Thanks for the help!

  • 0
    Avatar
    Adam Ghering

    Would also like to suggest a hotkey for snapshot. Most artists are used to ctrl+s or ctrl+shift+s

    not having a hotkey for this can be frustrating. Heck if you are going to be in a shotgun end to end it might even be worth reappropriating the normal save or save as to the snapshot tool when you launch with the shotgun toolkit 

    that way it is intuitive and new users to shotgun have same functionality.

Please sign in to leave a comment.