/srv/irclogs.ubuntu.com/2011/04/04/#bzr.txt

pooliebiab00:03
Stavroshello00:12
Stavroshow can i convert a bzr repo to a git repo by dpushing with bzr-git?00:12
jelmerStavros, hi00:14
Stavrosjelmer: hey jelmer00:14
jelmerStavros, didn't I help you do that last week ? :)00:14
Stavrosyou did :(00:14
Stavrosi'm missing a step now00:14
Stavrosi did git init and git init --bare and dpushed to it00:14
jelmeryou need a bzr init as well00:14
Stavrosbut i keep getting "/mydir" is not a branch00:14
Stavrosah00:14
Stavrosthat was it, thanks00:15
Stavrosbzr init --git00:15
jelmergit init /tmp/foo; bzr init /tmp/foo; bzr dpush /tmp/foo00:17
jelmerthere's no need for the --git00:17
Stavrosah, yes00:18
jelmer(if you're creating a branch in a git repository we always create a git branch)00:18
Stavrosbut if you don't have a git repo in there, you can do bzr init --git and it still works00:18
Stavrosah00:18
=== lifeless_ is now known as lifeless
spivGood morning.01:03
=== magcius_ is now known as magcius
pooliehi spiv02:50
spivHi poolie03:02
pooliehi, how are you?03:07
pooliespiv could you be pilot this week?03:08
spivSure!03:10
=== spiv changed the topic of #bzr to: Bazaar version control | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: spiv | 2.4b1 is officially out (ppa:bzr/beta needs love)
pooliethanks; i updated the rota03:11
=== spm` is now known as spm
=== wgrant_ is now known as wgrant
=== poolie_ is now known as poolie
=== r0bby_ is now known as robbyoconnor
=== robbyoconnor is now known as r0bby_
=== r0bby_ is now known as robbyoconnor
=== robbyoconnor is now known as r0bby_
=== r0bby_ is now known as robbyoconnor
vilahi all !07:28
spivHi vila07:29
vilaspiv: _o/07:29
pooliehi there vila, spiv07:31
poolievila, what's up for you today?07:31
vilapoolie: config :)07:32
pooliethe whole hog? :)07:33
vilapoolie: nope, a minimal set (excluding locking/minimal IOs/option registry) but enough to look at deplying/migrating07:39
viladeploying07:39
poolieyou know i'd really like a new caller ui :)07:40
vilapoolie: just tell me which ;)07:40
pooliesorry, api, not ui07:41
vilapoolie: ... or let's discuss it on my proposal, I think we are roughly on the same page so it shouldn't be too far from what you're expecting07:42
vilapoolie: of course if you speak earlier it would be even closer :D07:42
poolie:) i might still have a mail starred to reply to07:42
pooliei have a call in 20m but perhaps i can do it after that07:42
pooliei thought i did reply07:42
vilapoolie: I'm processing my inbox so I may not have seen it yet07:43
vilaoh, hmm, just noticed the PP update, I won't be able to do it the whole week (vacations), who should I switch with ?07:44
pooliei haven't replied after your last mail07:44
pooliewhoever07:44
poolieyou're not up this week07:44
pooliecan swap with me i think07:44
pooliefor some reason i really prefer .config_stack; i feel there's already going to be some risk of confusion about particular files vs stacks07:45
pooliemaybe not though07:45
pooliewhy do you put "sections (read-only and mutable)" first?07:45
vilapoolie: I'm talking about *next* week, and I can't switch with you either as I won't be there from 2011-04-13 to 2011-04-27 ;)07:47
vilapoolie: bottom-up07:47
vilapoolie: TDD is easier for me when implementing from the lower levels first07:49
vilapoolie: regarding .config vs .config_stack, the only cases where you want to use the config file directly is to modify it and even there you could do it via the stack, so somehow, devs shouldn't manipulate config files directly, only the user should really see them as an entry point (like command-line options or env vars)07:53
vilapoolie: I can be persuaded otherwise but I think that if we change the API now, it's to also change the mental model, and configs should be seen as stacks rather than files07:55
spivvila: are they always files?  I would expect that e.g. bzr-svn branches may provide some config-like values without having a config file.07:56
poolieok07:57
vilaspiv: indeed, they are stacks built from stores (the first store will be based on ConfigObj) but other stores can be implemented as long as they can give us sections07:57
poolieactually i don't strongly prefer it anymore ; i did on friday but not now07:57
vilareally, I don't think I'm reinventing wheels here, just shuffling the design a bit around what we already do while getting rid of many hackish parts07:59
pooliei think so too07:59
pooliei can see why afc thought it was complex07:59
vilait may appears I'm not, but really, that's my intent08:00
pooliei do still kind of feel smaller steps are possible08:00
vilahow small ?08:00
vilaor rather,08:00
vilaat which point does the cost of wiring the smaller steps become higher than leapfrogging a couple of them ?08:01
AfCU+200D ZERO WIDTH JOINER small!08:01
vilaAfC: :)08:01
pooliefor example just changing the internal api not to construct global configs all over08:01
vilaha, and how do you ensure you won't have to do that twice ?08:02
vilaor do it without adding stuff we'll delete later ?08:02
pooliei don't08:07
poolieit's a risk08:07
poolieon the other side you have to weigh the risk of doing preparatory stuff that's not actually delivering value yet08:07
poolieso if i was reading that list properly, what's first?08:08
vilapoolie: you mean section/abstract store/stacks ?08:08
poolieyes08:09
vilaso section are first08:09
vilaI already have some stuff tested/coded for sections and stacks, I blocked a bit on store Friday for the locking part, so I wrote some thoughts about it and will focus on using the existing scheme08:10
poolieso just to make sure i understand08:11
pooliewhen you say section, this is about letting the stack choose to use just one section from inside a particular file?08:11
vilas/wrote some thoughts/wrote some thoughts about the new locking scheme allowing allowing minimal IOs/08:11
poolielike in looking at  locations.conf it'll pick out the relevant sections and slot them in?08:12
vilaa selection of sections yes, like matching_sections does today for locations.conf08:12
vilabut allowing that for any store08:12
vilanothing fancy either for now, only what exist: globs (which is mainly used as just paths today)08:13
vilaoooh, col*l*ocated !08:15
vilais that indeed the correct spelling ?08:15
pooliei think there would be one08:16
poolieco-located08:16
vilahmm, so using 'colocated' is just stripping the '-' in identifiers ?08:17
vilaerr, as in python identifiers or paths08:17
poolieyes i think so08:17
pooliedid i spell it the other way somewhere?08:17
vilak, will do that then08:17
vilapoolie: not you, ispell08:17
vila(0) co located (1) co-located (2) collocated08:18
pooliei know of 'collated'08:18
pooliehttp://en.wikipedia.org/wiki/Collocation08:19
poolieinteresting08:21
vilaright, this page only used 'located' once in collocated, I can go with co-located if you prefer08:21
spivI think that's jargon that isn't referring to a particularly similar concept08:22
vilaor may be we just don't care :D08:22
pooliewhich page?08:22
vila http://en.wikipedia.org/wiki/Collocation08:22
spivAnd that page links to http://en.wikipedia.org/wiki/Colocation_%28disambiguation%29 which links to http://en.wikipedia.org/wiki/Colocation_%28business%2908:22
poolie"go with co-located if you prefer" where?08:22
poolievila, can you either take, or assign to yourself, one or more bugs about config08:23
vilapoolie: certainly08:23
vilapoolie: thanks for the reminder, I should have done that long ago08:23
spivhttp://en.wiktionary.org/wiki/colocation suggests that with or without the hyphen are both used.08:23
vilaspiv: excellent ! There is even (and indeed) http://en.wiktionary.org/wiki/colocated08:24
vilajelmer: hi08:25
poolievila, for our stuff, 'colocated08:25
vilapoolie: yup, I've already reverted to that08:26
spivjelmer: I just gave you a review, of sorts, finally: https://code.launchpad.net/~jelmer/bzr/move-interbranch-fetch2/+merge/5495808:28
poolievila, so at the end of this, what sections will we have08:48
pooliejust locations, or also others?08:48
vilasections anywhere and their definition should be file specific, but for bzr itself, urls (as of today) for bazaar.conf/locations.conf (or only paths/globs there) and probably relative paths for others08:50
vilasome plugins may want to use different schemes for sections (window names for GUIs for example ?)08:51
vilaor hosts for authentication.conf (which uses arbitrary section names today and relies on their definition order rather than matching)08:52
vilaI don't intend to modify authentications.conf until we need too though08:53
vilabut the point is that sections are a different way to look at partitioning the options and it's best to leave that part open if you can08:54
vilaerr if we can08:54
jammorning vila, getting yourself out of PP rotation I see ?08:57
vilajam: hehe, pushing down the stack yeah :D08:57
vilasorry I didn't realize that earlier08:57
vilapoolie: by the way, stacks were somehow implemented in bzrlib/rules.py too08:58
poolieok09:09
pooliei might stop for today09:09
* vila cries, compiz shortcuts gone again....09:13
=== mkv is now known as m4v
=== Peng__ is now known as Peng
* spiv stops for the day09:55
jelmer_vila is skipping patch pilot duty ? :)11:59
vilajelmer_: yup, and to add insult to injury, he's taking vacations, what a shame :D12:00
=== jelmer_ is now known as jelmer
jelmer(-:12:01
=== ScottK2 is now known as ScottK
=== beuno is now known as beuno-lunch
DeeLayI have a feature branch that has been merged into trunk, I need to undo that merge continue working on the feature branch, and then re-merge the feature branch back into trunk at some point in the future.  Any suggestions on the best approach?12:17
vilaDeeLay: depends on two things: is the trunk public, do you still have your pristine feature branch12:35
vilaif you still have your feature branch before the merge, just keep working on it12:35
vilayou'll merge it to trunk later, only additional changes will appear on trunk at that point12:36
vilafor the trunk, there are two ways: either it's public and people already have pulled from it so you need to merge a reverse of your changes12:36
DeeLayvila: trunk is not public, but it is the branch we release from.  The feature got cancelled at the last minute, so we need to pull it from trunk, so that other features can be released without needing to do cherry picked releases12:37
vilait's not public or nobody had pull from it (always hard to ensure but) you can just push --overwrite -r<revno-before-the-merge>12:37
vilas/^/if/12:37
vilaDeeLay: is the above clear enough or do you need more details ?12:38
DeeLayvila: yeah I think that makes sense, I'll give that a go, thanks12:39
vilaDeeLay: if your merge is the last commit on trunk, you can also 'bzr uncommit' there and 'bzr revert [--no-backup]' or 'bzr clean-tree' to get rid of the *~ files created by revert12:39
DeeLayvila: unfortunately not, and the last time I uncommitted a merge, it didn't re-merge the changes later12:40
vilaDeeLay: right, so you have other commits on top of your "faulty" merge, more care needed12:41
vilaDeeLay: you probably need to revert this merge explicitly then 'bzr merge -r<revno>..<revno>-1' <revno> being your merge12:42
vilaDeeLay: and commit the result with a message explaining the issue for future references if some other dev built on top of your merge *including* parts you wanted to remove,12:43
vilaDeeLay: you *should* be able to detect such cases when you merge the reverted change, but evil is in the details...12:44
DeeLayvila: yeah that was my first attempt, but that means merging trunk into the feature branch (to keep it upto date) would remove the changes from the feature branch12:44
vilaDeeLay: no, you can do that on the trunk itself12:45
vilaDeeLay: it will be clearer there for everybody involved (hopefully)12:45
DeeLayyeah, that's what I mean, so if I bzr merge -r <revno>..<revno-1> in trunk, I can effectively remove the changes introduced by the feature branch12:46
DeeLayin the meantime dev work will continue, so i will need the feature branch to keep up to date with other changes being merged to trunk12:46
vilaDeeLay: now, on your feature branch, you can add more changes and merge the overall in trunk again when needed, you may encounter conflicts then though12:47
DeeLaybut from the feature branch, bzr merge trunk, will remove the changes that the feature branch introduced to trunk from the actual feature branch12:47
vilahaa, that, yeah12:47
vilawell, the sooner you merge trunk to your feature branch, the sooner you'll address the possible conflicts12:48
DeeLayalso tried bzr revert -r <revno-1> in trunk, which gets round the commit of the reverse merge issue12:48
DeeLaybut in that scenario, re-merging the the feature branch comes back with "nothing to do"12:48
vilaDeeLay: well, revert will also revert all subsequent commits so probably not what you want12:49
vilaDeeLay: the reverse merge is called a cherry-pick, it doesn't track the ancestry so it finds no new *revision* to merge12:50
DeeLayvila: yeah, but I can live with that if it worked, as the other changes could be re-merged.  The essential problem is that trunk will always remember that the reverted commits happened, so it won't re-merge them12:50
vilaDeeLay: that's why you need to merge trunk again after that into your feature branch: to ensure that your branch carries the right changes12:50
maxb<DeeLay> but from the feature branch, bzr merge trunk, will remove the changes that the feature branch introduced to trunk from the actual feature branch12:51
maxbThere's a way to avoid this, let me explain:12:51
maxbStep 1: Merge the revision of trunk immediately prior to the revert commit as normal12:51
maxbStep 2: Merge the revert commit and *only* the revert commit from trunk, and do "bzr revert .", and commit that12:51
maxbAt this point you now have a feature branch which says "I know trunk reverted these changes, but *I* am going to keep them"12:52
maxbAnd I believe they should even merge sensibly back into trunk when you have another attempt to land the feature.12:53
=== beuno-lunch is now known as beuno
jelmervila: have you heard anything more about the SRU?12:53
vilajelmer: no :-/12:54
DeeLaymaxb: if I merge trunk, then revert, there will be nothing to commit, won't there??12:54
maxbNote carefully: "bzr revert .", not "bzr revert"12:54
DeeLaymaxb: ah, nice12:54
maxbThis will revert all the tree changes, whilst keeping the "I have merged revision X" metadata12:54
DeeLaymaxb: that totally worked, reverse cherry picked from trunk, merged trunk to feature branch, and then tried a dry run of re-merging the feature branch into trunk and the changes come across again13:02
DeeLaythanks guys13:02
idnarso, this is sort of related to the conversation from earlier13:41
idnar-c 123 is equivalent to -r 122..123; is there any equivalent to -r 123..122 ?13:41
jam1idnar: no shorthand form, though X..before:X works for all types of X13:41
idnaryeah... bleh13:41
idnarwas writing an automated script, and my revisionspec is already 10 pages long :P13:42
=== jam1 is now known as jam
maxbYes, a backwards -c would be very useful13:43
maxbSubversion uses a negative number for this, but that's already taken in bzr. Took me a while to un-train my fingers from that one.13:44
jamvila, jelmer: testing question. I'm working on bug #740932, and I want to test that we cache the correct packed-stat value even though Transform does stuff like renaming the file after it is created.14:15
ubot5Launchpad bug 740932 in Bazaar "building working tree doesn't update sha cache" [High,Confirmed] https://launchpad.net/bugs/74093214:15
jamThe specific problem is that the time to create and rename the file runs in under 1s14:16
jamwhich is the granularity of our sha cache test.14:16
vilatouch the file with a specific time ?14:17
jamI'm trying to find a tasteful way to test it14:17
jamvila: so the point is that Transform is creating the file14:17
jamhow do I touch it14:17
jam(where/when?)14:17
vilafrom the test ? hmm or from some hook triggered by a test decorated class ?14:17
vilathat's not the first time I'd like to better control the clock, but here you want to observe a fs behaviour which is trickier14:18
jamvila: yep14:18
jamit does call os.rename14:18
jamwhich I could hack into14:18
jambut that is pretty ugly14:18
vilahow about reducing the 1s to 1us ?14:18
vilafor tests I mean14:18
jamvila:  not optional14:18
vilamake it so :)14:19
jamDirstate's packed-stat is integers only14:19
vilaouch14:19
vilahmm14:19
vilahow about changing its scale then14:19
vilaagain, for tests14:19
vilaor may be you should have different tests for the different effects you want to observe14:20
jamvila: I *really* don't think we want to be hacking into compiled code and adding if checks in our tight-loop functions14:20
jamvila: the issue is that in the real world, it can take several seconds from the time we start creating files until we've finished the last one. which gives us plenty of files whose state we can cache14:21
jambut we have to be careful because we also rename the top-level ones right before we finish14:21
jamI wonder if I need to worry, because that rename is probably never going to be outside our 3-second window14:21
vilawhat do you want to test ?14:21
jamit doesn't help that Dirstate caches's its threshold time to the first time it checks14:22
jamvila: this is what I have so far14:22
jamat the point where we have Transform.create_file14:22
jamI store the sha1 and stat value of the file14:22
jamat the point that we have finished creating all of these files14:23
jamI then call Tree._observed_sha1 for everything I cached14:23
jamthere is one step inbetween, where Transform renames all the files into place14:23
jamthus changing their 'ctime'14:23
jambut we could be saving the sha1 value with the new ctime14:23
vilahuh ? renaming change the ctime of the containing dir not of files itself right ?14:23
vilaerr, mtime14:24
jamvila: renaming the *file* changes the ctime of the *file*14:24
vilactime as 'creation time' ??14:24
jamvila: stat14:24
jamctime == last meta-info changed time14:24
jamon *windows* == creation time14:24
jamon Linux something different14:24
jam(we've talked about not paying attention to ctime, but we currently do)14:24
vilaand you want to avoid calculating the sha1  for files that were only renamed ?14:25
jamvila: *today* after doing 'bzr co' the next 'bzr st' will re-read every file to check if it is up to date, and re-sha the content14:27
jamwhich is affecting eg linaro, because it takes >1m to re-sha the whole tree14:27
jamso bzr branch-for-feature ; bzr st; bzr commit; takes longer than it should14:27
vilayeah, I've read your analysis14:28
vilaand you want to avoid calculating the sha1  for files that were only renamed ?14:28
vilaor touched by the transform14:28
jamvila: I already have code that handles the 'create_content' part14:28
vilarhaa, calculate only for files modified, yeah, create_content14:28
jamI can easily add code that handles the "and the files are renamed into place" part14:28
jamvila: but I don't know how to test it14:28
vilaISTM you're trying to test from too high, get closer to the code that you want to test14:29
jamnote, I just realized my changes need some updating, but I have a handle on that14:29
jamvila: so step through TreeTransform.apply inlined into a test case and assert the dict values?14:29
jamI really don't want to rewrite the apply function14:29
jambecause of drift, etc.14:30
vilaerr, no, I thought about where you establish that a file need to be re-hashed14:30
jamvila: well, with my first fix, the test accidentally succeeds, because the file doesn't look like it needs to be rehashed14:32
jambecause the timestamp didn't actually tick over 1 second14:32
jambecause the 'rename' happened within 1s of the creation14:32
jamwhich doesn't happen in reality14:32
jambecause creation can take a minute for large trees14:32
vilabecause you exercise too much code to properly test what you care about (is what I'm trying to explain :--/)14:33
vilaif you go closer to tiny part you care about, you should be able to be more precise14:33
vilaor is this code inlined in a compiled extension ?14:34
jamvila: the code that compares to see if a file is up to date goes through packed_stat which truncates to 1s resolution.14:34
jam(we compare packed_stats)14:34
vilainject them14:34
vilayou're telling me that you can't have a test with sleep(3s) right ?14:35
vilaso you have to change at least one constraint succeed :) The clock seem too hard, so that leaves faking the data based on this clock14:36
jamvila: I could detect it with a sleep(1)14:36
vilawell, sleep(1) is bad :)14:36
jamor hacking os.rename to add a os.utime to mutate mtime to fake the ctime change14:36
vilasleep() is bad14:36
jamsince you can't directly touch ctime14:36
LeoNerdI'm not sure you're -guaranteed- to notice a ctime tick using sleep(1)14:37
LeoNerdsleep(1) asks to sleep for no more than 1000ms.14:37
jamLeoNerd: while round(time.time()) == orig_time: time.sleep(...)14:37
vilaas long as it's explained in the test *that* sounds better but involving os.rename() in your test seems like enlarging the scope of the tested code too14:38
vilajam: said otherwise: you seem to be writing a blackbox test when a unit test could be more precise14:39
vila"blackbox" with quotes14:39
vilajam: blackbox as in: not allowing to observe directly what you want to test14:42
jamvila: testing that 'bzrlib.transform.build_tree" has the sha hash values correct doesn't seem particularly 'black box' to me.14:42
jamand the lifetime of the caching has to be across the TreeTransform.apply stage.14:42
jambecause you don't want to try to save the sha1 until you're done, to give it the best chance to be outside the 3s window14:43
vilajam: given that this function is more than 100 lines... it's hard to *not* consider it as an opaque box with a lot of side effects14:43
vilajam: the aim is good but it doesn't mean you can't test a building block14:44
vilaow, and it uses a 50 lines _create_files() too...14:45
jamvila:  a fair amount of it is if blocks that you can avoid. by not setting accelerator_tree, etc.14:46
vilaright, I'm beginning to feel your pain :-/14:47
vilajam: can't you split out the part you're interested in ?14:48
vilajam: how many existing direct tests for _build_tree ?14:49
jamvila: by re-writing Transform.apply14:49
vilajam: good luck with that :-(14:49
jamand I still don't really know how to handle making sure we get the correct time for top-level files14:49
vilajam: anything smaller ?14:49
jamanyway, I have a couple other bits to fix now anyway.14:49
vilajam: you may be just be facing a hole in the test suite :-/14:50
jamvila: so I could fake TreeTransform state, call one of the functions on it, and assert the after state14:50
jambut TT state is pretty big, too14:50
vilajam: a known one for that matter14:50
vilaok, so, best effort would indeed be to write blackbox tests here :-/ Sadly that means adding more tech debt...14:51
vilawhat {worries me|makes me sad} is that you end up talking about TT when you care about a packed_stat which TT doesn't even know about14:52
=== wgrant_ is now known as wgrant
vilajam: from the you-wish-you-did-it-long-ago dept: use an in-memory fs and control its clock ! :-}14:55
=== JayFo is now known as JFo
jelmerjam: hi15:20
jelmerjam: do you know how significant the memory usage improvements between 2.2.3 and 2.3.1 are in terms of fetch performance ?15:21
jamjelmer: you'd have to read the release-notes. I don't think it is huge, though.15:22
jamjelmer: stuff that accesses all chk pages can be quite a bit cheaper, I guess15:22
jamjelmer: "bzr ls -R" dropped from 400MB to 250MB, which is roughly equivalent to fetching a reasonable amount of data15:23
jelmerjam: ah15:23
jelmerjam: the fix you did after the gcc performance analysis hasn't ended up in a release yet right?15:24
jamjelmer: that is the "iter_entries_by_dir()" change?15:25
jamI don't think that has been released15:25
jamjelmer: actually, according to release-notes it is in 2.4b115:26
jelmerah, cool15:26
vilajam, jelmer: according to the https://launchpad.net/bzr/+milestone/2.4b1 changelog, it is not15:35
vilajam: did I copy the wrong changelog or did you merged in the wrong section ?15:35
jamvila: lp only counts things that you target the bug to15:36
vilajam: I'm talking about the changelog the RM copied at the time the release was frozen15:36
jamvila: ah15:36
jamit landed in 573015:37
jamit certainly could have been merged into the wrong section15:37
jamsince that happens *by default*15:37
vilaand 2.4b1 is 572715:37
vilajam: no worries, just wanted to make sure jelmer got the right stuff15:38
jamvila: so I found a better way to poke at it. Use 'os.utime' between the time that we call create_file, and the time that we call .apply15:39
jamit is actually asserting something that doesn't happen, but it would catch a real bug15:39
=== oubiwann` is now known as oubiwann
=== deryck is now known as deryck[lunch]
=== r0bby is now known as robbyoconnor
=== lamont` is now known as lamont
=== deryck[lunch] is now known as deryck
=== zyga is now known as zyga-dinner
=== zyga-dinner is now known as zyga
=== Ursinha is now known as Ursinha-lunch
barryi'm having a problem trying push a branch to launchpad. it seems like bzr and hg are fighting each other for some weird reason.  on natty.  i get:19:52
barrybzr: ERROR: No such file: /~barry/mailman/restusers/.hg/requires19:52
barrybut this is a bzr branch in a shared repo and hg shouldn't enter into it!19:53
barry(there is no .hg directory in this directory)19:53
barryi do have bzr-hg installed however19:53
jelmerhi barry19:53
jelmerbarry: That's bzr-hg, although that bug should be fixed19:54
jelmerbarry: how do you have bzr-hg installed?19:54
barryhi jelmer.  apt-get install bzr-hg19:54
jelmerbarry: the one that was synced today, or from earlier?19:56
jelmerbarry: can you give the bzr-hg in the bzr daily builds PPA a try?19:56
barryjelmer: from a few days ago.  apt-get upgrading now :)  i'll let you know if that fixes it19:57
bpierrehi20:03
bpierreis the PQM version used by the Bazaar team the one from lp:pqm?20:04
barryjelmer: that did the trick.  thanks!20:08
jelmerbpierre: approximately20:09
bpierrejelmer: :P, patched?20:09
bpierreI have been looking into it20:09
bpierreI managed to make it somewhat work20:09
jelmerbpierre: To be honest, I think we're just using lp:pqm but I'm not sure20:09
bpierreok20:10
bpierreso do you know if your version work by making a direct lightweight checkout of lp for each merge?20:10
bpierreI see no activity on the lp code page for the project20:10
jelmerI'm pretty sure pqm creates a full branch, and that's what we're seeing too20:11
bpierreand a number of branches marked in developement and not merged...20:11
bpierreso branch lp:bzr, with tree, and then merge?20:11
jelmerbpierre: pqm is pretty much dead upstream; bzr (and launchpad too, IIUC) are looking to move to tarmac long term20:11
bpierretarmac?20:12
bpierreok, I'll look into it20:12
bpierrePQM, I add to make a number of patches, and still less than optimal ;(20:12
jelmerlp:tarmac20:13
bpierreyeah, seems to be tied to launchpad ;(20:13
lifelessjelmer: pqm's not dead, just not being changed unless there is a defect20:35
lifelessbpierre: yes, we run trunk of lp:pqm without patches20:35
bpierrelifeless: ok, so unless I missed something, everytime a merge is attempted, pqm does a lightweight checkout of the target branch, right?20:38
lifelessbpierre: yes, clean slate each time20:38
bpierreI see no support for caching20:38
bpierreso for a big working tree, a lot of network traffic20:39
lifelessbpierre: so, what you can do is use a local tree and set the published_to option20:39
lifelesss/tree/branch/20:39
lifelessit will checkout locally (no network traffic) and do a push afterwards20:39
bpierremmm, but I still need to update this local tree somehow, no?20:39
lifelessas long as pqm is the way things are landed this works fine; if you manually push to $wherever, then you need to do a manual push to that local branch too20:40
lifelessit would be quite reasonable to file a bug asking for a more transparent cache facility20:40
bpierreok, I also ran into an issue with the way a working tree name is constructed, plus ploblems with encoding20:41
bpierreI also patched it for merge directive support20:41
bpierre(there is already a branch in lp, but with conflicts, and another I did not see until after making the patch)20:42
bpierreanyway, I wonder if the support for other VCSs is of interest?20:42
lifelessdo you have some tests in your branch? I hesitate to incorporate changes which can break silently on future changes20:42
bpierreI understand completly20:42
lifelessthe other vcs support is maintained by other vcs folk20:42
bpierreis it used?20:42
lifelessit used to be :) I have no idea now.20:43
lifelesstheres no requirement that new features work on all vcses20:43
bpierrebecause I add to bypass some abstractions, to support merge directive inlined in a mail20:43
lifelessah20:43
bpierreplus the code looks complicated20:43
bpierreat least to me :P20:43
lifelessit is, it started as a simple script20:44
lifelessand gew20:44
lifeless*grew*20:44
bpierrethe lack of documentation also does not help20:44
lifelesscode level docs?20:44
lifelessthere is a docbook manual for users20:44
bpierreyeah, I'm starting to think it might be simpler to just start from scratch20:44
bpierreI'm problably way understimating the time it will take :D20:45
lifelessthats the usual thing20:45
bpierrethe docbook manual in the code is not really helpful20:45
bpierreI add to look at the code and experiment20:45
lifelessso, caching transparently should be easy - have an option, say, 'cache_repository' and when thats set use bzrlib apis to cache the tip revision of the branch20:46
lifelessconstruct a temp branch in it during the merge - a few lines of code20:46
bpierreyeah, a few lines there, and few lines somewhere else... :P20:46
lifelessfor your merge directive support; if it doesn't break other vcses, and you wouldn't mind if I broke it by mistake fixing other things, then it doesn't /need/ tests.20:47
bpierreI can't help to notice that every plugin that need to merge dupplicate parts of the bzrlib code for the merge builtin20:47
lifelessyeah20:48
bpierre*from the20:48
bpierreone question about the bzrlib API: is there a way to get the canonical URL for a branch?20:48
bpierrethe only way I found is by opening it and looking at base20:49
bpierrewhat I mean is correctly expand lp:bzr to bzr+ssh://....20:49
bpierreor expand my local bookmark bm:something to the real URL20:49
bpierre?20:49
maxbbpierre: bzrlib.directory_service.directories.dereference(url) ?20:51
bpierremaxb: ok, I'll try20:51
ps_jinxspiv: I am getting this bug http://psjinx.pastebin.com/yxS2PNGm .. what can be the issues21:58
jelmerps_jinx: That's a known bug related to proxies; it's fixed in newer versions of bzr.22:00
ps_jinxjelmer: but I'm able to pull the code successfully22:18
jelmerps_jinx: that's a different code path22:19
ps_jinxok22:19
=== Ursinha-lunch is now known as Ursinha
pooliehi all23:19
=== JasonO is now known as Guest72019
=== tchan1 is now known as tchan

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