PlanetSquires Forums

Support Forums => General Board => Topic started by: Knuth Konrad on March 24, 2014, 12:36:28 PM

Title: VCS - to binary or not to binary?
Post by: Knuth Konrad on March 24, 2014, 12:36:28 PM
(Please note: I'm using the term "binary" here loosely and refer to it as "anything non plain-text". That includes for example EXEs/libraries, (3rd party) documentation in PDFs, graphics (icons, cursor) and similar files.)

Fellow version control system users,

How do you handle binary files which you consider part of your project in regards to the VCS you use? Do you track them along with your source code in your VCS? Or do you keep them separated? If the later, how so?

Let us keep aside the technical aspect if your choice of VCS handles binary files at all. I'm more interested in your conceptual arguments.

I'm still undecided about what the right approach might be.

On the one hand, having a set of all files as they were at a certain date/time in the past seems to be very helpful for hunting that strange bug, which occurs once in a while but can't be reproduced. Sure, you can *create* a EXE from the sources of that release. But can you be 100% certain that this EXE is identical to the one you delivered in the past, even when compiled with the same sources? Are you sure no patch to your dev environment (OS, language, build tools etc.) has changed since then which might result in a different EXE?

On the other hand I'm well aware that VCS are not meant to handle binary files. Although theses days VCS' seem to handle binary blobs just fine in terms of storing/retrieving, the fact that you can't really "do anything" (diff/merge etc.) with those files, makes me question the usage of a VCS to store what basically boils down to snapshots in time. This can be easily achieved with a ZIP or similar.

So, what's your opinion?
Title: Re: VCS - to binary or not to binary?
Post by: Peter House on March 24, 2014, 12:55:29 PM
Yes.

My strongest argument is that you have a single place to go to get a snapshot of your project and do not have to go and find your zip files with the matching .exe files for a given build.

The last company I worked for placed the entire development environment under VCS and it was possible to revert to a date before compiler patches.  Since we were using IAR compilers, and they were patched weekly and poorly, this saved us a couple of times!  I am not sure I would do this for PB since the dev tools change so infrequently.

Peter
Title: Re: VCS - to binary or not to binary?
Post by: Knuth Konrad on March 25, 2014, 06:04:18 AM
Quote from: Peter House on March 24, 2014, 12:55:29 PM
The last company I worked for placed the entire development environment under VCS and it was possible to revert to a date before compiler patches.

Interesting. In that special case, I'd have gone with virtual machines that could be snapshoted/rolled back, instead of putting everything into a VCS.
Title: Re: VCS - to binary or not to binary?
Post by: Peter House on April 15, 2014, 01:03:40 AM
Back then, the only virtual machine ran on System 360's.  :)