mrconfig | 239 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ mrconfig-update | 38 ++++++++ mrconfig.README | 63 ++++++++++++++ mrconfig.head | 19 ++++ 4 files changed, 359 insertions(+)
New commits: commit ae470a2cfebcab05d2d33c8de2012cde8e398839 Author: Cyril Brulebois <[email protected]> Date: Thu Nov 18 02:43:59 2010 +0100 Adapt syntax for better output through markdown. diff --git a/mrconfig.README b/mrconfig.README index 586cc8c..bc8e24f 100644 --- a/mrconfig.README +++ b/mrconfig.README @@ -2,7 +2,7 @@ ## Foreword -Although it's not required to maintain any package, "mr" is recommended so +Although it's not required to maintain any package, `mr` is recommended so that one can clone all packages at once. It also helps keeping up-to-date, by fetching everything through a single command. @@ -10,7 +10,7 @@ by fetching everything through a single command. ## Bootstrap Go to the directory where you want to clone all XSF packages (let's -call it ~/debian-x) and run this: +call it `~/debian-x`) and run this: # Get XSF tools: git clone git://git.debian.org/pkg-xorg/debian/xsf-tools.git debian/xsf-tools.git @@ -19,45 +19,45 @@ call it ~/debian-x) and run this: # Needed to get custom commands to work: echo $(pwd)/.mrconfig >> ~/.mrtrust -You're now ready to fetch everything. By calling "mr up", if a local +You're now ready to fetch everything. By calling `mr up`, if a local repository is missing, cloning happens, fetching otherwise: mr -c .mrconfig up -To speed things up, you can pass --jobs to fetch in parallel: +To speed things up, you can pass `--jobs` to fetch in parallel: mr -c .mrconfig --jobs 4 up ## Further configuration -To avoid passing "-c .mrconfig" every time, you can add the following stanza -to ~/.mrconfig: +To avoid passing `-c .mrconfig` every time, you can add the following stanza +to `~/.mrconfig`: [~/debian-x] chain = true update = echo "Updating XSF packages." -It's now sufficient to call "mr up" in any directory in the ~/debian-x +It's now sufficient to call `mr up` in any directory in the `~/debian-x` directory to update all repositories the former contains. ## But I want to commit! By default all repositories are cloned anonymously through the git protocol. -To be able to push, you can just perform an s,git://,ssh://, substitution in -the appropriate .git/config file. An alias is available in our mrconfig file: +To be able to push, you can just perform an `s,git://,ssh://`, substitution in +the appropriate `.git/config` file. An alias is available in our mrconfig file: mr git2ssh -It should only fail on the top-level directory (in our case: ~/debian-x) for -which the alias is not defined (in ~/.mrconfig), but since that should only be -one-shot, that's probably not a big deal. +It should only fail on the top-level directory (in our case: `~/debian-x`) for +which the alias is not defined (in `~/.mrconfig`), but since that should only +be one-shot, that's probably not a big deal. ## I want to update that file! -The mrconfig-update script is what you want. As long as you have an -account on git.debian.org, it's going to run a find command there to -fetch an updated list of all repositories, and generate an updated -mrconfig file accordingly, using mrconfig.head as header. +The `mrconfig-update` script is what you want. As long as you have an account +on `git.debian.org`, it's going to run a find command there to fetch an +updated list of all repositories, and generate an updated mrconfig file +accordingly, using `mrconfig.head` as header. commit 0c14b8d1fecb78773e742d276488382bd0d9b1bf Author: Cyril Brulebois <[email protected]> Date: Thu Nov 18 02:28:26 2010 +0100 Add some words about mrconfig-update. diff --git a/mrconfig.README b/mrconfig.README index 217b99c..586cc8c 100644 --- a/mrconfig.README +++ b/mrconfig.README @@ -53,3 +53,11 @@ the appropriate .git/config file. An alias is available in our mrconfig file: It should only fail on the top-level directory (in our case: ~/debian-x) for which the alias is not defined (in ~/.mrconfig), but since that should only be one-shot, that's probably not a big deal. + + +## I want to update that file! + +The mrconfig-update script is what you want. As long as you have an +account on git.debian.org, it's going to run a find command there to +fetch an updated list of all repositories, and generate an updated +mrconfig file accordingly, using mrconfig.head as header. commit a44df22ff1f8040c6c07a3d4d43aa910838e3dfb Author: Cyril Brulebois <[email protected]> Date: Thu Nov 18 02:22:34 2010 +0100 Avoid duplicating hostname and home directory. diff --git a/mrconfig-update b/mrconfig-update index b9c6d9e..f03d638 100755 --- a/mrconfig-update +++ b/mrconfig-update @@ -11,7 +11,10 @@ tools_repo=debian/xsf-tools.git mrconfig=mrconfig # Some blurb to make everything work: -cp mrconfig.head $mrconfig +sed \ + -e "s,@@host@@,$host,g" \ + -e "s,@@home@@,$home,g" \ + mrconfig.head > $mrconfig # Build a list of repositories based on the actual repositories on the # server: diff --git a/mrconfig.head b/mrconfig.head index 7acbfd0..8456ab0 100644 --- a/mrconfig.head +++ b/mrconfig.head @@ -6,7 +6,7 @@ checkout = here=${MR_CONFIG%%.mrconfig}; repo_dir=$(echo "$MR_REPO"|sed -e "s,$here,," -e "s,/$,,"); repo_name=$(basename $repo_dir); - git clone git://git.debian.org/git/pkg-xorg/$repo_dir $repo_name + git clone git://@@host@@@@home@@/$repo_dir $repo_name # Avoid the default 'git pull' and all the merges that come with it: update = @@ -14,6 +14,6 @@ update = # Make it easy to switch from git:// to ssh:// so that one can push: git2ssh = - sed -i 's,git://git.debian.org,ssh://git.debian.org,' $MR_REPO/.git/config + sed -i 's,git://@@host@@,ssh://@@host@@,' $MR_REPO/.git/config commit 2343a37366ae33f7c665724266fac2bb8cd41c03 Author: Cyril Brulebois <[email protected]> Date: Thu Nov 18 02:08:31 2010 +0100 Add mr alias "git2ssh" to update remotes. diff --git a/mrconfig b/mrconfig index f78a0ae..b5f6f2b 100644 --- a/mrconfig +++ b/mrconfig @@ -12,6 +12,10 @@ checkout = update = git fetch "$@" +# Make it easy to switch from git:// to ssh:// so that one can push: +git2ssh = + sed -i 's,git://git.debian.org,ssh://git.debian.org,' $MR_REPO/.git/config + [app/compiz.git] [app/grandr.git] diff --git a/mrconfig.README b/mrconfig.README index 342fb15..217b99c 100644 --- a/mrconfig.README +++ b/mrconfig.README @@ -40,3 +40,16 @@ to ~/.mrconfig: It's now sufficient to call "mr up" in any directory in the ~/debian-x directory to update all repositories the former contains. + + +## But I want to commit! + +By default all repositories are cloned anonymously through the git protocol. +To be able to push, you can just perform an s,git://,ssh://, substitution in +the appropriate .git/config file. An alias is available in our mrconfig file: + + mr git2ssh + +It should only fail on the top-level directory (in our case: ~/debian-x) for +which the alias is not defined (in ~/.mrconfig), but since that should only be +one-shot, that's probably not a big deal. diff --git a/mrconfig.head b/mrconfig.head index 2212e36..7acbfd0 100644 --- a/mrconfig.head +++ b/mrconfig.head @@ -12,4 +12,8 @@ checkout = update = git fetch "$@" +# Make it easy to switch from git:// to ssh:// so that one can push: +git2ssh = + sed -i 's,git://git.debian.org,ssh://git.debian.org,' $MR_REPO/.git/config + commit e87015019812d2151b97e067f639fe7f5b06d292 Author: Cyril Brulebois <[email protected]> Date: Thu Nov 18 01:34:19 2010 +0100 Add some mr documentation. diff --git a/mrconfig.README b/mrconfig.README new file mode 100644 index 0000000..342fb15 --- /dev/null +++ b/mrconfig.README @@ -0,0 +1,42 @@ +# How to use XSF's mrconfig + +## Foreword + +Although it's not required to maintain any package, "mr" is recommended so +that one can clone all packages at once. It also helps keeping up-to-date, +by fetching everything through a single command. + + +## Bootstrap + +Go to the directory where you want to clone all XSF packages (let's +call it ~/debian-x) and run this: + + # Get XSF tools: + git clone git://git.debian.org/pkg-xorg/debian/xsf-tools.git debian/xsf-tools.git + # Make the mrconfig file visible from the top-level: + ln -s debian/xsf-tools.git/mrconfig .mrconfig + # Needed to get custom commands to work: + echo $(pwd)/.mrconfig >> ~/.mrtrust + +You're now ready to fetch everything. By calling "mr up", if a local +repository is missing, cloning happens, fetching otherwise: + + mr -c .mrconfig up + +To speed things up, you can pass --jobs to fetch in parallel: + + mr -c .mrconfig --jobs 4 up + + +## Further configuration + +To avoid passing "-c .mrconfig" every time, you can add the following stanza +to ~/.mrconfig: + + [~/debian-x] + chain = true + update = echo "Updating XSF packages." + +It's now sufficient to call "mr up" in any directory in the ~/debian-x +directory to update all repositories the former contains. commit ee6ddeab5a2248a4a6377cea43025a9c6919dd0a Author: Cyril Brulebois <[email protected]> Date: Thu Nov 18 00:58:35 2010 +0100 Add mrconfig magic. diff --git a/mrconfig b/mrconfig new file mode 100644 index 0000000..f78a0ae --- /dev/null +++ b/mrconfig @@ -0,0 +1,235 @@ +[DEFAULT] +# repo_dir is what's inside the brackets for each repository below, +# and repo_name its basename, so that the mr logic (calling git clone +# when the local repository is still missing) works: +checkout = + here=${MR_CONFIG%%.mrconfig}; + repo_dir=$(echo "$MR_REPO"|sed -e "s,$here,," -e "s,/$,,"); + repo_name=$(basename $repo_dir); + git clone git://git.debian.org/git/pkg-xorg/$repo_dir $repo_name + +# Avoid the default 'git pull' and all the merges that come with it: +update = + git fetch "$@" + + +[app/compiz.git] +[app/grandr.git] +[app/intel-gen4asm.git] +[app/mesa-demos.git] +[app/twm.git] +[app/x11-apps.git] +[app/x11-session-utils.git] +[app/x11-utils.git] +[app/x11-xfs-utils.git] +[app/x11-xkb-utils.git] +[app/x11-xserver-utils.git] +[app/xauth.git] +[app/xbacklight.git] +[app/xdm.git] +[app/xfs.git] +[app/xinit.git] +[app/xprint-utils.git] +[app/xterm.git] +[app/xutils-dev.git] +[app/xutils.git] +#[attic/app/aquamarine.git] +#[attic/app/beryl-core.git] +#[attic/app/beryl-dbus.git] +#[attic/app/beryl-manager.git] +#[attic/app/beryl-plugins.git] +#[attic/app/beryl-settings.git] +#[attic/app/compiz-extra.git] +#[attic/app/emerald.git] +#[attic/app/emerald-themes.git] +#[attic/app/heliodor.git] +#[attic/app/xbase-clients.git] +#[attic/driver/xserver-xorg-input-calcomp.git] +#[attic/driver/xserver-xorg-input-digitaledge.git] +#[attic/driver/xserver-xorg-input-dmc.git] +#[attic/driver/xserver-xorg-input-dynapro.git] +#[attic/driver/xserver-xorg-input-elo2300.git] +#[attic/driver/xserver-xorg-input-jamstudio.git] +#[attic/driver/xserver-xorg-input-magellan.git] +#[attic/driver/xserver-xorg-input-magictouch.git] +#[attic/driver/xserver-xorg-input-microtouch.git] +#[attic/driver/xserver-xorg-input-palmax.git] +#[attic/driver/xserver-xorg-input-spaceorb.git] +#[attic/driver/xserver-xorg-input-summa.git] +#[attic/driver/xserver-xorg-input-tek4957.git] +#[attic/driver/xserver-xorg-input-ur98.git] +#[attic/driver/xserver-xorg-video-amd.git] +#[attic/driver/xserver-xorg-video-ast.git] +#[attic/driver/xserver-xorg-video-avivo.git] +#[attic/driver/xserver-xorg-video-cyrix.git] +#[attic/driver/xserver-xorg-video-imstt.git] +#[attic/driver/xserver-xorg-video-nsc.git] +#[attic/driver/xserver-xorg-video-sunbw2.git] +#[attic/driver/xserver-xorg-video-vga.git] +#[attic/driver/xserver-xorg-video-via.git] +#[attic/lib/libxevie.git] +#[attic/lib/libxfontcache.git] +#[attic/lib/libxkbui.git] +#[attic/lib/libxtrap.git] +#[attic/lib/libxxf86misc.git] +#[attic/proto/x11proto-evie.git] +#[attic/proto/x11proto-fontcache.git] +#[attic/proto/x11proto-trap.git] +[bling/ccsm.git] +[bling/compizconfig-backend-gconf.git] +[bling/compizconfig-backend-kconfig4.git] +[bling/compizconfig-backend-kconfig.git] +[bling/compizconfig-python.git] +[bling/compiz-fusion-bcop.git] +[bling/compiz-fusion-plugins-extra.git] +[bling/compiz-fusion-plugins-main.git] +[bling/compiz-fusion-plugins-unsupported.git] +[bling/libcompizconfig.git] +[bling/tools.git] +[data/xbitmaps.git] +[data/xcursor-themes.git] +[data/xkb-data.git] +[debian/xorg.git] +[debian/xsf-tools.git] +[doc-hackers.git] +[doc/xorg-docs.git] +[doc/xorg-sgml-doctools.git] +[driver/xserver-xorg-input-acecad.git] +[driver/xserver-xorg-input-aiptek.git] +[driver/xserver-xorg-input-citron.git] +[driver/xserver-xorg-input-elographics.git] +[driver/xserver-xorg-input-evdev.git] +[driver/xserver-xorg-input-evtouch.git] +[driver/xserver-xorg-input-fpit.git] +[driver/xserver-xorg-input-hyperpen.git] +[driver/xserver-xorg-input-joystick.git] +[driver/xserver-xorg-input-keyboard.git] +[driver/xserver-xorg-input-mouse.git] +[driver/xserver-xorg-input-mutouch.git] +[driver/xserver-xorg-input-penmount.git] +[driver/xserver-xorg-input-synaptics.git] +[driver/xserver-xorg-input-vmmouse.git] +[driver/xserver-xorg-input-void.git] +[driver/xserver-xorg-video-apm.git] +[driver/xserver-xorg-video-ark.git] +[driver/xserver-xorg-video-ati.git] +[driver/xserver-xorg-video-chips.git] +[driver/xserver-xorg-video-cirrus.git] +[driver/xserver-xorg-video-dove.git] +[driver/xserver-xorg-video-dummy.git] +[driver/xserver-xorg-video-fbdev.git] +[driver/xserver-xorg-video-glide.git] +[driver/xserver-xorg-video-glint.git] +[driver/xserver-xorg-video-i128.git] +[driver/xserver-xorg-video-i740.git] +[driver/xserver-xorg-video-intel.git] +[driver/xserver-xorg-video-ivtvdev.git] +[driver/xserver-xorg-video-mach64.git] +[driver/xserver-xorg-video-mga.git] +[driver/xserver-xorg-video-neomagic.git] +[driver/xserver-xorg-video-newport.git] +[driver/xserver-xorg-video-nouveau.git] +[driver/xserver-xorg-video-nv.git] +[driver/xserver-xorg-video-openchrome.git] +[driver/xserver-xorg-video-qxl.git] +[driver/xserver-xorg-video-r128.git] +[driver/xserver-xorg-video-radeonhd.git] +[driver/xserver-xorg-video-rendition.git] +[driver/xserver-xorg-video-s3.git] +[driver/xserver-xorg-video-s3virge.git] +[driver/xserver-xorg-video-savage.git] +[driver/xserver-xorg-video-siliconmotion.git] +[driver/xserver-xorg-video-sis.git] +[driver/xserver-xorg-video-sisusb.git] +[driver/xserver-xorg-video-suncg14.git] +[driver/xserver-xorg-video-suncg3.git] +[driver/xserver-xorg-video-suncg6.git] +[driver/xserver-xorg-video-sunffb.git] +[driver/xserver-xorg-video-sunleo.git] +[driver/xserver-xorg-video-suntcx.git] +[driver/xserver-xorg-video-tdfx.git] +[driver/xserver-xorg-video-tga.git] +[driver/xserver-xorg-video-trident.git] +[driver/xserver-xorg-video-tseng.git] +[driver/xserver-xorg-video-v4l.git] +[driver/xserver-xorg-video-vesa.git] +[driver/xserver-xorg-video-vmware.git] +[driver/xserver-xorg-video-voodoo.git] +[font/xfonts-100dpi.git] +[font/xfonts-75dpi.git] +[font/xfonts-base.git] +[font/xfonts-cyrillic.git] +[font/xfonts-encodings.git] +[font/xfonts-scalable.git] +[font/xfonts-utils.git] +[git-migration.git] +[lib/drm-snapshot.git] +[lib/libdmx.git] +[lib/libdrm.git] +[lib/libfontenc.git] +[lib/libfs.git] +[lib/libice.git] +[lib/libpciaccess.git] +[lib/libsm.git] +[lib/libx11.git] +[lib/libxau.git] +[lib/libxaw.git] +[lib/libxcomposite.git] +[lib/libxcursor.git] +[lib/libxdamage.git] +[lib/libxdmcp.git] +[lib/libxext.git] +[lib/libxfixes.git] +[lib/libxfont.git] +[lib/libxi.git] +[lib/libxinerama.git] +[lib/libxkbfile.git] +[lib/libxmu.git] +[lib/libxp.git] +[lib/libxpm.git] +[lib/libxprintapputil.git] +[lib/libxprintutil.git] +[lib/libxrandr.git] +[lib/libxrender.git] +[lib/libxres.git] +[lib/libxss.git] +[lib/libxt.git] +[lib/libxtst.git] +[lib/libxv.git] +[lib/libxvmc.git] +[lib/libxxf86dga.git] +[lib/libxxf86vm.git] +[lib/mesa.git] +[lib/pixman.git] +[lib/xft.git] +[lib/xtrans.git] +[pkg-xorg.git] +[proto/x11proto-bigreqs.git] +[proto/x11proto-composite.git] +[proto/x11proto-core.git] +[proto/x11proto-damage.git] +[proto/x11proto-dmx.git] +[proto/x11proto-dri2.git] +[proto/x11proto-fixes.git] +[proto/x11proto-fonts.git] +[proto/x11proto-gl.git] +[proto/x11proto-input.git] +[proto/x11proto-kb.git] +[proto/x11proto-print.git] +[proto/x11proto-randr.git] +[proto/x11proto-record.git] +[proto/x11proto-render.git] +[proto/x11proto-resource.git] +[proto/x11proto-scrnsaver.git] +[proto/x11proto-video.git] +[proto/x11proto-xcmisc.git] +[proto/x11proto-xext.git] +[proto/x11proto-xf86bigfont.git] +[proto/x11proto-xf86dga.git] +[proto/x11proto-xf86dri.git] +[proto/x11proto-xf86misc.git] +[proto/x11proto-xf86vidmode.git] +[proto/x11proto-xinerama.git] +[xserver/xorg-server.git] +[xserver/xprint.git] +[xsfbs.git] diff --git a/mrconfig-update b/mrconfig-update new file mode 100755 index 0000000..b9c6d9e --- /dev/null +++ b/mrconfig-update @@ -0,0 +1,35 @@ +#!/bin/sh +set -e + +# Move to xsf-tools directory: +cd $(dirname $0) + +# Configuration variables: +host=git.debian.org +home=/git/pkg-xorg +tools_repo=debian/xsf-tools.git +mrconfig=mrconfig + +# Some blurb to make everything work: +cp mrconfig.head $mrconfig + +# Build a list of repositories based on the actual repositories on the +# server: +repos=$(ssh $host find $home -name '*.git'|sort|sed "s,^$home/,,") +for repo in $repos; do + case $repo in + # Comment those, just in case people need them at some point: + attic/*) + echo "#[$repo]" + ;; + # Real repository: + *) + echo "[$repo]" + ;; + esac +done >> $mrconfig + +rm -f $tmp + +# Move back: +cd - > /dev/null diff --git a/mrconfig.head b/mrconfig.head new file mode 100644 index 0000000..2212e36 --- /dev/null +++ b/mrconfig.head @@ -0,0 +1,15 @@ +[DEFAULT] +# repo_dir is what's inside the brackets for each repository below, +# and repo_name its basename, so that the mr logic (calling git clone +# when the local repository is still missing) works: +checkout = + here=${MR_CONFIG%%.mrconfig}; + repo_dir=$(echo "$MR_REPO"|sed -e "s,$here,," -e "s,/$,,"); + repo_name=$(basename $repo_dir); + git clone git://git.debian.org/git/pkg-xorg/$repo_dir $repo_name + +# Avoid the default 'git pull' and all the merges that come with it: +update = + git fetch "$@" + + -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

