3 ms·
This looks really interesting. I read through the docs on the site though, and it doesn't say anything about diffs and merges. Those are fundamental VCS operati
by darkstarsys 5y ago
This looks really interesting. I read through the docs on the site though, and it doesn't say anything about diffs and merges. Those are fundamental VCS operations so I hope it supports them. I recognize merging is complex for 2d/3d files but if it claims to be a VCS then I'd think it would have to support it, otherwise what use are branches?
- pvitz 5y agoHow do you define a diff or merge for such files? Having a history available and branches (e.g. alternative versions of the same image) that can't be merged back seems to me to be still a version-control system.
- darkstarsys 5y agoIt depends on how deep the file parser is. For 2d, the zero-level feature would just be pixelwise image diff of the rendered result. For photoshop or inkscape, you could diff layers, show added/deleted/changed adjustments, etc. For 3d, to take Blender as an example, a zero-level diff feature would be to export (e.g. as glTF) and show which scene objects differ (meshes, textures, lights, etc.) More detailed parsing would give more details, e.g. image-diffing modified textures. As I noted, merging is nontrivial. But it seems important -- if I save a branch, go back to the trunk and do more work, how do I add in the changes I made on the branch? Or even know what those changes were? Good diffs would help of course. Merging would certainly have to be product-specific. For some open-source tools one could imagine hooking into their undo/redo logic, or parsing the product files into a temporary line-based format, but from outside it seems much more challenging than line-based merge in git (which is already imperfect for many applications).
- pvitz 5y agoI think this is one of those things that superficially sound not that complicated but when you look closer, it is a gargantuan complex task. If I think only about Photoshop and PSD, this seems terrible to implement and maintain. Also, I guess that the need is not really there, because otherwise, Adobe or some other company would have implemented this in the past 30 years.
- sebastian_io 5y agoThank you for your feedback. You brought up very good points. Snowtrack is available as a public beta since today and will evolve from here through user-requests and feedback. Snowtrack supports a simple before/after compare but this feature will be heavily extended with the next versions. About merge operations: The majority of solo artists and designers don't work in many branches. Most projects just go forward and branches are only useful if a rollback is needed. That being said, Snowtrack does offer a simplified "cherry-pick". But merge operations as you might know them from Git/Perforce are not implemented yet as it takes time to see how users adapt the software. Keep in mind, most artists and designers are new to VCS or have never heard of it before and therefore it is crucial to find the right balance between too little and too many features. Any second that keeps the artist away from creating their artwork is wasted and therefore and the goal is to not interfere with their workflow or to add additional "management tasks"
- deleted 5y ago[deleted]