/srv/irclogs.ubuntu.com/2008/12/13/#bzr.txt

=== sabdfl1 is now known as sabdfl
=== sabdfl1 is now known as sabdfl
enigmaI think I'm hitting a bug in bzr-svn 0.5 RC100:59
=== Mario__ is now known as pygi
enigmabzr: ERROR: exceptions.AttributeError: 'NoneType' object has no attribute 'uuid'01:00
jelmerenigma, I think there's an open report about that one01:00
enigmaOK. Are those reported in the same place as bzr bug?01:00
enigmaOr is there a separate bug tracker for bzr-svn?01:00
jelmerlaunchpad.net/bzr-svn01:00
enigmaOK. Let me look it up.01:01
enigmajelmer: It looks like those errors come up when the bzr properties are missing. I created the svn branch using "svn copy", is that why it doesn't have bzr properties?01:07
jelmerbased on the tracebacks in that bug report at least, it can't be related to bzr propeties01:08
jelmerit's a problem in the way bzr-svn follows the svn log to find out the branch history01:09
jelmerunfortunately I can't reproduce it here01:09
enigmaWhich bug report are you looking at?01:09
enigmaI found: https://bugs.launchpad.net/bzr-svn/+bug/17738301:09
ubottuLaunchpad bug 177383 in bzr-svn "traceback when importing svn tree: 'NoneType' object has no attribute 'splitlines' (dup-of: 174690)" [Undecided,New]01:09
ubottuLaunchpad bug 174690 in bzr-svn ""pull" should handle removal of bzr:ancestry property" [Low,Fix released]01:09
jelmerenigma, that's not the same bug01:10
enigmaAnd: https://bugs.launchpad.net/bzr-svn/+bug/20672801:10
ubottuLaunchpad bug 206728 in bzr-svn ""'NoneType' object has no attribute 'splitlines'" crash in checkout" [Undecided,Fix released]01:10
jelmerhttps://bugs.edge.launchpad.net/bzr-svn/+bug/30628801:13
ubottuLaunchpad bug 306288 in bzr-svn "pulling a previously branched SVN repo with no local commits causes a "branches have diverged" error" [Undecided,New]01:13
enigmaOh...this is what I did...I have a few hundred revisions I pulled down using bzr-svn 0.4.15. I then pushed those revisions into a brand new repository.01:15
enigmaI then upgraded to bzr-svn 0.5 RC1 and pulled those revisions from the brand new svn repo.01:15
enigma(using bzr to pull it)01:15
enigmaI do a commit on the branch.01:16
enigmaI then try to "push" back to that new svn repo and that's when I get the error.01:16
enigma(And yes, I cleared the svn-cache and subversion.conf after moving 0.5 RC1)01:16
enigmaIs the bzr:* properties that are created with bzr-svn 0.4 incompatible with bzr-svn 0.5?01:18
jelmerno, they should work ok01:19
jelmerthough there could be a bug there01:19
jelmerof course01:19
pygihi hi folks01:20
enigmajelmer: OK...now I'm reverting to 0.4.16 and I'll try the same commit with a push back to svn.01:21
=== davi_ is now known as davi
enigma(After clearing svn-cache and all that)01:21
enigmaHm...now if I revert, I get this: bzr: ERROR: exceptions.KeyError01:23
enigmaSorry, I just re-read that and I don't think it's clear.01:23
enigmaWhat I mean is...now if I try the commit back to the same svn repo using bzr-svn 0.4.16 instead of 0.5 RC1 I get that "KeyError"01:24
jelmerenigma, can you pastebin the full backtrace?01:24
jelmerenigma, were some revisions already pushed using 0.5rc1?01:24
enigmaNot that I can recall....01:25
enigmaI'm pretty sure it was all push with 0.4.16...01:25
enigmaYou want me to recreate the SVN repo from scratch with 0.4.16 to make sure?01:26
enigma(Where's the pastebin?)01:26
jelmerpastebin.ubuntu.com01:26
enigmahttp://pastebin.ubuntu.com/84616/01:29
jelmerI think that's actually a bug that's fixed in 0.5..01:33
enigmaOh, OK. :-D01:33
enigmaI'm recreating the svn repo using 0.4.16.01:34
enigmaThen I'm going to switch to 0.5 RC1 and see if I can get that "uuid" error again.01:34
enigmaI'm getting another exception with 0.4.16, might this be a bug?  bzr: ERROR: bzrlib.errors.NoSuchRevision: <bzrlib.plugins.svn.revids.RevisionIdM01:41
enigmaapCache object at 0x88c328c> has no revision enigma@neumannc-desktop-2008120202101:41
enigma216-yyxr9acya83v2rjt01:41
enigmaI got the tree I'm trying to push from another svn repo.01:42
enigmaAnd now I'm doing this: bzr push -v --overwrite svn+http://localhost/svn/test/trunk/gui01:43
enigmaOh...this is strange...01:48
enigmaIf I push just the first rev it works fine: bzr push -r 1 -v --overwrite svn+http://localhost/svn/test/trunk/gui01:49
enigmaBut pushing 386 revs doesn't work.01:49
enigmaAfter pushing the first rev with "overwrite", I can do a "normal" push, but I get segfaults.01:50
enigma bzr push -v --overwrite svn+http://localhost/svn/test/trunk/gui01:50
enigmaThe svn+ syntax is deprecated, use http://localhost/svn/test/trunk/gui instead.01:50
enigma\ [===                                              ] pushing revisions  25/385Segmentation fault01:50
enigmajelmer: Even though I got a segfault, I can push some more...01:51
enigmajelmer: But then I get another segfault after 44 revs...01:51
enigmaAfter restarting the push about 5 times, I get all revision into svn.01:52
jelmerenigma, but that's using 0.4 ?01:52
enigmaRight. this is with 0.4. Want me to try with 0.5?01:52
enigmaI'll go through the same steps with the same repo.01:53
enigmaYeah, I get the same behavior with 0.5 RC101:54
jelmersame being that error about uuid ?01:54
enigmaSorry...haven't gotten to the uuid error.01:55
enigmaI'm getting a NoSuchRevision error when I'm trying to recreate my svn repo.01:55
enigmaQuick recap: zapped the svn repo which I was using that was giving me a "uuid" error.01:56
enigmaStarted recreating the repo from scratch.01:56
enigmaThat brought up this other bug which I encountered before but had forgotten about.01:56
enigmaAnd it appears this bug is in 0.4 and 0.501:56
enigmaThis is for the NoSuchRevision error: http://pastebin.ubuntu.com/84623/01:58
enigmaWork around is...01:59
enigmado this: bzr push -r 1 -v --overwrite svn+http://localhost/svn/test/trunk/gui01:59
enigmaBut the work around only seems to work for 0.4.1602:00
jelmerany chance you can file a bug about this?02:01
enigmaSure.02:01
=== Mario__ is now known as pygi
=== Mario__ is now known as pygi
enigmaOK, here's the new bug report for the "NoSuchRevision" error (which exists for both 0.4 and 0.5): https://bugs.launchpad.net/bzr-svn/+bug/30761102:13
ubottuLaunchpad bug 307611 in bzr-svn "Pushing lots of revisions from one svn repo to another results in bzrlib.errors.NoSuchRevision" [Undecided,New]02:13
jelmerenigma, the repository is private, I presume ?02:14
enigmaUnfortunately, yeah.02:14
enigmaI wish I could share. ;-)02:14
=== Mario__ is now known as pygi
enigmajelmer: Is there a bzr-svn equivalent of "bzr check"?02:25
jelmerwell, you can run "bzr check" on a svn branch but it won't do much02:25
enigmaIs there something that can "check" the bzr:* properties on an svn repo?02:25
enigmaThat sort of thing?02:26
jelmernope02:26
enigmaOK.02:26
jelmerthere's probably something going wrong recording the contents of enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt02:26
jelmeris it a merge revision or something? What sort of changes does it contain?02:26
enigmaHow do I see?02:27
enigmaI tried:  bzr log -r enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt02:29
enigmathat doesn't seem to work02:29
jelmerbzr log -rrevid:enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt02:31
jelmershould work02:31
enigmaOh, OK...trying...02:32
enigmaNo...it wasn't a merge...02:32
enigmaJust a plain commit...02:33
enigmaIs there a way to rebuild the map?02:34
jelmerenigma, what sort of changes does it contain?02:34
jelmerenigma, which map?02:34
enigmaThe bzrlib.plugins.svn.revids.RevisionIdMapCache02:34
enigmaThat map.02:34
jelmerit's part of the cache02:34
jelmerso after you remove the cache, the map will be empty (and it gets filled lazily)02:35
enigmaOh...I see what might be going on....02:35
enigmaI did this: bzr branch svn+http;//remote/svn/trunk/gui gui-trunk02:36
enigmathen I did this: bzr branch gui-trunk gui02:36
enigmaAfter which I cleared my cache.02:36
enigmaAnd then I tried to push the versions into: http://localhost/svn/trunk/gui02:37
enigmaWhich is a totally different server.02:37
jelmernot sure I follow..02:37
enigmaAnd if I do a bzr info on "gui", it only knows about "gui-trunk" and not the original svn server.02:38
enigmaSo it will never tried to rebuild the map.02:38
enigmaWhich I purged from the cache.02:38
enigmaIn short, I did a "pull" from server A and then a push to server B.02:39
jelmerthat should work just fine02:39
enigmaHowever, after doing the "pull", I remove the svn-cache (due to experiementing with other things)02:39
enigmaThe "push" to server B isn't rebuilding the RevisionIdMapCache for server A.02:40
enigmaJust for server B.02:40
jelmerthere's no reason why it should02:40
jelmerwe don't need the cache for A in that situation anyway02:40
enigmaOh, OK.02:40
enigmaSo why would I get an error about a particular revision not being in the RevisionIdMapCache?02:41
enigmaIf the cache isn't used?02:41
jelmerto bzr-svn, those revisions are just like ordinary bzr revisions02:41
jelmeror should be, at least02:41
enigmaWhy would that revision id be expected to be in the RevisionIdMapCache at all then since I haven't pushed it to server B and the RevisionIdMapCache for server A shouldn't be used?02:42
jelmerit's thinking one of the children of that revision has to be pushed and that revision itself is already present02:43
jelmerso when it crashes, it hasn't pushed that particular revision yet?02:43
jelmerwhat is the revision id of the children of that revision?02:43
enigmaRight. That the latest revision in the repo.02:44
enigmaThere are not children of that revision...it's just a straight up commit.02:44
enigmaCorrection...it's the -2 revision, not the -1 revision.02:45
enigmaSecond most recent rev.02:45
jelmerwhat's the revision id of the last revision?02:46
enigmaIs there a nice way to get a revid from a revno?02:46
jelmerbzr log --show-ids -r<revno>02:46
enigmaCool, thanks. It's not in the help for log.02:46
enigmaOh wait...yes it is...I missed it...sorry.02:46
enigmarevno: 38502:47
enigmarevision-id: enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt02:47
enigmaparent: enigma@neumannc-desktop-20081202014850-fgbyjkv8rqfbdm2302:47
enigmaWhat's the "parent"?02:47
enigmaIn this case, the "parent" is the previous revision.02:48
jelmerthe parent is the revision the revision was basd on02:48
enigmaOK.02:48
jelmerthere can be multiple parents in thecase of a merge02:48
enigmaOK.02:48
jelmerbut what's the revision id of the last revision?02:48
enigmarevno: 38602:49
enigmarevision-id: enigma@neumannc-desktop-20081202023059-gzdv3fvxklm0v1z402:49
enigmaparent: enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt02:49
enigmaSo, I'm not seeing anything weird about rev 386 or 385 or 384....02:49
jelmeris that revision a merge revision perhaps?02:49
enigmaNo...the last merge in the history was at rev 37802:50
rockyjelmer: don't suppose you have a good list of new stuff in the bzr-svn 0.5.x series?02:50
jelmerrocky, see NEWS02:51
jelmerenigma, strange02:51
enigmaI have exactly 4 merges in the whole history.02:53
enigmaAnd doing a "push -r 1" works just fine.02:54
jelmerenigma, is this 0.5.0rc1 or 0.5 ?02:54
enigmaThis is 0.4.16 in this case.02:54
jelmerenigma, push -r1 would push the first revision in history, so that's a noop :-)02:54
rockyjelmer: ah thanks ...02:54
enigmaWith 0.5 RC1 I get a different error.02:54
enigmaWell...sort of...02:54
jelmerah, what's the error in that case?02:54
enigmaI get the same error for "push --overwrite"02:54
enigmaBut I get a different error for "push -r 1"02:55
enigmaI mean...02:55
enigma"push -r 1 --overwrite"02:55
enigmaI posted both the 0.4.16 error and the 0.5 RC1 error on: https://bugs.launchpad.net/bzr-svn/+bug/30761102:55
ubottuLaunchpad bug 307611 in bzr-svn "Pushing lots of revisions from one svn repo to another results in bzrlib.errors.NoSuchRevision" [Undecided,New]02:55
enigmaThey are both in the block at the top.02:55
enigmaThey kind of run together...probably needed some more whitespace between them.02:56
jelmerI mean with "bzr push -r1 --overwrite" on 0.502:56
enigmaOK...let me get that error and post in on the bug report...one sec.02:57
jelmer(bugs in 0.4 are not likely to be fixed anymore, I'm focussing on 0.5)02:58
enigma(Makes sense.)02:59
enigmaOK, look at my most recent comment here: https://bugs.launchpad.net/bzr-svn/+bug/30761103:01
ubottuLaunchpad bug 307611 in bzr-svn "Pushing lots of revisions from one svn repo to another results in bzrlib.errors.NoSuchRevision" [Undecided,New]03:01
enigmaI get an AssertError with 0.5 RC103:01
enigmabzr: ERROR: exceptions.AssertionError: revprops: ['bzr:revision-id', 'bzr:user-agent', 'bzr:timestamp', 'bzr:root', 'bzr:committer', 'svn:log', 'bzr:revprop:branch-nick', 'bzr:file-ids', 'bzr:base-revision', 'bzr:revno', 'bzr:mapping-version']03:02
jelmerah, that's been fixed in the 0.5 branch03:02
enigmaSo should I get the truck for 0.5 instead of RC1?03:02
jelmeryeah03:03
jelmerhttp://people.samba.org/bzr/jelmer/bzr-svn/0.503:03
enigmaOK, let me grab it.03:05
rockyi was just about to play with 0.5rc1 .. should i skip it and just try 0.5 branch ?03:06
rockyjelmer: python setup.py install doesn't appear to work with 0.5rc1 :(03:09
rockybasically it looks like the subvertpy package doesn't get installed03:11
enigmajelmer: OK, the latest bzr-svn 0.5 fixed that assert error.03:12
enigmaIt did not, however, fix the missing revision error.03:13
enigmaSo that seems like it's still a bug.03:13
enigmaAh ha! I got the "uuid" error again: bzr: ERROR: exceptions.AttributeError: 'NoneType' object has no attribute 'uuid'03:14
enigmaThat was after pushing just one revision.03:14
rockyenigma: how are you installing 0.5rc1 (or the branch?) ... the used-to-work-with-0.4.x "python setup.py install" doesn't seem to work  for me03:14
enigmaOh, I just run it out of "~/.bazaar/plugins/svn"03:14
enigmaI do a "make"03:15
enigmaAnd then copy it to the plugins directory.03:15
enigmaI don't do a sitewide install.03:15
jelmerrocky, that's also fixed in the 0.5 branch03:15
rockylol03:16
jelmerenigma, at the risk of asking the same question twice..03:17
jelmerenigma, the backtrace in bug 307611 for 0.5 was produced by pushing into a fresh svn repository?03:18
ubottuLaunchpad bug 307611 in bzr-svn "Pushing lots of revisions from one svn repo to another results in bzrlib.errors.NoSuchRevision" [Undecided,New] https://launchpad.net/bugs/30761103:18
enigmayes, a fresh repo.03:18
jelmerenigma, with fresh repo you mean "svnadmin create ..", right?03:18
enigmayeah.03:18
jelmerok (since you mentioned "svn mkdir" in the bugreport)03:19
enigmaI had one commit to make "trunk"03:19
enigmaAnd one commit to make "trunk/gui"03:19
enigmaSo, the svn repo was at v2 when I tried the "push --overwrite"03:19
enigmaSo here's something strange with 0.5-trunk...03:19
enigmaI'm being told wrong svn info now:03:20
enigmarevno: 103:20
enigmasvn revno: 4684 (on /trunk/press-gui)03:20
enigmacommitter: Christoph Neumann <enigma@qbert>03:20
enigmaSo, after sucessfully doing this: bzr push -r 1 -v --overwrite svn+http://localhost/svn/test/trunk/gui03:20
jelmerenigma, that looks alright if you ran "bzr push -r1 --overwrite"03:20
enigmaI did this: bzr branch svn+http://localhost/svn/test/trunk/gui03:20
enigmaWhich is *really* strange because the svn repo is at rev 3 now.03:21
jelmeryes, but you pushed only one bzr revision, right?03:21
enigmaYeah, so why is it telling 4684?03:21
jelmerenigma, that's derived from the revision id03:22
enigmaThat was the right svn revision for the repo the change came from.03:23
enigmaBut the new repo is now at rev 3.03:23
jelmerenigma, what does "svn info" on http://localhost/svn/test/trunk/gui say?03:23
enigmasvn info http://localhost/svn/test/trunk/gui03:23
enigmaPath: gui03:23
enigmaURL: http://localhost/svn/test/trunk/gui03:23
enigmaRepository Root: http://localhost/svn/test03:23
enigmaRepository UUID: 27530666-c0bc-4525-b9dd-495b6ed8d58603:23
enigmaRevision: 303:23
enigmaNode Kind: directory03:23
enigmaLast Changed Rev: 303:23
enigmaLast Changed Date: 2008-12-12 19:17:26 -0800 (Fri, 12 Dec 2008)03:23
jelmerhmm03:24
* jelmer has to get some sleep03:24
jelmerI'll have another look at your bug report tomorrow03:24
jelmersorry03:24
enigmaNo problem.03:24
jelmerthanks for the help debugging, at least03:24
enigmaI'll see if I can get in IRC tomorrow.03:24
enigmaIf you have more questions.03:24
enigmaThanks for all your help!03:24
jelmercool, that could be useful03:24
enigmaI learned lots of stuff.03:24
jelmerI'll try to reply in the bugreport as well03:24
jelmerg'night!03:24
enigmaOK. Goodnight.03:24
Rollyis it possible to list all revids in a repository?03:48
lifelessjml: yo04:17
jmllifeless: hey there04:18
lifelessjml: so testresources has a bunc of 'fix committted' stuff.04:20
lifelessI'm wondering if 'its in trunk' is good enough04:20
jmllifeless: good enough for what?04:21
lifelessfor us04:21
jmllifeless: are you wondering whether we should do releases?04:23
lifelesskinda04:23
jmllifeless: I've been using "fix commited" in the bzr project sense.04:23
jmllifeless: i.e. "there's a branch with a fix"04:23
lifelesshmm04:23
lifeless think some bugs are mislabelled then04:23
jmllifeless: it's possible.04:26
jmllifeless: I haven't done a round of gardening for a while.04:26
jmllifeless: also, my laptop battery is dying and I'm not near power.04:28
lifelessjml: ok, I have what I need - I'll use test released for stuff in trunk04:30
lifelessjml: thanks04:30
jmllifeless: I've just reviewed the third of the four subunit branches marked for review.04:30
jmllifeless: I'll get to the fourth soon.04:31
jml"polish" hasn't been submitted for review either.04:31
* jml suspends.04:31
meoblast001does launchpad have bzr-cia?05:52
lifelessjml: thanks07:08
cammoblammoI'm running the bzr 1.5 on Debian. I only use it for syncing a heap of text files between a few machines. Is there anything to be gained by compiling and installing 1.10?08:02
davidstraussI'd like to understand why this bug isn't being treated too seriously: https://bugs.launchpad.net/bzr/+bug/11380911:17
ubottuLaunchpad bug 113809 in bzr "update performs two merges" [High,Confirmed]11:17
davidstraussIs there a workaround I'm missing?11:17
davidstraussHow can users do local commits without having to worry about this?11:17
bialixdoes anybody knows about something like `bzr chdir` command? to change directory before run arbitrary command and then chdir back?11:53
davidstraussbialix: just change your actual directory11:53
davidstraussbialix: and many commands allow explicit definition of a directory11:54
bialixI need this for batch processing.11:54
bialixbut missing is not11:54
bialixhttps://bugs.launchpad.net/bzr/+bug/207762/11:54
ubottuLaunchpad bug 207762 in bzr "missing does not accept "-d" parameter" [Low,Confirmed]11:54
davidstraussbialix: I don't see why actually changing your directory would be a problem11:55
bialixbecause I'm working on scmproj plugin that operates on the set of bzr branches as unite project11:55
bialixI've implemented project-command command to run some command for all branches in the project in one loop11:56
davidstraussbialix: I still don't understand why you can't run "cd" instead of your desired "bzr chdir" command11:56
bialixbut `bzr missing` is unable to run in this way11:56
bialixbecause of design of my plugin.11:57
bialixactually I'm already implemented chdr command, I'm just wonder is not I'm reinventing the wheel, or does anybody else needs such feature.11:59
davidstraussbialix: and your plugin could run something like "bzr chdir"?11:59
bialixyes, I'm just finished it11:59
bialixin the past I remember that `bzr status` is also behaves differently either it runs as `bzr status .` or without any arguments.12:00
davidstraussbialix: I know several bzr commands interpret "." as an argument differently than nothing, especially add12:01
davidstraussbialix: add only uses ignores without an argument12:01
bialixyep12:01
fullermdEr, not exactly.  Add only uses ignores for discovered items, not given items.12:21
davidstraussfullermd: And if you give it an argument, you're using a "given item."12:21
fullermdYes, but add can still discover items (e.g., 'bzr add .' will recurse and discover items, to which ignores will be applied.  But they won't be for '.' itself, only for the discovered ones.)12:22
davidstraussMaybe I was thinking bzr add *12:22
davidstraussbut that's only one level different12:22
* fullermd nods.12:23
fullermdSo that will add an ignored subdir, but not add anything _within_ it (which can be a little confuzzling)12:23
davidstraussfullermd: Agreed, especially when you're coming from svn12:23
fullermdWait, that's wrong.  I'm thinking of a different case.12:23
* bialix likes "confuzzling" :-)12:24
fullermdIgnoring the subdir doesn't ignore the files within it.  I'm thinking of cases where I ignore '*'12:24
* fullermd aims to please ;)12:24
LarstiQbialix: you're familiar with the -d option on a number of commands?12:25
LarstiQbialix: in my and mwhudson's opinion at least, that should be supported on more commands12:25
bialixLarstiQ: yes, I'm aware about -d. But `bzr missing` lacks it12:26
davidstraussfullermd: Then I'll give you a fresh opportunity. I'm trying to figure out the best Bazaar workflow for next week's Drupal code sprint. It's all the core Drupal developers. If Bazaar handles things smoothly, I think it may strongly influence Drupal's next choice of VCS>12:26
LarstiQbialix: right, so my vote is for missing to be modified to support it. How exactly does your `bzr chdir` work?12:26
bialixI'm just wanna say that you could provide valid non-local URL to -d, so --directory name for this option is actually bad name12:27
bialix        cwd = os.getcwdu()12:27
bialix        os.chdir(directory)12:27
davidstraussfullermd: Given the terribly flawed implementation of commit --local, I need a smooth way for developers to commit changes locally (to a branch, likely) but still push changes centrally12:27
bialix        try:12:27
LarstiQbialix: hmmm. That won't work for commands needing a workingtree, would it?12:27
bialix            return run_bzr(argv_list)12:27
bialix        finally:12:27
bialix            os.chdir(cwd)12:28
LarstiQbialix: (giving a non-local url to -d)12:28
bialixLarstiQ: most of the command that supports -d works with the branch, not WT12:28
davidstraussfullermd: The problem with bzr push is that it modifies the central repository history12:28
davidstraussfullermd: and that's sort of evil12:28
LarstiQbialix: I'm thinking of merge specifically12:28
davidstraussfullermd: I can make the central repository "append-revisions-only", but then diverged branches can't be pushed12:29
LarstiQdavidstrauss: you can set a branch config to not reorder the mainline.12:29
LarstiQright12:29
bialixyes, you're right; merge is exception here12:29
davidstraussLarstiQ: So, is there any solution other than the terribly clunky combination of checkout and branch for each developer?12:30
LarstiQbialix: so you'd use bzr chdir by writing your normal command, and then sticking chdir between 'bzr ' and the rest?12:30
LarstiQdavidstrauss: I'm not entirely sure what you're trying to solve.12:31
LarstiQdavidstrauss: since to me, reordering the mainline is not evil.12:31
bialixLarstiQ: yes12:31
fullermdWell, that's the sorta setup I always use.  I've not found it especially clunky, but then I don't run into offline conditions often.12:31
davidstraussLarstiQ: I guess I don't understand how the reordering affects the mainline12:31
bialixwhy not?12:31
fullermdNot when I'm doing something I'd put right on trunk, anyway.12:32
LarstiQdavidstrauss: but, if I understand you correctly, merge the diverged branch into trunk. And the checkout helps in not racing.12:32
LarstiQbialix: okay, that approach will work with any and all commands, which is a plus.12:32
LarstiQbialix: I don't find it too elegant though :/12:32
bialixLarstiQ: exactly12:32
davidstraussLarstiQ: How does the mainline get reordered? Does it use the revnos from the branch that was pushed?12:33
bialixLarstiQ: well, it's a 5 minute hack to provide workaround12:33
LarstiQdavidstrauss: it will use the ordering of the pushing branch, yes12:33
fullermddavidstrauss: The revnos are dependant on what the head rev is (rather, the history implied by it)12:33
LarstiQbialix: right12:33
bialixit may be confusing, but it's a matter of taste12:33
* LarstiQ nods12:34
bialixbzr cd foo/bar missing http://foo.net/branch12:34
davidstraussSo, how should other developers get changes from the central branch, pull or merge? If they pull, then their local revnos change, too, right?12:34
bialixwell, it actually need to train the eye12:35
LarstiQdavidstrauss: right12:35
davidstraussLarstiQ: So should local devs merge?12:35
davidstrauss(from the mainline)12:35
LarstiQdavidstrauss: depends on what they want to do12:35
LarstiQdavidstrauss: personally, I'd just pull.12:35
davidstraussBut if there's divergence, you have to merge first, right?12:36
LarstiQdavidstrauss: that could go two directions though12:36
davidstraussLarstiQ: the merge?12:36
LarstiQdavidstrauss: they could merge their stuff into trunk, commit, and then pull from trunk12:36
LarstiQinstead of merging trunk into their branch12:37
davidstraussHow do people on a development team communicate about revision numbers if they're unstable?12:37
LarstiQbialix: on the -d side, it would be nice if this operation was the same on all commands, but it would also be nice if you could use the '-d' branch without a working directory. Hmmm12:38
LarstiQdavidstrauss: right, that is the question you need to ask. How much is that worth to you?12:38
davidstraussI think it's worth a lot to have consistent revision numbers for communication12:38
bialixLarstiQ: sometimes I think -d is misdesigned12:39
LarstiQdavidstrauss: One answer could be: revnos are instantaneous, they lose their validity after a (short) amount of time12:39
bialixespecially re tag command12:39
davidstraussLarstiQ: like process IDs on unix12:39
LarstiQdavidstrauss: that's a nice analogy12:40
LarstiQbialix: how so?12:40
LarstiQdavidstrauss: if you want to use them in bugreports that might be open for a couple of weeks, then it becomes more important that they be stable.12:41
bialixIMO bzr tag TAGNAME URL is good enough12:41
LarstiQdavidstrauss: so there you could do two things afaics, one is to refer to revision ids, not revision numbers. The other would be to base the revnos on a branch where the mainline does not get reordered.12:41
AmanicAas I mentioned i nthe mailing list I think we need a "standard option" -d which works the same for all commands12:42
bialixAmanicA: some commands don;t need -d, e.g. status, diff, commit, add12:42
davidstraussrevision IDs are 100% stable, right?12:43
LarstiQdavidstrauss: yes12:43
AmanicAyes but for scripting purposes, I think it'l be nice to have a consitant interface for all commands12:43
davidstraussIs there a way to detect whether a revision ID has been integrated into a branch?12:43
bialixmay be you're right; but having 2 ways to express things... confuzzling?12:43
davidstrauss(Other than bzr log --show-ids|grep ID)12:44
LarstiQdavidstrauss: bzrlib wise or command line wise?12:44
davidstrausscommand line wise12:44
fullermdYou could use revision-info maybe.12:44
fullermd(there's no "yes/no" giving command, but you can use side effects like "does this work".12:45
LarstiQthat would be my guess as well.12:45
LarstiQor bzr missing12:45
fullermdHm.  Well, OK, you can use revision-info and see if it blows up and gives you a traceback   :|12:46
davidstraussCobalt:a straussd$ bzr revision-info "david@fourkitchens.com-20081213120349-g6y28op35qnf3rhe"12:46
davidstraussbzr: ERROR: No namespace registered for string: u'david@fourkitchens.com-20081213120349-g6y28op35qnf3rhe'12:46
davidstraussthat's what I get12:46
davidstrausswith or without quotes around the revision id12:47
fullermdbzr revision-info -rrevid:a@b.c-123512:47
davidstraussthat works12:48
davidstraussthanks12:48
davidstraussHow do other DVCS tools handle the issue of stable history on the main branch?12:48
davidstraussI know most use the hash-based IDs as the primary revision tracking IDs.12:49
LarstiQdavidstrauss: right, that's how hg and git do it12:49
LarstiQdavidstrauss: there are some Linus quotes on revision numbers being a stupid idea even :)12:50
davidstraussLarstiQ: I think I'm starting to agree with him12:50
davidstraussI don't like that Bazaar gives the false impression that the numeric IDs will be stable.12:51
LarstiQwhere? how?12:51
LarstiQRevision numbers are stable in one branch only.12:51
davidstraussLarstiQ: When you come from SVN or CVS, you're used to revision numbers never changing once set.12:52
davidstraussLarstiQ: And, no, revision numbers are not stable even within one branch if you push to that branch.12:52
fullermdWell, it's not to do with revision numbers at all.12:52
fullermdNobody else (TTBOMK) has a concept of a branch mainline at all.12:53
davidstraussfullermd: pardon?12:53
LarstiQdavidstrauss: you just changed the branch there12:53
LarstiQbut yes, what fullermd said12:53
fullermdPeople who rail against bzr revnos always seem to miss that they're not the primary at all; they're an emergant property of the mainline concept.12:54
davidstraussfullermd: Please explain.12:54
davidstrauss(or link me to something)12:54
fullermdThe problem with fiddling the history isn't that the revnos get messy per se; it's that you lose the mainline, and so lose that extra tool (and because the UI is built assuming the usage of that tool in many ways, a lot of things get way less convenient)12:55
davidstraussfullermd: Which extra tool?12:55
fullermdThe mainline.12:55
fullermdThink of it as a way of winnowing down history.12:55
fullermdWould it be useful to run $VCS log, and get the revisions in your history in a randomized order?12:56
davidstraussfullermd: obviously not12:56
fullermdYah.  So you need to sort them somehow.12:56
fullermdThe "right" was is "in the order they belong", which is way too ill-defined to actually use.12:56
fullermdA good first approximation is chronological.12:57
fullermdThat works great in a purely linear system like CVSVN.12:57
davidstraussfullermd: So how does bzr order them if you have a sort-of mainline everyone pushes to?12:57
fullermdIn a parallel system like a DVCS, it's a bit stickier, since a revision no longer has a unique "that came before me".12:57
fullermdSo bzr imposes an extra structure of a 'mainline', which is defined by the left (or first, whatever term you want) parent of each revision.12:58
fullermdAnd declare that that revision is the one that, conceptually speaking, was "before me".12:58
fullermdLater parents (usually there would only be one, but you could octopus if you really wanted) are conceptually "stuff I grabbed from elsewhere".12:59
fullermdLinus likes to emphasize that merges are symmetrical; you merge two things together.  That's true technically, but I (and bzr apparently) feel that socially they're asymmetric; you merge FROM somewhere else INTO your local thing.12:59
fullermdThe mainline is a way of using that symmetry breaking to split up your history.  So conceptually, unless you push/pull over something, the mainline is "what happened on this branch", and the right-side descents are "things I got from elsewhere".13:00
fullermdThat means that, for instance, the revision before the head on the mainline (revno -2) is what was the head before your last commit.13:00
fullermdWhereas if you act in a way that doesn't preserve a mainline (like fast-forward merges, which most other systems default to always doing), you can't actually say "what was this before?"13:01
fullermdThis is especially useful on a 'trunk' type branch, because it may be very useful to be able to look back and say "Hey, what was trunk like last week?"13:01
davidstraussfullermd: Is there a concrete example of this behavior I can work through myself?13:02
fullermdWith something like git, it's impossible to say deterministically (unless you tagged it), because there could be 5 or 6 branches of the history that existed independantly then.13:02
fullermdSure, look at the history of bzr.dev.13:02
fullermdThis exhibits another emergant property of the mainline, which is the 'rollup' capability for offside work.13:03
fullermdIf I look at the --short log output for bzr.dev (which doesn't include non-mainline revisions), I see that the last commit was vila fixing some redirection bugs.  The one before that was him messing with log formatting.  Before that was Marius fixing some dotted revno stuff, then Solaris compilation fixes, cleaning debug code, adding another build target...  and on and on.13:04
fullermdSo in a way, I see the 'rollup' of what the conceptual bits that were done were.13:04
davidstraussfullermd: By "rollup," do you mean a revision that encompasses several others?13:05
fullermdIf I need to delve into the defailts of "what were the steps in changing that log format", I can walk down that line of history.  But in a high-level view, I don't care; I want to know the bigger conceptual "things that were done" to the project.13:05
davidstraussok13:05
fullermdSort of.  In log [--long, or any formatter that shows merge revs] they look that way.13:05
fullermdIn a strict sense, the history is no different than in git or any other ancestry-based VCS; it's all a DAG, and no revision is 'a subpart of' any other really.13:06
davidstraussunderstood13:06
fullermdBut the output uses the mainline to create a visual fiction that it's like that.13:06
davidstraussfullermd: Will I see this behavior even if people push into the mainline?13:06
fullermdIf you work in a way that preserves the mainline, and treats each commit to it as an individual unit (merge this feature, write that feature, etc), the log just walking down the mainline gives you a very neat view of the history.13:06
fullermdPushing over the trunk can change the mainline, since the left-hand path is now different.13:07
fullermdThat could mean that, say, the last 10 commits that were on mainline, are now "off to the right" of the last merge, and the new last 8 or 15 commits on mainline were details of implementing that last feature landed.13:08
fullermdIf the heads of two branches are different, their mainlines will be different.  If they're related branches, the mainline will usually be the same up to a point, but you'd have to examine a particular case to see where that is.13:09
fullermdFor instance, my copy of bzr.dev and the "real" bzr.dev have different heads right now (I'm a revision behind; haven't sync'd since yesterday)13:09
fullermdSo our revnos are the same up to 3904, but it's got a 3905.  So, I have sorta an "earlier version" of it.13:10
davidstraussfullermd: So, next week I'll be setting up Bazaar and training all the Drupal core developers on using it for the sprint. I'd like to have a clean mainline that exhibits the nice history you've mentioned. It looks like my choices for appending to that history are (1) commits from checkouts and (2) merges into the mainline.13:10
davidstraussWhat workflow do you use for your working copy(ies) of bzr.dev?13:10
fullermd(2) is what you'd need, yes.  (1) is IMO the simplest way of doing so.13:11
fullermdWell, I don't really work on bzr; I have bzr.dev around because it's the bzr I use day to do.  In my work, we work with a shared trunk which all the devs checkout.13:11
davidstraussfullermd: Do you use local commits at work?13:11
fullermdTrivial stuff is often just done directly on trunk, CVS style.  More involved stuff happens in separate branches (most commonly dev-local, with the sort of work we do, but occasionally shared)13:11
fullermdI don't, no.  If I'm working on trunk, I'm connected.13:12
fullermdAnd if I run 'commit' on trunk, it's because whatever I'm committing is ready to go out into the world.13:12
LarstiQdavidstrauss: I either work directly on trunk if it's small, or in a different branch if it's bigger, and merge it into trunk when ready.13:12
davidstraussfullermd: Do you maintain a checkout and a branch, typically?13:12
fullermdYah.  Or several branches.13:13
davidstraussLarstiQ: How do you merge into trunk? Do you directly got onto trunk and run "bzr merge"?13:13
LarstiQdavidstrauss: yup, with the branch I've been working in as an argument13:13
davidstraussLarstiQ: Or do you keep a checkout of trunk to merge into?13:13
LarstiQoh13:13
fullermdActually, because of details of the environment, I generally have one branch that gets pull'd over and re-used, instead of recreated from scratch, for a lot of things.  But I make specific branches sometimes too.13:13
LarstiQI didn't understand 'directly' correctly13:14
davidstraussFor most projects I manage, logging into the Bazaar mainline server and running merge is a non-starter.13:14
LarstiQdavidstrauss: I never work directly on the remote trunk that lives on the central server.13:14
LarstiQright13:14
LarstiQdavidstrauss: so, I cd to my local branch of trunk, and run merge13:15
davidstraussIt looks like "checkouts" are best treated as remote access points to do stuff directly on trunk.13:15
fullermdNor I.  The central 'trunk' doesn't even have a working tree.13:15
* LarstiQ nods at fullermd 13:15
fullermdYah.  There's pretty much two ways to do it.13:15
davidstraussfullermd: Same here. No working trees on trunk13:15
LarstiQdavidstrauss: depending on the project, my local copy of trunk is a checkout or a branch13:15
fullermd(1) have a 'branch' of trunk.  When you want to land something, pull to update, merge your stuff, then push.  Or, (2) have a checkout, update merge commit.13:16
fullermdThey're roughly the same thing, but (2) is usually simpler.13:16
davidstraussfullermd: Will (1) preserve a nice history on the mainline?13:16
LarstiQdavidstrauss: when a branch, I need to push after committing. If someone else than has committed something to the remote trunk, I need to do more work to get caught up, a potentially neverending cycle with race conditions. That is what a checkout makes easier.13:16
fullermdYeah, they have the same end result.  But the checkout automates staying in sync, making sure you're up-to-date, etc.13:16
LarstiQdavidstrauss: yes13:16
fullermdpush won't push if you're out of sync.  Strictly speaking, the remote head rev has to be in your history, or push will error.13:17
davidstraussDoesn't pull refuse to run if you've diverged?13:17
* LarstiQ would go for (1) if there is little chance of the remote trunk changing under your feet AND the overhead of a checkout is bothering you.13:17
LarstiQdavidstrauss: yes13:17
fullermdRight.  But in this case, you'd intentionally never diverge the trunk branch.13:17
davidstraussSo when you say "merge" into the branch of trunk, you mean from another branch that has the changes?13:18
fullermd(so if that priming 'pull' failed, something went wonky somewhere)13:18
LarstiQdavidstrauss: yes13:19
fullermdYah.  cd foo ; hack commit hack commit hack commit ; cd ../trunk ; bzr up ; bzr merge ../foo ; bzr ci13:19
davidstraussfullermd: that's with a checkout13:19
davidstraussright?13:19
fullermdAside from the workflow stuff, I find it convenient having an up to date copy of trunk around anyway, for reference.13:19
fullermdYah.  With an independant branch of turnk, those last 3 steps would turn into "bzr pull ; bzr merge ../foo ; bzr ci ; bzr push"13:20
LarstiQdavidstrauss: for a branch it would be : cd foo; hack commit hack commit hack commit; cd ../trunk; bzr pull; bzr merge ../foo; bzr ci; bzr push13:20
fullermdCheckout saves you a step, and makes things easier if trunk happens to move while you're doing it.13:20
LarstiQand beaten by fullermd, again :)13:20
* fullermd steals LarstiQ's typing speed.13:20
fullermdSince with a branch, if that last pull fails because trunk moved, you have to undo all the work, pull again, re-do the merge, etc.  With a checkout, you can just 'update' and it will take care of merging your changes on top of the new head.13:21
fullermd(which may conflict, to be sure, and you may find it easier to revert and re-do the merge than to fix them, but usually IME it doesn't)13:21
davidstraussyeah, i think i'll use the checkouts as the gateways to the mainline13:22
* LarstiQ nods13:22
fullermdAnd remember too how I scorn the Distributed Creed, and work on trunk a lot too   ;)13:22
LarstiQdavidstrauss: I think that is good practice indeed.13:22
fullermdProbably the majority (by number, though not by time) of the changes I make are small enough that they belong in 1 commit anyway, so I just do those straight on trunk.13:22
davidstraussAs a side note, this isn't terribly documented on the Bazaar site13:23
davidstraussRather, I find the workflows document rather vague and poor13:23
fullermdSo for those, the workflow is exactly as if I were still using CVS; make the change, commit, done.13:23
davidstraussfullermd: And that's something I really like about Bazaar: the zero learning curve of just doing what you did with SVN13:24
fullermdYeah.  That workflow hung around for 20 years because for a lot of things, it works fine.13:24
davidstraussIt makes it easy for me to force bzr on dev teams and then evolve use of the powerful distributed features13:24
davidstraussgradually13:25
* fullermd nods.13:25
davidstraussWith the Drupal dev team, we're taking CVS users in many cases13:25
fullermdYou can move a whole team from SVN over to bzr, and not disturb anybody's workflow.  Heck, everybody else can keep just working on trunk forever, but you still get to use branches.13:25
davidstrausstalking*13:25
davidstraussexactly :-)13:25
LarstiQthere are some small glitches like svn copy, but in general, yes.13:26
davidstraussAnd svn add vs. bzr add13:26
davidstraussand the branch centricity of bzr versus current working directory and below for svn13:26
davidstraussI've actually used bzr quite a bit at this point. I'm in here to become more of an expert because I know I'll get grilled next week for all of this.13:27
davidstraussWe're flying in people from around the world for this. I'm expected to know everything about the VCS I decided on.13:28
LarstiQaah13:29
LarstiQwhen does this all start?13:29
davidstraussMonday13:29
LarstiQok13:29
davidstraussWorst case was going to be falling back on just checkouts13:29
davidstrausswhich would put us exactly where we would have been with SVN, anyway13:30
LarstiQwhich will then get you the question, "why switch if it is the same?"13:30
fullermdI like to use profanity in answer to that   :)13:31
LarstiQdavidstrauss: I'm going out for shopping now, but I'm interested in talking more about this if that's ok with you.13:31
davidstraussLarstiQ: I maintain a bzr branch that tracks CVS HEAD. Even if we branch from that and then do everything checkout-style, we still save time.13:31
davidstraussLarstiQ: Because then I don't have to set up Subversion with a vendor branch and a clone of my HEAD-trackign scheme.13:32
davidstraussLarstiQ: bye13:32
davidstraussAlso, bzr is generally easier to use than svn. I hate svn's property-based ignore scheme.13:33
davidstraussAnd my inability to use it is why you'll find an old checkin of mine for MediaWiki that includes a password file (albeit, a development one that would be useless outside the firewall).13:34
davidstraussHow is this possible when using shared branch storage? "In commercial environments, different teams might have their access controlled to various branches (e.g. development vs QA vs maintenance) on a server but, once again, these branches can be using a shared repository for efficient storage. It's also clearly beneficial for hosting sites like Launchpad."13:58
davidstraussWouldn't all of the teams need access to the shared storage location?13:59
Peng_davidstrauss: Yeah, you're right. I guess you could create repos per-team, and the recent stacking feature will really help.14:03
davidstraussPeng_: I pulled the quote from the BzrVsGit page. It seems like shared storage makes it distinctly less possible to separate out permissions.14:04
* Peng_ doesn't read the Vs pages.14:05
Peng_davidstrauss: Yeah, it does.14:05
fullermdIt's easy.  First, we eliminate the VFS layer from the SS...14:05
Peng_davidstrauss: Like I said, stacking really helps there.14:05
davidstraussfullermd: I can't tell if you're being sarcastic14:06
Peng_fullermd is right too. It would be possible to make the smart server support permissions, though not easy.14:06
Peng_davidstrauss: Taking out the VFS would be a ton of work, but is desired for the future anyway, since it's often bad for performance.14:07
davidstraussok14:07
davidstraussAlso, it seems like full branch > history horizon branch (not existent yet) > stacked branch in terms of space requirements and local capabilities.14:07
davidstraussBut I've never seen them described as such14:08
fullermdOh, not sarcastic per se.  Sardonic maybe.14:17
rockyjelmer: another svn branch checkout failing... with bzr 1.10 and bzr-svn  0.5 branch14:32
rocky:(14:32
rockyjelmer: http://cluebin.appspot.com/pasted/361114:35
rockyjelmer: and http://cluebin.appspot.com/pasted/4002 for the bzr.log output14:38
mkanatLet's say I had a repo where the clock was wrong for a really long time, and now I have thousands of commits whose time is off by X hours exactly--can I fix that?14:42
mkanats/repo/branch/14:43
davidstraussmkanat: The general response I hear is that revision history data is immutable.14:53
mkanatdavidstrauss: That's what I've heard as well, I was just wondering if there was any way to safely muck about with it.14:53
mkanatAnyhow, I'm off to sleep, I'll ask again some time later.14:54
davidstraussmkanat: I'm guessing the answer is no *safe* way14:54
davidstraussmkanat: goodnight14:54
mkanatdavidstrauss: I'd guess that too. :-)14:54
mkanatNight114:54
mkanat*Night!14:54
Peng_The time is used in the revision IDs themselves too, not that it really matters.14:58
lifeless015:24
davidstrausslifeless: ?15:31
lifelessmistype15:31
GaryvdMHi - What do I do if I get this error: http://pastebin.com/mf46f9ef16:09
GaryvdMBzrCheckError: Internal check failed: Newly created pack file <bzrlib.repofmt.pack_repo.NewPack object at 0x01548CD0> has delta references to items not in its repository:16:09
davidstraussGaryvdM: You have a corrupted repository.16:10
GaryvdMWhere I am pushing from or where I am pushing to?16:11
davidstraussGaryvdM: what do you get from "bzr check"16:11
GaryvdMOk - I'm runing check on my local branch16:11
davidstraussGaryvdM: though it's likely the issue is with the external repository16:12
GaryvdMhttp://pastebin.com/m7264518f16:13
GaryvdMSeams ok16:13
davidstraussGaryvdM: What client version are you using?16:13
GaryvdMBazaar (bzr) 1.11dev16:14
GaryvdM  from bzr checkout C:/Documents and Settings/Gary/My Documents/bzr/bzr.dev16:14
GaryvdM    revision: 390416:14
GaryvdM    revid: pqm@pqm.ubuntu.com-20081213000403-r1acnqhux25xhil116:14
GaryvdM    branch nick: bzr.dev16:14
davidstraussGaryvdM: stacked branch?16:14
GaryvdMYes16:14
davidstraussGaryvdM: https://bugs.edge.launchpad.net/bzr/+bug/30269816:14
ubottuLaunchpad bug 302698 in bzr ""BzrCheckError: Internal check failed: Newly created pack file <bzrlib.repofmt.pack_repo.NewPack object at 0x2e23f90> has delta references to items not in its repository:" on pushing a stacked branch" [High,Confirmed]16:14
GaryvdMOk - thanks. I'm going to try an older version of bzr.16:16
davidstraussGaryvdM: Also similar: https://bugs.launchpad.net/bzr/+bug/30714616:17
ubottuLaunchpad bug 307146 in bzr "Can't push svn clone to bzr" [Undecided,New]16:17
davidstraussGaryvdM: you can also check the Launchpad branch remotely, I believe16:18
GaryvdMdavidstrauss: I revert to bzr 1.10 - The problem still existed. I reverted to bzr 1.9 and I was able to push successfully. Later tonight I'll try work out at which revision this regression occurred.16:43
mdmkolbeHelp my repository has gone haywire.  I did some edits then a "bzr ci --local" (when off the network) and some more edits afterwords.  Now back on the network, I try to do a "bzr ci" and it says it can't do that until I do a "bzr update".  Now it has thrown up all sorts of text conflicts and a pending merge (what ever that means).  I am the only person editing the source so I don't understand how conflicts could have appeared.  How do I get back to a16:43
LarstiQmdmkolbe: cut off at 'How do I get back to a'16:43
LarstiQmdmkolbe: https://bugs.edge.launchpad.net/bzr/+bug/11380916:44
ubottuLaunchpad bug 113809 in bzr "update performs two merges" [High,Confirmed]16:44
mdmkolbeHow do I get back to a sane state?  (I have uncommited changes that I *don't* want to loose)16:44
davidstraussLarstiQ: beat me to it16:44
davidstraussmdmkolbe: The changes you generally want to keep will be in the .moved files16:44
davidstraussmdmkolbe: checkout + local commit + uncommitted changes + update is currently a recipe for disaster16:45
davidstraussmdmkolbe: The *.THIS.moved files likely have your uncommitted changes in them16:47
davidstraussmdmkolbe: Is that the case?16:47
* mdmkolbe looks16:47
davidstraussmdmkolbe: And the "pending merge" represents a local commit you did16:48
mdmkolbedavidstrauss: yes the THIS.moved files look right16:49
davidstraussmdmkolbe: You'll want to copy the contents of the THIS.moved files into the conflicted files16:49
davidstraussmdmkolbe: And then you can delete all the THIS, OTHER, BASE, and .moved files16:50
davidstraussmdmkolbe: run bzr resolved16:50
davidstraussmdmkolbe: and you should have a clean copy16:50
mdmkolbedavidstrauss: it looks like I have a conflicted directory and some sort of path conflict(?)16:50
davidstraussmdmkolbe: the path conflicts are side-effects of the same thing16:50
davidstraussmdmkolbe: bzr treats directories as versioned objects16:51
davidstraussmdmkolbe: back up the conflict files, just in case they have anything useful in them16:52
mdmkolbeit is still listing "conflict adding file foo.BASE"16:54
davidstraussmdmkolbe: in bzr status?16:54
mdmkolbeyes16:54
davidstraussmdmkolbe: have you run "bzr resolve"16:54
mdmkolbe(also OTHER and THIS)16:54
mdmkolbeyes, it says "remainling conflicts:" then lists *base, other, this"16:55
davidstraussmdmkolbe: and moved the conflict files where bzr can't see them?16:55
mdmkolbeI now have but on the first resolve I didn't16:55
davidstraussmdmkolbe: you need to run resolve after removing the conflict files16:56
davidstraussmdmkolbe: and you may need to "bzr resolve [file-it's-complaining-about]" explicitly16:56
mdmkolbeah, that last part did it16:56
davidstraussmdmkolbe: The only safe way to update is if you don't have a combination of uncommitted changes and local commits.16:57
davidstraussmdmkolbe: I personally avoid local commits because of the problem you just encountered.16:58
mdmkolbedavidstrauss: what if I have multiple local commits.  (i.e. instead of "ci --local" and "ci" do "ci --local" and "ci --local" "update)16:58
davidstraussmdmkolbe: i believe multiple local commits is fine16:59
davidstrausslet me check16:59
LarstiQif you have local commits, but no uncommitted changes, that should work afaik16:59
mdmkolbedavidstrauss: ok, so I've cleared all the conflicts, but bzr st still lists a "pending merge".  Do I need to clear that?16:59
LarstiQwhat could happen is that you have file.moved.moved.moved16:59
davidstraussmdmkolbe: Just checked, and multiple local commits is OK.17:00
LarstiQwith multiple levels of conflict17:00
davidstraussmdmkolbe: the pending merge is just your local commit17:00
LarstiQin that case, you might need to bzr resolve file.moved.moved, not just 'file' itself17:00
* LarstiQ hopes 113809 gets fixed soon17:01
mdmkolbedavidstrauss: so ... do I do another local commit now and finish with an update?17:01
davidstraussmdmkolbe: do you have uncommitted changes?17:01
mdmkolbedavidstrauss: yes17:01
davidstraussmdmkolbe: then, yes, do a local commit and update17:01
davidstraussmdmkolbe: and then you may commit17:02
davidstrauss(centrally)17:02
mdmkolbedavidstrauss: ok, I did "ci --local" and then "update".  It complains about "conflict: can't delete <directoryname> because not empty"17:04
davidstraussmdmkolbe: what directory?17:04
mdmkolbesrc/unicode/ucd/properties17:04
LarstiQthat might be a valid conflict between your local revisions and the upstream?17:04
mdmkolbeLarstiQ: I am the only committer so I don't think so17:04
davidstraussmdmkolbe: do you have local changes in that directory?17:05
mdmkolbedavidstrauss: yes17:05
davidstraussmdmkolbe: i'd back up that directory, revert it, update, and re-integrate your changes17:05
davidstrausssorry, back17:07
LarstiQdidn't miss anything17:08
mdmkolbedavidstrauss: I *think* it is now all back to normal.  Is there a graphical tool for viewing revision history trees? (I'm currious what happened as a result.)17:10
davidstraussmdmkolbe: It's not going to be visible in the tree. It happened due to a double merge. The craziness never got committed.17:11
LarstiQmdmkolbe: qlog from qbzr and viz from bzr-gtk are nice tools, but I'm not sure that is what you are asking for17:12
mdmkolbedavidstrauss: but I see 16 then 16.1, 16.2,16.3 and finally 17 in the bzr log17:12
davidstraussmdmkolbe: there will be at least your local commits17:12
davidstraussmdmkolbe: i mean, you won't see the problem in the tree17:12
LarstiQ16.1, 16.2 and 16.3 should be your local commits17:12
mdmkolbeah, I think I see what you mean17:13
mdmkolbeThank you *very* much for your help.17:14
davidstrauss:-)17:14
mdmkolbe(Though it baffles me that such a bug could exist (I would have thought a proper design would prevent it) and actually makes me wonder whether I can continue to trust bzr with my data.)17:16
Peng_What bug? Local commits getting mangled?17:17
mdmkolbePeng_: yes17:17
Peng_Well, I trust bzr with my data, but I don't use checkouts.17:18
davidstraussmdmkolbe: Just don't use local commits. I haven't encountered a similar problem elsewhere in Bazaar.17:21
davidstraussmdmkolbe: There's a lot of debate about the future of local commits in Bazaar, anyway.17:21
mdmkolbewhat if I am away from a network?17:21
mdmkolbe(that was the reason I used local commits in the first place)17:21
davidstraussmdmkolbe: The best thing to do is checkout to your laptop and then branch from that.17:22
davidstraussmdmkolbe: It's lightweight it you use shared branch storage.17:22
davidstraussmdmkolbe: The workflow is then local branch --- merge ---> local checkout --- commit ---> central branch17:23
davidstraussmdmkolbe: The local checkout is merely a gateway to the central branch17:23
davidstraussmdmkolbe: Or you can always merge into the central branch17:23
davidstraussmdmkolbe: Or push and pull17:23
davidstraussmdmkolbe: Or just resolve to not mix local commits with uncommitted changes when you update.17:24
davidstraussThat last one is the easiest, but it's also the most likely to have you running into the problem again.17:24
mdmkolbeok, well I guess I'll be remembering that for next time17:25
davidstraussmdmkolbe: I'm currently pushing for updates to be denied if you have both local commits and uncommitted changes17:27
davidstraussmdmkolbe: http://www.nabble.com/Re%3A-Recommended-use-of-Bazaar-for-single-committer-multiple-machine-projects--p20989853.html17:28
mdmkolbedavidstrauss: I think that should be done at a bare minimum.  What I would have expected what that a check out just means that "ci" is really "ci --local;push" or some such (maybe with a rolback of the "ci --local" if the "push" fails). then this problem shouldn't even be able to happen17:30
davidstraussmdmkolbe: ci --local;push does something quite different17:31
davidstraussmdmkolbe: There's actually no obvious solution for merging into a checkout with both local commits and uncommitted changes.17:35
mdmkolbedavidstrauss: hmm, this may explain why both darcs and git require local changes to be explicitly staged before being pushed up stream.  I guess I assumed bzr was doing the same just providing a single command.17:38
davidstraussmdmkolbe: yes17:40
davidstraussWhere is the code for the update command in the Bazaar source?17:40
GaryvdMbzrlib\bulitins.py line 112117:42
davidstraussThanks17:43
davidstraussGaryvdM: How easy would it be to change it to detect either uncommitted changes or local commits?17:43
Peng_Probably not very difficult.17:44
davidstraussThat's what I thought17:44
davidstraussIf we can at least get that into trunk, we can avoid the horrors mdmkolbe just experienced.17:45
mdmkolbeI should note that this sort of check to stop bad behaviour has precident.  IIRC there are some situations where SVN will refuse to do an operation.  It gives an infomative message about why it wont do it and what you should do in order to make it happy.  It also tells you that if you really do want to do it any way you can pass a "--force" option.17:47
mdmkolbeAs a user seeing that message is mildly anoying (sometimes I think "if svn is telling me what I need to do to make it happy, then why doesn't it go ahead and do it itselft").  but when using it I also realize that having your VCS be too conservative is better than having it be too loose17:49
davidstraussMy Python is rather rusty, but I should be able to just pull some code over from the status command into the update one to do the necessary check.17:53
davidstraussHow can you detect the presence of local commits?17:56
LarstiQdavidstrauss: presumably this is at the point where you are running update, right?17:56
davidstraussLarstiQ: yes17:57
LarstiQIn which case you should know the tip of the master branch, and your own tip.17:57
davidstraussYes, I see that17:57
LarstiQif there is divergence, there are local commits.17:57
LarstiQThere might be nice api for this, that I do not know.17:57
davidstraussI assume "master is None" means it's not a checkout?17:58
LarstiQdavidstrauss: I haven't looked at that code, but I'd guess that's correct.17:58
LarstiQAmanicA: ooh, _you're_ Marius Kruger!18:18
davidstraussIs there a command to have Bazaar list local commits?18:24
GaryvdMqlog18:25
GaryvdMI don't know about the command line18:25
davidstraussqlog?18:26
Odd_Blokedavidstrauss: "bzr missing --mine"18:26
davidstraussOdd_Bloke: nope18:27
davidstraussOdd_Bloke: maybe "bzr missing --mine :bound"18:27
Odd_Blokedavidstrauss: What do you mean by 'local commits'?18:27
davidstraussOdd_Bloke: to a checkout18:27
Odd_Blokedavidstrauss: Have you tried "bzr missing --mine :bound"?18:28
LarstiQdidn't he just say that? :)18:28
LarstiQOdd_Bloke: davidstrauss is working on bug 11380918:29
LarstiQOdd_Bloke: heya, btw :)18:29
ubottuLaunchpad bug 113809 in bzr "update performs two merges" [High,Confirmed] https://launchpad.net/bugs/11380918:29
Odd_BlokeLarstiQ: No, he didn't. :)18:29
davidstraussI'm at the point where I need to test for the (1) uncommitted changes and (2) local commits18:29
Odd_BlokeLarstiQ: Hi. :D18:29
bialixAmanicA: ping18:34
davidstraussLocal commit testing: check18:38
davidstraussNow to look for uncommitted changes18:38
aantnhello18:44
aantnwhat's the best way to remove the last commit from a remote branch18:45
aantn(If I use bzr uncommit, it'll only remove it from the local branch's history)18:45
aantnsomeone accidentally committed personal information and I'd like to remove all traces of the commit18:46
davidstraussaantn: uncommit won't do that18:47
bialixpush --overwrite18:47
aantnbialix: thanks18:47
bialixnp18:47
davidstraussI said "won't do that" because uncommit doesn't destroy the data18:48
aantndavidstrauss: is there a way to do that, then?18:49
davidstraussaantn: not to my knowledge18:49
bialixremoving the branch completely and push it again18:49
bialixthere is no simple way for nuking uncommitted revisions18:50
davidstraussbialix: aantn would still have the ghost revision in the pushed data18:50
bialixno18:50
bialixit's not ghost revision18:50
davidstrausseven when you uncommit?18:50
bialixthere is (was) plugin named remove-revisions to do this job18:51
bialixwhen you uncommit your revision still in the repository18:51
bialixwhen you do push, uncommitted revisions will not propagate18:51
bialixor pull or branch, does not matter18:52
aantnbialix: would uncommitting be sufficient then?18:52
bialixthis is main reason why branching in bzr much slower operation than clone in hg or git18:52
davidstraussI see18:52
bialixaantn: it depends if you have shell access to your server18:53
aantnbialix: it's a launchpad branch18:53
bialixoh18:53
aantnI've already notified the person and they should have changed the password by now anyway18:54
LarstiQaantn: uncommit and push --overwerite are sufficient for no one being able to get the information by branching18:54
bialixdo local uncommit and then push --overwrite to lp18:54
aantnbialix, LarstiQ: thanks; already done18:55
LarstiQaantn: and ask one of the lp admins to clean the repository18:55
aantnLarstiQ: ok; is there anyone in here who can help?18:55
LarstiQaantn: https://answers.launchpad.net/launchpad/+addquestion18:55
bialixAmanicA: if you'll read this later tonight: I'm going offline, check your mail18:55
bpierrehi19:07
bpierredo you use the launchpad interface for merge requests?19:07
davidstraussDone with my patch :-)19:07
davidstraussWhat do you guys think? http://pastebin.com/m5586168e19:08
davidstraussHow do you use bzr send to create a merge directive but not send an email?19:13
LarstiQdavidstrauss: bzr send -o <file>19:14
bpierredavidstrauss: use -o file19:14
davidstraussnot sure how i missed that in bzr help send19:14
davidstraussMore importantly, what do you think of the patch?19:15
LarstiQdavidstrauss: you should probably use `dir` instead of u"."19:17
davidstraussLarstiQ: Like this? "local_branch = Branch.open_containing(dir)[0]"19:18
LarstiQdavidstrauss: yup, assuming dir is still the same as at the top of the cmd_update run19:18
LarstiQdavidstrauss: other than that, looks good.19:18
LarstiQdavidstrauss: you might want to include a NEWS entry too19:18
davidstraussIs there a special Launchpad way for me to submit merge directives?19:24
davidstraussLarstiQ: And it has a NEWS entry, too.19:25
LarstiQthat I do not know. But the Bazaar project primarily uses bundle buggy wathcing the mailing list for patch proposals, not launchpad.19:25
davidstraussthen I'll email to that19:25
bpierreah, answered my question19:26
LarstiQdavidstrauss: after which you can track it at http://bundlebuggy.aaronbentley.com/19:26
cammoblammoI'm running bzr 1.5 on Debian. I mainly use it for syncing a heap of text files between a few machines, although I also follow a couple of software projects with it as well. Is there anything to be gained by compiling and installing 1.10?19:27
davidstraussLarstiQ: And emailed.19:28
davidstraussI do email to bundlebuggy@aaronbentley.com right?19:31
LarstiQeh, no :)19:32
LarstiQdavidstrauss: sorry, I should have made that more clear.19:32
LarstiQdavidstrauss: bundlebuggy monitors the regular bazaar mailing list19:32
davidstraussSo I email to bazaar@lists.canonical.com?19:33
LarstiQdavidstrauss: use a subject of [MERGE/RFC] warn the user when updating with both local commits and uncommited changes, or something like that19:34
LarstiQdavidstrauss: yes19:34
LarstiQdavidstrauss: more guidelines are listed in doc/developers/HACKING.txt, specifically 'Sending patches for review' in this case19:35
davidstraussLarstiQ: thanks19:45
LarstiQdavidstrauss: it's in bundle buggy now too20:46

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