/srv/irclogs.ubuntu.com/2009/08/21/#bzr.txt

lifelessthats a new one then00:00
lifelessuhum00:00
lifelesspython version?00:00
lifelessalso file a bug to track this; its not usual :)00:00
denys2.6.200:00
Noldorinlifeless: erm, according to the ftp log, it's quite justified to throw that error00:03
lifelessNoldorin: it is?00:03
Noldorina previous rename has occured which renames a certain dir to that name00:03
Noldorinyeah, let me paste it for you00:03
Noldorinlifeless: http://pastebin.ca/153702400:06
Noldorinsearch for '/lock/held/'00:07
Noldorinand you should see two RNTO commands without any RNFR or RMD commands inbetween00:07
Noldorinlines 759 and 82500:08
lifelessNoldorin: there is a RNFR for it00:09
pooliejam, still around at all?00:10
Noldorinlifeless: hm?00:10
Noldorinare you assuming that rename commands automatically overwrite existing dirs?00:12
lifelessmmm00:13
lifelessno, I was looking earlier00:13
lifelessis this your patched bzr ?00:13
Noldorinyeah, look between those line numbers00:13
Noldorinnope00:13
Noldorinstandard 1.1.7 release00:13
lifelessand is it a trace of a single failing command ?00:13
Noldorinthe command was bzr push -Dtransport ftp://...00:14
lifelessdid the command complete or error ?00:14
Noldorini got the old lock error00:14
NoldorinUnable to obtain lock ftp://alexreg-repos@213.175.198.12/texdotnet/.bzr/reposito00:14
Noldorinry/lock00:14
Noldorinheld by alexreg@gmail.com on host Alex-Laptop-PC [process #11988]00:14
Noldorinlocked 7 seconds ago00:14
lifelessand it was a new directory ?00:14
Noldorinyep00:15
Noldorinwell i was pushing to a clean dir00:15
Noldorinso *do you* assume that rename commands automatically overwrite existing dirs?00:16
Noldorin(i'm not terribly familiar with how ftp servers handle requests, in particular linux ones.)00:16
lifeless339 locks 455 unlocks. Thats the 'init' phase. 759 locks. 771 reads-back to check it locked. 785 reads again. 825 tries again.00:16
lifelessno, we assume that file systems are horribly broken.00:17
Noldorinheh00:17
lifelessNoldorin: heres what I get from that trace:00:17
Noldorinnot horribly broken enough :)00:17
lifelesssomething went wrong and bzr attempts to spin on the lock.00:17
Noldorinright00:17
lifelessthe repeated attempt to acquire the lock is consistent with a failed lock attempt00:18
Noldorini see...00:18
Noldorinbut the curious thing is...00:18
Noldorinit seems to have actually succeeding in creating the lock, no?00:18
lifelessthe rename succeeded.00:18
Noldorinmm00:19
Noldorinso what did fail here?00:19
Noldorinsorry if i'm being slow00:19
lifelessyou're not. its tricky.00:19
Noldorinquite00:19
lifelessdo you have the .bzr.log from that run ?00:21
lifelessah00:21
lifelessdo this00:21
lifelessbzr -Dtransport -Dlock push ...00:22
lifelessthis will log more to the .bzr.log00:22
Noldorinright ho00:22
lifelessget a network trace at the same time00:22
Noldorinlifeless: http://pastebin.ca/153704200:24
Noldorinhttp://pastebin.ca/153704300:25
Noldorinand yes, that actually is the log from the new run.00:27
Noldorinseems to be identical00:27
Noldorinerm, network trace00:27
lifelesscool00:28
lifelessso00:28
lifelesslook at the .bzr.log00:28
Noldorinyep00:28
lifelessline 65 locks00:28
lifelessline 73 unlockks00:28
lifelessor starts the unlock sequence00:28
Noldorinthat's for the bzr init process, no?00:29
lifelessyes00:30
lifelessso thats the release00:30
Noldorinright. well we know that succeeds at least00:30
lifelessthen we wite some temp data00:30
Noldorinfrom other things to00:30
Noldorinyep00:30
lifelessand 105 starts a new lock sequence00:31
lifelesswhich renames into plce at 10800:31
lifelessbut, at 110 when we read it back we see it is held by the earlier lock object00:31
lifelessso I'll make a patch to make that blow up00:32
lifelessand then the network log will be cleaner00:32
Noldorinalright00:32
Noldorinsomething for me to test now, yeah?00:32
lifelessyes00:33
Noldorin:)00:33
lifelessyou can see that the nonce is unchanged00:33
lifelesssearch for 0cgz00:33
lifelessthe init-lock uses that nonce00:33
lifelessand the later lock encounters that lock00:33
Noldorinyep00:35
lifelesshttp://pastebin.ca/153705200:36
Noldorincheers00:40
lifelessthat works for me, with a local  filesystem ;)00:40
lifelessit should work for you too00:40
Noldorinerm, should i be editing the source i already hacked00:41
Noldorinor do a clean pull?00:41
lifelesseither00:41
Noldorinok00:41
lifelessIIRC the other changes were to lock ?00:42
Noldorinyeah00:43
Noldorini think they were mainly delays and such00:43
Noldorinmaybe an extra command in one or two places00:43
Noldorinbzr.log/network trace/both?00:44
Noldorininteresting00:46
Noldorini get the 'ftp breakage' message (from our previous test i believe)00:47
Noldorinbut not your new 'we know its broken now' one00:47
Noldorinlifeless: http://pastebin.ca/153706300:47
lifelessthe .bzr.log please00:49
Noldorinhttp://pastebin.ca/153706400:49
Noldorinlifeless: anything interesting?00:53
lifelessanalysing00:55
lifelessit tries to unlock twice00:55
lifelessuhm00:56
lifelessplease try on a clean copy00:56
lifelessyou can 'bzr shelve1' your existing changes00:56
lifelessor just bzr diff > old.patch00:56
lifelessbzr revert00:56
lifelessthen apply my new patch00:56
Noldorinok00:57
Noldorinsounds sensible00:57
lamontlifeless: when I did bzr shelve; bzr commit; bzr unshelve, bzr changed group ownership on (the one) modified file.. .is that expected?00:58
lifelesslamont: it writes a new file00:58
lamontah, that would do it00:58
lifelessso, 'yes'.00:58
denyshmm... (tried something with the test suite)  how long does selftest need for a full run? minutes, hours, days?00:59
lamontalways sad when a corner-case use-case smacks against designs that make sense for everything else... no worries00:59
lifelessif you file a bug that we should preserve that (where we can), we can look at what it will take to do it.00:59
lamontlifeless: I'll file the bug00:59
lifelessdenys: depends on your machine00:59
lifelessdenys: on mine, 40minutes, on vilas with --parallel=fork, 4 minutes00:59
lamontlifeless: you need a new machine. :-p01:00
lifelesslamont: no, I need to fix the test suite01:00
lifelesswe run some code paths millions of times. Thats inefficient.01:00
Noldorinlifeless: -Dtransport and -Dlock this time?01:02
denysI was wondering about --parallel.  the option's help is completely unhelpful.  I had no idea ARG could be fork (or anything).  I don't know what it does.01:03
Noldorinlifeless: erm, i get 'bzr: ERROR: exceptions.NameError: global name 'error' is not defined' in stdout01:04
lamontlifeless 41671801:04
Noldorinerm, note that 'in stdout' isn't part of the error message :P01:05
lifelessNoldorin: a typo01:09
lifelesserrors.01:09
lifelessnot error.01:09
Noldorinlifeless: where?01:10
lifelessin my patch01:10
lifelessI wrote error.BzrError twice. I should have written errors.BzrError01:11
poolielifeless: did you make a 2.0 branch?01:12
lifelessyes01:12
lifelessor rather spm did01:12
pooliespiv: ah that explains why you were talking over me :)01:12
pooliegreat01:12
lifelessas I can't anymore :P01:12
spivpoolie: :)01:12
=== Noldorin_ is now known as Noldorin
Noldorinbzr: ERROR: epic unlock fail01:14
Noldorinlol01:14
Noldorinlifeless: you want bzr.log?01:14
lifelessNoldorin: please01:14
spmlifeless: it was a team effort: you had the daunting task of telling me to "make it so"; I merely had to do the steps. :-P01:14
lifelessspm: I am an alpha particle01:15
spmha01:15
Noldorinlifeless: http://pastebin.ca/153709201:15
lifelesshey, better than claiming to be cpt kirk01:19
Noldorin*confused*01:19
lifelessNoldorin: ok, this shows the error we thought was happening01:20
lifelesswe've done a rename01:20
lifelessbut we can read the old file back after the rename and delete01:20
Noldorinerm, i meant confused about your comments :)01:20
emmajanepoolie, I've given beuno I bit of feedback as well.01:20
Noldorinalso confused about this ftp stuff though!01:20
lifelessNoldorin: two conversations at once01:20
pooliecool, thanks01:20
Noldorinyeah01:20
lifelessNoldorin: get a network trace of this, and the log.01:20
Noldorinlifeless: i know. couldn't help but wondering though01:20
lifelessand we should be able to make a demo script01:20
pooliejam, i'll put up a patch for the trivial indexerror of bug 41655001:20
pooliei don't know what his actual problem is01:21
Noldorinlifeless: well we already have the log, no?01:22
lifelessthe random details will not match the network trace unless they are done at the same time01:22
lifelessyou need to capture the data sessions to, to have the files that are uploaded01:22
Noldoringood point01:22
Noldorinlike the nonce values01:22
Noldorinyeah, never mind.01:22
Noldorinlate night debugging for the win01:23
Noldorinlifeless: http://pastebin.ca/1537106 and http://pastebin.ca/153710701:23
lifelessbtw, your password is in clear text in the traces... you may want to change it ;)01:26
emmajanepoolie, maybe I ping Joey for that though...01:27
pooliehi lifeless01:27
lifelessNoldorin: can you see if you can read /texdotnet/.bzr/branch-lock/held/info ?01:29
Noldorinlifeless: manually?01:30
lifelessthe trace didn't capture file contents01:30
lifelessyes01:30
Noldorinok01:30
Noldorinerm, there's nothing in branch-lock/01:30
Noldorinlifeless: ..?01:33
lifelessso01:33
lifelessthe server has deleted it01:33
lifelesswhat are you capturing with ?01:33
Noldorinwireshark01:35
lifelesswe need to make it capture the uploads01:35
* igc ignores email for a few hours and gets back to wrapping up the upgrade patch01:35
Noldorinok01:35
Noldorinwhat port is that?01:36
Noldorin(i know that it uses a different connection, from my memory of the ftp protocol)01:36
lifelessits dynamic01:37
lifeless227 Entering Passive Mode (213,175,198,12,9,122)01:37
lifelesshmm01:37
lifelessok01:39
lifelessanother small patch01:39
Noldorinok01:39
lifeless=== modified file 'bzrlib/transport/log.py'01:39
lifeless--- bzrlib/transport/log.py     2009-07-01 07:29:37 +000001:39
lifeless+++ bzrlib/transport/log.py     2009-08-21 00:39:32 +000001:39
lifeless@@ -143,6 +143,7 @@01:39
lifeless         return return_result01:39
lifeless 01:39
lifeless     def _shorten(self, x):01:39
lifeless+        return x01:39
lifeless         if len(x) > 70:01:39
lifeless             x = x[:67] + '...'01:39
lifeless         return x01:39
lifelessthen add log+ to the start of the url you push to01:39
Noldorinkk01:42
Noldorinnetwork trace again?01:43
lifelessyes, both again in fact :)01:43
Noldorinlifeless: interesting. after i delete the push dir on the ftp server, i have to wait a while before bzr will let me push again01:45
Noldorin~20/30 seconds01:46
Noldorini wonder if that has anything to do with this issue01:46
lifelessdoes bzr pause, or error, or ?01:46
Noldorinlifeless: http://pastebin.ca/1537136 and http://pastebin.ca/153713201:47
Noldorinbzr: ERROR: At log+ftp://alexreg-repos@213.175.198.12/texdotnet you have a valid01:47
Noldorin .bzr control directory, but not a branch or repository. This is an unsupported01:47
Noldorinconfiguration. Please move the target directory out of the way and try again.01:47
Noldorinstarted working soon enough though, and that just disappeared.01:47
lifelessyes01:49
lifelessthats identical behaviour01:49
lifelessdeletes taking a long time to actually be deleted.01:49
Noldorinthought so01:49
Noldorinis that the root of all our problems here then, do you think?01:49
Noldorinor just another symptom?01:50
lifelessIts the root behaviour causing the problems; what drives it I don't know01:50
Noldorinyeah, fair enough01:51
Noldorinanything helpful in those new logs i just pasted?01:51
lifelessyes, we've got the data now01:53
lifelessNoldorin: whats the bug number for this?01:56
Noldorinlifeless: https://bugs.launchpad.net/bzr/+bug/41224401:58
lifelessNoldorin: ok, I've attached sanitised versions to the bug02:02
lifelessits late for you, I think02:02
lifelessso you should go crash02:02
lifelesswhen you get up, we now have enough data that you can use the StringO stuff in the log trace + the network trace to make a test02:02
Noldorinheh, yeah. i've given enough hints as to that02:02
Noldorinright02:02
lifelessput the strings that are uploaded on disk as files with the right names so you can02:02
lifelesspush02:03
lifelesssory02:03
lifelessput FOO02:03
lifelessrename02:03
lifelessetc02:03
lifelessetc02:03
lifelessI'll help you validate the test - or anyone here can do that if you turn up while I'm not active02:03
Noldorinlifeless: i'll try to catch you tomorrow evening02:03
Noldorin(will i be able to?)02:03
Noldorinok02:03
Noldorincool02:03
Noldorinmind summarising that in a comment on the bug?02:04
lifelesssure thing02:04
lifelesswell, it will be my weekend02:04
lifelessI may or may not be around02:04
Noldorinyeah, fair point02:04
Noldorinwell see you, perhaps02:04
Noldorinthanks again, lifeless02:04
lifelessnp02:04
Noldorinhave a good weekend02:04
Noldorinbye02:04
lifelessciao02:06
poolielifeless: i propose to look at your specific-files-commit thing now02:07
pooliejohn says in https://code.edge.launchpad.net/~lifeless/bzr/commit-specific-files/+merge/9413 there's a previous patch - is that still outstanding, and if so what is it?02:07
lifelessiter-changes-partial-parents02:07
lifelessits the machinery patch02:08
poolieok and that ends up with you saying you found two bugs and you'd fix them after lunch02:11
lifelessand then discussion on the list02:11
poolieok02:12
lifeless[meta: this goes back to 'why aren't reviews on the list like they were with BB' :P]02:12
pooliewe just had that thread02:12
lifelessyes, I saw. We had had it before anyway, when we started using code reviews.02:13
lifelessand we filed code reviews bugs at the time02:13
pooliemaybe it should be in a wave02:14
poolieemail tends to get thread fragmentation too02:14
lifelesswaves look like a really good fit for bugs02:15
lifelessperhaps code too02:15
poolieone of the problems is that email doesn't have practically usable urls that you can pass around02:18
pooliecan you give me the subject of the thread about this?02:19
pooliethere are a lot mentioning "commit" :) and none apparently mentioning that branch02:19
poolieok i have it02:20
poolie"iter_changes, delta consistency and revert"02:21
igcpoolie ping02:33
igcpoolie: can we chat re upgrade when you're free?02:34
igcpoolie: I'd like to discuss the exception catching and whether we should continue with other branches if one fails say02:34
lifelesspoolie: bug 37501302:36
lifelesspoolie: I had that set deliberately :(. I thought I was clear in my comments as to why its not closed...02:37
lifelessI'd like to know how I can make it clearer in future to avoid us churning.02:37
FryGuy-are there any read-write plugins for git?02:37
lifelesspoolie: comment #6 specifically02:38
elmowildly off topic, but I suspect people here now; are svn revision numbers monotonically increasing within a single tree?02:46
bob2yes02:46
elmota02:46
igcelmo: not like bzr though to my knowledge ...02:47
igcelmo: svn numbers increase across the repo I think02:47
lifelesselmo: no02:47
bob2oh, oops02:47
elmohaha02:47
lifelesselmo: they are monotonically in a svn repo02:47
lifelesselmo: they are strictly increasing in a single tree02:47
igcelmo: so, IIUIC, the number will increase with a tree but not necessarily be contiguous02:48
igcs/number/numbers/02:48
igcs/with/within/02:48
lifelesselmo: its a single global counter stored in the svn repository - revno in svn is 'transaction sequence number'02:48
igcFryGuy: try the bzr-git plugin02:49
elmolifeless/igc/bob2: ta02:49
lifelessanytime02:50
spivlifeless, poolie: pyflakes-vim: http://www.vim.org/scripts/script.php?script_id=244102:51
lifelessspiv: heh, yes. saw on facebook yesterday :)02:51
spiv:)02:51
spivI remembered it just now because it just happened to highlight some clearly broken code in get_raw_records, which is a bit alarming.02:52
spivI guess the codepath that tries to use the undefined 'current_list' is never triggered...02:52
igclifeless: it looks like upgrading of a shared repo + branches from 0.92 -> 2a is broken currently02:52
lifelessigc: how so?02:52
igclifeless: at least as documented in the Upgrade Guide02:53
igclifeless: the shared repo upgrades ok ...02:53
igclifeless: but then trying the branch errors ...02:53
igcNoSuchRepository02:53
spivI need to merge mwhudson's lazy_import awareness patch for pyflakes into that vim plugin though.  It's a bit of a shame that it has effectively a fork of pyflakes (to make it faster and also report column numbers)...02:53
igcyet info, check and everything else seem ok02:53
lifelessigc: how is the repo being upgraded/branch being upgraded?02:53
FryGuy-igc: the plugins page said it was read-only, as in i could only branch from git, and not push changes back02:54
lifeless[point me at the uprade guide bit that talks about this]02:54
igccd repo; bzr upgrade02:54
igchttp://doc.bazaar-vcs.org/bzr.1.18rc1-html/en/upgrade-guide/index.html#migrating-branches-in-a-shared-repository02:54
igccd branch-in-repo; bzr upgrade02:54
* igc pastebins02:55
lifelessigc: looks like a regression in upgrade02:55
lifelessits probably the fix from poolie to read off disk02:55
igclifeless, poolie: http://pastebin.com/m7178eb8e02:56
lifelessigc: have you filed a bug ?02:56
igclifeless: not yet ...02:56
lifelessplease do :)02:56
lifelessI'm fixing now02:56
igcI'm tracking down why my upgrade patch isn't working and it seems it's in trunk without my changes02:57
igclifeless: filing bug now02:57
pooliemm that probably is my change02:57
poolieso the repo is actually ..?02:58
lifelessyou have to call the api to find it02:58
lifelessor handle one not being there.02:58
pooliesure03:00
pooliei thought i only changed the destination format determination though03:00
igcpoolie: so the repo and trunk were both 0.9203:00
poolieigc, assign it to me03:00
igcstep 1: upgrade repo - that works03:00
igcstep 2: upgrade branch - that falls over03:01
lifelessigc: the formats don't atter03:02
igcalter? matter?03:03
lifelessmatter03:03
igcI suspect not03:03
lifelesspossibly broken earlier actually03:06
lifelessmmm, no. 4608 broke it03:06
lifelessfixed03:08
lifelesssending for review03:10
spivHmm, I wish that pdb would let me skip over yield statements (the way 'next' skips over function calls) rather than taking me back to the caller.03:15
lifelessthat would be nice03:15
lifelessof course there's no guarantee it will get back03:15
spivYeah.03:15
lifelessand unlike next it won't see exceptions raised in  the interim03:16
spivI can see why they haven't implemented it, but I don't really care ;)03:16
igcthanks lifeless - I'll test out the fix03:16
spivThe point of a debugger is to do hard things for me ;)03:16
lifelessdoes pdb do breakpoints?03:16
lifelessif so03:17
lifelessbreakpoint +103:17
lifelesscontinue03:17
lifelesswouldn't be horrible03:17
spivIt does, although I've always found them cumbersome so virtually never use them.03:17
spivMaybe it's less cumbersome than unwinding three levels of generator yields and then going back in again...03:17
lifeless1) get a cumbersome recipe. 2) patch to make it easier ;)03:18
spivRight :)03:19
poolielifeless: i don't see the mp03:20
poolietrivial review wanted: https://code.edge.launchpad.net/~mbp/bzr/trivial/+merge/1050103:21
lifelesshttps://code.launchpad.net/~lifeless/bzr/upgrade/+merge/1050203:22
lifelesspoolie: I'd like a test in test_errors  for that, showing the sort of data we were seeing03:23
lifelesspoolie: with that, I'm +103:23
poolielifeless: me too, but it's the kind of thing that gives an unsatisfying test03:23
poolieif i directly raise a socket error03:24
pooliedo we know that's consistent with what python does?03:24
pooliei guess i could actually make and then fail to bind a socket03:24
lifelessI was meaning static data actually03:24
lifelessbut sure, if it needs a socket to make the old code break..03:24
poolieah yes, that's better03:25
poolie^ re your patch03:26
igclifeless: that test mightn't be good enough?03:26
igclifeless: make_branch_and_tree calls make_branch which always creates it's own non-shared repo IIUIC03:27
lifelessigc: how do you mean?03:27
lifelessigc: thats why the delete_tree is there :P03:27
lifelessigc: try the test without my change to bzrdir.py, if you doubt :)03:28
igclifeless: ah03:29
lifelessthere was the opprtunity to yak shave03:29
lifelessbut we're a little short on time at the moment03:30
poolieigc: ~poolie is not me03:30
poolieand lp has a huge bug that it lets you make that mistake :}03:30
pooliei'm ~mbp03:30
igcpoolie: well LP *did* tell me assigning to poolie was unusual ...03:30
lifelessI thought lp queried on new assignees03:30
lifeless^^03:31
pooliei do actually write some code you know :)03:31
igcbecause poolie didn't have any other assignments in bzr03:31
lifelessigc: it probably will never query again now :)03:31
poolieoh i thought it would do that03:31
pooliebut it's still a bit barn-door-horse03:31
lifelesspoolie: how many times should it ask though?03:31
igcpoolie: I went to fix it but the fast moving lifeless had assigned it to himself before I could blink03:32
poolieyou should be able to just point to one of the common reviewers03:32
lifelesspersonally, I think it should just do it and tell you it was odd afterwards03:32
poolies//contributors03:32
pooliethere's no good reason you should need to remember03:32
lifelesswith type-completion listing the folk it knows03:32
poolieiow vocabularies should prioritize the likely choices03:32
poolielifeless: i replied to the iter_changes thread03:42
pooliei'm not sure that will have unblocked it though03:42
pooliewhat do you think would be a good next step?03:42
pooliei can think of03:42
poolie1- read the patches in detail03:42
poolie2- just decide the knownfailure is ok03:42
pooliei don't have a problem with 2 for this particular case but it is a concern if this is likely to cause bugs with code making assumptions about the change lists03:43
* igc lunch03:44
lifelesspoolie: the knownfailure is the symptom of the API change; Aaron's objections are to the API change, and you also express some concern about it not being symmetrical.03:45
poolieright, exactly03:47
poolieso i'm trying to work out if those concerns are well founded or not03:47
lifelessour UI works on symmetric deltas; our core works on asymmetric deltas.03:48
lifeless(e.g. 'bzr diff A B' == reverse_patch(bzr diff B A)03:49
lifelessbut push A B doesn't send the data A is missing from B, only the data needed to be added to B to have A03:49
poolieright03:51
poolieand that's actually a bit of a .. well, not accident, but specific choice for this ui03:52
poolieit'd be reasonable for someone to want a diff output format that's not symmetric for file deletions03:52
lifelessright03:52
poolieor indeed not symmetric at all, like ed diffs03:52
lifelessso this patch matches bzr diff A B != reverse_patch(bzr diff B A)03:52
lifeless*when specific paths are used and inconsistent states would be encountered*03:53
poolieeven for diff?03:53
lifelessyes03:53
poolieso one way to make that look less weird is to specif03:53
lifelesscurrently diff will skip alterations to the parents of the names files03:53
lifelessand all the related logic03:54
pooliebzr_diff(A, B, paths_in_A) != reverse(bzr_diff(B, A, paths_in_B))03:54
lifelessyes03:54
lifelessprecisely03:54
poolieis that it?03:54
pooliek03:54
lifelesswell, modulo the fact that we look for paths in [A B]03:54
lifelessbut thats part of our 'expansion for correctness' logic as well03:54
poolieok so it's actually03:54
pooliepaths_in=(A, B) vs paths_in=(B, A)03:55
poolieor maybe not even precisely that, but the point is that there's more going on here than just the main two inputs03:55
lifelessroughly. Its hard to reason about even before the patch.03:55
lifelessThe key bits are: we diff more than just the named paths; the patch means that 'more' becomes larger when directory changes are involved, and does so assymetrically.03:56
lifelessnow, named paths diffs don't turn A into B, or vice verca - they are explicitly a subset of the changes.03:57
* poolie looks at the revert code04:00
abentleypoolie: I'm around, if you have questions about it.04:01
lifelesshi abentley04:02
abentleylifeless: hi04:02
pooliehi, welcome back04:02
abentleypoolie: thx04:02
poolieactually it's not so much answers about the code i'm looking for as a decision about iter_changes04:02
pooliesee the scrollback and the list04:03
poolieigc or others - any comments on the new slimmer http://bazaar-vcs.org/Roadmap04:03
abentleypoolie: I've thought about the issues on vacation, though I haven't read tonight's list discussion and I've been offline for ~5 hours.04:05
pooliewell04:05
pooliei don't mean to pull you into it in your evening04:05
poolieunless you want to04:05
=== abentley1 is now known as abentley
abentleydarn flaky wifi.04:08
abentleypoolie: I don't have clear answers, but I do have the nagging feeling that what commit wants is a similar-but-different API to what revert, shelve, merge, and possibly status want.04:09
pooliemaybe so04:13
poolieat any rate it sometimes needs more data04:13
poolieit seems like it should use the same expansion rules04:13
poolieiow status should be pretty similar to commit --dry-run04:14
abentleypoolie: When a parent directory is renamed or moved, should status report that the children have had their path change?04:15
poolieabentley: i'd be ok either way tbh04:16
poolieperhaps at the api level it should04:16
abentleyI like the way status works right now.04:16
lifelessabentley: do you mean unaltered children?04:16
poolieand then at a ui level it might decide that it wants to show the minimum description04:16
abentleylifeless: Yes.04:16
lifelessabentley: because that isn't changing04:16
pooliewhat does it do now?04:17
abentleylifeless: You proposed that "bzr status foo/bar" should report a change to foo.  This is how I extrapolated that.04:17
lifelessabentley: if foo has changed, it should yes.04:17
abentleylifeless: Even though bar is unaltered?04:18
abentleylifeless: Anyhow, I know that if I merge, revert or shelve foo/bar, I don't want to affect foo.04:19
lifelessno04:19
lifelessif bar hasn't changed, bzr st foo/bar won't report a change to foo04:20
lifelessrobertc@lifeless-64:/tmp/test$ ~/source/baz/pending/iter-changes-partial-parents/bzr st foo/bar04:20
lifelessrobertc@lifeless-64:/tmp/test$ bzr st04:20
lifelessrenamed:04:20
lifeless  a/ => foo/04:20
lifelessQuite separately to why I'm working on this, there is a bug open that 'bzr st foo/bar', when bar is changed, and foo is renamed, doesn't show foo as changed.04:21
lifelessI think some users might like bzr st foo/bar to always show changes to foo; I haven't formulated an opinion on that.04:21
lifelessabentley: if you're shelving foo/bar, and foo was renamed; it seems reasonable to me to be asking if the dir should be renamed back. A file-only based VCS would ask about renaming foo/bar back to old/bar04:22
abentleylifeless: Oh, I could have sworn that you held that bug up as another example that your approach was the correct way to go.04:23
abentleylifeless: Why?  If I go to the dry cleaner to get a shirt cleaned, they don't offer to shower me, too.04:24
lifelessThey also don't offer to put the threads back into the spiders they came from04:25
abentleylifeless: I'm saying "shelve changes to bar".  Shelving changes to foo is not what I want when I ask for that.04:25
abentleylifeless: If I want to shelve changes to foo, I can ask for that.04:25
lifelessI'm looking for that bug, I can't easily find it :(04:30
lifelessabentley: arguably, being at 'foo/bar' is as much of a change to the file as the content changes04:31
poolieso i'd like to work out what we have to do to get this unblocked04:32
pooliei can see how the expansion might not always be what you want but it's not clearly wrong04:33
poolieand there does seem some risk in having asymmetric deltas but that's not clearly wrong either04:33
abentleylifeless: But from that perspective, reverting foo is also affecting all the other files in foo, which doesn't align well with the user's minimal request.04:33
abentleypoolie: I think if we want to maintain iter_changes as a single method, we should have a flag to specify when we want this asymmetric expansion.04:35
poolieotherwise it would do no expansion at all?04:35
lifelessso there are bits here04:36
abentleypoolie: It would behave the way it does now, which recurses into subdirectories.04:36
lifelesssymmetry and correctness04:36
lifelesswe can make it symmetrical always, at the cost of larger deltas in some corner cases.04:36
lifelessand those larger deltas - I don't like  them for the same reason you're arguing against foo being reported04:37
abentleylifeless: And at the cost of having to filter it to get the current behaviour back.04:37
lifelessthey make 'small' requests into larger ones04:37
lifelessthe expansion to ensure consistent deltas is something that I firmly believe has to be enabled for commit+diff+status+revert.04:38
lifelessThose four because: status and diff should show what commit and revert will do04:39
pooliei can't remember, is it actually correct that reverting a file in a renamed directory will revert everything else in there?04:39
lifelessI think it would be odd and require explanation to have shelve do things differently to revert.04:39
poolieor just the rename of the directory?04:39
lifelesspoolie: it won't with my patch04:39
abentleypoolie: It will rename the directory.04:40
lifelessit would revert that file, and rename the directory back.04:40
lifelesswhich is the same set of changes 'commit' would do given that path.04:40
lifelessin fact04:40
lifelessits the same set of changes commit /commits today/ given that path.04:40
abentleylifeless: So, I don't think that commit foo/bar should commit a rename of foo, either.04:40
lifelessabentley: Just to be clear; you are aware that thats what it does at the moment - and always has.04:41
abentleylifeless: No, I was not aware that it did that.  I consider that a bug.04:41
poolieso maybe you'd want a "strictly minimal" mode04:41
pooliei'm not sure that should be any different between commands04:42
poolieor that the default would differ04:42
lifeless$ bzr st04:42
lifelessbrenamed:04:42
lifeless  a/ => foo/04:42
lifelessrobertc@lifeless-64:/tmp/test$ bzr commit -m '2' foo/bar04:42
lifelessCommitting to: /tmp/test/04:42
lifelessrenamed a => foo04:42
lifelessCommitted revision 2.04:42
abentleylifeless: Anyhow, the argument could be made that since status, diff, revert and shelve *don't* do this expansion, it's commit that should change.04:44
lifelessabentley: I'm open to that argument04:44
lifelessHowever, how should commit change?04:44
igcpoolie: roadmap page looks fine to me - I tweaked my wishlist as well04:45
lifelessfoo and bar might not exist in the basis, so its impossible to commit foo/bar at all without commiting foo04:45
abentleylifeless: I suggest commit should commit adds of parent directories, not renames, and possibly not deletions.04:45
abentleylifeless: I'm trying to think of an example where a deletion of a parent would be necessary in order for a commit to succeed.04:46
lifelesswhat about paths, should commit show the path in the committed tree or the path in the working tree of stuff committed?04:46
lifelessif it shows the committed tree, status should match, so status should start reporting paths that aren't on the disk in front of the user.04:46
poolielifeless, abentley: so I'm feeling there is more to do here, but it's not something we should block this patch upon04:47
lifelessif commit shows the paths from the working tree, then what it actually committed may be very different and confusing to users.04:47
pooliewould you be desperately unhappy with that?04:47
abentleylifeless: I would think working tree.04:47
lifeless=> this means we might commit a change to 'NEWS' that actually alters a file README.txt in the repository.04:48
lifelessmm, to simple an example. Needs a dir - but the idea is obvious04:48
lifelessI think it would mean we need to start reporting both paths.04:48
abentleylifeless: no matter which tree you show, it will be confusing.  I think the working tree is less confusing.04:48
lifelessto be understandable04:48
lifelessat the moment the two paths are always the same.04:49
abentleypoolie: I need to look at the patch.04:49
poolieok, that'd be good04:51
pooliebut in principle yes?04:51
pooliei'm just trying to work out what to do to get this disposed of04:51
abentleypoolie: No, in principle it sounds like muddling low-level technical details with UI issues.04:51
abentleypoolie: It doesn't sound like this was necessary to solve the InconsistentDelta issues.04:52
pooliei'm trying to understand the first one of those04:54
pooliebecause to me it sounds like the issue that iter_changes should generate consistent deltas is a concern at the level of deltas04:55
poolienot a ui concern04:55
e-jathi .. can i use svn n bzr in the same branch ?04:58
abentleypoolie: It has never been part of the contract of iter_changes that the deltas it generate are consistent in this way.  The desire for this kind of consistency stems from the way commit uses iter_changes, AIUI.04:59
lifelesse-jat: kindof; you can use bzr-svn to push and pull between svn and bzr05:00
lifelesse-jat: I would suggest having separate trees for the bzr and svn copies though05:00
pooliebut can't we get similar issues applying inconsistent deltas to the wt eg from revert?05:00
e-jatlifeless: thanks for the info ..05:01
abentleypoolie: No.05:01
lifelesspoolie: yes, but tree transform has a bunch of machinery to fix these up. The no parent for 'new-5' style bugs are where this is falling down.05:01
e-jatso i need to svn export 1st . .then copy it to bzr branch ?05:01
abentleypoolie: tree transforms go through resolution to handle these cases.05:01
lifelesse-jat: no, install bzr-svn05:01
lifelesse-jat: then bzr branch svn://foo/bar/baz05:01
e-jatlifeless: i hv installed bzr-svn05:01
e-jatdo that inside the svn branch ?05:02
lifelessdo it where you want the new bzr branch to be made05:02
abentleypoolie: Now that tree transforms can be committed, it would even be possible for commit to take advantage of this machinery.05:02
e-jatlifeless: thanks ... let me try it 1st ..05:03
poolieso, can i help with this at all, or should i leave it to you two to sort it out?05:08
poolieor ..?05:08
abentleylifeless: Do you feel that it is necessary to change iter_changes in order to fix commit?05:12
lifelessYes, or end up reimplemnting some key chunks o it outside to allow external expansion - and change record_iter_changes to be given both trees to do said expansion05:13
abentleylifeless: What about explicitly adding all parents to the iter_changes invocation?05:14
lifelessthat ends up gathering the entire tree every time (because iter_changes spiders down)05:15
lifelessif iter_changes had a non-recursive flag you could do iter_changes[paths], then iter_changes(parents, non_recursive) and filter out any parents already seen05:16
lifelessbut that still isn't enough, because you need to also include the children of deleted directories where the delete was at the same path as a parent you had to add05:16
abentleylifeless: I imagine you wouldn't be in favour of doing the filtering after running iter_changes?05:17
lifelessbut you don't want to recurse to the children of those children, as the user didn't request them05:17
lifelessperformance tests show that filtering after doing the full tree is adequately fast on large trees *with hot cache*05:17
lifelessbut the actual filtering algorithm needed ends up being roughly all of iter_changes anyhow05:18
lifelesscommit is robust against bad deltas now, so I don't have a strong correctness reason for doing it elsewhere - the worst that will happen is a crash in commit with it refusing to commit.05:19
lifelessOTOH doing it in iter_changes means that anyone using iter_changes, or a per_intertree tested version of iter_changes, will be able to pipe their iter_changes through commit with confidence.05:20
lifelessideally, we wouldn't do iter_changes on paths we don't need to, to avoid stating and checking irrelevant files.05:20
lifelessif we improve dirstate some more, we should be able to make selective commit really really fast, and thats where doing a full iter_changes would really show up05:21
abentleylifeless: my feeling is that if you really need to implement this in iter_changes, you should add a flag to toggle the behaviour, so that we can have the UI discussion without the pressure of blocking a fix.05:23
lifelessso; I'm open to that in principle but - I really believe that commit+revert should match status+diff. I'm not sure what commands then, would pass in the flag (or conversely not pass in the flag)05:30
abentleylifeless: I really believe that the existing behaviour of revert, status and diff is the best one, and I don't want to have this discussion under pressure.05:32
lifelessthen have the discussion at a slower rate :)05:33
lifelesssleep on it05:33
lifelessI'll have a think about ways to land this without changing that behaviour over the weekend05:33
abentleylifeless: works for me.05:34
abentleypoolie: I would appreciate it if you would review https://code.edge.launchpad.net/~abentley/bzr/devnotes/+merge/876605:35
pooliehi, i know05:42
Kamping_Kaiseris someone aware of a bzr or bzr-svn cheat sheet?06:42
lifelessin the docs, there is a reference card06:43
Kamping_Kaiserbril, thanks :)06:44
vilahi all07:13
Kamping_Kaisercan bzr suck all the details out of an SVN repo (over http) without access to a dump from the svn server?07:27
bob2yes07:27
Kamping_Kaiserwin. thanks again :) *goes to investigate*07:27
poolievila: hello07:36
pooliei might call it a day07:36
pooliespiv, how did you go with that bug?07:36
vilagag of the day: try 'bzr stats' on bzr trunk.... laugh... wonder who will fix that first :-)07:58
fullermdWassat?08:00
spivpoolie: it's going well, I've figured out how to hack some simple batching in.  Currently testing/debugging the batching logic I've added.08:01
pooliecool08:02
pooliei'll mark it inprogress then?08:02
spivOh yes, please do.08:02
poolieall right08:02
pooliehave a great weekend08:02
poolieregards to m08:02
spivWith some luck I'll have some useful comments to add to that bug shortly :)08:02
vilahave a great weekend poolie !08:03
spivOoh good, looks like it's working when I fetch Launchpad via HTTP, although there is a selftest failure.08:04
spivOk, and with that pushed up I'm off.  Have a great weekend everyone.08:12
spivvila: oh, and hello and goodbye :)08:12
vilaspiv: bye, have a great weekend08:21
* igc dinner09:10
NEBAP|workcan somebody help me out with a conflict?09:18
vilaNEBAP|work: Don't ask to ask, ask09:19
vilaThe answer and the people than can answer can and will be different depending on the question :)09:19
NEBAP|workk09:20
NEBAP|worksorry09:20
vilano worries09:20
NEBAP|workwas interrupted while writing the question ^^09:20
NEBAP|workso09:20
NEBAP|workI´ve removed some cache files in the local branch09:21
NEBAP|workusing bzr rm09:21
NEBAP|workalso removed the hole folder09:21
NEBAP|worknow there is a "content conflict" in one file under the removed folder09:21
NEBAP|workrunning bzr conflict09:21
NEBAP|workshows the file09:21
NEBAP|workbut using bzr resolve FILE tells me "there is no conflict in ...."09:22
NEBAP|workso what should I do?09:22
vilaThat happens when you merge a branch where FILE has been modified09:22
vilawhat does 'bzr st' says ?09:22
NEBAP|workone second09:22
NEBAP|worktells me: "removed folder xxx", "unknown folder xxx.moved" and "content conflict in xxx.xxx" (which is the file that makes the problem)09:24
vilaso, you'll have to look into xxx and xxx.moved and make sure the files you want are in the right place with the right content and remove the others09:25
vilaerr, what do you mean with xxx.xxx ?09:25
vilaxxx/yyy ?09:26
vilaerr xxx/FILE ?09:26
NEBAP|workxxx.xxx just an example like "test.txt"09:27
NEBAP|workthe file is present09:27
NEBAP|workbazaar created to files09:27
NEBAP|workxxxx.xxx.BASE and xxxx.xxx.OTHER09:27
NEBAP|workusing bzr mv didn´t work because the files were removed in the local branch09:27
vila.BASE, .THIS, .OTHER are for text conflicts, these ones get remoed when you do 'bzr resolve'09:28
NEBAP|workso I renamed xxxx.xxx.OTHER to xxxx.xxx and then bzr resolve xxxx.xxx (which worked for one file, but not for a second one)09:28
vila.moved are for content conflicts and 'bzr resolve' does not remove them09:29
vilaI think you have a conflict on a directory not on a file09:29
NEBAP|workhmm09:29
NEBAP|workit´s a content conflict (according to bzr conflicts)09:29
vila'bzr conflicts' will tells you which items are still seen in conflicts by bzr09:29
NEBAP|workyes09:30
vilaright, can you paste the output somewhere ? 'bzr st' and 'bzr conflicts' ?09:30
NEBAP|workyes, just give me a second ;)09:30
vilaif things are confidential we may do that in PMs if you prefer09:30
vilaI'd rather look at the true names than asking you to make them anonymous and risk missing a detail09:31
fullermdYou can't reveal your True Names!09:35
vilapff, as long as nobody takes pictures....09:35
NEBAP|workvila: http://pastebin.com/d1fdc9a0b  (just removed my name and email)09:36
vilahmm, PDA/trunk/TX Event/obj is the directory you don't want to version anymore ?09:39
NEBAP|workyes09:39
NEBAP|workI´ve removed it in the local branch09:39
vilais obj.moved empty ?09:40
NEBAP|workno it isn´t09:41
NEBAP|workthere is also the file that has the conflict09:42
vilabut you don't care about that file anymore right ? And that's the only file there ?09:42
NEBAP|workI don´t need that files anymore09:43
NEBAP|workbut there are still more files09:43
NEBAP|workall files that were in the obj folder before09:43
vilaare they versioned ?09:43
NEBAP|workbut I don´t need them, just cache files09:43
NEBAP|workthey were09:43
NEBAP|workbut then I´ve removed the hole folder09:43
NEBAP|workand added it to the ingore file09:43
vilaohhhh09:44
vilaobj has been deleted is not versioned anymore in the local branch and is in .bzrignore, correct ?09:44
vilacan you delete obj.moved without losing anything ?09:45
NEBAP|workyes09:45
NEBAP|workobj is still there (bzr rm obj --keep) but is not versioned anymore09:45
vilado that and try 'bzr resolve <path leading to>obj09:45
NEBAP|workand I´ve added it to .bzrignore09:45
NEBAP|workk09:45
vilawow, anyway, that's worth reporting as a bug (once we get you out of trouble)09:46
NEBAP|work^^09:47
vilaI may be wrong, but it could be that bzr fails to properly report some info because there is a conflict on a path that is now ignored... or something weird like that09:48
lifelessvila: I suspect the search only looks at one of the paths involved09:49
NEBAP|workk used "bzr rm xxx/obj.moved --force" (-> folder deleted)09:50
vilaNEBAP|work: and ?09:51
NEBAP|workthen "bzr resolve xxx/obj" (-> no conflicts)09:51
vila\o/09:51
NEBAP|workthen "bzr resolve xxx/xxxx.xxx" no conflicts09:52
NEBAP|workbut09:52
NEBAP|workthere is still the one confilct using "bzr conflicts" ^^09:52
vilacan you paste again ?09:52
NEBAP|worksure, one moment ;)09:52
vilaand tell me precisely what 'bzr resolve PATH' you issued ?09:53
NEBAP|workvila: http://pastebin.com/d314477f409:56
NEBAP|workvila: "bzr resolve "PDA/trunk/TX Event/obj/Release/TX Event.csproj.GenerateResource.Cache"09:57
vilatry: 'bzr resolve "PDA/trunk/TX Event/obj'09:57
vilalifeless: by the way, can't that be related to your iter_changes patch ? (As in will your patch change anything here ?)09:58
NEBAP|workI also tried "bzr resolve pda/trunk/tx event/obj" which told me: no conflicts10:00
vilaPDA not pda ?10:00
NEBAP|workyes used both, but its a windows machine which doesn´t care10:00
NEBAP|workiho10:00
NEBAP|work*imho10:00
vilahmpf10:00
lifelessvila: it wouldn't change merge at all; it might (but I doubt it) change partial-path merges10:01
vilaNEBAP|work: 'bzr rm "PDA/trunk/TX Event/obj/Release/TX Event.csproj.GenerateResource.Cache"'10:04
NEBAP|workvila: deleted file10:06
NEBAP|workconfilct is still there10:06
vilabzr resolve it now10:06
vilaargh, no, we still think there is no conflict there :-/10:06
vilacorrect ?10:06
fullermdIf the file is gone, a straight 'bzr resolve' should notice and catch it...10:07
vilafullermd: works only for text conflicts no ?10:07
fullermdI thought it caught things like this too,; if it's not there, it can't very well be conflicting.10:08
NEBAP|workvila: you´re my hero, that did the trick ;)10:08
vilawhat ?10:08
NEBAP|workvila: removed file, solved the conflict, commited and pushed back to the server WITHOUT errors :D10:09
vilaok, so the bug is that 'bzr resolve FILE' saying no conflict here is highly misleading,10:10
vilaNEBAP|work: can you file a bug explaining that ?10:10
NEBAP|workpuh ^^10:10
NEBAP|workI don´t understand where the problem was exactly10:11
NEBAP|workI just know the resolve didn´t see the conflict10:11
vila'bzr resolve FILE' told you: no conflict here, bad resolve, tricked you10:11
NEBAP|workyes10:11
NEBAP|workthat´s it :)10:12
vilayes, that's a bug, you were on the right track and bzr tried to derail you10:12
NEBAP|workk10:12
vilait derailed me too :D (I thought totally wrongly that the conflict was related to the directory)10:12
NEBAP|workwhere should I paste that?10:12
NEBAP|work:D10:12
NEBAP|workbut you found the problem yeah10:13
vilahttps://bugs.launchpad.net/bzr/+filebug10:13
NEBAP|workBIG THANKS if I didn´t said it before10:13
vilaAlways happy to help (tm)10:13
* vila realizes once again that 1) You always found in the last place you search for, 2) Most of the steps that leads to a bug fix are misleading :)10:14
NEBAP|work^^10:15
NEBAP|workoh lunchpad crashed with my request ^^ will try it in a few minutes ..10:15
vilaNEBAP|work: thanks10:17
NEBAP|worknp, should help other people that face the same problem ;)10:17
vilayup, that's the idea and also ensure we'll fix the problem10:18
NEBAP|work:)10:19
bialixgaryvdm, igc: hi guys10:45
bialixhello all as well10:45
* fullermd waves at bialix.10:46
vilahello bialix10:46
bialixfullermd: hi!10:46
bialixvila: bonjour!10:46
* bialix waves back10:47
bialix(I hope it's right)10:47
bialixbeuno or whoever: this new UI in edge LP is awesome10:47
bialixvila: about "the size plugins":  I've tried to lightly joking on your typo10:48
vila:-D10:48
bialixvila: I hope you get it right ;-)10:48
bialixvila: sorry, was unable to read your patch yesterday. I've tried to kick qbzr 0.14 off10:48
vilano problem, I replied with more info and hopefully a better explanation about why I wanted you to be involved10:48
* bialix wonders how I can subscribe on comments for only interesting merge proposals10:49
* bialix don't want to get entire discussions on all proposals10:49
fullermdIt's right below the button to auto-approve good merge proposals  :)10:49
bialixauto-approve? interesting10:50
bialixbb:+1 working there? cooooooooool10:50
vilafullermd meets beuno, beuno meets fullermd10:50
bialix:-)10:50
* bialix trying to write awesome announcement for qbzr 0.1410:51
Noldorinlifeless: hello?10:51
bialixvila: I can answer any questions about windows specific plugins locations10:53
bialixvila: just don't say I need re-read entire discussion of you and jam10:53
vilabialix: no, it's a different email focused only on 'site' directory10:54
bialixvila: yesterday you have questions. today I have time for answers.10:54
vilabialix: I wrote them down in the email10:55
vilaroughly: what is a good definition for 'site' on windows for the various installers ?10:55
bialixfullermd: "It's right below the button to auto-approve good merge proposals  :)" -- it was joke, heh?10:55
vilabut look at the mail10:55
bialixvila: what is the "site" for non-windows then?10:56
vilaexplained in the mail too :)10:56
bialixso I have to read your recent mail I suspect?10:56
vilathat may help keep the S/N ratio high here :)10:57
* bialix mutters: why oh why there is no RSS for merge proposals?10:57
fullermdbialix: Yah; if we can teach LP how to recognize good MP's and auto-merge them, we can make it recognize interesting discussions and send them to you  ;>10:57
* bialix reads email from vila10:57
bialixfullermd: ah. yes. brilliant idea!10:58
* fullermd nods.10:58
fullermdI've done my part coming up with the idea.  Now we just wait for vila to implement it!10:58
* vila not working on lp :)10:58
fullermdYou can't use that as an excuse forever.10:59
vilaAs long as it works...10:59
bialixLOL10:59
vilabut that reminds me that I should play again with mail scoring....10:59
vilafrom == fullermd => fun++, from == vila => must_read++++ sort of thing :)11:00
bialixvila: what you expect to hear from me?11:01
bialixvila: q: what if I'm run bzr from sources11:03
vilabialix: what can be used for 'site' for bzr.exe, when running from source, etc11:03
vilabialix: *I* ask the question first !!!11:03
=== vila is now known as vila-fud
bialixvila: bzrlib even don't try to load plugins from C:\Python25\Lib\site-packages\bzrlib\plugins11:03
vila-fudback later11:04
bialixrats11:04
vila-fudyes, that's what I want to change !11:04
* fullermd wishes it wouldn't...11:04
bialixvila: I don't understand fully all your intents and you run away!11:04
bialixvila: it's not fair!11:05
luksyeah, I had problems with that on linux earlier11:06
luksI had old bzr with old plugins from ubuntu installed in /usr/lib11:06
luksand my local bzr was trying to use those plugins, which of course failed11:06
fullermdIt caused me a huge pile of aggravation when I was trying to quantify the cost of loading the lp plugin.11:07
fullermdI'd chmod it off, and it somehow kept loading!  Move it out of the way, still loaded!  Overwrite the files with exorcistic incantations, then delete them and bury them face-down, still loaded!11:07
fullermd10 minutes in, figure out it was loading the LP plugin from the installed bzr.  Nnnnngh.11:08
bialixexcellent11:08
bialixit seems I'm only one happy person with bzr.exe11:09
fullermdWell, bzr.exe has certainly never given me any problems   ;)11:09
bialixgaryvdm: and again hi11:13
bialixvila-fud: I've tried hard to answer your questions. But in fact it seems I don't quite understand what was your Question?11:16
garyvdmHi bialix11:16
bialixhi :-)11:16
=== vila-fud is now known as vila
vilaok ok, got some sandwiches and I'm back11:17
bialixThanks for your work on karmic battle-front. I'm working on announcement for 0.14. So people will cry if they don;t use qbzr yet11:18
bialixgaryvdm: ^11:18
* fullermd quickly uses qbzr to avoid tearing up.11:18
vilasame here, never encounter a single problem with bzr.exe :-D11:18
bialixthats good11:19
vilabialix: did you reply by mail or .. ?11:22
bialixI've hit Reply (perhaps I should use Reply-All) and it was went to your inbox11:22
vilafullermd: 'bzr plugins -v' reveals paths no ?11:23
fullermdSure, if you want to know where it comes from.11:23
bialixvila: sent again and to lp too11:24
fullermdIf you think you already know, you wouldn't check, you'd just keep screaming.11:24
vilabialix: ok got it11:24
vilafullermd: with my proposed patch you'll do: 'BZR_PLUGIN_PATH=-core bzr <command>' :D11:24
bialixvila: ya know it won't work on Windows?11:25
fullermdWell, ideally I wouldn't do anything, 'cuz a bzr-from-source reading from an installed-bzr's plugin dir is bogus   :p11:25
vilabialix: why ?11:26
bialix'cuz you can't set env variable for one command11:26
vilafullermd: not always11:26
luksvila: what is a valid use case for that?11:26
bialixbad bad windows11:26
vilabialix: do it ib bzr.bat then :)11:26
bialixhehe11:26
bialixI love this part11:27
bialixI'm using bzr.exe, not bzr.bat11:27
vilaluks: fullermd just gave it: obscure way to *not* load a core plugin :)11:27
bialixvila: btw, this is why I've tried to ask you yesterday: why not control this things via global command-line options instead of magic values in BZR_PLUGIN_PATH?11:28
vilabialix: rats, so you have to use a wrapper then11:28
vilahaaaa11:28
luksvila: I mean for loading system-installed bzr plugins from local bzr11:28
bialixaaaaaaaaa11:28
luksbecause I think in most cases the versions will not match11:29
garyvdmbialix, vila: FYI, a proof of concept qcommit that gets a commit message from commit_message_template hook: https://code.edge.launchpad.net/~garyvdm/qbzr/read_commit_message_hook11:29
denysI have been trying to use "selftest --parallel=fork", but I can't make it work :-(11:29
bialixgaryvdm: ok, will look at it later11:29
vilaluks: that's not true if you use PPAs11:30
garyvdmbialix: there are some problems with it that I need to solve. When I have time.11:30
bialixok11:30
vilaluks: I mean, if you use bzr PPA, you'll get some plugins too, so your system stay up-to-date enough to run bzr from sources while not tracking the plugins11:31
viladenys: you need lp:testtools and lp:subunit in your PYTHONPATH11:31
luksvila: I don't know, I personally think it causes more problems than it solves11:31
luksvila: I was actually even going to submit a patch to disable that some time ago, but I figured it would lead to a long discussion :)11:32
vilaluks: right, same here11:32
vilathat's why I implement a flexible scheme for BZR_PLUGIN_PATH, I think the default is DWIM and almost correct for almost everybody, so changing the defautl is touchy11:32
vilaand having the ability to override it from BZR_PLUGIN_PATH should addres the remaining cases (bzr.exe doesn't it anyway :D)11:33
denysvila: thanks - just found bug #35145911:33
ubottuLaunchpad bug 351459 in bzr "Error in parallel selftest: cannot import name ConcurrentTestSuite" [Undecided,Invalid] https://launchpad.net/bugs/35145911:33
viladenys: what OS/version are you using ?11:33
viladenys: and what processor is on your host...11:34
denyspython 2.6.2 gentoo/linux. why?11:34
denyscore 2 duo (xps 1330)11:35
viladenys: mostly curiosity, 5% cautious check that it *can* work :)11:35
viladenys: python -c "import bzrlib.osutils ; print bzrlib.osutils.local_concurrency()"11:36
denys211:37
viladenys: You know about --starting-with selftest option right ?11:37
vilait may help you more than --parallel=fork most of the time11:37
denysI know now ;-) I'll give a try11:38
denysthanks (off to lunch)11:39
bialixluks, garyvdm: about doing heavy work in qbzr in thread/subprocess. luks said yesterday it don't make qbzr faster but more responsive. it's TRUE! I'm really tired for currently semi-frozen UI when it Loading...11:39
viladenys: just try 'bzr selftest -s bb.test_serve' :)11:40
bialixso this makes it "faster" for me11:40
viladenys: quickly, before lunch :)11:40
garyvdmbialix: More processEvents required..11:40
garyvdmbialix: which dialogs?11:40
vilabialix: I told garyvdm to do so long ago :)11:41
vilabut he said luks didn't agree :)11:41
vila. o O (Now, that's starting a flame war :-D )11:41
garyvdmbialix: I agree that if we had multi threads, it would be better, but It would be a huge amount of work.11:42
vilabialix, luks, garyvdm : BIG REG FLASHING ===> JOKE11:42
garyvdmvila: :-)11:42
bialixvila: LOL, thanks for flash lights, you remember!11:42
bialixgaryvdm: More processEvents won;t help11:43
bialixgaryvdm: just today hit this: want qcommit pending merge, want to copy commit message from one revision; double click on it; qdiff opens, revision details there I see right now but can't select them and copy because diff still loading11:43
garyvdmbialix: If you see that the throbber stops spinning: this is a case where more processEvents will help.11:45
bialixgaryvdm: huge amount of work won't stop the one who want scratch its own itches11:45
garyvdmbialix: yes11:45
garyvdmluks: Thoughts?11:46
bialixgaryvdm: current design of running heavy work in the same one thread never provides us more processEvents11:46
bialixbzrlib is so slow sometimes11:46
luksgaryvdm: well, since it's unlikely I'll be the one looking for bugs in threaded qbzr, I don't mind :)11:48
garyvdmbialix: If we were to go multi-threaded, we should have 2 threads, 1 for ui, 1 for bzrlib.11:48
bialixgaryvdm, luks: actually I mulling the idea about doing [possible] heavy work in several passes. E.g. loading working tree status: quickly get iter_changes and have filenames to propogate UI, and then on next pass get additional info (e.g. icons and so on)11:48
luksgaryvdm: you can't run UI in other than the main thread11:48
garyvdmluks: yes11:49
bialixor about qdiff: 1) qbuickly get list of changed files, 2) quickly get diff without syntax highlighting; 3) do highlighting11:49
garyvdmbialix: Yes the type of thing that I've been trying to do.11:49
garyvdmbialix: qlog is very good at that.11:49
bialixqlog could be better11:50
luksall I know from my experience that threading in python is fun, add bzrlib and you have 2x as much fun, add PyQt and you have 3x as much fun :)11:50
bialixif we calculate dotted revnos in 2nd pass11:50
bialixluks: cool, so MUCH FUN!11:50
bialix:-)11:50
garyvdmbialix: yes - vila: when do gdfo?11:50
luksbialix: yeah, much fun for nice long evenings :)11:51
bialixif you're alone11:51
garyvdmbialix: When bzrlib indexes gets gdfo, we will be able to load partial bits of the graph :-)11:51
luksI think that if you ever touch bzrlib from two different threads, bad things will happen11:51
bialixI have written some multithreaded code in python; pyserial + tkinter actually11:52
vilagaryvdm: don't hold your breath :-/11:52
luksso this would have to be a radical change, such as building a RPC API for bzrlib11:52
bialixworking with my own devices over COM-port11:52
bialixluks: IIRC bzr-exlipse guys do something like this11:52
garyvdmluks: yes - that's why I'm telling bialix that it would be *lots* of work11:53
luksbialix: it's different when you are working on your code that you can control, and when you are interacting with code that was not designed to work that way11:53
bialixluks: that's right, that's why I'd better use subprocesses here11:53
vilaluks: as long as you lock as you should there shouldn't be problems, do you  have specifics im mind ?11:53
bialixalthough they will be slower on windows (noticeable startup delay)11:53
luksvila: honestly, bzrlib is large enough to not trust it by default11:54
bialixbut subprocesses will use more than 1 core on mulitcore machines11:54
garyvdmbialix: subprocess/multi thread both require a rpc layer where most of the work is.11:54
luksvila: I know there are a few global variables11:54
luksvila: possible other things11:54
bialixand again I'm lose: I have only 1 core11:54
bialixgaryvdm: not exactly11:54
vilaluks: almost all the network tests involves threads11:55
bialixgaryvdm: threads will share the same memory11:55
bialixsupbprocesses won't11:55
vilathe smart server use threads (I'm pretty sure)11:55
luksvila: even better11:55
bialixvila: yes11:55
luksvila: so you would be mixing threading libraries11:55
bialix"[13:54]<luks>vila: honestly, bzrlib is large enough to not trust it by default" -- the same here11:56
vilayour code, your call, just giving my feeling :-)11:56
vilado you already have use cases where you need to call bzrlib from 2 different threads ?11:56
bialixvila: use case: there is no easy way to stop non-main thread in Python11:57
vilaAIUI you want one thread for the GUI and one for bzrlib, no problem at all here even if bzrlib uses globals (which we rarely do anyway)11:57
bialixvila: how you can cancel bzrlib operation then?11:57
vilabialix: that's totally unrelated to the problem of multi threads11:58
bialixrelated11:58
luksvila: yes, that's a safe thing to do, but it means building a custom API for bzrlib calls11:58
vilanot the one luks mentioned about using libraries that may not be thread-safe11:58
bialixthis is one of reason why we run actual qbzr actions via qsubprocess11:59
vilaanyway, you can at least stop the bzrlib operation via the progress report mechanism, but 1) that's borderline 2) not guaranteed if progress is badly implemented or if there are bugs12:00
vilahaaa, that's why luks talks about RPC ?12:00
luksvila: we are already doing that :)12:00
vilaluks: sorry :-( I wish I can spend more time participating to qbzr (starting with reading the code)12:01
lukskilling the process is done only if we can't stop it via progress report12:01
vilaha, ok12:01
luksthe idea here is to run everything that involves bzrlib in a separate thread or process (it doesn't really matter what)12:02
garyvdmby raising an exception, and excepting and ignoring it later...12:02
lukswhich means you need an API to talk with the bzrlib layer12:02
garyvdmluks: you and I are on the same page :-)12:02
garyvdmluks: and that api would be alot of work...12:03
luksyeah12:03
luksbut on the other hand, many other projects would benefit from that12:03
luksbecause it means you can build native extensions for IDEs, etc.12:04
vilaluks, garyvdm : you should discuss with verterok12:04
vilalike... *really*12:04
luksbzr-xmloutput is really limited, from that I've seen12:04
luksbut I've not seen much of it12:05
garyvdmluks: Would you use QThread + QEvent or something else?12:05
vilabzr-eclipse12:05
lukswhich uses bzr-xmloutput, no?12:05
vilaand verterok thought a lot about the design even if the code is not there12:05
vilaluks: I don't know the details sorry :-/12:05
luksgaryvdm: depends, I think I'd try to move it to a separate process rather than thread12:05
garyvdmbzr-eclipse dose use bzr-xmloutput12:06
luksnetwork operations are the main reason for that12:06
garyvdm?12:06
luksbut vila wrote more of them, so maybe they are stoppable12:06
vilaluks: lol, not at all ! :)12:06
luksgaryvdm: well, they are using blocking sockets, so if it decides to block due to a bug, we couldn't kill the thread12:07
garyvdmluks: If we were to use threads, I would still want to use the method of raising an exception in the progress_report or else where, so that finally's can run and locks can be unlocked.12:08
bialixI've heard bzr-eclipse want to build their own xml-rpc wrapper arounf bzrlib because java code can't call python code directly...12:09
luksgaryvdm: sure, there is no other way12:09
garyvdmbialix: yes, bzr-xmloutput12:09
luksgaryvdm: but I mean situations when the progress report callback won't be called12:09
bialixgaryvdm: no12:09
garyvdmbialix: oh12:09
bialixxmloutput is only provides xml formatted output for bzr commands12:09
garyvdmluks: on timeout kill the thread...12:10
bialixin this sense it similar to qbzr12:10
luksgaryvdm: yeah, and that's the problem, you can't kill a thread :)12:10
luksyou can kill a process, but not a thread12:10
bialixbut! I'm really not expert in eclipse dev! take my words with grain of salt12:10
bialixluks: exactly12:11
bialixverterok is main dev of eclipse plugin?12:11
garyvdmluks, bialix: another reason why I would prefer a bzrlib thread, rather than subprocess: cache.12:12
vilabialix: I think so yes12:12
bialixgaryvdm: cache?12:12
bialixverterok from South America IIRC12:12
luksgaryvdm: what's the problem with that?12:13
bialixgaryvdm: I was wrong it seems12:14
bialixgaryvdm: I see something about XMLRPC in xmloutput12:14
luksto be clear, I meant using subprocess as a RPC service, so that you can call it multiple times12:14
bialixgaryvdm: sorry for misinformation12:14
luksso cache would be kept in the subprocess12:14
garyvdmluks: ah - ok, similar to tbar12:15
garyvdm*tbzr12:15
bialixyep12:15
garyvdmthat would work12:15
garyvdmbilaix, luks: What would the the performance of the rpc be like for lots of data?12:16
garyvdmqlog loads and processes lots of data.12:17
garyvdmand qdiff12:17
bialixI don't have good experience to say. But it will depends on the communication channel12:18
bialixthere is good python lib ported from Python 2.6: multiprocesses or something like this12:18
bialixit have faster C code to exchange data between processes via pipes12:19
bialixwe propbaly will want to use bencode for serializing data12:19
lukswhich is blocking, isn't it?12:19
bialixluks: not really12:19
bialixthere is emulation layer siomilar to Queue12:19
bialixit won't block12:19
bialixthat lib called "multiprocessing"12:20
bialixavailable in 2.6 and from PyPi for 2.4 and 2.512:20
luksoh, I see how it works, but I wonder if it can give us some useful callbacks12:20
bialixit has some issues with Mac, but I don't understand all details12:21
bialixluks: mmm12:21
bialixluks: using periodical polling will work12:21
bialixor!12:21
luksyeah, but seriously suck12:21
garyvdmCouldn't we kill a thread with QThread.Terminate  http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qthread.html#terminate12:21
bialixrun blocking communication with subprocess in the thread12:22
bialixit will be 4x fun12:22
garyvdmlol12:22
luksI'd rather use Qt tools for this12:22
lukswhich are all non-blocking12:22
luksbut it would mean we have to write the protocol12:23
garyvdmAs you may have detected, I prefer the idead of using threads, rather than subprocesses.12:23
bialixluks: which ones?12:23
luksor use threads and signals/slots12:23
bialixgaryvdm: yes, I've detected12:23
luksbialix: QProcess with a custom protocol, if we were using a process12:23
denysvila: (back from lunch)12:23
denysOK12:23
denystests passed12:23
denysbzrlib.tests.blackbox.test_serve.TestBzrServe.test_bzr_connect_to_bzr_ssh is leaking threads among 2 leaking tests.12:23
bialixQProcess means using stdin/stdout as comm channel?12:23
luksyes12:23
bialixthat's my original idea12:24
viladenys: faster than 'bzr selftest test_server' right ?12:24
bialixyou simply read my mind12:24
luksbut we can use pipes too12:24
luksthere is QLocalSocket12:24
luksI mean named pipes12:24
bialixperhaps using stdin/out will be simpler at first stage and more portable12:24
bialixI dunno what beasts there on Macs12:25
* bialix recall vila has Mac!12:25
* garyvdm asks again12:25
garyvdmCouldn't we kill a thread with QThread.Terminate http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qthread.html#terminate12:25
bialixgaryvdm: from the doc: yes12:25
vilabialix: but can't run qbzr there :-/12:25
luks"The thread may or may not be terminated immediately, depending on the operating systems scheduling policies."12:25
bialixbut there is scary warning about dangerous12:25
luksit's like saying, "please please please kill this thread if you can"12:26
bialix:-)12:26
vilabialix: otherwise socket/processes are available on work the same than on linux12:26
garyvdmbialix: We would only use that if stoping the code by rasieing a exception fails.12:26
garyvdmon timeout12:27
vilaluks: kill -9 <pid> often behaves like that...12:27
vilabialix: s/on work/ and work/12:27
bialixgaryvdm: I prefer to use subprocesses because it will be much easier to debug12:27
bialixgaryvdm: yes it will be much more work12:27
bialixand we need to write debug tools aca terminal program12:27
bialix*aka12:27
bialixbut in the end it will be much simpler12:28
bialixbut less fun as luks said12:28
luksI think it generally doesn't matter which would be used12:28
luksas that's easy to change12:28
garyvdmWhich would be easier to do?12:29
bialixdoes QThreads use native OS threads?12:29
garyvdmno12:29
bialixor they are affected by GIL12:29
garyvdmI don't think so.12:29
lukswith threads you already have API to communicate with it in a non-blocking way => signals12:29
bialixwith QProcess you'll signals too12:29
bialixyou'llhave12:29
bialixerrr12:29
luksyes, but you have to parse the messages12:29
garyvdmbilaix: sorry ignore that. I miss read. I don't know12:30
bialixluks: yes, it will be overhead12:30
luksQThread is a thin wrapper around native thread calls12:30
bialixwith QThread we will need to send custom signals?12:30
garyvdmYes12:31
bialixthere is nice thing in Python: Queue12:31
bialixbut they are GIL-able12:31
lukswhich you don't need12:31
luksthere is the Qt event loop for this kind of things12:31
luksanything running in the same process will be affected by the GIL12:32
bialixis there someting like QFifo or QQUeue? /me looks12:32
bialixno12:32
garyvdmRelevant doc: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/threads.html12:32
* garyvdm goes to read.12:32
luksgenerally, with threads you don't need to worry about the communication layer12:33
luksbecause Qt has tools for that12:33
lukswith processes you need to write a RPC service, either a custom one or something like XML-RPC12:33
luksbut the largest part of this is designing the API for interaction with bzrlib12:34
luksnot the communication layer12:34
bialixgaryvdm: yes, xmloutput has inside implementation of XML-RPC server and client12:34
bialixit seems looks implicitly suggests to use threads12:35
bialixit seems luks implicitly suggests to use threads12:35
* garyvdm goes to read the picard code12:37
* bialix really writing announce!12:37
luksgaryvdm: don't, it's horrible :)12:43
luksyes, I was implicitly suggesting to use threads for the first version12:43
luksgaryvdm: not only it's horrible, but parts of the thread usage will be replaced by processes12:45
lfaraoneHi, is there any way to have bzr remember the password for a SVN repo I access frequently?12:51
NEBAP|workvila: https://bugs.launchpad.net/bzr/+bug/41690312:51
ubottuLaunchpad bug 416903 in bzr "'bzr resolve FILE' doesn´t recognize conflict" [Undecided,New]12:51
lukslfaraone: I think you can use svn to remember the password, then bzr-svn will use it12:52
NEBAP|workvila: hope that´s ok ^^12:52
vilaIdeally the commands leading to the problem will ensure we can reproduce it... I'm not sure I can from your description (and I was there to help you :-/)12:53
vilabut thanks for filing it already !12:54
NEBAP|workvila: I also have added the commands into the description, if there is anything additional that will help I maybe can add it too :D12:54
vilaNEBAP|work: the missing part is: how did you get there ? If you can recreate the problem with a script that would be awesome !12:55
lfaraoneHm. I check out a branch with svn, and it checks out version 151. I cd into the dir, run svn up, and am told I'm on rev 151. I run bzr up, and I am told I'm on rev 152.12:56
lfaraones/152/114/12:56
NEBAP|workvila: hmm I think I cannot create a script but I´ll add the steps that leads to the problem12:56
lfaraoneAny idea why?12:56
vilalfaraone: try svn up again just in case something happened on your repo maybe ?12:56
vilaNEBAP|work: great12:57
lukslfaraone: aren't you mixing svn and bzr revision numbers?12:58
lfaraoneluks: But as a lightweight checkout, shouldn't it use master's revnums?12:59
vilalfaraone: missed your s/152/114/, what luks says12:59
lfaraonevila: http://pastebin.ca/153758512:59
lukslfaraone: no, svn and bzr revision numbers are totally separate12:59
lukslfaraone: see bzr log13:00
luksit should tell you both bzr and svn revision numbers13:00
igchi bialix, garyvdm, luks, vila13:04
garyvdmHi Ian13:04
vilaErrk, go to bed Ian ! :)13:05
NEBAP|workvila: added the "history", hope that will help ;)13:07
bialixigc: I need you help13:07
bialixif you don't sleeping of course13:08
igcbialix: sure13:08
vilaNEBAP|work: good, I'll try to write a script from that13:09
NEBAP|workvila: ok, if there are any questions, don´t hesitate to ask ;)13:09
igcvila: it's only 10pm here - few hours left in my day still :-)13:09
lfaraoneluks: Thanks.13:10
lukshuh13:21
luksbzr pull fails with bzr: ERROR: exceptions.AttributeError: '_known_graph_pyx.KnownGraph' object has no attribute 'topo_sort'13:21
garyvdmluks- you have probably pulled trunk, but not done a make13:21
luksoh13:22
luksthat's it, thanks13:22
* garyvdm knows that because I was looking at using KnownGraph to make qlog faster.13:22
bialixgaryvdm: what it means: gdfo?13:24
garyvdmgreatest distance from origin13:24
bialixyou asked vila several pages ago13:24
bialixoh, it's about revnos?13:24
garyvdmYes13:24
bialixk13:24
garyvdmFor a revision, the gdfo stays stable, even if the tip changes.13:25
garyvdmSo in theory it can be stored on disk13:25
bialixcan it be cached therefore?13:26
luksdoes it still require the whole graph loaded?13:26
vilagdfo is stable except when ghosts are filled13:27
garyvdmAnd it can be use it determine what parts of the graph need to be loaded it calculate a revno for a revision13:27
vilarevnos requires most of the graph most of the time, we need to change the way we calculate revnos and then we'll be able to calculate revnos without loading all the graph and gdfo will help13:28
garyvdmvila: What is the difficultly with this? Ghosts?13:29
vilayes, the way ghosts are handled today, there is no simple way to know when they are filled13:32
garyvdmbialix: I've just pushed a change to trunk to make qdiff more responsive during loading.13:36
bialixgaryvdm: thanks13:36
garyvdmbla - not there yet - branches diverged.13:36
lukssorry :)13:37
garyvdmluks: Just had a look at your latest change. There are lots of other places were we get the revid via .data(). Don't we need to change them to?13:39
luksprobably13:40
luksbut I can't see any13:40
luksoh, but bzr grep does13:41
luksthose are usually str(foo.toString())13:41
luksso that works fine, but it's not as efficient as it could be13:41
garyvdmok13:42
=== mrevell is now known as mrevell-lunch
vilaNEBAP|work: forgot to ask: what bzr version are you using?13:50
vilaNEBAP|work: forgot to ask: what bzr version are you using?13:57
NEBAP|work2vila: should be 1.16.113:58
vilaok13:58
=== NEBAP|work2 is now known as NEBAP|work
NEBAP|worknickserv identify ongbak13:58
garyvdmTime to change your password13:59
luks:P13:59
NEBAP|work^^13:59
NEBAP|workwhat is <key>?14:01
NEBAP|workby changing password?14:01
NEBAP|workok14:03
NEBAP|workdone ^^14:03
=== kiko-afk is now known as kiko
vilaNEBAP|work: I've attached a script to the bug but I fail to reproduce the bug, can you see what I miss ?14:22
=== mrevell-lunch is now known as mrevell
bialixso, what's going on with release announcement mails for bzr itself?14:37
bialixI don't see announcement for 1.18rc114:37
bialixbut I see there is 1.18 ready14:37
bialixand jam has uploaded windows installers14:37
bialixanybody understand this new release scheme?14:38
vilathe RM encoutered problems for 1.18rc1 but we try to stick with the schedule14:38
vilathe only visible difference should be that announcements should now be made with installers ready14:39
bialixI'm asking because I'm used to fw announcement to ru_bzr ML14:39
vilahmm14:39
bialixand I don't see anything useful to send there for 1.18rc1 at least14:39
vilawell, do you announce the rcs ?14:39
bialixyep14:40
vilahmm, well, nobody got announce for it :D14:40
bialixI can wrote something myself14:40
NEBAP|workvila: maybe the base was also changed after the local branch was created, otherwise I don´t see any missed actions14:43
vilathe script modifies base after the branching14:44
NEBAP|workah sorry missed that14:44
NEBAP|workno so I can´t see any missed actions14:44
NEBAP|workweird14:44
vilathe trouble I have is that you mention .BASE .OTHER files, so I'm wondering where they came from in your case14:46
vilaor if they are just unrelated to the problem14:46
NEBAP|workdon´t know, but the files were create when I tried to push14:47
NEBAP|workor better14:47
NEBAP|worktried to merge after the unsuccessfull push14:47
garyvdmbialix: see http://osdir.com/ml/bazaar/2009-08/msg00356.html14:48
garyvdmbbl14:48
NEBAP|workvila: the file that caused the problem was in the base (server) and local, but I removed it from the history local before merging. Can be possible that both files were changed after branching from the base14:50
NEBAP|workvila: looking into the history I can see that removing the files was done before the last change of the base14:52
NEBAP|workvila: the last changes on the base are also marked with a red dot instead of a grey one14:52
vila??14:52
vilared ? grey ?14:52
NEBAP|workusing qlog14:52
NEBAP|workmaybe because I´ve merged the server branch into the local branch instead of the other way round ..14:53
vilaI don't think the colors are meaningful in qlog... Any comment from our beloved qbzr hackers ?14:53
NEBAP|workk14:53
NEBAP|workbut here is like the history looks14:54
NEBAP|workrev 30 -> added new files (local)14:54
garyvdmvila: colors are base on the revno, and are stable (if the revno is stable), but don't mean and thing else.14:54
NEBAP|workrev 31 -> removed folder14:54
NEBAP|workrev 29.1.1 -> last changes on the base (server)14:54
NEBAP|workrev 32 -> merged changes14:55
vilarev 32 is the one you created *after* solving the problematic conflict ?14:55
NEBAP|workis this "switch" because I merged in the wrong direction?14:56
vilarev 32 is the one you created *after* solving the problematic conflict ?14:56
NEBAP|workyes14:56
NEBAP|workthis is the last (actual) one14:56
viladoesn't look wrong to me, why do you say switch ?14:57
NEBAP|work30 -> 31 -> 29.1.1 -> 3214:57
NEBAP|workor is this correct?14:58
vilahooo, wait 29.1.1 means your colleague also added the file ! (since he did that based on revno 29)14:58
NEBAP|work29.1.1 is a change on the base (server)14:59
vilawhat does 'bzr st -c 29.1.1' says ?14:59
vilawhat does 'bzr st -c 29.1.1 -v' says ?14:59
NEBAP|workjust a second14:59
NEBAP|work^^15:00
NEBAP|workError: no working tree exists15:00
vilacd `bzr root`15:01
vilai.e. go where your WT is or st is meaningless :)15:02
NEBAP|workah ok15:02
NEBAP|workI´ve added the tree15:02
NEBAP|worksame error15:03
NEBAP|workI´ve added this to the error description15:03
vilawhere are you ?15:03
NEBAP|workin the root of the wt15:03
NEBAP|workBUT15:03
NEBAP|workwhen I used bzr push {serverlocation}15:04
NEBAP|workit just pushed the history not the wt, don´t know why15:04
NEBAP|workmaybe that is causing the errors15:04
vilado you edit files at {serverlocation} ?15:05
NEBAP|workno because there are no files15:05
NEBAP|workthere is just a folder containing the history15:05
vilagood, so there can't be conflcits there :)15:05
NEBAP|workbut it´s not a shared repo15:05
vilaok got it15:05
NEBAP|workk15:05
vilathe file has been added from both sides, I'll attach the updated script15:06
NEBAP|workdoes it reproduce the error now?15:07
igcgoneri ping15:07
vila3 conflicts encountered.15:07
vila+ bzr resolve dir/file215:07
viladir/file2 is not conflicted15:07
NEBAP|workso it does?15:07
NEBAP|work^^15:07
igcgoneri: re https://code.launchpad.net/~goneri/bzr-fastimport/347729_git-bzr_doesnt_work ...15:07
igcgoneri: the commit message doesn't match the code change?15:08
igcgineri: does that fix the bug?15:08
vilaNEBAP|work: Hmm, still not exactly because the file itself is not mentioned in conflics, but that's closer15:08
igcgoneri: ^^^15:08
NEBAP|workvila: hmm hard to reproduce ^^15:09
vilaNEBAP|work: can you paste 'bzr log -n0 -r28.. -v' somewhere ?15:11
vilaNEBAP|work: can you paste 'bzr log -n0 -r28.. -v --show-ids' somewhere ?15:11
goneriigc: http://bazaar.launchpad.net/~goneri/bzr-fastimport/347729_git-bzr_doesnt_work/revision/21015:12
NEBAP|workvila: let me check15:12
goneriigc: yes, that's the changes15:12
goneriigc: oh wait i'm on crack15:12
NEBAP|workvila: bzr: Error: sorry, u'..' not allowed in path15:13
igcgoneri: :-)15:13
goneriline 247: it should be "self.revid_to_mark[revid] = ':' + str(mark)"15:13
igcgoneri: that sounds more reasonable15:13
vilaNEBAP|work: no space between 28 and ..15:13
NEBAP|workvila: there is not a space15:14
igcgoneri: can you test that and push it?15:14
gonerisure15:14
vilameh15:14
NEBAP|workused: bzr log path -n0 -r28.. -v > bzr_log.txt15:14
vila--show-ids !!!15:14
viladon't forget it it's very important15:15
vilatry without redirecting ?15:15
NEBAP|workah k15:15
vilapath ? no path ! cd path first15:15
vila:)15:15
NEBAP|workk15:15
NEBAP|workthen he goes one dir up which is not a branch: bzr: ERROR: Not a branch: "path/.."15:16
NEBAP|work("path/.." is the folder containt the branch)15:17
NEBAP|workshould I create a local branch15:17
vilaYou can specify <path> to log, but only to restrict the log to the specified path, i.e. log will display the log entries related to the versioned  <path>15:17
NEBAP|workk15:17
vilaNEBAP|work: are you in the folder where the files you edit are ?15:17
NEBAP|workno15:17
NEBAP|workon the server15:17
NEBAP|workfiles are on a differenc pc which is shutdown at the moment15:18
vilahaaaa15:18
NEBAP|workshould I create a local branch15:18
vilathen yes15:18
NEBAP|workk15:18
vilalog should work in a tree less branch though...15:19
NEBAP|workomg15:19
NEBAP|workusing pull to retrieve the latest version results in 3 conflicts ^^15:20
NEBAP|workits the deleted folder15:20
NEBAP|workerror: can´t delete because its not empty15:20
NEBAP|workshould I use15:20
NEBAP|workbzr rm to remove them from history?15:20
vilawhere did you create your local branch ?15:20
vilaand how ?15:20
NEBAP|workjust updated (bzr pull) my local version of the branch15:21
vilawhere ?15:21
NEBAP|workc:\work\...15:21
vilais that the server ?15:21
NEBAP|workno15:21
vila<shudder>15:21
NEBAP|workI have 1 server + 2 workstation15:22
vilacan you issue 'bzr log -r28.. -v --show-ids' there ?15:22
NEBAP|workon the server is a branch without wt15:22
NEBAP|workvila: I just want to update to the latest version on the server (which contains the merged conflicts that caused the errors)15:23
vilaNEBAP|work: then do that in a clean context: create a new branch,15:24
NEBAP|workk15:24
vilait looks like you pulled in a wt with actual changes15:24
mferhello bzr folks15:24
vilaa pull in wt where 'bzr st' reports nothing should never produce conflicts15:24
NEBAP|workno, the only conflicts are in the removed folder because he didn´t want to delete it because they are not empty ..15:25
NEBAP|workk15:25
NEBAP|workat first I will create a clear brunch15:25
NEBAP|work*branch15:25
mferI'm a fairly new bzr user and looking to convert some designers/front end devs from svn. But, many of them use Coda, Textmate, and some other tools like that. They aren't command line folks either. Anyone know if there is any work being done to connect these (plugins?)?15:25
NEBAP|workk15:26
NEBAP|workbranched 32 revisions ;)15:26
vilagood :)15:26
NEBAP|workso now I try to output your commands15:26
NEBAP|worksame error15:27
NEBAP|workhe always tries to move a directory up15:27
NEBAP|workwhich is not a wt15:27
vilabzr don't move15:27
NEBAP|workI´ll try adding quotes15:28
vilado you have some wrapper ?15:28
NEBAP|workyes15:28
NEBAP|workusing the quotes it wors ;)15:28
NEBAP|workwindoofs ^^ (doof means stupid in german ;) )15:29
vilawhere did you have to add quotes ?15:29
NEBAP|workI´ve used: bzr log "-n0" "-r28.." -v --show-ids     (looks like windows recognizes the '..' as folder up)15:30
NEBAP|workmaybe15:30
garyvdmmfer: I don't think anyone is working on integration with Coda, and Textmate. Have you looked at bzr-explorer? - It is a general purpose GUI15:30
NEBAP|workbzr log -n0 "-r28.." -v --show-ids15:30
NEBAP|workis enough15:30
vila8-( bialix ? Any idea ^^15:30
NEBAP|workvila: now the output works ;)15:30
vilaNEBAP|work: ok, so, can you paste it somewhere ?15:31
NEBAP|workvila: I´ll send it via email to you if that is ok, because its company data ..15:32
mfergaryvdm: I have a little. I'm a command line guy so I don't dive into the gui tools so much. For designers I'm learning it has to be dead simple and work with their existing tools. There was a textmate bundle but it's not very feature rich, fyi.15:32
divokzI'm getting an error when using "tbzrcommandw --command=getupdates" on Windows XP.  "RuntimeError: Where is bzr.exe?"  (I've already checked, and it's in my path.)  I'm not finding anything about this via Google either.15:32
divokz(Just tested on another box -- it happens in Vista too.)15:32
divokzAny ideas on what's going on?15:32
divokzI'm using this to try to add a "check for updates" command for XP users of an internal tool I'm making15:34
divokzI'd be interested in hearing other options15:35
garyvdmdivokz: a option is to just run bzr qgetupdates15:41
garyvdmdivokz or bzr qpull or bzr pull.15:42
garyvdmdepending on what options you want to give them15:42
divokzgaryvdm: well, it needs to be part of a GUI tool.   I've tried just using `bzr up` and it just pops up a DOS window without doing much else.  (Works fine on Linux, though.)15:43
divokzgaryvdm: ah, that does do a GUI thing15:44
divokznice15:44
divokzdidn't know that15:44
garyvdmdivokz: wether you do bzr up or bzr pull depends on if the branch is bound or not.15:44
garyvdmdivokz: just add q to most commands for a gui15:45
divokzit is bound15:45
divokzwell, that's awesome -- still pops up a DOS window (before bringing up the TortoiseBZR one, unlike tbzrcommandw), but I think that's fine15:46
divokz(unless you know a way around that -- I'm calling this from a rubyw script)15:46
divokzthanks, garyvdm15:46
garyvdmNope no bzrw yet.15:47
garyvdmpleasure.15:47
ScriptFanixHi15:50
goneriigc: done, lp:~goneri/bzr-fastimport/347729_git-bzr_doesnt_work15:50
ScriptFanixare there any way to generate the debian/changelog file from the bzr history ?15:50
goneriigc: the test script runs fine now15:51
igcgoneri: thanks15:51
garyvdmScriptFanix: no, but if you have bzr-builddeb, it will automatically generate a commit message from debian/changelog.15:53
garyvdmbialix: What does this say. It is a mail I recived. http://paste.ubuntu.com/256944/15:54
ScriptFanixgaryvdm: yes, found that. i want it the other way around. anyway, it's just for internal use, so we don't really care about the debian/changelog file anyway :)15:55
garyvdmbialix: I just realized that I sent a message to ru_bzr, and it is probably telling me you need to approve the message.15:56
LeoNerdIf I "bzr branch -r123" to take a branch from an earlier point in history, the new branch seems to contain all the tags of the parent, even those after -r123..15:59
LeoNerdKnown bug?15:59
igcgoneri: merged and pushed to rev 21816:01
* goneri send a big thank you to igc16:02
igcgnoeri: you may want to close bug 347729 now16:02
ubottuLaunchpad bug 347729 in bzr-fastimport "git-bzr doesn't work" [Undecided,New] https://launchpad.net/bugs/34772916:02
quicksilveris there a way to preview a merge without actually doing it?16:12
quicksilverother than (bzr merge ../fx-xyz; bzr diff | less; bzr revert)16:12
quicksilverah --preview16:12
quicksilverduh16:12
quicksilverI'm blind :)16:12
=== Chex_ is now known as Chex
brutimusI've been trying for the past day to get server-side hooks to fire when i commit over bzr+http (through the smart server using fastcgi).  I've installed my hook at set_rh, and post_change_branch_tip.  They'll fire of i do a local commit on my repo-server, but they don't fire when i commit from the network.  Using Bzr 1.6.116:31
brutimusAlso.. I put the hooks in /usr/lib/python2.5/site-packages/bzrlib/plugins/16:33
brutimusGah.. as luck would have it.. I just ran across a changelog for 1.8 that mentions bzr over http will now load plugins.. This looks like it might fix my problem.16:37
vilaquicksilver: works very nicely as shell-command under emacs, you just have to M-x diff-mode the result :)16:41
alsurenis it possible to run bzr serve --allow-writes as a cgi script?16:41
quicksilvervila: *nod*16:42
alsurenit seems that bzr+http is a valid protocol16:46
brutimusalsuren: yes you can run that through fastcgi or mod_python16:47
bialixgaryvdm: ru_bzr is restricted group, one need to be joined it to post16:47
bialixgaryvdm: your message simply banned by googlegroups16:48
alsurenbrutimus: can you point me to some docs?16:48
brutimusfinding them :-)16:48
alsurenthanks16:48
bialixgaryvdm: never mind16:48
brutimusallenap: http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#serving-bazaar-with-fastcgi16:49
brutimusI've personally only done it through mod_python as that's what we had setup on our dev serve16:49
bialixgaryvdm: re qdiff: I don't see any changes in its semi-frozen state even with your latest patch. I guess sooner or later threads or subprocesses will be very desirable to have16:49
alsurens/allenap/alsuren/16:49
brutimuswhoops16:49
bialixgaryvdm: bye for now16:50
* bialix waves16:50
garyvdmbye16:50
=== deryck is now known as deryck[lunch]
=== abentley1 is now known as abentley
=== beuno is now known as beuno-lunch
=== deryck[lunch] is now known as deryck
sveinungIs it possible to make bzr-fastimport preserve bug fix metadata?18:04
sveinungDon't know the correct termology by I mean the data you get when you do --fixes during a commit.18:04
sveinungI have tried Google and looking at the source code but since I don't know the termology I could have missed it18:05
lukssince it's a format designed for git, I don't think so18:07
sveinungok, thank you18:14
=== beuno-lunch is now known as beuno
=== abentley1 is now known as abentley
=== abentley1 is now known as abentley
manueehi all19:22
manueei've got a problem using bzr upload... looks like ive already removed some files from the target server, but upload stops if it doesnt find a file it needs to remove... anyway around this so it continues?19:22
vilamanuee: bzr upload --full19:24
manueeey vila thanks ill give that a try19:25
=== vila is now known as vila-afk
manueedont think i saw that option on bzr help upload19:25
manuee:X19:25
=== abentley1 is now known as abentley
manueeow duh, it just does a full upload19:30
jseaboldHello all, is there a way to copy a file with its file history to another bzr branch?  I have some code deep in a branch here path/to/my/old/branch but it is now going to be a standalone package so I need to move it to /path/new/ and preserve file history.  Is this possible?19:40
=== sdboyer_ is now known as sdboyer
fjalvinghI am trying to branch from 1.14-rich-root format to 2a format on a disk and bzr is already running for 30mins at 100%CPU and 1GB memory!? Any tips?20:42
bialixthumper: ping21:39
bialixthumer: do you remember problem with SSH keys and access to bzr+ssh from WIndows?21:40
bialixtumper: http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html see section 7.2.2, 4th paragraph: "To avoid being prompted..."21:41
bialixthumper: https://bugs.launchpad.net/bzr/+bug/41474321:45
ubottuLaunchpad bug 414743 in bzr "paramiko should be default client for Windows" [High,Confirmed]21:45
phinzehmm i'm having trouble with getting bzr log to show just the commits i've made in my task branch22:31
phinzeit seems to only want to show the last revision i merged with parent22:31
phinzewhereas there are a couple of revisions in my local task branch before that i'm interested in seeing22:32
LarstiQphinze: bzr log -n0 ?22:36
phinzeLarstiQ: i'm trying bzr log -rancestor:../mainline ; but it just shows the "merge parent" revision i just made to my task branch22:38
phinzethere are two revisions before that point i would want to see22:38
phinzebut i want to filter it to show only those revs22:38
LarstiQphinze: you're not looking for `bzr missing` ?22:39
phinzeLarstiQ: i... am an idiot ;P22:39
phinzeone of those days...22:40
* phinze has used bzr missing like every day22:40
LarstiQwell, missing and log could use some refactoring22:40
phinzeyeah i always get the spec mixed up22:41
phinze--forward vs --reverse etc22:41
* LarstiQ meant them doing similar things22:42
phinzemmm22:44
kfogelWhat's the latest best recommendation for commit emails from a bzr repository?  I'm trying bzr-hookless-email right now, but so far haven't gotten it to work.22:52
lifelessI would still recommend bzr-email22:54
lifelessunless you're expecting people to commit via sftp/nfs.22:54
lifeless(can't run code on the server via dumb protocols)22:55
kfogellifeless: well, that's the thing.  I'm pretty sure they won't, but am not positive (this is for Emacs), and hate to have a system that's brittle in that way.22:56
kfogelBecause we'll never remember this, when the time comes (in two years) to debug why commit emails aren't working for so-and-so.22:56
lifelesskfogel: don't permit sftp then22:57
kfogellifeless: sure, but are we going to remember why we're not permitting it?  (Aside from the fact that some may object.)22:57
lifelesskfogel: I hear that you're pretty good at writing docs.22:57
lifeless:)22:57
kfogellifeless: what I'm trying to say is, one way is formally less fragile than the other... but only if it works.22:57
lifelessso, hookless is differently fragile22:58
kfogellifeless: one of the things you quickly learn from writing docs is that no one reads them :-)22:58
kfogellifeless: ah, is it?22:58
lifelessit depends on a long term server process/cron22:58
kfogellifeless: OIC22:58
lifelessit does mail by polling22:58
kfogellifeless: true.  But I think of that as less fragile because it's the only method by which commit emails go out.  In other words, if they break, we'll quickly figure out where to look.22:59
lifelessbzr-email depends on being invoked by bzr, which then works both locally and remotely, as long as it /is invoked/ - and bzr on the server only actually runs if you push via a bzr*:// flavour protocol22:59
kfogelwhereas with the sftp, your commit emails seem to work fine when you test them, it's just this user who said "it's not working for me"22:59
kfogellifeless: yes, I understand the hook-vs-poll thing.22:59
lifelesskfogel: for emacs I suspect sftp would be noticable slow too23:00
lifelessyou've got a massive database and users with all sorts of latency23:00
lifelessand you're not trying to host on dreamhost or some itty bitty windows-centric webhost23:00
kfogellifeless: note they're also using  bzr-hookless-email already, apparently https://savannah.gnu.org/support/index.php?10653123:01
lifelessthey really need to get a proper certificate23:01
kfogellifeless: also, bzr-hookless-email is restartable.  if the cron job drops, you just start it up, it will catch up.23:01
lifelesskfogel: sounds like you'd prefer to use bhe.. so do so :)23:02
kfogelmerely exhaustively analyzing, in the channel :-)23:03
Noldorinhi lifeless23:34
Noldorinlifeless: heh, it must seem like i'm bothering you every night. i have little better to do at the moment though :)23:37
lifelessNoldorin: hi. No - its my sat morning is all, I'm not really here.23:41
Noldorinheh, yeah. morning for you :P23:42
Noldorinlifeless: does that mean i should catch you another time then? :)\23:44
lifelesswell,  I can still answer questions and so on but there is likely to be long gaps as I wander off and do stuff ;)23:46
lifelessbasically you need to take the minimal trace + log and make a demo showing the problem you can show your admins23:46
Noldorinactually, i don't really have a question at the moment23:46
Noldorinlifeless: did you see my updates?23:46
Noldorini did a lot of testing this morning23:46
lifelessno, I hadn't - work mail is shelved till monday :)23:46
lifelesswhats the summary23:47
Noldorinhttps://bugs.launchpad.net/bzr/+bug/41224423:47
ubottuLaunchpad bug 412244 in bzr "unlock fails to unlock over FTP with Windows FTP server (Microsoft FTP Service IIS6)" [Medium,Confirmed]23:47
lifelessso, get your admins to read that ;)23:48
lifelessits pretty hard to argue that 'a renamed and deleted file should be readable'23:49
Noldorinyep lol23:49
Noldorinthey replied once saying "FTP on this server is working fine by methods we recommend are used for FTP."23:50
lifeless!!!23:51
Noldorinbut yeah, i'm trying to push it. they're just being stubbornly blind.23:51
Noldorinat least we're 100% sure there's nothing wrong with bzr now23:52
Noldorinso you're welcome to close it, if you wish23:52

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