## page was renamed from KubuntuTutorialsDay/Bzr http://muse.19inch.net/~jr/kubuntu-tutorials-day/03-bzr-and-launchpad.pdf {{{ [16:32] apt-get install bzr [16:32] I like SVN but i am open for new stuff :) [16:32] is bzr for advanced developers? i've never used svn [16:32] is always a good start [16:32] bzr is for everyone [16:32] Riddell: bzr is more like svn or mercurial (git) ? [16:33] bzr, or more properly Bazaar is the world best revision control system [16:33] is there a way to sync between svn and bzr? when I develop something with eclipse I want to use it's nice svn integration [16:33] hang on, questions in a bit [16:33] bzr-svn [16:33] it keeps track of your files [16:33] so if you make a mistake you can go back a look at what happened [16:34] unlike svn or cvs, it's very easy to branch [16:34] is there a native QT bzr browser? [16:34] so if you don't have access to the svn archive [16:34] or if you're doing something at all experimental [16:34] you can just branch [16:34] do your work in the branch [16:34] and merge back later [16:34] bzr has the best merging out of any revision control system [16:34] they're very proud of how well it works [16:34] but there's more! [16:34] so when r we beginning? [16:34] DreadKnight, may be we should all write one with your brand new pyqt knowledge :P [16:35] is there any gui? [16:35] other revision control systems need their own servers set up [16:35] bzr-gtk [16:35] but bzr is super easy to get started [16:35] for the first steps I think it would be easyer [16:35] thx [16:35] cheguevara: i'm not actually a programer :) but it sounds good [16:35] to get started just make a new directory [16:35] mkdir files [16:35] cd file [16:35] cd files rather [16:35] don't like to use the gtk one (olive i think it's called) [16:35] any specific name? [16:35] and bzr init [16:35] then save a file in that directory [16:36] echo hello > myfile [16:36] add it to the repo [16:36] bzr add myfile [16:36] and finally commit it [16:36] bzr commit [16:36] it'll ask you for a commit message, so you just say "inital commit" [16:37] now bzr works easily off your local hard disk [16:37] Committed revision 1. [16:37] excellent, gold star to cheguevara [16:37] :P [16:37] but it can also work off any network system, like a web server [16:37] works here too, it's easy but right now same as svn ;) [16:37] Riddell: want to menthor me to make a pykde bzr GUI ? xD [16:37] so you can just copy that directory to a web server [16:38] and now anyone can get hold of your revision control [16:38] we use bzr for the kubuntu.org website [16:38] I edit the files directly on the server [16:38] hm sorry no not really for svn you need an extern directory for svn repository... [16:38] nice [16:38] and bzr commit after any changes I made [16:38] Riddell: doesn't that require some apache settings changed? [16:38] now if this was svn, only I can do anything with it [16:38] egonw: nope [16:38] it works off any web server [16:38] no changes needed [16:38] mmm, sounds good :) [16:39] or smb, or local hard disk, or ftp, whatever [16:39] sftp too [16:39] I don't get it [16:39] how? [16:39] magic [16:39] there's a hidden .bzr directory with all the meta data [16:39] that's what gets made with bzr init [16:39] unlike subversion, it's only one .bzr directory per archive [16:39] not one per directory [16:40] so anyone can do bzr branch http://kubuntu.org [16:40] do I need a physical copy of the directory to work on or is there a "checkout"-feature? [16:40] that'll probably take a few minutes to run [16:40] but then anyone can make changes to the files [16:40] you can then do bzr diff and send me the patch [16:41] or you can put it on a web server yourself and I can do bzr merge http://your.web.server.com/~me/ [16:41] Format for http://kubuntu.org/.bzr/ is deprecated - please use 'bzr upgrade' to get better performance [16:41] hah, that server has an old bzr version on it [16:41] Riddell, it's nice that you can do branch kubuntu.org but if I dont want that, if I want to use a "private" archive - can I do commit and update like with svn but don't init a own repository? dont know wether you understand waht I mean... [16:41] bzr is a fast moving project, but it has always remained backwards compatible [16:42] thefoxx: yes you can [16:42] branches do take time, you don't always need to do it [16:42] so you can also just checkout [16:42] omg, I'm downloading the kubuntu.org branch [16:42] which is what svn users are used to [16:42] sounds nice... [16:42] and thats about acl? [16:42] *whats [16:42] for example [16:42] we host some of our packaging in bzr [16:43] on launchpad [16:43] here's the webpage for our amarok packaging [16:43] https://code.edge.launchpad.net/~kubuntu-members/amarok/debian [16:43] sorry https://code.launchpad.net/~kubuntu-members/amarok/debian to non-beta testers [16:43] that'll tell you that you can do bzr branch http://bazaar.launchpad.net/~kubuntu-members/amarok/debian [16:43] but for those of us lucky enough to be in kubuntu-members [16:44] we can do bzr checkout [16:44] and commit back directly [16:44] there's no access control list, access is just governed by the permissions of the server its on [16:44] or local file system [16:44] now, I need a volunteer! [16:44] can I use apache htaccess to protect it? [16:45] me [16:45] volunteers [16:45] nareshov: please register a project for us on launchpad https://code.launchpad.net/projects/+new [16:45] call it kubuntu-tutorial say [16:45] thefoxx: http is read only, so nobody can commit to it [16:45] okay [16:46] do it, do it! :D [16:46] thefoxx: you can use sftp (ssh) for read/write archives, and then access it just who can write to the files [16:46] hm yes... logical [16:46] now we're all going to upload branches to launchpad [16:46] okay I think I understand - sounds nic [16:46] e [16:46] launchpad is a great place to host your bzr branches [16:47] done [16:47] but as I say, you can host it on any server [16:47] https://code.launchpad.net/kubuntu-tutorial [16:47] but in my opinion it makes acl a bit more difficult but easyer to understand [16:47] unlike Source Forge you don't need to ask to create a project [16:47] anyone can make a project at any time and you can host any free software code there [16:47] thanks nareshov [16:48] if you have your bzr archives you can now push your code to launchpad [16:48] Riddell: that's awesome [16:48] Riddell, ssh is the only way to rw ? That means that every commiter must have a ssh account ? [16:48] so in nareshov projects how do we retrieve the branch? [16:48] project* [16:49] bzr push sftp://bazaar.launchpad.net/~// [16:49] you'll need an account on launchpad [16:49] and you'll need your ssh key registered on launchpad [16:49] hmm [16:50] nice [16:50] if you don't have an ssh key make one with ssh-keygen [16:50] and follow the prompts [16:50] then paste the ~/.ssh/id_dsa.pub in launchpad [16:51] https://launchpad.net/~/+editsshkeys [16:51] error on the push [16:51] Unable to import paramiko (required for sftp support): No module named paramiko [16:51] then bzr push sftp://bazaar.launchpad.net/~/kubuntu-tutorial/mybranch [16:51] sudo apt-get install python-paramiko [16:51] wolfger: ^^ [16:51] so I do a init, commit something then push ? [16:51] paramiko is needed for sftp access [16:51] ropiku: yes [16:52] Riddell, what would be the best way for a small group, geographically separated, to work with bzr privately - each on his own branch - how then to sync? [16:53] mzungu: you can also register teams on launchpad [16:53] then add the people to that team and push to a team branch [16:53] just push to ~myteam [16:53] which is what we do with the kubuntu packaging I showed earlier [16:53] how to verify RSA key fingerprint of bazaar.launchpad.net? [16:53] wolfger: just accept it [16:53] worry if it changes [16:53] ok - but for private code? [16:54] so then anyone in the team can checkout and commit back (or branch as anyone outside the team can do) [16:54] Riddell: what's sftp? [16:54] ssh+ftp :P [16:54] secure ftp? [16:54] mzungu: on non public code you can just do it on a local machine you have ssh access to [16:54] mzungu: and store it in a group writable directory [16:54] packing 101 on now? [16:54] Permission denied (publickey). [16:54] ok - thanks [16:54] RinTinTigger: 5 minutes [16:54] wolfger: have you uploaded your ssh key to launchpad [16:55] wolfger: did you import your key? [16:55] but whut's ftp? [16:55] file transfer protocol [16:55] ah! [16:55] I have 1 OpenPGP key and one SSH key on Launchpad [16:55] if we now look at https://code.launchpad.net/kubuntu-tutorial/ [16:55] so whut's exactly the purpose of bzr? [16:55] we can see there's a branch there [16:56] maybe my SSH key is from my (non-existant) Feisty install? [16:56] which python module provides question_dialog ? [16:56] limac: versioning system, used for software development [16:56] wolfger: best to double check [16:56] weird, Launchpad user doesn't have a registered SSH key [16:56] gold star to nareshov [16:56] it should be dialog as I see but it's not included in python dialog package... [16:56] yay :D [16:56] yes, dialog, but not question_dialog [16:56] DreadKnight: thx dude and wat about svn? [16:56] so now we can all branch nareshov's code and edit it [16:56] then he can merge back our changes if he likes them [16:57] (actually it'll take a minute for launchpad to sync the branch) [16:57] ok, I did promise branching from svn [16:57] I imported my key (SSH public key added.) and pushed into sftp://bazaar.launchpad.net/~ropiku/kubuntu-tutorial/ropiku-branch [16:57] limac: bzr is somewhat better ;) [16:57] there's two ways to do that [16:57] you can do it in launchpad [16:57] but wat is svn? [16:58] svn is subversion [16:58] it's an older alternative to bzr [16:58] ok! :) [16:58] used by KDE, Gnome and many others [16:58] we have an import of amarok in launchpad at https://code.launchpad.net/~vcs-imports/amarok/trunk [16:58] so if you don't have a KDE subversion account you can just branch that and edit the code [16:58] then send back your patches [16:58] did anyone uses bzr-svn ? [16:58] ah [16:58] the second way to branch svn is with bzr-svn [16:58] and is there going to be any packaging tutorials today? [16:58] apt-get install bzr-svn [16:59] and branch it locally on your own system [16:59] 2 mins [16:59] can someone help me a bit, please :D [16:59] limac: read the topic and check out the link [16:59] this has the nifty way of being able to commit changes back directly [16:59] so now we can branch the debian packaging for some KDE related libraries for example [16:59] bzr branch svn://svn.debian.org/pkg-kde/krap [16:59] does bzr svn allows to permanently sinc svn and bzr? [17:00] unfortunately there's a memory leak in bzr-svn [17:00] so importing from KDE using it will kill your system unless you stop it and restart after every 1000 commits it scans [17:00] ooh [17:00] but hopefully that will be fixed soon and people without KDE svn account, or people doing experimental work can branch KDE apps and edit [17:00] is GNOME better then KDE [17:00] ? [17:01] RinTinTigger: no flames please [17:01] sry [17:01] ok, we're out of time [17:01] RinTinTigger: are you trying to flame? :D [17:01] jpatrick: are you here? [17:01] Riddell: yep [17:01] rock and roll - thank Riddell for another great session [17:01] elisiano:no [17:01] please ask me questions in #kubuntu about the bzr tutorial [17:01] Riddell: thanks for the tutorial :) [17:01] or ask on #bzr [17:01] Evening everyone, by the end of this hour we should have some .deb files laying around. :) [17:01] s/thanks/thank [17:01] Riddell: thx dude u helped us a lot! :D [17:01] :D [17:01] rock on jpatrick [17:01] and watch out for Bazaar 1.0 coming very soon [17:01] thanks a lot Riddell [17:01] thanks Riddel [17:01] L [17:02] thanks [17:02] For this you'll need to have the "pbuilder devscripts debootstrap fakeroot lintian" packages installed. [17:02] thanks :D }}}