help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Partial checkout builds


From: Krzysztof Cieniuch
Subject: Re: Partial checkout builds
Date: Tue, 26 Oct 2010 13:36:24 +0100
User-agent: Thunderbird 2.0.0.22 (X11/20090625)

Luke Shumaker wrote:
I would suggest trying UnionFS (supported either natively, or via FUSE
on most *NIXen).  What you do is mount /release/src under /local/src,
with /local/src/ on top and /release/src on bottom.  UnionFS first
checks if a file exists on at the top layer, and keeps checking the next
layer until it finds the file, or goes through all the layers.

top:    /local/src:     util.h  m1.cc
bottom: /release/src:   util.h  m1.cc   m2.cc

Depending on which kernel you're on, you can either do the mount directly in 
/local/src,
or you may have to create a separate directory (as you do in Linux).

on Linux (via FUSE) the command to mount is:
unionfs-fuse -o cow /local/src/=RW:/release/src/=RO /build/src

on FreeBSD the command is:
Native:
mount -o union /release/src /local/src
FUSE:
mount_unionfs -o below /release/src /local/src

I hope this helps!

~ LukeShu

O
This would be perfect since it would also work for Java builds (we have mixed projects Java and c++) and is user space tool so could be used by developers ... but :-((( unfortunately FUSE is not supported
on Solaris (our primary target OS) and HP-UX ia64.
(There is a port of bsd FUSE to open solaris but it looks like it is early stage and I won't be allowed
to install some experimental kernel modules on build servers.)

I was googling for few hours for union mount, union filesystem, overlay filesystem, overlay directories and it looks that this feature is supported mainly on Linux and BSD like systems so I'm stuck with my preload hack.

On the other hand FUSE and unionfs-fuse seem like an exact match so I try different approach as well: create FS Gateway server that would on demand create unions and make them available via NFS

Thanks for pointing unionfs as possible solution.

Chris




reply via email to

[Prev in Thread] Current Thread [Next in Thread]