<div class="gmail_quote">On Sun, Jun 26, 2011 at 00:10, Sebastian Kayser <span dir="ltr"><<a href="mailto:skayser@opencsw.org">skayser@opencsw.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">* Ben Walton <<a href="mailto:bwalton@opencsw.org">bwalton@opencsw.org</a>> wrote:<br>
</div><div class="im">> Excerpts from rupert THURNER's message of Sat Jun 25 10:50:20 -0400 2011:<br>
</div><div class="im">> > > mgar init (maybe re-init to help with svn -> git)<br>
> > ><br>
> > this seems not to work yet ...<br>
> ><br>
> > rupert@login:~/git-ben<br>
> > $ mgar init mercurial<br>
> > -bash: mgar: command not found<br>
><br>
> There are two problems here.<br>
><br>
> 1. You likely don't have CSWmgar installed.<br>
<br>
</div>Just asked for it to be installed on the buildfarm, should be available<br>
soon on the actual build hosts. On private boxes a simple 'pkgutil -i<br>
mgar' against current/ should do. If anyone has any questions on mgar,<br>
please let me know.<br>
<br>
Basically, it's a wrapper around GAR to which you can feed the exact<br>
same commands as to gmake plus some logic around it to populate and<br>
manage the build tree (and only keep a single, central copy of a gar<br>
branch while doing so). mgar init <path> will checkout the full build<br>
tree (not only a single package) to <path>, thus in Rupert's example<br>
above the result might not be as expected.<br>
<div class="im"><br>
> 2. The mgar tool will need to learn how to checkout the git repo<br>
>    instead of the svn repo.<br>
><br>
> It was a "hypothetically this would become."  Sebastian would have the<br>
> best idea of how easy something like this would be to implement.<br>
<br>
</div>I'll think about it (and it should be fairly easy to implement), but can<br>
we take one step back for a second? From what I understand, we have two<br>
aspects, is that correct?<br>
<br>
  1) move mgar/gar/ to git<br>
  2) move mgar/pkg/* to git<br>
<br>
The first item should be straight forward (and sort of behind the<br>
scenes) in case we switch to mgar as the canonical build tool/interface.<br>
<br>
The second one will need adjustments to gar itself (e.g. UNCOMMITTED<br>
handling), some thought on whether to have a single repo or multiple<br>
ones, and will imply a noticable change in terms of SCM for all<br>
maintainers working with the pkg build repository.<br>
<br>
Can I suggest to create a wikidot wiki page with a rationale and a brief<br>
plan of actions (for both points) so that we can assemble a list of<br>
things to consider?<br>
<div class="im"><br>
> > > i created, as experiment, <a href="https://github.com/opencsw/mercurial" target="_blank">https://github.com/opencsw/mercurial</a>,<br>
> > and i tried to write a description which one could execute with the<br>
> > existing buildserver installation.  would this be ok like this:<br>
> > <a href="https://github.com/opencsw/gar/wiki/move-a-package-from-sourceforge.subversion-to-github.opencsw" target="_blank">https://github.com/opencsw/gar/wiki/move-a-package-from-sourceforge.subversion-to-github.opencsw</a><br>


> > ?<br>
><br>
> I don't have time for a full review now, but this would raise an<br>
> interesting issue.  Currently we have one big repository for every<br>
> package.  What you've detailed here would see a separate repository<br>
> for each package description.  I can see pros and cons to this and<br>
> will outline some of them later[1]<br>
<br>
</div>If a full repository (containing all build recipes) is reasonable fast<br>
to work with, we might actually address the people who currently prefer<br>
to work with individual package checkouts (cause the current full svn<br>
checkout is too slow for them).<br>
<br>
If not, we could consider to start using the OPENCSW_REPOSITORY info in<br>
the packages to establish a central package-version to build recipe<br>
location mapping db. Which can then e.g. be used by mgar to checkout a<br>
single build recipe. Just thinking out loud.</blockquote><div><br></div><div>to get a feeling for the question how to get a full checkout, i created:</div><div>* <a href="https://github.com/opencsw/pkg-all">https://github.com/opencsw/pkg</a>  (submodules)</div>

<meta http-equiv="content-type" content="text/html; charset=utf-8"><div>* <a href="https://github.com/opencsw/pkg-all">https://github.com/opencsw/pkg-all</a> (full repo)</div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>

<br></div><div>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.</div>

<div><br></div><div>$ time git svn clone <a href="https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg">https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg</a> pkg-all</div><div>...</div><div>real    509m37.383s</div>

<div>user    109m23.710s</div><div>sys     378m14.304s</div><div><br></div><div><div>rupert@login:~/git-experiment/pkg-all</div><div>$ time git push origin master</div><div>Counting objects: 87829, done.</div><div>Delta compression using up to 24 threads.</div>

<div>Compressing objects: 100% (51647/51647), done.</div><div>Writing objects: 100% (87829/87829), 95.34 MiB | 352 KiB/s, done.</div><div>Total 87829 (delta 31596), reused 85545 (delta 29312)</div><div>To git@github.com:opencsw/pkg-all.git</div>

<div> * [new branch]      master -> master</div><div><br></div><div>real    5m6.088s</div><div>user    0m56.358s</div><div>sys     0m6.002s</div></div><div><br></div><div><br></div></div>