/srv/irclogs.ubuntu.com/2007/11/19/#bzr.txt

lifelesswhat do CVS users do? their version ids are N-length - e.g. 1.1.1.1.1.1.1.1.100:00
lifelessthis can't be a new challenge00:00
pattern"For the purposes of this module, a version "number" is a sequence of positive integer values separated by one or more decimal points and optionally a single underscore."   http://search.cpan.org/~jpeacock/version-0.74/lib/version.pod00:01
patternhowever, the standard is to just have three digits, separated by decimal points00:01
lifelessheh00:01
lifelessyou could just do MAJOR.revno00:02
lifelessfor use case 1).00:02
patternbut i'm not going to want to release a new minor version every time i do a commit00:03
lifelessso00:03
patternand skipping minor version numbers might be confusing for users00:03
lifelessyou were talking about tagging every commit00:04
lifelessthis would have had the same behaviour00:04
patternyes, but they'd be tagged with X.Y.revno00:04
lifelessA branch might be a better way to tackle this.00:04
patternnot with X.revno00:04
lifelessif you have two branches00:05
lifelessone branch, call it 'releases'00:05
lifelessevery commit there is a release you are doing.00:05
lifelessanother branch, your trunk or mainline00:06
lifelessevery commit there is just a commit00:06
patternhmm00:06
lifelessthen, to do a release, merge to the release branch and commit00:06
patterni actually haven't worked with multiple branches of a single project in bazaar00:06
lifelessX.Y.revno in the release branch will go up slowly00:06
patternso i'm not sure i understand how this would work exactly00:06
lifelessor even X.revno00:06
lifelesswell, have a play00:07
lifelessmake a scratch project, follow the tutorials00:07
lifelessget a feel for it00:07
patternok00:07
patternthanks for your help, lifeless00:08
lifelessnp00:08
patternwhat you're describing might be something like what's on this page...  https://www.fmios.org/wiki/Discussions/BzrLayout00:09
patternunder the "Package Versioning" section near the bottom of the page00:09
pattern"The hope is that future development for each package will follow a milestone path, where milestones are set for a specific release, and when the milestones have been achieved in dev, the branch will then be copied off to the release version for that package. At that point the package is considered released and no further enhancements will be allowed to the release branch, only bug fixes. Enhancements and such will be allowed to continue in the dev branc00:10
patternh of the package."00:10
patternso, would i do something like this?  "mkdir myproject/dev ; cd myproject/dev ; bzr init ; vi my_perl_module ; bzr add my_perl_module ; bzr commit" etc... and work in "myproject/dev" and then when i have a build ready for release do "cd myproject ; bzr branch dev 1.0" to create a copy of the dev branch?00:21
patternor i guess that's what that fmios.org page is suggesting00:23
patternyou seem to be suggesting doing "cd myproject ; bzr branch myproject releases ; cd releases ; bzr commit"00:24
patterni'm not sure what advantage either of these approaches gives over simply tagging revisions with "X.Y.revno"00:25
patternthat seems much more efficient... why have these superfluous copies of the main development branch sitting around when all the important information in the copies would already be in the main development branch to begin with?00:26
lifelesswell00:30
lifelessthey are not superfluous; and a shared repo means you don't have copies either00:30
patternwhen the files are checked out, isn't the information copied?00:30
lifelessdepends00:31
patterni guess i could delete the files after the release, but then that would defeat the purpose of having a separate release branch00:31
lifelesswhat info you mean. your working files yes.00:31
patternyes, the working files00:32
lifelessthe historical data base - optionally no. See bzr help init-repo.00:32
lifelessand you could use zap-tree to remote teh release tree temporarily.00:32
lifelessstill, if you haven't actually sat down and simulated with a trial project, I urge you to do so00:32
patternwell, i did just try it00:32
lifelessthings become much clearer when you have actually worked with 'bzr merge' and multiple branches etc00:33
patternwith very basic files00:33
patterni haven't tried merging them00:33
patternbut if i'm only going to be using a separate branch for release purposes, i shouldn't need to merge branches00:33
patternand i'm still not sure what advantage i'd get from having a separate release branch00:33
patternover and above what i'd get from simply tagging the development branch with a version number00:34
lifelessI think you just need to choose something and run with it00:34
lifelessif it turns out not to work, change your mind00:34
patterngood idea00:35
lifelessthe only thing you should do right now is to make sure that you will be able to change your mind without too much trouble00:35
lifelesse.g. by how you allocate x.y and z.00:35
patternyep.. that makes sense00:37
patternthanks again, lifeless00:37
* ig1 food02:13
AfCI've been noticing `bzr serve` instances staying in CLOSE_WAIT a long time.02:15
ig1abentley:ping02:57
abentley?02:57
ig1let's try that again - ping abentley02:57
ig1hi02:57
abentleyHi.02:57
ig1re switch ...02:58
ig1looking at cmd_update ...02:58
ig1is it appropriate to refactor most of that into a module ...02:58
ig1that switch uses instead of its own update function?02:58
abentleyI don't know.02:58
ig1in particular, jameinel had some feedback re pending merges ...02:59
ig1that seem to be better thought though in cmd_update02:59
abentleyI've advocated that there should be no "switch" command.  Update should just take a branch, like it already takes a revision.02:59
ig1also, I'm thinking about future -r support for update02:59
ig1interesting03:00
abentleyOkay, maybe it doesn't already.03:00
abentleyBut people think it's counterintuitive.03:00
ig1conceptually, I've always thought of switch as bind+update03:01
abentleyOTOH, update has some pretty weird behavior, if the working tree is out of date with the branch, and the branch is out-of-date with the master branch.03:01
ig1but there is next to no code from bind or update used in switch currently03:02
abentleySwitch isn't bind at all.03:02
abentleySo that part makes sense.03:02
abentleyThe implementation of bzrtools.switch.switch and bzrtools.switch._update is reasonably short, but if we can get more code reuse, that's usually a good thing.03:04
ig1ok, so bind sets the master branch attribute ...03:04
ig1which switch ties a tree to a branch, yes?03:05
ig1s/which/while/03:05
abentleyRight.03:06
ig1any thoughts on pending merge handling?03:06
abentleyI don't remember John's comments.03:06
ig1is it ok for switch to fail and tell the user to revert pending merges before switching?03:07
ig1or commit of course03:07
ig1i.e. tell them to commit or revert03:08
abentleyYes, I think that would be fine.03:08
ig1thanks03:09
pooliehello ig1, abentley03:27
ig1hi poolie03:27
ubotuNew bug: #72227 in bzr "bzr fails when run within certain Python code trees" [Medium,In progress] https://launchpad.net/bugs/7222704:06
=== keir_ is now known as keir
=== Verterok is now known as Verterok_
lifelessI's back07:21
beunomornin' lifeless07:21
=== m_stone is now known as m_stone|home
* ig1 food08:08
vilapattern: regarding perl modules version numbers, notice that 'version' itself has always used X.Y revions numbers (as most of packages on CPAN do)08:16
vilathen, if you  use MakeMaker, there is a dist target in the makefile, use it to define your version when you produce a new release (Module::Build certainly provides the same target)08:17
vilafinally if you look at various packages you will see that the revisions are not always consecutive so using X.<bzr revno> will be perfectly acceptable and understood by users08:22
patternvila, when you say "'version' itself", what are you referring to?08:24
patternthe version module?08:25
vilathe 'version' package which is now part of perl itself08:25
patternah08:25
vilahttp://search.cpan.org/~jpeacock/version-0.74/08:25
patternyes, it uses an X.Y version string08:25
patternsome modules use X.Y and others X.Y.Z08:26
vilaso X.Y.Z is *not* mandatory08:26
patternthat's true08:26
patternbut the point is that it's not just a single integer version string08:26
patternit's either X.Y or X.Y.Z08:26
patternbut bazaar only provides a single integer08:26
patternso i have to create at least X.Y myself08:27
vilaas long as you provides monotonically increasing numbers you'll be fine08:27
=== me_too is now known as too_short
vilayou can use 0.<bzr revno>08:27
patternwell, nothing will break if i do that08:27
=== too_short is now known as me_too
vilathat's the point08:27
patternbut it might be a bit confusing for the users when i jump from 0.23 to 0.19808:27
vilakiss principle08:27
vilahmmm, you'll have to check that but if you add you own code to create the release (dist target in makefiles) you can address that08:29
patternit's not just a matter of having the dist target being numbered correctly08:29
vilaand most package writers handle their release numbers manually anyway08:29
patternan internal version number for the perl module itself is also necessary08:30
patternso that module users can check and request particular versions of my module08:30
patternso that version number needs to go in to the perl module itself08:30
patterni'm probably going to do that using a templating system (probably Template Toolkit)08:31
patternso i'll just have "$VERSION = [% VERSION %]" in the perl module, and in Makefile.PL i'll run some command to fetch the version number from bzr and substitute it in to the perl module08:33
vilafine08:34
patternso the development will be on mymodule.pm.in and Makefile.PL will turn that in to mymodule.pm08:34
patternand only mymodule.pm.in will be versioned08:35
vilayou may also look at creating your own template for bzr version-info08:36
patterni don't understand08:37
patternwhat kind of template?08:37
pittihi08:38
pittifirst, congrats for knitpacks! I just did some experiments, and it cut down the initial push time from 80 seconds to 4608:38
pittibut I have troubles with pushing some additional revisions08:39
pittibzr: ERROR: Could not understand response from smart server: ('error', "<bound method KnitPackRepository.leave_lock_in_place of KnitPackRepository('chroot--1218286772:///tmp/pack800/.bzr/repository/')>")08:39
pitti(both sides are running bzr 0.92.0 final)08:39
pittiis this known?08:39
vilapattern: look at bzrlib/cmd_version_info.py08:39
lifelesspitti: check the packs tag on malone :_08:39
pittiah, good hint; seems to be https://bugs.edge.launchpad.net/bzr/+bug/15654608:40
ubotuLaunchpad bug 156546 in bzr "unable to push to packs-based smart server" [High,Triaged]08:40
patternvila, ah, you mean some kind of script that will interface with bazaar to get the version information i want to use in my perl module?08:41
vilayes08:41
patternunfortunately, i don't know python08:41
patterndoes bazaar have a perl interface?08:41
vilanot yet :)08:41
patterni mean to learn python someday08:41
vilatry bzr version-info --format=python08:41
vilapattern: python has good surprises for you coming from perl :)08:42
lifelessor write a perl formatter :)08:42
patternyep :)08:43
bignoseHow do I undo a 'bzr pull'?10:13
bignoseI mistakenly pulled from foo to bar, and now I want bar to go back to its revision level before the pull10:13
bignosesimilar to 'bzr uncommit'10:13
fullermdIf you know what revision used to be the head, you can just pull it.10:14
bignoseand that will cause the current branch to lose the revisions after that point?10:15
bignose'bzr pull -r82 .'  =>  "No revisions to pull."10:16
fullermdYou need --overwrite since it's not going strictly forward.10:16
bignose(current branch is at r87, I want to lose everything after r82 because they came in from the mistaken pull)10:16
fullermdThe revs will still be in its repository, of course.  But the branch won't refer to them, so...10:17
bignosethat's fine, I'm using a central repository.10:17
bignoseokay, that seems to have done the trick10:18
bignosefullermd: thanks.10:18
bignosenext question:10:18
bignosethe reason I wanted to undo it was because I wanted to pull only *some* changes from foo into bar10:19
bignoseeventually, all of foo will be pulled in, but not yet10:19
bignoseso how can I pull specific revisions?10:19
fullermdWell, you can pull up to a given rev rather than the head with -r...10:20
bignoseright, but that's exactly the situation I wanted to undo10:20
bignoseI want to specify "pull revision 87 and no other revision from foo into bar"10:21
fullermdYou can approximate it by gettings its changes with a cherry-picked merge.  But there's no way to get rev 87 itself without getting its antecedents.10:22
fullermdThat may or may not lead to extra fun down the line when you merge the rest of the revs.10:23
bignosemmm. a cherrypicked merge will result in forever-divergent history, won't it? I want to be able to later align the histories fully with a pull.10:23
fullermdWell, if you don't make changes other than the equivalent of r87, you can later just do a pull --overwrite and discard that new rev you made.10:24
bignoseI hear the spectral voices of my darcs friends laughing and pointing...10:24
fullermd(as long as nothing else is based on it, of course)10:24
fullermdThey're not laughing and pointing.  They will though, as soon as their history finishes resolving itself.  Might want to budget some time in 2015 to deal with the embarassment.10:25
bignoseI don't fully understand that, but I assume it's a comment on the performance speed of darcs merges.10:25
bignosefullermd: by "discard that new rev you made", do you mean the rev created by the cherrypicked merge? Discard it because, with a 'pull --overwrite', the change will effectively be made anyway?10:27
fullermdWell, you're wanting code that does a certain thing.  After you do the cherrypick, that code will be in both r87, and your newly-created cherrypick r83.10:28
fullermdSo if you then want to re-duplicate the other branch, a --overwrite will toss away your cherry-83, but since you'll have that 87 anyway at the point, it doesn't matter.10:28
fullermdAssuming no work is ever based off that cherry-83, that is.10:29
bignosefullermd: thanks, you've at least improved my understanding of what I'm asking :-)10:40
keir_http://blogs.gnome.org/newren/2007/11/17/adoption-of-various-vcses/10:42
lifelessnight all10:54
lifelesskeir_: be good to find out what the date: thing they hate is10:54
keir_yes10:58
keir_lifeless, we need to get some big projects on board!10:59
fullermdPacks for local and more SS for remote are probably 2 of the biggest steps to take there.11:12
=== cprov-away is now known as cprov
=== othermaciej_ is now known as othermaciej
wamHi, is it possible to branch / merge / push / pull to/from not-mounted samba shares?13:17
=== mrevell-lunch is now known as mrevell
mwhudsonwam: you mean push smb:///whatever ?13:17
mwhudsonwam: i'm not aware of anything that would let you do that13:18
wammwhudson: would it be easy to write a plugin for that?13:18
wammwhudson: bzr is python-only, so maybe I could look at this.13:18
wam(as I know python ;))13:18
mwhudsonwam: it's probably possible, yes13:19
mwhudsoni mean, there's a webdav plugin that mostly works and samba can't be that painful :)13:19
wammwhudson: ok, thanks. So I'll see if I have a use for it and maybe code it. A customer of mine works on windows and the working-dir is smb only. So I'd like to install a branch there and have merges as smoothly as possible ;)13:20
=== bac_afk is now known as bac
mwhudsonwam: good luck :)13:22
=== jamesh_ is now known as jamesh
=== bac_afk is now known as bac
=== bac_afk is now known as bac
=== bac is now known as bac_afk
=== bac_afk is now known as bac
=== cprov is now known as cprov-lunch
vilahi all14:19
vilaabentley: is BB down ? Firefox timeouts trying to connect14:19
vilaor is it times out ? ;)14:19
fullermdYou trying to connect via htpps?14:21
vilafullermd: not even :)15:00
=== jam-laptop is now known as jam
ubotuNew bug: #163849 in bzr-eclipse "display revision log on uncommit" [Undecided,New] https://launchpad.net/bugs/16384916:05
jelmersigh16:31
jamjelmer: ??16:31
jelmerwhere are the days when you could hit Ctrl+C to abort the commit if you changed your mind16:31
jamI do that now16:31
jelmernow I have to use uncommit all the time :-)16:31
jamthe commit happens to fast?16:32
jelmeryup, somewhat like that :-)16:32
jamthe price of progress, I guess16:33
jamYou could not use "-m" so that you can cancel without saving from your text editor16:33
jelmeryeah, I may give that a try - thanks16:35
jampersonally, I would just 'bzr uncommit --force"16:36
mwhudsongood reason not to use checkouts, that16:38
mwhudsonless embarrassing16:38
jammwhudson: bzr uncommit removes it from the bound location, too16:38
jamas long as nobody goes spelunking with "bzr heads"16:38
mwhudsonjam: true, but it might send email, etc16:38
jammwhudson: yeah, but my client always sends email16:38
jameven for local stuff :)16:38
jamwell, I have a .../private/* directory16:39
jamfor stuff I don't advertise16:39
ubotuNew bug: #163860 in bzr "feature request: script to generate consistent copy of shared repository ('hot-backup.py in svn terminology)" [Undecided,New] https://launchpad.net/bugs/16386017:01
woeiI'm playing around a bit with bzr and I'm wondering if this error is expected behavior ? : http://pastebin.com/d24d654d517:03
Kinnisonwoei: blergh, even if it were an error to try and do that, you shouldn't get that kind of report17:05
woeiindeed17:05
mwhudsondoes anyone know a way of doing this: http://paste.ubuntu-nl.org/45128/ without requiring a checkout ?17:21
jammwhudson: I don't believe the Merge code works without a limbo directory from a WT17:28
mwhudsonjam: what i want to avoid is the lengthy tree-building process for launchpad17:29
jammwhudson: have you tried it with an empty WT?17:30
jamah, but that wouldn't work either17:30
jamwait a second17:30
jamwhy are you doing a 'show_diff_trees' of revtree versus basis_tree17:31
mwhudsonjam: won't that take all the history of merge_source_branch?17:31
jamdon't you want the diff of the on-disk tree ?17:31
jam(after the merge)17:31
jamto its basis?17:31
mwhudsonjam: that's what i'm getting, it seems17:32
mwhudsonbasis may not be a good name here17:32
jamah17:32
jamok17:32
jamyeah, basis_tree is usually: tree.basis_tree()17:32
jamwhich is the last committed version17:32
mwhudsonoh17:32
jamI would just call it "tree"17:33
mwhudsonso revtree = basis_tree.basis_tree() is shorter and equivalent?17:33
mwhudsonjam: let me rename somethings and repaste :)17:33
jammwhudson: and for DirState working trees is faster17:33
mwhudsonjam: fine, but the slow part is create_checkout17:34
jambecause it has already written things down for faster comparisons17:34
jammwhudson: sure.17:34
jamI understand your difficulty17:34
jamI'm pretty sure the merge code doesn't have a way to work "lazily" and only extract texts for files that it is going to think of as modified17:35
jamIt might be possible to patch it in17:35
jamas a "LazyWorkingTree" or something like that17:35
mwhudsonjam: http://paste.ubuntu-nl.org/45130/17:35
mwhudsonjam: right, i wondered about that17:35
mwhudsonjam: TreeTransform seems to hit the disk reasonably directly though, which worried me for this approach17:36
jamyeah, but I think you could hide the real working files17:37
jamLet me look at the code for a bit17:37
mwhudsonjam: thanks17:38
jammwhudson: it depends on how much you want to spend writing up a LazyWorkingTree, but it seems possible17:40
jamyou would still need to hit disk17:40
jambut the idea is you would  create an object that doesn't extract text contents until it needs to17:41
jamand it could track the list of files which were modified17:41
mwhudsoni don't care about hitting the disk17:41
jammwhudson: I could certainly help walk you through it if you want.17:41
mwhudsoni care about doing O(changes) rather than O(changes+tree) work17:41
jamsure17:42
mwhudsonjam: how much work would you expect this to be?17:42
jamI'm saying more: how much time do you want to spend coding this up :)17:42
jamI'm actually thinking it wouldn't be that much effort17:42
jamYou only need to override a few key places17:43
mwhudsoni dunno, i don't want to spend a week on it17:43
mwhudsonbut a day is probably just about reasonable17:43
jamso some quick pointers...17:43
jamyou wouldn't use "target_branch.create_checkout()" obviously17:43
jaminstead you would init a new WT type17:43
jamon that branch17:43
jamand then you would override WT.get_lines() or it looks like you might need to also do WT.get_file()17:44
jam(I don't know for sure why TT uses get_file().readlines() rather than get_lines()17:44
jammight just be hysterical raisons)17:44
mwhudsoni should subclass WorkingTree ?17:44
jammwhudson: I think subclassing WT4 might be a good way to go17:45
jambzrlib.workingtree_4.WorkingTree417:45
jamas it has better "diff" code17:45
jamAll you are really adding is a list of things that have been modified17:45
jamso your 'get_lines()' implementation knows to read from disk17:45
jamrather than going to the repository.17:45
jam(and get_file_sha1() also needs to be overridden)17:46
jamand probably get_file_size()17:46
jammwhudson: If you want, I could probably try hacking something together17:46
mwhudsonjam: that would be cool17:48
jamI'll give it an hour or so and see where I get17:48
mwhudsonjam: awesome17:48
jamactually, it almost fits in with an idea Robert had17:49
jamto make commit/diff/etc extra fast17:49
jamby requiring the user to explicitly mark things changed17:49
jamIt just goes an extra step and doesn't bother creating the other files17:49
=== cprov-lunch is now known as cprov-away
lifelessmwhudson: so you want a tree where the user can't introduce changes, only merges can.18:26
mwhudsonlifeless: what i want is described by the docstring of the function18:26
mwhudsonlifeless: but yes, something like that sounds like a reasonable approach18:27
lifelessmwhudson: which function?18:27
mwhudsonlifeless: http://paste.ubuntu-nl.org/45130/18:27
lifelessjam: I think a working tree is the wrong approach for mwhudson's request; I'd look at subclassing merger myself18:32
lifelessjam: then passing in two revtrees18:32
lifelessso the output instead of being back into a working tree would go forward as iterable output18:32
jamlifeless: you would have to keep the contents of all modified files in memory for the full length of the merge18:32
lifelessjam: nope18:33
jami think I see where you are going with it18:33
jambut I don't think Merger is really cleanly capable of it18:34
lifelessThis is a design I prepared earlier FWIW :)18:34
mwhudsonwhich reminds me18:34
mwhudsonwhat's the relationship between Merge3Merger and Merger ?18:34
lifelessmerge logic18:34
jamwhat to do when you have files that need to be combined (merged)18:34
mwhudsoni am perpetually surprised by the fact that there is no subclass relationship here18:35
lifelessmwhudson: me too looking at it18:35
lifelessstill; patches kthxcontribute18:35
jamI believe Merger is the 'metaprocess'18:36
jamand it takes a merge_type as a helper class18:36
jamwhich at the least are poorly named18:36
mwhudsonlifeless: i don't feel competent in this code18:36
lifelessok, time for some pb luv18:39
jmlhi everybody.18:43
lifelessLarstiQ: ping18:44
lifelesshi jml18:44
jmlI think I am going to spend some time making Trial able to run the bzr tests.18:45
lifelessaren't you on leave ?18:50
jmllifeless: yes.18:50
jmlok, so if you can trick trial into running on the return value of bzrlib.tests.test_suite(), rather than doing discovery then it works quite well.19:07
jmlmodulo our TestResult objects not supporting TestSkipped and TestNotApplicable.19:07
bagueroshello. is there a way to push just individual files into other branches?19:08
LeoNerdNot really.. "individual files" don't really exist in discrete form.19:09
LeoNerdA branch isn't a collection of files. It's a collection of revisions.19:09
LeoNerdRevisions contain changes to (additions/modifications/renames/deletes) files.19:09
bagueroswell19:09
baguerosi have a bunch of different branches and in each one, i want to take some files out of those19:10
LeoNerd(As compared to the RCS/CVS/SVN view of the world, that says files exist, and revsisions exist within files)19:10
baguerosand put them into a branch called stable19:10
baguerosbecause a bunch of different developers have all been working on different things19:10
LeoNerdDo you want to preserve all the history so far, or just "carry on" from here?19:10
baguerosand each of them have *some* files which i want19:10
lifeless'bzr merge branch/FILE' will merge just hat file.19:11
bagueroslifeless: ah! interesting19:11
lifelesswe don't currently remember later that we did that. But it will work. Also works for directories.19:11
bagueroswell i mean, how is this "done right" ?19:11
baguerosi got a bunch of different people who are working on different branches..19:12
baguerosthe guy doing Feature A has old files for Feature B19:12
baguerosthe guy doing Feature B has new files for Feature B and old files for Feature A19:12
baguerosso in stable, i want the new files for Feature B from the Feature B guy19:12
baguerosand the files for Feature A from the Feature A guy19:13
datobagueros: oh, but you want to merge the full FeatureA and FeatureB branches, one after another, or just specific changes from them?19:13
baguerosI don't want Feature B guy's old Feature A files to overwrite Feature A guy's new Feature A files19:13
baguerosyou know what i mean?19:13
datoyes19:13
lifelessbagueros: oh, just bzr merge19:14
datoif you merge FeatureA, and then merge FeatureB, all changes will get merged.19:14
lifelesswe clearly need some documentation improvements here19:14
baguerosindeed19:14
baguerosand merge will figure out who has the latest version for each file19:15
baguerosand use that one?19:15
datoyep. even if both developers touched the same file, but different parts of it, will do an intelligent merge and combine both changes.19:16
lifelessbagueros: it will integrate the changes made.19:16
jmland trial misses exactly 777 tests. hmm.19:17
baguerosok19:17
datojml, what's trial?19:18
jmldato: a unit testing framework that twisted uses.19:19
datoah, okay.19:19
jmlwhich is the number of tests that I have in my various plugins :)19:23
jamjml: do you know about "bzr selftest --list-only" ?19:36
jamIt might make it easier to figure out what is and isn't being found19:36
jamYou could use "bzr selftest --list-only | sort" and compare the output19:36
jmljam: I didn't know about that -- thanks.19:37
RainCThi19:41
RainCTwasn't there a «bzr cdiff» option some time ago, or did I dream that? :P19:41
jamRainCT: from bzrtools19:41
RainCTah ok, thanks19:41
lifelessjam: ping20:02
lifelessjam: I'd like to sanity check a refactoring goal with you.20:02
lifelessI want to make pb a bit simpler. heres how I think it might look20:02
lifelessfirstly, I want to decouple 'progress' and 'display'. Nesting is about progress not display. So I'm thinking of adding a Task concept20:05
lifelessthis will have message, current, total.20:05
lifelessnow, I don't think we care about estimating time for all tasks. Only the overall one. So there will be a subclass TimedTask that adds in the eta calculations etc.20:06
lifelessnow, our pb abstraction for users really needs __init__, update, clear, message and finished20:08
lifelessoh, and tick20:09
lifelesswhich is 'doing stuff'20:10
lifelesshaving a trivial display-a-task as *ProgressBar is the goal, but throttling makes this a little hard20:10
lifelessif we show the message from e.g. the bottom task as well as the top, that may thrash20:11
lifelessbut we do want to always show a top level message change.20:11
lifelessand to complicate things, some commands will have a top level task that goes e.g. 0->2, where the first level is really the one that we want to change reasonably often.20:12
lifelessthe reason throttling doesn't hide messages, IIRC, is that we have a message that indicates the start of a slow operation, and it then sits for ages.20:13
lifelessso I'm proposing to change it to ignore message, and add in a 'force' parameter to update if needed20:15
lifelessso anyhow the big picture rapidly:20:15
lifelessTask tracks tasks20:15
lifelessTaskStack is a stack of tasks20:15
lifelessTimedTask is a timed task20:16
lifelessTaskStack is a Task itself.20:16
lifeless_BaseProgressBar is for display logic only, it displays a Task20:17
lifelessbars that want to dispaly many bars concurrently can expect/require a stack and work with the stack20:17
lifelessnested_progress_bar stays, it returns a Task though20:18
lifelessTask has update/clear/message/tick/finished, because task changes trigger display changes20:18
lifelessfini20:18
lifelesshmm20:30
lifelessactually I think there is a differnet concept in there20:30
lifelesswhich is progress20:31
lifelessso a Progress object -> update/clear/tick/finished. Calling these delegates as appropriate to either the Bar for UI, or the Task for tracking.20:31
Vantagehi, is there a way in bzr to take two repos and merge them into one (including history)?20:33
VantageI know there's split to separate a repo, but what about bring them together?20:33
lifelesse.g. update is 'if self.task.update(message, current, total): self.bar.tick()'20:33
lifelessVantage: repositories are just a history database20:33
lifelessVantage: perhaps you mean 'branch' ?20:33
Vantagelifeless: right, and I'd like to merge the history databases :)20:34
lifelessVantage: just branch into the repository then, it will bring in any needed history.20:34
lifelessVantage: 'split' does /not/ affect repositories. I really think you are confused about something.20:34
Vantagelifeless: so if I had a repo called frontend and a repo called backend (because I thought it'd be better to keep them separate) and later I decide it's better to have it as one project20:34
Vantagelifeless: I'm always confused about something :)20:35
lifelessVantage: repositories don't have names. I *really* think you mean 'branch'.20:35
lifelessVantage: if you can run 'log' on it it is a branch.20:35
Vantagelifeless: sure, at their essence they are branches, but of different code bases20:36
lifelessthen just merge them.20:36
Vantagelifeless: even if they never shared any history before? (or even files)20:36
lifelessyou'll need to tell bzr you really want to do this - 'bzr merge -r 0..-1 otherbranch'20:36
Vantagelifeless: so if I have two code trees in bzr that I initialized separately into two directrories (a/ and b/) I could just cd a/ bzr merge ../b ?20:38
lifelessVantage: of course. try it - you'll need the -r parameters I gave you20:39
Vantagelifeless: very cool.  btw what do those paramters actually mean?20:40
lifelessVantage: for future reference, 'Repository' is just the database. Its like asking 'how do you merge two mysql databases' - its a no-op, theres nothing to do, they are just data.20:40
lifelessif you want to talk about your projects or your code, its *always* 'Branch'.20:40
lifelessVantage: the -r 0..-1 says 'merge from the beginning of time (0) to the most recent commit (-1)'20:41
Vantagelifeless: cool.  I knew that they were branches, but I thought that they had separate repositories was an issue.  i guess not :)20:41
thumperlifeless: do you know about bug 152746?20:41
ubotuLaunchpad bug 152746 in bzr "bzr commit to bzr+ssh hangs on 'No handlers could be found for logger "bzr"'" [Undecided,Confirmed] https://launchpad.net/bugs/15274620:41
lifelessVantage: nearly all branches have separate repositories, even when the code in them is the same.20:41
thumperlifeless: I'm trying to help someone in #launchpad, but I don't really know what is going on20:42
lifelessVantage: e.g. bazaar-vcs.org's bzr.dev has a repository. I have a separate repository here that has a copy of bzr.dev.20:42
Vantagelifeless: good point.  Does it make a difference if you're using a shared repo?20:42
lifelessVantage: dealing with separate repositories is a back-end data transfer problem, not a user-task problem.20:42
lifelessVantage: nope.20:42
lifelessthumper: I don't, no.20:42
thumperlifeless: ok20:42
lifelessI can peek, one sec20:42
Vantagelifeless: nice.  So if I have two projects that happen to share *some* files, can I merge changes in files between them?20:43
lifelessVantage: yes. It will try to merge the whole projects though, as normal.20:44
lifelessVantage: you can merge branch/FILE-OR-DIR too though, once you've done the initial sync-up merge.20:44
Vantagelifeless: anyway to only merge changes to a particular file?20:44
lifelessthumper: it looks like there is a patch for lp20:44
lifelessthumper: they might try break-lock I guess20:44
lifelessthumper: or sftp20:45
thumperlifeless: it has stalled in review20:45
thumperlifeless: break-lock didn't help (break-lock done over sftp)20:45
lifelessthumper: try pushing over sftp then20:45
thumperlifeless: pushing over SFTP worked for him20:45
lifelessok20:45
bagueroshey so20:47
baguerosi had one of these developers do the merge20:47
baguerosand it found 12 conflicts20:47
bagueroswhat does he do with these conflicts?20:48
baguerosis there something automatic he can do?20:48
lifelessthat means that two people made different changes to the same region of those files. He needs to integrate the two pieces of work.20:49
lifelessand then commit the result20:49
bagueroshmm20:50
bagueroswhat about this bzr resolve ?20:50
baguerosdoes he have to run that ?20:50
lifelessafter integrating the work, yes. I thought this was all in the tutorials.20:50
bagueroswell, i'm just making sure20:51
baguerosbecause http://doc.bazaar-vcs.org/bzr-0.8/tutorial.html this tells me that there are automatic utilities for doing that20:51
bagueroskdiff or something20:51
lifelesssure; I want to make sure this is discoverable without having to come and ask ;)20:51
lifelesswow, are you using 0.8 ?20:51
lifelesswhat bzr version are you using (bzr --version)20:52
baguerosno, i'[m using 0.1620:53
lifelesshttp://doc.bazaar-vcs.org/bzr.0.16/tutorial.htm is more applicable then20:53
lifelessI encourage you to upgrade to 0.92 though20:53
baguerosso, when he did this merge, it had 12 conflicts21:00
baguerosand when i go look in stable, i dont see some of the files he has in his branch that i hoped would be merged into stabl21:00
bagueros*stable21:01
baguerosis it because the conflicts are holding up the merge?21:01
Odd_Blokebagueros: Merges have to be committed.21:03
baguerosoh. but he is just working out of his branch21:04
bagueroswhen he does the commit, it will also update stable?21:04
Odd_BlokeOnly if committing to his branch would normally update stable.21:10
lifelessbagueros: you should go to stable, then merge his branch21:12
lifelessbagueros: or you can merge from him after he commits.21:13
ubotuNew bug: #163908 in bzr "upgrade should tell you where to upgrade" [Undecided,New] https://launchpad.net/bugs/16390821:16
bagueroslifeless: i see21:29
james_wvila: It seems to me that the .debs of bzr should depend on ca-certificates, otherwise there is no CA to allow https access to launchpad. Does that seem sane to you?21:30
james_wvila: or, I can't access https://code.launchpad.net/ as it complains about a CA cert error, and I don't have that package installed.21:30
pooliejames_w, ah, does that fix it?21:33
poolieforcing use of urllib seems to also fix it, though that's a bit clumsy21:34
james_whi poolie21:35
james_wyou are seeing it to?21:35
pooliei did see that the other day21:35
pooliewell, a week ago21:35
james_wmaybe its a widerspread problem then21:36
james_wI haven't installed that package yet, just working it around it currently to try and get that code.21:36
james_wpoolie: yeah, that fixes it.21:38
pooliewould you file a high-priority bug on the package, if there isn't one?21:44
james_wpoolie: filing it now.21:46
lifelesspoolie: would like a reply - doesn't need to be deeply considered, surface reaction is fine - to my just sent pb redesign mail21:57
lifelessalso, quick call ?21:58
keir_I just had a very frustrating experience because bzr lacks universal newline support. lets please get that fixed :(22:04
vilajames_w: .debs for ubuntu or debian ? Also, depends may be a bit strong, can't you use recommands ?22:06
james_wvila, yeah, that would be better of course, thanks.22:07
vilausing urllib is a workaround for now, implementing proper  certificate verification is on my TODO list though, so it will ultimately fails too22:07
vilajames_w: in what kind of config do you see that ?22:10
james_wvila: with no CA certificates in /etc/ssl/certs I think.22:11
james_wor at least not whatever issues lp's.22:11
vila:) I meant, all my ubuntu had ca-certificates installed why yours doesn't ?22:12
james_wvila: I don't know, let me see.22:12
james_wany of mutt, fetchmail, openssl, sendmail-base, w3m libcurl3-gnutls will install it, but it doesn't appear to be part of gutsy default install.22:14
vilaHa ! I did an update... that explains it.22:15
james_wyeah, must have been dropped.22:15
siretartjames_w: I think a recommends on the ca-package is the way to go22:15
james_wsiretart: yeah, me too.22:19
lifelesspoolie: 1.0 branch up22:25
Odd_BlokeWhat's the best way to get a list of files that were touched by a given revision?22:39
lifelessrepository.find_fileids_altered_by_revision_ids(revid)22:43
lifelessthis gives file ids which have lines ascribed to them by annotation,22:43
lifelessthe difference between that and e.g. log -v is that log -v will show things that were not altered in the revision but merged into a branch in a revision.22:43
lifelessi386: ping - give me a ring ?22:43
i386lifeless: yep22:44
i386could you message me your no?22:44
i386lifeless: cool22:46
i386Ill call in a sec22:46
lifelessthanks22:48
igcmorning all22:58
lifelesshi igc22:58
igchi lifeless22:58
lifelessigc: leslie hawthorn says 'come to her soc talk'22:58
igcI'm planning to22:58
lifeless:)22:59
lifelessman, enough of the russian spam22:59
abentleyvila: I'm not aware of it going down today.23:05
keir_did you guys see the post from the intel engineer on the bzr list?23:16
jamwhich one would that be?23:17
keir_there are two posts from wichmann, who is from intel23:17
keir_he's having big performance problems23:17
keir_and the 2nd msg is about a corrupted repository23:18
keir_i feel like someone should respond to the performance complaints. it looks bad when messages like this go unanswered on the ml...23:26
lifelessthank you for pointing it out23:27
abentleymwhudson: Are you sure that diffing against the least common ancestor isn't good enough for your purposes?  That's what I use for the preview patches of merge directives, for example.23:29
lifelessabentley: yes; showing the result of the merge shows up conflicts23:34
lifelessabentley: and for assessing whether something is ready to merge, and in good shape, this is very useful.23:34
abentleyAh,  I assumed he didn't care about conflicts because he was ignoring the conflict count.23:36
abentleyYeah, it seems like you would want to subclass either Merger or TreeTransform.23:36
abentleyThe idea of true "undo" has also pushed me at the idea of generating Trees from Transforms without hitting disk.23:39
abentleyBecause Transforms are our most detailed representation of changes.23:43
=== jamesh__ is now known as jamesh
PengWow, you have an official IANA-registered port. Cool.23:59

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