Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Best Practice for version-controlling artistic/design projects? #75

Open
cameralibre opened this issue Mar 17, 2017 · 15 comments
Open

Best Practice for version-controlling artistic/design projects? #75

cameralibre opened this issue Mar 17, 2017 · 15 comments

Comments

@cameralibre
Copy link

Hi, I've recently joined the group and I've been reading through the website and conversations - I'm not used to Github so I'm just getting my head around the group structure, but I'm really impressed with what has been going on so far :)

One resource that I would love to have available is some set of guidelines for how to set up a collaborative version-controlled artistic/design project - I've found plenty of resources on how to use git, but so much of it is tied to software that it can be difficult for people without coding experience to translate it to their own design work.

Does anything like this exist? Or could we start to gather ideas to make it?

I'm thinking of something like the linked Git Smart article from the resources page, but really focused on collaborating on design.

These could be very simple tips, like putting images in your README, or (more useful) could be about ways to approach commiting, branches, and using issues etc within a design project, with examples.

For example, right now I'm struggling with the issue of how to deal with internationalized projects - I have a repository for an animation with versions (in different stages of completion) in German, English, Swedish and Hungarian, and plan many more. With each new version I plan to update the earlier versions with any improvements to the sound mix, animation, design, etc.
I have no idea how to best organise a git repo for this, and haven't seen too many good examples of this outside of software to learn from.

@xuv et al linked to a couple of example projects in their Design with Git project, and I think this issue ties in a bit with the question of #71, on designers using Github for their portfolios.

But beyond listing projects, maybe we can start to draw out ideas and approaches that seem to work well from the few project examples that exist. What do you think?

@studiospring
Copy link

Git is designed to manage text files, so, if your files are svg or otherwise text based, Git is very efficient. If your files are binaries, like audio files, Git will still handle them, but diffing becomes meaningless and Git cannot keep file sizes small. There is a Git extension Git-lfs for large files. Perforce is another VCS that apparently handles such files better. Storage is cheap these days, and if you have fast internet it is probably easiest just to use Git as is.

I too thought there would be a strong need by designers for version control. However, that does not seem to be the case at least in the commercial design world. There used to be version control service for designers called Layer Vault but there did not seem to be the demand, so it shut down.

@xuv
Copy link
Member

xuv commented Mar 17, 2017

I'm definitely up for participating in a "best practices" or "good suggestions" for collaborative design git repos.

This could start by:

  • Prefer open standard human readable (text-based) file formats for storing data
  • Prefer file formats that are software agnostic if possible (SVG, EDL, OBJ, ASCII FBX, etc.)
  • Prefer file formats that describe collections and reference binary files with relative paths (SVG with relative paths to binary raster images, Scribus, XML, etc.)

But I'm going to stop here. Maybe we should start a shared document for this. Or a temporary Etherpad file to gather ideas.

@jdittrich
Copy link
Member

@cameralibre: What about using something like nextcloud? They have versioning and use is far easier than the ready-for-linux-kernel-development git use.
The advantages that git or the typical git project structure give – forking, merging, will probably not work well in a typical design project.

@cameralibre
Copy link
Author

@jdittrich how would you see Nextcloud working in a situation like I described - with multiple language versions which all need to be updated (automatically, if possible) as improvements are added? I use Nextcloud myself, especially for sharing finished work with clients, but I haven't really looked into its versioning capabilities in detail.

@studiospring thanks for the suggestions - do you know of any creative projects using Git-lfs or Perforce already? I also looked into boar as an option, but settled on plain ol' git in the end, as the only files getting regular updates are the SVG and .sif files, which are text-based.
Regarding Layer Vault's demise due to lack of demand - from the article:

By all accounts, they had lots of happy customers who used the service avidly—they just didn’t get enough of them to scale at the rate that was necessary for a venture-backed company to survive.

I don't know if that means designers don't want to use version control, it sounds like they had a good product but it wasn't a good fit for the VC-backed startup model?

@xuv - yes, let's start a document. I'm new here, can anyone tell me if there is there a preferred place/tool for this?

