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

slangasekmhall119: yes, '-- -k<keyid>'00:09
slangasek(can also be set in an env variable; this is actually just passed through to dpkg-buildpackage in both cases, bzr doesn't use it)00:09
pooliehi slangasek00:10
slangasekpoolie: hey there00:18
slangasekso I have a fun challenge for someone here :)00:19
poolie:)00:19
slangasekLinux-PAM upstream recently migrated their VCS from CVS to git00:21
slangasekand I had a full import of the CVS history into my bzr...00:21
slangasekand now I need to make bzr believe that the git history is the same00:21
slangasekhow do I do that? ;)00:21
jelmerthat's the parallel import problem again :-/00:22
slangasekso, what solutions have you guys come up with? :)00:23
slangasekdoesn't have to be particularly automated; I'm willing to do some grunt work here for a one-time fix-up00:26
slangasekbut I'd prefer not to do this as a rebase, since there are plenty of merge points in the history which I guess would make that painful00:27
pooliehm00:32
poolieso you have a lot of packaging branches, or other branches, based off that their previous import?00:32
pooliethanks for fixing all the import branches, and for the sru, jelmer00:33
poolieand for denting about it, for that matter00:33
slangasekpoolie: a fair number of branches, yes00:33
pooliethe pragmatic thing now would probably be to rebase them00:34
poolieitcould be nice to have a way to tell it to treat some revisions as aliases for others00:34
poolieperhaps, rebase them, and file bugs about any aspects of rebasing that don't work well00:35
slangaseknot having used it before, I'm nervous about what bzr rebase is going to do with these branches that have been repeatedly merged from upstream00:38
slangasekbut I'll give it a go and see what happens00:38
pooliei'd find it useful to at least know what happens00:38
pooliegenerally speaking the parallel import problem jelmer grimaced at is something we will improve in future releases00:39
slangasekpoolie: so, I can't get bzr rebase to do anything useful :)03:49
slangasekit either gives me "Branches have no common ancestor, and no merge base revision was specified", or "Base branch is descendant of current branch. Pulling instead" depending on how I misuse it :)03:50
lifelessslangasek: you may find replay is better04:05
slangaseknot so far as I've been able to understand it so far04:06
lifelessbzr's rebase is a bit tightly coupled to the idea of resetting an in-progress branch04:06
slangasekreplay just gives me a glorious number of conflicts04:08
slangaseklifeless: my branch history starts with the CVS-imported upstream branch, branches from that to add the packaging branch, and repeatedly merges the upstream branch into the package branch over time.  What commands should I be using to get the replay I want?04:11
lifelesssomething like replaying your first interesting commit on the matching commit from the git imported branch04:12
lifelesssadly hwat you want to do is not well supported yet04:12
slangasekmy first interesting commit also happens to be a merge resulting from 'bzr join' of the upstream CVS repo with my svn package history ;)04:14
slangasekso when I do 'bzr replay -r694 ../pam.debian' and get a bunch of conflicts for all the upstream files, is that expected, or is that a sign I'm running the wrong command?04:15
slangasek  Path conflict: <deleted> / debian04:21
slangasekthat one seems non-negotiable04:21
slangasekI suppose I might be able to redo the join04:21
slangaseklifeless: given that I know I have a 1:1 correlation between git revisions and bzr revisions, is there any way to directly rewrite the revision ids?04:32
lifelessslangasek: yeah, read them in, change them, write them out - which is what bzr-rewrites commands provide *an* interface to04:42
lifelessthe problem is getting to do what you want04:42
lifelessslangasek: I don't have an easy canned recipe for you though04:42
slangasekhow about pointers to the right documentation to the part of the bzr internals I need to be hooking into? :)04:43
slangasekthat's got to be a better use of my time than trying to manually resolve merge conflicts for every file in the tree04:43
mwhudsonyou might be able to use fast-import and some sed to translate the imported-from-cvs revision id to the imported from git revision ids?04:44
mwhudsonwould be horrible and fragile, but might work04:44
lifelessso in theory generating an appropriate rewrite map for bzr-rewrite04:44
lifelessand using that from its library would DTRT04:45
lifelessbzr-rewrite started life as a revisionid-rewriter for bzr-svn04:45
mwhudsonah right, i guess that's a more tasteful way of achieving the same end04:46
* slangasek nods and has a look04:47
slangasekthanks :)04:47
lifelessthe frustrating thing about bzr-rebase is its -so close- and yet so far04:48
pooliehi vila?07:27
poolievila, it would be great if there was a test fixture that set one config variable just temporarily07:28
poolieor a context manager07:28
poolieor is there such a thing?07:29
vilapoolie: hi07:59
pooliehey there07:59
pooliei'm just finishing 22046407:59
vilahmm07:59
pooliei'm going to just turn that behaviour off by default07:59
vilafirst thing that comes to mind is: one config variable in *which* context ?07:59
pooliewell, that's a good question07:59
pooliefor my purposes, i just need something that will be seen by the code under test08:00
vilathat's a good answer :)08:00
poolieit looks like i can just modify GlobalConfig because that's already isolated08:00
vilahmm08:00
vilaif that fits your needs, go for it08:01
vilaMy gut feeling is that this may break in edge cases (intersection between where the option can be declared and its default value) but nothing really serious08:01
vilai.e. I doubt we encounter cases where an option *cannot* be set in GlobalConfig08:02
pooliemy other question was whether the option registry type thing is landed08:02
pooliei could just look :)08:02
vilayes08:03
vilaerr08:03
vilayes it has landed08:03
vilanot yes you can look :)08:03
poolieok08:05
poolieperhaps since this is already so big i should do that in a follow on08:06
poolieare we going with a style like 'bzrlib.lockdir.break' or 'locks.break'?08:07
pooliei might have argued for the former but for something people have to type it now seems too long08:07
pooliei like the second though, because it will group things together08:08
vilasame here, I think I summarized that in devnotes after jelmer's review08:08
vilaeseentially it goes one step further by removing 'bzr.' for options everybody share and leave plugins decide to prefix with their name if/when needed08:09
pooliewfm08:10
vilamy initial goal was to clearly tear the various name spaces apart but in retrospect that was too much08:11
vilacollisions are guarded by the registry so we are pretty safe08:11
poolieso i could move the documentation and the default into the registry?08:17
vilayes. If you want the default value to be taken into account, you need to use GlobalStack, not GolbalConfig though08:18
vilafixing tyops of course ;)08:18
vilahmm08:19
viladepending on whether your tests inherit from TestCase or TestCaseWithTransport you can even use _load_from_string for the former but that's maybe the fixture you're after ?08:20
poolieok, so i've made the option off08:22
pooliei might send it in08:22
maxbjelmer: First time I've ever seen "review needsfixing" and "merge approve" used together! :-)08:31
jammorning all08:32
poolienews-file merge doesn't seem really to be working on pqm08:32
pooliehi max, jelmer08:32
poolievila, ok, sent08:33
poolieand, i think that's it for me for now08:33
maxbHi poolie. Thanks for the udd reviews. Are you happy for me to land them, though you didn't toggle the MP status as well as commenting?08:34
vilapoolie: \o/08:34
vilapoolie: enjoy your week-end08:34
pooliemax, yes08:35
jampoolie: I'm pretty sure it isn't configured in pqm since we moved to the new layout08:36
jam(news-file merge)08:36
vilapoolie: the news conflicts I've seen recently strongly hint that indeed it's not configured properly08:37
vilaspiv knows better and commented that something weird was going on there as he didn't manage to make it work with losas (with weird == *I* don't remember/understand the details)08:38
=== hunger_ is now known as hunger
vilamgz: ping09:50
jamvila: I think the main issue is that news-merge is configured to merge NEWS and not "bzr-2.2.txt bzr-2.3.txt, etc."09:56
vilareally ? It's *that* simple ? That would be nice and be easy to fix then09:57
jamvila: I don't know 100%, but that is at least a start09:58
vilajam: juggling eggs right now, could you check with a losa ?09:59
stewarthi all!11:22
stewarti'm pretty sure there's at least one bug with a shared repo and several processes branching a RepositoryFormatKnitPack1 into it11:22
stewart(e.g. what you'd typically do for a jenkins setup of having the /jenkins working dir be a bzr repo)11:23
Riddellstewart: so report a bug?11:31
stewartRiddell, yeah, i should really do that :)11:31
stewartRiddell, i'm also going to upgrade the repository formats of those branches, and that'll certainly fix it11:31
Kamping_Kaiserhi, are new bugs forwarded to this channel?11:48
RiddellKamping_Kaiser: no but they get triaged by bazaar developers11:50
=== CardinalFang__ is now known as CardinalFang
Kamping_KaiserRiddell: thanks. i wont expect to see it here when i report it then :)11:52
Riddellcanonicalers: what shall I do about bug 777507 ? it's a problem in qbzr in maverick, the fix is already backported to qbzr/0.19 branch11:52
ubot5Error: Launchpad bug 777507 could not be found11:52
Riddellso I guess the resolution is either to do an SRU or just tell the guy to checkout the branch and use that11:53
RiddellI'm not sure why this bug is marked private, there doesn't seem to be anything very private about it, but he seems to have done so explicitly11:54
vilajam: thanks for the reviews, can you look at https://code.launchpad.net/~gagern/bzr/bug112390-kind-marker-optional/+merge/63080 again now that Martin answered your previous review ?11:58
ubot5Ubuntu bug 63080 in linux-source-2.6.22 (Ubuntu) "snd-intel-hda requires options to work on AD1986A" [Undecided,Won't fix]11:58
vilagood bot, but no sugar :)11:59
Kamping_Kaiserwhile bzr import-dsc is running, where is the import cache stored? ( i assume ther is one). i'm waiting for linux-2.6 to import an its taking its sweet time.12:17
Kamping_Kaiseron the subject of speed, does anyone else have speed issues trying to tab complete import-dsc? i have a 4-5second lag from hitting tab to the complete happening12:17
spivstewart: yes, there is12:23
spivstewart: https://bugs.launchpad.net/bzr/+bug/70934912:24
ubot5Ubuntu bug 709349 in Bazaar "bzr: ERROR: bzrlib.errors.RetryWithNewPacks: Unprintable exception RetryWithNewPacks" [High,In progress]12:24
spivstewart: The Twisted buildbot has encountered the same problem(s).12:24
Kamping_Kaiserhi all. bzr import-dsc has failed, claiming to be out of disk. but its on a filesysem with 91GB free. http://paste.debian.net/119421/ is the output. i'm running again with --verbose atm12:28
vilaKamping_Kaiser: what about /tmp ?12:28
Kamping_Kaiservila: 1.4gb untill this filled it. i'll clear it out and try again12:33
Kamping_Kaiser(its a tempfs)12:33
vilaKamping_Kaiser: right, probably where the problem is coming from then12:33
vilaKamping_Kaiser: overriding TMP (or TMPDIR ?) may address the issue for this command12:34
Kamping_Kaiservila: i'l try them out, thanks12:37
vilaKamping_Kaiser: if import-dsc doesn't respect them, it may be worth filing a bug (your use case is damn valid), I don't know the implementation well enough to say12:38
Kamping_Kaiservila: it takes 15-20 min to fail, so i'll tinker with those variables and let you know how i get on12:40
Kamping_Kaisermaybe tomorrow :/12:40
vilaKamping_Kaiser: you mean filing the bug or re-trying with the variables ?12:41
Kamping_Kaiservila: re-trying with teh variables12:41
vilak12:41
Kamping_Kaiseri tried to patebin the failing run, but pastebin won't take > 90KB of text (scary, i didn't think it was that big)12:42
vila!paste12:42
ubot5For posting multi-line texts into the channel, please use http://paste.ubuntu.com | To post !screenshots use http://imagebin.org/?page=add | !pastebinit to paste directly from command line | Make sure you give us the URL for your paste - see also the channel topic.12:42
vilaThat paste ?12:42
Kamping_Kaiserit was paste.debian.net, i can try that one if you'd like12:43
vilaIf you intend to re-run tomorrow, try this one if you think it may help confirm/infirm TMP support, otherwise better wait12:43
Kamping_Kaiserubuntu paste accepted it... all 18000 lines. http://paste.ubuntu.com/623335/12:46
Kamping_Kaiseranyway. i'll let you know how hte others go. thanks again for your help vila12:47
vilagood paste site ;) But yeah, no way be conclusive about TMP support  without either trying or reading the source :-/12:49
Kamping_Kaiserdefinitely disk space, failed at a later point that time. now trying with TMP="~/bzr-temp"13:02
jelmerRiddell, hi13:08
jelmerRiddell, in ~jr/bzr-explorer/unstable you seem to have updated the version string but not merged in a new version13:09
vilaKamping_Kaiser: gee, tomorrow already ? Your days are short :)13:09
Kamping_Kaiservila: very fast clocks13:15
vilaha, I see, one more overclocking freak :)13:15
Kamping_Kaiserhehe13:16
Kamping_Kaiserback in the day *reminices*13:16
=== medberry is now known as med_out
Kamping_Kaiservila: \o/ TMP worked, sans a directory creation bug13:37
Kamping_Kaiservila: you are a god among men :D13:37
vilajust lucky ;) And owing to our elders defining TMP... ;)13:38
Kamping_Kaiser:)13:39
dreamkxdHello, I am Yonggang Luo13:46
dreamkxdCalling for Jelmer Vernooij13:46
jelmerhi13:47
jelmerdreamkxd, that's me13:47
dreamkxdOK, do you see my comments?13:47
dreamkxdOK, I explain my idea again,13:48
dreamkxdSuppose trunk is the first directory we created, we called it the start folder, named with "default"13:48
jelmerdreamkxd, yeah, replying now13:49
dreamkxdWe know under svn, there is an copy operating. we can using it to tracking new branches, and new tags.13:49
dreamkxdalmost every tags and branches is created like this, if it's not, we can using config file to show that.13:50
dreamkxdAfter this, we have some rules.13:50
dreamkxd1.if directory A copied from directory B, and B is an existed branch or tag, then A is an branch or tag, this is the most frequently condition13:51
jelmerdreamkxd, how do you know which folder is the "default" folder?13:51
jelmerdreamkxd, also, this requires looking at the entire history. Some repository have over 1 million revisions13:52
dreamkxdYes, we suppose trunk is the default folder.13:52
dreamkxdYes, but that's worth, we only convert it one time, and that's necessary, compare to the fact time about converting the content, the revision log is much more quicker13:53
dreamkxdSo we just ignore the speed problem first:) we won't converting the whole repo day by day:) we need suffer one time:)13:54
jelmerdreamkxd: at least for the default behaviour, O(history) is unacceptable13:54
jelmerdreamkxd: what about situations where the original trunk was removed and a new trunk is created?13:54
jelmerdreamkxd: also, are there any situations you've found where the existing behaviour doesn't work?13:54
dreamkxdIndeed, I think the current bzr-svn is not as fast as we think, at least at the last time when I using bzr-svn import llvm, it's struggled:(13:55
jelmerdreamkxd, in other words, what's the problem you're trying to fix?13:55
jelmerdreamkxd: That's not a good reason to make it even slower though.. :)13:55
dreamkxdNow, It's will getting it's faster,13:55
dreamkxdindeed, i've ever using hgsubversion to convert llvm, and it's OK, at least on the time:)13:56
dreamkxdbut bzr-svn toggled....13:56
jelmerdreamkxd, have you tried bzr-svn trunk? launchpad doesn't seem to have problems with llvm and it worked fine on my machine too13:56
dreamkxdyou means bzr svn-import ?....13:56
Riddelljelmer: my main concern with that bzr-explorer packaging branch was to update the bzr dependency, but I could do the package update too13:57
jelmerRiddell: is the new dependency only since bzr-explorer 1.3.0?13:57
dreamkxdWhat's your command, I may have an try:) Anyway, llvm is complicated, I don't think at the current stage, bzr-svn will convert it well..13:58
dreamkxdWell, I am not meas only import the trunk.... but also retains the branches and tags informations....13:58
jelmerdreamkxd: Have you tried? I don't see anything in the repository that could confuse bzr-svn13:59
dreamkxdErr....13:59
jelmerdreamkxd: "bzr svn-import http://llvm.org/svn/llvm-project/llvm/" is what I would try13:59
jelmeror http://llvm.org/svn/llvm-project/llvm/trunk13:59
jelmerI mean "bzr branch http://llvm.org/svn/llvm-project/llvm/trunk"13:59
dreamkxdYes, that's what I was tried..13:59
jelmerdreamkxd: did that create incorrect branches?14:00
dreamkxdbzr svn-import http://llvm.org/svn/llvm-project/llvm/ that's I wanted.14:00
dreamkxdSo, can you give me an list of branches?...14:00
dreamkxdThen I can tell you what's lost.14:01
dreamkxdBecause I was failed:(14:01
jelmerdreamkxd: Sorry, can you be more specific? How did it fail?14:01
jelmerwhat was missing?14:02
dreamkxdIt's running for an long time, about 8 hours, I didn't finished it, and then I closed it....14:02
mgzvila: pong14:03
dreamkxdOK, I'll try it again, now I was using subvertpy 0.8.1 and tip of bzr-svn and stable bzr 2.3.314:03
* vila swaps in . o O (What was it ?)14:03
mgzeheh14:04
vilamgz: oh yeah, about leaks, I kind of lost track about what I should ping you what, is it the cleanup hook stuff14:04
mgzthat's the bad thing about pings vs just saying what you were thinking of14:04
mgzright, I need to track down a bug, then I think I can just propose14:04
vilamgz: about this specific topic, since you started by trying to fix a bad cleanup, how about just talking with jelmer about it ?14:05
dreamkxdBTW, I think the old way of bzr-svn is still O(history) D:\CI\bld\brepo>bzr svn-import svn://localhost/llvm/ Using repository layout: trunk1   2084kB    44kB/s | copying revision 304/13032214:05
vilamgz: a better test coverage can come later14:05
mgzah, that's a different one. I did bug jelmer a bit about it.14:05
dreamkxdWell, we'd better using gtalk,, freenode is not suite for long conversation....14:05
jelmerdreamkxd, not when finding the layout14:05
vilamgz: ha, right, he's busy right now :)14:05
viladreamkxd: it is. and the logs are archived which is better for our collective unconscious :)14:06
jelmervila: I think you mean it's not.. at least, my gtalk logs aren't accessible by anyone but me :)14:07
vilajelmer: hehe, I meant freenode is suited :)14:07
dreamkxdEr, my input box only one line,sign....14:07
dreamkxdIs there any freenode client?....14:08
viladreamkxd: what are you using ?14:08
dreamkxdChrome ,,, http://webchat.freenode.net/14:08
dreamkxdsign....14:08
viladreamkxd: oh, webchat, which OS ?14:08
dreamkxdChrome 12, under WinOS.14:10
dreamkxd    def find_branchpaths(self, layout, from_revnum, to_revnum, project=None):14:10
dreamkxdThis function is O(history) time...14:10
dreamkxdIf I wan't to using the history, I need to do something here.14:11
dreamkxd 23369kB    56kB/s / copying revision 4776/13032214:11
jelmerdreamkxd, that function is used in a specific codepath which only kicks in if there are bzr-svn file properties in the repository14:11
dreamkxdthat's my progress.14:11
jelmerdreamkxd, that's while copying the revisions; I'm all for making that faster, but I don't see what it's got to do with the repository layout stuff..14:12
dreamkxde....OK.14:12
dreamkxd2.if directory A copied from directory B, and there eixst an branch or B/X that under directory B, then we have an new branch or tag A/X14:16
dreamkxd1.if directory A copied from directory B, and B is an existed branch or tag, then A is an branch or tag14:16
abentleyvila, thanks for your reviews.14:17
dreamkxd3.ignore the branches that comes from outsite14:17
dreamkxdThat's all...14:18
abentleyvila: re: new_ids / changed_ids, we care about files whose inventory entries have changed, but a transform could remove the old file_id, and then restore the same file_id, and then we shouldn't care about it.14:18
vilaabentley: thanks for the hard work, impressive, hope you don't mind adding comments, they cruelly lack14:18
vilaerr, crossed on the wire, was replying to your first comment14:19
abentleyvila: I do mind adding comments.  Comments get stale.  The code should be clear enough by itself, and if it's not, it should be made clearer.14:19
dreamkxdexample :cfe/branches/cfe-1203/tools/llvm copied from llvm/trunk then tools/llvm should not be an branch, and also those files should not be contained in cfe?14:19
vilaabentley: well, that's a shame then, because you modified code without modifying comments14:19
abentleyvila: Like I said, comments get stale.14:20
vila...14:20
dreamkxdIs there question?14:20
abentleyvila: so it's better not to need any.14:21
vilaabentley: in an ideal world, sure14:21
vilaand even there I strongly doubt comments are useless14:21
jelmerdreamkxd: I'm not following, you're proposing creating branch on whether they were derived from the original trunk branch right?14:21
dreamkxdNow only derived from original trunk branch, but also derived from other already existed branches..14:22
vilaabentley: comments are for readers, you can't argue that reading one method gives enough contexts to understand it however perfect the code is14:22
abentleyvila: I certainly can.14:23
dreamkxdIt'slike an set, we inserting element into it, and delete element from it.14:23
jelmerdreamkxd, see http://pastebin.ubuntu.com/623402/14:23
vilaabentley: why bother writing cover letters then ?14:23
abentleyvila: And if it doesn't, it's badly written.14:23
abentleyvila: To express motivation.14:23
jelmerdreamkxd: I'd like to discuss the problem first before discussing the solution - what's the problem you're trying to solve, can you give an example of a repository that breaks?14:23
dreamkxdllvm/branches/Apple14:23
vilaabentley: pff, your code doesn't express motivation ?14:23
dreamkxdThat's the problem, under Apple, there is a lot branches..14:24
dreamkxdApple is not an branch, but an branch container:)14:24
abentleyvila: my code doesn't express motivation for the change I propose, it expresses motivation of the changed version.14:24
dreamkxdhttp://pastebin.ubuntu.com/623402/14:24
dreamkxdhttp://llvm.org/svn/llvm-project/llvm/branches/Apple/14:24
dreamkxdAnd in this repo, there is other kinds of examples:)14:25
dreamkxdsuch as http://llvm.org/svn/llvm-project/cfe/branches/Apple/whitney-IB/src/tools/14:26
dreamkxdThe path  http://llvm.org/svn/llvm-project/cfe/branches/Apple/whitney-IB is an branch of llvm14:26
dreamkxdbut the path http://llvm.org/svn/llvm-project/cfe/branches/Apple/whitney-IB/src/tools/clang/ is an branch of cfe.14:26
dreamkxdThese problems is what I want to solved.14:27
vilaabentley: right, this discussion is useless then, you won't convince me that comments aren't needed especially in in an read where so many of us could't understand the code motivation without comments, feel free to start a discussion on the mailing list14:27
jelmerdreamkxd: Ah, ok. That makes sense14:27
vilaabentley: if you disagree with the comments I proposed, explain why14:27
abentleyvila: We are getting off track, because I have a different coding philosophy than you, and "cruelly lack" was too strong for me to let it pass.14:27
vilaabentley: if you think you can do that with only code, great14:27
abentleyvila: I can tell you that "Summarize all changes to the inventory" is less accurate than "Get the trans_ids and paths of files needing new inv entries."14:28
dreamkxdNow, I have already got an peace of python code implement the following functions.14:28
jelmerdreamkxd: You should be able to create a custom layout class with a custom "layout guess" function to see if your approach will work better14:29
dreamkxdYes, I wan't to do that..14:29
dreamkxdBut I need to access to the history:)14:29
jelmerdreamkxd: You should be able to create your layout in repository_guess_layout() and pass in the logwalker there14:30
dreamkxdAnd now I've toggle where to get the log into it...14:30
vilaabentley: "cruelly lack" is how I view the actual state, I consider that this code has been written by the bzr team, I don't throw stones at you, I want to make it easier to understand for mere mortals which may not be part of this team and lack the background (also in this case, I lack a lot of background)14:31
vilaI won't even pretend (and I said so) that my *proposed* comments are accurate or complete14:33
abentleyvila: If you'd phrased it less aggressively, I'd have accepted those changes that are accurate and we probably wouldn't be having this discussion.14:33
=== zyga is now known as zyga-food
vilabut I wasn't aggressive damn it ! I felt that this method was important and there is *no* comments there in trunk.14:36
vilaHow is it said in English ?14:36
abentleyvila: "cruel" is an emotionally intense word.  If you use it about someone else's work, you are likely to get a reaction like mine.14:37
=== maxb changed the topic of #bzr to: Bazaar version control <http://bazaar.canonical.com> | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: vila | UDD failures: 486
abentleyvila: You say "I think this method should have comments because it is important" in English.14:38
dreamkxdWell, is there anyway to specify the layout you want to use?14:38
vilaBut why did you take for you when I was saying that the lack of comments was cruel for *me* ?14:38
jelmerdreamkxd: It's an option to "bzr svn-import", or you can set it in your bzr configuration ("layout = trunk1")14:39
vilaabentley: right, thanks for the correction, but next time ask me what I mean if you think I'm aggressing or insulting you. WHy on earth would I do that ?14:39
vilaabentley: especially when I said great job ?14:39
abentleyIf the lack of comments was cruel to you, then I was being cruel to you.14:40
dreamkxdbzr svn-import layout=trunk1?14:40
jelmerdreamkxd: bzr svn-import --layout=trunk114:40
vilaabentley: these two reviews were some of the most interesting I did lately and required me to think hard and try various tricks to understand what was happening14:40
vilaabentley: I felt I couldn't write the comments myself, gave it a try and ask you to polish them14:41
dreamkxdOK, thanks, well is there any way that I need not build and install bzr-svn and then using of it?14:41
vilaabentley: and roughly your reply was: comments are useless, if you can't understand the code, you're an idiot14:41
abentleyvila: Okay, let's stipulate for now that the right approach is to add comments rather than clarifying the code.14:42
abentleyvila: No, my response is that if you can't understand the code, the code isn't clear enough.14:42
jelmerdreamkxd: If you have the plugin installed in your home directory you can modify it there directly14:43
abentley" The code should be clear enough by itself, and if it's not, it should be made clearer"14:43
jelmerdreamkxd, alternatively, you can set the BZR_PLUGINS_AT environment variable to point at the location where the plugin is14:43
dreamkxdWell, if I directly copy the bzr-svn folder into bzrlib plugin folder, will that working?...14:44
jelmerdreamkxd, that should work too14:44
vilaabentley: well, both are valuable, I share the value that code should be crystal clear but... well, we're just humans for once and then there are cases where comments are just easier to explain either why *this* implementation is better than others or just give some context without requiring the reader to load the whole problem/solution in his head14:44
dreamkxdOk, thanks...14:44
dreamkxdMy bzr-svn playground is https://code.launchpad.net/~luoyonggang/bzr-svn/perfect-layout .. I will commit to there first, it's it's stable enough, I'll request for merge:)14:45
abentleyvila: let's stipulate that adding comments is the right approach for this code, and talk about the comments themselves.14:46
vilaabentley: also, the clearest code sometimes is just not obvious and adding comments makes it easy to read again14:46
vilaabentley: great14:46
abentleyvila: I don't understand the motivation for the docstring changes to _inventory_altered.  Could you explain that?14:47
vilaabentley: It's unclear to me what part of the transformations are captured here14:47
vilaabentley: are they all ? If not which ones are and which aren't ?14:48
abentleyAll trans_ids that need an inventory entry change are there.14:48
vilaabentley: Imagine I have no idea about which transformations requires an inventory change14:50
dreamkxdI was already do this layout_registry.register_lazy("perfect", "bzrlib.plugins.svn.layout.perfect",  "PerfectLayout")14:51
abentleyvila: there are two possible answers.  Either we should document every kind of change that requires an inventory update, or we should say that is prerequisite knowledge for working on this code.14:51
vilaabentley: also, one of my hesitations was 'new' in 'needing new inv entries'. Is it new as in needs to be created or new as in needs to be updated14:51
vilaabentley: well, the idea is to help people *get* this pre-requisite knowledge14:52
vilaso probably something between the two14:52
abentleyvila: The knowledge is not particular to TreeTransforms, however.  It's about knowing what an inventory entry reflects.14:53
vilatrue, we don't want a full book either :)14:53
abentleyvila: In any case "Summarize all changes to the inventory." seems false, since we're not returning any information about the inventory itself.14:54
jelmerdreamkxd: That wouldn't really help in this case - I think you want to change repository_guess_layout as that's a location where you actually have access to the layout14:54
jelmers/to the layout/to the history/14:54
abentleyvila: It's not a summary, it's just a list of paths and trans_ids.14:54
vilaabentley: sure, this was more a placeholder14:55
vilabut list of paths and trans_ids doesn't tell me much about what they represent14:55
dreamkxdYou means directly create CustomLayout under function repository_guess_layout?14:55
abentleyvila: I don't know what you mean by "represent".  If you mean you don't know what a trans_id represents, that is definitely prerequisite knowledge for TreeTransform.14:56
dreamkxdsuch as return CustomLayout (repository._log)14:56
jelmerdreamkxd: I think you mean PerfectLayout rather than CustomLayout?14:56
dreamkxdYes, PerfectLayout14:56
jelmerdreamkxd, Also, presumably all the analysis would happen there, and you wouldn't need to access the history again after that14:56
vilano, I have an imcomplete understanding of what a trans_id is, I'm talking about the whole list with respect to the current transformations14:57
Riddellhow come requeue_package.py doesn't work for me on jubany? http://paste.kde.org/80443/14:57
dreamkxdBut, I need all history ..., did logwalker_guess_layout will iterate the whole history?14:57
abentleyvila: so by "represent", you really mean "why would a trans_id be included in this list"?14:58
vilaabentley: if the inline comments are valid they defines that. I don't know if there is a good way to capture that14:58
vilayup14:58
jelmerdreamkxd, well, that's what you intended right?14:58
=== zyga-food is now known as zyga
vilaabentley: when you don't know TT, it's not obvious to translate: _removed_contents means deleting and/or unversioning for example (may be not the best one other attributes are needed to get the full answer but... well)15:00
dreamkxdYes, that's I wanted, I need to iterate every revision's log, and If I there is no cache, every time running bzr svn-import, I need to iterate on SVN log, if there is cache, then I only need to iterate when guess, but after guess, if new revisions appeared, I also need to iterate on it:)15:01
dreamkxdThat's means, I need iterate EVERY svn revision LOG at least ONE time.15:01
jelmerdreamkxd: I guess another thing you could do is in Repository.get_layout() check for a config variable15:03
jelmerdreamkxd, and if that variable is set, return PerfectLayout(self._log)15:03
vilaabentley: yet another way to think about it: Imagine someone not knowing TT at all and  encountering _inventory_altered for the first time. What will help him understand the code without giving imprecise and hard to maintain hints ?15:03
dreamkxdAnd remove the statement layout_registry.register_lazy("perfect", "bzrlib.plugins.svn.layout.perfect",  310    "PerfectLayout") ?15:03
jelmerdreamkxd, yes15:04
vilaabentley: and yes, this may require other knowledge not explained here, but that doesn't mean good hints can't be provided15:04
abentleyvila: it feels like an extremely high burden of documentation.15:04
abentleyvila: like a manual for laymen for doing heart surgery.15:04
vilahehe15:05
vilanot at all15:05
dreamkxdOK, I see, I think my proposition can not be guess:) so just direct using of it:)15:05
vilaI wrote the proposed ones quite quickly and I'm sure you can fix/complete them without spending hours on them15:05
abentleyNo, really, it does.  I expect people who hack on TT to know what _removed_contents is.15:05
abentley_removed_contents is documented, and I'll happily improve the documentation if needed.15:06
vilawhat are you aiming for ?15:09
vilaConvince me that all my proposed comments are not needed ?15:09
abentleyvila: sorry.  I am reacting to your suggestion "Imagine someone not knowing TT at all...".15:10
vila<shudder> Sorry, I don't know how to express that in English as well as I can do it in French :-(15:11
vilaAssume I agree with you about TT (as all code) requiring )some* pre-requisite but that I disagree about where to stop/start commenting ? And that I'm searching a middle ground15:12
vilaComments can be as hard to write as code (IMHO), I try to write them as a way to facilitate the code *reading* (as opposed to understanding)15:14
abentleyvila: What do you think of this as a docstring: http://pastebin.ubuntu.com/623446/15:14
vilaThe former occurs more often than the later as you can read code without understanding it most of the time15:15
vilaabentley: +1 +115:15
=== vednis is now known as mars
vilaabentley: so, when is the filtering needed in: +        changed_id = set(t for t in self._new_id15:21
vila+                         if self._new_id[t] != self.tree_file_id(t))15:21
vilaabentley: I mean, I can see that if the id is the same it's not changed, but when is it needed ?15:22
abentleyvila: The filtering is so that we don't return spurious entries, and do more work than needed to update the tree.15:23
vilabut which entries are spurious ?15:24
chrisvjhi15:24
abentleyvila: entries where the file id was deleted, and then restored to the original value.15:24
chrisvjdoes anyone have any idea why bazaar stops downloading files at 59%?15:24
vilaabentley: wow, *that* is what I'd like to find in the comment because it will take a long time to find it otherwise15:25
vilas/take/&*me*/15:25
maxbIf someone ~canonical-bazaar has a moment, please bzr pull jubany's bzr-builddeb and requeue_package.py --all-of-type dipy  ?15:26
abentleyvila: similar to changed_kind = (t for t in changed_kind if self.tree_kind(t) != self.final_kind(t))15:26
vilaabentley: hehe, who knows why I understood this one more easily...15:27
vilamaxb: how safe is that ? :D15:30
maxbvila: Pretty safe, we already did the big pull, this pull should only be a handful of revisions15:31
vilamaxb: 2 indeed, I'm unclear about the needed dependencies for jr's hook ?15:31
Riddellvila: none needed, it won't use it unless bzr >= 2.415:32
Riddellvila: do you run commands on jubany as pkg_import?15:33
vilaha, good, you tested it against 2.3.1 ?15:33
vilaRiddell: yes, you should do a su first15:33
vilawell, sudo su -15:33
Riddellvila: yes it checks for the bzr version15:34
vilaRiddell: would you try to help maxb there or should I just finish this ?15:34
Riddellvila: I don't have sudo permission so I can't do anything :(15:34
vilak15:34
vilapull done15:34
maxbAlso, the hook should not be invoked because the importer doesn't invoke editors? Or did I misunderstand?15:35
vilamaxb: and requeue done15:35
maxbthanks15:35
mgzI spent yesterday replacing code using python modules with Qt things.15:39
Riddellmgz: oh?15:39
* vila blinks15:39
vilamgz: can you elaborate on that ??15:39
vilamgz: I'm not sure where to put the comma...15:40
vilaor the parentheses15:40
mgzit was an interesting experience. just a little gui a friend had written with pyqt and it turned out using as little python as possible generally made for better code.15:40
mgzQProcess does async reading properly, and handles unicode commandlines, subprocess doesn't.15:41
mgzQDirIterator avoids having to filter inside os.walk and is more efficient15:42
mgzQString has a builtin normalized method so don't need unicodedata.normalize15:42
mgzQSettings is a bit easier to use than ConfigParser and I'm mor confident it does sensible things with unicode15:43
RiddellQt devs know API is everything for libraries15:43
mgzI'm down to `import datetime, os, sys` at the top.15:44
barryany code hosting/bzr experts online that could do a quick mumble with mvo and myself?15:44
Riddellcan I recommend QDateTime? :)15:44
jelmerbarry, sure15:45
mgzI looked at it :) it's literally one line for getting a timestamp though so didn't seem worth changing.15:45
barryjelmer: awesome, thanks15:45
vilabarrym jelmer: Mind if I listen ?15:45
barryvila: of course not!15:46
vilathanks15:46
abentleyvila: http://pastebin.ubuntu.com/623473/15:47
vilaabentley: THANK YOU !!!!15:47
abentleyvila: Any improvements still needed?15:48
vilaabentley: let see...15:48
vilaabentley: nah, kidding, that's great !15:48
jelmerbarry: I'm in Bazaar15:49
mgzQProcess was the big win, I'm fed up with subprocess not doing what I want. Helps that there's an event/callback thing built in anyway.15:50
barryjelmer: can you hear us?15:51
jelmerbarry, I can hear you15:51
jelmerbarry, not sure how to talk myself yet though..15:51
mgzopen your mouth!15:52
mgzirc make people forget...15:52
abentleyvila: re self.addCleanup(fork.lock_write().unlock), that's an improvement but I'd rather write self.useContext(write_locked(fork))15:59
vilaabentley: sure, I'm not sold on the new trick myself16:01
abentleyvila: did you merge my changes into trunk?16:01
abentleyvila: for some reason, my diff is lacking the changes from before.16:02
vilaabentley: I didn't16:02
vilaabentley: otp16:03
abentleyvila: okay, it's that submit_branch behaviour.16:03
vilaabentley: err, I misread, self.useContext() ? Is this from testtools ?16:16
abentleyvila: I believe it's only in Launchpad, but the implementation is simple.16:17
vilaHa ok, yeah, sounds nice16:17
abentleyvila: val = foo.__enter__(); self.addCleanup(foo.__exit__, None, None, None); return val16:18
vilahehe16:19
vilaabentley: you'll have to talk slowly while we get up to speed with 2.6 ;)16:19
vilaabentley: -fixups approved, want me to submit to pqm ?16:22
abentleyvila: no, I'll do it.16:22
vilak16:22
abentleyvila, jam: you guys seem to disagree about whether a test that proves no error is raised should have an explicit assertion.16:32
RiddellI now have access to pkg_import on jubany, requeue-package still doesn't work, what am I doing wrong? http://paste.kde.org/80473/16:32
vilaabentley: the double with ?16:32
abentleyIn test_apply_retains_root_directory, I have no assertion and vila complains.16:32
abentleyIn the shelf_ui test, I have assertions that no exception is raised and jam complains.16:33
vilahehe16:33
vilaabentley: is the shelf_ui one the onw with the double with ?16:35
abentleyvila: yes.16:35
vilaabentley: I had to play with it to understood how it works, it seems to me *both* with are required or the test will be wrong16:36
vilaerr, to understand16:36
abentleyvila: yes, but you can remove both, which is what jam asked for.16:37
vilaabentley: I agree with you and disagree with jam here16:37
vilaAdding 'InconsitentDelat not raised' makes it clearer (and the comment may help understand how this construct works ;)16:38
jelmerabentley: btw, what's the relation of your fix to bug 82555 ?16:38
ubot5Launchpad bug 82555 in Bazaar "Merging to an empty branch doesn't work" [Medium,Confirmed] https://launchpad.net/bugs/8255516:38
vilawell, not only clearer but also stronger, AssertionError is quite wide16:38
vilaotherwise16:38
abentleyjelmer: I don't think it's related.16:39
jelmerabentley: ok - thanks16:39
abentleyvila: Yes, but that would allow other InconsistentDeltas to be raised, and I don't think we want that.16:39
abentleyvila: e.g. what if the text changes, and then it starts raising?16:40
vilahuh ?16:40
vilawhat text ?16:40
abentleyvila: The text of the error.  But I'm thinking of the inner with statement.16:41
abentleyI think it's fine in the outer one.16:41
vilaha ok, yeah, I meant addind the text in the outer one16:41
vilaadding, gee, tyops festival16:41
abentleyvila: I find your comment change unclear "if there's no 'other', or it's not versioned (unversioned being one such case), we leave it alone."17:02
abentleyvila: unversioned is the only case where it's not versioned.17:02
vilawhat about files created but not yet added ?17:04
abentleyvila: they're unversioned / not versioned.17:04
vilaunvesioned implied it *was* versioned but is not anymore17:04
stewartspiv, thanks for bug URL there. isn't high priority to us as we can upgrade bzr repo formats everywhere (and it's not the only cause of any build/test failure :)   - but good to know is already known17:05
vilaabentley: IIRC correctly this changes is needed because otherwise unshelving a file added but not yet committed fails17:07
abentleyvila: I would think "unversioned" can also mean "not versioned", not the past tense of "to unversion".  Maybe my bzr jargon has gone a bit fuzzy.17:07
vilaabentley: hehe he is still probably better than my English ;)17:08
abentleyvila: But why would you want to talk about "unversioning" in the context of tree state?  Does it matter why the file is not versioned?17:09
vilamy point here is that not versioned wasn't an obvious to justify switching from other-name None to a other_tree.has_id()17:10
vilashudder17:10
vilamy point here was that "not versioned" wasn't an obvious reason to justify switching from other_name is None to a other_tree.has_id()17:10
vilaso I revert the change to see which test was failing without it, understood the change and thought it may be clearer17:11
vilanow...17:11
abentleyvila: I don't understand.17:11
abentleyIf you want to know whether a file is versioned, you wouldn't use has_id?17:12
vilawell, the code didn't it :)17:12
vilaand the specific failure was about a file which *was* versioned17:13
=== 15SAAQWPK is now known as jamestunnicliffe
vilaso I thought the subtle difference may easily be missed17:13
vilabut may be unvesioned is not the right word17:14
abentleyvila: I can make you tests where the file was never versioned.17:14
vilagah17:14
vilasure17:14
vilaoh, you mean the bug was larger ?17:14
vilaand specifying unversioned add no value since all cases were other wasn't versioned were failing ?17:15
abentleyvila: I mean that merge cares about states, not changes, and so "unversion" is an alien concept to it.17:15
vilaerr, sort of, or you wouldn't need parents17:15
abentleyvila: I can only make "unversioned" make sense if it means "not versioned", and then it's redundant.17:16
vilaabentley: not versioned includes never versioned17:17
abentleyvila: right.  "never versioned" and "unversioned" are distinctions that merge does not care about.17:18
abentleyvila: so it doesn't make sense to talk about them.17:19
vilahuh ?17:20
vilaWhy did you introduce versioned then ?17:20
abentleyvila: "versioned", meaning "has a file id" is a state, and merge does care about it.17:21
vilaIt seems to me you're nit-picking here, if merge cares about A it cares about not A as well17:24
abentleyvila: Sure, it cares about whether a file is versioned, or not versioned, but it doesn't care whether it's unversioned or never versioned.17:25
vilaabentley: where are we disagreeing then ?17:28
abentleyvila: because your change to the comment doesn't seem to add any information.17:28
vilaha, right17:29
vilaThe reason I added it was that I didn't realize unversioned was part of not versioned,17:30
abentleyvila: "has no file id"?17:30
vilaso may be the whole comment should be rewritten to an even simpler form17:30
vilayup, something like that: there is no other, bye17:31
vilaso yeah, 'has no file id, we leave it alone'17:31
vilawill wfm17:32
abentleywfm17:33
abentleyvila: re 87 you said "it looks like this is as side-effect of your change that is not described in the cover letter."  Cover letter said "fixup_new_roots does not generate a conflict if a new root is added and the old root is not deleted."  is that not it?17:36
vilaI think the test is about a conflict with a regular file, not the root, the context was (roughly):17:37
vila1) a directory and its contained files are merged,17:37
vila2) lives goes on17:37
vila3) a file is added in the directory17:37
vila4) the directory is merged again17:37
vilawhere should the file go ?17:37
vilaha crap,17:37
vila1.1) the merged directory is renamed17:38
vilaI don't remember the specifics but I think the file from the first merge are tracked correctly but we are not able to reparent the new file17:39
vilaSo it's not really the same problem that adding a new root, it's more about tracking where the root went17:39
abentleyvila: it might be because we now apply the OTHER root_id.17:39
abentleyvila: In cases where there's an id conflict.17:40
vilaI don't think we apply the new root but instead re-parent the merged files in the existing one17:41
vilaso basically before your change we were putting the new file into root but with a conflict that were warning the user that he had to move the file in the right place,17:42
abentleyvila: at line 164, the outcome will now be different.17:42
vilaerr, which file /17:42
vila?17:42
abentleyvila: At that point, test_merge_from_branch17:42
abentleySorry, file is bzrlib/tests/per_workingtree/test_merge_from_branch.py17:42
vilaline 164 is in make_outer_tree ?17:43
abentleyvila: right.17:43
abentleyvila: the merge from null17:43
abentleyvila: That will replace outer's root id with inner's.17:44
vilaargh, gtg :-(17:44
abentleyvila: okay.  Have a nice weekend.17:45
vilathe case I was referring to is a merge in an existing branch not an empty one17:45
vilaabentley: you too17:45
vilaabentley: may be the *test* had a bad focus17:47
abentleyvila: I can rewrite it so it fails like it used to.17:47
abentleyvila: I mean conflicts, not fails.17:48
vilaabentley: if that means not merging from null:, this may be the way to go17:49
* vila really off17:49
maxbjames_w: Hello, are you potentially around and able to make the sysvinit import happen?18:57
maxbhttps://bugs.launchpad.net/udd/+bug/708655/comments/6 if you are18:58
ubot5Ubuntu bug 708655 in Ubuntu Distributed Development "sysvinit package import failing" [Undecided,In progress]18:58
james_wmaxb, I am potentially around19:02
maxbSorry for picking on you -  this needs someone who is in ~ubuntu-branches19:03
james_wno problem19:03
james_whappy to help19:03
james_wmaxb, are there debian branches too?19:04
maxbno, not on launchpad19:04
maxbWhich is odd, yes19:04
=== maxb changed the topic of #bzr to: Bazaar version control <http://bazaar.canonical.com> | try https://answers.launchpad.net/bzr for more help | http://irclogs.ubuntu.com/ | Patch pilot: vila | UDD failures: 485
james_wmaxb, branches renamed19:15
maxbok....19:16
maxbAre you also able to do the rest at some point, or shall I accost someone else for the jubany bits?19:23
jseaboldWe have a developer who merged trunk into his branch, but the revision in trunk merged into the branch was deleted. He has pushed several commits since. Can I back out these changes with shelve and remerge with the correct revision in trunk?19:49
james_wmaxb, it's just import-package fixes that you need from lp:udd 455 right?19:52
james_wjust wondering if we need a mass-import restart before continuing19:52
maxbjames_w: No recent changes to mass-import, it can be left running19:53
james_wmaxb, requeued19:54
maxbYay19:54
=== tchan1 is now known as tchan
=== zyga is now known as zyga-food
james_wmaxb, it's chewing on it and importing something in dapper currently20:08
maxbGreat, I expect it to take several hours20:08
maxbsysvinit has a LOT of ubuntu revisions :-)20:08
james_wmaxb, thanks for your persistence on this :-)20:09
=== yofel_ is now known as yofel
maxblow priority: requeue_package.py --all-of-type enigmail  (they'll all fail again, but it will group them in with the same failure signature as a larger group)20:59
james_wmaxb, done21:04
maxbthanks21:04
james_wsysvinit is still on dapper :-)21:04
maxbI'm not too concerned about that - I remember watching the logs of my test import. It spend aaaaages on dapper21:05
james_wedgy \o/21:26
=== med_out is now known as med_BOS
maxbjames_w: it looks like the --all-of-type enigmail did not actually take effect?21:50
james_wmaxb, oops, sorry, I didn't read the output and I got the command wrong :-)21:52
james_wdone now21:52
maxbthanks22:00
=== med_BOS is now known as medberry
=== medberry is now known as med_out
=== zyga-food is now known as zyga
bradyhelp23:35
bradymy bzr uploads a ~300mb pack file everytime I push. is this normal? the files being versioned are ~800mb.23:37
bradyi noticed that the main repository uses repository format 2a and my branch uses format 7. not sure if this is optimal either.23:39
lifeless2a is good23:45
lifelesspack files in 2a contain (possibly many) entire compressed files.23:45
lifelessthis is for data safety and integrity23:45
bradyi am only changing a few files, and they are relatively small.23:45
lifelessthere is a plan to have a network-push facility that will send deltas23:46
bradyyet, when I push ....the entire 300mb pack file is uploaded to the server23:46
bradyoh, ok. so this is normal behavior.23:46
lifeless'packing' which happens automatically combines pack files23:46
lifelessand different versions of files stored inside a /single/ pack are *very* tightly delta-compressed23:46
bradyit's just a bunch of php files23:47
lifelessbrady: well, if you are only changing small files, not its not expected that you would be pushing 300MB each time23:47
lifelessbrady: its the weekend now for the core bzr devs - I suggest asking on the mailing list, or even filing a bug.23:47
bradylifeless: thanks23:48

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