/srv/irclogs.ubuntu.com/2010/06/11/#bzr.txt

lifelessargh00:14
lifelesstraceback.format_exception_only is broken00:14
lifelesswhats wrong with this (python 2.6):00:14
lifeless171  ->     if (isinstance(etype, BaseException) or00:14
lifeless172             isinstance(etype, types.InstanceType) or00:14
lifeless173             etype is None or type(etype) is str):00:14
lifeless174             return [_format_final_exc_line(etype, value)]00:14
lifelessmgz: ^00:14
lifelessah, little early.00:17
lifelesshmm, I need a teddy bear00:17
MethsWhat's the error msg?00:19
lifelessit doesn't crash-fail, it formats wrongly00:20
lifelesslooks like some remaining 'string exception' support that hasn't been cleaned up00:21
lifelessI'm going to see about tackling it differently00:21
lifelessok, \o/00:23
lifelesspython3 would be so much nicer00:23
mgzyou say that lifeless00:29
mgzI spent this afternoon looking at python 3, and have come to the conclusion it doesn't do unicode properly00:29
lifelessmgz: that doesn't entirely suprise me00:30
lifelesshey, can I get your opinion on two small patches00:30
lifelessgimme a sec to pastebin em00:30
lifelesshttp://pastebin.com/qrys3xgK00:30
lifelesshttp://pastebin.com/M7AwUADN00:31
mgzhttp://paste.ubuntu.com/447983/ <- I just want my repl :_:00:31
lifelessmgz: ironpython3 ?00:31
mgzno, straight up python 3, built from trunk by my own fair hand this afternoon00:32
mgzI guess it's just no one has bothered testing it on a non-utf-8 terminal or something00:32
lifelessis your console encoding set correctly ?00:33
mgzyes, it's correctly set tp cp93200:33
lifelessweird00:33
lifelessso what do you think of those two patches00:33
mgzsys.stdout is "strict" though, which added to them trying to be clever with repr = bad experience00:33
mgzfirst one seems fine.00:34
lifelessthe subunit one is for [] tracebacks, which have no explicit encoding (but I am just going to treat as utf8 and retroactively define them thusly00:34
mgzsecond one is building on wrong code.00:34
mgzthe current __str__ method there doesn't do what the person who added it thinks it does00:34
* lifeless provides context00:34
lifelessPQM is failing to format and attach subunit summaries00:35
lifelesseven though the WEBUI is doing just fine00:35
lifelessits failing because bzr's formatters upcast stuff to unicode in a couple of places [bad], and because testtools uses the iter_text code path for deserialising text/* objects00:36
lifelesswhich become unicode00:36
lifelessand then traceback.format_exception_only triggers an implicit conversion to __str__, and ye old ascii codec raises its head00:36
lifelessso the subunit one permits iter_text to work00:37
mgzwhere does subunit hook into testtools test results?00:37
lifelessand the testtools lets it format properly in traceback.format_exception00:37
lifelesssubunit/details.py line 4700:37
lifelessits weakly coupled - speaks the same object protocol, magic happens00:38
mgzokay, in which case, I think you just need my traceback branch00:39
mgzthe problem with testtools currently is that exceptions go through traceback.format_exception *twice*00:39
mgzonce originally in the test result, and then again in _StringException form00:40
lifelessok00:40
mgzI changed both of those to use unicode, so it's no longer cooercing to str00:40
lifelessmy testtools patch would seem in line with that change00:41
lifelessneither right or wrong00:41
lifelessmgz: I want your patch; is it finished?00:42
lifelesswin goto #debian-devel00:42
mgz^it's similar indeed, it's just spelled more specifically in the unicode traceback branch (because the possible variations are reduced)00:42
lifelessok00:43
lifelessso as I'm going to be getting the syadmins to do a kindof backport of these two things00:43
strkBazaar (bzr) 2.1.100:43
lifelessI'm going to go with the little one, unless it will break your branch.00:43
strk4 lines diff00:43
strkover sftp00:43
strk  4272KB     3KB/s | Uploading data to master branch - Stage:Fetching revisio00:43
mgzthe main problem with yours is you're hardcoding certain things from the environment that won't always be correct00:44
lifelessstrk: sftp is the problem, its a database00:44
lifelessstrk: if this is savannah, bzr+ssh support is being worked on.00:44
strkno 'packing' thing ?00:44
strklong ago someone mentioned it was "packing" one of the problems00:44
mgzfor a backport to fix pqm, I presume this isn't a concern, it's only one machine00:44
lifelessstrk: autopacking is part of the database layer yes00:44
strkI mean, is there anything I could do to improve the situation while over 'sftp' ?00:44
lifelessstrk: not really.00:44
strklike disabling autopacking while on gprs ?00:45
mgz<lifeless> mgz: I want your patch; is it finished? <- I have some brown paper bag things to push, then need to work out how to no re-break py3k support (which is currently broken, so may not matter much), then the moving around we discussed00:45
mgzit's close, want to get it done before I go away for the weekend really00:46
lifelessmgz: py3k is broken? worked for me in our hudson00:46
lifelessmgz: I need to start that machine up again soon00:46
mgzwhat method are you using to install it? both ways I tried had problems.00:46
mgzI filed a bug and made a merge proposal at any rate00:47
lifelessah, import issue with the result refactoring00:47
mgzand 2to3 had problems with the Queue import.00:47
lifelessyeah, testtools is single-source not 2to300:48
mgzanyway, I have a big issue in that there seems to be no source-compatible way of spelling unicode literals00:48
mgzso I'm not sure how to write the tests I need to do00:48
mgzu"\u1234" -> ???00:48
mgzthe _u function is useless because it assumes latin-100:49
mgzeverything else I think I can hack around though.00:49
mgz(well, I can hack around that too, I just need to pick which ugly method I least dislike)00:49
lifelesschange _u to assume utf8 ?00:49
mgzthat breaks one of the current uses, so I assume it's the way it is for a reason, though it's not clear00:50
lifelesspoint me at the use?00:50
mgztesttools/tests/test_content.py:        self.assertEqual([_u("bytes\xea")], list(content.iter_text()))00:50
lifelessI love the way 3.x is becoming harder and harder to be compatible with.00:51
lifelessIts almost like upstream want -no- adopters00:51
mgzyeah, a bunch of this stuff just doesn't seem thought through00:51
lifelessmgz: recode that literal as utf8 ?00:51
mgzcan do.00:51
lifelessmmm00:52
lifelessactually00:52
lifelesshere's the algorithm:00:52
lifeless - find out what python3.x will do with a bare string00:52
mgzthe other option is something like... _unicode(r"\u1234") where I call .decode("unicode-escape") for Python 200:52
lifeless - pick some bare string that will result in the same unicode object that that current one does, with a changed _u function00:52
lifeless - then change the _u function as you desire00:53
mgzneed to remember the r for that, but is easier to read than encoded utf-800:53
lifelesshah00:54
mgzalso filed a bug for the string exception thing as you requested, I can't actually see any downside to changing to a bare except clause00:54
lifelessjames_w: your patch from python3.x :)00:54
lifelesswhats 'print "foo"' in python3 ?00:54
lifelessmgz: oh, base exception in all 2.x releases is broken broken broken in its unicode handling00:55
lifelessmgz: theres a upstream bug about it00:55
lifelessmgz: __unicode__ triggers ascii decoding, __str__ triggers ascii encoding, with all sorts of weird side conditions IIRC00:55
mgzyup, got to be careful about what you put in builtin exceptions00:58
lifelessmgz: ok, 3.1 support pushing up now01:04
mgzcool, I'll merge trunk back in rather than fiddling with it more here01:05
jelmer3.1 support for testtools?01:05
lifelessjelmer: yep01:05
jelmernice01:06
lifelesswe had 3.001:06
lifelessbut 3.1 changed the rules for imports again01:06
mgzpushing my fixes for idiocy, I'll then get py3k working01:07
mgzlifeless: what do you think about moving testtools.utils.iterate_tests to testtools.testsuite.iterate_tests and renaming utils 'compat' or similar?01:09
mgzit's mostly encoding stuff, but some other misc py3k things too01:09
lifelesssure01:10
lifelessuhm01:10
lifelessplease rename utils.py, and then add back a module which imports the old things and does the deprecationwarning dance if its imported at all01:10
mgzwell, iterate_tests is the only public function01:11
lifelessyes01:11
mgzI could just leave it there, and move everything else01:11
lifelesswhatever is easier01:11
lifelessmy concern is just that we will probably have folk wanting backports/SRU's01:12
lifelessand the easier for them, the better - particularly when its low cost to us.01:13
pooliehi there lifeless, mgz01:15
mgzhey poolie01:16
mgzokay, I'm now at... clean on 2.4, clean on IronPython, two failures on Jython due to a single space difference, and syntax error on py3k01:17
mgzlet's squish that last one01:18
poolielifeless, i don't want to spend all day on test frameworks01:24
lifelessI can feel a but turning up ;)01:24
pooliebut i did realize last night that the current protocol means many fixtures01:24
poolieheh01:24
pooliemany fixtures must override tearDown and then super-call01:24
pooliesimilarly setUp01:25
poolieand we just went through realizing this was error-prone in test cases themselves01:25
lifelessagreed01:26
lifelessthis seems more an internal contract question, not the public composing contract though ?01:26
pooliewe could say that when you subclass Fixture, you should implement doTearDown for example01:33
poolieseparating out the template method01:33
pooliealternatively we could just say that fixtures are ObjectWithCleanup01:33
lifeless[template] I don't think that works very well in python for avoiding 'fail to upcall', because as soon as two classes in one MRO do it, it requires upcalling.01:34
lifelesssomething like TestCase.addCleanup would be good, I think01:35
lifelessI was thinking self.manageFixture(fixture_I_created)01:35
lifelessto hook into setUp and tearDown in LIFO order01:35
lifelessjames_w: while you're looking at testtools.run, supporting bug 505386 would be most awesome01:36
ubot5Launchpad bug 505386 in testtools "testtools.run should support selecting tests by id (affected: 2, heat: 8)" [Wishlist,Triaged] https://launchpad.net/bugs/50538601:36
spmlifeless: heyo; where are we at with pqm this fine friday?01:40
lifelessspm: nothing to do at the moment01:40
lifelessspm: I am doing some metaphorical housecleaning01:41
lifelesswill have some new dep packages to build in CAT later01:41
spmso... all finished? ie I can close the RT? or leave it pending for now?01:41
spmahhh01:41
lifelessspm: turtles all the way down (python2 and unicode and str types is a freaking disasterous mess)01:41
spm\o/01:42
mkanatI thought it was mud all the way down. :-)01:43
lifelessmkanat: its terrible every which way ;)01:43
mkanat:-D01:43
lifelessmkanat: hey glad you're here, we had some 500's on loggerhead today01:43
lifelessmkanat: not server hangs though01:43
mkanatlifeless: 500's? That's odd.01:43
lifelessmkanat: hopefully Chex will have filed a bug01:43
lifelessmkanat: yes01:44
lifelessmkanat: a restart didnae halp01:44
mkanatDang.01:44
lifelesswhich suggests incomplete handling of a bzr core exception, to me.01:44
lifelesssomething we should show rather than go boom on.01:45
lifelessso conceptually shallow01:45
lifelessmars: what was the branch again ^01:45
poolielifeless, i wonder if we should say that the person setting things up is responsible for starting them, if that's needed01:45
poolieprobably it's not needed in most cases01:46
poolieanyhow it's not complicated to do so01:46
pooliethen just use addCleanup to shut them down, and fixtures that themselves create fixtures are responsible for getting them shut down01:46
lifelesspoolie: I think the start/stop are paired, separate from instantiation, and the responsibility of the instantiator01:49
lifelesspoolie: so convenience support for that would be nice.01:49
lifelessmars: bug 592262, if you want to chat in realtime, I'm here01:55
ubot5Launchpad bug 592262 in testtools "testtools breaks if a string exception is raised (affected: 1, heat: 6)" [Wishlist,Incomplete] https://launchpad.net/bugs/59226201:55
lifelessba01:55
lifelessbah - mars sorry!01:55
lifelessmgz: ^01:55
lifelesstoo many m's01:55
mgzso, I don't see any risk in just doing:01:56
mgz-    except Exception:01:56
mgz+    except:01:56
lifelessmgz: KeyboardInterrupt and SystemExit01:56
mgzbut I've not looked at py3k properly till today and it's still... suprising me01:56
mgzKeyboardInterrupt is being explicitly caught above anyway01:56
lifelessah01:57
spivAnd string exceptions ;)01:57
mgzif we worry about SystemExit/GeneratorThingy, can just add them up there too01:57
lifelessmgz: I think my main hesitation is that there's no good reason to care :)01:57
mgz(caught and re-raised)01:57
lifelessmgz: [that I know of]01:57
mgzwell, people sometimes forget their classnames, and unittest Does The Right Thing01:58
mgzit's not a big issue, I just wrote a test for it and it made the run fall over01:58
spivIn addition to GeneratorExit, there's anything else that someone decides to base off BaseException rather than Exception in their own code.01:59
mgzwell, there's bags of code in the stdlib that gets the exception heirachy wronger than this01:59
mgzcatching the wrong stuff, letting to much through, etc etc02:00
spivSo, if the goal is "not catch string exceptions"02:00
lifelessmgz: heh. We don't need to lower ourselves to its level ;)02:00
spivThen why not explicitly "except BaseException:" ?02:00
mgzcurrent annoyance - how the hell am I meant to get a copy of stdout that won't blow up randomly for py3k02:00
mgzBaseException doesn't exist in 2.402:00
mgzand no, the goal is catching string exceptions, in my opinion.02:01
spivOr "except BaseException: raise" "except Exception:..."02:01
lifelessok02:01
lifelessso what do I care about here?02:01
lifelessI care that:02:01
mgzattribte lookup code and other core stuff can swallow SystemExit and so on02:01
lifeless - we do the right thing on as many pythons as possible.02:01
mgznothing does is right02:01
spivmgz: "try: BaseException; except NameError: BaseException = Exception".  Or even = () ;)02:02
lifeless - where we can't do it right on both 2.N and 2.N+(M>0), and can do it right on either of them, I'd rather 2.N lose out.02:02
lifeless - where we can't get it right no matter what, maintainable code in testtools should become a consideration02:03
lifelessstring exceptions in particular I had discounted because python itself, in the 2 series, has made them illegal.02:03
lifelessbut I have no intrinsic objection to supporting them.02:03
lifelessI *suspect* the rabbit hole is kindof deep.02:04
mgzdoesn't seem all that bad to me.02:04
mgznot compared to trying to actually make sure KeyboardInterrupt is always propogated02:04
lifelessmgz: we do pretty good on KI at the moment I think02:04
mgzsure it's just the platform that's the problem :D02:05
lifelessmgz: so, the question spiv raised earlier is a good one. What about 'class MyBase(BaseException): pass'02:05
mgz`getattr(a, "b", None) is not None` only gets you so far02:05
lifelessmgz: indeed, thats buggy :)02:05
lifelesssentinel = object(); getattr(a, "b", sentinel) is not sentinel02:06
mgz^if not isinstance(e, (Exception, str)): raise02:06
lifelessmgz: ok, so02:06
mgzwhere we get e from sys.exc_info for py3k source happiness02:06
lifelessexcept:02:06
lifeless exc_info = sys.exc_info()02:06
lifelessetc02:06
mgzright. three line diff.02:07
lifelessmgz: ok, if you add a couple of tests for failure modes we've discussed and are avoiding here. Then +102:07
mgzwhat could possibly go wrong. ;)02:07
lifelessmgz: ohhhh, we've seen a bit02:07
mgzargh, this is a nightmare... I think I have to manually clone this wrapper just to get a working stdout02:10
* mgz curses people with unicode terminals and no imagination02:10
lifeless:<02:11
lifelesswhat should it do if it can't encode to your terminal - show the repr ?02:11
mgzwell, this is in the context of running a testsuite02:12
mgzit has a failure on some test, that happens to involve some non-english text02:13
mgzpy3k would currently throw a UnicodeError when trying to print the result02:13
mgzthis seems the least helpful option to me02:14
lifeless\o/02:14
mgzunfortunately, it also seems to provide no way of actually *doing* anything with the multi-layered nightmare of wrappers, either02:14
lifelessbut thats ok02:14
lifelessat least bytes are a different type now02:15
lifeless:P02:15
mgzokay...02:17
mgzreturn stream.__class__(stream.buffer, stream.encoding, "replace", stream.newlines, stream.line_buffering)02:17
mgzand I actually get complete output.02:18
mgzhorrible hack, but I'll survive02:18
lifelessoh my02:23
lifelessmgz: I could send you a CD of Ubuntu, if you like.02:23
mgzI could run this on another box, but the code still needs to be able to print test results to a non-unicode target02:24
lifelessmgz: I was teasing :)02:31
mgzI would play along, but py3k is keeping me up past my bed time...02:33
lifelessmgz: http://pastebin.com/bPhtYmkg02:34
lifelessmgz: could you give that a very quick eyeball02:34
lifelessI've added a comment since you saw it last02:34
mgzack, yes, that self._exc_info_to_string you've added the comment by will be an issue02:35
lifelessyeah02:35
lifelessI thought it would be :)02:35
* lifeless upgrades it to XXX02:35
lifelessspm: I has updated rt02:36
lifelessspm: please advise if I can assist with the CAT stuff02:36
spmlifeless: yarp; just read same. ta.02:36
spmpossibly - should be ok from here.02:36
mgzcurrently I'm doing .encode("ascii", "replace") in _StringException.__str__ so even people with fancy utf-8 terminals will see errors when everyone else does ;)02:36
lifelessmgz: evil!02:36
lifelessself.pop()02:37
lifelesslooms, right02:37
lifelessI feel the need for wotw02:37
mgzokay, is my py3k just broken, or is something really stupid going on:02:42
mgz>>> open(os.devnull, "w", encoding="ascii").write("it's a repr %r" % "\u1234")02:42
mgzTraceback (most recent call last):02:42
mgz  File "<stdin>", line 1, in <module>02:42
mgzUnicodeEncodeError: 'ascii' codec can't encode character '\u1234' in position 13: ordinal not in range(128)02:42
mkanatmgz: That sounds right.02:42
mkanatmgz: ascii can't encode Unicode character 1234.02:42
mgzI see no reason that trying to write a repr to file should be attempting to encode the *escaped* string02:43
mgzI'm not writing \u1234, I'm writing \\u123402:43
mgzas it were.02:43
mkanatmgz: Did you mean r"\u1234"?02:43
lifelesswhat does "%r" % "\u1234" do ?02:43
mgzthat, I'd hope.02:43
lifelessmkanat: he's simulating the code path of a test error report02:44
mkanatmgz: I think %r of a string is the string.02:44
mgzthen what's %s?02:44
mkanatmgz: Also a string.02:44
lifeless>>> "%r" % "\u1234"02:44
lifeless"'ሴ'"02:44
lifeless>>> type("%r" % "\u1234")02:44
lifeless<class 'str'>02:44
mgzokay, so these days, repr is useless.02:44
mkanatmgz: But %r takes any data type.02:44
lifeless>>> len("%r" % "\u1234")02:44
lifeless302:44
lifeless>>> len("\u1234")02:44
lifeless102:44
lifelessmkanat: its not the string itself02:45
mkanatlifeless: Sure, it's the string in quotes. :-)02:45
mgzit just... adds quotes02:45
lifelessit is, helpfully, '-thestring-'02:45
lifelessmgz: yes, :)02:45
mgzso, I need encode ascii and backslashreplace instead I guess02:45
lifelessso repr is unicode these days02:45
mkanatmgz: Is there not a way to make encode="ascii" be more lax?02:46
lifelessmkanat: terrible for debugging02:46
mgznot and actually have the test still be meaningful02:46
* mkanat nods.02:46
lifelessmkanat: we want a codec that shows how to get back a unicode string from an ascii editor02:46
mkanatlifeless: Ah.02:47
lifelessmkanat: which repr in python 2.1 was02:47
lifelessmgz: unless I've got something wrong ?02:47
lifelesss/1/x/02:47
mgznope, that's it.02:47
mgzI'm testing string roundtripping in testtools, this means I need to be knowing exactly where I am at all stages... which py3k source compat is confusing somewhat02:48
mgzget this string into this file in this encoding escaped thusly, test than running said file gets sensible unicode output02:49
=== parthm_ is now known as parthm
thumperhow do you 'close' a branch?06:10
spivchmod -R a-r?  Or is there something more you want than "no-one has permission to change this"?06:14
rockstarspiv, I think thumper wants something like open().close(), but for branches.06:16
spivOh, ok.06:16
spivThere's no explicit close in the API.  The closest we have is "release all references to that object".06:17
spivWhat's this for?  If it's to do with tests and connections vila is working on something in that area.06:18
rockstarthumper, ^^06:18
lifelessindeed, Branches have the same lifetime as any python object.06:25
lifeless'del' should do06:25
lifelessa 'closed Branch' does not make any sense, it would be an invalid state for the object to be in.06:25
lifelessjam: I'm going to feel all guilty now.06:51
jamlifeless: don't, I'm capped on everything but goo06:52
jamit's actually a bit boring06:52
lifelessjam: yeah, I saw when you zerged me :)06:52
jamplease steal some stuff so i feel worthwhile again :)06:52
lifelessok, well the weekend is approach06:52
lifelessI'll see what I can do06:52
BlindWolf8Hello. Anyone here?07:08
spivYes.07:09
BlindWolf8Hi spiv.07:10
BlindWolf8I have a question about Bazaar setup. Are you able to help me?07:10
spivMaybe :)07:11
spivAsk the question and we'll find out!07:11
BlindWolf8Haha... I have Bazaar v2.2b3 installed on my server07:11
BlindWolf8right from source07:11
BlindWolf8I am on a Windows box and I installed bzr on a Linux box07:11
BlindWolf8I downloaded Bazaar on my Widnows box and went to create a new shared repo remotely on the Linux box through Bazaar explorer07:12
BlindWolf8I get Permission errors (error 13)07:12
BlindWolf8The user that I logged in as should have permission for everything. I am not sure what it's trying to do.07:13
spivHmm.07:14
spivCreating a shared repo just tries to create a few directories and files, and does some renames of files along the way.07:14
BlindWolf8Could it be the group the user is in?07:15
spivThere should be a traceback in bzr's log file, if you run "bzr --version" it should tell you where to find it.  If you can pastebin that it might provide a clue.07:15
BlindWolf8OK, hold on one moment...07:15
BlindWolf8there's a .bzr.log will that help?07:16
spivYes, that's the file.07:17
lifelessalso look in the .bzr.log on the server :)07:17
lifelessdepending on versions and so forth, some of the code runs on the server side07:17
spivHow are you accessing the shared repo remotely?  Via a bzr+ssh URL, or a SMB share, or..?07:17
BlindWolf8bzr+ssh07:18
BlindWolf8using a public/private key, which works07:18
BlindWolf8yeah, I meant the .bzr log on the server07:18
BlindWolf8so, whihc log do you want?07:18
BlindWolf8The exact error I get in Bazaar Explorer is: bzr: ERROR: Permission denied: ".": : [Errno 13] Permission denied: '/.bzr'07:20
BlindWolf8Hello?07:22
BlindWolf8Hi Adys07:27
BlindWolf8Hello all.07:30
spivBlindWolf8: the bzr log from the client to start with, I think, but the remote one might be interesting too07:31
spivBlindWolf8: that error does sound likely to be a simple permissions problem, though07:32
vilahi all07:33
spmhey vila07:33
vilathumper, spiv: In a forthcoming submission I implemented a transport.disconnect() method that close the socket for transports that have one07:34
vilathumper, spiv: That means that the transport objects as still usable since they will reconnect on demand while also providing a way to collect the unused sockets when needed07:35
spivvila: and the hooks we discussed?07:35
vilaspm, spiv: Could we configure the news_merge plugin on the pqm host ? I got two submissions failing yesterday because of that07:35
BlindWolf8OK, I'm back.07:36
vilaspiv: I've still to implement them and they still sound like the best idea so I will :)07:36
spmvila: I guess, not sure what you need/where tho?07:36
BlindWolf8spiv: Where are the logs on the client side?07:37
spivI think lifeless may have filed a RT about enabling news_merge on the PQM host, not sure.07:37
vilaspm: Either in branch.conf or locations.conf in the appropriate section, we need: news_merge_files = NEWS07:37
spivBlindWolf8: open a command prompt and run "bzr --version" and it should tell you.07:37
BlindWolf8spiv: got it!07:37
BlindWolf8spiv: Here's the client log: http://pastebin.com/CBmzHwZd07:39
spmspiv: vila: if he has, it's not got 'news_merge' anywhere in it.07:40
vilaspm: 'he' == lifeless ?07:40
spmyup07:40
spivspm: ok, good to know.  Thanks for looking :)07:41
spmtho, specifically, anyone; the search was pretty open. :-)07:41
vilaspm: It could be that he asked for a bzr upgrade so the plugin was available but didn't mention the .conf stuff07:41
spmwe have been faffing around with pqm upgrades the past few days; so possibly in there somehow07:41
spivYes, I think the only pre-req is that PQM is using bzr 2.1 or newer to do the merges.07:42
spivIf that's done, then probably turning on news_merge is a good idea.07:42
BlindWolf8spiv: If this helps: client: 2.1.1, server: 2.2b307:42
spmspiv: Bazaar (bzr) 2.0.4, so no. :-)07:43
BlindWolf8spiv: huh?07:43
spivBlindWolf8: was talking to spm, sorry!07:44
spmspiv: hrm. interesting. might actually be running 1.17. we're not using the system bzr for bzr itself; have a local copy07:44
* spm has visions of shaving yaks in the near future07:45
BlindWolf8spiv: haha, no problem07:45
lifelesswoo07:45
lifelessRan 2 tests in 0.578s07:45
lifelessOK07:45
lifelessbzrlib.plugins.loom.tests.test_branch.TestLoom.test_sprout_remote_loom is leaking threads among 1 leaking tests.07:45
BlindWolf8spiv: Thanks again for any help you can provide...I've come this far...so close!07:45
vilalifeless: using an http or sftp server ?07:46
lifelessvila: bzr+ssh07:46
lifelessvila: I must be tired, I didn't answer 'False' :)07:46
spivBlindWolf8: so, this seems likely to be a fairly normal permissions problem: that error seems likely to be due to "mkdir .bzr" in failing07:46
vilalifeless: yeah, so one leaked thread for each connection, we need one of the hook spiv mentioned above to catch them07:47
BlindWolf8spiv: Odd. I can ssh in and make the dir myself no problem.07:47
vilalifeless:  :)07:47
spivBlindWolf8: hmm, odd indeed!07:47
BlindWolf8spiv: my exact commend, for reference is bzr+ssh://user@site.com:port07:47
vilalifeless: i.e. the smart server starts a daemonic thread for each client connection, a hook there will allow the tests to shut them down07:48
spivFor some value of "exact", I'm sure ;)07:48
BlindWolf8spiv: LOL07:48
spivIf there is a traceback in the server's .bzr.log that would be interesting too.07:48
BlindWolf8spiv: there's not. The only thing I notice is that there's two return code...btoh are 0s07:48
BlindWolf8spiv: I can pastebin it tho if needed for ref.07:49
spivDid the server manage to create any directories?07:49
BlindWolf8spiv: no07:49
spivNo I don't need to see the server log then, that's ok, that's what I'd expect.07:49
BlindWolf8spiv: oh wait, whoa...07:50
lifelessvila: oh, I wasn't talking about the leak07:50
lifelessvila: I was talking about the remote loom branch working07:50
spivlifeless: hooray for loom working!07:50
BlindWolf8spiv: looking at the server log, looks like there was a traceback at one point07:50
vilalifeless: hurrah !!!07:50
spivBlindWolf8: to do with permission denied?07:50
lifelessspiv: please comment on http://pastebin.com/e4fs3zey07:50
vilalifeless: I had to copy the last-loom file manually this week07:50
lifelessvila: the shutdown-of-the-server thing - no hook needed, surely. We already call tearDown on the server, that can DTRT, can't it ?07:51
vilalifeless: Well, we *can* collect the threads/sockets for all cases but we really need it for the tests07:52
BlindWolf8spiv: here's the log from the server: http://pastebin.com/UPez6RS707:52
spivlifeless: Hmm, _ensure_real for sprout?  Isn't that going to regress some HPSS call count ratchets?07:52
lifelessspiv: thats on Format07:52
spivlifeless: oh right07:53
lifelessspiv: :!./bzr selftest --no-plugins branch.*acceptance --strict07:53
lifelessbzr selftest: /home/robertc/source/baz/pending/working/bzr07:53
lifeless   /home/robertc/source/baz/pending/working/bzrlib07:53
lifeless   bzr-2.2b3 python-2.6.5 Linux-2.6.32-22-generic-x86_64-with-Ubuntu-10.04-lucid07:53
lifeless                                                                                                                                                                                                                                              07:53
lifeless----------------------------------------------------------------------07:53
lifelessRan 3 tests in 6.135s07:53
spivBlindWolf8: yeah, that's nothing interesting (at some point you ran "bzr whoami" and it logged some stuff about the whoami info not being set yet)07:54
BlindWolf8spiv: before that though07:54
lifelessvila: Clean shutdown matters for real servers too - we need to interrupt long running threads somewhat cleanly or we can cause bad http results and so forth (think 1.0 envelopes)07:54
BlindWolf8spiv: I did notice a traceback07:54
lifelessvila: I still don't understand why a hook is needed07:54
lifelessvila: and I'm really concerned that its just confusing overhead we don't need07:54
spivBlindWolf8: I'm not sure what you're talking about?07:55
BlindWolf8lemme see...07:56
lifelessvila: why won't 'tearDown the server kills its threads' do the right thing ?07:56
lifelessvila: -and- why does a hook do better ?07:56
BlindWolf8spiv: ah eyah, misread...it was the whoami07:56
spivBlindWolf8: I'd be interested to see if you can make that directory using a sftp://... URL instead of bzr+ssh://...07:57
BlindWolf8spiv: so, what would you recommend?07:57
lifelessspiv: any other comment than that ?07:57
vilalifeless: that's what I've currently implemented for SmartTCPServer_for_testing07:57
BlindWolf8spiv: Would it have to do with my version being beta on the server?07:57
vilalifeless: spiv mentioned the hook as being useful in the general case too07:57
spivlifeless: it's not just about threads, it's about FDs07:57
lifelessvila: qualify that please :) - what is the that that you speak of07:57
BlindWolf8spiv: OK, I'll try it out07:57
vilalifeless: collecting the threads07:57
spivlifeless: you can prod the test server to shutdown its threads and close its fds07:58
BlindWolf8spiv: SFTP Test: FAIL07:58
lifelessspiv: right; and we can use the paste glue to raise exceptions in the threads to close their fds immediately etc07:58
spivlifeless: but what about the client side?  The transport objects won't necessarily notice their connection has had the other side close and thus close their fds too.07:59
vilalifeless: I haven't implemented killing threads yet as I'm unclear about adding a ctypes dependency here, and even more if it's needed outside the tests07:59
vilaspiv: client side is a different problem *anyway*07:59
spivvila: ?  I thought we were discussing transport.disconnect?07:59
vilaspiv: no, we're talking about connections received by the smart server08:00
spivBlindWolf8: but you can ssh to that server as the same user and make that directory (or even "bzr init-repo")?08:00
lifelessspiv: client side sockets only matter for zope.testing AFAICT08:00
lifelessspiv: and for them, 'del my_branch' should be entirely sufficient.08:00
lifelessspiv: in fact, the test attribute cleanup we already do should remove all references; it may be we have cycles to take care of.08:01
BlindWolf8spiv: I can ssh in and make the dir and run "bzr init". Have not tried "bzr init-repo"08:01
BlindWolf8spic the directory that I'm using has nothing in it. DOes that matter?08:01
lifelessspiv: While I dislike transport.disconnect intensely, I'm resigned to it coming in, but I don't see that thats a hook situation - and a dict of things such a hook would call seems terrible.08:01
BlindWolf8spiv: the directory that I'm using has nothing in it. Does that matter?08:02
spivBlindWolf8: no, that doesn't matter08:02
spivBlindWolf8: I'm not sure what the problem is :(08:03
lifelessBlindWolf8: whats the URL you're using ?08:03
lifelessBlindWolf8: if it is really ' bzr+ssh://user@site.com:port'08:03
lifelessBlindWolf8: then you're trying to create a repo in the root of the server08:04
spivBlindWolf8: there should be no difference in access between "ssh user@host mkdir foo" and "ssh user@host" followed by typing "mkdir foo" at the prompt08:04
lifelessBlindWolf8: which only 'root' can do08:04
BlindWolf8lifeless: the repo isn't public08:04
lifelessBlindWolf8: sure, I get that you would want to obfuscate the url.08:04
lifelessBlindWolf8: I'm saying that if you don't include a *path* after the port, its making it in /08:04
lifelessBlindWolf8: which, unless you're root, really isn't going to work.08:04
spivlifeless has a good point, bzr+ssh (and sftp) URLs in bzr are relative to the root of the filesystem, not the home directory.08:05
BlindWolf8lifeless: hmmmm...08:05
lifelessa much more usual path would be e.g. /srv/myrepo, e.g. bzr+ssh://user@site.com:port/srv/myrepo08:05
spivlifeless: well spotted!08:05
lifelessand you'd mkdir /srv/myrepo on the server as root first, and chown it to your group/user as appropriate.08:05
lifelessspiv: :)08:05
BlindWolf8lifeless: that's really odd...I would think that bzr would default to the user's home dir08:06
lifelessspiv: really, I just want to get you to tell me about my patch in more detail, can't have you spinning on helping a user ;)08:06
BlindWolf8lifeless: as I made a special user with a specific home directory for security reasons08:06
lifelessBlindWolf8: we use /~/ to mean 'the users home directory'08:06
spivBlindWolf8: but then how would you give a URL to somewhere not in the home directory?08:06
lifelessBlindWolf8: as long as you have a new bzr on both ends that will work fine08:06
BlindWolf8lifeless: sorry for bugging you guys :P08:07
lifelessBlindWolf8: hey, no problem at all.08:07
spivlifeless: he has 2.2b3 on the server, so /~/ should be fine08:07
lifelessBlindWolf8: it was confusing you, and we're here to help :)08:07
BlindWolf8lifeless: lemme try it out guys08:07
spivBlindWolf8: Thanks for your patience!08:07
spivWe should make this less confusing somehow, although I'm not immediately sure how.08:08
BlindWolf8lifeless: I guess that's what I get for assuming that bzr would see the user taht logged in and go "Oh, OK, I'll make it in their home dir"08:08
spivSome sort of verbose logging flag for the server, I guess.08:08
lifelessBlindWolf8: indeed, bzr is more like wget than scp08:08
spivBlindWolf8: you can configure the SSH server to do that if you want in the authorized_keys file08:09
spivBlindWolf8: http://doc.bazaar.canonical.com/development/en/admin-guide/security.html#using-ssh08:09
BlindWolf8Thanks guys08:10
BlindWolf8OK, here's what happened...08:10
BlindWolf8Did the command, then the it said it created it. I was like :) but I clicked Close.08:10
spivlifeless: so regarding your patch08:10
lifelessI want a 'deprecated_method_blows_up' switch08:11
BlindWolf8error'd out complaining about it not being a repo, and I was like :(, but I did Open URL and it looks like it's all good08:11
spivlifeless: python -Werror, or something08:11
lifelessspiv: switched the readlock/deprecated lines, works better08:12
BlindWolf8Thanks again guys. I think I got it from here.08:12
BlindWolf8You guys won't be forgotten08:13
lifelessgreat. Do ask again if you have further issues ;)08:13
spivlifeless: the code change looks ok after a quick look.  Moving this stuff to format does still feel a bit weird but the result doesn't seem worse structurally.08:13
BlindWolf8You two will get credit on our game :P08:13
lifeless\o/08:13
BlindWolf8hahah08:13
BlindWolf8l8r guys08:13
spivlifeless: try/finally blocks make me a bit sad, but I realise bzrlib.cleanup isn't as convenient :/08:13
spivlifeless: I haven't read the docs yet08:14
spivlifeless: and that's my comments so far!08:14
lifelessso, I haven't done the 'migrate callers across' yet08:15
lifelessit may look worse after that08:15
lifelessthe try:finally stuff - I was going to ask about the best way to do it now08:15
lifelesshowever, I realised I only have one write lock in each code path, and it was previously @decorated anyhow08:15
lifelessspiv: what might be nice is an @ decorator to cleanup08:16
lifeless@cleanup('source', 'read_lock')08:16
spivHmm, that might be a touch evil.08:16
lifelessspiv: meaning 'call source.read_lock and add the result's unlock to a cleanup object just for this'08:16
lifelessspiv: I wants sugah08:16
spivYou'd need to burrow uncomfortably deeply in the code object to find which argument is called source08:17
lifelessspiv: SUGAH08:17
spivIf you required that the relevant arg is a kwarg it wouldn't be so bad.08:17
lifelessyeah08:18
lifelessis it 3.2 that has kwawrgonly stuf?08:18
spivSugar is nice, but sugar that has to do complex things at import time and possibly rely on details that aren't guaranteed outside of CPython...08:18
spiv3.something, at least.08:19
spivThe exact value of ".something" is a bit academic as far as bzr is concerned :)08:19
lifelessanyhow08:20
lifelessI'll polish this a bit08:20
lifelessbut I like the following bits:08:20
lifeless - no VFS for bzr branches08:20
lifeless - no runtime introspection to decide which are bzr and which aren't08:21
lifeless - heads in a direction where we could do a multimethod without the somewhat ugly Remote* magic we had to do for similar stuff in Repository.08:21
spivIt would be less pretty, but @cleanup(0, 'read_lock') [where 0 is which positional argument to cleanup] wouldn't be unreasonably ugly to implement.08:22
spivYeah.08:22
spivThe part where it allows looms to DTRT with minimal fuss is a good sign that this is good.08:23
lifelessthis is the loom patch so far08:23
lifelesshttp://pastebin.com/JnspcZMf08:23
spivlifeless: so, with the PQM issues08:23
lifelessshould be the entire thing08:23
lifelessthe key bit is08:23
lifeless            # If we're copying from a proxied Loom - a RemoteBranch, unwrap it.08:24
lifeless            if not isinstance(source, LoomSupport):08:24
lifeless                source._ensure_real()08:24
lifeless                source = source._real_branch08:24
lifelesswhich is a little not-right08:24
lifelessalternatively we could make RemoteBranch more pass-through08:24
spivlifeless: I have a submission that is failing without any useful hints in the reply from PQM.  If I turn off subunit in the makefile for that submission will that help me?08:24
lifelessspiv: yes08:24
lifelessspiv: [probably, maybe not]08:24
spivOk, good.08:25
spivYeah, that's a bit of a hack, but at least it'll make things work now, and we can make it elegant later.08:26
lifelessits not as gross as it could have been :)08:26
spiv:)08:27
=== radoe_ is now known as radoe
BlindWolf8Hello?08:41
parthmBlindWolf8: hi08:42
spivHello again08:43
spivparthm: oh hey08:43
parthmspiv: hi :)08:43
vilaparthm: \o_08:43
spivparthm: I wanted to thank you for answering that active directory question on Launchpad08:43
spivparthm: so... thanks! :)08:43
parthmvila: _o/08:43
parthmspiv: np. i don't know much about active directory ... but some errors were general enough :)08:44
vilaparthm: I second spiv thanks :)08:44
BlindWolf8spic: I just have one more quick question about bzr_ssh_path_limiter: Can I just pop that script anywhere?08:44
BlindWolf8spiv: I just have one more quick question about bzr_ssh_path_limiter: Can I just pop that script anywhere?08:44
spivBlindWolf8: yeah, pretty much, although if it's not on PATH you'll have to give the full path to it in authorized_keys I think08:45
BlindWolf8spiv: Right. Anything else I should know about the files that got unzipped from the original bzr source?08:46
BlindWolf8spiv: I'm assuming they're safe to delete since I installed bzr and bzrtools?08:46
spivSure, it's safe to delete the stuff you unzipped.  If you are interested in the contents of the doc/ or contrib/ or whatever directories again you can always unzip again.08:47
BlindWolf8spiv: OK, great!08:47
BlindWolf8spiv: You guys have made my night!08:48
spivBlindWolf8: :)08:48
parthmi see a bunch of gc warning for '--no-plugins selftest test_lock' on trunk. is this expected? http://pastebin.com/Qj8tJ6kg08:48
BlindWolf8spiv: Bye once again spiv. Everything seems to be working perfectly now! :)08:51
spivBlindWolf8: great!08:51
spivparthm: not sure if it's expected precisely, but it certainly would be good to fix08:51
parthmspiv: ok. i will file a report for now so its not lost.08:52
spivparthm: looks like a one-line fix08:52
parthmspiv: oh. where should i look?08:53
parthmspiv: ah. line 55 ... let me check.08:53
spivparthm: yeah, it's a one-liner, I'll just submit that to PQM right now, it's trivial (and IIRC my fault!)08:55
parthmspiv: ok. sure. just for my info. what is the fix?08:56
spivparthm: self.addCleanup(branch.unlock) immediately after branch.lock_read()08:57
spivThe warning is about an object that was locked being garbage collected, i.e. something forgot to unlock it08:57
parthmspiv: ahh. ok. thanks.08:58
spivIn this case, the "something" is the test itself which does the lock_read but never unlocks.08:58
parthmspiv: cool.08:59
lifelessspiv: parthm: a nice way is09:02
lifelessself.addCleanup(branch.lock_read().unlock)09:02
lifelessthat idiom makes missing unlocks more obvious09:03
spivlifeless: Hmm, I actually don't like that so much09:03
spivIt emphasises the cleanup rather than the locking.09:03
spivWhich seems backwards to me09:04
lifelessspiv: branch.lock_read(register_with=self.addCleanup) ?09:04
spivI'd almost rather have self.lock_read(branch) helpers.09:04
lifelessspiv: helpers like that would be ok too; that said I don't think it particularly emphasises anything other than 'if you lock you should unlock'09:05
spivHmm, it's wordy and I'm not sure if pushing that into the lock_read contract is wise, but otherwise yes I'd prefer that.09:05
lifelessspiv: I found bugs when I introduced the idiom to builtins.py09:06
lifelessspiv: (in plugins)09:06
spivI definitely agree with the overall direction of pushing it to be a single step09:07
lifelessspiv: I think its worth having an idiom like this - even if you spell it differently - to make ... right09:07
lifelessspiv: if you feel strongly that it should be different, 2.2 would be the time to change it :)09:07
spivTrue!09:07
spivBut not 6pm on a Friday :)09:07
lifelessindeed ;)09:07
spivI'll make a note to look at this on Monday09:08
lifelesspersonally09:08
spivWould you like me to mail the list about it, or just propose a patch to add lock_read/lock_write helpers to TestCase and Command?09:08
lifelessI think the loose coupling of returning a cleanupable is better than locks knowing they need to do something with a cleanup09:08
lifelessspiv: I'm entirely happy with what we have; I won't block other changes, but I don't see them as being better.09:09
lifelessJust, at best, different.09:09
spivI'm not totally sold on the tastefulness of such a patch, which is why I hadn't yet done so, but I'm not finding the new idiom very loveable either.09:09
lifelessspiv: ok09:09
lifelessspiv: then it sounds like brainstorming to find another way to spell 'these things are connected' is appropriate.09:10
spiv*nod*09:10
spivMy current thinking is: I think the returning a callable is a sound design, but lock_read and lock_write in TestCase and Command are overwhelmingly our common case so let's make that stupidly easy to do right.09:11
spivAnyway, thanks for the quick teddy bear.  I'll followup on Monday.09:13
lifelesssounds good09:13
mobbyHi, I've just tried to add the bazaar beta PPA repository but I can't seem to access the signing key. I've tried through the terminal and through the web browser. Any ideas?09:33
mobbyClicking the link on the launchpad site doesn't load and the terminal times out after a while09:33
mobbyI've tried clicking on the links for the stable and the nightlies as well and they do the same thing09:34
parthma 300sec timeout for local lock contention ("Will continue to try...") seems quite long. Does this need to be high? Maybe this should be reduced?09:36
parthmmobby: seems to work for me. this is the url i got http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xD702BF6B8C6C1EFD09:38
mobbyhmm strange, I'm in work so it might be our proxy settings. I'll try something else.09:39
mobbyyeah it was our proxy. Apologies, should have tried that first. Thanks for the help.09:47
cbzwhat does 'conflicting tags' mean?12:02
MezCan I force bzr to pick up the "whoami" info from an environment variable?12:12
jelmerMez: hey12:12
jelmerMez: I think it honors $EMAIL12:12
Mezjelmer: hey :)12:12
MezAs these feckers here generally all log in as the same user, I want to try and set the whoami on their ssh key12:13
jelmer:-)12:13
jpds#export BZR_EMAIL="$NAME <$EMAIL>"       # Override email for Bazaar.12:19
Mezjp~.12:37
Mezjpds: except - If you've set it in bzr.conf - it doesn't override - and also - "export" would make it the same for anyone who logged in - surelt... so X logs in and then Y logs in - X's commits show as coming from Y12:38
Mezso I've set it based on the SSH key used to login12:38
jpdsMez: Yep, that's what I have in my shell conf.12:38
Mezjp~.environment="EMAIL=Martin Meredith <martin.meredith@mobilefun.co.uk>" ssh-rsa AAAAB3NzaC1yc2 <-- etc etc12:39
Mezo_o12:39
Mezenvironment="EMAIL=Martin Meredith <martin.meredith@mobilefun.co.uk>" ssh-rsa AAAAB3NzaC1yc2 <-- etc etc12:39
Mezin authorized_keys12:39
=== nlisgo_ is now known as nlisgo
=== gnomefreak76 is now known as gnomefreak
ciss_hi13:48
n3lQuick question... just install bzr on mac os x.  Where is the gui app installed to?  Not found in applications.13:58
n3lNevermind... bzr explorer : this isn't noted in bzr -h : https://answers.launchpad.net/bzr/+question/9942014:00
ciss_what is your preferred strategy to set up ignored files: do you explicity exlcude files and directories, or do you exclude everything and then explicitely add files?14:10
parthmciss_: you can add patterns for files to be ignored to .bzrignore (see 'bzr help ignore')14:15
ciss_parthm, i'm aware of that. i was just curious if you prefer white-listing or black-listing files14:17
ciss_it's a workflow related question14:17
parthmciss_: i tend to add files i need to ignore at the pop up as unknown in 'bzr st'. so black-list.14:20
=== deryck_ is now known as deryck
krisives-gearboxDoes anyone know how nested branches in BZR 2 are handled?17:10
jelmerkrisives-gearbox: there is no support in the core for nested branches17:12
jelmerkrisives-gearbox: there are some plugins that provide some degree of support17:12
krisives-gearboxjelmer: That's what I see on the documentation, but I don't know what BZR will do when it encounters nested .bzr directories17:12
=== beuno is now known as beuno-lunch
krisives-gearboxit appears to not touch to sub branch17:12
jelmerkrisives-gearbox: afaik it will ignore them, not sure what happens if you try to 'bzr add' a nested branch17:13
krisives-gearboxI tried bzr add from inside the nested branch and out and I can't seem to get files in the sub directory/branch to get added to the outer branch17:13
krisives-gearboxI'm not trying to do "true nested trees", I don't care if things propigate, I just want it to version those files17:14
jelmerI don't think there is a way to version those files in the outer rather than the inner branch17:14
jelmernot unless you move the .bzr directory of the inner branch out of the way somehow17:14
krisives-gearboxYeah, which isn't worth getting into lol17:15
krisives-gearboxHave you ever used Stacked Branches?17:15
jelmerkrisives-gearbox: yep17:17
krisives-gearboxI'm using Bazaar to version web software for a company that has created 3 versions of software that share many common similarities17:18
krisives-gearboxA and B are the same, so B can be a branch of A because their changes can be shared easily17:19
=== IslandUsurper is now known as IslandUsurperAFK
krisives-gearboxC is the problem, because we want to be able to make changes to C and push them to A (which will ultimately go to B)17:20
jelmerkrisives-gearbox: stacked branches are just a storage optimization, they won't help you in this regard17:20
krisives-gearboxI see, have you used ConfigManager?17:24
krisives-gearboxI basically need to make a frankenstein branch17:24
krisives-gearboxTake this, that, this, etc. and throw it all together into a new one17:24
jelmerno, I don't have experience with config-manager17:26
=== deryck is now known as deryck[lunch]
=== beuno-lunch is now known as beuno
=== deryck[lunch] is now known as deryck
=== IslandUsurperAFK is now known as IslandUsurper
ericmoritz\0I mean18:43
=== Pilky_ is now known as Pilky
krisives-gearboxDoes anyone know how I can specify a FTP that has @ in it's username?19:37
krisives-gearboxLike foo@bar on baz.com19:37
krisives-gearbox(bar and baz are the same though)19:38
krisives-gearboxfoo@baz.com doesnt work because foo isn't foo@bar19:38
fullermdURL-encode it.19:38
krisives-gearboxI'll give that a shot19:38
krisives-gearboxfullermd: Thx, where do I send the remaining amount on my gift card ?19:40
krisives-gearbox:)19:40
fullermdSorry, I only accept Krugerrand and first-born.19:40
krisives-gearboxDamn, and I skipped right to second-born, so I can't compensate you there19:41
fullermdWell, maybe you can fill in the first-born later.  I'll waive interest charges for a year.19:41
krisives-gearboxWell, I do have a few spare dollars on the gift card, you're welcome to it19:41
krisives-gearboxBZR folks need more love19:41
krisives-gearboxI'm willing to fund git away from usage19:42
krisives-gearboxJust so I don't have to remember SHA1 hashes19:42
krisives-gearboxeither way, thanks for the help :)19:44
fullermdnp   :)19:44
krisives-gearboxare you a bzr dev fullermd?19:45
fullermdOh, no.  I just sit around and harass them.19:45
krisives-gearboxgreat minds think alike19:46
krisives-gearboxI made a script to doctor up merging .moved directories to contain the old unversioned contents with the new versioned contents overriding it, I wonder what chance I have of getting that included as a --cleanup-moved-dirs ?19:47
krisives-gearboxand if I did, how long until that version could trickle down to my users19:47
ciss_hi, i could use a little help on an ignore rule: i have a folder structure "./folderA/folderB/folderC/fileA". i added an ignore rule "folderA/folderB" expecting everything below to be ignored as well. still bazaar wants to add fileA19:48
ciss_do i really have to use "folderA/folderB" and "folderA/folderB/**/*" each time i want a folder and its contents to be ignored?19:50
fullermdIs folderC versioned?19:51
ciss_oh. yes, it is.19:52
* fullermd nods.19:52
fullermdThat'll break the ignore chain then.19:52
ciss_thanks a lot, knowing this should end all my troubles with .bzrignore :)20:00
ciss_is it possible to commit only removed files, but keep modified ones for a later commit?20:03
TresEquisciss_: you can name the specific files as arguments to 'bzr commit'20:03
TresEquise.g. '$ bzr commit -m "Should have ignored." folderA/folderB/folderC/fileA'20:04
ciss_sorry to ask: (how) can i use a text file as source for the file listing? it's a rather long list.20:05
fullermdNo way with bzr itself.  You could 'bzr ci `cat foo`' or 'cat foo | xargs bzr ci' or the like, assuming it'll fit on the command line and not get in trouble with special chars.20:06
fullermdOr you could go the other way around, and shelve the other changes, commit, and unshelve.  That might be easier if the 'other' changes are a small list.20:06
fullermdci also has an --exclude you could use to name the things not to commit.20:06
ciss_thanks20:09
hazmatis there anything like a more permanent shelf20:58
hazmatlike i can unshelve some changes, but still keep the patch/content shelved20:59
radoehazmat: bzr unshelve --keep?21:03
hazmatradoe, perfect, thanks21:04
=== Leonidas_ is now known as Leonidas__
=== Leonidas is now known as Leonidas_
=== Leonidas__ is now known as Leonidas
maxbbzr-svn is so amazing, but it's somewhat crippled when your project is one of many in a repository with half a million revisions :-(22:52
jelmermaxb: have you tried disabling the cache?22:59
maxbjelmer: It improved matters considerably for read only operations23:09
maxbHowever, when I tried to push back, I got bit by 'determining revprop revisions'23:10
jelmermaxb: do client and server both run svn >= 1.5 ?23:12
maxbyes, they do23:12
jelmermaxb: can you get me a traceback of that?23:14
jelmer(Ctrl+\ then running bt)23:14
maxbjelmer: oh, sorry. of what? pushing?23:23
jelmeryeah23:23
jelmerof the step taht is takin too long23:23
maxbI will, but not for a while - I'm in the middle of actually building the cache and I don't really want to interrupt it23:23
maxbonly another 240 thousand revisions :-/23:24
jelmerheh23:24
jelmermaxb: please file a bug with the traceback23:30
maxbwill do23:35

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