I’ll try to explain with a scenario: a website. Assume that you need a particular graphical element so you choose to create a PSD file for it and you put it under version control. But for maintaining the coherence between commits you should also submit the generated PNG file.
Is this the proper approach to the problem?
Bonus: Can you provide a good online reference that talks about that kind of practices?
I add the Git tag because I’m mainly interested to this particular software, but I guess it’s a common issue.
Yes, there are sometimes good reasons to keep both the generating file and the generated file under version control. But perhaps your scenario is not one of them, if you assume that all the developers working on the project have access to the generator (apparently some Adobe software is used to transform
*.psdfiles to*.pngfiles, so this supposes that all the developers have access to that Adobe software, and that they can run it from the building procedure). You could also keep image files e.g. as SVG files (edited by inkscape).Good reasons to keep both generating and generated variants include bootstrapped systems. When you develop a language in itself, translated by its own translator, you’ll need to keep both variants under version control. I know at least of two examples: Ocaml, whose bytecode & native compilers are written in Ocaml, so the (generated) bytecode form of the compiler is kept under SVN, and my GCC MELT, a high level domain specific language for GCC. The MELT translator (from MELT DSL to C) is coded in MELT, so I keep the translated form (as generated C code) under version control, together with the MELT source code form of it.