<div class="gmail_quote">2008/12/6 Stephen J. Turnbull <span dir="ltr"><<a href="mailto:stephen@xemacs.org" target="_blank">stephen@xemacs.org</a>></span><br><div class="gmail_quote"><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>Enrique Ramirez writes:<br>
<br>
> I was wondering if bazaar allows changes to messages and committed<br>
> dates of older revisions. Like for example, I'm at revision 100 but I<br>
> just realized that revision 90 had a bogus message that didn't have<br>
> anything to do to the changes. What I'm looking for would be a way to<br>
> replace that message and hopefully leave no visible traces on the<br>
> regular bzr log. Any ideas? Plugins?<br>
<br>
</div>No. None of the modern VCSes will do it for you directly. </blockquote></div><div> ...<br></div><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Note that even in git, if you revise the message at revision 90, you<br>
will also have to recreate the commits of revision 91 .. 100. If you<br>
have allowed others to clone your repo, then their rev 100 will not be<br>
equal to your rev 100'. It will appear as tip of a separate branch,<br>
forked after rev 89, with identical content (tree IDs) but different<br>
history (commit IDs). This is a feature, not a bug.<br>
<br>
While users generally don't pay attention to the commit ID, so it will<br>
be effectively invisible in the log, it will be disastrously visible<br>
in use. Specifically, if you use the same name for the branch with<br>
changed history, enormous confusion will ensue if clones of the<br>
original commit are available anywhere else. Merges will fail or<br>
generate huge conflicts, etc.<br>
<br>
So, just don't do it. The closest effect that is reasonably safe is<br>
to<br>
<br>
# untested, and I'm not fluent in bzr yet<br>
bzr branch -r 89 . ../tmp-branch<br>
bzr diff -r 89 -r 90 -p1 | patch -d ../tmp-branch -p1<br>
cd ../tmp-branch<br>
bzr commit -m "Corrected message."<br>
# optional, might give prettier logs<br>
# bzr merge -r 91:100 mainline<br>
cd ../mainline<br>
bzr merge ../tmp-branch<br>
</blockquote></div></div><br>I tried the following which worked (it uses the rebase plugin):<br><br>bzr branch -r 90 . ../tmp-branch<br>cd ../tmp-branch<br>bzr uncommit<br><div class="Ih2E3d">bzr commit -m "Corrected message."<br>
</div>bzr replay -r90 ../mainline<br>
<br>BTW pay head to the warning of Stephen<br><br>
</div>regards<br>marius<br>