[16:37] <ochosi> hi everyone
[16:37] <ochosi> sorry if what follows sounds like a rant, but i'm also trying to solve a problem
[16:38] <ochosi> a collegue pushed a new rev to trunk without pulling before, so everything newer than his local status got thrown together in a single "merge-commit" and history was rewritten
[16:38] <ochosi> basically 2 commits incl. commit-messages were lost that way
[16:39] <ochosi> so first question: how can i resolve that? can i revert those commits somehow in the remote repo?
[16:39] <ochosi> 2nd question: why is it even possible for someone else to rewrite history that easily? theoretically you can destroy all commits by going to a very early revision, changing something and then pushing it (cause everything that came after will be squeezed in one merge-commit)
[16:57] <Doomtron> i'm new with bzr, but from man bzr: bzr revert [FILE...]       Reverse all changes since the last commit.
[16:57] <Doomtron> ochosi:
[16:58] <ochosi> does that also affect the remote repo?
[16:58] <mgz> ochosi: so, he didn't lose or change any history, just changed how the graph appears
[16:59] <ochosi> mgz: well, the commit messages are lost, and since one commit (formerly known as rev182) fixed a specific bug, it's not very nice imo
[17:00] <mgz> ochosi: you can prevent accidents like this by setting a config 'append_revisions_only' on your master branhc
[17:00] <mgz> ochosi: they are not lost
[17:00] <ochosi> thanks, that sounds useful
[17:00] <mgz> ochosi: to see, do `bzr log -n0 REMOTE` where REMOTE is your master branch
[17:00] <ochosi> can i revert that stuff somehow?
[17:00] <mgz> and fixing this is easy, do
[17:01] <mgz> well two options
[17:01] <mgz> the non-history rewriting way is:
[17:02] <mgz> `bzr branch -r-2 REMOTE fixup_mainline; cd fixup_mainline` # get the last good mainline rev before the mistake
[17:02] <mgz> `bzr merge REMOTE; bzr commit -m "Merge so and so's changes with the mainline set correctly"; bzr push`
[17:03] <mgz> you can also just take the last good rev, merge his base branch properly, and push --overwrite it
[17:03] <mgz> ochosi: hope that helps
[17:04] <ochosi> mgz: so going back to the last good commit and doing "bzr push :parent --overwrite" will do away with whatever followed?
[17:04] <ochosi> (just to be sure, i dont wanna mess things up more than they already are)
[17:04] <mgz> yes, but that's the big hammer method, and you don't really need it
[17:04] <mgz> just flip the mainline back to the right thing
[17:05] <mgz> by getting the last mainline rev you want, and merging current tip into it and pushing
[17:06] <ochosi> yeah, i can grab the commit that's there (before the merge), commit it locally and then push all that
[17:06] <ochosi> thanks a lot mgz
[17:06] <ochosi> last question, how do i quickly set the append_revision_only setting?
[17:07] <ochosi> (sorry, usually using git, so i'm a bit new to bzr...)
[17:08] <mgz> ochosi: `bzr config -d REMOTE --scope=branch append_revisions_only=True` and test it by then doing `bzr uncommit REMOTE` which should complain at you
[17:08] <ochosi> will do that, thanks a bunch for the super-fast and terrific support!
[17:14] <ochosi> mgz: all sorted out, thanks again!
[17:14] <jelmer> hey mgz :)
[17:15] <mgz> jelmer! :)
[17:16] <mgz> seem zygmynt's funny plan?
[17:16] <mgz> *seen
[18:33] <zyga> mgz: hmm?
[18:34] <mgz> zyga: wondered is jelmer had seen your announcement, as it's one of the things we discussed with vila before xmas
[18:35] <mgz> (python 3)
[18:35] <zyga> mgz: oh, what do you think about that then?
[18:35] <zyga> mgz: I haven't touched bzr since weekend but I'm slowly inclined to go through 2.7 cleanup phase were I drop the level of flake8 noise before running 2to3 en-masse
[18:36] <zyga> (I had like three different attempts so far)
[18:36] <mgz> I think you worded it a little strongly initially, dropping python 2 and the whole test suite sounded silly, but there's no reason to treat this as a fork rather than bzr 3 I don't think
[18:36] <mgz> zyga: that does seem like a reasonable plan
[18:36] <zyga> I don't intend to drop the test suite, I certainly didn't meant that :)
[18:36] <mgz> right, you did clarify that :)
[18:37] <zyga> I meant that if I get to write new code I won't really go to that level of testing as bzr has now, because it's going to take even more time and I want to see if this idea can work or not faster than that
[18:37] <zyga> I do intend to keep the test suite :)
[18:37] <zyga> that would be pretty nutty to remove it
[18:38] <zyga> mgz: so what were your ideas for python3?
[18:38] <mgz> just slog through it, and don't try to maintain compat after a major release
[18:38] <zyga> 2.x compat?
[18:39] <mgz> there are old major releases for python 2 support
[18:39] <zyga> yeah, I think thats reasonable, python3 was around for a long time now
[18:39] <zyga> and it's far easier to remove various fallbacks and maybe, just maybe, use newer features
[18:39] <zyga> one thing I was thinking about later was launchpad
[18:39] <zyga> but since I explicitly forked launchpad can stayon bzr forever
[18:40] <zyga> I don't even imagine how big launchpad porting effort would be
[18:58] <rozzin> zyga: sorry, what about launchpad?
[19:36] <zyga> rozzin: if bzr trunk and subsequent releases moved to 3.x, dropping 2.x support, lauchpad would be locked out
[19:36] <rozzin> zyga: Ah. You meant "bzr" as opposed to "bzr3".
[19:39] <jelmer> mgz: yeah, I did see the announcement!
[19:39] <zyga> rozzin: yeah
[19:40] <zyga> rozzin: looking at to what mgz mentioned, if bzr itself moved to python3
[19:40] <jelmer> mgz, zyga: I think dropping support for older formats is a good idea
[19:40] <jelmer> not really convinced of the usefulness of porting to python3 at this point
[19:40] <zyga> jelmer: right, since they are obsolete and 2.6 can convert all the way to 2a
[19:41] <zyga> jelmer: it's for fun really, there's is some usefulness but more for what I need
[19:41] <jelmer> zyga: ah, fair enough
[19:42] <zyga> looking at the code I think it's also reasonable to drop some transports
[19:42] <zyga> bzr really needs, local, http and ssh
[19:42] <jelmer> zyga: it really depends on what your eventual goal is
[19:42] <zyga> the rest are probably dead as users anyway
[19:43] <zyga> jelmer: not sure yet, I have a pipe dream of git format as native bzr format
[19:43] <zyga> jelmer: immediate goal is bzrlib in python3 for my scripts / tools
[19:43] <jelmer> zyga: If you're aiming for this to be a long-term project rather than an incidental hobby project, then I have other reservations too (-:
[19:43] <zyga> jelmer: shoot :)
[19:43] <zyga> jelmer: you never know
[19:44] <jelmer> zyga: since moving it to a separate launchpad project (and dropping python2.x) would effectively split the already small community
[19:53] <zyga> jelmer: I see what you mean, I'm not saying no, right now there is no community for bzr3 that isn't the existing bzr community, if this works out I'll rethink how to continue, now I need to find a moment to work on the code
[19:55] <jelmer> zyga: fair enough
[20:58] <rozzin> jelmer: It seems like moving to python3 may be useful as a sort of social signal, even if that's all it is: people look at bzr/python2 and think "the project isn't even being kept up to date with the current Python", which supports "bzr is a dying/dead project".
[21:29] <LeoNerd> jelmer: Ah, hi there ;) LTNS