Michael Stapelberg: Cloning git-buildpackage repositories
Whenever I want to work on some package, I usually clone its git repository,
make my changes, then push and upload the Debian package. I don t keep those
repositories around in order to avoid cruft and also to have a 100% clean,
up-to-date setup whenever I start working on something.
Everytime I clone such a repository, I struggle with the setup. For example, I
usually forget the --pristine-tar flag for gbp-clone. Also, I usually forget to
push other branches (working on debian , forgetting upstream ) and, even more
often, I forget pushing tags.
I spent some time on this and figured out that one can use the following to
make --pristine-tar the default:
cat >> ~/.gbp.conf <EOF [DEFAULT] pristine-tar = True EOFAvoiding my other pain points is not so easy apparently, so I wrote a little shell function (only tested with zsh!) which uses debcheckout to get the git URL, gbp-clone to actually clone it and a few git config calls to make me able to just git push when I am done and not worry about anything:
# Clones the git sources of a Debian package
# needs debcheckout from devscripts and gbp-clone from git-buildpackage
function d-clone()
local package=$1
if debcheckout --print $package >/dev/null
then
set -- $(debcheckout --print $package)
if [ "$1" != "git" ]
then
echo "$package does not use git, but $1 instead."
return
fi
echo "cloning $2"
gbp-clone $2 return
# Change to the newest git repository
cd $(dirname $(ls -1td */.git head -1)) return
# This tells git to push all branches at once,
# i.e. if you changed upstream and debian (after git-import-orig),
# both upstream and debian will be pushed when running git push .
git config push.default matching return
# This tells git to push tags automatically,
# so you don t have to use git push; git push --tags .
git config --add remote.origin.push "+refs/heads/*:refs/remotes/origin/*" return
git config --add remote.origin.push "+refs/tags/*:refs/tags/*" return
echo "d-clone set up everything successfully."
else
echo "debcheckout $package failed. Is $package missing Vcs tags?"
fi
With that function, starting work on a package becomes as easy as
d-clone golang-doc .
I recently had a
I had a look at the 3.0 source formats just now. I've never been very
fond of that, mainly because of the fact that it wants to store
individual patches for no particularly good reason
I did a
In the
This is an update on the
I ve been hacking on some static analyses stuff for
I want a CLI WebDAV client that's better than cadaver or hdav.
I want a program that can sync an .ics file with a CalDAV
server, by dividing it up into events and individually
synchronizing each of those. I don't have a clue how
deletions would be handled, but that would be nice too.
Then I want a program that can synchronize the .ics file
with org-mode files.
I want a SIP client that works as well as Twinkle but has
the architecture of SFLphone or is a library upon which
an arbitrary UI can be constructed.
I want an HTML-rendering library that has callbacks or hooks
for security- and privacy-relevant things like cookies and
SSL certificates. I want at least one browser built on this
library. I want it to support vi-like keybindings.
I want an HTTP(S) proxy that can be dynamically-configured
per-client or per-connection through a standardized protocol
that web browsers or their plugins can speak. I want it to
be able to handle all the relevant things covered by AdBlock
Plus, RequestPolicy, and NoScript.
I want HTTPS authentication through Monkeysphere and
mod_gnutls.
I want a git-annex backend for Ogg Vorbis files that treat
the audio streams independently of the metadata yet stores
them together in the same file so that everything behaves
as usual but the annex doesn't bloat by 400Go after I run
beets.
I want a file transfer queuing system that can work over
any sort of transport mechanism, direct or asynchronous,
that handles partial transfers and throttling, and is
generally magical.
I want all kinds of accounting software improvements.
I want sane PBX software.
I want an OpenStack that doesn't use libvirt for KVM.
I want backup software that behaves some weird hybrid of
BoxBackup and Dirvish.
I want a peer-to-peer card- and board-game platform that
uses cryptographic assurance.
I want everyone to use YAML instead of XML.
I want a phone that's not running a doomed operating system.
I want lots of other stuff.
Although I've still not got the ability to reply to messages, and composing new ones is ugly, my toy mail client is working nicely.
I've received a couple of patches, and given commit access to the repository to one other user.
Currently I'm still juggling primitives around and working out what is missing. The big exceptions are the obvious:
Not so long ago I read
AltOS 1.2.1 TeleBT support, bug fixes and new AltosUI features
Bdale and I are pleased to announce the release of
