Live builds (was: Merged proto package)

Florian Mickler florian at mickler.org
Tue Apr 20 13:09:42 PDT 2010


On Tue, 20 Apr 2010 15:54:43 +0200
Dirk Wallenstein <halsmit at t-online.de> wrote:

> On Mon, Apr 19, 2010 at 01:19:30PM +0200, Florian Mickler wrote:
> > On Sun, 18 Apr 2010 19:30:31 +0200
> > Dirk Wallenstein <halsmit at t-online.de> wrote:
> > 
> > > A full-fledged meta-git repo management tool suite would be nice. Such
> > > an application would, for example, be able to:
> > > - inform about the state of the modules (dirty, ahead of origin/master,
> > >   not on master, etc)
> > > - swap in and out personal trees. Maybe simply per symlinks.
> > > - check out a particular katamari version of each module
> > > 
> > > Does something similar exist already? One might assume that all larger
> > > projects, like for example desktop environments, could need something
> > > like that. 
> > > 
> > 
> > check out peter hutterer's git supermodule:
> > 
> > $> git clone git://people.freedesktop.org/~whot/X11R7.5.git
> > $> cd X11R7.5
> > $> git submodule init && git submodule update
> > $> ./TINDERBOX /opt/xorg-7.5  
> > 
> > and the corresponding man-pages... :)
> > 
> > cheers,
> > Flo


> I've hacked a script that informs me about deviations from the normal
> case, which is 'HEAD == master == origin/master' , to get an
> understanding of the current state. It answers "Did I edit libX11 at
> some point?", "Did I insert private comments in some module while
> exploring?", and such, nothing more. But you can put it in front of
> `build.sh -p`  or jhbuild to catch unwanted conflicts when pulling:
> 
> ./xbuild-state.py || (echo -n "continue? (*|^C)" ; read a ) && build.sh -p ...

this would probably be a 

$> git status || ( echo -n "continue? (*|^C)"; read a) && build.sh -p

in the supermodule. 

or a 

$> git status > /dev/null || git submodule | grep -v "^ " && \ 
( echo -n "continue? (*|^C)"; read a) && build.sh -p

or a 

$> git status > /dev/null || git submodule summary && \ 
( echo -n "continue? (*|^C)"; read a) && build.sh -p

example use of the supermodule:

$> cd driver/xf86-video-intel
#[hack, commit, hack, commit]

$> ../../extras/mesa/drm
#[hack,commit,hack]

$> cd ../..

$> git status > /dev/null && jhbuild

$> git status
[snip]
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   driver/xf86-video-intel
#	modified:   extras/mesa/drm
[snip]

$> git diff
diff --git a/driver/xf86-video-intel b/driver/xf86-video-intel
index 9acf107..72fd7d1 160000
--- a/driver/xf86-video-intel
+++ b/driver/xf86-video-intel
@@ -1 +1 @@
-Subproject commit 9acf10762b5f3d3b1b33ea07792a936a25e45010
+Subproject commit 72fd7d191c33c8d0b75b06ab0717d7ca0d4e019a
diff --git a/extras/mesa/drm b/extras/mesa/drm
--- a/extras/mesa/drm
+++ b/extras/mesa/drm
@@ -1 +1 @@
-Subproject commit c9065c5963db1b8196d278c47b8da2c33a3c49d1
+Subproject commit c9065c5963db1b8196d278c47b8da2c33a3c49d1-dirty

$> git add extras/mesa/drm 

$> git add driver/xf86-video-intel

$> git commit -m "hacked on drm and intel"

$> git diff
diff --git a/extras/mesa/drm b/extras/mesa/drm
--- a/extras/mesa/drm
+++ b/extras/mesa/drm
@@ -1 +1 @@
-Subproject commit c9065c5963db1b8196d278c47b8da2c33a3c49d1
+Subproject commit c9065c5963db1b8196d278c47b8da2c33a3c49d1-dirty

$> cd extras/mesa/drm 

$> git stash
Saved working directory and index state WIP on master: c9065c5 Correct the Solaris definitions of atomic_add & atomic_dec
HEAD is now at c9065c5 Correct the Solaris definitions of atomic_add & atomic_dec

$> cd ../..
$> git status > /dev/null && echo "jhbuild"
jhbuild

> 
> But don't look too hard at the script. It's also not python-3 ready.
> 
> Greetings,
> Dirk

cheers,
Flo


More information about the xorg-devel mailing list