[csw-maintainers] experimental: subversion --> git, mercurial

rupert THURNER rupert at opencsw.org
Sun Jun 26 08:58:35 CEST 2011


On Sun, Jun 26, 2011 at 00:10, Sebastian Kayser <skayser at opencsw.org> wrote:

> * Ben Walton <bwalton at opencsw.org> wrote:
> > Excerpts from rupert THURNER's message of Sat Jun 25 10:50:20 -0400 2011:
> > > > mgar init (maybe re-init to help with svn -> git)
> > > >
> > > this seems not to work yet ...
> > >
> > > rupert at login:~/git-ben
> > > $ mgar init mercurial
> > > -bash: mgar: command not found
> >
> > There are two problems here.
> >
> > 1. You likely don't have CSWmgar installed.
>
> Just asked for it to be installed on the buildfarm, should be available
> soon on the actual build hosts. On private boxes a simple 'pkgutil -i
> mgar' against current/ should do. If anyone has any questions on mgar,
> please let me know.
>
> Basically, it's a wrapper around GAR to which you can feed the exact
> same commands as to gmake plus some logic around it to populate and
> manage the build tree (and only keep a single, central copy of a gar
> branch while doing so). mgar init <path> will checkout the full build
> tree (not only a single package) to <path>, thus in Rupert's example
> above the result might not be as expected.
>
> > 2. The mgar tool will need to learn how to checkout the git repo
> >    instead of the svn repo.
> >
> > It was a "hypothetically this would become."  Sebastian would have the
> > best idea of how easy something like this would be to implement.
>
> I'll think about it (and it should be fairly easy to implement), but can
> we take one step back for a second? From what I understand, we have two
> aspects, is that correct?
>
>  1) move mgar/gar/ to git
>  2) move mgar/pkg/* to git
>
> The first item should be straight forward (and sort of behind the
> scenes) in case we switch to mgar as the canonical build tool/interface.
>
> The second one will need adjustments to gar itself (e.g. UNCOMMITTED
> handling), some thought on whether to have a single repo or multiple
> ones, and will imply a noticable change in terms of SCM for all
> maintainers working with the pkg build repository.
>
> Can I suggest to create a wikidot wiki page with a rationale and a brief
> plan of actions (for both points) so that we can assemble a list of
> things to consider?
>
> > > > i created, as experiment, https://github.com/opencsw/mercurial,
> > > and i tried to write a description which one could execute with the
> > > existing buildserver installation.  would this be ok like this:
> > >
> https://github.com/opencsw/gar/wiki/move-a-package-from-sourceforge.subversion-to-github.opencsw
> > > ?
> >
> > I don't have time for a full review now, but this would raise an
> > interesting issue.  Currently we have one big repository for every
> > package.  What you've detailed here would see a separate repository
> > for each package description.  I can see pros and cons to this and
> > will outline some of them later[1]
>
> If a full repository (containing all build recipes) is reasonable fast
> to work with, we might actually address the people who currently prefer
> to work with individual package checkouts (cause the current full svn
> checkout is too slow for them).
>
> If not, we could consider to start using the OPENCSW_REPOSITORY info in
> the packages to establish a central package-version to build recipe
> location mapping db. Which can then e.g. be used by mgar to checkout a
> single build recipe. Just thinking out loud.


to get a feeling for the question how to get a full checkout, i created:
* https://github.com/opencsw/pkg <https://github.com/opencsw/pkg-all>
(submodules)
* https://github.com/opencsw/pkg-all (full repo)

the pkg-all feels quite heavy. creating it took nearly 9 hours, its 100mb
big, takes more than 5 minutes to push and clone, see below. and, it cannot
be cloned in parts, like the subversion tree before. and, it is not open to
have partial migration.

$ time git svn clone
https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg pkg-all
...
real    509m37.383s
user    109m23.710s
sys     378m14.304s

rupert at login:~/git-experiment/pkg-all
$ time git push origin master
Counting objects: 87829, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (51647/51647), done.
Writing objects: 100% (87829/87829), 95.34 MiB | 352 KiB/s, done.
Total 87829 (delta 31596), reused 85545 (delta 29312)
To git at github.com:opencsw/pkg-all.git
 * [new branch]      master -> master

real    5m6.088s
user    0m56.358s
sys     0m6.002s
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opencsw.org/pipermail/maintainers/attachments/20110626/6167ba81/attachment.html>


More information about the maintainers mailing list