On Wed, Nov 16, 2011 at 03:09:08PM +0100, Martin Sandve Alnæs wrote: > On 15 November 2011 22:21, Anders Logg <l...@simula.no> wrote: > > On Tue, Nov 15, 2011 at 10:15:43PM +0100, Martin Sandve Alnæs wrote: > >> On 15 November 2011 22:05, Anders Logg <l...@simula.no> wrote: > >> > On Tue, Nov 15, 2011 at 09:51:06PM +0100, Anders Logg wrote: > >> >> My recent work has broken the buildbot. Can anyone give a quick tip > >> >> for how to revert the changes from the branch in such a way that I can > >> >> reapply the changes + a proper fix later? > >> >> > >> >> It should be fairly quick to resolve the issue but I might as well > >> >> learn to revert the proper way. > >> > > >> > I believe Marie has pushed a bug fix now, but if someone has a good > >> > recipe please share. I can add it to the web docs for future > >> > reference. > >> > >> Revert the entire state to revision 19: > >> bzr revert -r 19 > >> bzr commit -m "Backout fix for bug #5" > >> > >> Revert one or more previous commits: > >> bzr merge -r 10..9 # backs out changes from commit 10 > >> bzr merge -r 7..4 # backs out changes from commits 5,6,7 > >> > >> From > >> http://doc.bazaar.canonical.com/beta/en/user-guide/undoing_mistakes.html > >> > >> Note that the important point here is that changes that have been > >> pushed somewhere else should be reverted or merged reversely like > >> above, not e.g. using uncommit because that would mess up your history > >> vs the already pushed history. > > > > Thanks. And how does one add back the changes once they have been > > fixed. > > > > In the first case, I would do this in my local (checked out) 1.0.x: > > > > $ bzr revert -r 19 > > $ bzr commit -m "Backout fix for bug #5" > > > > Then I would fix the bug in my local 1.0.x-logg. > > > > How do I then get the changes from 1.0.x-logg (including the > > changesets that were reverted) from 1.0.x-logg into 1.0.x? > > > > Just the usual way? > > > > cd 1.0.x > > bzr merge ../1.0.x-logg > > bzr commit -m "Proper fix for bug #5" > > Since 1.0.x already contains the original commit, this shouldn't work. > You'll need to somehow record a new commit with the proper changes. > This will depend on the situation and could be messy, but assuming you > want to re-introduce _all_ changes that were reverted previously, you > should be able to reverse merge the commit which contains the old > revert :) > > Disclaimer: I haven't tested this yet! > > First: > $ bzr revert -r 19 > $ bzr commit -m "Backout fix for bug #5" > Say this introduces a commit -r25. > <work work work gets us up to -r30> > > Then: > $ bzr merge -r25..24 # Reverse cherry-pick the backout commit from above > $ bzr commit -m "Re-apply old incomplete fix for bug #5" > <work work fixing bug properly> > $ bzr commit -m "Proper fix for bug #5" > > > By the way, I don't like this sentence from the manual: > "Unlike a normal merge, Bazaar does not currently track cherrypicks." > Not sure what kind of trouble that may cause. > I recommend resolving tricky merge situations > in a third branch which can safely be discarded, > and inspecting the result with e.g. log, diff, missing. >
Thanks, I'll add this to the web docs when I get a chance. -- Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp