Re: Using Git for applications other than code development

2018-07-25 Thread Konstantin Khomoutov
On Wed, Jul 25, 2018 at 01:02:16PM +, David Hind wrote:

> I work for a company that is looking to adopt VCS and I like sound of
> Git (although I have no experience of using VCS). My question is,
> everything seems to be directed towards code developers. Can I use Git
> to do revision control for other types of design document? For example
> electrical circuit designs, circuit PCB designs etc.?

In addition to what Randall said (I would affirm he has presented a
comprehensive and correct picture), I'd make one minor note: Git is a
distributed VCS, and this requires certain pondering.

Even though you will almost certainly have one central (also
colloquially called "rendez-vouz") repository where everyone pushes
their changes to, and fetches them from, Git allows recording any number
of so-called "commits" — atomic, from a logical standpoint, changes to
the project — before sharing them with the rest of the team.

For software development, this _is_ blessing; for other kinds of
development it may be not so good — with the need to somehow resolve
possible conflicts in series of changes made in parallel by multiple
developers to the same content being supposedly the main impediment.
With software development it's simple: it's still done by writing
textual files (even tools which generate code automatically tend to
generate something textual these days), and conflicts in textual files
are relatively easy to represent (even without resorting to specialized
tools). Now, say, let's look at gamedev where a part of the team are
artists which work on "assets" — such as 3D-models and textures.
Two conflicting changes in the same texture are harder to reconcile.

Some (most?) centralized VCSes (as opposed to distibuted) support
explicit "locking" of certain files - which works like sort of claim
"I'm working on this file, don't touch it". Git does not have locking,
and if you think it may benefit your workflow then may be other options
might suite you better.



RE: Using Git for applications other than code development

2018-07-25 Thread Randall S. Becker
Hi David,

I have used git over the past 3 years in a manufacturing environment to
manage component designs in a CAD/factory automation setting. There are a
few main factors that you need to consider:

1. You will need an external tool like Git for Windows, GitHub Client or
SourceTree for performing git operations on your workstations because your
design software is unlikely to support any VCS directly.
2. Your design software probably needs to store its designs in some text
form. This will allow a lot of the advanced git functions, like annotate, to
work nicely. This is not a requirement as git is happy to manage binaries
(your renderings, for example).
3. You might need to figure out a way to interpret changes when there are
conflicts between designers. This either means learning the underlying
format (auto-lisp??) or making choices of whose design is going to take
priority without trying to merge changes or otherwise resolve conflicts.
4. Lastly (but really there are more you will encounter), you will need to
decide on either a local shared repository (GitHub Enterprise, BitBucket
Server, GitLab, etc.) or a similar cloud solution (same names). There are
costs for each, usually depending on your team size. The costs are pretty
small for small teams and more than worth it, IMHO.
5. I have been repeatedly surprised at how many hardware component designers
actually have git experience (followed lastly deliberately).

Git is generally a good fit for advanced manufacturing. I'm including a
discussion of git in a seminar I am giving at IWF Atlanta next month.

Cheers,
Randall

-- Brief whoami:
 NonStop developer since approximately 2112884442
 UNIX developer since approximately 421664400
-- In my real life, I talk too much.


From: git-ow...@vger.kernel.org  On Behalf Of
David Hind
Sent: July 25, 2018 9:02 AM
To: 'git@vger.kernel.org' 
Subject: Using Git for applications other than code development

Hi, 

I work for a company that is looking to adopt VCS and I like sound of Git
(although I have no experience of using VCS). My question is, everything
seems to be directed towards code developers. Can I use Git to do revision
control for other types of design document? For example electrical circuit
designs, circuit PCB designs etc.?

Thanks!
David 



Dynex Semiconductor Limited.
Registered in England and Wales: No 3824626
Registered Office: Doddington Road, Lincoln, LN6 3LF, United Kingdom

This e-mail and any attachments are confidential and may be privileged. If
you are not the intended recipient please notify the sender immediately,
delete the email from your system and do not disclose the contents to
another person, use it for any purpose or store or copy the information in
any medium.
Whilst we run anti-virus software on all internet emails we do not accept
responsibility for viruses and advise that in keeping with good computing
practice you should ensure this email and any attachments are virus free.