/srv/irclogs.ubuntu.com/2009/03/27/#bzr.txt

spivjelmer: thanks for fixing the escaping bug, although I had to delete my svn-cache to fix it completely00:44
spivAh, hmm, or perhaps not quite...00:47
SamBescaping bug?00:49
spivSamB: %2F in svn-v4: revids rather than /00:51
jelmer_lifeless,jam,igc: is now too late to get another change to the bbc file format in?01:00
lifelessjelmer_: its never to late01:00
lifelessjelmer_: we just can't change the format in bzr.devwithout issuing a new one01:01
jelmer_ok01:01
lifelessit will come in as beta, meaning we can issue new versions easily01:01
jelmer_I'd still like to get that new revision serializer in01:01
lifelesswell, get a patch up :)01:02
jelmer_Well, I asked for feedback a while ago about this01:09
jelmer_about the format to use01:09
jelmer_(See "[RFC] New revision serializer format" on the mailing list)01:10
lifelessyou'll need to make sure send keeps working01:12
lifelessand possibly other things01:12
lifelessI don't have a strong opinion about revision serialisation; I would say though that it should still be typed01:13
lifelessI mean01:13
lifelesshaving it not know the encoding, or store badly encoded things is undesirable01:13
spivlifeless: I think I'll head to epping on the 1:3501:45
* spiv -> lunch01:46
* igc lunch01:58
lifelessjam: ping02:02
jelmer__https://code.edge.launchpad.net/~jelmer/git/trunk (-:02:07
=== jelmer_ is now known as Guest8700
lifelessigc: ping03:09
lifelessjam has reviewed my commit change, but unless I'm blind managed to not say approve|tweak|whatever03:09
lifelessabentley: is bb dead?03:09
lzhangI know this is from a while ago but seriously03:10
lzhangsvn is way harder than bzr03:10
lzhangif you are coming from no vc experience, bzr is super easy, the only hurdle is the command line03:12
spivjml: you may be amused to know that python trunk breaks bzr's test suite too (not to mention bzr itself).03:16
spivjml: although for different reasons.03:16
jmlspiv: right now I'm full of despair.03:17
jmlspiv: and I can't say that lightened my mood :)03:17
spivjml: fun fact #1: sys.version_info isn't a tuple anymore, and cannot be used in expressions like "%s,%s,%s,%s,%s" % sys.version_info03:19
spivjml: #2, TestCase._exc_info has been removed.  Which is actually reasonable I think, although a DeprecationWarning might have been nice.03:20
spiv(Although being an _-prefixed method I guess their policy doesn't oblige them to do so)03:20
spivWith those fixed the test suite at least runs, although there are failures from at least test_http, I haven't dug much further...03:21
Peng_Do new Python releases always cause fallout like this? What happened when Python 2.5 was released? Was bzr even around back then?03:29
spivPeng_: well, 2.7 isn't even a beta release yet, so there's still hope ;)03:30
spivBut basically, yes.03:30
lifelessso spiv provoked me to minirant03:31
lifelesshttp://pybites.blogspot.com/2009/03/unittest-now-with-test-skipping-finally.html03:31
lifelessthe least "you" can do is join in.03:31
* lifeless looks at spiv03:31
* lifeless looks at jml03:31
jmlnot going to, sorry.03:33
seb_kuzminskyi have a shared repo with a bunch of branches in it, and each branch has a single working dir with a checkout in it03:33
seb_kuzminskysome of the branches are *also* checkouts of a CVS repo elsewhere03:34
seb_kuzminskyyes it's messy03:34
seb_kuzminskyit gets worse03:34
* lifeless cris on jml's shoulder03:34
bob2Peng_: bzr was like 18 months old when 2.5 came out03:34
seb_kuzminskythe CVS repo recently branched, and now i want a new bzr branch that tracks the new CVS branch03:35
seb_kuzminskybut i want to be able to merge between my bzr branches...03:35
seb_kuzminskyif i simply check out the new cvs branch into an empty bzr branch, i can't merge between the bzr branches properly03:35
seb_kuzminskywhat should i do?  just shoot myself?03:36
seb_kuzminskyis it safe to just "cp" one branch-directory to another?03:36
seb_kuzminskyie "cp upstream-trunk upstream-2.3"03:37
lifelessits about the same as 'bzr branch'03:37
seb_kuzminskythen in upstream-2.3 do a cvs update to the new branch, and "bzr commit" that03:37
bob2bzr-load-dirs might still exist03:38
bob2also the wiki has a list of solutions03:38
seb_kuzminskyoops i'm back03:38
bob2seb_kuzminsky: also the wiki has a list of solutions03:38
seb_kuzminskyok bob2 i'll check that03:38
seb_kuzminskybob2: i'm pretty much using the "converting and ignoring history" method from "TrackingUpstream"03:43
seb_kuzminskymaybe i should switch to "Converting and keeping history"03:43
igclifeless: pong03:44
seb_kuzminskyi dont have access to the machine hosting the repo, so i can't use "bzr cvsps-import"03:46
jamigc: hey03:46
jamhey lifeless, I just "tweaked" your patch, sorry I forgot to vote earlier03:46
lifelessno worries03:48
lifelessI fixed the link test03:48
lifelessI don't think there were other changes needed? it was more informational?03:48
lifelessjam: if you want to talk about fetch we can arrange a voice call03:49
igcjam, lifeless: do we have a tool that 'looks' into a pack and gives you info about it?03:50
lifelessigc: there is an index dump command03:50
lifelessand there is repository-details03:50
jamigc: not specifically for a .pack file, there is "repository-details" that does a bit more03:50
lifelessthere isn't a single- .pack tool, partly because they are not standalone enough for that to be useful in current format03:50
lifelesss03:50
igcI've added incremental packing to fast-import as lifeless recommended and it does reduce disk space usage03:50
igcbut ...03:51
igcI'm seeing something weird03:51
igcemacs has 105K revisions03:51
igcafter importing 100K of them, the single pack file is 100M - cool03:51
jamlifeless: I would like to see "ExistingContent" return the fs hash03:52
igcbut the pack file generated for the last 5K is 500M!03:52
lifelessjam: oh right, it doesn't in the current commit code path either03:52
jambut I'm not sure if that would mess things up because you expect only real changes to come out03:52
lifelessjam: and I need to figure out why I didn't then03:52
igcand it seems that the packs grow bigger as fast-import goes03:52
jamUnsupportedOperation(_generate_inventory) seemed dodgy, but as long as it is good enough...03:53
jamigc: trees get bigger, packing makes a *large* difference03:53
lifelessjam: yeah, I'm unhappy with it, but it seems awfully close to make work to make another exception class03:53
igcis that expected? I would have expected the pack for each 10K to be roughly the same size03:53
jamI would guess that the new revisions have non-overlapping texts03:53
jamsuch that it all gets inserted as fulltexts to GC03:53
jamgroupcompress03:53
lifelessthey may have become more branchy03:53
jamigc: 'bzr pack' and 'autopack' make a world of difference03:53
jamlike 2.3GB => 30MB for bzr.dev03:54
jam500M for 5k is a bit surprising, but not impossible03:54
jamI'm assuming that with all packing disabled everything is a fulltext03:54
jamigc: Do you (effectively) have 1 call to insert_record_stream per text that you add?03:55
igcjam: just wondering out loud whether running pack multiple times in the one process is not releasing something it needs to03:55
jamPut another way, do you call add_lines() or do you stream in texts?03:55
jamigc: we don't delta between "insert_record_stream()" calls03:55
jameven less between pack files03:55
lifelessigc: so you need to pack again basically03:56
jam(as in, we may at some point delta inbetween insert_record_stream() calls, but we would really *like* to not delta between pack files)03:57
jamigc: consider the size of the fast-import stream03:57
jamhow large is it for those 5k revs03:58
jamI would expect brisbane-core without packing to be ~ that size03:58
igcjam: I'm using repo.texts.add_lines() to load the texts03:58
jamigc: add_lines() does 1 insert_record_stream() per text03:58
jamso yeah, you are getting all fully-expanded texts  in the target repo03:58
lifelesssame as commit03:58
jamigc: on the good side, it should make things fast, because we don't spend any time working about those stinkin' deltas :)03:59
* igc goes to look at the size of the fast-import stream03:59
lifelessI think if I was to write a fast import I'd do a 2-pass, pass-1 plan out everything and generate revids etc, pass-2 act like a fetch operation;03:59
lifelessthen I'd probably get clever and make it look like a repo :)03:59
lifelessjam: where are we at for freezing the disk format04:00
lifelessI know its alpha, but I'd like to start dogfooding on my laptop; don't want to do that until we're <reasonably> sure its copacetic04:01
jamlifeless: well, there is the subtree question04:04
jamwhether that is a data format bump or not04:04
jamand certainly should be answered if you want to dogfood04:04
jam20s to do a no-trees branch in a shared repo is a bit much04:04
jam:)04:04
jamThere is 1 bit I'd like to at least play with to see if we want to change04:04
jamit is maybe 4 bytes per record, so 3-4% total size,04:05
lifelessso subtrees are in discussion04:05
jamnothing huge, but something that is wasteful and easy to remove04:05
lifelesswhats the thing you want to play with?04:05
lifelessI need to lsprof commit to, I am wondering if group overhead is hitting commit04:05
jam(each delta record has a "source size" indicator, which isn't useful to us)04:05
jamlifeless: I would think commit would do really well with groups, since it doesn't have to delta04:05
jambut perhaps to load inventories, etc.04:06
jamThe stuff about how we want to lay out groups after "bzr pack" isn't a data format bump04:06
jamso we are fine there04:06
lifelessjam: it has to load the pages that add_inventory_by_delta hits04:06
jamIf we want a new chk index would be a format bump04:06
jambut that is a lot more work04:06
lifelessright, but I'm not trying avoid all changes04:07
jamand probably won't land in a --dev504:07
lifelessheck I'll have to change when we land --dev-5 as it will have a new string anyhow04:07
lifelessI just don't want to dogfood while we are churning04:07
jamsure04:07
jamI just have the one real data-format thing04:07
jambut it keeps getting pushed off because it doesn't seem critical04:07
jamI should just do it04:07
lifelesswhat is it04:07
jam(delta records have "source size")04:08
jam4-bytes at the start of each delta record indicating the size of the source text they were generated against.04:08
jamwell ~4-bytes04:08
lifelessuseful for extraction04:14
jamanyway, igc, I was hoping you would be able to bench branch for your python conversion, just to see where I'm at versus .dev04:15
lifelessif you delete the tree reference walk in branch, you can do that :)04:15
jamFor my testing of Launchpad branching, it dropped from ~44min under lsprof down to 14min (12min without lsprof)04:15
lifelessjam: I really thought difference_update was only a problem if the rhs wasn't a set04:15
lifelessjam: am I wrong?04:15
jamlifeless: you are wrong04:15
lifelessok, thanks04:15
jamit just uses the Iterator protocol04:16
jam.difference() probably cares whether it is a set or not04:16
jam.difference_update() seems pretty stupid04:16
lifelessI'm amazed04:16
lifelessI wonder if we should blacklist difference_update04:16
jamlifeless: so... I'm slightly wrong04:17
jamI just looked at the code04:17
jamif the other is a set04:17
jamit uses "set_next()"04:17
jamrather than PyIter04:17
jambut it still calls "discard_entry" for every entry in the object04:17
lifelessthats still size04:17
jamyep04:17
lifelessits probably because they are mutating the LHS04:17
jamit might be *slightly* faster, in that it would have the hash04:18
jamlifeless: yeah, you would have to create a temp object, build it, and then overwrite the current set with the temp data04:18
lifelessthey should at least recast it as self.difference_update(self.intersection(other))04:18
jamlifeless: interestingly, that *is* genuinely faster04:19
igcjam: I'll run the benchmark now04:19
jamat least when "other" is >> larger than self04:19
lifelessis it as fast as your .difference using code?04:19
jamigc: revno 3916 should have a decent set of updates04:19
jamlifeless: I didn't test it in the real-world, but TIMEIT gave equivalent results04:20
jamthough TIMEIT seems to say that "s = set(small)" takes 9ms, but "s = set(small); s = set(small)" takes 9.5ms04:20
lifelesslol04:20
jamso I don't entirely trust it04:20
lifelessso, I think in C we'd make a list verison of intersect04:21
lifelessiterate that without increasing refs04:21
lifelesss/iterate/generate/04:21
lifelessthen iterate it to dec refs in self04:21
lifelessshould be pretty fast04:21
lifelessand possibly only do that when len(other) > 3* len(self)04:22
lifelessI wonder if we should write04:22
lifelessin e.g. osutils04:22
lifelessdifference_update(a_set, other_set)04:22
lifelessto avoid unclear code and still be fast04:22
jamlifeless: so is it "BB:tweak" to use a FIFOCache instead of LRUCache for btree._internal_node_cache ?04:22
lifelessyes04:23
lifelesslong as its capped I'm happy04:23
lifelessdamn, four test failures in commit_uses_ric that I didn't know about04:27
lifelessfixing...04:27
jamigc: revno 3916 is 14m under lsprof, down from 44min. And if we can get a better fetch order, it would drop another 3.5min04:29
jamMy first tweaks are good, the later tweaks only effect really large repos04:29
jams/good/good everywhere/04:29
igcjam: that benchmakr is running now - bzr.dev 4208 vs bbc 391604:30
igcjam: give it 10 minutes04:31
jamigc: thanks. Note that "bzr branch bzr.dev" is still 2m8s up from 1m16s.04:34
jam(but down from ~4min)04:34
jamso even fixing the obvious stuff, it is going to be a bit slower04:35
jamthough maybe not... the overall time in "item_keys_introduced_by" is 52s04:36
jamwhich would bring us very close.04:36
igcjam: 68s (bzr.dev) vs 132s (bbc)04:37
jamigc: down from ~350s, right?04:38
jamigc: this is on python trunk?04:38
jam(just surprising, because I'm seeing similar numbers for bzr.dev on my machine)04:38
igcjam: yes, down from 35704:39
igcpython 3.0 branch04:39
jamlifeless, igc: question for you guys... If a root node turns out to be a simple leaf node which is redundant with a reference from an internal node you already have, is it a big deal if we transmit it?04:51
jamthe chances are pretty low04:51
jamthough it happens to occur in the launchpad history04:51
lifelessyou mean if someone were to e.g. delete everything leaving a much smaller tree?04:52
jamsomething like that04:52
jamIf one tree has "aa" and "ab"04:52
lifelessI don't really care04:52
jamand then we add "bc" causing a split04:52
jamthen the second tree references a leaf node with just "aa" and "ab"04:52
lifelessis this in aid of 'only read once'?04:53
jamlifeless: right04:53
jambeing able to go ahead and transmit the roots04:53
jamas we read them04:53
lifelessI think its fine if we read a page to transmit it04:53
jamso we don't have to try to read them again04:53
lifeless'read a page on the changed side'04:53
jamlifeless: right04:53
jamiter_interesting_nodes is the only code that buffers records04:54
jamand now that I have lazy streaming04:54
jamI'd like to get rid of buffering04:54
jambecause it causes refcycles04:54
jamand at the moment04:54
jamthe only nodes it buffers are the root nodes04:55
jamthough for a slightly different reason04:55
jambut still part of the issue as I rewrite it04:55
lifelessare you going for something more similar to iter_changes?04:55
jamlifeless: I'm playing around with that04:56
jamthough it gets hairy when you also try to "read once"04:56
lifelessIdeally we'd only have one function04:56
jamand "no buffer"04:56
jamas well as "read in batches"04:56
jamThough I think I can go away from a pure "never read a node I may find is unneeded" by using the fact that we generally have very flat, and very similar shaped trees. so grouping by exact prefix is generally 'good enough'04:59
jamrather than worrying about possible longer prefixes04:59
jamwe'll see04:59
* jam goes and finds a soft pillow05:00
lifelessgnight05:00
lifelessI'll drop by tomorrow mornign if you want to chat05:00
lifeless-> town, night all05:10
=== jelmer_ is now known as Guest44925
=== samurai_ is now known as samurai
crisbis there a way to make a remote branch 'append only'?  Ie for my trunk I dont want someone to be able to push to it if they've synchronised an old version via merge, as it will mess the revision history.07:07
vilahi all07:18
spivcrisb: yes, there's a setting you can put in the branch.conf07:28
spivcrisb: append_revisions_only = True in .bzr/branch/branch.conf IIRC.07:28
crisbspiv: cheers, found it in the manual too. rtfm!07:44
spivcrisb: :)07:46
=== thekorn_ is now known as thekorn
Mezhow do I resolve the conflict09:59
MezRK  connect-config.php => connect-config.php.OTHER@09:59
MezI'm not even sure what the conflict is09:59
Kinnisonwhat's the diff between the files?09:59
lifelessMez: thats a rename and a kind change10:00
lifelessMez: or remove + kind change perhaps10:00
lifelessone branch made it a symink10:00
lifelessone did something different10:00
Mezah fair enough10:01
Mezit should be a smylink to be honest10:01
lifelessbzr rm the one you don't want10:01
lifelessbzr mv the other to the right spot10:01
MezI've just removed it10:02
lifelessciao10:03
* lifeless waves bye10:03
thecookieHmm, is there any nice stats plugin? Like.. commit stats and such10:19
spivthecookie: there's a basic one at https://edge.launchpad.net/bzr-stats10:20
thecookieThanks :)10:20
=== jelmer_ is now known as Guest25096
=== jelmer_ is now known as Guest46817
beunospiv, lifeless, bzr performance is really starting to shine for remote operations12:43
beunoyou guys rock12:43
=== joshuablount is now known as jblount
=== thunderstruck is now known as gnomefreak
=== jelmer_ is now known as Guest37675
=== thunderstruck is now known as gnomefreak
Tak|workjelmer: ping14:04
=== sabdfl1 is now known as sabdfl
jammorning vila14:15
vilaHi jam !14:16
jamvila: I noticed you have some gc-python-only commits happening :)14:20
vilajam: yup, almost up to speed (still not 100% on the subject though :-/)14:21
vilabut close14:21
igchi jam, vila14:34
igctime for bed for me14:34
jamhey igc, surprised to still see you around :)14:34
jamand off you go14:34
jamsleep well igc14:34
vilawow igc, try to get some sleep !14:34
igcjam: I wanted to get a patch out and it just didn't want to pass all my tests thanks to a bug :-(14:35
igcsolved now and patch out - hooray!14:35
jam \o/14:35
igcjam: thanks for your work on branch speed14:35
jamigc: well, it mostly came down to not being something we were profiling, there were a few simple fixes, though there are more that are a bit complex to get right14:36
jam'difference_update' being code that I've known to poor scaling in the past, but sometimes forget14:36
jam"known to have poor"14:36
igcjam: if you get a chance, I'd really like you to be super brave and stabilise the disk format soon14:36
igcjam: I want to convert OOo and I really would like to do that on a semi-stable format14:37
igcjam: those big conversions take some time, even with fast-import14:37
igcjam: fast-export of mysql from btree format took over 16 hours for example14:38
jamigc: fast-export, or fast-import?14:38
igcjam: export14:39
jamconverting mysql took about 44hrs total on my machine14:39
jamthough memory consumption was up in the 1.8GB until I restarted it14:39
jamso I think we have a bit of a leak somewhere14:39
igcfast-import of mysql isn't working yet 'cause I think fast-export has some bugs14:39
jam(it *did* go back up to 800MB or so)14:39
igcit did import 20K+ revisions in 95 minutes though (to gc-chk255-big)14:40
jamigc: you *can* just do "bzr init-repo --gc-chk255-big target; bzr branch source target"14:40
igcright14:40
jamigc: especially given that the conversion is then guaranteed compatible :)14:40
igcbut I like to stress test fast-export/fast-import to get the bugs out :-)14:40
jamI don't know if you preserve revision ids and file-ids across fast-export | import14:40
jamigc: I will also say, having 1 export, and then N imports is a nice property.14:40
jamas import with CHK is much faster than export from XML14:40
igcjam: especially if the export time is the bottleneck14:41
lifelessvila: btw, parallel test branch up for review :)14:41
igcjam: no preserving of ids yet 'cause it doesn't matter for my testing14:41
igcanyhow, night all14:42
vilalifeless: Well, I know the code so it's bb:approve from me, I was wondering if I qualify as a reviewer here (I've seen similar situations where co-authored code is reviewed by a third dev)14:43
jamvila: we've done it both ways14:44
jamI usually try to post it, and wait for feedback in case a 3rd-party case14:44
jamcares14:44
jambut I'm more willing to merge it anyway14:44
jamlifeless: I just sent an email about questions with "insert_record_stream()" checking to see if the key already exists in the target.14:46
jamthe problem is that we have an explicit VF test that you can send the same records multiple times14:46
jamwithout error14:46
jam(random_id=False)14:46
jambut branching LP is 2x faster with (random_id=True), because we don't query all the spilled indices14:47
jam(the issue is having a .cix with 340k keys as you are copying)14:47
=== jelmer_ is now known as Guest32530
jamvila: want to do our phone call?15:05
jamI was about to play with changing the byte stream for gc15:05
vilasure15:06
jamand I realized it is going to effect the work you are doing15:06
vilaI push what I have and then call you15:06
vilajam: pushed, calling15:11
jamk15:11
lifelessjam: uhm, perhaps check for dups before linking the pack in, rather than on each key15:14
lifelessjam: there are some potential attacks if we don'tcheck15:14
Leonidashi, I am trying to add files to a tree but somehow I don't know how to do it. Any tips?15:20
Leonidas(I would like to work without a working tree)15:20
LeonidasMy code currently looks like this: http://paste.pocoo.org/show/109863/15:21
LeonidasSo I am able to build the revisions and get a repository with all log messages but unfortunately I don't know how to add the actual file contents to the repository15:22
lifelessmeep, its nearly 2:3015:23
lifelessgnight15:24
lifelessLeonidas: you really should use commit builder15:24
lifelessuse a MemoryTree15:24
lifelessor a PreviewTree15:25
lifelessand call commit() on it15:25
lifelessdoing what you're doing I can nearly guarantee that your output branch will fail 'check'15:25
Leonidaslifeless: what is the difference between a memorytree and a previewtree?15:26
* Leonidas happily uses that if it is easier.15:26
lifelessa memory tree is mutable, you lock it and edit the content15:28
lifelessa previewtree is the result of a merge, held in memory15:28
lifelessanyhow, I must go sleep15:28
lifelessperhaps ask on the list15:28
Leonidasok, thanks15:30
* Leonidas plays with MemoryTree15:30
jelmerTak|work: pong16:09
Tak|workhello16:10
Tak|workhave you tried my md-bzr branch lately?16:10
jelmerTak|work: No, I've been meaning to give it a try16:21
Tak|workok16:24
Tak|workI think it's to the point now where it might be worth submitting it to the MD community addin repo16:25
jelmerah, cool16:26
jelmerI'll see if I can give it a try in a couple of hours when I get back home16:26
vadi2how do I solve a tag conflict?16:48
jelmervadi2: remove the tag locally and pull again16:51
jelmervadi2: or use --overwrite16:51
vadi2I want to overwrite it on the server16:51
vadi2how can I do that? I remapped the tag from one revision to another locally16:52
jelmerbzr push --overwrite16:52
vadi2says no revs to push16:52
jelmervadi2: but did it change the tag?16:53
vadi2good question. I think it did actually16:55
vadi2thanks!16:55
Leonidasstrange, when I do a memorytree.put_files_non_atomic(file-id, "something")17:24
LeonidasI get this:17:24
Leonidasbzrlib.errors.NoSuchFile: No such file: u'/whatsonair/seewhatsonair.py'17:25
Leonidasbut I added both whatsonair as well as seewhatsonair.py17:25
james_wLeonidas: do you have a full backtrace?17:27
Leonidasjames_w: yes, http://paste.pocoo.org/show/109875/17:28
Leonidasstarts getting interesting in line 2617:28
Leonidaseverything above is mercurial stuff17:28
james_wLeonidas: did you mkdir the dir in the tree?17:29
Leonidasjames_w: is 'add' not enough?17:29
james_wnot sure17:30
Leonidasok, sounds like I know where my problem is, moment..17:30
james_wI haven't used MemoryTree, but normal working trees, you first create then file, and then version it with "add"17:30
Leonidashmm, in MemoryTree it looks somehow different17:33
Leonidashow can I check whether something exists already (mkdir) or is already versioned (add)17:34
=== beuno_ is now known as beuno
Leonidasthe latter could be done by path2id which returns none, but I don't know a nicer solution for checking whether a mkdir is neccessary.17:35
Leonidasjames_w: directories need to be mkdir()'ed and files add()'ed as far as I see. I can't mkdir() and add() afterwards.17:36
james_whmm17:36
james_wthat sounds odd17:37
Leonidasyep17:37
beunojam, hi17:39
beunoyou mentioned at some point you had a script to recursively pack branches?17:39
jambeuno: I'm not sure about "recursively pack", though a simple find + 'bzr pack' would do the job17:42
beunoaw, that means I have to brush up on my bash foo  :)17:44
jambeuno: find . -path '*.bzr/repository' | sed -e "s#.bzr/repository##" | xargs -n1 bzr pack17:45
jambeuno: brushed up enough?17:45
beunojam, :)17:46
beunothanks17:46
beunowe should have this on a wiki page somewhere17:46
beunorecipies17:46
vilajam: gc extraction speed \o/18:37
jamvila: yeah, I've known it was good, it is nice to see "just how good" it is.18:37
jamand shouldn't you be off with Valentine?18:37
jam:)18:37
* vila runs :)18:39
beuno_ah!18:57
beuno_when did we make upgrade recursive by default?18:57
beuno_it's a fantastic idea18:57
=== beuno_ is now known as beuno
beunoman, I'm so in love with bzr today18:58
fullermdIt is a fantastic idea, but I didn't know that we did.18:58
fullermdI was grumbing about it just a week or two ago...18:58
mrooneyIs there a way to unversion things with a pattern? For example I committed and a bunch of things I wanted to ignore went it, so I did bzr ignore pattern and that is fine, but warns me of all the versioned things with that pattern19:04
mrooneyHow can I tell it to say remove those from VC in the next commit19:04
mrooneyoh it looks like it has done that for me :)19:09
mrooneywell it says deleted I hope it doesn't mean that19:09
Peng_Eh? upgrade was made recursive by default? Cool!19:10
fullermdmrooney: I doubt it would...   my first impulse would be find | grep | xargs bzr rm19:11
Pieterbye19:11
Peng_jelmer: ping20:13
jelmerPeng_: pong20:17
Peng_jelmer: This is off-topic, but I just wanted to point out that *!*@rhonwyn.vernstok.nl got banned from #oftc until your connection issues are worked out.20:18
jelmerPeng_: ah, thanks20:22
abentleyjam: It looks like we're doing a case-insensitive match when moving files into directories on all platforms.  (builtins.py:766)  Is that right?20:57
jamabentley: from the looks of it, if you do "bzr mv foo bar BAZ" and 'baz' exists as a versioned dir, it will be used20:58
jamhowever, I think that "BAZ" has to hit a "os.isdir()" check earlier20:59
jamso on non cicp platforms20:59
jamthe "into_existing" won't be true20:59
abentleyjam: BAZ might be an unversioned dir.20:59
jamabentley: if BAZ is an unversioned dir, than the "_yield_canonical_inventory_paths" will probably fail21:00
jamnot positive, though21:00
jamI suppose if you had a versioned 'baz' and an unversioned 'BAZ' 'bzr mv foo bar BAZ' might, indeed, move it into the versioned dir21:00
abentleyjam: Do you agree that we should not be hitting this canonical_inventory_paths at all for case_sensitive filesystems?21:01
jamabentley: I don't think there was consensus on that, because of vfat21:01
abentleyvfat is not case-sensitive, only case-preserving.  On vfat, we should hit that.21:02
abentleyOr you mean that on Linux, it's actually case-sensitive?21:02
=== Guest22005 is now known as jelemr
=== jelemr is now known as jelmer
jamabentley: so, the last I discussed it was quite a while ago21:02
jamI think we talked about moving "case_sensitive" up into Tree21:03
jelmerPeng: I've fixed my connection issues21:03
jamand then something like "canonical_path" would return the first item or None21:03
jelmerPeng: Can you perhaps ask for an unban?21:03
jamthat said, I'm not really sure, and wasn't the direct reviewer of the code21:03
jamso... I could agree with you, but I haven't spent a lot of time thinking about the various implications21:04
abentleyjam: WT supports it already, and other Trees don't really have filesystems.21:04
abentleyjam: I would be happy for canonical_path to just return the input on case-sensitive Trees, though.21:04
vadi2If a file is deleted locally, how can one get bzr to re-download it? "bzr pull" thinks it doesn't need to do anything21:19
mrooneyvadi2: have you tried bzr revert file?21:28
vadi2no the person just deleted the branch and re-checked out21:29
vadi2I'll try that next time though, thanks21:29
vadi2(though svn's behavior in this case makes more sense)21:30
mrooneyif it was a checkout, pull isn't going to do anything21:30
mrooneyyour language is conflicting "deleted the branch" "re-checked out" so I am not sure if you were actually dealing with a branch or checkout :)21:31
mrooneyor, maybe I am wrong about pull?21:32
mrooneyoh, he is gone21:32
lifelessvila: ping21:36
blueyedI'm having problems with tailor, which appears to want remove files which are not versioned (anymore). Can I filter those out somehow in bzr?22:08
blueyedThe following is the log snippet, including the traceback: http://pastebin.com/m33875e5222:08
blueyedIt seems like those files have been removed in the commit before, but (also?) in the next one (CVS sucks after all).22:09
lifelessyou might have better results with bzr cvsps-import22:15
blueyedThat had other issues IIRC. I'm currently looking into ignoring unversioned files in BzrWorkingDir._removePathnames22:17
=== thunderstruck is now known as gnomefreak
furlithHi all, I need to download the last version of a project using bazaar, I never used it so I quickly read the user guide to know what I should to get it but it doesn't work22:50
furlithI've made this: "bzr branch [url]" but i have this error: bzr: ERROR: Not a branch: "http://trunk.ocaml-gnuplot.bzr.sourceforge.net/bzr/trunk.ocaml-gnuplot".22:51
furlithcould anyone help me?22:52
Peng_furlith: Bazaar is telling the truth. That URL is not a branch. It's a redirect to SourceForge's homepage.23:03
Peng_furlith: You can see the Bazaar web viewer at http://ocaml-gnuplot.bzr.sourceforge.net/bzr/ocaml-gnuplot/ , but I have no idea where to get the branches.23:08
Peng_SourceForge--23:08
blueyedfurlith: you prolly need to find the correct URL to branch from.23:08
lifelessfurlith: http://sourceforge.net/scm/?type=bzr&group_id=11563723:08
lifelessPeng_: ^23:08
Peng_lifeless: Oooh, where'd you find that URL?23:08
lifelessbzr://ocaml-gnuplot.bzr.sourceforge.net/bzrroot/ocaml-gnuplot23:08
lifelessPeng_: project, then svn repo, then url hacked to bzr23:08
lifeless:P23:08
Peng_lifeless: Ah, smart.23:08
blueyedPeng_: see the "Code" tab on SF.net23:09
blueyedhttps://sourceforge.net/scm/?type=bzr&group_id=11563723:09
Peng_blueyed: Oh! You click on "More", which magically makes the other tabs appear.23:09
Peng_I didn't know that.23:09
Peng_I just moused-over "More", which linked to the main page, so I didn't click it.23:09
blueyedyep. strange thing that is.23:09
Peng_Interesting that SourceForge uses bzr:// for anonymous access.23:12
Peng_Wait, that's dumb. The website just links to bzr://ocaml-gnuplot.bzr.sourceforge.net/bzrroot/ocaml-gnuplot , which is the shared repo, not an actual branch.23:13
Peng_furlith: bzr branch bzr://ocaml-gnuplot.bzr.sourceforge.net/bzrroot/ocaml-gnuplot/trunk/23:13
furlithPeng_: thanks but I have an empty directory and this error: bzr: ERROR: KnitPackRepository('file:///home/maelick/plot/gnuplot/.bzr/repository/')23:17
furlithis not compatible with23:17
furlithRemoteRepository(bzr://ocaml-gnuplot.bzr.sourceforge.net/bzrroot/ocaml-gnuplot/.bzr/)23:17
furlithdifferent rich-root support23:17
Peng_Uh.23:18
Peng_furlith: What version of bzr?23:18
Peng_furlith: Did you create a shared repo for the project? If so, run "bzr upgrade --rich-root-pack".23:18
furliththanks it works :)23:23
Peng_Uh, I hope he didn't have anything else in that shared repo.23:24
Peng_Oops.23:24
fullermdOh well, it'll resolve itself when we release 1.2 or 1.3 and have rich roots by default.23:26
lifelessfullermd: be nice23:40

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!