You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Matt England <me...@mengland.net> on 2006/02/19 01:22:38 UTC
Good practice to store binary builds in the src repo?
Summary:
Does the Subversion community have a recommend practice for controlling
"ongoing" binary builds in the repo?
My project currently stores, automatically, the binary build output
("globbed" together in a standard format in a .tar.gz file for each
"client" or "server" distribution on a per-platform--eg, mingw,
debian3--basis) in the same repo as our source code. This seems to work
quite well for us save for possibly one thing: it makes my repo directory
on my server grow to be very large (the tar balls run from 3MB to more the
10MB).
Granted, we don't check in the binaries that we build all the time (we have
separate "trunk/src" and "dist/<platform>" directories to help this
separation), but still my repo server tends to balloon a bit
nonetheless...although this is not necessarily an issue, and checkouts
don't have to include our tarball build output in order to build a new tarball.
The big question I have: is there some other reason why we should not be
doing this, something we may not have stumbled upon yet?
Maybe we want builds stored in a different repo, or at least a different
place? We find it quite convenient to have it all in one spot.
An aside: we do control all of our "input"/vendor/external
libraries/binaries that we embed in our builds or at least depend upon to
run (thinks like OpenSSL, bzip2, PostgreSQL stuff) in our repo (in
trunk/dist/external), and we keep the source for these "external" projects
in a separate repo, and carefully control the copy from one repo to
another. (Let me know if this doesn't make sense, and I can provide a
more-detailed repo organization/layout.)
I realize that my question/message may not be that organized or coherent,
but I've waited too long to put forth this question to the community, and I
feel like I at least need to get the conversation going.
For what it's worth, I find this question related to the following note
that I just posted:
<http://svn.haxx.se/users/archive-2006-02/0878.shtml>
...but different enough that I thought it warranted a separate conversation
thread.
-Matt
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Good practice to store binary builds in the src repo?
Posted by John Waycott <ja...@cox.net>.
Matt England wrote:
>
> ...and a separate "build output" repo seems like the most attractive
> alternative at the moment. Alas, we still need to implement a better
> release-control (that includes more-detailed file naming of the output
> tarballs, rpms, and other packages) on top of the whatever mechanism
> we use to save/archive the release sets. I'm also looking for
> suggestions on methods/tools/paradigms for these processes, too. I've
> built and help built processes like these for other software projects,
> but I need to make more-robust things then I have in the past.
>
> I'm looking forward to more comments.
>
> I'm also interested to know if 'svn obliterate' may come to fruition
> in the near future, in the event we may want to "thoroughly clean"
> some files and their history from the existing repo; however, this is
> not a prime concern.
>
We are about to do this exact thing. We call it the "engineering
releases" repository. We won't put every build there, only builds that
need to be tested by the test group. We also will use it to store
outputs from the other groups that end up in the finished product, such
as finished documentation. A good document control system might be a
better solution, but this is what we have.
Our release repository is structured along the lines of
product/version/build. The build folder name is identical to the source
tag name. In the version folder, we also put output from other groups
such as documentation and on-line help files.
Once the test group approves a release, they copy the <build> folder to
'final'. For example, widget/2.0/2.0.0.7 gets copied to
widget/2.0/2.0-final. They then create the release notes and upload
those. The CM group creates the final package with the release notes,
on-line docs, etc. and uploads that to our PLM system in Oracle. We have
lots of different types of products, so the details are going to be
different for the different product types.
The advantage I see of using Subversion is that you have a central
mechanism to move files between different departments involved in the
final release. There's no more 'where's the build?', 'where do I put the
demoshield output?' type questions, no more huge email attachments, and
the security is better than using a shared file system.
-- John
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Good practice to store binary builds in the src repo?
Posted by Matt England <me...@mengland.net>.
At 2/18/2006 08:38 PM, eg wrote:
>I generally do not store ongoing binary builds in repositories.
>As part of a configuration management procedure you theoretically need to able
>to get back to any build at a previous timepoint (however infrequent).
>You can do this through a combination of careful tagging/labelling, build
>procedures, libraries and toolsets.
...which certainly needs to be done regardless.
I also like the benefit of being able to get back to the exact binary that
was built, in case the exact build environment could not have been easily
duplicated...
>Given that we do the above, simple archiving (outside of repository) of
>labelled
>copies of binary builds has sufficed for our needs. YMMV.
>
>If I did, I would consider using a separate repository.
...and a separate "build output" repo seems like the most attractive
alternative at the moment. Alas, we still need to implement a better
release-control (that includes more-detailed file naming of the output
tarballs, rpms, and other packages) on top of the whatever mechanism we use
to save/archive the release sets. I'm also looking for suggestions on
methods/tools/paradigms for these processes, too. I've built and help
built processes like these for other software projects, but I need to make
more-robust things then I have in the past.
I'm looking forward to more comments.
I'm also interested to know if 'svn obliterate' may come to fruition in the
near future, in the event we may want to "thoroughly clean" some files and
their history from the existing repo; however, this is not a prime concern.
-Matt
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: Good practice to store binary builds in the src repo?
Posted by eg <eg...@gmail.com>.
Matt England <mengland <at> mengland.net> writes:
>
> Summary:
>
> Does the Subversion community have a recommend practice for controlling
> "ongoing" binary builds in the repo?
>
I dont speak from a Subversion or an open-source perspective, but rather as a
user of revision control systems in software development over the past 17 years.
The answer for you will depend, at least in part, on how you and your users
intend to use these ongoing binary builds.
I generally do not store ongoing binary builds in repositories.
As part of a configuration management procedure you theoretically need to able
to get back to any build at a previous timepoint (however infrequent).
You can do this through a combination of careful tagging/labelling, build
procedures, libraries and toolsets.
Given that we do the above, simple archiving (outside of repository) of labelled
copies of binary builds has sufficed for our needs. YMMV.
If I did, I would consider using a separate repository. Storing "large" amounts
of binary files in a repository tends to have some kind of cost in most version
control systems, at least during certain operations.
Others will no doubt share differing viewpoints and experience.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org