@jdittrich
Copy link
Member

@cameralibre: This means, you have an in depended language file with the translations and you want the animations to update automatically if you change the translations?

@cameralibre
Copy link
Author

@jdittrich Well, that's one part of it, but a bit more than that: when I improve a character's animation, or change the design in, say, the Swedish version, this design/animation change should be updated in the German and Hungarian versions too, though version-specific color palettes and assets (like the Reichstag image in the German vs the Országház in the Hungarian) remain the same.

At the moment I plan to use Git hooks for this, though I have no specific plan for folder/branch structure laid out yet.

@cameralibre cameralibre added bug and removed bug labels Mar 18, 2017
@bnvk
Copy link
Member

bnvk commented Mar 18, 2017 via email

@cameralibre
Copy link
Author

@bnvk great suggestions, and I think many of your thoughts can be generalised to any design medium, not just animation.
I hadn't heard of .pot files, but I've just been reading up and it'll definitely come in handy.
Regarding render management, luckily @morevnaproject is already working on that for animation: RenderChan

@morevnaproject
Copy link

@cameralibre Thank you for the mention! Just want to clarify that RenderChan is not only rendering tool, but it also extend to some helper of managing your animation files. We also plan to extend it more to deep integration with file sharing platforms and file managing solution We have first prototype alive that enriches functionality of Pydio with RenderChan rrendering features - https://sources.morevnaproject.org/

Notice, you can click any synfig/blender file and choose "download with dependencies" function. THis will fetch the file together with all files required to work with it. This is one of the features delivered from RenderChan file management features.

@jancborchardt
Copy link
Member

@morevnaproject cool! :)

We also plan to extend it more to deep integration with file sharing platforms and file managing solution

If you want to integrate more with Nextcloud you’re very welcome! Just come over to #nextcloud-dev in IRC and let us know if you need anything.

@morevnaproject
Copy link

@jancborchardt Thank you for the invitation! At the moment the main problem with NextCloud is that it doesn't support upload/download resume for big files. In my region internet bandwidth is starving and connection often gets broken. This is a serious issue, especially considering the size of our projects. Second issue is that upload for big amounts of data (especially with many small files) is generally slow (I didn't tested for NextCloud, but that was the case for OwnCloud).

For those two reasons we, unfortunately, have abandoned Own Cloud as synchronization solution.

@jancborchardt
Copy link
Member

@morevnaproject please feel free to open an issue in our tracker at https://github.com/nextcloud/server/issues about that. :) Or let me know if we should continue on an issue tracker of your project.

@morevnaproject
Copy link

Hello @jancborchardt! Thank you for answer and apologies for delayed answer.

Regarding the first issue, I found it is already submitted for your tracker (for upload) - nextcloud/server#673

Regarding the resume of download: I would like to ask first - is it supported with current version of NextCloud? I.e., if I download big files, then connection gets broken and restored again - will it start downloading file from the start? If this isn't supported, I will be happy to submit an issue. (Last time I tried this with OwnCloud this wasn't worked).

Regarding the issue with uploading many small files - I have found one issue very similar to what I as experiencing - nextcloud/server#3574
Maybe this is issue with a server configuration.
But anyway, before doing any testing, I need to have download/upload resume issue solved. This is critical.

@jcklpe
Copy link

jcklpe commented Aug 27, 2019

Hey I've been fiddling with this kind of thing today on my own project: https://github.com/jcklpe/BrandingToolkitTemplate/tree/twc-branch

I was wondering if ya'll's thought processes had evolved on this stuff at all in the last couple of years?

I actually found this thread because after implementing gitlfs in my repo today I wondered if it would have some kind of tie in I could use with nextcloud. I already have a self hosted nextcloud server anyway actually.

How's ya'll's process with this gone though?

@jancborchardt
Copy link
Member

Just for info @jcklpe since the thread is already a bit older: We mostly moved from using GitHub for communication like this to our forum at https://discourse.opensourcedesign.net – be welcome there and feel free to open a thread about it there. :)

(We do still use GitHub, but for specifically working on the website.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

8 participants