/srv/irclogs.ubuntu.com/2010/10/08/#bzr.txt

jammwhudson: I'm back00:00
mwhudsonjam: i hate twisted.conch00:01
jamI'll go handle make lint, and then ping you again00:01
mwhudsonok00:01
jammwhudson: can't say as I'm a huge fan :)00:01
jamIt doesn't seem terrible, but the adapter stuff is a bit "magical" for me, and the Interfaces would be interesting if they were actually a complete spec00:01
mwhudsonit's inheritance graph is a bit wonky, and it blurs the distinction between protocol and transport in confusing ways00:04
dOxxxhow would I print a stacktrace to the console so I can tell where a function is being called from?00:05
dOxxxah nevermind, I think I found what I was looking for00:06
jammwhudson: I think make lint is a bit overzealous. It seems to be finding a ton of stuff in files I didn't touch00:07
jamIs it meant to only run on the local branch modifications?00:07
jam(I saw it ask something about "bzr: pipes unknown command"00:07
mwhudsonjam: yeah, it's meant to do a st -r submit: and do it on the files reported changed, i think00:07
mwhudsonjam: so about the 'blocking' code you added to session.py00:08
jam(it seems to use "bzr info | sed..." to find the parent branch, but my parent is 'devel' but I've merged 'db-devel' and all hell has broken loose00:09
mwhudsonjam: :(00:09
mwhudsonjam: maybe just run pyflakes on the files you know you've changed00:09
jambzr pull --remember ../lp-branches/db-devel seems to sort it out00:09
mwhudsonah ok00:10
jamstill a lot of noise00:10
jam(Makefile: line exceeds 78 chars, about 20 times)00:10
mwhudsonyeah, i saw that00:11
mwhudsoni don't think we care00:11
jamand do we *really* want (foo, ) vs (foo,) ?00:11
dOxxxGaryvdM: any idea why run_app doesn't do the appropriate bzr executable substitution but relies on callers to do so?00:12
mwhudsongar, conch seems to conflate "a subprocess has been requested" with "a subprocess has been launched and is connected"00:12
mwhudsonwhich is a very non-twistedy sort of thing00:12
dOxxxGaryvdM: this is in bzr-explorer, bug 65607200:12
ubot5Launchpad bug 656072 in Bazaar Explorer "explorer should invoke qbzr with same bzr (affected: 1, heat: 8)" [Undecided,In progress] https://launchpad.net/bugs/65607200:12
jammwhudson: well, instantiating Process means it has forked00:12
* GaryvdM opens code00:12
dOxxxGaryvdM: it seems like a logical DRY place to put it00:12
mwhudsonjam: yeah, but it makes it hard for us to do the right thing in our execCommadn00:13
jammwhudson: what do you consider "the right thing"?00:14
jamI guess I'm not sure where you think we shouldn't be blocking? Because of _spawn connecting to another service to request the fork?00:14
mwhudsonjam: use twisted apis to do the communication with the forking service00:14
jammwhudson: right. And what you're finding is that "spawnProcess" wasn't a deferred, so we can't build up a new deferred based on responding to the socket interaction00:15
jamIs that correct?00:15
mwhudsonjam: something like that00:15
mwhudsonwell, it's not really "is a deferred", it's more that conch expects that by the time execCommand returns, it's ok to try to write data to the client00:16
mwhudsoner00:16
mwhudsons/client/protocol/00:16
mwhudsonthe thing is, there's _almost_ support in conch for doing the right thing00:16
GaryvdMdOxxx: I agree that that makes sense, but I'm not sure that is the cause of the bug.00:17
dOxxxGaryvdM: indirectly it is. the edit_config_file function which invokes qconfig doesn't do the bzr executable subsitution, thus it just executes "bzr qconfig"00:18
GaryvdMdOxxx: Where do we call run_app with out using _get_bzr_executable?00:18
GaryvdMAh - ok00:18
GaryvdMI agree with you then00:18
dOxxxGaryvdM: and the bzr executable replacement is different at different call-sites.00:19
dOxxxGaryvdM: for example, the tool menu uses qrun --ui-mode sometimes00:19
dOxxxGaryvdM: hopefully I can make run_app handle all the cases00:20
GaryvdMSo maybe instead of having to call run_app(['bzr', 'qconfig']) make it so you just do run_app(['qconfig'])00:21
GaryvdMDRY00:21
GaryvdMdOxxx: ^00:21
dOxxxGaryvdM: the tools menu can be anything, not necessarily a bzr command00:22
GaryvdMAh00:22
GaryvdMdef run_bzr00:23
GaryvdMI don't actually know the BE code that well.00:23
dOxxxchanging the way the app suites like qbzr are defined and executed, i.e. if I were to create a run_bzr_app funciton would be a somewhat disruptive change00:24
dOxxxI'm more inclined to make run_app more intelligent about replacing the executable00:24
dOxxxit's a more localized change00:24
jammwhudson: (well, given that spawnProcess returns an IProcessTransport, but Process isn't one, and conch expects it to support .write() which isn't part of IProcessTransport anyway...)00:24
GaryvdMok00:24
dOxxxI'll give it a shot and see how it goes00:24
mwhudsonjam: whee00:25
mwhudsonjam: it also turns out that twisted doesn't support connecting to a fifo00:25
jammwhudson: I don't know where, but before I implemented "def write" it didn't work00:25
mhall119bzr is giving me connection errors trying ot use launchpad00:25
jammwhudson: it certainly does support it, read my code :)00:25
mwhudsonjam: "in a non blocking way"00:26
jammwhudson: it is non-blocking, using the "dataReady" stuff00:26
mwhudsonjam: os.open isn't!00:26
jammwhudson: it is selectable00:26
mwhudsonjam: but the open syscall itself blocks, doesn't it?00:26
jamso while the specific read is blocking, it won't be requested until the file descriptor says it is ready00:27
jamyou can supply O_NBLOCK, but yes, it is blocking00:27
mhall119bzr: ERROR: Connection error: while sending CONNECT xmlrpc.edge.launchpad.net:443: [Errno 111] Connection refused00:27
mhall119anybody know what's going on with that?00:27
jam(and you can't use O_NBLOCK for writing or it raises an exception, and if you do use it for reading it will force all future reads to be non-blocking)00:27
spivmhall119: http proxy issue of some sort00:28
jammwhudson: how, in twisted, do you actually open a file without blocking?00:28
mhall119oh nevermind, tried the command in a new terminal and it worked....00:28
jamhi spiv, care to join the lovely twisted conversation?00:28
mhall119thanks spiv, but have some env variables set wrong00:28
mwhudsonjam: good question00:29
mwhudsoni think you don't basically00:29
spivjam: been reading along, but not much to add00:29
jams/conversation/bashing/ whatever :)00:29
spivBasically, mwhudson has been saying everything I would :)00:29
spivTwisted in general has no support for non-blocking local disk IO00:29
spivBecause OSes generally don't support it, apart from "do it all in threads"00:30
LeoNerdMostly because it doesn't fit the POSIX F_NONBLOCK etc.. model00:30
pooliehi spiv00:30
LeoNerdMost POSIXes do have an aio system but it's generally not integrated with the rest of the IO nonblock primatives (select et.al.)00:30
LeoNerdSo it generally sucks00:30
spivLeoNerd: ...and is typically just "do it all in threads" under the hood anyway ;)00:30
LeoNerdEr...00:30
LeoNerdAIO is a real in-kernel system00:30
LeoNerdAtleast, on Linux Solaris and *BSD00:31
LeoNerd(and if you can name any other non-dead POSIXalike still alive today probably that too)00:31
spivTwisted programs generally assume that disk IO is "fast enough", which is often true for many use cases.  If it's not, well, threads, sorry :(00:32
mwhudsonjam: although these calls "block" in some sense, they're not very likely to block for a noticeable length of time00:32
jamspiv: so I should be doing "callInAThread(os.open)" ? :)00:32
jammwhudson: well, if the remote process does something bad, they'll block forever00:33
LeoNerdWhat is it you are open()ing?00:33
spivjam: sorry, I was off on a small tangent.  This isn't disk IO IIUC?00:34
LeoNerdThe problem is that most of this logic was thought through before things like NFS, CIFS, etc... started moving people's local-looking files to be not so local, and thus dependent on network latency just like anything else00:34
dOxxxGaryvdM: looks like that's fixed it00:34
jamspiv: it is connecting to the fifos for the newly spawned process00:34
jamso 'disk-ish'00:34
jambut open() will block until the other process has done the open()00:34
GaryvdMdOxxx: Cool !00:35
LeoNerdThat's what O_NONBLOCK is for, but also, why opening an on-disk pipe rather than calling pipe(2) ?00:35
jamso if the forking service dies in the middle, (after accepting and returning the path, but before the child process has forked and opened the fifos) then it would hang the Conch process indefinitely00:35
spivTo share the pipe with a pre-existing process.00:35
dOxxxGaryvdM: I'll remove the adhoc executable replacement at the run_app callsites except I think I'll leave the tool menu one alone since it does some extra funky stuff according to tool type00:35
dOxxxGaryvdM: and since it will then be passing a executable which is not 'bzr' to run_app, it will just pass through the executable replacement logic I've added00:36
LeoNerdHrm.. Sharing ondisk pipes by more than one process each end doesn't sound too healthy; sounds like a recipe for mangled messages due to nonatomic write()s00:36
jamthe child can't open them before reporting the path, because... it blocks00:36
mwhudsonjam: but if the forking service dies, the conch process arguably becomes useless00:36
jamwhich is actually a way we get synchronization00:36
jammwhudson: except for whatever processes are currently active, yes00:36
jamand if we implement fall-back-to-regular spawn00:37
spivLeoNerd: *a* pre-existing process, not multiple :)00:37
GaryvdMdOxxx: is _do_open_tool == ' tool menu one'00:37
mwhudsonjam: true00:37
LeoNerdAhh00:37
jamwhich I asked spm if that was something we should be doing, but I haven't gotten a response yet00:37
dOxxxGaryvdM: yes :)00:37
LeoNerdCould you pass FDs over a UNIX socket? ;)00:37
dOxxxGaryvdM: just looking at it now, I think I might be able to adapt it to work with the modified run_app00:37
dOxxxGaryvdM: and still keep it's logic for using qrun00:37
dOxxxits*00:37
spivLeoNerd: one bound to the filesystem? ;)00:38
LeoNerdSure00:38
LeoNerdYou can bind a UNIX socket to filesystem, then pass FDs across it00:38
GaryvdMdOxxx: Yes, it's not that funky.00:38
LeoNerdI'm surprised to this day there isn't a standard Linux service to do that anyway, so that e.g. ping could get an ICMP raw socket without having to bet setuid root... But now that's a complete tangent ;)00:38
mwhudsonusing sendmsg, right00:38
spmjam: yeah sorry; I'm not too good at 3am replies :-P00:39
dOxxxGaryvdM: funky logic preserved :)00:41
maxbLeoNerd: sysadmins around the world would curse you when they couldn't ping anything because their socketserver wasn't running :-)00:42
LeoNerdmaxb: Admins around the world already curse that the LVM2 userland tools aren't in the initrd so they can't mount their rootfs on boot, or 10,000 other sorts of weird interdependencies anyway00:42
LeoNerdPersonally I'd love not having to start a bunch of services as root just so they can bind() a port, thne drop privs.00:43
LeoNerdE.g. apache could run -as- wwwdata and obtain a port80 socket from the socketserver00:43
jamspm: lazy, lazy man :)00:43
spmsomething ilke that00:44
jamspm: I assumed you were in another time zone, just mentioning that it was a question in the queue, good to see you around, btw00:44
spmheh00:44
jamand thanks for participating in the discussion00:44
spmfwiw, we can use the makefile. i think some of the soyuz services start that way. generally the twisted stuff is "funky" so we have to control it betterer00:45
spmgenerally, you tell us "here guys, do THIS to make it go" and we'll make it happen00:46
spmmonitoring and alerts is a fun topic.00:46
jammwhudson: now make lint (cleaner)00:47
mwhudsonjam: great00:47
spmGist is: if you *need* a human to DO X to make it happy again; that's an alert state; if it's more "you should know about this" that's not. It may be a warning state; but oervwhelming us with essentially noise alerts is not a good thing™00:47
mwhudsonjam: the stuff in _sendMessageToService can definitely be done in a more twisted way00:48
jammwhudson: it can, but in the end you want to block before returning....00:48
mwhudsonyeah00:48
mwhudsonthat, and conch's interference makes me think we should be optimistic and assume the blocking won't be for very long00:49
jamspm: well, there is a "functionality fallback activated, running at half-speed" alert that needs a human to fix it, and there is "fully dead"00:49
jamif you don't distinguish them00:49
jamthen I won't bother trying to set it up :)00:49
spmha. no that's actually useful in a "this is broken (AAAA); but it's broken here vs totally" separation00:50
jamspm: for a specific example, if the new service dies, we could fall back to the old code and it would be slower but working. But I don't want that state to remain for long, but "let the sysadmin do it when he wakes up" would most likely be fine00:51
spmeg. if lpnet4 dies; that's bad; but we have lpnet1-15; so in the list of priority AAA's; lpnet4 being dead can be dropped in priority to focus on something more critical.00:51
poolieLeoNerd: i agree about lvm2; in fact last time i tried a boot cd it wasn't there either00:51
spmjam: do you mean dies, as in we'd manually flip back to an older revno? or some smarts in the code?00:51
spmyou seem to be impling code, but to be clear?00:52
mwhudsoni guess it depends where and how it dies00:52
jamspm: currently both code paths exist, as part of a "feature flag rollout"00:52
spmOh I see!00:52
spmmwhudson: :-)00:53
jamif the conch machine can't connect to the forking service, it could switch code00:53
mwhudsonjam: heh, interesting: Under Linux, opening a FIFO for read and write will succeed both in blocking and non-blocking mode.  POSIX leaves this behavior undefined.  This can be used to open a FIFO for writing while there are no readers available.00:54
jammwhudson: not in my testing00:55
jamat least the python one raises EAGAIN00:55
mwhudsonoh really?00:55
mwhudsonboo00:55
jamI can open for *reading* with O_NBLOCK and it succeeds (but sets the descriptor to non-blocking mode)00:55
jamwriting will fail right away00:55
mwhudsonbah00:56
spivLeoNerd: sounds a bit like authbind, although I don't known which mechanism that actually uses.00:56
mwhudsonit's somewhat crazy that there are (lots and lots of) syscalls that block that don't take timeouts00:56
jamI did spend a fair amount of time getting a handle on the various bits of this service in order to get it to work00:56
mwhudsonjam: yeah, if i'm implying otherwise00:57
jammwhudson: write(fd, 100MB) will block00:57
jamthat certainly surprised me00:57
jam(I think I was testing with 1GB or so, and you can't even kill it, at least not with ^C)00:57
mwhudsonjam: if fd is a pipe and the pipe buffer is full right?00:58
jammwhudson: I'm not sure about with pipes for that one. that was for disk io00:58
mmclarkquick question - I'm looking for the bzr equivalent to hg's "outgoing" and "incoming" commands, which tell you what changes would be pushed or pulled to/from another repo.  Is there such a beast?00:58
jambut yes, write() to a pipe when the pipe is full will block, too00:58
spivmmclark: 'bzr missing'00:59
jamspm: so how would we tell nagios about the difference?01:00
mmclarkspiv: thanks much01:00
jamor how could I make that information available to you so you can do whatever you want with it01:00
mwhudsonjam: did you consider doing the 'pass fds over the socket' trick?01:01
jammwhudson: the most recent change was switching from a port socket to an AF_UNIX one, and you can't do the socket trick until then01:02
jamI'm not 100% sure what that would actually gain you01:02
mwhudsonwell, it would get you away from having a potentially blocking open01:02
jammwhudson: I honestly think the hole is pretty small here. If we find it is serious, then we can do something about it.01:03
jamremember that the service has to be running successfully until the exact point and then fail01:03
spivIt leaves the FS a little tidier ;)01:03
jamwhich is possible01:03
mwhudsonjam: right01:04
mwhudsonjam: i think you should land the branch as is01:04
jamspiv: the fs stays tidy all the time, I delete everything fairly persistently (killing the master process and not connecting to the child you requested can trigger it, I guess)01:04
mwhudsonand then if we need to improve we can01:04
jammwhudson: well, I *do* need some help landing it, too01:05
mwhudsonjam: oh ok01:05
spmjam: grab nagios-plugins* as a how did they do it starter; the gist is "we" predetermine that THIS is OK, THAT is WARN and everything else is CRITICAL. kinda thing. sometimes we want to adjust params. so eg, 0.5 secs was ok, but is now warn, and we crit on 0.1 sec response times.01:05
spivjam: "delete quickly" is still inferior to "never put on FS"01:05
jamspiv: I thought the point in *nix was that everything was linked into the fs as a namespace01:06
jamI mean otherwise, what is up with /proc and /dev01:06
jam:)01:06
spivjam: those at least tidy themselves ;)01:08
jamspiv: so does /tmp if you enable temp reaper, or let the master forker do it :)01:08
jamspm: are you someone who can make it so that when I create branches of lp-production-configs they are private?01:09
jamspm: and is nagios-plugins private as well?01:10
spmjam: they should private by default (lp-prod-configs) and nagios-plugins is the default ubuntu packages01:11
jamspm: they *should* but going to "code.edge.launchpad.net/lp-production-configs" tells me that by default the branches will be public01:12
spmgawd I hope not.01:13
jamfor mwhudson I think it says private01:13
jamfor *me* it said public01:13
jamyep01:13
jamstill does01:13
jam(I can screen shot it for you if you like)01:13
mwhudsoni'm surprised it's not a private only policy01:14
mwhudsonin which case you wouldn't be allowed to make branches01:14
jammwhudson: which would at least be better01:14
spmhe's been manually subscribed. ??01:14
mwhudsonspm: to trunk?  yes01:14
jamspm: I was manually subscribed to trunk01:14
jamI at least had the forethought to wonder, and mwh showed me where to look01:15
mwhudsonjam: so to be clear, you'd like me to throw https://code.edge.launchpad.net/~jameinel/launchpad/lp-service/+merge/37531 at ec2 land?01:15
spmyeah. everyone else picks it up via ~launchpad01:15
mwhudsonalthough i guess pqm is closing01:15
jammwhudson: well "lp:~jameinel/launchpad/lp-service", and make sure it is targetting db-devel, but yes, please01:15
mwhudsonjam: ok, i think we'll have to wait until after the rollout01:15
jam*sigh* since I was trying to get it in before...01:16
mwhudson(yay things getting in the way of development!)01:16
jambut at least we could land it into 'devel' at that point01:16
mwhudsonjam: sorry01:16
mwhudsoni think we want at least a few weeks of battering it on staging01:16
jamthat's fine, but then again, that is what I was shooting for.01:16
mwhudson(though i'm not going to apologise too much, it's not like i'm in launchpad-code any more...)01:16
jamthe flag should make it safe enough to deploy whenever01:16
mwhudsonright01:16
poolieok i'm going to try to set up a hottest100 bot01:21
poolieon a web page, that is, not here01:22
jampoolie: if I didn't know better, I would be really concerned01:22
jamthat certainly *sounds* naughty01:23
poolie:)01:23
lifelessjam: in .au thats a collection of songs each year ;)01:25
jbowtieLooks like librsync can handle 25G binary diffs without eating all available memory. Maybe we should look at using it for very large files?01:49
mwhudsonGaryvdM: thanks for the branch :-)01:54
spivjbowtie: heh, I expect poolie knows a bit about librsync ;)01:54
GaryvdMmwhudson: :-)01:54
pooliejbowtie: that could be very good, i'd be happy to see about that01:54
poolieah01:54
pooliethere's no pure-python version but we could cope without that01:55
poolieit might also make committing new versions faster01:55
poolieit may compress less well than groupcompress... maybe...01:55
pooliea naive use might be worse01:55
spivpoolie: I'd guess it's at least partly "it depends"...01:56
jbowtiepoolie: I think it should definitely be considered for anything over, say, 250MB - that's where we start potentially breaking.02:04
poolieit would be interesting to try a new repo format that way02:06
jbowtieAnd is compression really an issue? Usually very large binaries are already compressed as far as they can go.02:06
pooliethe other alternative is to just store them loose or gzipped02:06
pooliewell, there is that02:06
pooliebut the question is, do these things change (a) basically never; (b) totally, with no similarity from one to the next or (c) incrementally02:06
poolieif the first, you might as well store them unpacked02:07
poolieand the second for that matter true02:07
poolieb is likely to be true if they're already binary-compressed02:07
pooliebut isos or large databases are likely to be like c02:07
poolieand there you do want delta compression02:07
jbowtieGenerally if they're in version control it's because you expect c.02:07
poolieistm that in principle you could groupcompress c02:08
poolieand the limits are in code, not the format or the basic design02:08
pooliebut perhaps not02:08
jbowtieI don't know about b, there are a few fair compression formats that do most of the changes at the end of the file.02:09
jbowtieI'm looking at, say, game development, where all the art assets are massive binary files. And you want to diff and merge those alongside the code.02:11
jbowtieRight now you can't even check them in because you break the repository.02:11
jbowtieAnd the memory usage for, say, merging looks totally unrealistic.02:12
jbowtieYou can kind of sidestep it for diff/merge if you dump to the filesystem, but commit ATM requires you to read in the entire file.02:13
pooliehm, but it really shouldn't02:31
pooliethose apis are designed to deal with iterators of chunks02:31
poolieobviously this is not being perfectly followed at the moment, but it should be a matter of adjusting them, not huge changes02:31
pooliei'm off to get some lunch, biab02:35
vadi2I upgraded to Ubuntu 10.10 and bzr gcommit fails to commit now: http://paste.pocoo.org/show/272521/03:24
vadi2Is there anything I can do?03:25
spivvadi2: hmm03:27
spivvadi2: that paste only shows warnings03:27
spivWhat else happens, i.e. how does it fail?03:27
vadi2It gives me a dialog of "Unknown error" when I try to press Commit03:27
vadi2So the commit action fails. It doesn't crash or anything, dialog is still there, but the button is non-funtional03:28
spivHmm.03:29
spivvadi2: using 0.99.0-1ubuntu1 of bzr-gtk?03:33
vadi2uh huh03:33
vadi2Installed: 0.99.0-1ubuntu103:33
spivI can't reproduce here with bzr-gtk 0.99.0 and latest bzr 2.2 (I have bzr installed from the PPA, so I can't easily install that bzr-gtk package...)03:36
spivI don't get the warning, and the commit Just Works.03:37
spivAre there any tracebacks or other hints in ~/.bzr.log?03:37
spivDoes 'bzr --version' and 'bzr plugins -v' report what you expect for bzr and bzr-gtk? (i.e. right versions, and using the system-wide installs?)03:38
vadi2that file is big03:40
vadi2no particular errors related to this time though03:41
vadi2http://paste.pocoo.org/show/272558/03:41
vadi2Both versions correspond to package versions03:41
spivThanks for the screencast03:44
spivHmm, I have a theory, I'll just test it.03:45
vadi2Alright03:45
spivOk, got it.03:47
spivRun 'bzr whoami' in the terminal03:47
spivYou haven't told bzr who you are, so it can't commit because it has no committer name to record in the commit.03:48
vadi2I did do launchpad-login!03:48
spivAnd so bzr raises an error, and bzr-gtk tries to display that error03:48
spivBut because the error includes something that looks a bit like gtk-specific markup it breaks.03:49
vadi2Thanks, it worked now. I guess that could be polished.03:49
spivSo the warnings were relevant.03:49
spivYes, definitely.03:49
spivI'll file two bugs03:49
vadi2Thanks for your help03:49
spivOne on bzr-gtk's handling of this error03:49
vadi2RIght03:49
spivAnd another about the "I did do launchpad-login!" aspect: you had reason to expect that this was already sorted, and so we should clearly do better there03:50
vadi2The other about whoami to be auto-set from launchpad-login if whoami isn't set yet?03:50
spivRight03:50
spivWell, auto-setting *might* be hard03:50
spivIt could in principle use your name + email address as set in Launcphad03:50
vadi2Yeah03:51
spivBut I couldn't say off the top of my head if there's any impediments with the LP API03:51
spivAnd it probably shouldn't auto-set if you've already set it manually03:51
vadi2Of course.03:51
spiv...but maybe it should warn if the LP info doesn't match the manual?03:51
spivetc :)03:51
spivSo a few issues to think about to make it fully polished, but in principle it's a good idea and straightforward :)03:52
spivThanks very much for the report03:52
vadi2Sure, and thanks again for helping. See you later03:53
jbowtieNew  sphinx template nearly ready -- http://imgur.com/kmLGQ.png03:56
jbowtieJust need to adjust the top navigation a bit and place the search box correctly.03:56
spivjbowtie: looks nice, although it looks completely different to the main website.04:13
jbowtiespiv: In theory it will line up with the main website overhaul.04:14
jbowtiespiv: It will of course live in a branch until that lands.04:14
spiv*nod*04:15
jbowtieRight now I'm just basing it off the Ubuntu branding guidelines, colors will ahve to be adjusted to whatever we actually end up using.04:16
* spiv -> lunch04:28
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
* poolie is going to fix the failures in his scriptrunner branch04:50
=== Ursinha is now known as Ursinha-afk
pooliedoes anyone here at the moment have experience with the trac plugin?05:42
pooliespiv, still here?06:32
pooliecan anyone spot why https://code.edge.launchpad.net/~mbp/bzr/scripts/+merge/35386 would cause a failure in test_delta?06:35
poolieit seems totally unaffected06:35
* spiv looks06:36
poolieit seems like i must be mutating some global state but i really can't spot what it would be06:37
poolieit doesn't fail when only the affected tests are run alone06:37
spivpoolie: wow, must be something obscure06:38
spivpastebin the failure?06:38
vilathen you're not going to find the problem without some bisection (at least that's how I found the isolation problems myself)06:38
* vila not there yet :)06:38
pooliehttp://pastebin.ubuntu.com/508536/06:39
pooliei just changed it to make that failure more obvious06:39
poolieso i guess something is making the changereporter give the wrong results06:40
spivpoolie: is_quiet I think is the likely suspct06:47
pooliei see it does default to using trace.note and that could easily be staying intercepted when it shouldn't be06:47
pooliesomething like that06:47
spivpoolie: In fact I think it's almost certainly that:06:47
spiv1) because the only obvious behaviour change in your patch is to add -q to some calls06:47
poolieso this test should probably get the results back as lines06:47
spivand 2) because bzrlib.trace._verbosity_level is a global06:48
pooliemm i think so too06:48
spivoh, and 3) because report checks the global is_quiet() first :)06:48
spivvila: no bisection needed :P06:48
pooliewell spotted06:48
pooliethat's a bit gross06:49
spivYeah.06:49
spivThe bandaid I guess is to make TestCase reset it to some default every time.06:49
pooliehm, so probably run_bzr should reset verbosity when it's done06:49
poolieeventually we should get rid of it06:49
spivThat's probably a good idea too.06:49
poolieand thereby stop delta relying on it06:49
spiv+1 for eventually get rid of it06:49
pooliebug 65669406:56
ubot5Launchpad bug 656694 in Bazaar "should delete global is_quiet/is_verbose (affected: 1, heat: 6)" [Medium,Confirmed] https://launchpad.net/bugs/65669406:56
poolieso just an overrideAttr on _verbosity_level in TestCase07:01
vilapoolie: yup07:01
poolieprobably run_bzr should be doing this too07:01
poolieit shouldn't carry over from one command in a script runner to another07:01
spivRight.07:01
spivAlthough probably each run through the run_bzr machinery would set it?07:02
spivYeah, Command.run_argv_aliases always calls trace.set_verbosity_level07:04
spivOh, ew.07:04
spivLook at the _verbosity_level_callback in bzrlib/option.py07:04
spivThe level of quietness/verbosity might carry over between commands.07:06
poolieexactly, that's what i'm concerned about07:06
spivI don't know that we ever treat -vv differently to -v (or -qq vs. -q)07:06
pooliei don't think so07:06
pooliesome programs do of course but i don't think we ever have07:07
spivBut if we did, it's a clear problem :)07:07
spivPlugins hypothetically could, I guess.07:07
pooliewow that is a bit of a messy07:07
poolie*mess07:07
poolieso, i think we should make sure it's reset after running a command07:07
pooliethen i'll try to land this, then maybe delete it entirely07:07
spivAnyway, to be strict, you have to deal with the global in bzrlib.option as well as bzrlib.trace07:07
poolieyuck07:09
spivYes, a lovely booby trap you tripped over there :(07:14
vilapoolie: I was willing to freeze bzr-2.3b2 *today*, as planned, any reason you want to delay that to next week ?07:17
vilageez, where are my manners...07:18
vilaHello all !07:18
poolie:)07:22
pooliewe'll gradually defuse them07:22
poolieand stop laying them for ourselves07:22
poolievila that's fine with me07:23
pooliespiv, i hope you're feeling better btw07:23
vilapoolie: ok07:23
poolievila i think as much as possible releases should not cause disturb development, and ongoing development should not disturb releases07:25
vila+207:26
vilapoolie: you say that in general or in reaction to something recent ?07:26
pooliein general07:26
vilak07:26
vilaworth writing done somewhere07:27
poolienot every project can actually do this but i think it's desirable to steer for it07:27
poolieand we actually get pretty close07:27
vilayup07:27
vilaon both counts07:27
poolieyou can add it to the RM docs while you're in there :)07:30
vilapoolie: hehe, just did so with big XXXXX until I settle on where this goes07:30
poolieok, https://code.edge.launchpad.net/~mbp/bzr/656694-verbosity/+merge/37933 removes the coupling07:33
vilapoolie: please land07:36
pooliei really hope to get tarmac up soon so we don't need more than just approval in the ui07:37
pooliemaybe next week07:37
spivpoolie: yes, finally07:47
spivpoolie: the only drug I needed today was caffeine, which doesn't require visiting a pharmacy :)07:47
spivpoolie: Also another +1 from me on your release philosophy07:48
pooliethanks07:48
poolieyou don't want any more dependencies or blocking than you need07:49
pooliespiv would it be too crude in http-messages just to truncate in the unhtml thing?07:56
spivpoolie: I don't think so07:57
spivWell, it's no cruder than what you're already doing :)07:57
vilapoolie: fine with me (agreed with spiv, what you're doing is already crude)07:57
pooliewould our http tests make it easy to test this? probably07:58
spivHopefully!07:58
vilapoolie: If I need to debug from there, I will dive in the code and modify it to suit my needs, having a rough idea of what is already reported by the server is good07:58
spivpoolie: btw, seeing you add a tech-debt tag to a bug reminded me of this: http://compoundthinking.com/blog/index.php/2010/10/05/technical-debt-isnt-always-debt/07:58
spiv(Not because of the specific bug, just because I thought it mildly interesting)07:59
vilapoolie: I'm not sure the http tests ever tried to match the bodies, expect for the recorded ones07:59
poolie:)07:59
pooliei don't think 'debt' is a very good word for it07:59
poolieit's more like friction07:59
vilayeah, you should address them when they start itching too much08:01
vilaspiv: did you start working on splitting NEWS ?08:05
spivvila: yep08:06
vilaspiv: oh, and did you see maverick turned blue on babune thanks to your paramiko package ?08:06
spivvila: I did, thank you!08:06
vilaspiv: great08:06
spivvila: My NEWS split branch is probably 80% done, but it's just struck weekend-o'clock here.08:07
vilaspiv: sure, no problem08:07
vilaAlso, I'll be patch pilot next week so expect me to ask for some reviews for *my* proposals :-D Consider this a gentle nudge already ;)08:10
pooliegood idea08:10
=== poolie changed the topic of #bzr to: Bazaar version control | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: vila | Release Manager: vila | bzr-2.0.6, 2.1.3, 2.2.1 and 2.3b1 are official | work on bzr: http://webapps.ubuntu.com/employment/canonical_BSE/
vilalol08:11
poolievila i feel like in test_http it's a bit hard to understand which parameters control each test08:21
poolieperhaps we should split it into per_http_client_impl tests08:22
poolieor maybe make the parameterization more clear in each test08:22
vilapoolie: jam filed a bug about that08:22
pooliewhich would need some more infrastructure08:22
pooliemm https://bugs.edge.launchpad.net/bzr/+bug/59779108:23
ubot5Launchpad bug 597791 in Bazaar "test_http load_tests is overly complex and hard to understand (affected: 1, heat: 2)" [Wishlist,Confirmed]08:23
vilamy gut feeling is that test classes should be able to parametrize in one of their methods.... but it kind of conflicts with the fixtures idea08:23
spivvila: hehe, sure08:23
vilaspiv: sure about the method of the conflict ?08:24
vilas/of/or/08:24
spivvila: about doing some reviews next week08:24
vilalol08:24
spivvila: regarding test_http, I have a vague recollection that we had an extended discussion about that in a review thread already08:24
spivvila: so probably we don't need to repeat that :)08:25
vilahmm, I remember many discussions but not precisely where they occur, anybody finding pointers about them should add them in the bug comments...08:27
vilaI think I've spend far too much time in test_http to not be biased :)08:28
vilarhaaa, libsll update... reboot...08:28
poolieoh, this looks really good08:37
spivpoolie: the output of your patch?08:38
poolieno, my refactoring of test_http08:38
spivAh, that'll do :)08:38
vilapoolie: yum08:38
pooliewith the http errors i just hope for "better than nothing" :)08:39
vilapoolie: hmm, on the paranoiac side, I'd make sure unhtml_roughly catch any exception and returns maybe_html (truncated) in this case08:53
vilaabout releasing from trunk:09:02
vilasince I asked for a 2.3 branch on pqm too soon, I can now either:09:02
vila- ask a losa to pull/push overwrite from trunk for betas, or09:03
vila- release from trunk and create a lp:~bzr/bzr/2.3b2  for reference and forget about the lp:bzr/2.3 branch until the last beta09:04
vilathoughts ?09:04
pooliewhy would you even make a 2.3b2 branch?09:08
pooliewouldn't a tag be enough?09:08
poolievila ,re the ssh failure, i may be a little out of date09:08
poolieon my branch09:08
vilaha, that would be a good news09:08
pooliebut only a few days at most09:09
pooliedid he just fix it?09:09
vilano, I'd say a week at least of not 209:09
vilaif09:09
vilahmm, a tag on a revision not in the mainline, yeah, that should work09:10
spivvila: btw lp:~spiv/bzr/split-NEWS is the work-in-progress, pushing the latest now09:16
vilaspiv: great09:16
poolieso i'm heading towards having you just say, on a test09:20
poolieclass09:20
poolievariations = [VaryByHttpClientImplementation()]09:21
poolieand that's enough09:21
poolieit's a pretty straightforward change from here, i think09:21
vilapoolie: does it fly with multi-levels of parametrization in test_http ?09:23
poolieyes, you just list the ones you want and it multiplies them09:23
vilagood09:23
vilathere was a related bug on testtools I think... let me check09:24
pooliei might have filed it09:24
poolietest_http is in a nice spot of being quite ugly but in an organized way09:24
poolieso the cleanup is within reach09:24
vilahehe, yeah, that sounds like what my daughter is saying about her bedroom :)09:25
poolie:)09:27
vilaI think it's a good example of code not updated to the latest standard because the main author didn't feel it was necessary :-)09:28
vilaWhich the other authors tend to disagree with :D09:28
vilacan't find the bug on testtools...09:29
poolie:)09:29
pooliei may split this into testtools when i'm happy with ti09:29
vilapoolie: don't rush :) We are already struggling with testtools updates...09:31
vilaha, https://bugs.edge.launchpad.net/testscenarios/+bug/393394 is the one I was thinking about09:32
ubot5Launchpad bug 393394 in testscenarios "No way to assign bound methods to tests (affected: 1, heat: 0)" [Critical,Triaged]09:32
vilahmm, not clearly related though09:32
pooliecritical?09:32
vilatestscenarios09:33
* mgz asks vila what the word 'bumbep' means10:23
vilathat's bumped with a 180 degrees rotation on the last letter because it makes many heads spin10:24
mgzehehehe10:25
pooliemgz, hi10:26
pooliemgz, vila, let me know what you think of http://bazaar.launchpad.net/~mbp/bzr/597791-http-tests/annotate/head:/bzrlib/tests/test_variations.py10:26
poolieand http://bazaar.launchpad.net/~mbp/bzr/597791-http-tests/annotate/head:/bzrlib/tests/test_http.py10:26
mgzhey poolie.10:26
poolieif you like :)10:26
poolieand now, i think i can just delete load_tests from test_http10:27
vilaassert(expected, actual) is preferred10:29
vilaassertLength gives better feedback10:29
vilano comment on importing symbols :)10:30
vilathe above remarks were for test_variations10:30
vilawow, test_http looks nice10:31
poolieit may be more lines but it's much more straightforward10:32
poolieand you could squash it if you wanted10:32
vilaone comment though: how could a plugin reuse that ?10:32
vilasquash ?10:32
pooliewhich bit?10:32
mgzthe concept looks good to me. would you change scenarios methods into variations attributes, or is the latter intended just to be a simple way of handling the former?10:32
pooliei mean, you could take the variation lists and assign them to globals, then reference them from every test that needs them10:32
pooliemgz i'm not sure what you mean10:33
spivpoolie: looks interesting!  But it's also time for dinner...10:33
poolieme too :)10:34
vilaright, so variations can be reused and are declarative, very good10:34
pooliemgz i'd hope to clean up a lot of the existing load_tests into this10:34
mgzwell, there are some tests in test_http which look like they'd work as SimpleVariation subclasses10:34
poolieah, that's true10:34
vilanow, the possible attribute values are still disconnected from the test classes... on the other hand, the scenarios are cleanly separated, easier to reused, still hard to extend10:35
poolieyou could also have one that varies across a registry etc10:35
poolievila, why hard to extend?10:35
poolieyou're talking about where a plugin wants to get some existing tests applied to more scenarios?10:35
pooliei think in that case you should have a variation that goes over a registry or similar10:35
vilamy remarks didn;t really apply to test_http but imagine tests that want to run against all type of repo/branch/wt10:36
vilaor some plugin wanting to ensure it respects some API, so it want to inject itself in the scenarios10:36
poolieat the moment we have eg all_repository_format_scenarios() as a function10:36
pooliei would simply lift that into being VaryByRepositoryFormat.scenarios10:37
poolieyou might not need to even change the code10:37
cisshi, how can i export only those files that have been changed or added in a specific revision?10:37
vilacould be, just raising the issue, not saying it's not addressed10:37
pooliefor existing things where we have a per_repository directory it may not be worth changing it10:37
vilaI'm thinking about plugins wanting to use a config registry for example (not yet implemented ;)10:38
vilaor adding a new transport (though this case is already addressed in a ad-hoc way)10:39
vilaor hook implementation that want to ensure they respect some API without clearly knowing what the API is10:39
vilaand where is the 'variations' class attribute handled ? ha right multiply_tests_by_their_variations10:41
vilaha, right, so you don't inherit from the base class variations attribute right ?10:42
vilaslight risk of errors... on the other hand you get the ability to change what the base class is proposing...10:44
vilaI was thinking about a multiply_tests *method* instead of a multiply_tests_by_their_variations *function* but I never dug (digged ?)...10:46
pooliearguably it should be a test method10:46
pooliethe unittest hierarchy is a bit strange10:47
vilayeah :-/10:47
poolieeg the insistence on TestSuites not just lists, and that you should not dircectly construct a suite, but rather ask the loader10:47
vilawell, a TestSuite is really a tree, *we* flatten them in many places...10:48
poolieright10:48
vilaand the loader build many TestSuites automatically is the root cause I think10:48
vilabuilding10:49
vilait fits pretty well with the --starting-with/load_tests design10:49
vilawhich want to be able to prune early instead of filtering after the fact10:49
GaryvdMHi all.10:55
vilaHey GaryvdM10:55
pooliedeletion of load_tests now pushed10:55
GaryvdMIs there a way to get BZR_TEST_PDB to break in the stack where the error was raised?10:56
GaryvdMnot /testtools/testresult/real.py(423)addFailure()10:57
vilaGaryvdM: mgz will answered this one quite precisely I'm sure :)10:58
mgzehehe, pull bzr.dev Gary :)10:58
* mgz marks bug 504070 fixed while he's at it10:59
ubot5Launchpad bug 504070 in testtools "testtools change broke BZR_TEST_PDB (affected: 1, heat: 7)" [Wishlist,Triaged] https://launchpad.net/bugs/50407010:59
GaryvdMok10:59
spivciss: hmm, not sure there's a convenient way, although the bzr-upload plugin presumably does something similar internally...11:05
vilaciss: what is your use case ?11:06
FuuAnyone aware of research papers that discuss bazaar, or dvcs in general?11:16
poolieok, good night all11:18
kmdmHi all, just wondering how 'bzr shelve' works / where it stores the deltas... since I'm now getting "bzr: ERROR: Unknown record type: 'n'" when trying to unshelve and a search & replace I did might have touched those files so I might need to manually revert that...11:23
mgzkmdm: in .bzr/checkout/shelf11:29
kmdmmgz: perfect - thanks, fixing the replacement got my changeset back :)11:31
GaryvdMmgz: You rock. BZR_TEST_PDB Woking again.11:44
mgzcunning time machine use :)11:44
txdvdoes bzr have an equivalent to git's staging area?13:51
txdvlets say i modified 10 files but i want to commit only 6 modified files13:51
kmdmbzr shelve?13:52
txdvit shelves all changes13:53
txdvdoesn't it?13:53
kmdmnope, you can give it a list of files... and it'll commit a subset of deltas from any file13:54
txdvi see13:55
kmdmerr, s/commit/shelve/13:55
sorentxdv: You can also just specify the files you want to commit... "bzr commit foo.c python/bar.py ChangeLog otherstuff" or whatnot13:58
txdvhmm13:58
txdvi see13:58
txdvkthnx13:59
kmdmyea, and that xD13:59
txdvhm it would be awesome if i could specifiy the exact line numbers i want to commit14:00
txdv(or have a tool better suited for this kind of ction)14:00
mgzrun `bzr shelve` and it'll interactively prompt you on diff hunks14:02
txdvo rly? do i have to select a proper tool for that?14:03
sorenThe 'y' and 'n' keys on your keyboard.14:03
=== Ursinha-afk is now known as Ursinha
txdvi can't select it linewise14:09
txdvthat what i was talking about14:09
maxbyes, it's only hunkwise14:10
txdvit would be awesome to have it linewise, git doesn't support it too14:10
txdvfor once bzr would have a feature that git doesn't14:10
mgzeven lines isn't really enough for breaking a change into two bits14:11
mgzquite often change one is editing some code and change two is reindenting it or something14:11
mgzat which point, you just need to use your text editor anyway14:12
Glenjaminnot trying to start a fight here, but what's the advantage of splitting up commits like this?14:14
mgzretrospectively you mean? some people just work that way, start with a big mess, then tidy it up.14:15
mgzother people can manage little neat bits one at a time.14:16
Glenjaminwell yes, but what is gained by splitting the commits restospectively?14:16
mgzit makes person of type #1 look like a person of type #2 :D14:16
Glenjaminit's fairly unlikely that you can untangle a finished product to a halfway-house that works14:16
ddaait's sometimes important for code review14:17
ddaathen you usually want to move some of the changes to different branches14:17
ddaaso you can have one branch for "quick bug fixes"14:17
ddaaon for "stylistic cleanups"14:17
ddaaand one for the feature one was supposed to code in the first place14:17
Glenjaminthat makes sense, i guess in my general work I know it'll be merging it all into trunk - so if I forgot to make my commits granular I live with it14:18
Glenjamin*it'll be me14:18
rubbsI've used shelf/splitting my commits for a couple of reasons. I try to commit when I have one complete "idea" done, but if, in getting that idea done, I had to work slightly on something else, it's nice to keep things insular14:19
rubbsalso, I frequently get into a groove and bash out a lot of stuff, and then later realize that anyone else looking at my log would be really confused, so I break it down so it's easier for a third party to follow14:20
rubbsit basically allows people to show their line of thinking, so if a big thing lands people can understand what's going on.14:21
GlenjaminI guess i've mostly worked on either small fixes for open source, or closed source stuff where the log doesn't have to be perfect14:22
=== zyga is now known as zyga-lunch
GlenjaminCan anyone explain to me what "bzr push" into Git repositories does not work, although it is possible to use "bzr dpush". means?15:03
GlenjaminI can push to git but i'll lose some information?15:03
jelmerGlenjamin: yes, you'll lose revision properties for example.15:04
jelmeras well as rename information15:04
=== zyga-lunch is now known as zyga
CcxCZis launchpad broken with py2.7?15:22
CcxCZhttp://paste.pocoo.org/show/272702/15:23
mgzfixed on trunk.15:23
mgzthere are various issues with Python 2.7 on the current release version on bzr, you're better off staying with 2.615:23
vilaCcxCZ: ... mgz was faster, I was going to say exactly that15:24
achianghello, i have two branches that diverged from each other at some point. what's the best way to have branch B pick up branch A's changes? i'd like to review each change from A to make sure it's appropriate for B15:25
mgz`bzr merge --preview A`15:25
achiangthanks, i'll try that15:26
vilaachiang: start by 'bzr missing' to see how they diverged, then 'cd B ; bzr merge A' will merge everything at once,15:26
mgzif it's a giant diff, you could merge each revision in turn.15:26
vilaachiang: to limit what is merge do: 'bzr merge A -r<last_rev_to_merge>15:27
vilamgz: ok, I let you explain :) I need to release 2.3b215:27
mgzand remember you need to commit after merging and resolving any conflicts.15:27
mgzack, already vila?15:27
achiangmgz: vila: thanks, much appreciated15:27
mgzwe're not frozen after that are we? how many betas are planned?15:27
vilamgz: time-based releases suffer no delay :) What is ready is ready15:28
vilamgz: argh, saying it again, not release, freeze15:28
mgzI wasn't suggesting delay, just wondering where the time had gone15:28
vilain a bunch of little tasks all building up ;-P15:28
mgzokay, I need to leave shortly but will try and get through more of my todo list over the weekend15:29
achiangthe merge went very nicely. it even merged binary files correctly. thanks again.15:33
=== vila changed the topic of #bzr to: Bazaar version control | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: vila | Release Manager: vila | 2.3b2 is frozen, build the isntallers ! | work on bzr: http://webapps.ubuntu.com/employment/canonical_BSE/
vilaGaryvdM: ping16:39
vilad0xxx: ping16:39
GaryvdMHl vila16:40
=== Ursinha is now known as Ursinha-lunch
vilaGaryvdM: I just froze 2.3b2, I expect some plugins will need an update16:40
GaryvdMok16:41
vilaI've sent an mp for bzr-rewrite that has already landed and I've pushed a fix on bzr-gtk16:41
vilaI don't have anymore info about the other plugins at this pont16:41
vilapoint16:41
GaryvdMOk16:41
vilaI'll pass around during the week-end to try to catch d0xxx and build the OSX 10.5 installer from what he'll told me16:42
vilaI'm going to update http://wiki.bazaar.canonical.com/Releases/2.3b216:43
GaryvdMvila: It would be nice to make a ical of expected releases. I'll try do that soon...16:57
vilahmm, check that there isn't an existing one first16:57
vilaistr that poolie created one long ago, may be for the sprints or something but it should already be public16:58
vilaGaryvdM: ^ and that's a .... good idea ;)16:58
* vila pfew I managed to mistype the F ...16:58
vilaGaryvdM: but let's add only a few dates there so we can adapt17:03
=== Ursinha-lunch is now known as Ursinha
=== zyga is now known as zyga-gone
samgeeI've got a tree with a large tar.bz2 file in it. I made a bzr branch out of that tree and committed. Then I unpacked the tarball, deleted some files and repacked it. Then I did the second commit and tried to push it to a server. A few hours later the client seems to be hanging and the server reports a MemoryError: http://dpaste.com/255095/19:26
samgeeAnything I can do about this?19:26
mgzideally, Don't Do That. you can use something like pristine tar and avoid versioning a giant binary blob19:29
samgeeIdeally, indeed. Sadly, the situation is less than ideal. :)19:31
dobeyhow do i make an edit to an existing revision in bzr? like if i typoed --author argument or something? i'm having trouble finding documentation about how to do that19:51
davidstraussWe're running into this bug on the Drupal.org infrastructure repositories: https://bugs.launchpad.net/bzr/+bug/48338819:57
ubot5Launchpad bug 483388 in Bazaar "merge lies about lacking common ancestors when it has multiple choices (affected: 4, heat: 6)" [Medium,Confirmed]19:57
davidstraussCan we manually fix the merge tracking data?19:57
davidstraussvila, any idea ^^20:02
davidstrausspoolie, do you have a minute to help me with a merge tracking issue that's blocking us on drupal.org?20:18
viladavidstrauss: I was afk and just pass around, try --weave or add a comment to the bug, if you have accessible branches that help reproduce the problem, you'll get better feedback20:18
davidstraussvila, even when you use --weave, bzr still tries to find an LCA first20:19
viladavidstrauss: still a bit early for poolie: 6:19AM20:19
davidstraussah20:19
vilathen add a reproducing recipe to the bug, this is hard to diagnose without actual data20:20
davidstraussvila, is there a way for me to just force bzr to acknowledge two branches that are fully synched via merging?20:20
vila(for pretty high values of hard)20:20
davidstraussvila, these branches aren't public, but we can give bzr people accesss20:20
vilaif the merge doesn't succeed ? Hmm20:20
davidstraussvila, i just want to cherry pick to consistency and then mark the branches as having no missing revisions versus each other20:21
dashdavidstrauss: do 'bzr merge' and then use 'bzr revert .'20:21
davidstraussdash, bzr merge fails20:22
dashthat'll keep the merge but remove any changes.20:22
dashdavidstrauss: what kind of fails, though20:22
vilawell, if you cherry-pick in both branches then you've address your immediate problem no ?20:22
davidstraussvila, yes, but that doesn't update any tracking data20:22
davidstraussvila, nor does it mark the revisions as merges20:22
davidstraussvila, i'm happy to cherry pick *once* to fix this, but i want merges to work properly from that point20:23
viladavidstrauss: right, we need to fix a bug for that no ? I'm just proposing a workaround to unblock you20:23
vilaIf we don't have a reproducing recipe this makes it harder to fox20:23
vilafix20:24
vilabah, last typo of the week20:24
davidstraussvila, there's been a reproducing recipe on the LP bug for a very long time20:24
viladavidstrauss: you misread it, this is a case where there is no valid answer: the branches doesn't have a common ancestor20:25
davidstraussvila, i've run into this bug on multiple projects at this point20:25
davidstraussvila, that bug is for when they have two or more20:25
viladavidstrauss: I understand that but I can only repeat: give me a reproducing recipe among any of your multiple projects20:26
davidstraussvila, and in the case of both projects i've had trouble with this on, it's been the same: multiple common ancestors20:26
davidstraussvila, how is the description on that bug not a reproducing recipe?20:26
viladavidstrauss: sorry, as I said above I'm only passing around20:26
davidstraussvila, the description on the bug includes a shell script that demonstrates this problem20:27
viladavidstrauss: if you want to help you later, give a reproducing recipe that, unlike the one in the bug report, have a common ancestor which is not NULL20:27
davidstraussvila, i can give access to individuals to the actual branches20:27
davidstraussvila, but i can't just make them public20:28
vilafine, put that in the bug comment20:28
vilathere should also be some -Dmerge debug flag but I don't remember the details about what is output (but that may be something you can add to the bug report)20:29
davidstraussvila, ok, done. thanks.20:29
vilaoh, and mention which bzr version you're using too (and try trunk, just in case)20:30
viladavidstrauss: nm, thanks for providing the info20:30
* vila off20:30
kklimondahey, I have a question about how to use bzr.. ok, how to use bzr in a specific way. I'm working on a branch of a library, adding some new features to it that I've discussed with the main developer. Now, I'd like to create a new branch based on this one to write some stuff I haven't yet discussed but what I need right now. The first branch is going to get merged, the second one may (or may not) but it23:15
kklimondadepends on the first one. How can I work on both branches in parallel, merging the first one into the second in a way that make it possible to present the second one for the merge at the later date if the idea is accepted?23:15
mgzare the things you're working on actually interdependant?23:18
mgzof not, just use two branches from the current trunk.23:18
mgzif they are, branch from your original branch rather than trunk, and if you commit something you need for your second branch, merge the first one back in again23:19
kklimondamgz: how is launchpad's merge system interpret the second merge request?23:19
kklimondahow is it going to*23:19
mgzmerge proposals have a "mark as dependent on another branch" thing you can use.23:20
mgzjust paste the lp link of the first branch in there on the second merge proposal23:21
kklimondamhm, makes sense. thanks23:21
mgz(and probably mention it in the description, as that can be a little easy for the maintainer to miss)23:21
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha

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