New features for debcheckout, ... now with TopGit support!

Today I've spent some time hacking on debcheckout, which for weird reasons happens to be at the bottom of a stack of chained things that I need to do in the forthcoming days. Also, I had neglected debcheckout for a while, and the other devscripts folks where ready to shout at me because of that :-) .

Well, it has been fun, and beside having fixed all the outstanding bugs, debcheckout has grown some cute new features:

  • the ability to query a VCS repository (using -d/--details) for details, at the very minimum it will parse for you the Vcs-* fields, but it is expected that in the future will be able to be more telling, and it is already so for TopGit ...

  • ... and speaking about that, debcheckout now has support for TopGit. In two ways: the first one is using -d, which will tell you whether a GIT repo is TopGit-enabled or not and, if it is so, also the list of available top-bases. For instance:

      zack@usha:~$ debcheckout -d topgit
      type    git
      url     git://git.debian.org/git/collab-maint/topgit.git
      top-bases       debian/locations
      topgit  yes
    
    

    or even more brutally

       zack@usha:~$ debcheckout -d git://git.debian.org/git/pkg-ocaml-maint/packages/ocaml-batteries.git
       type    git
       url     git://git.debian.org/git/pkg-ocaml-maint/packages/ocaml-batteries.git
       top-bases       features/flexi-build
       topgit  yes
    
    

    The other way in which TopGit is supported, is that when checking out a GIT repo which is detected to be TopGit's as well, population of top-bases (i.e., TopGit local initialization) is automatically performed.

    ... yes, a while ago I've fallen in love with TopGit, is it that evident? :-)

  • it is now possible to specify custom rules for authenticated mode, this way you can use -a also on packages not hosted on well known Debian/Ubuntu VCS servers

  • finally, you can now ask debcheckout to automatically enable remote tracking of remote GIT branches, which is usually what a maintainer wants to do when doing a fresh checkout

Enjoy!

(ah, of course all this is not uploaded yet, but you can grab a preview from devscripts' VCS or, better, doing debcheckout devscripts which is soooo bootstrapy. SCNR.)