/srv/irclogs.ubuntu.com/2011/06/08/#bzr.txt

* jelmer waves00:16
mwhudsonjelmer: hi00:24
mwhudsonjelmer: will the new bzr-hg improve memory behaviour at all for imports?00:25
jelmermwhudson: somewhat - fetching in batches will limit the memory usage somewhat00:25
mwhudsonjelmer: ok, so it'll be worth retrying the python import, for example?00:26
jelmermwhudson, but we're still keeping the entire bundle we receive from the mercurial server in memory at the moment00:26
mwhudsonah00:26
jelmermwhudson, are there any particular ones for which memory usage is an issue at the moment?00:27
mwhudsonjelmer: dunno, i just saw a bug report update go by00:27
mwhudsonhttps://answers.launchpad.net/launchpad/+question/16030500:27
mwhudsonjelmer: you'll be surprised to learn that the OO.org import is reported as having issues00:28
jelmerah, openoffice00:28
mwhudsonbut also python00:28
mwhudsonwhich is a bit less ridiculous i guess00:29
jelmerI hope it'll be better with the rollout00:30
mgzjelmer, for bug 788219 is what apport has duped it to what you were thinking of?00:53
ubot5Launchpad bug 788219 in bzr (Ubuntu) "bzr crashed with IOError in get_password() (dup-of: 534326)" [Undecided,New] https://launchpad.net/bugs/78821900:53
ubot5Launchpad bug 534326 in Bazaar GTK+ Frontends "bzr: ERROR: gnomekeyring.IOError:" [Medium,Fix released] https://launchpad.net/bugs/53432600:53
jelmermgz, no, those are definitely different issues00:54
mgzbecause that's still a bzr-gtk bug and the guy doesn't have bzr-gtk installed00:54
jelmerthey're both caused by gnomekeyring, but one is when it's used through launchpadlib and one when it's used through bzr-gtk00:54
jelmerthey both have to handle IOError00:55
jelmermgz, unduped - thanks!00:55
mgzcan you find the launchpadlib bug? I didn't find it when I tried.00:55
mgzI don't know what to do about bug 79183901:04
ubot5Launchpad bug 791839 in bzr (Ubuntu) "bzr: ERROR: exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte ..ordinal not in range " [Undecided,New] https://launchpad.net/bugs/79183901:04
mgzas reported it's a dupe.01:04
pooliejelmer: i think i've hit that too01:04
pooliethe ioerror01:05
mgzI don't see what's wrong with Fabien's statement that etckeeper should use git.01:05
pooliei'm also experiencing lplib corrupting the credentials it stores in the keyring, which is a separate unrelated bug01:05
mgzbzr plain doesn't work on nix without LANG set and obeyed.01:05
poolieprobably it would be better to assume the filesystem is utf-8 if it's not set01:06
pooliewell, there are a couple of cases here01:07
poolie- the filename is just not in any valid encoding, or it's inconsistent with other files in the same tree01:07
mgzhe's got random junk cert names.01:07
pooliewhich is an inherently hard case for us01:07
mgzeven without the traceback from bzr we won't commit the file.01:07
pooliethe other01:07
poolieis that the encoding is not set or not set properly01:07
pooliewhich is pretty much what you say in https://bugs.launchpad.net/bzr/+bug/715547/comments/701:08
ubot5Ubuntu bug 715547 in Bazaar ""bzr add" crashed ERROR: exceptions.UnicodeDecodeError" [Medium,Confirmed]01:08
pooliemgz: are you sure they're not utf-8?01:09
poolieif they came from an ubuntu package and they're not utf8, that sounds a bit like a bug in that package01:09
mgzthey could be, but there's no reason to expect all programs writing to /etc to behave01:09
mgzand having your backup randomly fall over in that case is... a hard behaviour to argue for01:10
poolieso01:10
mgzwereas falling over fast is generally the right thing for a manually curated source tree01:10
pooliei think we should group/dupe the bugs into those two splits01:10
poolieplus any others for accidental cases where we know the right encoding but just do the wrong thing01:11
pooliewhat do you think?01:11
mgzseems reasonable. we've had various symptom bugs for these problems in the past than have been fixed, regressed, and so on01:12
pooliei think "assume utf-8" should be feasible to do and by my recollection of the bugs reported it will fix somewhere well over half of them01:12
poolielike it seems like it will fix this case01:13
poolie"i want to version names with just random byte strings" might be harder01:13
pooliehm01:13
poolieif people really want that they could set their fs encoding to say 8859-1, which will accept anything and send it to equally arbitrary utf-801:14
mgzthat's true.01:14
pooliei wonder how hard it is to persuade python to use an fsenc other than what it originally detected?01:15
pooliedo you want to reorganize them or shall i?01:19
mgzchanging it would be somewhat dodgy, comes from a global variable set during initialise that lots of things depend on01:23
pooliewe//01:23
mgz^go ahead, I think we shouldn't have too many open bugs for the same thing, maybe just want a new one for changing the default01:23
pooliei think at least having a bug saying "we want this behaviour"01:23
mgzyup.01:24
pooliethen we can see if it's too hacky to actually get it01:24
poolieas a matter of (fairly) objective fact, the right fs name encoding is utf-801:24
mgzour uses probably, or at least should, all go through osutils anyway?01:24
poolieeither do, or can be made too01:26
poolies//to01:26
pooliepossibly we can get around it by always passing byte strings01:26
pooliein the very worst case we can reimplement some os interfaces01:27
=== r0bby is now known as robbyoconnor
poolieo/ spiv04:22
spivHey poolie05:44
pooliehi spiv06:35
=== hunger_ is now known as hunger
pooliespiv, still here?07:36
pooliei'm trying to fix the lp-propose lazr.restfulclient bug07:36
pooliefor some reason python insists on loading the OS version of that library even though i have another one on my pythonpath...07:37
poolieoh, maybe because it imports lazr.somethingelse07:40
spivMaybe the lazr.* packages have funky .pth files or something?07:41
poolie!07:42
poolie:qa07:42
poolieheh07:43
poolie/usr/lib/python2.6/dist-packages/lazr.restfulclient-0.9.20-nspkg.pth07:43
poolieblah07:43
poolieimport sys,types,os; p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('lazr',)); ie = os.path.exists(os.         path.join(p,'__init__.py')); m = not ie and sys.modules.setdefault('lazr',types.ModuleType('lazr')); mp = (m or          []) and m.__dict__.setdefault('__path__',[]); (p not in mp) and mp.append(p)07:43
poolieall on one line07:43
fullermdHrm.  Should bzr really check URL's before filenames?07:44
pooliefullermd: well, URLs are a strict superset of filenames07:44
fullermdNot when they fail   :p07:45
poolieby which i mean, any filename can be represented as aurl but not vice versa07:45
pooliebut, we can use sensible heuristics if it's bad07:45
fullermd% bzr diff 2001:470:8:7f607:45
fullermdbzr: ERROR: Unsupported protocol for url "2001:470:8:7f6"07:45
poolieright07:45
poolie./2001... should fix it07:45
jammorning all07:46
fullermdYeah, it's trivial to workaround.  But annoying.07:46
vilahey guys !07:46
fullermdChecking the other way around...  well, I guess it would make your life really unpleasant if you had a file called 'lp:bzr' in your tree, but...07:46
pooliefullermd: i guess we could say "if there's no such scheme, assume it's a file"07:47
pooliethat could work07:47
fullermdFile a bug?07:47
pooliespiv: yes i think that's it: so just having this module installed looks ilke it will always be loaded?07:47
mgzfullermd wants to break bazaar on alternative data streams in a new and interesting way?07:50
mgznice systems don't let people put colons in filenames :)07:50
fullermdWell, I've for sure never advocated breaking things in old and boring ways.  I've got style, dangit.07:50
poolie:)07:50
fullermdI store important data in files called '%s', just to be sure they're not used in format strings.07:51
mgzehehe07:52
pooliewow that's a precious snowflake07:54
pooliei did not realize you could run arbitrary code from there07:54
fullermdThere are more things in heaven and on earth than are hacked apart in your philosophy   ;)07:55
vilapoolie: Regarding lp:~mbp/bzr/220464-stale-locks , is there some pending points you want to address or can it be landed ?07:55
poolie>  Lines starting with import (followed by space or tab) are executed.07:56
poolievila, hi07:56
pooliei haven't fixed the pqm failure yet07:56
vilapoolie: ISTM this is already landable and the proposal is already > 900 lines07:56
vilaha, ok07:56
mgzpoolie, I've got one more change in my copy of the branch, I didn't remove the win32 test skip07:56
mgzwhat was the pqm failure? it didn't get pasted to the mp07:57
spivpoolie: yes, it's a great way to do cool/surprising things :/07:57
mgzpth files are evil.07:57
vilapoolie: also, AIUI, this is now restricted to the same user so you may want to update the news entry07:58
pooliegood point07:58
mgzokay, pushed, lp:~gz/bzr/220464-stale-locks07:59
spivPresumably there's a convention for co-operating nicely with namespace packages like that for when you're developing your own version of a module in that namespace, but I'm not sure what it is.07:59
pooliehthanks07:59
vilapoolie: python2.6 ? Aren't you running natty ?08:00
pooliei am, but that was from a clean maverick chroot08:00
poolieto see if it's something strange on my main system08:00
pooliethe same problem occurs there08:00
vilaha ok08:01
poolieok i'll leave this and finish 22046408:04
jampoolie: where do you think you're at with the stale lock thing08:09
jamI feel like we've discussed it to exhaustion, without actually reaching consensus08:09
vilajam: really ? Did you read the last version on the proposal on lp ?08:11
jamvila: did you read the discussions between robert, martin and myself?08:11
vilayes08:12
mgzapart from esoteric things about people using funny network share setups with computers all named the same thing the issues look resolved to me08:12
vilaif there are still controversial points on these cases then I think tests are better than discussion to break the ties08:12
jammgz: except it doesn't seem all that esoteric ime. Specifically if you install ubuntu from live install, it always calls the machine "ubuntu"08:13
mgzbut would you really mount a filesystem on another such system remotely?08:13
jammgz: sftp://08:14
vilasftp://ubuntu ?08:14
jamvila: sftp://bazaar.launchpad.net/my/project/branch08:14
jampoolie's proposal breaks *remote* locks that look like they were held by the local machine08:14
jamwhich has some nice bits08:14
jamlike "bzr push sftp://... ^C bzr push" will work08:15
jamrather than warning you about the stale lock from the previous push08:15
vilaright, my point is that writing tests for that will make the actual and intended behaviors clearer08:16
jammgz: it has some problematic bits that if your machine is configured oddly, you can overwrite critical data.08:17
jamI'm trying to weigh the balance in my head08:17
jamsince as poolie points out, breaking locks by hand can be just as risky08:17
vilaand since the proposal is already 945 lines long it should either be landed or split or all discussions become more complex and progress harder08:17
vilaAIUI the only case where we can override/lose data is for the repo lock08:18
vilain this case, the .pack ..ix files should still exist and we can think about ways to recover them but this is out of scope for this proposal08:19
vilaalso, this lock is short-lived to just pausing a bit may be enough to detect a stale lock, but I'd rather look at this kind of change in a smaller proposal08:20
vilas/to just/so just/08:20
jamvila: we lose data from .conf overrwrites and a branch lock08:20
jamwe lose master bound branch integrity from branch locks08:20
jamwe lose a few other things.08:20
jamnothing I would say is "super critical", but it *is* data loss08:20
jam(my bound branch commit can succeed, and in the end master doesn't point at my revision.)08:21
jamvila: so the *critical* case is repo locking, but there are minor cases elsewhere08:21
vilathen back to tests, if these scenarios are worrying enough, they should be covered no ?08:22
jamI'm pretty sure I'm falling on, "this is a net gain so we should land it", but I don't feel it is cut-and-dry08:22
jamvila: we can add tests for concurrency issues. However, we have to decide if we care if they fail08:22
jamvila: the current proposal will fail under esoteric conditions08:22
jamis that ok?08:22
jamI certainly can write a test that proves it.08:23
jamBut does that actually help us.08:23
vilaYes it does, it means a better ground for addressing it08:23
vilaIt kills the FUD :)08:23
jamvila: except the discussion is tending towards "that failure mode is ok"08:23
jamwhich means, we don't actually need the test08:24
jamand actually, we don't *want* the test, because it would fail08:24
jamvila: we know from the code and its behavior how it can fail. we are asking "is a this rare enough event that we don't need to worry about it"08:24
jamno FUD08:24
jamjust an open question08:24
jamwe don't have to always be perfect, and we have to determine the tradeoffs08:25
vilaI'm not saying you're propagating FUD, I'm saying you're a FUD victim here. To rescue you we should address your fear :)08:26
vilaor doubts08:26
jamvila: I can't test how often in-the-wild the esoteric conditions are met08:27
jamwhich is the fear08:27
jamI don't care about the test08:27
jamI need to know real-world-how-likely-is-this-to-fail08:27
jamI'm thinking it is low enough to go ahead.08:27
jamI *know* it fails in a particular way, I *don't* know how likely that way is.08:27
jamWe've had other cases where we made the tradeoff08:28
jamand people got bit by it.08:28
jamLike the "inventories during repack"08:28
jamI knew it was broken, but that "bzr pack" fixed it.08:28
jamPeople have hit it, and we decided that wasn't enough, so we spent more time to work on it.08:28
vilaBut isn't adding the user in the check enough to reduce the esoterism here ?08:29
jamvila: maybe, but the most likely cases for actually running into this is probably stuff like cron scripts08:29
jamI'm unlikely to race with myself08:30
jamwe ran into a lot of bugs from the twisted guys, where they had multiple bots pulling into the same repository.08:30
pooliehi jam08:31
jamhi poolie08:31
jampoolie: so I think what I'm leaning towards is: land it, but file a couple bugs about known failure cases.08:34
jamTo give us points to track if it happens in the wild.08:34
jamAnd especially a way to document known workarounds, etc.08:34
pooliei think so too08:38
pooliemm, except i'm against filing vague bugs08:38
pooliebut if we say "will hit trouble if you have two machines with the same hostname"08:39
poolieyou guys ready for a call in a `5m?08:44
poolie15*08:44
lifelessjamesh: poolie: FWIW, I would lean towards being conservative; our user base is large enough now that 'minor risk' tends towards 'will happen', I think.08:48
lifelesss/jamesh/jam/08:48
pooliemm08:48
lifelessbut, I say this from the peanut gallery; the call is yours.08:48
poolieperhaps we should downgrade it to just warning, and leave it up to the user to decide if they think it's probabyl dead?08:49
pooliethis may be a cop out08:49
poolieif they get it wrong anyhow08:49
lifelessthats what vim does, and it has a somewhat simpler problem to solve I tihnk08:50
pooliewhy simpler?08:50
lifelessno smart server08:52
lifelessjust filesystem08:52
lifelessperhaps its equivalent08:53
lifelessI wasn't claiming radically simpler problem08:53
jamlifeless: well, their lock is also a WAL, which allows them to "incorporate changes" which we don't provide08:53
vilajelmer: time to reboot :)08:56
poolieWAL?08:58
pooliewrite ahead log?08:58
jamright09:00
jamI don't know that it is strictly that09:00
jambut you can say "apply changes from the .swp file"09:00
jambefore you delete it09:00
pooliereally, "apply", not just loading the whole thing?09:02
jampoolie: I don't know the specifics. But I think the idea is that if the text file is really big, Vim doesn't write out the changes to the file all the time. But keeps a small "these are the edits" in the .swp file. I just know that one of the options on load is "delete" and another is "recover"09:06
pooliespiv, hi?09:08
pooliei think 'recover' is just 'load it' not 'merge the changes'09:08
poolieimbw09:08
jelmerRiddell: bug 74682209:53
ubot5Launchpad bug 746822 in Launchpad itself "fails to build recipe with "bzr: out of memory"" [High,Triaged] https://launchpad.net/bugs/74682209:53
apwanyone know what this might mean, when trying to bzr merge-package:09:58
apwNoSuchRevision: CHKInventoryRepository('file:///home/apw/local/bzr/tmpFFe1XH/upstream/.bzr/repository/') has no revision ('james.westby@ubuntu.com-20100820023033-dousm0xjfuraxtd7',)09:58
jelmerapw: merge-package apparently can't find a particular revision but it has a reference to it10:01
jelmerapw: it sounds like it might be a bug in bzr-builddeb or a broken repository10:03
apwjelmer, i can bzr checkout the url ok, just not merge it10:03
jelmerapw: does regular merge work?10:03
jelmerRiddell: bug 746822 seems to be the same issue as the recipe build running out of memory you mentioned10:04
ubot5Launchpad bug 746822 in Launchpad itself "fails to build recipe with "bzr: out of memory"" [High,Triaged] https://launchpad.net/bugs/74682210:04
Riddelljelmer: yep, not much extra information on it though10:04
apwjelmer, yet it would be mergable directly10:04
jelmervila: does 2.3.3 really address just a single bug (failUnless & co cause PendingDeprecationWarning) ?10:10
poolieif so, that does not seem worth SRUing10:11
poolieit's true natty has 2.7 and people might run the tests there, but, it's not crucial10:12
jelmerfwiw: 2.3.2 hasn't been SRU yet either and has more bugs (12)10:12
jelmerthough I'm surprised that we did a release just for the deprecation warning thing10:12
poolieah, that makes more sense10:12
pooliei think it just squeaked in between 2.3.2 being tagged, and being discarded10:13
poolieit was cancelled during the release process for some reason that i forget at the moment10:13
jelmerah, 2.3.2 was *that* release10:13
jelmerpoolie: thanks10:13
pooliewasn't it?10:13
poolieah the release page says10:13
poolie> This release broke the test suite under python-2.7 and the corresponding tarball has never been released.10:14
vilayup10:14
poolieso my fix makes it releasable10:14
vilayup and allowed the test suite to run which is part of the SRU AIUI10:14
vilawell, at least for recent series10:14
pooliemm10:15
pooliebut would it run against 2.7 on natty?10:15
poolieyes, it would, since 2.7 is the default10:15
pooliewell that's all good then10:15
vilaright, 2.3.2 was worth a SRU but couldn't released so I cut 2.3.3 since fixing the tag issue was not practical10:16
vilas/released/be released/10:16
poolieok10:23
poolieso the figurehead should be something from 2.3.2 probably10:24
maxb2.3.2 nominally doesn't exist, right?10:24
poolieright, see above10:25
poolieand good morning10:25
jelmerpoolie: what was the ecryptfs bug?11:13
pooliehttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/79336711:26
ubot5Ubuntu bug 793367 in linux (Ubuntu) "ecryptfs corruption during make -j" [Undecided,Fix committed]11:26
pooliei sent a mail11:30
poolieok that's enough for now11:30
jelmerpoolie: thanks11:31
fritz[]hi11:37
fritz[]I'm trying to help with this bug11:37
fritz[]https://bugs.launchpad.net/bzr/+bug/68052911:37
ubot5Ubuntu bug 680529 in Bazaar ""Lock was renamed into place, but now is missing"" [High,Confirmed]11:37
fritz[]can someone instruct me where to put sleep?11:37
jelmerhi fritz[]11:42
fritz[]hi11:42
pooliejelmer: that's great, thanks11:43
pooliefritz[]: basically in lockdir.py, just look for the 'lock was renamed into place' mesasge11:46
poolieput that in a 'for i in range(5):', try the check, and if it fails, sleep(3)11:46
fritz[]http://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev/view/head:/bzrlib/lockdir.py11:47
fritz[]from line11:47
fritz[]25111:47
fritz[]to11:47
fritz[]26211:47
fritz[]put that in for loop?11:47
pooliei would say only up to line 25511:48
pooliethen, if it doesn't find it11:48
poolieobviously you don't want to raise straight away, but only if the data is not found on any attempt11:49
pooliethanks very much for taclking this!11:49
poolieit seems to bite many people but it's hard to reproduce-11:49
fritz[]sure, no problem11:49
fritz[]I'll just take maseratti :)11:49
jamjelmer: so with bzr.dev "time bzr branch --stacked -Dmemory ...kde-workspace" only peaks at 150MB11:54
jamand takes 2.4min here11:54
jamthat is http:// explicitly11:55
jelmerjam: which bzr version is that?11:55
jambzr.dev11:56
jamI'm checking an older version next11:56
jamdo you know what is on the builders?11:56
jelmerI think the builders are running 2.2-something11:56
jelmerlet me check11:56
jamjelmer: using bzr-2.2.2, I get 2m32s, and 188MB peak memory for the same kde-workspace12:05
jamnot all that different12:06
jamnote, those numbers might ~double if they are using 64-bit systems12:07
jamthough why you would run a 64-bit system with only 1GB of ram seems a bit silly.12:07
jelmerjam: virtual process size limit is set to 1 000 000 000 bytes12:07
jamgiven that 64-bit programs are almost universally much bigger in mem because of the extra pointer sizes12:08
jelmerI'm not sure why it uses RLIMIT_AS rather than something else12:08
=== mrevell is now known as mrevell-lunch
jamspiv: with bzrr-2.2.2, 'bzr branch --stacked lp:.../kde-workspace' took 220MB peak, and 5m4s. While http:// took 188MB and 2m30s.13:41
jamso bzr+ssh vfs seems a bit weak13:41
spivjam: yes, probably because there's double-caching13:46
spivjam: e.g. RemoteRepository will keep a get_parent_map cache, then when it falls back to VFS the "real" repository object will probably fetch and cache most of the same info13:47
spiv(But in a different form, of course)13:47
spivI think the primary fix there is "don't use VFS"13:47
jamspiv: branch --stacked, so I think most of the 'build-the-working-tree' stuff doesn't use get_parent_map13:47
spivI'd be a little interested in if lp:~spiv/bzr/faster-stacked-tree-build goes better (needs to be run on both server and client)13:48
spiv(It doesn't totally eradicate VFS calls, but it does reduce them)13:49
jamspiv: hard to run that on LP :)13:49
spivjam: local testing is faster anyway, right? ;)13:50
jamspiv: sure, but doesn't compare. Anyway, I do have a -Dhttp -Dhpss log of both, I might grep through it13:52
jamin theory, the same calls should be made13:52
jamspiv: it is also possible that my machine was more heavily loaded during one of the runs13:55
jamspiv: we also read ".bzr/branch-format" 5 times in the http:// version (and branch/format 6 times)... ugh13:57
spivjam: I was thinking specifically that you could measure the client's memory consumption with that branch13:58
spivjam: I already know it is *much* faster13:58
maxbHi spiv, do you have a thought on when bug 793393 might be addressed?14:14
ubot5Launchpad bug 793393 in Ubuntu Distributed Development "Please upgrade jubany's bzr-builddeb" [Undecided,New] https://launchpad.net/bugs/79339314:14
jamspiv: copying the branch locally, 'time bzr branch --stacked bzr://localhost/..." is then 181MB and 1m38s. "time bzr-spive branch --stacked" is 1m26s and 134MB peak memory.14:16
spivmaxb: oh right.  I'll do it first thing tomorrow morning my time unless you convince someone else to do it first :)14:18
maxbthanks :-)14:19
spivjam: hmm, less of a time win on this branch than another test case I have, but not too shabby.  (Especially as it has to pay the costs to insert the data into the repo and so validate it where stock bzr doesn't)14:19
maxbOnce that's done, and assuming the importer branch itself is up to date, sysvinit can be requeued, and I hope should work14:19
spivjam: And the memory improvement is good news :)14:20
spivjam: thanks!14:20
jamspiv:  this is also over the loopback, so bandwidth type stuff doesn't really matter.14:34
jamand you seem to be fairly out of date vs bzr.dve14:35
jamyou don't have my groupcompress changes, for example14:35
jamspiv: And I should note: "transferred" changed from 95MB to 32MB14:35
jamso for anything network bound (like most things) this is a massive improvement14:35
spivIt was mainly roundtrips I wanted to improve, happily that approach seems to help lots of other things too.14:41
fritz[]poolie: you still there?14:46
spivfritz[]: unlikely at this hour14:48
fritz[]sorry, can anyone else help? I'm doing research for one bzr issue and I've modified lockdir.py source14:49
fritz[]now trying to recompile my bzr14:49
fritz[](on windows)14:49
fritz[]i've done14:49
fritz[]python setup.py install --home ~14:49
fritz[]without problems14:49
fritz[]but where's my bzr.exe? :)14:49
fritz[]I've got \bin directory with bzr and bzr.bat14:50
fritz[]:(14:50
spivfritz[]: building the windows installer for bzr is a pretty fiddly job14:54
fritz[]so I see :(14:54
spivfritz[]: as jam could tell you14:55
spivfritz[]: but you can run bzr from source, I suspect that's adequate to diagnose your issue14:55
jamfritz[]: I would recommend running from source, and just using "py setup.py build_ext -i14:55
jamwhich builds "in-place"14:55
fritz[]ok, trying exactly that now ..14:55
fritz[]sec14:55
jamthe .exe is much more complex to build. From what you wrote, you can probably run it from the 'bzr.bat'14:56
jamwhich runs the 'bzr' script using your installed python14:56
fritz[]ok, I've done python setup.py build_ext -i without error14:57
spiv(It *may* be possible to twiddle the library.zip or something of the bzr installed by the official installer, but that will be pretty fiddly and I don't know the exact details)14:57
fritz[]ok, so I should use build\scripts-2.7\bzr now?14:58
fritz[]grr14:59
fritz[]ImportError no module named site14:59
fritz[]ignore :)15:03
fritz[]got it15:03
workthrickjelmer: hiya, around?16:36
=== deryck_ is now known as deryck
jelmerworkthrick, hi17:07
workthrickjelmer: looking into writing the mapping now17:08
jblueHi all,  I was looking at this wishlist request: https://bugs.launchpad.net/bzr/+bug/681792 and was curious if something like this has been implemented yet?17:14
ubot5Ubuntu bug 681792 in Bazaar "wishlist: bzr pull --overwrite-tags" [Wishlist,Confirmed]17:14
jelmerjblue, as far as I know nobody has looked into that yet17:15
jbluewhat would be be the best practise then, to use --overwrite to sync the tags?17:15
jelmerjblue, there isn't really an easy way at the moment17:18
jelmerjblue, a workaround would be to remember the current revision tip ("bzr log --show-ids --limit 1"), then "bzr pull --overwrite" and then restore the tip17:18
jelmer("bzr pull -rrevid:<revid> .")17:18
jbluejelmer: in essense, overwriting tags, but not pulling in new revisions17:22
jelmerjblue, that's what the workaround would do17:22
jbluesounds fair, thanks jelmer17:22
jelmerjblue, sorry there isn't an easier way (yet)17:22
workthrickjelmer: do you see any obvious problems (besides performance impact, of course, but we know it's there already) by mapping revisions with multiple parents to id concatenating all of the parent IDs in the lexicographical order?17:25
workthrickhmm17:25
workthrickjelmer: that would result in files changing their IDs on the merge revision, wouldn't it?17:26
workthrickjelmer: also I see BzrGitMappingExperimental there, doesn't it do what I want already?17:27
jelmerworkthrick, mapping in way? Using their lexicographically sorted parent ids to generate their id?17:28
workthrickyes17:28
jelmerwhat if two revisions (with different contents) in the same repository have the same parents?17:28
workthrickjelmer: ah, no, sorry, I wouldn't be touching the _revision_ ids, I just want file ids17:29
jelmerworkthrick: in that case I'm not sure what you mean by parents?17:29
jelmerworkthrick, files have just one parent directory, usually :)17:30
workthrickjelmer: to make them stable, I decided to give files IDs consisting of "sha1 of first revision in history ever" + path17:30
jelmerworkthrick, bzrgitmappingexperimental is intended to preserve the file ids if they're imported from bzr, it stores them in a custom file in the tree.17:30
workthrickbut that obviously breaks if you merge two timelines17:30
workthrickah, so it goes the other way around17:31
workthrickjelmer: so I was thinking of a simple mechanism to make it work for all possible graphs17:31
workthrickjelmer: so actually, what I _think_ should work would be to preserve the ID of the file if it had one assigned before the merge, and otherwise pick the lexicographically smaller parent sha1 on each merge point until you reach a root17:34
workthrickroot being a root revision now, not tree root17:35
jbluejelmer: thanks, looking forward to seeing that tags issue fixed.  The work-around can be a bit misleading, since if you do a 'pull --overwrite', and there are no changes in revisions, it says "No revisions to pull" and it seems like nothing was changed when it actually has (tags overwritten).17:36
jelmerjblue, yeah, there's a separate (higher priority) bug open about that17:36
workthrickjelmer: obviously it'll have an impact on the performance, but bzr-git caches the mappings, right? So it'd only happen once for each file, possibly with a trivial refresh for every file after a merge17:36
jelmerworkthrick, different file ids means it won't be possible to easily merge those kinds of files with bzr though17:38
workthrickjelmer: howso? The ID prefix would only change if you merge a completely unrelated tree17:38
jelmerworkthrick: yes, but that means that if you ever merge an unrelated tree, you won't be able to sanely merge from things derived from that tree beyond your merge17:40
workthrickjelmer: that should be covered by "check if the file can be traced to before the merge point", and if so, it'd override the "pick the lexicographically smallest parent prefix" fallback17:41
jelmerworkthrick: ah, ok - I missed that17:42
jelmerworkthrick: I can't poke any holes in that :)17:42
workthrickjelmer: the only case I can see that'd really fail would be if I have a timeline A, then merge it with B which has a smaller prefix, so it gets picked for newly added files, then I add 'foo' and try to merge A' derived from A which also has added 'foo'. But that'd generate a conflict anyway17:42
workthrickjelmer: ah, good. Now if bzr-git caches that for me without too much work on my side, I should be hopefully not that far away from having a stable and unique mapping :)17:43
workthrickjelmer: as for the technicalities of my plugin, I should just say import bzrlib.plugins.git to be able to use its APIs, right?17:44
jelmerworkthrick, yeah, "from bzrlib.plugins.git import ..."17:50
workthrickanything that's suitable for a lazy_import?17:50
jelmerworkthrick, depends on how you're going to use it17:51
workthrickOK, I'll just do it the easy way for now, and see what can be optimised later on17:51
workthrickjelmer: hmm, now how can I get at the bzr's idea of what the file is in generate_file_id(self, path)?18:45
workthrickjust a path is insufficient18:46
=== med_out is now known as med
=== med is now known as medberry
jelmerworkthrick, you have to patch the interface to take more information19:34
workthrickjelmer: aha. Do I need to do it at the bzr-git level, or bzrlib.foreign level?19:46
jelmerworkthrick, bzr-git, I don't think this is a bzrlib.foreign method19:47
jelmeras the requirements are different per foreign vcs19:47
gourdo you recommend bzr-svn trunk or 1.0.4 with bzr-2.3.3?20:20
workthrickgour: trunk is a bad idea with released bzr versions, since trunk moves to requiring bzr-dev as soon as it gets the chance20:28
gourworkthrick: i recall having some interface-version problem (on freebsd)...let me try with 1.0.4.20:29
gouryeah, bzr plugins complain: "Unable to load plugin 'svn'. It requested API version (2, 2, 0) of module <module 'bzrlib' from '/usr/local/lib/python2.7/site-packages/bzrlib/__init__.pyc'> but the minimum exported version is (2, 3, 0), and the maximum is (2, 3, 3)"20:31
workthrickgour: that means you need an earlier version of bzr-svn20:58
workthrickah wait, no20:58
workthricka later one20:58
workthrickthe releases should be tagged with what bzr's they work with20:58
gourheh...that's the latest official release20:59
workthrickthen grab an unofficial one, but not the trunk21:00
goursupposed to work with 2.221:00
workthricksince trunk is a moving target, and will probably require 2.4 at this point21:00
jelmertrunk supports 2.3 and 2.421:00
gourok...let's try trunk then21:00
workthrickhuh, is bzr-standalone for win32 supposed to be able to use paramiko?21:01
workthrickbecause I just updated from 2.2/py to 2.4b3/standalone, and it broke21:01
workthrickbzr: ERROR: Unrecognised value for BZR_SSH environment variable: paramiko21:01
=== yofel_ is now known as yofel
gourit's ok now (bzr-svn)21:02
workthrickgour: btw, bzr tags -d lp:bzr-svn is useful for seeing what versions are tagged21:18
gourworkthrick: thanks...i had a trust in freebsd ports which says that 2.3.3 is ok21:19
=== medberry is now known as med_out
mwhudsonjelmer: i really hope you've been using scripts to do you code import mangling22:58
pooliehi all23:02
jelmermwhudson, nope, it's all me23:30
mwhudsonjelmer: you are a very determined man, clearly23:30
jelmermwhudson, I managed to convert all the failing svn-via-cscvs imports, hopefully we can get to a point where failing imports can become OOPSes23:30
jelmeranyway, there's not much I can do anymore now that Launchpad's down and it's already been a way too long day23:32
jelmerttyl :)23:32
mwhudsonjelmer: it would be nice to be able to distinguish "the remote server went away" from some of the other problems23:32
mwhudsonjelmer: bye23:32
jelmermwhudson, we can just catch a handful of bzr errors that are indications of user errors23:32
mwhudsoncool23:33
pooliejelmer: maybe you should write an api script?23:52
poolieit might make it easier next time?23:53
pooliei don't know23:53
jelmerpoolie, I'm hoping to have Launchpad do it for me next time :)23:55
jelmerthe cscvs imports should be the only ones where it's impossible to reliable tell whether it's failing because of a bug or circumstances (repository removed, etc)23:55
pooliefair enough23:57
pooliehaving lp do it automatically would of course be far better23:57

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