{"thread":{"id":"38693","subject":"Git for design","startedAt":"2015-03-03T20:23:15Z","lastAt":"2015-03-03T20:48:06Z","messageCount":2,"participants":["Ernesto Alonso Montaño Ramírez","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"256922","messageId":"CAAcjnBVBeuYL1kuCG1yF5W1KUNik3hO8e2R0g0DdXDS6u+eOyQ@mail.gmail.com","threadId":"38693","inReplyTo":null,"subject":"Git for design","fromName":"Ernesto Alonso Montaño Ramírez","fromEmail":"ernestoalonso.mr@gmail.com","sentAt":"2015-03-03T20:23:15Z","receivedAt":"2015-03-03T20:23:15Z","isPatch":false,"sender":{"key":"ernestoalonso.mr@gmail.com","avatar":null},"body":"Hello!\n\nI've a question about Git, can I use this application for design\n(architecture, no programming)? for example, controlling the versions\nof designs on AUTOCAD, PHOTOSHOP, ILLUSTRATOR, etc; management of\ndocuments...\n\nThank you.\n\nAtte: Ernesto\n"},{"id":"256928","messageId":"xmqqvbihajuh.fsf@gitster.dls.corp.google.com","threadId":"38693","inReplyTo":"CAAcjnBVBeuYL1kuCG1yF5W1KUNik3hO8e2R0g0DdXDS6u+eOyQ@mail.gmail.com","subject":"Re: Git for design","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-03-03T20:48:06Z","receivedAt":"2015-03-03T20:48:06Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ernesto Alonso Montaño Ramírez  <ernestoalonso.mr@gmail.com> writes:\n\n> I've a question about Git, can I use this application for design\n> (architecture, no programming)? for example, controlling the versions\n> of designs on AUTOCAD, PHOTOSHOP, ILLUSTRATOR, etc; management of\n> documents...\n\nYes you can use this application.\n\nBut it depends on your definition of \"use\" how \"useful\" the end\nresult would be.  The features programmers find helpful by placing\ntheir end products (i.e. the source code and text files in general)\nunder control in Git are:\n\n 1. You can go back to any arbitrary version.\n\n 2. You can inspect what the textual differences between two\n    arbitrary versions A and B (but most often, two adjacent\n    versions) are.  This is called \"diff\".\n\n 3. You can take the \"textual differences\" from 2. and replay the\n    change between A and C on top of another version C, which lets\n    you pretend as if you did the same work you did going from A to\n    B but starting at version C.  This is \"apply\", \"merge\",\n    \"cherry-pick\", and \"rebase\".\n\nUsing Git (or any version control system) on non-text files, you\nwould still get the same benefit 1., obviously.\n\nIf the assets you feed Git are not something intelligible as \"text\"\n(and I am guessing AUTOCAD, PHOTOSHOP and ILLUSTRATOR files are\nnot), you would not gain 2. or 3. immediately.\n\nYou however can still gain benefit 2., if you have a way to\n\"compare\" two versions of these files in a non-textual way.  For\nexample, I do not know AUTOCAD at all, but if the program \"autocad\"\nhas a mode where it lets you feed two AUTOCAD files and point out\nhow the two are different visually (let's assume there is such a\nprogram \"autocad-compare\" that takes two filename parameters to\ncompare), Git has a way for you to plug into its machinery so that\n\"git diff v1.0 v2.0 -- an-autocad-file\" will write out the file at\nversion 1 and version 2 into two temproary files and call out to\n\"autocad-compare tmp1 tmp2\" to have them compared.\n\nFor 3., too, Git has a mechanism to plug in a \"merge-driver\" of your\nown, e.g. if you have a version of an AUTOCAD file A that was\nmodified to B by you and modified to C by your colleague and an\nAUTOCAD program \"autocad-merge A B C\" is a way to merge the work you\ntwo did starting from the same A to produce B and C into a single\nunified version, then \"git merge\" can be told to use such an\nexternal program as a plug-in to perform the file-level merge.\n"}]}