[00:08] <Demosthenes> wow, thats *REALLY* odd. i killed off 4L-gui and a few defunct 4L-cli processes, and bzr works now.
[00:08] <Demosthenes> WTF
[00:12] <Demosthenes> i don't see any differences in /usr, /lib, or /bin that would indicate i was hacked. the only diffs are .gz files that are package documentation, and they pass gzip -t
[00:12] <Demosthenes> has a later bzr been backported to lenny?
[00:13] <ed-209> how come whenever I anonymously access launchpad, bzr works fine, but when I try to set up an account with SSH keys and all, it jus fails out?
[00:13] <Demosthenes> ed-209: ssh -vvv and watch
[01:38] <spiv> lifeless: I'd welcome patches for news_merge (of course)
[01:38] <spiv> lifeless: it's pretty hackish in various ways
[01:39] <spiv> lifeless: Partly because of the stupidly simple parser
[01:40] <spiv> lifeless: partly because it uses Merge3.merge_regions, but it expects lines and I want to feed it other kinds of blocks of text
[01:42] <spiv> lifeless: or rather, it doesn't really want to feed Merge3 lines at all, but ideally two-tuples, e.g. [('section', 'Bug Fixes'), ('bullet', '* Fix crash in frobber.'), ...]
[05:24] <lifeless> spiv: Activation energy is still too low; I may patch it in future
[05:24] <lifeless> spiv: but if you can patch it in work time, we both win :)
[07:05] <lifeless> \o/ test suite loop closed.
[08:52] <thumper> lifeless: you around?
[08:52] <lifeless> thumper: hi, yeah, just making testr rock
[08:52] <thumper> lifeless: I'm starting a new python project
[08:52] <thumper> lifeless: and I want some test infrastructure
[08:53] <thumper> lifeless: what do you recommend?
[08:53] <thumper> lifeless: I have nothing right now
[08:53] <lifeless> testrepository
[08:53] <lifeless> and testtools
[08:53] <thumper> lifeless: automatic discovery if possible
[08:53] <thumper> is it packaged?
[08:53] <lifeless> uhm, if you want that you can use the discover module
[08:53] <lifeless> [I don't really like automatic discovery, but thats me :P]
[08:53] <thumper> I can register I suppose
[08:54] <thumper> I want a simple way to just run the tests...
[08:54] <lifeless> can I show you something
[08:54] <thumper> sure
[08:54] <lifeless> branch lp:testrepository
[08:54] <lifeless> install python-testresources and python-testscenarios and python-testtools
[08:56] <thumper> python-testscenarios not found
[08:56] <lifeless> you are running lucid, yea?
[08:56] <thumper> no
[08:56] <lifeless> ah
[08:56] <lifeless> add the subunit PPA
[08:56] <thumper> which is?
[08:57] <lifeless> sudo add-apt-repository ppa:subunit/ppa
[08:59] <thumper> lifeless: got muffins in the oven
[08:59] <thumper> lifeless: got that installed
[08:59] <thumper> but the oven is calling
[08:59] <lifeless> ok
[08:59] <lifeless> I'll be here
[09:00] <lifeless> thumper: oh, also you might like lp:commitfromnews; its verra useful :)
[09:05] <thumper> lifeless: not a branch
[09:05] <lifeless> sorry
[09:06] <lifeless> bzr-commitfromnews
[09:06] <thumper> which does?
[09:06] <lifeless> diffs NEWS to suggest commit messages
[09:07] <lifeless> oh, you'll also need python-subunit installed
[09:07] <lifeless> sorry, you're getting a full stack here ;)
[09:07] <thumper> it better be worth it
[09:08] <lifeless> I think you'll like it
[09:08] <lifeless> I've just pushed rev 88 of testrepository, probably worth having
[09:09] <lifeless> anyhow, there are two main things here
[09:09] <lifeless> I want to show you the layout I used in testrepository, as I'm pretty happy with that
[09:09] <lifeless> and I want to show you testrepository itself
[09:10] <lifeless> as I think its an excellent workflow
[09:10] <lifeless> brb in a couple of minutes, organising dinnery things.
[09:10] <lifeless> have a poke aroun testrepository's code base; try 'make check' etc
[09:17] <lifeless> thumper: ok, back
[09:22] <phix> hey
[09:22] <phix> what's new?
[09:22] <lifeless> hi
[09:22] <lifeless> stuff :P
[09:22] <phix> nice
[09:23] <phix> ummm, I am suprised this channel is still here
[09:23] <lifeless> why?
[09:23] <phix> Well, git has been pretty stable for the last few years now
[09:23] <lifeless> so? Thats git, this is bzr.
[09:24] <lifeless> We're gaining users faster than ever
[09:24] <fullermd> RCS has been rock-stable for decades   :p
[09:24] <phix> yeah but git kind of makes bzr look like cvs
[09:24] <lifeless> phix: I think that comparison is false
[09:24] <thumper> phix: no one likes trolls
[09:24] <phix> ok ok, I will give you some credit, more like svn :P
[09:24] <phix> hehe
[09:24] <phix> thumper: aawwww
[09:25] <phix> I m not trolling though
[09:25] <lifeless> phix: Is that a considered opinion, or a joke?
[09:25] <phix> no no no, bzr is the joke actually :)
[09:25] <phix> well no, the fact that ppl still use it is I suppose
[09:25] <phix> any way
[09:25] <phix> I am off :)
[09:25] <phix> see you guys in #git soon for sure
[09:26] <lifeless> phix: thats either hostile or a troll, and neither is particularly friendly or encouraging.
[09:26] <phix> oh
[09:26] <phix> revert phix
[09:26] <fullermd> Oh, sweet.  Now I have the perfect answer to people who tell me I'm not funny!
[09:26] <phix> :P
[09:27] <lifeless> fullermd: I think you mean reset --hard -q --patch ./
[09:28] <fullermd> I...  do?
[09:28] <lifeless> fullermd: I picked a classic command new git users get confused by
[09:32] <fullermd> Well, it apparently works, 'cuz I'm confused why I'd mean it   :p
[09:34] <lifeless> fullermd: its 'revert' spelt git style
[09:36] <fullermd> Oh.
[09:36] <fullermd> I didn't say 'revert'.
[09:53] <lifeless> fullermd: what was your perfect answer then ?
[09:55] <fullermd> Well, that I use bzr, so obviously I'm a joke.  Presumably a good one, naturally.
[09:55] <lifeless> ah
[09:55] <lifeless> unless its dark humour
[09:57] <lifeless> uhm
[09:57] <lifeless> this is a wtf moment:
[09:57] <lifeless> make docs
[09:57] <lifeless> python -c "import shutil; shutil.copyfile('NEWS', 'doc/en/release-notes/NEWS.txt')"
[09:57] <lifeless> I think if we have Make, we can surely assume 'cp' ?
[10:03] <fullermd> That should be implemented with inline ASM, to be more optimized.
[10:06] <lifeless> you're here all week right? So you might improve.. :)
[10:06] <fullermd> Don't forget to tip your waitress!
[10:08] <lifeless> <3 commitfromnews
[10:17] <bialix> hi igc
[10:17] <Kamping_Kaiser> is there a bzr plugin to mark bugs in debbugs pending on commit to a bzr repo? (I can't imagine i'm the only person to wonder this, but i've not seen it asked before)
[10:17] <lifeless> bzr builddeb would be a good place to put that
[10:18] <lifeless> its really 'bzr-debian' :P
[10:18] <Kamping_Kaiser> ok , I'll check to see what it does :)
[10:18] <Kamping_Kaiser> hehe
[10:25] <igc> hi bialix
[10:25] <bialix> Marco Polo is good codename, the first great explorer, right?
[10:25]  * bialix uploading installer now
[10:27] <bialix> igc: installer done
[10:28] <igc> bialix: certainly one of the better known early explorers
[10:29] <igc> bialix: thanks for the installer too
[10:29] <bialix> :-)
[10:29] <igc> bialix: http://en.wikipedia.org/wiki/Exploration
[10:30] <bialix> igc: I have an theory that every "project" in human life takes about 9 months to get somewhere. your bzr-explorer is another confirmation ;-)
[10:30] <lifeless> heh
[10:30] <lifeless> I'm only just getting to where I want testing to be, after 14 years
[10:31] <igc> bialix: I just hope it's stable enough to warrant 1.0
[10:31] <bialix> lifeless: I don't say about maturity
[10:31] <lifeless> :P
[10:31] <fullermd> Ogod, I hope this project will be done in less time than that   :(
[10:32] <bialix> the question is what this for you
[10:32]  * bialix waves hi to all
[11:20] <lifeless> igc: grats on 1.0.0
[12:23] <dsuch> Hi, I'm using bzrlib in a piece of software of mine and I'm wondering if it's safe to keep a reference to a WorkingTree instance in multiple processes?
[12:23] <dsuch> Am I not going to get hit by some weird race condition sooner or later? (Just wondering, not that I have seen anything like that so far)
[12:24] <dsuch> I'm currently using 2.1.0
[12:28] <dsuch> Or, alternatively, can those subprocesses have their own separate WorkingTrees pointing to the same repository location? I guess that should be safe?
[12:38] <lifeless> dsuch: do you mean 'are WorkingTree methods correctly locked' ?
[12:38] <lifeless> dsuch: and the answer is 'we think so' ;)
[12:39] <dsuch> yea, guess that was the question :)
[12:39] <dsuch> thanks
[12:41] <dsuch> lifeless: and if I don't share those objects, there sure will be no problems at all, right?
[12:41] <lifeless> what do you mean by share
[12:42] <dsuch> share as in multiple threads have the same WorkingTree instance assigned to them
[12:43] <dsuch> but it's not that I really want it
[12:43] <dsuch> in fact, I could as well have each thread/subprocess use its own WorkingTree object so there would be no sharing of a WorkingTree instance's state at all
[12:44] <lifeless> so
[12:44] <dsuch> and that, if I understand it correctly, should be perfectly safe?
[12:44] <lifeless> on unix, os locks are not exclusive across threads
[12:44] <lifeless> you can stomp on yourself trivially.
[12:44] <lifeless> *processes* are safe.
[12:45] <lifeless> *threads* are not.
[12:45] <dsuch> mhm
[12:46] <lifeless> even if you have separate WorkingTree objects, in different threads, you could zerg your dirstate file
[12:46] <dsuch> got it
[12:46] <lifeless> dirstate2, *when* we get to it, will not use OS locks at all, and won't have this risk.
[12:47] <dsuch> I fear to ask what a dirstate is :) I take it it's some important internal repo structure?
[12:47] <lifeless> yes
[12:47] <dsuch> ok
[12:47] <lifeless> .bzr/checkout/dirstate
[12:47] <lifeless> it lists all the files in the tree
[12:48] <lifeless> and their inode fingerprint
[12:48] <lifeless> merge status
[12:48] <dsuch> okay so it is important :)
[12:48] <lifeless> semantic changes to this file are locked with a dir-lock, which is safe even in threads.
[12:48] <lifeless> however, readonly locks can do cache-updates to this file
[12:48] <lifeless> and they are only protected by an OS lock
[12:49] <lifeless> which as I mentioned is not actually as safe as one might hope
[12:49] <dsuch> I see.
[12:53] <lifeless> gnight
[12:53] <lifeless> if you have more questions, just ask, I'm sure someone will answer eventually :)
[12:53] <dsuch> sure, thanks again lifeless
[12:54] <dsuch> hope you get better ;-)
[12:54] <dsuch> (sorry, couldn't resist)
[13:30] <felixhummel_> hi! how would you put files under version control that belong to one project, but live in different directories scattered across the whole file system?
[13:31] <felixhummel_> e.g. all hand-edited configuration files of a ubuntu box
[13:32] <jelmer> felixhummel_: Generally the configuration files of a ubuntu box would be in /etc
[13:32] <jelmer> felixhummel_: other than that, you should be able to use symlinks to a versioned directory
[13:34] <felixhummel_> jelmer: so you would do ``cd /etc; bzr init .; bzr add hosts``?
[13:34] <jelmer> felixhummel_: basically, yeah
[13:34] <jelmer> felixhummel_: I'm using the etckeeper app to maintain my /etc
[13:35] <jelmer> it wraps around bzr and takes care of e.g. invoking bzr commit when you upgrade or install packages
[13:36] <felixhummel_> looks like etckeeper fits my use case perfectly. thanks, jelmer!
[13:36] <jelmer> felixhummel_: you're welcome
[14:42] <jelmer> maxb: the bzr-rewrite trunk should be fixed now
[15:56] <ajeans> hello
[15:57] <ajeans> I have a question about "./bzr selftest", and yahoo couldn"t find the answer for me
[15:57] <ajeans> :)
[15:58] <ajeans> ".bzr selftest" runs all the bzr unit tests (> 25000), what is the command to run one
[15:59] <ajeans> (sorry) only one of the unit tests (e.g. tests contained in bzrlib/tests/test_osutils.py) ?
[16:20] <fullermd> ajeans: Either giving it a substring as an argument, or using -s and a class prefix.
[16:29] <ajeans> @fullermd: From the root, I am trying "./bzr selftest -s TestStatus" and also tried "./bzr selftest bzrlib/tests/test_status.py", with no success
[16:35] <ajeans> @fullermd: Thanks for the information, you can pass the method name to only run it
[16:35] <ajeans> ./bzr selftest --help had some information about it.
[16:36] <ajeans> I was hoping to simply pass the Class name to execute all the tests within, but I can still list all the methods manually... thanks again
[16:52] <fullermd> ajeans: You can use -s to pass the class name, it just has to be fully qualified.  e.g., "-s bzrlib.tests.test_foo.TestFoo....."
[16:53] <fullermd> Or 'selftest test_foo'.  The former is faster because it doesn't have to build the full list of all the tests then search through it.
[16:57] <mgedmin> long-term wishlist: automatic mirroring of my bzr branch
[16:57] <mgedmin> sort of like bzr bind or manual bzr push after each commit, but without having to wait for the push
[16:58] <mgedmin> let the push happen in the background, opportunistically
[17:14] <ubuntujenkins> if I do bzr merge lp:~ubuntu-manual/ubuntu-manual-screenshots/bg -r 0..-1 does that update the status of the branch in lanuchpad?
[17:16] <jelmer> ubuntujenkins: it might mark a merge proposal as "merged" if there is a merge proposal for that merge
[17:16] <jelmer> otherwise it won't affect the status of the branch
[17:17] <ubuntujenkins> weird I the status has changed from devolpment to merged. I don't know why its anoying as I have to change it back on 47 branches now
[17:23] <ubuntujenkins> thanks for your help jelmer
[17:49] <ajeans> @fullermd: thanks for the explanation, it works perfectly :)
[17:55] <maxb> jelmer: Excellent! But, now there's a 'trunk', a 'rebase-trunk', and a 'trunk-mirrorred' ... it's a bit confusing
[17:55] <jelmer> maxb: trunk is the right one
[17:55] <jelmer> it's also registered as the development focus
[17:56] <maxb> Sure.. but why the others?
[17:57] <jelmer> historical reasons
[17:57] <maxb> oh. stacked branches prevent deletion?
[17:58] <maxb> perhaps set them as 'Abandoned' if they are no longer relevant?
[17:59] <jelmer> maxb: feel free to do so
[18:00] <maxb> jelmer: I'm pretty sure only the branch owner can
[18:00] <jelmer> maxb: the branch status isn't really useful at the moment imho, and I have too much branches to set all of their statuses appropriately
[18:02] <maxb> I find the branch status quite useful - it would be nice to at least have ones with 'trunk' in their name which are no longer relevant hidden from the project's default branch listing
[18:02] <jelmer> maxb: isn't that what the development focus is for though?
[18:04] <lifeless> moin
[18:05] <jelmer> maxb: I've changed the status for these two branches to abandoned, although I don't really see the problem tbh
[18:05] <jelmer> hey lifeless
[18:06] <jelmer> oh, looks like I could remove them after all
[18:24] <jelmer> lifeless: if you could give some quick feedback on my named-branches patch, that'd still be much appreciated :-)
[18:28] <lifeless> jelmer: ah yes, I knew I forgot something this weekend
[18:28] <lifeless> jelmer: shall do
[19:45] <jelmer> maxb, if your merge request is still relevant, can you please resubmit it against lp:bzr-rewrite?
[20:50] <mgedmin> time bzr rocks on a Nokia N900 --> 1.72 seconds wall-clock time
[20:50] <mgedmin> seems a bit on the high-side
[20:51] <mgedmin> it's a 600 MHz ARM CPU
[20:53] <lifeless> if you run it again?
[21:19] <mgedmin> lifeless, varies between 2.32s and 1.38s (I suspect cpufreq)
[21:19] <lifeless> wow
[21:19] <mgedmin> this is 2.0.2, I should package a newer version...
[22:24] <jono> hey all
[22:25] <jono> anyone here used the bzrlib python module?
[22:32] <lifeless> yes
[22:33] <lifeless> bah
[22:38] <thumper> lifeless: hey
[22:38] <lifeless> hi
[22:38] <thumper> lifeless: when we did stacking we decided that the server should hit to the bzr client to stack
[22:38] <thumper> lifeless: do you know if the --no-stacked (or similar) option can or does ignore the suggestion?
[22:39] <lifeless> it should, it doesn't
[22:39] <thumper> s/hit/hint/
[22:39] <thumper> lifeless: is there a bug?
[22:39] <lifeless> I'm sure of it
[22:55] <slangasek> is anyone here using pristine-tar for importing of upstream tarballs outside of LP?
[22:56] <lifeless> aie aie
[22:56] <slangasek> lifeless: I was trying to work off http://www.advogato.org/person/robertc/diary/130.html to do bzrification and debianization of a new source package, but import-dsc doesn't seem to have usefully imported the autotoolage
[22:57] <slangasek> is there an undocumented step I'm missing?
[22:57] <slangasek> rather, it imported it as part of a single commit with the Debian stuff
[22:57] <lifeless> let me just see what post that is
[22:57] <lifeless> rbtcollins.wordpress.com has better urls
[22:58] <lifeless> ah yes
[22:58] <slangasek> well, rbtcollins.wordpress.com is not what you have linked from Planet Debian :)
[22:58] <lifeless> meh :P
[22:58] <lifeless> ok, so import-dsc does two imports
[22:58] <lifeless> a tarball, accessible from 'bzr tags'
[22:58] <lifeless> and a debianised
[22:59] <lifeless> look at 'bzr log -n0' or at 'bzr tags'
[22:59] <slangasek> neither shows me what I'm looking for
[22:59] <lifeless> the upstream-XYZ tag should be precisely the tarball contents
[22:59] <slangasek> does it matter that this is 3.0 (quilt) ?
[22:59] <lifeless> probably, AFAICT quilt-3.0 is a <censored>-<censored>
[23:00] <lifeless> uhm
[23:00] <slangasek> there's no 3.0 (bzr) format
[23:00] <slangasek> and 3.0 (native) is n/a
[23:00] <slangasek> and I have an upstream tar.bz2
[23:00] <lifeless> slangasek: pastebin bzr tags and bzr log -n0 somewhere
[23:02] <slangasek> http://paste.ubuntu.com/385962/, http://paste.ubuntu.com/385963/
[23:03] <lifeless> ok, no upstream- tag
[23:03] <slangasek> I'll mention that when following the directions as written, import-dsc first gave me an error about 'bzr add'ing debian/changelog first
[23:03] <slangasek> and rather than doing this, I moved my debian/ dir aside
[23:04] <slangasek> so if I'm meant to actually do the 'bzr add', I can go back and try that
[23:04] <lifeless> do you have the session in history, so I can see it?
[23:04] <slangasek> I can uncommit and do it again? :)
[23:04] <lifeless> no
[23:05] <lifeless> you can start from a fresh branch though
[23:05] <slangasek> ok
[23:05] <lifeless> *don't* branch from this branch
[23:05] <slangasek> yep
[23:06] <slangasek> lifeless: http://paste.ubuntu.com/385965/
[23:07] <lifeless> slangasek: and bzr+ssh://bzr.debian.org/bzr/pkg-samba/cifs-utils/trunk is an *upstream* branch - no packaging in it at all ?
[23:08] <lifeless> slangasek: the debian dir shouldn't be present: the revert step in my instructions is to remove the packaging (because it said debianise as normal :P)
[23:08] <slangasek> correct
[23:08] <igc> morning
[23:08] <slangasek> but 'bzr revert' doesn't delete new files
[23:09] <lifeless> slangasek: heh
[23:09] <lifeless> slangasek: anyhow, yes, you are right to not have the debian dir present
[23:09] <slangasek> so I inferred, when I got the error, that this is what you wanted, so I moved debian/ away :)
[23:09] <lifeless> ok
[23:09] <lifeless> and what happens then
[23:11] <slangasek> http://paste.ubuntu.com/385967/
[23:11] <slangasek> single commit, no upstream tag
[23:11] <lifeless> can you paste the dsc
[23:11] <slangasek> (this is with bzr-builddeb 22, btw; Debian unstable seems to be a version behind Ubuntu)
[23:12] <lifeless> and check there is only one dsc in the dir above
[23:12] <lifeless> slangasek: generally you will want bzr-builddeb trunk :P
[23:12] <slangasek> http://paste.ubuntu.com/385968/
[23:12] <slangasek> no, generally *I* want to be dogfooding what's actually in the distro ;)
[23:12] <slangasek> yes, there's only one .dsc
[23:13] <lifeless> this is very strange
[23:13] <lifeless> I'd like you to try trunk.
[23:13] <lifeless> if it doesn't work, file a bug.
[23:13] <slangasek> ok - url?
[23:13] <lifeless> if it does, file a different bug
[23:14] <lifeless> bzr branch lp:bzr-builddeb ~/.bazaar/plugins/builddeb
[23:19] <slangasek> lifeless: yep, works with trunk
[23:19] <lifeless> slangasek: so; you want a newer package ;)
[23:19] <slangasek> (another wrinkle: had an out-of-date version of bzr in my Debian env, updated from bzr 2.0 to 2.1 to get builddeb trunk to work; and I can't seem to use the old builddeb in unstable with new bzr...)
[23:19] <lifeless> jml: are you online?
[23:20] <slangasek> looks like bzr-builddeb 2.3 is in experimental, I'll double-check with that also
[23:21] <slangasek> 2.3 also works correctly
[23:22] <slangasek> so someone needs to put 2.3 in unstable
[23:22] <slangasek> jelmer: ^^ :)
[23:26] <jono_> mwhudson, around?
[23:30] <mwhudson> jono_: just about to have lunch, but can hang around a bit ... how can i help?
[23:30] <jono_> mwhudson, I am just starting hacking with bzrlib - is there a short example of checking out a branch?
[23:31] <jono_> mwhudson, actually, forget it
[23:31] <jono_> I figured it out :)
[23:31] <mwhudson> jono_: heh
[23:31] <jono_> thanks!
[23:31] <mwhudson> jono_: generally to find out how command 'foo' works
[23:31] <mwhudson> look for cmd_foo in bzrlib/builtins.py
[23:31]  * mwhudson afk for a few then
[23:31] <jono_> right thanks!
[23:31] <jono_> cheers pal
[23:31] <jono_> I will add some examples to python-snippets
[23:32] <jono_> would be awesome if you could submit some more :)
[23:32] <Daviey> There is no stopping jono_ now!
[23:32] <jono_> Daviey, :)
[23:32] <jono_> just hacking Acire to check out the code directly from bzr
[23:32] <jono_> then no dailly PPA is needed :)
[23:33] <lifeless> jono_: hi
[23:33] <jono_> hey lifeless
[23:33] <lifeless> jono_: your mail server is naffed
[23:33] <poolie> hello jono, lifeless
[23:34] <jono_> lifeless, yeah, I know
[23:34] <lifeless> jono_: I emaile you a week ago with the answer to this :P
[23:34] <jono_> 1and1 having troubles
[23:34] <jono_> lifeless,
[23:34] <jono_> ahhh
[23:34] <jono_> can you forward it to jono AT ubuntu DOT com?
[23:34] <lifeless> when you pinged me, then disconnected ;P
[23:34] <jono_> hah
[23:34] <lifeless> jono_: sure
[23:34] <jono_> thanks!
[23:36] <lifeless> poolie: there is a gift for you in the tribunal review queue ;)
[23:38] <poolie> heh, thanks
[23:39] <poolie> btw did you see my grief on friday was due to a fsck bug?
[23:39] <lifeless> poolie: I didn't see the resolution of it, no.
[23:39] <lifeless> thats good news.
[23:41] <poolie> my machine is still down but at least the problem is known
[23:41] <poolie> it's actually fairly obvious where it must be
[23:41] <poolie> ironically similar to some bugs we had in dirstate
[23:42] <poolie> in this case, it incorrectly sorts things that are lexicographically before '.' i think
[23:42] <lifeless> heh
[23:42] <lifeless> so 'do not fsck and you will be fine'
[23:42] <lifeless>  ?
[23:44] <poolie> do not use -D
[23:45] <poolie> *afaik, there may be other problems
[23:45] <poolie> actually since the manpage says it may resort directories sometimes even without -D
[23:45] <poolie> i don't think that's enough
[23:45] <poolie> and you can't upgrade without fscking
[23:58] <lifeless> mwhudson: is the link in http://doc.bazaar.canonical.com/bzr.dev/developers/#developing-using-bzrlib stale? (to the api docs)