<div class="gmail_quote">2008/12/6 Stephen J. Turnbull <span dir="ltr">&lt;<a href="mailto:stephen@xemacs.org" target="_blank">stephen@xemacs.org</a>&gt;</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>
&nbsp;&gt; I was wondering if bazaar allows changes to messages and committed<br>
&nbsp;&gt; dates of older revisions. Like for example, I&#39;m at revision 100 but I<br>
&nbsp;&gt; just realized that revision 90 had a bogus message that didn&#39;t have<br>
&nbsp;&gt; anything to do to the changes. What I&#39;m looking for would be a way to<br>
&nbsp;&gt; replace that message and hopefully leave no visible traces on the<br>
&nbsp;&gt; regular bzr log. Any ideas? Plugins?<br>
<br>
</div>No. &nbsp;None of the modern VCSes will do it for you directly. </blockquote></div><div>&nbsp;...<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. &nbsp;If you<br>
have allowed others to clone your repo, then their rev 100 will not be<br>
equal to your rev 100&#39;. &nbsp;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). &nbsp;This is a feature, not a bug.<br>
<br>
While users generally don&#39;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. &nbsp;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. &nbsp;Merges will fail or<br>
generate huge conflicts, etc.<br>
<br>
So, just don&#39;t do it. &nbsp;The closest effect that is reasonably safe is<br>
to<br>
<br>
# untested, and I&#39;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 &quot;Corrected message.&quot;<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 &quot;Corrected message.&quot;<br>
</div>bzr replay -r90 ../mainline<br>
<br>BTW pay head to the warning of Stephen<br><br>
</div>regards<br>marius<br>