[17:28] cjwatson thanks, yes, the fact that it is under /usr/share and not /usr/include was a bit misleading. .. should I really make copy of the file or say #include "/usr/share/gettext/gettext.h" .. say, now it is #defined to npgettext_aux and if that detail of internal implementation is to change in the future, then.. [17:28] costello: You should follow the directions in the gettext documentation, which say to copy it [17:29] costello: npgettext_aux is a static function declared in that same header file [17:29] Ok, getgext.h is gpl. my package is lgpl and can't be gpl due to openssl licensing stupidities -> does this pose a problem? [17:30] costello: No idea, ask the gettext maintainers [17:30] If I'm supposed to copy that. And that way also distribute it. [17:30] yes. [17:31] I imagine you could just do the same things with dcgettext/dcngettext that it does [17:31] That's the actual important function, the rest is just syntactic sugar over the top [17:31] y. better idea. [17:54] hmm, something is weird with https://code.launchpad.net/~vila/bzr/1451448-skip-racy-tests [17:55] launchpad doesn't show the diff even after way longer than usual (not a metric ;) [17:56] bzr push --overwrite after 1 hour says 'No new revisions or tags to push' so the data is there [20:51] vila: run this in "lp-shell production devel": lp.branches.getByUrl(url="lp:~vila/bzr/1451448-skip-racy-tests").unscan(rescan=True) [20:52] cjwatson: lp-shell ? never heard about that before [20:52] vila: (LP's bzr branch modelling is terrible and requires inserting a row for every revision in the branch's history when you push a new branch, so it often times out for large histories) [20:52] vila: it's in lptools [20:52] basically just a Launchpad.login_with wrapper, but convenient [20:53] vila: if the history isn't there after six minutes (technically five but let's make sure not to overlap) after you attempt the rescan, try it again, repeat until it actually manages to scan the thing [20:54] cjwatson: ack, ran [20:55] cjwatson: but well, it's 2 or 3 commits on top of trunk, I doubt we were close the limit before that... [20:55] vila: it depends how hot things are in the DB (or something) [20:55] vila: and this is not the first bzr branch that has timed out this way, by any means [20:55] cjwatson: ack, thanks for the feedback anyway ;) [20:56] vila: it may happen a bit less often for bzr than it does for LP itself, but we've had a number of other reports [20:57] cjwatson: but the row has to be inserted for any bzr branch right ? Err, bzr the tool, not the project. I.e. every lp project using bzr share the same db table right ? [20:57] they all use BranchRevision, yes [20:57] but the number of rows varies wildly [20:57] so bzr the project itself shouldn't be more affected than any other project no ? [20:57] it is, because it has quite a deep history [20:58] cjwatson: oh, the cache... [20:58] cjwatson: anyway, it worked ! Thanks a lot [20:58] no, not the cache [20:58] cjwatson: so little activity on bzr that the revs are not cached anymore ? [20:58] $ bzr log | grep --count '^ *revno:' [20:59] 6609 [20:59] you don't understand how terrible the LP data model is here [20:59] if you push a new branch of bzr based on the above, it will insert 6609 + (something small) rows [20:59] instead of, say, (something small) [21:00] and it turns out that trying to insert thousands of rows is slow [21:00] O_o even for already known revisions ? [21:00] yes [21:00] * vila heart stops [21:00] it's revision per branch [21:00] like I say: terrible [21:01] I've heard stories about that table since... barcelona 2009 ? But I never realize there was revnos per *branch* :-( [21:01] unrolling the whole graph into the DB in an incredibly inefficient way [21:01] cjwatson: say no more ;-} [21:01] we avoided repeating this mistake for the git data model, obviously [21:02] well, you don't revnos in git anyway ;) [21:02] it's not revnos anyway, it's revisions [21:02] i.e. not just the left-hand side [21:03] LP itself is at revno 17709, but every new LP branch we push involves inserting well over a hundred thousand rows [21:03] it is very annoying [21:03] bzr has revids, what you mention seems related to revnos, i.e. for the same revid, tracking all the revnos in the branches [21:03] err [21:03] no it's not [21:04] it's branch * revision (revid if you like), it's not relevant if they share revnos in many cases [21:04] and it's not an attempt to track revnos, it's more like a performance-terrible implementation of merge detection [21:05] * vila rollbacks [21:06] ok, so you mean for each branch (irrelevant of whether revisions are shared via repositories), a list of *all* revisions is maintained and used to detect merges ? [21:06] yes [21:06] and this doesn't try to use the bzr code that do the same but knows how to load only part of the graph ? [21:07] possibly other reasons [21:07] yeah, ok, nm ;) [21:07] I don't think there's any point analysing exactly why it got that way TBH [21:09] I believe it's trying not to use the bzr code in question because that would require a callout to a system that actually has the branches in question [21:09] merge detection is done just with the LP database [21:10] that said, for the git implementation, we said screw that, we just call out to the git hosting system and ask it to do merge detection [21:10] much easier [21:11] William had part of a BranchRevision 2.0 implementation at one point, but then we did git instead [21:11] * vila nods [23:54] To be fair, at the time the code was devised, bzr LCA detection wasn't exactly fast.