/srv/irclogs.ubuntu.com/2010/03/09/#bzr.txt

dvheumenpoolie, I'm working on an 'easy' bug (patch pilot program), and I've got a question for you regarding the approach to take to set up a test for this change. The bug is 498409, (https://bugs.launchpad.net/bzr/+bug/498409) Do you, by any chance, have some time?00:00
ubottuLaunchpad bug 498409 in bzr "bzr revert takes a branch lock" [Medium,In progress]00:00
pooliehi dvheumen00:00
pooliesure, happy to00:00
* poolie looks00:00
pooliei just finished a call, i'll get some coffee and be back in a minute00:01
dvheumenk00:01
dvheumentnx00:01
dvheumenokay, well, fixing the bug seemed pretty simple, and jelmer had some said it seemed reasonable to him, so that gives me some confidence. He also gave me a hint on how to approach this particular type of test, which helped greatly. But it seems I've got some sort of a special case (or lack of understanding of python code, which is more or less a given :P)00:02
dvheumenThis is what I have at the moment (scrambled together) as a test: http://paste.ubuntu.com/391380/ . I know: 1. that this doesn't work, 2. I've chosen the wrong test file for this particular test. 3. I didn't finish the test exactly, but I wanted to compare the content self.locks. But I think that this approach, using this lock helper, doesn't work since cmd_revert creates its own branch instance. And that's where I'm currently stuck :P00:09
dvheumen* I wanted to compare the locks history, although now I'm not sure if that was stored in self.locks, but you get the idea00:10
pooliehi00:12
poolieso, right, actually fixing the bug will be pretty trivial00:12
dvheumenOh, btw, I do think there's a way to work around this, by adding an optional parameter to cmd_revert's run-method in which you can pass on the branch. But I don't like that approach00:12
poolieone line probably00:12
dvheumenpoolie, that's the easy part :P00:13
dvheumenI'll get the diff for you00:13
poolieso the choice of test location should probably be guided by whether the fix is in cmd_revert or elsewhere00:14
dvheumenhttp://bazaar.launchpad.net/~danny.vanheumen/bzr/bug-498409-bzr-revert-takes-a-branch-lock/revision/474000:14
poolieif it's changed in branch.py, per_branch would be an appropriate place to test it00:14
pooliei'm glad you asked for help btw00:14
dvheumenit's changed in builtins.py, so the preferred location seemed to be: tests/commands/test_revert.py probably00:15
poolieright00:15
dvheumenalthough that one doesn't exist, at least not in the 2.0 branch00:15
poolieso i think there is test framework support to record all locks that are taken?00:15
dvheumenpoolie, right, found that one too00:15
dvheumenbut it requires you to use a branch instance that is wrapped in this helper that records the history00:16
lifelessnot all conceptual locks, but all actual locks, yes.00:16
lifelessdvheumen: hmm, I think you're missing the lock tracker00:16
pooliei thought there was a way to do it globally00:16
pooliebut this may be only in my head00:17
lifelesslook at bzrlib.tests.TestCase._track_locks00:17
lifelessthats uses the lock hooks to check some test characteristics - that locks are matched during tests00:17
dvheumenpoolie, I've been using the tests in tests/per_branch/test_locking.py00:18
lifelessa single test can hook into Lock.hooks additionally to get extra callbacks00:18
dvheumenlifeless, okay, this is interesting. I hadn't seen that yet.00:20
pooliedvheumen: what he said is correct: you should be able to just do the test then inspect _lock_actions i think00:20
dvheumenpoolie, do you by any chance know if they are recorded by default, or should I activate this in some way?00:20
poolieit looks like it's on by defaulct00:21
dvheumenokay, thanks, in that case I'll give it a try (tomorrow)00:21
pooliewe should add this to the testing guide00:21
dvheumen+1 :P00:22
dvheumenpoolie, btw, I'm glad you're helping. I've wanted to dive into python for some time, and this provides some goals to tackle :)00:27
poolieif there are any bugs tagged 'easy' where it's not obvious how to begin, that's a meta-bug00:27
poolieask someone here and they will add a comment explaining it00:27
poolieor tag it -easy :-)00:27
dvheumenokay, will do00:30
dvheumenhmmm ... maybe I'm asking too fast here, but ... it seems to me that _lock_actions only records lock + unlock, but does not make a distinction between tree, branch and repository locks00:36
dvheumenow w8, I'm asking too fast. There is a distinction made. nevermind, I'll continue puzzling00:39
poolieif i were you i'd print the whole thing and look at what happens now00:45
dvheumenpoolie, yeah, I know. I'm first setting up a test file at the correct location00:49
dvheumenbtw, maybe it's something to add to the Bazaar Testing Guide documentation too, but I wasn't sure. I was running the selftest of a local 2.0 branch, but the plugins that are tested are taken from the system-wide library patch, and those are of version 2.1.0. Maybe it's a useful remark.00:50
dvheumen*path00:50
pooliehm, that's no good00:52
pooliethese are system-wide plugins?00:52
dvheumenuhhmm.. well maybe you understand. I ran './bzr selftest' in a local branch in my home dir. But it tried to run tests for the bzr 2.1.0 that was installed with some plugins. One of the plugins wasn't supported in bzr < 2.1.0 so that's how I noticed the error00:53
dvheumen*when00:53
dvheumentoo late, too many errors in my sentences :P00:54
dvheumenokay, now a decent clarification: the bzr core tests are ran without problems. But the tests for the plugins are taken from the system-wide library path00:56
poolieok, i see what you mean00:57
dvheumenso './bzr selftest --no-plugins' works as expected, but without '--no-plugins' I immediately get the error that one of the plugins can not be loaded00:57
poolieright00:57
poolieso00:57
poolieprobably it's a bug in that plugin if it doesn't cleanly declare that it can't work with bzr 2.000:57
poolieit may arguably be a bug in bzr too that it's even trying to load plugins if they're meant for 2.100:58
poolieiow if they're installed underneath the bzrlib directory of a different copy of bzr00:58
dvheumenno it's more that, if I just run the unit tests, especially as someone without experience with bzr (or python dev) it seems that the unit tests fail, but it's actually a plugin, not the code in the local branch00:58
dvheumenso my first idea was: how can the unit tests fail on a stable release?, while it's actually because of the plugins, not bzr itself00:59
dvheumenbut it's pretty obvious now, so maybe it's not worth mentioning01:00
pooliewhat i think should be happening is: you get a message 'plugin blah needs bzr 2.1 and can't work with bzr2.0.4'01:00
poolieand then the tests pass01:00
pooliethere are many cases where it is not this clean01:00
pooliewe should fix them01:00
lifelesspoolie: dvheumen: you can also hook in explicitly.01:00
lifelessbecause it can be disabled in the test suite, I wouldn't look at self._lock_actions; rather I'd hook it yourself01:00
lifelessthat way your setup doesn't get recorded, only the bit where you are doing the actual test.01:00
pooliehow should he do that?01:01
dvheumenlifeless, hmmm, I think you're going too fast for me. Do you, by any chance, have an example I can look at?01:02
lifeless# prep the test now01:02
lifeless#...01:02
lifelesslocks_taken = []01:02
lifelessdef gather_lock(result): locks_taken.append(result)01:02
lifeless     bzrlib.lock.Lock.hooks.install_named_hook('lock_acquired', gather_lock, None)01:03
pooliemm01:03
lifelessself.run_bzr('revert') # or whatever you want your test code to be01:03
poolieit's a bit gross to write this into the particular test01:03
lifelessself.assertLength(1, locks_taken)01:03
pooliedvheumen: rather than writing your own hook, maybe you should just look at _lock_actions before and after running revert01:03
poolielook at what has been added to it01:04
lifelesspoolie: if disable_lock_checks is disabled, that variable will be untouched always01:04
lifelesspoolie: its really not meant to be 'user' visible.01:04
lifelessI don't think inspecting it from subclasses is a good idea. I think its a bad idea in fact.01:04
poolieok01:04
poolieso perhaps we should add to the base class a similar or identical implementation that can be reused?01:05
pooliehm01:05
lifelessin fact, the hook in this case can be:01:05
lifelesslocks_taken = []01:05
lifelessbzrlib.lock.Lock.hooks.install_named_hook('lock_acquired', locks_taken.append, None)01:05
lifelessits two lines :)01:05
poolieor perhaps we should always record them, and just disable the actual _checks01:06
pooliethe point is to make it easier for people like danny to write these tests01:06
lifelessthats possible too01:06
lifelessI do think we should make it easier for people like danny to write tests01:07
dvheumenlifeless, I can follow that, but do you know by any chance if I can make a distinction between read/write lock and tree/branch/repository level? Because I got this info, http://paste.ubuntu.com/391407/ and I only see a filename, but it's probably more01:07
lifelesshowever, the _lock_actions is orthogonal infrastructure; it will have noise in it, and clearing it will make cleanups fail01:07
lifelessdvheumen: only write locks will show up01:08
dvheumenaha, nice :)01:08
lifelessdvheumen: its a bit dirty, but you can see the '/branch/' and '/repository/' in the paths.01:09
dcolesG'day. Does any know if bzr-svn honours $http_proxy?01:09
lifelessthese locks are at the lowest layer; Repository and Branch build on top of them: the hook is reporting on things that don't know they are a branch/repository/etc01:09
pooliedcoles: it should01:09
lifelessdcoles: I think it might01:09
pooliein pre-2.0 versions there are problems resolving lp: urls through proxies01:09
dvheumenlifeless, yeah I saw that, but it seems like a filename to me, with LockResult around it, I thought this might be some python notation of something like a data structure or so01:10
dcolespoolie: Thanks. I'm using 2.1 at the moment, though can't seem to get it to work01:10
dvheumenit seems a bit tricky to just search for 'Repository' or 'Checkout' in this string01:10
lifelessdvheumen: nope ;) its just that we've given things on disk reasonably sensible names.01:11
dcolespoolie: Is there a way to enable debugging so I can see the requests made in the log?01:11
pooliedcoles: what in particular? and use -Dhttp01:11
lifelessdvheumen: I think its a little tricky too - OTOH this is relatively simple; we can add a higher layer hook later (and i you wanted to do that I'd be happy to mentor)01:11
poolieactually those filenames do look pretty strange01:11
pooliewhy is there randomness directly appended to the name?01:12
lifelesspoolie: the first one is the metadir lock; called branch because of its starting back in 0.0.x; and this is the 'initialise data structure on disk' stage - the lockdirs may not actually exist yet.01:12
dcolespoolie: Just like to be sure that I'm actually trying to use the HTTP server - at the moment I get DavRequestFailure - could not connect to HTTP server01:12
dcolespoolie: Cheers - I'll take a look01:13
poolielifeless: what i mean is, why is it .bzr/repository/lockyxb3rn4sw1oyx1jzkt45 not .bzr/repository/lock01:13
poolieis it still stuck with a temporary name used during creation?01:13
poolieit seems strange it would still have that name at least at the time it is released.01:14
lifelesspoolie: right, thats what I'm saying; I'm guessing it that its during the bootstrap of the lock.01:14
lifelesspoolie: and we want the release path to match, for the lock checking code01:14
lifelessah actually01:15
poolieso i propose to add http://paste.ubuntu.com/391411/ to the guide01:15
lifelesspoolie:         return '%s(%s%s)' % (self.__class__.__name__,01:15
lifeless                             self.lock_url, self.details)01:15
poolielooks like a bad repr or something01:15
pooliemm thought so01:15
pooliethat will at least give people a clue01:15
poolieadding a better method +101:15
lifelesspoolie: I really don't like suggesting people look at _lock_actions01:15
lifelesspoolie: can we just given a two-line example of capturing to a list?01:16
poolieit's just going to encourage that to be copy-and-pasted01:16
pooliehow about if we add a common method and call that?01:16
lifelesssure, though that is more work than simply documenting what can be done today.01:17
lifelessat two lines long I'm not personally concerned by copy and paste01:17
dvheumenor I could add it after I created a decent example?01:17
lifelessanyhow - either is fine with me. Just poking at private stuff in the base class isn't.01:17
dvheumenI don't mind01:17
* lifeless puts nose back into C code for indicator-sound01:18
pooliedvheumen: that'd be good01:18
dvheumenI'm already contacting you after I've written a (more or less) decent test :P01:18
dvheumenokay, created a TODO list. I'd like to do this in a decent way, so I can actually learn something, so I don't mind :) (Could take a couple of days though)01:21
lifelessdvheumen: cool01:21
dvheumenlifeless, and you can expect a pm after I get how the lower level hook works ;)01:21
dvheumenTnx guys, I'm gonna go find my bed, it's pretty late/early in the Netherlands01:22
pooliecheerio01:22
lifelessdvheumen: just ask here - if I'm asleep or whatever I'll see it, but someone else may answer too01:22
pooliethanks for working on this01:22
dvheumenokay, no prob, bye01:23
=== Adys is now known as Addybot
=== Addybot is now known as Adys
dcolespoolie: Looks like something isn't working for bzr-svn01:26
dcoles`http_proxy=... bzr -Dhttp info http://bazaar.launchpad.net/~bzr/bzr/trunk` works01:27
dcoles`http_proxy=... bzr -Dhttp info svn+https://clir.googlecode.com/svn/trunk` does not :S01:27
dcolesI guess it depends on how bzr-svn's transport works01:28
pooliedcoles: maybe you need to set https_proxy?01:28
dcolespoolie: If that works I'll feel very silly. :p01:30
dcolesUh.. no dice. *sigh*01:30
pooliehm01:32
pooliemaybe this is a limit in the svn libraries we're calling into01:32
poolieanyhow you could file a bug01:32
dcolesJust found https://answers.edge.launchpad.net/bzr-svn/+question/10139901:32
dcolesSo yes, that might be the case01:33
dcolespoolie: Ok, so the trick is you have to set it in ~/.subversion/servers01:53
dcolesI understand why (since subversion ignores http_proxy, yay!), but a bit obscure to find01:54
dcolesAaaaand... awesome! That works. Thanks for your help poolie02:04
pooliegreat02:04
pooliedcoles: see bug 53479402:06
ubottuLaunchpad bug 534794 in bzr-svn "svn connections should inherit proxy settings" [Low,Triaged] https://launchpad.net/bugs/53479402:06
dcolesHaha. I was about to complain that the FAQ entry for 'behind a proxy' was a bit poor, but then again jelmer only created it 31 mins ago :p02:12
dcolesBut yes. Look forward to that feature.02:13
lifelesspoolie: bug 534724 - I think you've sidetracked it02:15
ubottuLaunchpad bug 534724 in bzr "Large Repository.insert_stream_1.19 call when pushing new stacked branch with no new revisions" [Medium,Confirmed] https://launchpad.net/bugs/53472402:15
lifelesspoolie: its not about new branches, its about trivial commits on existing branches02:15
* wgrant was going to say that.02:23
wgrantAlthough the initial push is slow too, that wasn't why I filed it.02:23
lifelesswgrant: I think you added confusion by including a full test case :)02:34
lifeless / example02:34
wgrantlifeless: Yeah, I considered clarifying that after I filed it, but elected not to :/02:35
=== NyRy is now known as R-H
R-HJust testing03:56
R-HChanged my nick but I thought it was harder than that03:56
PengWho what? Changing your nick takes a /nick.04:01
PengAside from dealing with the registration, which is an additional 50 seconds of work (mostly reading NickServ's help)04:01
chxhow can i make a file the same as it is in lp:drupal ? my tree has a real lot of various changes so lp:drupal is not really a parent or anything...04:15
bob2is it a parent or not?04:16
lifelesschx: bzr revert -r branch:lp:drupal FILENAMe04:18
chxoh tricky04:18
chxthanks04:18
chxnever knew the revisionspec could contain a branch:04:18
chxone always learns04:18
lifelessbzr help revisionspec04:19
chxlifeless: bad news, the Drupal community decided on git :( I am using bzr at my workplace still.04:21
lifeless:(04:26
R-HPeng: where do I issue the /nick command? Terminal, my IRC client?05:11
bob2your irc client05:12
bob2since it's an irc command05:12
R-Hdoes anyone else see it or just the server?05:12
SamB_XPwe see the change of nick happen05:12
SamB_XPwe don't see this05:12
SamB_XP/nick not_SamB05:13
R-Hso if I type /msg nickserve register ... you don't see it?05:13
SamB_XPindeed05:14
SamB_XPwhich is good, or we'd know your password!05:14
R-Hbut you just saw it???05:14
SamB_XPnope!05:14
SamB_XPI just know that that command takes a password05:14
R-HCool, got it changed. Thanks05:22
PengR-H: /parting the channel and /quitting the server are unnecessary, although it is nice to test that your auto-identify command still works.05:31
R-HPeng; Good to know. Just was exploring around the client really.05:32
vilahi all !07:23
codygmanI'm doing the bazaar in 5 mins tutorial, and bzr diff isn't showing differences09:39
donricodygman, the changes you have made since the last commit, are they made in committed files?09:40
donriwhat does "bzr status" give09:41
codygmanone second09:41
codygmani deleted it and redid the mini tutorial09:41
codygmandonri: here you go09:44
codygmanhttp://dpaste.com/169810/09:44
codygmanoh wait, you can only look at differences before commit then?09:45
codygmanaha... how would you look at differences between commits?09:46
donribzr diff -rX..Y09:46
idnaror bzr diff -cN09:46
donrias i suspected, you didn't make any changes *since the last commit* :)09:46
donrithat's the default for diff and status: changes made since committing09:47
idnar-rX..Y shows you the changes between revision X and revision Y, -cN shows you the changes made in revision N09:47
codygmanrofl silly mistakes.. they always happen09:47
donricodygman, "help" is a useful command also, e.g. bzr help diff09:48
codygmanyeah.. i did that actually09:48
codygmanreading man now09:48
codygmandoes bzr have a release folder, or a place where I can put only working versions?09:53
donrimaybe you want branches, or tags?09:53
codygmanyou mean once I verify that my changes didn't break anything, I can commit them to a certain brance?09:54
codygmanbranch*09:54
donribranches are separate lines of development, usually sharing past commits; tags are named commits. (does these definitions apply to bazaar, people?)09:56
idnarcodygman: in a lot of projects, each new feature / bug fix / whatever will be made on a branch, and then merged to "trunk" once it's ready (for example, the code might have to go through a code review process, or whatever)09:56
codygmanalright.. that's what i'm wanting to do.. I don't want to upload module and brake everything.. lol09:57
bob2donri: yes09:59
en1gm4hi all10:03
awilkinscodygman, It's just social convention in Bazaar as well as SVN (I'm inferring that you are coming from SVN)10:03
codygmanactually i'm coiming from no version control.. but have read more about SVN than others10:03
donriwhat do you mean by uploading, though?10:03
codygmanwell after my module has been updated and I know it works10:04
codygmani'll upload it to my djangos custom-modules direcotry10:04
codygmandirectory10:04
en1gm4in a project I'm working on there is a pre-commit  test used like bazaar plugin, the problem is that each developer has to link or copy that plugin in ~/.bazaar, is there any way to distribute it in the <branch>/.bzr ? or some repo setting?10:04
Pengen1gm4: Not really -- general arbitrary code execution is considered unwise. :P10:08
Pengen1gm4: There is work on doing it in a more-safe way, and it might even be usable, but I don't know.10:09
awilkinsen1gm4, I'm getting security-hives about a project that just distributes serialized objects in the VCS folder for later deserialization and execution...10:10
donricodygman, you should automate your deployment (with e.g. fabric) and have pip pull dependencies from a requirements.txt file, where you can list the path to your module's bazaar branch10:11
codygmanahh alright.. i've been looking at fabric10:12
codygmanthanks donri, think its time for me to shutdown the shell tonight though10:18
donriyou rest that overworked brain!10:19
acezarhi. i have a corruption problem with bzr branch. for some reason, when i branch almost all line with "foo: stuff $bar" become "foo$bar". i can figure if it's a bug or if there is a functionality that i don't know10:50
acezari have no plugins and this is the same with either version 2.0.4 or 2.1.010:52
Pengacezar: "bzr plugins" doesn't list anything?10:53
Pengacezar: Are you using some incredibly bizarre file system?10:53
Pengacezar: I'm suspicious you may have keyword replacement enabled.10:53
acezari have now fastimport launchpad netrc_credential_store news_merge as plugins. fastimport was'nt installer when i tested. the others are installed as default (i use archlinux)10:55
acezari suspected keywords too but cant find it10:55
acezari work whith sshfs mounted volumes10:56
acezaris there any keymord replacement when the keywords plugin is not installed?10:57
Pengacezar: The keywords extension uses the content filtering feature built into bzr, but that doesn't do anything by default.10:58
PengHonestly, I've got no idea. :-\ Probably something obvious, but...10:58
acezaris the keywod plugin is installed in the repository when used once? it was present on the first branch opration11:00
Pengacezar: Ah. No, but the changes it made won't be automagically reverted. Does "bzr diff" show these changes?11:02
acezarno11:03
Pengum.11:06
PengI don't know much about how content filtering works. :-\ It's possible it does do something permanent.11:06
acezari found11:07
acezarthe keywords plugin did somthhing to the repository. i don't know what, but a fresh repository witch as never seen the plugin branch perfectly11:08
acezarthe keywords plugin seems to leave somthing event when uninstalled11:09
PengOh.11:16
PengHere's what might have happened: someone disabled the keyword plugin, did not revert the changes it had made, and then accidentally committed them.11:17
PengNow they're just normal data. You could use annotate to see what it happened and revert the damage.11:17
acezari dont think. there was a trunk branch exported from cvs. when branched this to test some files were corrupted not the trunk. the keywords plugin was installed (bzr explorer windows). then we try to do the same without the plugin. corruted again11:19
acezarso i tryed on my own computer commandline archilux. same result11:20
acezarso we tryed to restart from scratch. export form cvs no plugin installed. then branch. no more problems11:21
PengHuh.11:22
PengYou said "CVS", so my brain is shutting down to prevent contamination. ;P11:22
acezarlol11:24
byteehi! does anyone know if there's an app that can graph bzr commit histories ? i.e. something good for making charts as to who's committed the most in the last year?11:24
PengIt's entirely possible something weird happened between the keyword plugin and the CVS converter.11:24
Pengbytee: I dunno. Ohloh.net probably does.11:25
Pengbytee: If by "graph" you mean "ASCII list", the bzr-stats plugin should be able to do that.11:25
byteePeng: ah ok. let me try bzr-stats11:25
neajhi all .. how do i time-travel my working directory back to revision 2?11:31
Pengneaj: bzr revert -r 211:33
Pengneaj: bzr update -r 2 (if your bzr is new enough)11:33
Pengneaj: You can also "bzr cat -r 2 some/file" if you just want an old version of one file dumped to stdout11:34
Pengneaj: You could even make a new branch, "bzr branch -r 2 some_branch time_travel"11:34
neajPeng: bzr: ERROR: no such option: -r11:35
neajthat's for update11:35
neajBazaar (bzr) 2.0.411:36
neajwon't revert throw away intervening commits?11:36
neajit's a big ol' tree i want to time travel11:36
Pengneaj: I guess bzr 2.0.4 isn't new enough, then. :P Must be new in 2.1.11:37
* neaj kicks Jaunty11:38
neajdoing revert ..11:38
Pengneaj: What do you mean by "throw away intervening commits"? Revert just meddles with the contents of the working tree; it doesn't change any meta data.11:38
neajphase:comparing files 43229/4561911:38
neajPeng: ah, cool11:38
Pengneaj: Even "update" will only meddle with the working tree's contents and meta data; it won't change the branch11:38
neajPeng: i thought reverted reverted a commit to make it like it never happened11:38
Pengneaj: uncommit does that11:39
neajPeng: yes, that's what i would expect from update11:39
Pengneaj: If you mean "completely remove all traces of it from history".11:39
neajOK, now revert left me with 1000s of files which it's refusing to delete because they're not empty11:43
neajhow do i go back to "now" now?11:45
neajhow can bzr tell me "Tree is up to date at revision 6." if i just did a 'bzr revert -r 2'?11:46
neajtrying bzr revert -r 611:47
Pengneaj: "bzr revert" if you did revert, or "bzr update" if you did update, or "bzr pull -r revid:something" if you did bzr uncommit or bzr branch. :D11:47
caybloodI'm getting an error trying to run bzr after installing the Bazaar-2.1.0-2.1 package for OSX: http://gist.github.com/32650911:47
Peng(Just FYI, you can find that revid with bzrtools' "bzr heads" command. bzr uncommit will also tell you.)11:47
neajgot about a million like this: Conflict adding file zeocluster/src/theme.  Moved existing file to zeocluster/src/theme.moved.11:47
PengYikes.11:48
Peng("bzr pull . -r revid:something", I should have said.)11:48
Peng(Unless you did "bzr branch". Anyway this is off-topic.)11:48
neaji just did the revert commands i pasted11:48
Pengneaj: Did it mention any conflicts when you did the original revert?11:48
neajwell, you & i pasted11:48
neajyes, revert left me with 1000s of files which it's refusing to delete because they're not empty11:49
neajthose were reported as conflicts11:49
neajand now going back to now they were all reported as conflicts again11:49
Pengneaj: Right. You had files that bzr isn't tracking (text editor backups, .pyc files, compiled code, etc.), so it refused to delete the directories. Now it's trying to create the directories, but they don't exist, so it's unhappy again.11:49
PengErr, sorry.11:49
Pengbut they already exist*11:49
neajthat doesn't make sense ;-)11:50
neajif it isn't tracking them, how can it be trying to create them?11:50
neajit was tracking them alright11:50
PengWhen you did "bzr revert -r 2", it deleted all of the stuff it tracked. However, you had files it wasn't tracking lying around, so it couldn't delete all of the directories it wanted to.11:51
PengNow you're doing "bzr revert" and it wants to create those directories -- because it tracks them -- but it's finding that directories with the same names already exist and gets unhappy.11:51
Peng(Bazaar tracks directories as first-class objects, just like files.)11:51
PengI'm sorry, but I don't know of a good magic cleanup button for this.11:51
caybloodAnyone have any idea what the problem is here? http://gist.github.com/32650911:52
caybloodError I'm getting is "'module' object has no attribute 'SIGWINCH'"11:52
neajPeng: it's OK, it's a sandpit for learning bzr ..11:53
Pengcayblood: Oh shoot. Other people have been reporting that too.11:53
PengErr, wait, they might have been on Windows though.11:53
Pengcayblood: What OS?11:53
caybloodOSX11:53
PengOh, duh, shoulda looked at the paths...11:53
caybloodsnow leopard, to be precise11:54
caybloodBeen trying to get this working with  various versions of python and bzr for a couple days now11:54
caybloodrunning into various problems.11:54
Pengcayblood: Bazaar assumes that the SIGWINCH signal exists on all non-Windows platforms. Perhaps it is mistaken.11:55
caybloodFinally decided to go with the a plain vanilla setup, remove macports and just try to get the built-in python working11:55
caybloodI think it is mistaken11:55
caybloodlet me investigate11:55
PengWell, the error message states quite obviously that OS X doesn't have that signal, or at least Python doesn't think it does.11:57
caybloodLooks like there is support for SIGWINCH in OSX: http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man3/is_term_resized.3x.html11:57
caybloodBut maybe python doesn't expose it?11:58
caybloodI mean, maybe Python is not making the right declarations or something? Just a guess11:58
PengPython should expose it.11:58
PengAFAIK, anyway. But it obviously isn't.11:58
PengThere may be a Python bug here, but this is definitely something bzr can fix as well -- it could exclude OS X, or actually check whether SIGWINCH exists instead of assuming based on the OS. You should file a bug.11:59
vilacayblood: try: python -c 'import signal; print signal.SIGWINCH'12:00
caybloodjussec12:00
PengErr, good point.12:00
vilaPeng: I tried the above on OSX 10.6.2 and it worked12:00
PengAwesome.12:00
caybloodPeng: Here is the result:12:00
caybloodhttp://gist.github.com/32651812:00
PengAs a workaround, you can pretty easily hack bzrlib/osutils.py:watch_sigwinch to just return or something.12:00
Pengcayblood: Just to be sure, could you: python -c 'import signal; print signal.__file__'12:01
vilacayblood: try changing your current dir (wild guess)... hehe like Peng said :)12:01
caybloodCould it be a problem with the built-in python version? Apparently it's 2.4.612:02
PengMaybe.12:02
caybloodvila: changing current dir did nothing12:03
vilaif your PYTHONPATH includes '.' or '' the current directory is searched for modules, environment bug12:03
Pengcayblood: What about the command I asked you to run?12:03
vilapython -v ?12:03
caybloodPeng: I got 'module' object has no attribute '__file__'12:03
vilaI've got python-2.6.1 here12:03
vilaand AFAICT, it's a stock install12:04
caybloodvila: hmm weird12:04
Pengcayblood: OK.12:04
caybloodvila: only thing I can assume is that my python was not upgraded when I upgraded to Snow Leopard, but I highly doubt that12:04
PengSo you _are_ getting the right signal module (almost certainly python -c 'import signal; print signal' would confirm it for sure).12:05
caybloodjussec12:05
Pengcertainly;*12:05
caybloodPeng: I get <module 'signal' (built-in)>12:05
Pengcayblood: Yeah, OK.12:05
caybloodI can check what version of python is running on my colleagues' machines. Jussec...12:06
PengPython's signal module is about as simple as it can be: #ifdef SIGWINCH12:07
* vila needs food12:08
caybloodLooks like fresh installs of snow leopard have 2.6.112:08
* Peng has pizza! :D12:08
neajbzr branch -r 2 PlonePIMS-ready PlonePIMS-ready-r2 # <- this worked fine12:08
neajmv PlonePIMS-ready PlonePIMS-ready-orig12:08
caybloodFor some reason mine has 2.4.6. I will investigate further and see if I can start from a clean baseline.12:09
neajbzr branch -r 6 PlonePIMS-ready-orig PlonePIMS-ready-r6 # <- bzr: ERROR: Not a branch: "/home/jean/PlonePIMS-ready-orig/".12:09
neaj?!12:09
Pengneaj: ls PlonePIMS-ready-orig12:10
Pengneaj: Maybe it already exists, so your branch is at PlonePIMS-ready/PlonePIMS-ready-orig12:10
PengErr, other way around, sorry.12:10
Pengneaj: PlonePIMS-ready-orig/PlonePIMS-ready12:10
neajnope12:10
caybloodlooks like macports reared its ugly head12:10
Pengneaj: ls PlonePIMS-ready-orig/.bzr12:11
Pengneaj: Sure you aren't in the wrong directory?12:11
neajlecking again ..12:11
neajchecking, sorry ..12:12
caybloodfor some reason my messages are vanishing from my irc window. is this getting through?12:12
Pengcayblood: Yes.12:12
neajcayblood: yes12:12
cayblood\/usr\/bin\/python was really pointing to macports (2.4 version)12:12
PengOh, nice.12:13
caybloodHad to backslash this dir because it was being interpreted as a regex12:13
Pengcayblood: Maybe your IRC client was assuming it was a command because it starts with /.12:13
caybloodyeah probably right How can I escape that?12:13
Pengcayblood: Depends on the client.12:14
caybloodNot start a command with slash?12:14
Pengcayblood: Often something like //foo, / /foo, /say /foo.12:14
caybloodok12:14
Pengcayblood: Or that, yes.12:14
Pengcayblood: Which client?12:14
caybloodcolloquy12:14
neajPeng: yay! it was indeed something like you suspected. thank u ..12:14
Pengneaj: Oh, whew.12:14
Pengcayblood: Ah, dunno about that, sorry.12:14
Peng(Some clients are even smart enough to recognize file paths and send them through without you having to do anything extra.)12:15
caybloodYay!!! Switching to python 2.6.1 fixed the problem12:16
Pengcayblood: So...this is a MacPorts bug. :D12:16
caybloodThis happened because I was trusting the macports python_select utility, which wasn't really choosing the version of python that I was telling it to.12:17
caybloodBut it silently failed.12:17
PengFun.12:17
* Peng files a bzr bug. Though actually fixing it would be just as easy...12:20
maxbIs there documentation on per-file merge configuration? Specifically is there any better way of stopping bzr-builddeb's debian/changelog merger being used other than --no-plugins?12:43
jelmermaxb: there is a configuration option somewhere12:44
maxbindeed... :-)12:44
maxbIf only I could find where12:44
jelmermaxb: try "deb_changelog_merge_files = "12:46
maxbaha, thanks12:49
=== mm-mysql is now known as mark|autoconnect
=== asac_ is now known as asac
vilamaxb: file bugs so it can be improved too13:27
=== beuno is now known as beuno-afk
jammorning vila14:22
vilamorning jam !14:23
jamjelmer: ping14:23
jelmerhey jam, vila14:23
vilajam: I just made tests pass for bug #531967... that was quite a journey :-/14:24
ubottuLaunchpad bug 531967 in bzr "bzr resolve --take-this or --take-other fails for PathConflict if a dir is deleted" [High,Confirmed] https://launchpad.net/bugs/53196714:24
jamhey jelmer. I'm working on refactoring some of the pack-collection internals so that we can re-use some of the logic for other stuff14:24
jam(like bzr-search, annotate cache, etc)14:24
vilajam: I'll clean up a bit and submit a proposal14:24
vilajelmer: hey14:24
jelmerjam: ah, neat14:24
jamI wanted to check and see if I understood what you were thinking for the bzr-svn/git/hg maps14:24
jamvila: it certainly seemed more involved than one might expect14:24
jamjelmer: so are you essentially just looking for a (key,value) index, or do you need real content?14:25
jamA pack file is generally, 'generic data' storage, + indexes into that14:25
jamand I'm wondering if you just need the last bit, or the whole thing?14:26
jelmerjam: for all three we need key/value indexes, bzr-svn additionally also needs generic storage for the "svn log" cache14:26
vilajam: well, the most annoying part is that deleting a path always win and left no trace, so restoring the other side was... tricky (especially since that shouldn't be versioned anymore)14:26
jamjelmer: what would the key be for retrieving the log data?14:26
jelmerjam: a revision number14:26
jamso you would cache the svn log -r X keyed by UUID + X ?14:26
jam(UUID probably being implicit)14:27
jelmerjam: We currently have one directory per UUID and that seems to work quite well, so the UUID would indeed be implicit14:27
jelmerjam: yeah14:27
PengThis could be relevant for Loggerhead too, though I don't know the details.14:27
jelmerjam: all of this stuff is write-once, once a particular key is set its value will never change14:28
jamjelmer: sure, the issue is just figuring out how tweeze apart our current design14:28
jamcurrently RepositoryPackCollection knows what indexes are there, etc.14:28
jamAnd I think we want a more abstract "there is some data" and "there are some indexes"14:29
jamand if all you have is indexes14:29
jamfiguring out when they need to be repacked14:29
jamneeds a knob to figure out what data is there14:29
jametc14:29
jamanyway, I think I have a handle on the requirements14:29
jamjust need to keep working away at it.14:30
jelmerjam: Cool14:30
jamPeng: potentially, though I'm not really sure how loggerhead is doing its caching, and whether it would really want to store it in yet another structure14:30
PengMe neither. :D14:31
jelmerjam: I'm not very familiar with the way packs/indexes are managed at the moment so I'm just trying to provide you with sufficient data :-)14:31
jelmerjam: Actually, I did work on a pack-based cache for bzr-git a while back, lp:~jelmer/bzr-git/index-based14:31
jamjelmer: yeah. I'm quite familiar :) Though I'm trying to also improve some bits14:31
jamtaking some ideas from bzr-search, etc14:32
jelmerjam: if you're wondering what sort of calls bzr-git needs to do on indexes that code should give you a good idea14:32
jamjelmer: what is the 'X' ?14:35
jamah, just a placeholder14:35
jelmerjam: yep14:35
jamyou could probably have used ''14:35
jelmerjam: no, '' raises an exception somewhere14:36
jaminteresting14:36
jamjelmer: so basically, you created indexes, but just never combine them in that code, right?14:37
jelmerjam: yeah14:37
mrandHowdy.  I pushed a change, but it is not showing up on launchpad.  Could anyone tell me what I did wrong?  http://pastebin.org/10741114:37
jamso for what you need, that is actually pretty easy14:38
jelmerjam: each time you pull from git you end up with a new index file14:38
jamyou can use "for index in self._index._indices: index.key_count()"14:38
jamto determine if/when you want to rebuild14:38
jamand then just14:38
jamself._index.iter_all_entries() => self._builder.add_node()14:38
jamI would actually consider doing:14:38
jamif num_indexes > 20: rebuild14:39
jamand just grow from 1 => 20, then pack down to 114:39
jamyou could be 'smarter', but I honestly don't expect huge overheads there14:39
jelmerjam: I tried to steal the code from bzr-search for repacking, but it was too much code to duplicate imo14:39
jammaybe I'm wrong14:39
jamjelmer: yeah, bzr-search is doing lots of other stuff14:39
jamand I find the code pretty confusing14:39
jammostly because it is handling "indexes" which are stored as the *data* in a pack, which is then indexed, and then the pack files themselves are indexed14:40
jelmerjam: How hard would rebuilding be ? Or could we perhaps have a helper function in bzrlib to ship the rebuilding off to ?14:40
jelmerjam: ahh14:40
jamjelmer: you aren't rebuilding content14:40
jamso rebuilding the indexes14:40
jelmerjam: no wonder I had trouble understanding that code14:40
jamis just iterating over what you have and adding them to a new builder14:40
jelmerjam: ah, ok14:41
jamjelmer: something like: http://paste.ubuntu.com/391802/14:45
Pengmrand: 1.) Launchpad doesn't allow you to do lp:~user/project/directory/branch. It's a flat namespace, just lp:~user/project/branch.14:45
jelmerjam: thanks! I'll give it a try this evening. It'd be really nice if we can get rid of the other cache backends.14:46
Pengmrand: Secondly, for the successful push, you left off the "lp:", so it actually pushed to a local directory.14:46
mrandPeng: oops!  Thanks.14:46
Pengmrand: bzr push lp:~mrand/mythplugins/fix-repeated-file-ext-511653 or something similar14:46
mrandPeng: bzr: ERROR: Invalid url supplied to transport: "lp:~mrand/mythplugins-trunk/fix-repeated-file-ext-511653": No such project: mythplugins-trunk14:47
Pengmrand: That's exactly what it says -- the project is called "mythplugins", not "mythplugins-trunk".14:48
mrandI thought that --create-prefix would take care of the project part.14:48
mrandoh, I didn't realize it validated that.  Ok.14:48
mrandworked.  Thanks Peng!14:49
Peng:D14:49
RobOakesHi, does anyone know how to continue a bzr push request?  I was making an initial commit to launchpad with a big SVN repository (23990 revisions).  The bzr client stalled halfway through and I *really* don't want to start over from scratch.15:35
RobOakesThe error message says something about finish_writing / finish_reading ...15:35
RobOakesThe initial error was: The medium 'SmartSSHClientMedium(connected=True, username=u'robertsoakes', host='bazaar.launchpad.net', port=None)' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request.15:35
PengYeah, the data got nuked.15:36
RobOakesAlternatively, is there a way to do a "shallow" push, similar to a shallow checkout.  The repository has some 15 years of commits, and I only need the most recent history.15:36
PengRobOakes: I don't think you can do that. Using shared repositories or stacked branches, you'll only have to push it once, though.15:38
RobOakesOkay.  I was afraid of that.  This particular push had been running for nearly 24 hours, and I was hoping that I wouldn't lost all of that time.15:38
RobOakesI guess I should try and convert it locally, then try and push the resulting branch.15:40
PengFor what it's worth, you can push part of it at a time, e.g. "bzr push -r 500; bzr push -r 1000; ..."15:40
PengThat way it'll be less catastrophic if it fails.15:40
RobOakesOh, that's a really good idea.  Thanks, I didn't realize ou could do that.15:41
RobOakes(Still painfully new to Bazaar, but I really like it so far.  And the GUI released last month is *awesome*)15:41
=== salgado is now known as salgado-lunch
vilajam: damn, collateral failing test :-/15:44
jamvila: need help?15:45
vilajam: I think I understand the problem and know the solution, the needed help is more in the teddy bear area :)15:45
jelmer???15:46
jamwell, cuddle up, and let Teddy know what you need15:46
vilaSo, on path conflicts, when one side delete the item and the other rename it, the bug was that you couldn't do --take-other, the file-id was gone and the item too15:47
vilaso I fixed that by leaving .OTHER item (resp .THIS when sides are reverted) and just version that when --take-other is involved15:47
vilabut now, there is one failing test because for *files* we appear to create 2 conflicts in that case, one path conflict and one content conflict and now both want to create a .OTHER file15:48
vilaThe solution seems to be to *not* create a path conflict for files...15:49
jamvila: so for files, we would probably have only 1 conflict if they didn't actually change the content, but just deleted (vs rename), however you can certainly have renamed + modified vs deleted15:49
jamhowever, if both sides rename a file15:49
jamthat certainly should be a *path* conflict, regardless the content of the file15:49
jamright?15:49
jamtbh, I'm not sure why a path conflict needs a .OTHER file, versus just having the file_id around in the conflict list15:50
vilaas soon as you have a deletion I'm pretty sure a content conflict is created15:50
vilathis sounds more in line with what we do elsewhere, that way, if the user modifies it, that's taken into account15:51
vilaDoesn't make a lot of sense for dirs, but for symlinks it does15:52
vilaAlso, creating several conflicts for the same file-id/path raises many UI issues: what if the user resolve one ? Should the other be resolved at the same time ?15:55
jamvila: http://paste.ubuntu.com/391853/15:55
vilaThe failing test above just exhibit another aspect: helpers for several conflicts on the same path15:55
jamonly a path conflict15:55
jamyou only get contents conflict if there was a modification vs a deletion15:56
jamso helpers for multiple conflicts is problematic15:56
jambut that doesn't mean there *aren't* multiple conflicts15:56
jamrename + mod can conflict with a different rename + mod15:56
jamit is a bit problematic, but i think we need to present both problems15:57
vilaright, so my fix is incorrect :-/15:57
vilahmm15:57
vilaAnd I still haven't all the needed tests for all conflicts to cover my decisions :-/15:58
vilaAt least with the ones I've added the problems become more apparent15:58
vilajam: So, another possible fix is to use a different suffix than OTHER...15:59
jamso why do you need .OTHER?15:59
vilaor no helper at all..15:59
jam(or .THIS)15:59
jamwhy can't the helper say "oh in that tree it had content X, lets restore it"16:00
jamwell "content X at path Y"16:00
jamit *feels* like the problem is that the Conflict record doesn't include enough information for you16:00
jamwhy not fix it there16:00
jamoh, and of course we need to see what happens with older clients in these circumstances16:01
vilaha ! Because I don't want to break backward compatibility *now* ? :)16:01
jamvila: isn't adding .OTHER going to break it a bit?16:01
jam(if you don't version the file, then you don't know its file_id anyway)16:02
jamif you have a path, then you can use other_tree.path2id() to get the file_id16:02
vilait breaks one test, but I handled file-id None to detect older conflict objects16:02
jamif you don't have a path or a file_id, how do you know there is a problem...16:02
vilajam: hehe, for the later, I discover the problem by adding a tests dir_deleted, dir_renamed and realized I hadn't enough info to resolve it cleanly16:03
vilahence I filed bug #53196716:03
ubottuLaunchpad bug 531967 in bzr "bzr resolve --take-this or --take-other fails for PathConflict if a dir is deleted" [High,Confirmed] https://launchpad.net/bugs/53196716:03
vilasynchronicity....16:05
vilajam: so without the helpers, I have to find back the right revision tree by iterating tree.get_parent_ids(),16:07
vilaI'm a bit worried about what could happen if there are more than two parents...16:07
jamvila: you are pretty far off in edge-case land16:07
jamI wouldn't worry too much about perfect resolution for a missing directory after merging a 2nd parent16:08
jam(having to use --force)16:08
jamvila: besides, what does '--take-other' really mean if you have multiple OTHERs?16:08
jamwhat if the conflict was that parent 2 conflicted with parent 316:08
vilait means the other at the time of the conflict generation16:08
jamtbh, I would rather not trust the actual content of a file on disk16:09
jamrather than grabbing in from the repo16:09
vilaso for THIS, the rparent is the first one, no problem16:09
vilaright, but we are resolving anyway, not committing yet16:09
jamecho new content > foo.OTHER, #oops, bzr resolve --take-other16:10
vilabzr remerge foo16:10
jamin my undereducated opinion, relying on crums being left in the working tree isn't a great way forward16:11
jamcrumbs16:11
jamit could work16:11
jamand don't let the best prevent better16:11
jamjust doesn't feel ideal16:12
vilaok, I'll go the no-helper route and see16:12
jamvila: I certainly feel that you've gotten more exposure to this area. So if you feel strongly, don't let me overrule you16:12
vilaon this particular point no, outside view is good, I ran into too many bumps to get there to trust my final solution16:13
vilaas being the most.... appropriate instead of ad-hoc :)16:13
vilaI had the feeling that resolve actions had to remain simple, but this delete stuff may just be the exception for good reasons16:14
jamvila: it is possible that we don't want a helper, but I also get the feeling that this is the sort of place where people will be the most confused16:15
jampartially because our ContentsConflict sort of sucks16:15
jamit doesn't tell you "conflict because you modified X and X was deleted"16:15
jamit just says "conflict"16:15
jamThis came up when I was fixing some of the per-file graph issues for mysql16:16
vilayeah, that's part of what I want to address, I just get diverted by this bug16:16
jamnot only did we have invalid conflicts, they told users basically nothing16:16
jamI worked on the former16:16
jamvila: oh, and you've probably already spent more than enough time on it ,given its chance to occur, etc.16:17
vilayet, I wonder if this bug is not a cause of multiple adds: "Oh, my file is gone, let's bzr add it again"16:17
jamfinding a resolution would be nice, but don't let it block you too much16:17
jamat least, IMO, this could be an XFAIL case16:19
vila yeah, I partly blame 'test after' being harder and taking more time than 'test before' :-P16:19
jami still do a bit of both16:20
jamespecially when exploring an area16:20
jamas I don't really know what I want to test before I get there16:21
=== IslandUsurper is now known as IslandUsurperAFK
emmajanejml, ping?16:44
emmajanejml, define "hanging"?16:44
emmajanejml, your site is created...16:44
jmlemmajane, w/ Chrome, nothing happens after the submit button changes to "Creating..."16:48
jmlemmajane, works fine on firefox16:48
emmajanejml, *nod* thanks.16:48
emmajanejml, We think it may be an issue with the way webkit handles button disabling.16:48
emmajanethanks. :)16:49
jmlemmajane, my pleasure.16:49
emmajanejml, I owe you a bug sometime. ;)16:49
emmajaneno wait. Beer. I owe you a beer. ;)16:49
jmlemmajane, :D16:49
=== salgado-lunch is now known as salgado
emmajanegah. You and your blacked out faces on twitter. /me was too quick on the reply, jml :)16:55
jmlemmajane, I need more time16:57
emmajanegenerally in the world?16:57
jmlto do things like change avatars16:59
jmlmove my blog off blogspot16:59
jmlcome up with a new theme16:59
emmajanejml, ah yes.17:00
emmajanejml "personal branding" time?17:01
jmlemmajane, yeah, that.17:01
emmajanejml, If you figure out where that time comes from, can you let me know? I could do with some of it too.17:02
jmlemmajane, will do.17:02
emmajanejml, ta :)17:03
emmajaneok. lunch time.17:03
vilajam: meh, from a tree treansform, I get a DirStateRevisionTree for one parent tree but I can't get my hands on a deleted entry as it appears to be blocked by the dirstate one:17:21
vila[('a', '', 0L, 0, ''), ('a', '', 0L, 0, ''), ('d', '', 0L, 0, 'other')]17:21
vilajam: I want the 'd' in the third tuple ('other'), I get the 'a' in the second tuple17:22
vilajam: id2path and path2id give the expected results... is that a bug ?17:25
jamvila: it is certainly possible there is a DSRT bug17:26
jamare you sure you have the tree for the third parent?17:26
vila'other' is the expected revid, and id2path/path2id are correct for my file-id (i.e. it exists)17:27
vilawhat do you mean by third ?17:27
jamwhat does DSRT._get_parent_index() return17:28
vila217:28
vilameh17:28
jamso I think it is "working, basis, merge_parent"17:28
jamas for the indexes17:28
jamI'm trying to understand what you mean by "deleted entry" are you trying to "_get_entry()" ?17:29
jamor Inventory[file_id] or ?17:29
vilaI got it from: tt._tree.get_parent_ids()[-1]17:29
vilaI got the DRST tree that is17:29
jamvila: you wouldn't get a tree from 'get_parent_ids()'17:29
jamyou mean "_tree.revision_tree(tree.get_parent_ids()[-1])" ?17:30
jamregardless17:30
vilayeah, right, sry, tt._tree.revision_tree(revid)17:30
vilayeah17:30
jamI still don't know what you mean by "I can't get my hands on a deleted entry"17:30
jamwhat is "entry"17:30
vilaself._get_entry(file_id=file_id)[1]17:30
jamvila: doesn't that need to be [2] ?17:31
vilaas used in kind()17:31
jamor more accurately17:31
jam[_get_parent_index()]17:31
=== IslandUsurperAFK is now known as IslandUsurper
jamspecifically, _get_entry(...)[1] is getting the value in the *basis* tree, IIRC17:31
jammaybe I'm thinking wrong17:32
jamjust a sec17:32
jamunfortunately, there are multiple _get_entry() possibilities :(17:32
jamoh, and why are you using that anyway ?17:32
jamcertainly you shouldn't be doing "tree._get_entry()"17:33
vilahttp://paste.ubuntu.com/391926 for context17:33
vilajam: because it's called by transform.create_from_tree17:33
vilawhich I use to restore the old content17:33
jamso, I'm pretty sure DSRT.kind is broken, but I don't have proof yet17:34
jamlooking at it, I'm pretty sure that _dirstate._get_entry()  is supposed to return the row for that record17:34
jamfor the tree specified, but it includes all records17:35
jamit will take a bit to explain17:35
jamDirState._get_entry(tree_index)17:35
jamreturns a record17:35
jamfor the file_id + path that matches in the given index17:35
jamwell, parent 'offset'17:35
jamhowever, that record should include the info for *each* parent17:36
jamand the issue is that entry[1][0] is going to always return the kind in the WT17:36
jamI think it should be17:36
jamhttp://paste.ubuntu.com/391931/17:37
jamthis is one of the major problems using tuples + lists as your data structure17:37
jamI really need to drop into pdb to know for sure17:37
vilajam: that seems correct, using 2 instead of 1 makes the mirror test fail,17:39
vilausing _get_parent_index make both tests succeed17:39
jamrows in dirstate17:40
jamare stored using17:40
jam(dirpath, name, file_id) keys17:41
jamso the lookup returns the row matching that for the given tree17:41
jambut the 'value' is the whole role for all records17:41
jamso a renamed object shows up in 2 rows17:41
jamwith an 'r' record in certain columns17:41
vilajam: should I file a specific bug ?17:42
vilaerr17:42
jamlooks like a bug to me17:43
vilawhat could be the consequences in your opinion ?17:43
jamTree.kind() returning the wrong value for objects which change kind17:43
jamhowever, note that we don't really use Tree.revision_tree() for anything other that Tree.basis_tree()17:43
jam*today*17:43
jamother than17:44
jamAnd we are planning on getting rid of the extra parent trees being cached in the Dirstate file in the next dirstate revision17:44
vilawell, except for merge, revert and friends no ?17:44
jamnope17:44
jammerge + revert only care about the basis tree17:45
jamgenerally17:45
jamwell, your new revert starts caring about other trees17:45
vilaoh, because they use trees that aren't cached in the dirstate so they get correct ones ?17:45
jamnew *resolve*17:45
jamvila: right, the tree cached in the dirstate is currently not 100% correct for objects that aren't the basis tree17:45
jambut they aren't really used :)17:45
jambut for merge, that tree isn't in the dirstate yet17:46
vilayup17:46
vilaand wasn't when I use that code to create the helpers :)17:46
jam(note, I think the data stored is correct, but obviously we have a bug)17:46
jamwe basically decided that caching parent>basis is not wortwhile17:47
jam!=basis17:47
vilahehe, I knew I was in a mine-field I just didn't realized how big it was :)17:47
jamwe should have fast enough access to RevisionTrees in chk formats17:47
vilasure17:47
jamand we don't really need it for *status*17:47
jamthe only place it would have been a win is for 'commit.record_iter_changes()' after a merge17:48
jambut IIRC we solved that without using a multi-way iter_changes17:48
jamwe had *thought* we wanted iter_changes against multiple parents, but we never implmeneted it17:48
jamthus we have cruft that we never use17:48
jamand is scheduled for removal :)17:49
jamexcept now *you* are trying to use it :)17:49
jamit is very useful for *basis* because we want to compare working vs basis often, and do it based on path17:49
jamfor the rest, we tend to compare based on file_id anyway17:49
jamand RevisionTree does that well17:49
vilajam: well, I don't use it explicitly I just ask for a revision tree from a working tree :)17:50
jamvila: that will raise NoSuchRevision if it isn't present17:50
vilaI don't care whether it's cached or not (yet and may be never)17:50
jamlong discussion a while ago17:50
vilain the DRST ?17:51
jamin WT417:51
vilaArgh, should I go to the repo instead ?17:51
jamhttp://paste.ubuntu.com/391940/ line 1017:51
jamso... if you are going to be going to the basis tree, I'd use WT.basis_tree()17:51
jamotherwise, *I* would go to the repo17:51
jambut certainly file a bug17:52
vilaok, I'll fix that then, not worth leaving such a controversial code in place17:52
jamprob high priority, except we've had that bug for a long time, and nobody has hit it :)17:52
vilaI'll do17:52
vilawell, we have the fix...17:52
jambut we need a test, etc17:53
jamand it shows test coverage holes17:53
jamthat we don't have tests against a DSRT that isn't the basis, etc17:53
jam(should be a tree_impl test)17:53
jametc17:54
jamand all of that probably isn't worth your time17:54
jamespec at 8pm17:54
jam:)17:54
vila7pm but I'm EODing anyway17:54
jamwell, I figured by the time you actually wound down...17:55
jamas for "needs a test"17:55
jamit doesn't really17:55
jamit *should* have one, but it is clearly broken17:55
jamand I'd rather have it fixed than tested17:55
jamvila: Probably worth a tiny amount of time to add a test, but prob also a fair amount of work to get it covered properly.17:56
vilajam: I'm pasting that discussion in the code and look at it tomorrow first thing17:56
jamk17:57
vilathe test are passing again so I have a better fix for #531967 anyway17:57
vilaI'll go with the repo for the final version and address the DRST bug in parallel17:57
vilajam: thanks again17:58
jamk17:58
jamvila: I'm glad you're working on it, shame to uncover so many chained bugs17:58
vilajam: but the more bugs I uncovered the more confident I became, that's the good side of the story,18:00
vilaI'm pretty sure I've run into some others without realizing it in some explorations I did for this fix18:01
vila...or not, TT are not obvious, sometimes they are really painful to use, sometimes they just magically works very simply...18:02
=== radoe_ is now known as radoe
lifelessmoin19:05
codygmanwould it be recommended to make an svn of my entire website?19:55
Kohlrabino, a bzr :)19:57
JFohow would I list any uncommitted changes for perusal?20:19
JFoso that I can see them in a terminal20:19
IslandUsurperbzr status20:25
IslandUsurperbzr diff20:25
IslandUsurperJFo, ^^20:25
JFothanks much IslandUsurper20:26
IslandUsurper"bzr help commands" is your friend :)20:26
jpdsJFo: I like bzr commit --show-diff too.20:46
JFothanks jpds20:46
JFoI'll check that out20:46
pooliehi there21:13
dvheumenhi21:13
pooliehello dvheumen21:13
dvheumenthat's a coincidence, I just got here :)21:13
pooliehow did you go with the tests?21:13
dvheumenI finished up a test that  I think it's decent enough21:14
dvheumenI've pushed the branch, so you can have a look if you're interested21:14
dvheumenhttps://code.launchpad.net/~danny.vanheumen/bzr/bug-498409-bzr-revert-takes-a-branch-lock21:14
=== beuno-afk is now known as beuno
pooliesure21:16
poolieyou can propose a merge if you think it's ok21:16
dvheumenI was thinking of waiting until the higher level test is complete too21:18
dvheumenand I've got a question about the merge process actually21:18
poolie?21:19
pooliesure, what is it?21:19
dvheumenI started with this patch on the 2.0 branch, with the idea that it could be merged with earlier branches if needed21:19
poolieright21:19
dvheumenbut just out of curiosity I tried to merge with bzr.dev, and this 1 line fix actually conflicts :P21:20
dvheumenso how do you go about if I would propose this branch for merging and it's actually conflicting. Because if I would merge changes between 2.0 and 2.2, then it wouldn't be suitable for merging in 2.0 anymore21:21
pooliejust propose it to 2.021:21
dvheumennot that I want it too or so, I'm just curious how you would approach this thing :P21:21
poolieand whoever eventually merges it to bzr.dev will fix the conflicts21:21
pooliethey're probably just mechanical not conceptual conflicts21:21
poolieif you wanted to do it yourself21:21
pooliemake a separate branch off bzr.dev, merge your thing, fix the conflicts, then propose that for bzr.dev21:21
pooliebut it's not really worth it because we regularly merge all of 2.0->2.1->trunk anyhow21:22
poolieso it will happen implicitly21:22
pooliehowever21:22
dvheumenokay21:22
pooliethis approach might be good if eg you want to write the tests in a really different way in trunk if for example there was better infrastructure there21:22
dutchieis there anything like "git grep" for searching for content in past revisions?21:23
pooliehttps://launchpad.net/bzr-search21:23
pooliedutchie: ^^21:23
lifelessmorning poolie21:23
dvheumenhey lifeless21:23
lifelesshi dvheumen21:23
dvheumenlifeless, can you give me a hint for those higher level locking hooks? so I can have a look at those21:25
lifelessdvheumen: well they don't exist; I was saying we could write them21:25
dvheumenah okay, that's fine too. But in that case it'll probably be a different branch, so I'll propose the current one for merge21:26
lifelessyup21:28
lifelessI need new shorts. Just saying.21:29
poolie!21:29
dvheumenhehe, luckily no web cam support for IRC :P21:30
lifelessthread at the bottom is unwinding, tickling the back of my legs :)21:30
dvheumenlifeless, could you give an idea on what you have in mind? Maybe something like the lock helpers used in the per_branch locking tests?21:34
lifelessdvheumen: something like the lock.Lock.hooks, but for objects-that-are-lockable rather than locks themselves.21:35
lifelessthere are a few shades of meaning here too -21:35
lifelesswrite locks21:35
lifelessread locks21:35
lifelesstree-only write locks21:35
lifelesscritical section locks (only taken as part of implementing some method)21:35
dvheumenyep, I get the idea, that sounds good21:36
lifelessTree objects, Branch object, Repository objects21:36
lifelessmaybe others.21:36
dvheumenlooking at those at the moment21:37
lifelessback shortly; grabbing subway :)21:38
dvheumenokay21:39
poolieigc, is there a good guide that answers https://answers.launchpad.net/bzr/+question/103773 about bzr and svn?21:48
dvheumenpoolie, thanks for your help. The branch is now proposed for merging into 2.0. I'm going to give the higher level lock hooks a try21:53
pooliecool, thanks22:01
poolieit may help if you add to testing.txt too22:01
pooliei saw you took my sample text yesterday22:01
poolieexplaining it to other test developers may help get the api nice22:01
pooliebtw i don't know if you saw on the list but we're going to have a sprint fairly near you in may22:02
pooliein Brussels22:02
dvheumenI did see that mail come by22:02
dvheumendo you think it'd be useful for me to have a look there?22:03
dvheumendon't get me wrong, it sounds interesting22:03
dvheumenbut I don't have that much experience with python and such ... on the other hand, ... it's in May, i may have learned a lot by then :P22:04
dvheumenis this sprint all week? 'cause I may come and visit one day22:07
dvheumenone day ==> a single day22:09
dvheumenpoolie, do you want me to put the additional information about testing in the same branch? and only some information about what I used, or also the part you proposed yesterday?22:31
pooliedvheumen: coming for one day would be fine, and yes, i think you'd find it fun/useful22:36
pooliedvheumen: if it's just a bit more documentation the same branch is fine22:37
slangasekI'm looking to extend bzr-email to support adding arbitrary extra headers to the outgoing mails, as specified in .bazaar/locations.conf22:37
dvheumenokay, I'll do that22:37
slangasek(required for integration with the Debian PTS)22:37
slangasekis there a convention for multiline values in locations.conf that I should be following?22:38
slangasek(since ideally, this should support adding more than one header...)22:39
james_wslangasek: python-configobj is used to parse it, so the documentation of that may provide some clues22:42
slangasekjames_w: looking, thanks22:43
slangasekoh, haha, it uses """ to mark multiline values :)22:47
lifelessslangasek: as james_w says :)22:51
lifelessslangasek: you could encode something differently if you wanted, but I'd go with the config obj standard by default22:51
slangasekindeed22:51
slangasekI just didn't know what the standard was - now I do :)22:51
slangasekthough, I see it also supports a list syntax; maybe that would be more idiomatic than making it a multiline variable and split()ing in my code..22:52
lifelesswell, what are you doing22:53
slangasekadding a new 'post_commit_headers' option that can contain one or more headers to be added when sending the mail22:53
lifelessplease don't call it post_commit22:53
lifelessas bzr-email also does emails on push and pull and so on22:54
lifelessrevision_mail_headers22:54
lifelessslangasek: what will be in these headers.22:54
slangasekthat seems to be inconsistent with all the other options currently used?22:54
slangaseklifeless: whatever one specifies in the config22:54
lifelessslangasek: yes, but what will be in the settings someone usng it with debian PTS sets22:54
slangasekpost_commit_to, post_commit_mailer, post_commit_push_pull...22:55
lifelessslangasek: its different yes22:55
slangaseklifeless: X-PTS-Approved: 122:55
lifelessslangasek: that the old ones are misleading/confusing is not a good reason to make new ones the same.22:55
jelmerlifeless: and whose fault is that ? :-P22:56
lifelessmine22:56
lifelesswhich is why I get to say the name for the new ones ;)22:56
slangasekheh22:56
poolielifeless https://bugs.edge.launchpad.net/malone/+bug/535390 would have saved me embarrassment :/22:57
ubottuLaunchpad bug 535390 in malone "show duplicate status changes inline on page" [Undecided,New]22:57
slangaseklifeless: so when will the other variable names be fixed?22:57
lifelessslangasek: possibly never, though we could add aliases to look up better names and fallback.22:57
lifelessslangasek: so, X-PTS-Approved:1 - thats all ?22:58
lifelessslangasek: would it make sense to have that added by bzr-builddeb ?22:58
lifelesspoolie: heh, and me some enamel :P22:59
slangasekwell, IMHO, it's worse to have 3 vars using the old scheme and 1 using the new scheme than to have 4 using the old naming scheme - more misleading, but less confusing to users trying to navigate from scratch23:00
slangaseklifeless: bzr-builddeb> hum, how would it add it?23:00
lifelessslangasek: the names are only discoverable by docs anyway, so I don't think it makes any odds there. Nevertheless, if you want to write it the same, thats fine.... I can change when I merge it to trunk.23:00
slangasekdo you think it's not generally useful to let users add headers?23:00
lifelessslangasek: I'm fine with the feature; I'm speculating that we can do a better job for this use case than manually setting a variable based on the branch URL.23:01
lifelessslangasek: but I can't really think about it as you haven't opened up much about the project/logic23:01
lifeless:)23:01
slangasekmy use case is that, when pushing to a particular branch, I want emails to be sent to the PTS (using the special address that triggers the PTS 'cvs' keyword for the package)23:03
lifelessok23:03
slangasekto send mail there, you either have to send the mail from a debian.org machine, or use the s3kr1t X-PTS-Approved header23:03
lifelessand should these replace or be done in parallel normal notification mails for the branch ?23:03
lifeless                                                            ^to23:04
slangasekand I don't see a way to have a mail hook run on the server side when pushing to the repo, so I'm configuring this all client-side23:04
slangaseklifeless: what normal notification mails?  the ones generated by bzr-email?23:04
lifelessright23:04
slangasekit's one and the same23:05
spivGood morning.23:05
slangasek[bzr+ssh://bzr.debian.org/bzr/pkg-samba]23:05
slangasekemail = Steve Langasek <vorlon@debian.org>23:05
slangasekpost_commit_to = samba_cvs@packages.qa.debian.org23:05
slangasekpost_commit_mailer = smtplib23:05
slangasekpost_commit_push_pull=True23:05
slangasekpost_commit_headers=X-PTS-Approved: 123:05
lifelessslangasek: yes, but is that byb design or ease-of-doing-this23:05
lifelessslangasek: do you have skype?23:06
slangasekno, sorry23:06
slangasekis what part by design?23:06
slangasekI have bzr-email installed for precisely this23:06
lifelessa regular phone? I'd like a little more bandwidth to clarify this, then I can switch focus23:06
slangaseksure, sec23:06
dorinsHi all. When I 'bzr pull' from a svn branch I get garbage in a specific revion that gets pulled. 'bzr pull' doesn't report any errors and 'bzr check' doesn't find any problems either.23:11
igcmorning23:13
dorinsI'd report a bug but I don't know what info I could attach to the bug report. Is there any documentation on how to report a bug?23:13
dorinsI can reproduce the issue, but I'm not sure how to get bzr to output debug info while I reproduce it so that I could attach it to the bug report23:16
=== dutchie_ is now known as dutchie
igcpoolie: I'm yet to file that RT ticket. I'm happy to do it though I'm not sure exactly what to ask for23:27
igcpoolie: is installing on escudero enough? Or does it need to go into a chroot as well?23:28
poolieon phone23:28
poolieprobably needs to be in the chroot on escudero23:28
pooliebecause hardy may be too old23:28
igcpoolie: hardy looks ok fwiw: http://packages.ubuntu.com/hardy/python-feedparser23:30
wgrantpoolie: That bug isn't about pushing a new branch. It's about pushing a new revision to an existing stacked branch.23:30
jelmer'evening igc, poolie, wgrant23:30
igchi jelmer23:30
wgrantMorning jelmer, poolie, igc.23:30
jelmeris there any chance either of you could review https://code.edge.launchpad.net/~jelmer/bzr/remote-addinvdelta/+merge/20846 ? I've got one "approve" vote already, but from somebody is not a reviewer23:31
* slangasek seconds jelmer's request23:31
slangasekfix my git-import, plz :)23:31

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