Ideally, I'd like to be able to version our repos with SVN, so that we
could branch and tag specific RPM sets that would be independent of
changes to the rest, from that point forward. The extra disk usage
would be minimal (SVN makes cheap copies, using a CoW technique), and
we'd have history, etc.

But I see two big problems with this: First, SVN doesn't perform well
on lots of large binaries. Second, the standard SVN workflow requires
that changes happen in a 'working copy' directory separate from the
central repo, roughly doubling your storage requirement. (And I don't
want to wait hours and hours to checkout, say, the main F11 repo
(16,000+ pkgs)).

My solution, to date, has been the 'cobbler repo copy' command and
some home-brew shells scripting. If I want to create a new 'branch' or
'tag' off the 'Fedora-f11-x86_64' repo, I use a two-step process:

 - First, I run 'cobbler repo copy --name='Fedora-f11-x86_64'
--newname='Fedora-f11-x86_64..my_branch_name', which copies the
Cobbler config object.

 - Second, I run my shell script, passing it the original and new repo
names. It creates hard links in the new dir to the package files in
the original dir.

Later, if I want to update a branch, I usually run 'cobbler reposync
--only' on the new branch, and then I use the same script as before to
hard-link any new packages. Or, if I've been updating the branch with
custom dev packages, I can merge it back (same script, it's flexible)
and move all the branch changes into the original.

I keep the RCS idioms by convention--everybody seems to understand
what trunk, branches, and tags mean. The '..' double-dot notation
works kind of like a path separator, in names, and by convention the
names are hierarchical. But it's just a convention, and all this has
to happen manually, which is a pain--i have hundreds of repos, in
cobbler, mostly branches and tags.

I've submitted patches to 'reposync' to replace the hardlinking
script, and hopefully they'll be accepted at some point. I'm working
on integrating that feature into Cobbler, now, just so it can call
'reposync' with the right options to use the new feature.

After that, I'll probably ask Michael DeHaan about adding a flag to
'repo copy' to make the hardlinks, which makes new branches/tags much
easier to set up. Also, a 'cobbler repo merge' would be nice.

Anyway, these are just my ideas, I hope you fond something useful in them.

-Ryan


On 2009-09-17, Eric Doutreleau <[email protected]> wrote:
> i m using cobbler and i m wondering how people use the reposync fonction.
>
> I have the following problem.
> when i use cobbler reposync the updates are immediately available for
> the machine to do the updates.
> I would like to have a staging area where i can validate first the
> update on a test machine and after pushing them
> in the cobbler infrastructure.
>
> Has someone already done some thing like that with cobbler?
> _______________________________________________
> cobbler mailing list
> [email protected]
> https://fedorahosted.org/mailman/listinfo/cobbler
>


-- 
Ryan B. Lynch
[email protected]
_______________________________________________
cobbler mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/cobbler

Reply via email to