/srv/irclogs.ubuntu.com/2008/11/10/#bzr.txt

lifelessback00:48
grettkeHi guys. I see 1.9 was just released. There is a RC1 build for Windows, think that should I hold off until the 1.9FINAL is distributed, or is RC1 good enough for now?01:03
spivgrettke: I don't think there are many changes in 1.9 vs. 1.9rc1, the rc1 build is probably ok.01:05
spivThat said, I'd expect the final build to be done pretty soon.01:05
spivSo if you're unsure, maybe just wait a day or tow.01:06
spiv"two", rather.01:06
grettkespiv: I see. Thanks.01:06
lifelessthere was a regression in rc101:07
lifelessfixed in 1.901:07
lifelessI suggest waiting01:07
fullermdGaah.  There's no way to shut off color in shelve anymore?   :(01:07
grettkelifeless: Good to know. Will do.01:07
lifelessfullermd: file bugs01:08
* fullermd is so doing.01:08
lifelessfullermd: I assume you're looking at the new shelve01:08
fullermdYah.01:08
grettkeWhat Bzr-web integration tool do you guys prefer: loggerhead or bzrweb?01:19
lifelessloggerhead01:19
jelmerhmm, upgade is recursive now?01:28
lifelessdoggymenz: http://en.wikipedia.org/wiki/Comparison_of_revision_control_software02:00
lifelessbah02:00
lifelesshttp://en.wikipedia.org/wiki/Comparison_of_revision_control_software02:00
lifelessI love the comment "Not necessary since entire project is replicated locally" under 'web interfaces' for some scm's02:00
lifelessepic fail02:00
fullermdIs that sorta like "branch support not necessary 'cuz we have a cheap copy"?   :p02:02
poolie"merge support not necessary because branching is impossible"02:06
poolie:-)02:06
lifelessah, svn?02:08
poolieactually rcs02:15
lifelessdidn't rcs have branches?02:24
lifelessI'm sure it did02:24
jonoxerIs there any way to enforce an arbitrary policy on encountering a conflict, such as automatically picking whatever is the latest file regardless of what is in them?02:30
jonoxerThe problem is we have a bunch of binary files being generated in working copies, and they get committed (they need to be) but them always conflict02:31
jdongooh add me to the wishlist of an evil-downstream-plugin too!02:31
jonoxers/them/then02:32
jonoxerWhat I'd like to do is have a rule like "when merging, if any file has an extension of .blah then use whichever is most recent"02:32
jonoxerAs an example, a typical use-case might be images in a source tree. They may be replaced from time to time, but bzr then sees them conflicting02:34
lifelessjonoxer: yes; write a merge plugin. I *think* the infrastructure is sufficient unto the task02:35
lifelessjonoxer: note that bzr should only see a conflict when there are concurrent changes in two branches to one file - and when that happens 'most recent' is not defined02:36
lifelessjonoxer: unless you trust the clock on your developers machines02:36
jonoxerlifeless: Ah, I see, so in a situation where the binary has changed in *both* branches then it will conflict. That makes sense02:36
lifelessjonoxer: and if its only changed in one branch it won't conflict ever (unless there is a local uncommitted change, but thats really a psuedo-branch anyhow)02:37
lifelessjonoxer: are you encountering conflicts - is this a concrete issue, or a hypothetical?02:37
jonoxerlifeless: concrete, but it's partly because of the way we're using it that I'm sure you didn't think about when designing it...02:38
lifelessjonoxer: guaranteed. I was just saying to poolie last night that users are insane :)02:38
jonoxerIn this scenario we have a bunch of developers working on Flex web apps, which have source trees of .mxml and .as files but each time the IDE builds the project it compiles .swf files in the tree. These are necessary for the app to run, but are somewhat transient: they can simply be regenerated if necessary, but the situation we're trying to avoid is having to regenerate every single one every time, hence them being committed02:40
lifelessjonoxer: ah right, but the ide is insane and does it anyhow :P02:40
lifelessjonoxer: and I bet it puts a datestamp in the file, so identical inputs -> different outputs02:40
jonoxerlifeless: yep, I'm pretty sure that's part of the problem02:41
lifelessjonoxer: right, with auto-creation and spurious changes you'll get spurious conflicts02:42
lifelessjonoxer: now, the question is, can you programmatically tell these two cases apart:02:42
jonoxerlifeless: I've tried suggesting to the devs that we should just exclude all the .swf files from being committed, but was met with a hail of nerf balls and staplers and lunchboxes02:42
lifeless a) I added a file and the .swf has to change02:42
lifeless b) a spurious change has occured02:42
jonoxerlifeless: in this case it should be enough to simply tell which has the later creation date, and pick that one02:43
lifelessor to rephrase - what is the impact on correctness in your app if your auto-resolved chooses the wrong .swf (or if in fact neither .swf is correct because both branches changed things that require it to be recreated)02:44
jonoxerlifeless: not much at all. Worst case is to delete the swf and tell the IDE to regenerate it02:44
lifelessjonoxer: back to the a/b question, concurrency is hard - let me expand the scenario:02:44
lifeless a) I add a file and the .swf has to change, monday 4pm02:44
lifeless b) you just regened and committed before you went home, monday 5pm02:45
jonoxerlifeless: yes, I see: in that case the latest .swf won't actually be the one required. I don't think we can avoid that situation entirely02:47
jonoxerlifeless: I don't think it matters a huge amount, though.02:48
jonoxerlifeless: It just needs to have *a* copy of the binary, and if it's not quite the latest one that's generally OK02:48
=== timchen119 is now known as nasloc__
jonoxerThe problem ATM is that the app ends up broken because neither version of the .swf ends up in place02:49
jonoxerlifeless: hmm, maybe I could make it work in a brute-force way using a script that can be run after a merge, and it finds conflicting .swf files and makes an arbitrary decision and resolves the conflict automatically02:52
lifelessjonoxer: thats likely the easiest way; as I say though there is a merge plugin capability02:53
jonoxerWouldn't always pick the best one (as you pointed out about concurrency) but it would make the app "work"02:53
lifelessjonoxer: should be reasonably straight forward to do a merge that looks for these files (and if not, file a bug :))02:53
jonoxerlifeless: thanks for the pointers. I'll have a look at the merge plugin interface and see if I can understand it02:54
rockyi'm trying to understand... how is it possible that i create a local init folder with old 0.92 repo format and then i push it to a server that is using a shared repo of --1.9 that the new branch that i just pushed ends up with 1.9 repo format on the server?03:48
rockyi'm having a hard time wrapping my head around that03:48
rockyit seems sooooo different from the way the svn server stuff works which i think is part of the reason i'm having difficulty grasping it03:49
lifelessrocky: 'server is using a shared repo of --1.9'03:54
lifelessrocky: so the branch created in the repo uses the repo03:54
rockyso this is really possible because the remote branch and the local branch are actually two separate branches with their own repos that just happen to keep getting synced up?03:56
grettkeHi guys. What is the approach for backing up repos? I've got a shared repo that has all of my mainline branches in it. Is it simply a matter of doing a file system backup?04:01
lifelessrocky: uhm04:01
rockylifeless: you can probably tell by my questioning that i'm simply "not getting it"04:02
lifelessrocky: actually you got it fine I think04:03
lifelessrocky: I'm on a phone call, and I typed what I was saying04:03
rockylol ok ;)04:03
grettkethat wasn't the correct terminology...04:04
thumperlifeless: are you in brisbane?04:04
lifelessthumper: no04:05
rockyi think i'm going to write a very minimalistic bzr http server that has r/w access and just uses the standard wsgi/http transport thing from bzr plus some common authentication/authorization middleware04:08
lifelessrocky: should just be a case of enabling apache auth04:17
lifelessrocky: the web server is already wsgi; and supports r/w access04:18
rockyright04:18
kumiwhich one should be faster: bzr+http:// or http:// ?04:19
lifelesskumi: http:// at the moment, but we're working on bzr+http04:20
kumiCool04:21
rockylifeless: well ... part of what is missing say compared to svn is authz support ... giving people access to just certain branches... that's currently not possible with just apache+bzr/http04:22
lifelessrocky: true; otoh you can setup multiple repositories much more easily, which is likely why there is not that much pressure to address this04:22
kumiI'd love bzr serve to have some basic auth capability like svnserve04:22
lifelessthere's some stuff been happening towards that, as wrapper scripts04:23
lifelessthumper: I'm not in brisbane - too under the weather04:23
kumiReally? Do you have a link?04:23
thumperlifeless: get well dude04:23
lifelesskumi: it was on the list in the last week04:23
rockylifeless: i'm not sure what point your last comment was making, how is setting up multiple repos make there be less pressure?04:23
kumithanks04:24
lifelessrocky: setup a repo per group of access rights04:24
rockylifeless: oh... using different <Location> directives in apache conf with different auth settings you mean?04:24
lifelessrocky: that, and additional physical repositories04:24
lifelessrocky: its a distributed database, there is no need for all branches to be in the same repository04:25
rockywell ... you see the problem is that now that i'm finally grokking some of the other stuff... knowing how to piece some of that stuff together is a little more natural ... but as i was trying to wrap my head around this essentially what i wanted was authorization control using "bzr serve" like kumi just asked for04:26
rockyso the only way any of this stuff makes sense is if you have a good understanding of how bzr repos/branches work and you don't try to compare it to svn04:26
lifelesssadly, that is true. svn really is a very different beast for a system administrator04:27
rockyperhaps bzr needs a "recipe" site where there are little recipes for admins on how to setup apache + bzr + auth and stuff like that04:27
rockythe fact is... most of the admins i know would rather send stuff like this through http instead of using ssh/sftp04:27
kumilifeless: I'm afraid I can't find the wrapper script discussion in the mailing list @ https://lists.ubuntu.com/archives/bazaar/2008q4/thread.html04:31
rockylifeless & kumi: this bzr http server i'm talking about is essentially what kumi is asking for i think04:34
kumiI'm actually looking for a way to run bzr serve as standalone or inetd (like svnserve)04:36
kumi...with some kind of authentication04:37
rockyright, that's what i'm talking about writing04:38
kumiright now I have fwknopd protecting the port, but that's a hack04:38
lifelesskumi: so why are you using bzr: and not either bzr+http or bzr+ssh ?04:51
rockyis it possible to write a bzr plugin that exposes the plugin info using an egg entry point instead of having to put your plugin into one of the special bzrlib/plugins places?04:53
lifelessrocky: there isn't any code in bzr to handle eggs04:55
lifelessrocky: if eggs can honour the normal python behaviour of modules and packages it will just work04:55
lifelessrocky: if they can't, it won't, unless someone contributes a discovery mechanism for eggs to bzr itself04:55
rockyi think a discovery mechanism would be required, preferably one that utilized egg entry points ... but such a thing could be written as a bzr plugin in the classic style04:56
rockyso a plugin that allowed egg plugins04:56
lifelesskumi: revno: 3813 in trunk -   Add contrib/bzr_ssh_path_limiter. (Andrew Bennetts)04:56
lifelessrocky: sure, just have a plugin which when loaded looks for eggs and loads them.04:56
lifelessrocky: note that all bzr plugins need to be loaded into the namespace cleanly - bzrlib.plugins.NAME04:57
rockywell, a plugin which looked for all eggs that provided a particular bzr entry point04:57
rockylifeless: that's a silly requirement btw ;)04:57
lifelessrocky: rather than rehashing old ground, may I say that it works very well for us, allowing code reuse and simple configuration and deploymeny04:58
rockysure and that's fine, i'm not saying discontinue the old way... just that cleanly working with eggs would help new python developers "get into" the plugin system easier04:59
lifelesswe discover plugins using file system introspection and get the files to look for from python itself, so if eggs looked like packages and modules it would Just Work04:59
rockydoes bzr understand the notion of a namespace package?04:59
lifelessbzrlib.plugins is one05:00
rockygood05:00
lifelessdunno if eggs will know it is, we write to python's core behaviour05:00
rockyso bzr just iterates over the list bzrlib.plugins.__path__ for all paths ?05:00
lifelessyes05:00
lifelessI recommend reading bzrlib.plugin05:00
* rocky reads05:02
rockyi think the main problem with an egg in this case is that it's packages won't get auto-imported which means they'll never get added to bzrlib.plugins.__path__ without some sort of kickstart05:03
rockybut i also see that bzrlib.plugin is actually setting (wholesale) bzrlib.plugins.__path__ which would worry me05:04
rockyand all of this would definately mean that zipped eggs wouldn't work05:05
lifelessso we set __path__ to pickup plugins from various places05:07
lifelessif there is a standard for getting a preset __path__ we can look at integrating that05:07
lifelessbut what (I think) I said the other day basically applies: the bzr developers don't use eggs, someone interested in egg support needs to step up and collaborate05:08
lifelesswe're not hostile to it05:08
rockyright -- a very sensible attitude05:10
=== jamesh_ is now known as jamesh
kumilifeless: thanks, that wrapper script isn't going to work for me though (it's for SSH)05:19
kumiwow, actually I just discovered /contrib/bzr_access05:22
kumithis looks exactly like what I'm looking for05:22
kumiIt uses the command= directive in .ssh/authorized_key to restrict access only to bzr, and bzr_access.conf to control user/group-level access05:25
lifelessyes05:28
lifelessssh auth is much more secure than anything we'd be likely to write05:29
poolielifeless: so it looks like commit is actually failing in my current copy of your branch05:29
lifelessmuch better to reuse that than invent a new auth protocol05:29
pooliei'm hoping an update will fix it05:29
kumiThat's perfect for me, the reason why I couldn't use bzr+ssh:// was because of the hassle involved in creating a chroot jail and all that05:29
lifelesskumi: oh no, you don't need a jail :)05:30
kumi:)05:30
* kumi is happy05:30
lifelesspoolie: it's working for me05:30
poolie  File "/home/mbp/bzr/repository-iter-changes/bzrlib/commit.py", line 701, in _report_and_accumulate_deletes05:30
poolie    deleted_ids = set(self.basis_inv._byid.keys()) - \05:30
poolieAttributeError: 'CHKInventory' object has no attribute '_byid'05:30
poolieit seems a bit odd it would be calling that05:30
lifelesspoolie: are you using a MemoryTree?05:32
poolieyes, i'm using BranchBuilder05:33
lifelesspoolie: basis_inv would have to be a CHKInventory for that to break; and AFAIK thats only the case with a MemoryTree05:33
lifelessrighto, yes thats broken05:33
lifelessdoing a full set difference is...bad anyhow05:33
poolieyes, it's a bit odd in commit05:33
lifelessits the fastest code we could do at the time; given its expecting a regular inventory05:34
poolieyou're saying because if it was a dirstate tree it would use the basis tree from the dirstate?05:34
lifelessuhm spiv had a workaround I objected to; but perhaps a similar thing would get you past this05:34
lifelessyes, dirstate trees have the basis tree from the dirstate05:34
pooliei'm inclined to add an explicit method that returns all file ids05:35
poolieat the moment that's meant to be done by iter(inv) but that is a poor idea05:35
lifelessyah05:36
lifelessotoh05:36
poolievila observes that we shouldn't add O(n) methods05:37
poolieso perhaps should fix commit now05:37
lifelessvila is right05:37
poolieotoh at the moment we do have a method, it's just poorly named as __iter__05:37
lifelessotoh, commit is not broken for production use, for this project05:37
lifelessas this project is about historical trees05:37
poolie'this project' = split inventories?05:38
lifelessyah05:38
lifelessI would be inclined to tweak commit to use __iter__ *for now*05:39
lifelessor even do an isinstance05:39
poolievila says 'robert just added _report_and_accumulate_deletes'?05:39
pooliereally?05:39
poolieit looks kind of old05:39
lifelessif instance(basis_inv, Inventory): byids else: set(iter(basis_inv))05:39
lifelessset(by_id) is _really fast_ we don't want to lose that05:40
poolielifeless (probably gone): so it looks like we need CHKInventory.apply_delta06:35
thumperpoolie: hi, is spiv with you?06:42
pooliehi, yes he is06:43
pooliedo you want him?+06:49
lifelesspoolie: why?06:55
lifelesspoolie: (but sure, that should be easy enough, just hoist it up to the base class, test etc)06:56
lifelessor reimplement, making it into a dict delta06:56
lifelesswhich would be best06:56
thumperpoolie: yeah, I'm talking with him about some weird hpss push problem with stacked branches07:03
poolielifeless: regarding apply_delta, i think we want to change code so that it's not counting on mutating existing inventories07:11
poolieiow apply_delta should be deprecated in favour of create_by_apply_delta07:11
lifelesspoolie: ack07:13
lifelesspoolie: please, on the isinstance, trust me07:13
poolieif it's important i'd like to at least add a comment saying so07:14
lifelesspoolie: set(dict.keys()) is slower than set(iter(dict))07:14
poolieok07:15
lifelesserm07:15
lifeless*faster*07:15
pooliehm07:16
pooliein that case i wonder if building two whole sets and subtracting them is actually faster07:16
pooliebut the whole thing should be able to be removed07:16
lifelessI spent well over a month of my life profiling and tuning commit07:17
lifelessI assure you that the current code in that part of commit, with dirstate trees, is vulnerable to slowdowns by 'obvious' changes and minor perturbations07:18
poolienice07:19
lifelesssorry, I'm not meaning to get snippy07:19
poolienp07:19
pooliei take your point and thanks for the warning07:20
poolie           # the older Inventory classes provide a _byid dict, and building a07:21
poolie            # set from this directly is substantially faster than even getting07:21
poolie            # a set of ids from the inventory07:21
lifelessas a comment? sure07:21
lifelessI'd say07:22
lifeless"from the keys of this dict"07:22
lifelessbecause thats the critical thing - set(dict) ~= set(iter(dict)) < set(dict.keys())07:22
poolies/</>/?07:23
poolieyay perl :)07:23
lifelessset(dict) is roughly the same speed as set(iter(dict)) and both are significantly slower than set(dict.keys())07:24
poolieoh, measuring goodness not time07:24
poolieiswym07:24
lifelesswe don't want someone going 'the call to keys() is unneeded, I'll just clean it up here'07:25
pooliesure, that's why i want a comment07:25
lifelessright, I'm agreeing07:26
poolieno point discussing this and then doing it over and over07:26
poolieme too :)07:26
lifelessI'm saying your comment needs to say 'keys' in it :)07:26
pooliei see07:26
pooliethat's kind of a bug in python if set(dict) is evaluated as set(iter(dict)) when the other would be faster07:27
pooliewell, 'bug' might be too strong07:27
lifelessfeature clearly07:27
lifelessbut this is what I mean by obvious cleanups07:27
lifelesssemantically set(dict) == set(dict.keys()), but performance wise they are rather different07:27
pooliei'm going to do the isinstance on both of them07:28
lifelesswhat will the fallback be then?07:28
pooliedo you want me to send a new patch just for this, or just keep it in my branch?07:28
pooliehttp://pastebin.ubuntu.com/69911/07:29
lifelessnew patch would be good; we can review it and send it to trunk07:29
lifelessyah, looks good to me, bb:approve07:29
poolieoh i guess this can actually go in to trunk now07:30
poolieok07:30
lifelesswait a sec07:31
lifelessdamn python, things keep changing ...07:31
lifelessrobertc@lifeless-64:~$ python -m timeit -s "f = dict((str(num), str(num + 1)) for num in xrange(50000))" "set(f)"07:31
lifeless100 loops, best of 3: 15.9 msec per loop07:31
lifelessrobertc@lifeless-64:~$ python -m timeit -s "f = dict((str(num), str(num + 1)) for num in xrange(50000))" "set(f.keys())"07:31
lifeless10 loops, best of 3: 23.3 msec per loop07:31
lifelessrobertc@lifeless-64:~$ python -m timeit -s "f = dict((str(num), str(num + 1)) for num in xrange(50000))" "set(iter(f))"07:31
lifeless100 loops, best of 3: 17.2 msec per loop07:31
lifelessso set(f) is appearing to be the fastest thing now07:31
lifelesssometimes I hate python07:33
lifelesslooks like any change here will need solid reprofiling07:33
lifeless<garh>07:33
AfCRobert: "sometimes I hate python". I'm going to write that down, I think07:33
pooliei'm pretty sure the whole thing can be removed since we _should_ have this data from iter_changes07:33
lifelessmy advice would be the isinstance, with the comment tweaked to advise that we were cautious in the lack of time to profile07:33
lifelesspoolie: but we aren't using iter_changes yet07:34
lifelesspoolie: I mean, I agree in principle; but today it isn't the case that we can use iter_changes trivially07:35
pooliesorry, i meant from _populate_from_inventory07:35
lifelessigc did a patch which came close07:35
pooliewhich seems to know about deletions too07:35
pooliebut i don't want to look closely into it now07:35
pooliei might ask ian about that this week07:35
poolieafc, familiarity breeds contempt (amongst other things) :)07:36
lifelesswe didn't have an answer for iter_changes during commit of a merge07:36
lifelessand07:36
lifelesshaving two code paths was very concerning to me at least, for this particular bit of code, commit is kinda critical07:36
lifelessnow, I think I have an answer for iter_changes and merges, but its very different to what igc had been putting together07:37
lifelessI'll drop a mail to the list07:37
poolieif you like, it's not immediately in our queue07:40
pooliefor now, vincent and i are going to make inventory stuff more CoW, maybe deprecating methods that aren't07:40
pooliebtw "i hate python" reminds me of http://lambda-the-ultimate.org/node/51007:41
poolieactually not precisely that but i can't find the precise link07:41
poolie>> I suspect that the best thing a GC can provide is a predictable performance model that programmers can understand and use.07:41
lifelesspoolie: where is apply_delta being used btw07:42
* poolie pops stacks07:53
pooliein commit i think07:53
pooliecalling update_basis_by_delta; the default implementation of that calls it07:53
pooliethe non-dirstate case again07:53
lifelesshmm07:55
lifelessthe basis can't be updated in a memorytree anyhow07:56
lifelesspoolie: I'd be inclined to override update_basis_by_delta on MemoryTree07:57
lifelesspoolie: avoids the issue entirely, and faster too07:57
=== jszakmeister|awa is now known as jszakmeister
thumperyay for `bzr info -v` not taking ages and counting disk size08:10
kumibzr_access works, yay08:22
poolieyay08:24
kumiIf I branch from serverA to serverB, both branches can either pull or push to each other, correct?08:25
pooliecorrect08:26
kumiawesome08:26
kumiI just upgrade from 0.92 to 1.9-rich-root. This is blazing fast08:29
pooliethat's great!08:30
pooliewhat are you storing?08:30
kumiA small website08:31
kumiI'm not sure if rich-root was the right choice, I didn't find any info about it08:31
kumijust that it's advised for bzr-svn08:32
=== eMBee_ is now known as eMBee
thumperkumi: rich root will become the defacto standard sometime in the (hopefully) near future08:56
hnothumper: What is rich-root about?09:06
thumperhno: rich-root formats store extra information about the root directory, sorry I don't know much more than that09:07
thumperbzr-svn needs to know more about the root09:07
thumperit is also required for nested-tree support (I believe)09:07
thumperI don't know what in particular it needs either09:07
hnodoesn't say much..09:07
thumperno09:08
kumianything that gets us closer to nested trees is A-OK09:18
kumiin my book09:18
hnoFound this in the bzr-1.0 news: New rich-root and rich-root-pack formats, recording the same data about tree roots that's recorded for all other directories. (Aaron Bentley, #164639)09:21
jszakmeisterjelmer: you around?09:48
=== jszakmeister is now known as jszakmeister|awa
_tsatbic_I've got a question about the selftest. I installed bzr-1.9 from source. I installed on "CentOS release 5 on x86_64" and on "Debian release 4.0".13:31
_tsatbic_I run selftest on both systems and do not know how to interpret the results.13:32
_tsatbic_I've got 873 tests skipped, 2 and 4 failures, 1 error and 12 and 15 known_failure_count13:33
_tsatbic_the word FAILED is written in capital letters13:34
gnomefreakhow would i remove a pending merge?15:17
beunognomefreak, bzr revert --forget-merges15:18
gnomefreakthanks15:18
=== kiko is now known as kiko-fud
rockyjelmer: new bzr-svn issue for you... or perhaps you can show me what i'm doing wrong -- http://cluebin.appspot.com/pasted/260316:44
jelmerrocky, that's bug 29344016:46
ubottuLaunchpad bug 293440 in bzr "Cannot commit to bound svn branch: "invalid property value 'branch-nick' for None"" [High,Fix released] https://launchpad.net/bugs/29344016:47
rockyoh good, it's no just me16:47
* rocky looks for a work around16:47
rockyjelmer: so essentially this is a bzr 1.9 bug ? (do you know if it's been applied to the bzr 1.9 branch?)16:48
rockyerr... if the fix has16:48
jelmerthere's a proposed patch attached16:48
jelmerno, it hasn't made it in yet16:48
* rocky unbinds and pushes16:53
jelmera workaround is to set a nickname locally I think16:59
rockyoh i've never set a branch nick name before, didn't know there was such a thing17:10
rockyjelmer: what i've been working on is  http://pypi.python.org/pypi/ClueBzrServer17:10
jelmerrocky, ah, nice17:12
jelmerrocky, any plans to integrate loggerhead?17:12
rockyjelmer: not currently, but honestly i had no plans to do anything so who knows ;)17:15
rockyif loggerhead is just another wsgi app it should be pretty straight forward17:15
jelmerit is, afaik17:15
rockycourse the real reason i'm working on this is to hook it up to the full ClueMapper suite which is basically a way of managing multiple trac instances with multiple (currentlly svn only) repos17:16
rockybut i figured it's useful outside the ClueMapper suite17:16
rockykumi: is http://pypi.python.org/pypi/ClueBzrServer something like what you were looking for last night?17:27
jelmerrocky, can you perhaps announce cluebzrserver on the bazaar list?17:30
jelmerrocky, I suspect there are more people interested in this sort of thing17:32
kumirocky: yeah, the convenience factor with your tool seems high17:32
kumialthough I went with contrib/bzr_access17:32
=== kiko-fud is now known as kiko
rockykumi: my tool supports ldap auth :)17:39
rockyjelmer: yeah i should subscribe to bazaar list17:40
rockyjelmer: which list?17:42
rockyusers/developers i guess17:42
jelmerbazaar-list@lists.canonical.com17:42
jelmerthere's just one list, nothing specific for developers or users17:43
rockyjelmer: you put a bad link in http://bazaar-vcs.org/BzrForeignBranches/Subversion for 0.4.1517:45
jelmerrocky, thanks, fixed17:45
rockyjelmer: do you know if loggerhead 1.6 works with bzr 1.9 ?18:14
jelmerrocky, don't know18:15
jelmerrocky, I think so18:15
rockyit's a pretty straightforward app, wsgi and the like18:15
rockyjelmer: btw, it's almost certainly not possible to have bzr-svn setup properly as an egg because the "location" of the plugin is very important for bzr and that can't be controlled via egg18:15
jelmerrocky, ah, ok18:16
jelmerrocky, in that case, it won't work for any of the bzr plugins18:16
rockyjelmer: exactly18:16
rockyi discussed that with lifeless a bit last night, basically the conclusion is that nobody that's really interested in eggs is working with bzr code18:17
rockybut they would probably welcome a patch18:17
rockyi might have a swing at it one of these days... set it up so plugins can be defined via egg entry points (that also means an egg can contain more than one bzr plugin)18:17
jelmeryeah, I agree it would be good to have support for eggs18:26
jelmereven though I use them myself18:26
jelmereven though I *don't* use them myself18:28
rockyjelmer: if i'm going to start pplaying with trac 0.11 and bzr 1.9 ... which trac-bzr branch should i look at?18:39
* rocky thinks experimental might be his best bet18:39
=== mxpxpod is now known as mx|lunch
jfroy|workyeah, I've had issues in the past where plugins would be installed as eggs and essentially not be loaded18:47
jfroy|workIdeally Bazaar should publish some guidelines or boilerplate distutils code to help plugins authors distribute their plugins in a manner compatible with easy_install, such that users could install plugins through their OS's package manager, through running setup.py (from a source distribution or a bazaar branch or checkout) and through easy_install.18:49
* jfroy|work is reminded of the sad, sad state of Python package installation18:49
rockyjfroy|work: atm it's simply not possible to do what you suggest with eggs/plugins without modifying bzr somehow to look up egg entry points18:51
rockybasically the way bzr plugins works now works *against* how eggs work18:51
jfroy|workYeah, I know.18:52
rockyin fact, anything that relies on __path__ works *against* eggs18:52
jfroy|workI don't think we should support eggs necessarily18:52
jfroy|workJust make sure easy_install / setuptools never install Bazaar plugins as eggs18:52
rockyi don't think that's possible either ;)18:52
rockyeasy_install will try to install any distutils-activated tarball/directory18:52
rockyit should be pretty straightforward to write a standard bzr plugin that enables plugins via eggs18:53
jfroy|worklol18:53
rockyso a meta plugin of sorts18:53
jfroy|workthat's so ... meta, yeah18:53
jfroy|work:)18:53
rockybut either which way, i can understand if nobody is interested enough in eggs to implement any of this, but nobody should be opposed to it either ;)18:54
jelmerrocky, the trunk18:56
* rocky switches to trunk18:56
jelmerrocky, experimental is the branch used for Debian experimental18:57
jelmerit's basically trunk with a debian/ directory18:57
rockyjelmer: so lp:trac-bzr then?18:57
jelmerrocky, yep18:57
rockyjelmer: where does bzr+debug logging typically go? i don't *think* i'm seeing it in console when i turn on trac debugging18:59
jelmer~/.bzr.log19:00
rockyreally? i'm not seeing *anything* there19:02
LarstiQright user?19:02
rockyyeah, this is a test environment i'm running right now all running under my personal user account19:02
rockyah i kind of see what's going on here ... if i try browsing to a branch that is empty, i get an error ... (<p class="message">No node MyProject/trunk at revision current:</p><p>You can <a href="/pm/p/testbzr/log/MyProject/trunk?rev=current%3A&amp;mode=path_history">search</a> in the repository history to see if that path existed but was later removed</p>)19:04
rockywhoops, didn't realize that was going to be so much19:04
rockybut if i add a file to that branch, it views fine19:05
LarstiQdoes it need to have files, or revisions? Ie, ci --unchanged on an empty branch.19:06
rockyit shouldn't have to, but i mean trac shouldn't be reporting an error when it doesn't19:07
rockyjelmer: i'm still running into bizarre commit issues .... i just did the following:19:22
rocky1) bzr co https://somesvnproject/trunk svnproject-trunk19:22
rocky2) bzr branch svnproject-trunk svnproject-mybranch19:22
rocky3) changed some files in mybranch19:22
rocky4) committed files in my branch19:22
rocky5) bzr push https://somesvnproject/branches/mybranch19:22
rockyand after doing all this, the changes i made actually get committed back to trunk and my remote branch dir is empty19:22
rockyam i doing something stupid again?19:22
jelmerrocky: can you show me the svn log output from that particular revision?19:23
rockywell, doing a push did two svn commits19:24
rockyone commit created the empty branch folder, the second commit updated the files in (incorrectly) trunk19:24
rockylemme dig up the revs19:24
rockyjelmer: what "svn log" output are you looking for?19:24
LarstiQthat sounds familiar19:24
jelmerrocky: so mybranch didn't exist before?19:24
rockyjelmer: no it did not19:24
jelmerrocky, the last few revisions19:25
jelmerrocky, use "bzr svn-push" for new branches - bug 12794519:25
ubottuLaunchpad bug 127945 in bzr "Integrate creating new branch functionality into standard push/branch" [High,In progress] https://launchpad.net/bugs/12794519:25
LarstiQjelmer: if it helps, I had svn mkdired a branch dir, bzr pushed to it, and got what was in trunk (instead of my diverged branch) in there19:25
rockyjelmer: you can see what i did with http://projects.serverzen.com/pm/p/cluemapper/timeline where the last two revs is where i backed things out19:25
jelmerrocky, LarstiQ: please file a bug19:26
rockyjelmer: looks like using svn-push did the right thing ... so i guess it was just that i wasn't using the push properly19:27
rockydue to that bug you mentioned19:27
LarstiQjelmer: noting it down to do first thing tomorrow when I'm back at that repository19:28
rockyjelmer: the bzr ancestry property here http://projects.serverzen.com/pm/p/cluemapper/browser/ClueMapper/branches/rocky-bzr is crazy ;)19:29
jelmerwow, yeah :-)19:29
jelmerLarstiQ, thx :-)19:29
jfroy|workOK, time to try bzr-svn again19:34
jfroy|workWith the awesomely tortured svn repository19:34
jfroy|workjelmer: http://pastie.org/31163619:47
jelmerjfroy|work, please use 0.4, not trunk19:48
jfroy|workI'm pretty sure I need 0.5's more flexible repository layout support19:49
jfroy|workIs 0.4 TOT viable?19:49
jelmerjfroy|work, TOT?19:50
jfroy|worktop of tree19:50
jfroy|worksorry :/19:50
jelmeryeah, 0.4 should work fine19:50
jelmerI've pushed a fix for trunk as well for the issue you mentioned19:51
jelmerbut running trunk on production stuff is asking for trouble..19:51
jfroy|workbefore I kick off the next command, what debug flags would be useful to you?19:55
jelmerit depends on the error19:56
jfroy|workAlright, here goes19:56
jfroy|workRunning on revision 175519:56
jfroy|workblank config (no subversion.conf, no cache)19:56
jfroy|workwhoa20:00
jfroy|workit worked20:00
* jfroy|work is very impressed.20:00
jelmercool :-)20:02
jfroy|worktip of the hat20:04
jfroy|workI tried two different branches in that common repository of hell, both checked out fine20:04
jfroy|work(two different projects)20:04
jfroy|workw/o to commits and merging, what is the proper sequence of way such that each commit made in bazaar will be a separate commit in Subversion?20:05
jfroy|workIIRC given trunk, a checkout of a svn branch, and trunk-dev, a Bazaar branch of trunk, you should not from trunk merge trunk-dev, as that will yield one svn commit for the merge (with all the changes merged from the branch).20:07
jfroy|workI think pushing from trunk-dev into trunk does the trick, merging trunk into trunk-dev before pushing.20:07
jfroy|workOr is that bad?20:07
jelmerjfroy|work, yeah, basically - only things that are in the mainline of hte bzr branch end up in svn20:10
jelmerjfroy|work, merging trunk into trunk-dev won't work, since that changes the mainline in svn20:11
jfroy|workRight, and a merge is a single item with a hierarchy of changesets below it coming from the other branch20:11
jelmerjfroy|work, you may want to look at the bzr-svn FAQ20:11
jelmer'morning thumper20:11
jfroy|workjelmer: not sure I understand that FAQ item :p I'm not well versed enough in DCVS theory to really understand what it is saying20:13
jfroy|workMy short question is: what's the best practice to stay out of trouble, in general20:13
jelmeruse bzr rebase20:14
jelmeris the simplest answer there20:15
jfroy|workI've never used that :p20:16
jelmerit replays the revisions unique to trunk-dev on top of trunk, basically20:16
jelmerso you keep a linear history (no right hand side stuff)20:16
jfroy|workSo I see20:18
jfroy|workSo would, inside trunk, rebase ../trunk-dev amount to pushing from trunk-dev to trunk, provided they have no diverged?20:19
jfroy|work*not20:19
jfroy|work**not diverged20:19
jelmeryes, with newer versions of bzr-rebase20:20
jelmerolder versions will just yell at you and tell you to use "bzr pull" instead :-)20:20
jfroy|worklol20:20
jfroy|workI see20:20
jfroy|workright, a pull would do that20:20
jfroy|workThe issue is when the branches have diverged, I suppose.20:20
jfroy|workIdeally, I want a workflow where I have a checkout of trunk from subversion, with a set of work branches.20:21
LarstiQisn't renase ../trunk-dev the wrong way around?20:21
jfroy|workI want to be able to pull changes from trunk into those work branches periodically to keep up with trunk, and push changes from those work branches into the svn trunk branch when appropriate.20:21
jelmerLarstiQ, yes, you usually spell it with a "b" :-P20:21
jfroy|workLarstiQ: yes I just noticed that20:22
thumperhi jelmer20:22
jfroy|workyou rebase inside trunk-dev, onto trunk (or by default the parent branch)20:22
jelmerjfroy|work, rebase will allow you to do that20:22
LarstiQjelmer: :P20:22
jfroy|workSo the workflow is basically, from the work branches, bzr merge ../trunk20:22
LarstiQjelmer: I meant rebasing svn trunk on top of bzr diverged seems off..20:23
jfroy|workTo pull changes that have been committed to Subversion's trunk20:23
jfroy|workAnd bzr rebase from those work branches to send those changes to trunk20:23
jelmerjfroy|work, no, the other way around20:23
jelmerjfroy|work, bzr rebase to pull in changes from svn trunk and bzr push to make changes go into svn trunk20:24
* jfroy|work is hopelessly confused now.20:24
jfroy|workAhh, gotcha.20:24
jelmersorry20:24
LarstiQnow I am confused.20:24
jfroy|workNo it's entirely my fault :p20:24
* jfroy|work casts confuse on #bzr20:24
LarstiQjfroy|work: well, jelmer's explanation confuses me.20:24
jelmerLarstiQ, which bit, specifically?20:24
LarstiQjelmer: bzr rebase pulling in changes from svn20:25
jelmerLarstiQ, if you have a feature branch, you can "bzr rebase" on top of the svn trunk20:26
jfroy|workright, it basically will find the changesets in the current branch that are not in svn trunk20:27
LarstiQjelmer: right, but I understand that as running from the feature branch with trunk as argument.20:27
jfroy|workThen alter the history of the current branch to the top of svn trunk, and replay the identified changesets.20:27
jelmerLarstiQ, yes, that's correct20:27
jfroy|workyup20:27
LarstiQjelmer: ok, unconfused then.20:27
jelmerjfroy|work, correct20:28
jfroy|workWhich means that after that, the branches will not have diverged.20:28
jelmerjfroy|work, correct20:28
jfroy|workAnd you can either either push to svn trunk or pull from svn trunk20:28
jfroy|work*And you can then either20:28
jfroy|workWhich will happily send changes to subversion20:28
LarstiQit will mean anything depending on your old revisions will miss them20:29
jfroy|work*send the changes20:29
jfroy|workLarstiQ: hum?20:29
LarstiQjfroy|work: if you branch the feature-branch to 'dependant', rebase the feature-branch on top of trunk, doing a pull in 'dependant' will mention divergence20:30
jfroy|workright20:31
jfroy|workyou'll have to chain rebase down the branch children20:31
jfroy|workrebase feature on trunk, rebase dependent on feature, etc20:31
LarstiQyeah, or pull --overwrite20:31
* LarstiQ nods20:31
LarstiQif you actually have changes20:31
jfroy|workIsn't --overwrite evil?20:32
jfroy|work:p20:32
LarstiQjfroy|work: I consider it less evil than rebase :)20:32
jfroy|workjelmer: but your advise is that rebase is the best way to go, with respect to bzr-svn, correct?20:32
jelmerIFF you need to keep the mainline history intact, yes20:33
jfroy|work*advice20:33
jfroy|workMerging feature into trunk will work as well, correct?20:34
jfroy|workOr will there be issues with that, beyond the single commit to Subversion for the entire set of changes merged in.20:35
jelmerno, that should work ok20:36
jfroy|workYour FAQ mentions you can merge into a checkout of trunk, or rebase on trunk20:36
jfroy|workOK20:36
jelmerbe sure to use bzr-svn 0.4.15, btw20:36
jelmer(or the 0.4 branch)20:36
jfroy|workI am using 0.4.16dev020:37
jfroy|workOh, BTW20:37
jelmerthat's recent enough :-)20:37
jfroy|workI noticed that 0.4.15 reports as 0.4.15dev020:37
jfroy|workWhen I installed the bzr 1.9 Mac OS X 10.5 package this morning20:37
jelmeryeah, I forgot to set "final"20:37
jfroy|workI built the bzr-svn package for that20:37
jfroy|workOK20:37
jfroy|workWasnm20:37
jelmerbut it didn't seem worth it to release a 0.4.15a or 0.4.16 just for that20:38
jfroy|workFor a moment I was worried I somehow built from an outdated source distribution...20:38
jfroy|workAnything important in 0.4.16 over .15?20:42
jfroy|workIn other words, should I tell people to install 0.4.16 on top of .15 right now?20:42
LarstiQit seems to me .16 is not released yet?20:45
jelmeryeah, 0.4.16 isn't out yet :-)20:47
jfroy|workjelmer: http://pastie.org/311689 :|20:47
jelmerjfroy|work, that's a known bzr bug - bug 29344020:48
ubottuLaunchpad bug 293440 in bzr "Cannot commit to bound svn branch: "invalid property value 'branch-nick' for None"" [High,Fix committed] https://launchpad.net/bugs/29344020:48
jfroy|workI see20:48
jfroy|workSo basically, no bound branches for now20:55
jfroy|workjelmer: everything seems to be working fine21:13
jelmercool21:14
dwtHey guys, I'm getting a ERROR: bzrlib.errors.KnitCorrupt when updating from a svn host21:20
dwtall the while bzr check is sure that nothing is wrong with the repository21:20
dwtcould someone advise on how to track this down further?21:20
jelmerdwt: Hi21:24
jelmerdwt, what version of bzr-svn ?21:25
dwtjelmer: Evening!21:25
dwt1.9 I installed21:25
jelmerbut what version of bzr-svn?21:25
dwtjust a second21:26
jelmer0.4.15 contains a fix for this21:27
dwtbzr-svn 0.4.1521:27
dwtthats what my NEWS file says at least21:27
dwtis there a better way to get the version of bzr-svn?21:27
jelmerdwt, please try removing ~/.bazaar/svn-cache and doing a clean checkout21:27
dwt:-/21:27
dwtThats going to take about 6 hours21:28
LarstiQouch21:28
dwtIs there a shortcut?21:28
james_wabentley: hi, would you have a few minutes to help debug this issue with autopacking stacked branches?21:28
abentleyjames_w: No, because I'm debugging an issue with autopacking stacked branches.21:29
dwtI mean, I don't really need the history21:29
dwtI'd love to just get the last 100 revisions or something like that21:29
james_wabentley: heh, fair enough :-)21:29
dwtif possible21:29
jelmerbzr-svn 0.4 has some experimental support for stacked branches, but will still have to figure out the file ids and thus analyse all revisions21:30
dwtby the way: whats the easiest way to find out at what revision my checkout exactly is?21:30
jelmerdwt, bzr revno or "bzr version-info"21:31
dwtjelmer: thanks!21:31
jelmerdwt, is this a public repository?21:32
dwtyes21:32
dwtsvn://svn.adiumx.com/adium/trunk21:32
dwtjelmer: I just updated to the latest version of the stable-branch and am trying it again from there (from the news file this seems to be "bzr-svn 0.4.16  UNRELEASED"21:34
dwt)21:34
* LarstiQ nods21:34
* dwt :)21:35
dwtUh wow!21:36
dwtit got throuth it!21:37
dwtYES!21:37
dwt:)21:37
dwt(Sorry for the cry of joy. :)21:37
jelmerdwt, :-)21:38
dwt(Just for the record: my git-svn import of that same repository still dies on a bug in the git 1.6.0.2 that ought to be fixed only in 1.6.0.3 ;)21:38
dwtbut which I still can't verify21:38
dwtAh well. Have a nice day! (On with my work on adium)21:40
jelmerThere's no open bugs wrt importing svn repositories in bzr-svn atm21:40
jelmerNot sure whether that's just because there are none or because people don't report them..21:40
jelmerdwt: :-)21:41
fullermdAs long as nobody reports bugs, there aren't any.21:41
dwt:)21:41
fullermdErgo, all bugs are user-inflicted.21:41
dwtWell, it works for me now - though I'm using the unreleased version21:41
jelmer0.4.16 doesn't contain any changes that could influence this that aren't in 0.4.1521:42
dwtgreat21:42
dwtso it seems I've not been on the correct checkout of 4.15 -21:43
dwtMust be that I've updated too early from the stable repo21:43
dwt(about satturday)21:43
jelmerah, yeah, it was fixed later than that I think21:44
dwtdamn. :)21:46
=== bac is now known as bac_afk
lifelessmoin21:58
lifelessjames_w: perhaps I can help, once I have caffeinated21:59
james_wlifeless: I'm sure you could21:59
lifelessjames_w: so, while I hunt down caffeine, can you describe whats up22:01
james_wjust pulling up the bug number22:01
james_wbug 28875122:01
ubottuLaunchpad bug 288751 in bzr "bzr push returns error Revision <x> not in <y>" [Critical,Triaged] https://launchpad.net/bugs/28875122:01
lifelessok, so thats autopackin related? cool - I know abentley is fixing that; I thought you might have another case22:02
james_wI'm with gmb and he just hit it, so I wanted to grab some information while there were live branches22:02
james_wyeah, it sounds like Aaron is on it22:02
lifelesstry bzr pack <target branch>22:02
abentleylifeless: It depends which autopacking bug you mean.22:03
abentleylifeless: We've got plenty of them.22:03
lifelessoh :(22:03
lifelessI thought there was just one left22:03
abentleylifeless: No, there are at least three.22:03
lifelessgrah22:04
lifelessso, stab in the dark, ifyou disable spiv's smart verb, do they go away?22:04
abentleylifeless: No.  Codehosting is on 1.7, so it doesn't support the smart verb.22:04
lifelessah, true enough22:05
lifelessmust caffeinate, brb22:05
james_wta-da!22:06
gmblifeless: Morning. I has pastebins for you22:07
gmblifeless: https://pastebin.canonical.com/11006/ (Traceback)22:07
gmblifeless: https://pastebin.canonical.com/11007/ (bzr.log)22:07
james_wfrom what I have been able to discern, when it does the autopack it can no longer find some text compression parents in the combined indices.22:11
james_win this case there were two missing parents, from two different file ids22:12
james_wboth file ids were modified in the revisions being pushed22:12
james_wthe missing parents were from a while ago, September and June.22:13
james_wthe missing parents were the last revisions to modify the files in question though22:15
james_wthough both were revisions merged by PQM22:15
lifelessabentley: is the one james_w is talking about the one you are investigating ?22:16
lifelessjames_w: so the question is 'why' - we're not meant to ever delta compress across repository boundaries; its not safe.22:17
lifelessso either there is another bug elsewhere allowing that to happen (plausible), or we are dropping some index that matters at autopack (less plausible)22:19
abentleylifeless: it sounds like #288751, which I will do, but not what I'm working on.22:20
lifelessjames_w: if you're interested in helping, writing a little script to open a repo, and scan all its indices for missing compression parents would be good22:20
lifelessabentley: ok, I'll chase it a little to clarify it, but will get back to the inventory stuff once its clear22:21
abentleylifeless: I don't recall any requirement that delta compression avoid revision boundaries.22:21
abentleys/revision/repository22:21
james_wlifeless: but would that help? It seems like it is at the autopack stage, so analysing the repository before may not tell us anything.22:21
lifelessthe discussion may have happened on irc22:21
lifelessjames_w: it will tell us if that theory is false22:21
james_wlifeless: true22:22
lifelessand if it fails to disprove the theory, we can continue looking for falsification - or even confirmation :>22:22
lifelessabentley: the discussion may have happened on IRC. I'll look for a list message; I'm fairly sure there are docstrings mentioning it.22:22
lifelessabentley: the reasoning I recall was : to allow smart servers to always be able to operate on their repository contents, without requiring third-party connections (like e.g. site-to-site ftp)22:23
abentleylifeless: Well, it wouldn't surprise me at all if your first commit to a stacked branch was all deltas.22:23
thumperspiv: ping22:24
lifelessabentley: bzr should not delta (unless the basis revision was pulled across)22:24
abentleylifeless: I am certain that the smart server attempts to access remote repositories, because it gets a publickey error22:26
lifelessabentley: ugh; thats definitely not what was intended22:26
lifelessabentley: 'doc/developers/overview.txt' has prose about this22:27
lifelessunder the 'Stacked Repositories' section22:28
lifelessand, <3 bzr-search22:28
lifelesswhich found this immediately after I failed with google :)22:28
abentleySo, perhaps commit honours this contract and push doesn't.  But something is rotten.22:30
pooliehello lifeless, abentley, james_w22:33
abentleypoolie: hi22:33
james_whi poolie22:34
thumperhi poolie22:36
thumperpoolie: abentley and I are trying to track down the source of the hpss push problem we are seeing22:36
abentleythumper: I seem to be reproducing it at last.22:36
thumperabentley: \o/22:37
abentleythumper: What was the bug number again?22:37
lifelessabentley: ack22:37
lifelessabentley: do you have a stack trace of the server side op that is trying to make a connection? (I'm curious about why anything would be trying that)22:39
abentleylifeless: Not at present, but it's not hard.  Just mirror a stacked branch off launchpad, change its stacked_on URL to a remote one, and push into it.22:40
lifelessabentley: ah, so you're using your local bzr version at that point - I bet that that is the autopack kicking in22:41
lifelessspiv should be around in about 20 minutes22:41
beunoif this is bug 288751 we're talking about, I suspect it's autopacking as well22:42
ubottuLaunchpad bug 288751 in bzr "bzr push returns error Revision <x> not in <y>" [Critical,Triaged] https://launchpad.net/bugs/28875122:42
lifelessbeuno: we're talking about a cluster22:42
thumperabentley: I don't know if I had a bug number for this one22:42
thumperabentley: oh, hang on22:42
abentleythumper: That one ended with Revision X not present in KVF.  I'm running check on my mirror of trunk.22:44
thumperabentley: I think it is this one: https://bugs.edge.launchpad.net/ubuntu/+source/bzr/+bug/29367922:44
ubottuLaunchpad bug 293679 in bzr "1.9rc1 can't push to Launchpad" [Undecided,Invalid]22:44
thumperabentley: bug 293679 is the one that takes ages22:44
ubottuLaunchpad bug 293679 in bzr "1.9rc1 can't push to Launchpad" [Undecided,Invalid] https://launchpad.net/bugs/29367922:44
abentleylifeless: There is also bug 295350.22:47
ubottuBug 295350 on http://launchpad.net/bugs/295350 is private22:47
abentleylifeless: That one is a regression from 1.8, and affects HPSS only.22:49
lifelessok22:50
james_wgmb: please run http://people.ubuntu.com/~jamesw/check-packs.py at your leisure22:56
james_wgmb: "python check-packs.py lp:~gmb/project/whatever-you-called-that-branch"22:57
=== kiko is now known as kiko-afk
* spiv waves22:59
lifelessspiv: is the autopack verb aware of stacking?22:59
lifelessspiv: (does it ensure it doesn't get a parameterised repository)23:00
spivthumper: pong23:00
spivlifeless: Hmm.23:01
lifelessspiv: if its a method on repository, it should be fine, but it if opens (on the server) the repo via branch... then it won't be ;)23:02
spivlifeless: the server-side simply calls repo._pack_collection.autopack()23:02
spivOk, it should be fine then.  It doesn't open it via the branch.23:02
lifelessok23:02
spivAlso, I'm not sure if the client would even invoke it for a stacked repo, the behavior of InterPackRepo.fetch probably avoids it.23:03
lifelessspiv: then it will autopack over the wire23:04
spivRight.23:05
thumperspiv: can you skype quickly?23:09
spivthumper: ok, just a moment.23:11
spivthumper: I'll just go grab my headset23:12
w00t_hi, i've got a very tricky vcs problem, and i'm wondering whether perhaps bzr can do some insane tricks to help me solve it, but i'm not sure :) does anyone have experience with messing around with imports/conversions and so on? involves subversion, and to a large extent git as well.. :P23:16
w00t_essentially, i imported a damaged svn repository which i didn't have commit into git, and did lots of my own hackery, now they want to replaced their damaged svn repo with a fresh one cloned from mine.. with git, though, this will involve nuking all the historical timestamps and authors on the commits (new repo, clone with git-svn, use remotes to rebase the entire old repo onto the new svn repo & dcommit), which is horrible, and i'd like to avoid 23:19
w00t_(yes, I'm well aware this is insane23:19
w00t_)23:19
lifelesswhats damaged in the repo?23:20
w00t_about 200 revisions are untouchable, literally23:20
fullermdWell, it's in svn  ;)23:20
w00t_i had to import around them using git-svn23:21
w00t_fullermd: definitely so. unfortunately, not everyone has seen the light yet, so I have to try work with them in a way that won't drive either of us insane :-)23:21
lifelessso, you could fastexport to bzr, then bzr push into a new svn repo; this will preserve timestamps and authors AFAIK23:22
w00t_do you have some docs I can read? :)23:22
lifelessyou can obviously test with a svn repo on your own machine23:22
lifelessinstall bzr-svn23:22
lifelessand there is the bzr svn faq and docs on the wiki23:22
w00t_(this will also probably involve me learning/using bzr instead of git, which I've wanted to do for ages)23:22
w00t_is 'fastexport' a bzr plugin also?23:23
lifelessyah23:23
lifelesswell23:23
lifelessthere is git-fastexport23:23
lifelessand bzr fastimport23:23
w00t_ah23:23
w00t_of course.. i'm having a blonde day! :)23:23
lamalexdoes anyone here use the emacs vc-bzr mode?23:26
lifelesslamalex: I think vila does23:26
lamalexvila: ping?23:27
w00t_lifeless: bzr fast-import and bzr fastimport both don't seem to exist.. is it likely to be in some external package? (I'm using ubuntu with bzr+bzr-svn packages installed, can't see any that look relevant)23:27
jelmerw00t_, fastimport/fastexport != bzr-svn23:28
* w00t_ scratches his head23:28
lifelessw00t_: you need bzr-svn to push to svn, and fastimport is separate23:28
lifelesshttp://bazaar-vcs.org/BzrFastImport23:28
w00t_ah! lovely23:28
w00t_let me give that a whirl23:28
vilalamalex, sry, not vc-bzr yet :-/23:32
vilalamalex, but ask your question anyway :)23:32
lamalexi was wondering if anyone knew the minor-mode to commit23:32
lamalexi can't find it lol23:32
bob2what do you mean?23:33
lamalexso i do23:33
bob2C-x v v invokes the commit editor23:33
lamalexM-x vc-<TAB> and nothing looks like commit23:33
lamalexlemme try that23:33
lamalexis there a guide anywhere?23:34
bob2C-h i -> emacs -> version control23:34
lamalexoh right, emacs has help23:34
lamalexI'm new to emacs also23:34
lamalexa recent vim convert23:34
lamalexI LOVE it, but it's got a curve for sure23:34
bob2the point of vc is that it works similarily (*) for all vc systems23:34
bob2* which is not terrible useful for things other than cvs23:35
w00t_lifeless: the import is running now, thanks! let's see how this goes.. so, next I guess I'll need to figure out how to use bzr-svn to push to an empty SVN repo? (or can it create one I wonder)23:35
lifelessw00t_: jelmer can advise better than I; but I imagine it is just (after creating the svn repo) bzr svn-push svn://path/to/repo/trunk23:37
lifelessw00t_: (svn-push is needed for the first push of a branch to svn)23:37
lamalexbob2: so it's not useful for bzr?23:38
lamalexi saw there was a dvc mode when i googled bzr emacs23:39
bob2depends what you want to do and which version of emacs23:39
lamalexemacs 22.2, and basically i want to commit, and see diffs from a bzr tree23:41
lamalexmerge23:41
lamalexbasic vcs stuff I suppose23:41
lamalexbut ive never used any ide+vcs before23:41
lamalexi usually just have two shells open23:41
lamalexso im intrigued by this23:41
bob2iirc trying to commit multiple files in emacs 22 will do multiple commits, which is a bit useless23:42
bob2merging, no idea, diffs should be fine23:42
lamalexmeh ill just stick with the cli :(23:46
bob2should be greatly improved in a recent cvs snapshot23:46
lamalextoo bad, coulda been pretty cool23:46
w00t_lifeless: hmm. I shall try that then23:46
lamalexbob2: in an emacs snapshot, or a vc-bzr snapshot23:46
bob2lamalex: both23:47
vilalamalex, vc-bzr is file-oriented, dvc is tree oriented, you should try dvc23:48
w00t_lifeless: ERROR: Not a branch <--- I assume that means I need to 'bzr update' like the fast-import process mentioned23:48
lifelessw00t_: run 'bzr branches'23:49
w00t_I see all my branches listed there :)23:49
lifelessw00t_: the not a branch error most likely just means you are in a dir that isn't itself a branch23:49
w00t_the dir it mentions as not being a branch is a subdir of my .bzr: /project/.bzr/branch/ actually23:50
lifelessw00t_: was 'project' listed in the output of bzr branches?23:50
w00t_no, project isn't a branch name, it's the name of the project23:51
lifelessright23:51
lifelessso project isn't a branch :)23:51
w00t_hmm, all bzr commands (log etc) seem to give the same error23:51
lifelesscd to one of your branches23:51
w00t_uh23:51
w00t_...oh.23:52
* w00t_ rm -r and reimports to remove a lot of mess from assuming that .bzr worked the same way as .git :P23:52
lifelessw00t_: where git has 'refs' we have 'branches', each of which is a dir with its own tags and head; the historical data (gits 'objects') lives in .bzr/repository23:53
* w00t_ nods23:53
w00t_I got too used to one working directory23:54
lifelessyou probably have something like projects/.bzr/repository, and then projects/branchX/.bzr/branch23:54
lifelessworking directories are maintained with metadata in .bzr/checkout23:54
lamalexvila: with dvc i still couldn't find how to commit, but I forgot about C-h23:54
lamalexso I'll try that23:54
lifelessyou can mix and match these as needed23:54
w00t_lifeless: hmm, that is a little confusing :)23:55
w00t_I'm sure I'll get used to it23:55
lifelessw00t_: e.g. - git-like - bzr init-repo --no-trees .; bzr init trunk; bzr checkout --lightweight trunk working23:55
lifelesswill give you a branch 'trunk' and a single working dir 'working'23:55
lifelessthen bzr branch trunk feature will make a new branch feature23:55
lifelessand (in working) 'bzr switch feature', 'bzr switch trunk' etc etc23:55
bob2lamalex: C-h m gives you help for all active minor or major modes23:56
w00t_lifeless: hmm, what does the --lightweight on checkout do?23:56
lifelessbut because these things are separate, you can decouple them further - you can have the repository on a central server, for svn-alke behaviour, or, well - there are lots of useful ways to use it23:56
lifelessw00t_: it just tells bzr that 'working' should not be a branch itself23:57
w00t_branches and branches and branches, oh my :)23:57
lifelessw00t_: 'bzr checkout foo bar' will create a branch of foo in bar, and 'bind' it to foo, so that commits to bar are immediately pushed to foo23:57
vilalamalex, once you have a dvc-diff or dvc-status buffer commit is 'c'23:58
lifelessw00t_: --lightweight is useful when both foo and bar are local, because you don't need a spare copy of the history23:58
lifelessw00t_: if foo was on a remote server, you'd want a mirror of the history for performance23:58
w00t_that is really quite nifty for tossaway branches that you want to share commits with another branch23:58
w00t_does unbind (and a bunch of commits) and a later re-bind push those commits to the origin?23:59
lifelessbind won't immediately push23:59
w00t_hm23:59
lifelessit might not be able to if someone else has pushed to the origin23:59

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