Re: [gentoo-dev] Re: git-2.eclass final review

2011-04-18 Thread Tomáš Chvátal
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Dne 17.4.2011 20:31, James Cloos napsal(a):
 That looks good (by inspection).
 
 My only concern is the branch deletion in the non-bare update.
 
 First of all, * should be escaped.  It seems to work OK with gnu grep,
 but it would be better to be explicit.  (grep(1) says that only ?+{|()
 loose their meta-meaning in basic regexps.)
 
 Second, why delete the other branches at all?  I'd rather have a
 complete clone.  Just the checkout ought to be enough.
 
 Otherwise, cool.
 
 -JimC
They are local clones - they can be deleted on remote already, so we
wipe them all expect master every time unless needed.

No need to escape it if it is in . it is parsed as the char itself
like this.
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk2sCBwACgkQHB6c3gNBRYddlgCfcK1sl4NKmOBWDWP9AJtEzgyw
VGEAmgLY4roHyg8+2szY/lB0B30jaZZv
=X/fM
-END PGP SIGNATURE-



Re: [gentoo-dev] Re: git-2.eclass final review

2011-04-18 Thread James Cloos
 TC == Tomáš Chvátal scarab...@gentoo.org writes:

TC No need to escape it if it is in . it is parsed as the char itself
TC like this.

The escaping is for grep(1), not for sh(1).

-JimC
-- 
James Cloos cl...@jhcloos.com OpenPGP: 1024D/ED7DAEA6



Re: [gentoo-dev] Re: git-2.eclass final review

2011-04-17 Thread James Cloos
That looks good (by inspection).

My only concern is the branch deletion in the non-bare update.

First of all, * should be escaped.  It seems to work OK with gnu grep,
but it would be better to be explicit.  (grep(1) says that only ?+{|()
loose their meta-meaning in basic regexps.)

Second, why delete the other branches at all?  I'd rather have a
complete clone.  Just the checkout ought to be enough.

Otherwise, cool.

-JimC
-- 
James Cloos cl...@jhcloos.com OpenPGP: 1024D/ED7DAEA6



Re: [gentoo-dev] Re: git-2.eclass final review

2011-03-24 Thread James Cloos
 DB == Donnie Berkholz dberkh...@gentoo.org writes:

JC Or better yet, git clone.

DB This could work well with --shared; even worked for me on separate 
DB partitions.

Yes, I did mean »git clone -l -s«.

-JimC
-- 
James Cloos cl...@jhcloos.com OpenPGP: 1024D/ED7DAEA6



Re: [gentoo-dev] Re: git-2.eclass final review

2011-03-24 Thread Donnie Berkholz
On 10:44 Wed 23 Mar , James Cloos wrote:
 TC So live with it.
 
 I cannot.  It makes the eclass useless.
 
 I have almost 2 gigs of bare repo in distdirs/git-src.  
 
 A forced re-download of all of that is just not possible!
 
 The existing distdir clones *MUST* continue to work.
 
 My applogies for not having looked for this kind of breakage in the new
 eclass before now.  The current git eclass finally got the submodules-
 vs-normal stuff worked out some time ago; the possibility of going
 backwards never occurred to me ☹
 
 As someone who makes heavy use of live ebuilds, someone who will be
 directly and severely affected by such a change, I have to beg you
 to keep the current logic for submodule-less repos.

I was discussing a couple of ideas on IRC with scarabeus yesterday but 
haven't had a chance to look into them in more detail yet:

- Providing automatic migration from the old system to the new. This is 
the simplest approach to deal with your specific problem but still 
leaves separate codepaths for submodule and non-submodule repos.

- Handling submodules in bare checkouts. Perhaps we could detect whether 
submodules are in use (need to find the right place/way in git), then 
grab them as separate bare checkouts that would eventually be cloned 
into TMPDIR by changing the repo location git looks for (again, need to 
sort out how in git).

-- 
Thanks,
Donnie

Donnie Berkholz
Sr. Developer, Gentoo Linux
Blog: http://dberkholz.com


pgpQLdlUg2rXh.pgp
Description: PGP signature


Re: [gentoo-dev] Re: git-2.eclass final review

2011-03-23 Thread James Cloos
 MF == Mike Frysinger vap...@gentoo.org writes:

MF ideally, the git eclass should be creating bare checkouts only in its
MF store dir, in which case it could use `git archive | tar` to move
MF things over ...

Or better yet, git clone.

Most builds from vcs work best when they know that they are building
from vcs.

-JimC
-- 
James Cloos cl...@jhcloos.com OpenPGP: 1024D/ED7DAEA6



Re: [gentoo-dev] Re: git-2.eclass final review

2011-03-23 Thread Tomáš Chvátal
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Dne 23.3.2011 13:28, James Cloos napsal(a):
 MF == Mike Frysinger vap...@gentoo.org writes:
 
 MF ideally, the git eclass should be creating bare checkouts only in its
 MF store dir, in which case it could use `git archive | tar` to move
 MF things over ...
 
 Or better yet, git clone.
 
 Most builds from vcs work best when they know that they are building
 from vcs.
 
 -JimC
I explained multiple times already why bare checkouts are not working in
our case.
I don't get why you guys keep repeating it like in the loop.
(I also asked for some implementation where the bare would be possible
with submodules stored in distdir, yet nobody said it is possible)

So live with it.
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk2J7ygACgkQHB6c3gNBRYdVMACfUPxairvFmsCM+gHTODS1EhTM
W0MAoKhDAnzkuOV0HUHfrBUmcY+nPli7
=WVty
-END PGP SIGNATURE-



Re: [gentoo-dev] Re: git-2.eclass final review

2011-03-23 Thread James Cloos
 TC == Tomáš Chvátal scarab...@gentoo.org writes:

TC I explained multiple times already why bare checkouts are not
TC working in our case.

Wait a minute.

Not using bare clones in DISTDIR is completely unacceptable here.

It is bad enough to have to use non-bare for repos which have
submodules.  Doing so for all is b0rked.

TC I don't get why you guys keep repeating it like in the loop.

I didn't notice that bug until you just pointed it out.  Nor did I see
any of the explanations you mention above.

TC (I also asked for some implementation where the bare would be possible
TC with submodules stored in distdir, yet nobody said it is possible)

TC So live with it.

I cannot.  It makes the eclass useless.

I have almost 2 gigs of bare repo in distdirs/git-src.  

A forced re-download of all of that is just not possible!

The existing distdir clones *MUST* continue to work.

My applogies for not having looked for this kind of breakage in the new
eclass before now.  The current git eclass finally got the submodules-
vs-normal stuff worked out some time ago; the possibility of going
backwards never occurred to me ☹

As someone who makes heavy use of live ebuilds, someone who will be
directly and severely affected by such a change, I have to beg you
to keep the current logic for submodule-less repos.

P.S.  The kind of clone used in distdir is irrelevant to the
  fact that git-clone should be used to populate $S.

-JimC
-- 
James Cloos cl...@jhcloos.com OpenPGP: 1024D/ED7DAEA6



Re: [gentoo-dev] Re: git-2.eclass final review

2011-03-23 Thread Donnie Berkholz
On 08:28 Wed 23 Mar , James Cloos wrote:
  MF == Mike Frysinger vap...@gentoo.org writes:
 
 MF ideally, the git eclass should be creating bare checkouts only in its
 MF store dir, in which case it could use `git archive | tar` to move
 MF things over ...
 
 Or better yet, git clone.

This could work well with --shared; even worked for me on separate 
partitions.

-- 
Thanks,
Donnie

Donnie Berkholz
Sr. Developer, Gentoo Linux
Blog: http://dberkholz.com


pgpXPp3orTeuv.pgp
Description: PGP signature


Re: [gentoo-dev] Re: git-2.eclass final review

2011-03-22 Thread Mike Frysinger
On Tue, Mar 22, 2011 at 7:41 PM, Ryan Hill wrote:
 On Tue, 22 Mar 2011 19:08:53 -0400 Mike Frysinger wrote:
  rsync -rlpgo . ${EGIT_SOURCEDIR} \

 this means you need to have DEPEND=net-misc/rsync.  why not just use
 `cp -pPR` instead ?  i vaguely recall rsync being slower than a
 straight cp too ... not much point of doing a rsync when the vast
 majority of the time (all the time?) the destination is empty.

 i think i remember doing some time tests using a tar pipe at one point with
 subversion.eclass that blew cp out of the water.

 tar -cf - . | tar -xf - -C ${EGIT_SOURCEDIR}

 might be worth looking at.

ideally, the git eclass should be creating bare checkouts only in its
store dir, in which case it could use `git archive | tar` to move
things over ...
-mike