On Sep 12, 2008, at 4:07 PM, Rémi Forax wrote: > So i have a mercurial question : > How to make a diff between a patch and my current workspace ?
Here's the easiest way to make changes on top of the MLVM patches: 1. Follow the instructions in README.txt to create sources and patches forests. 2. Pick a source repo. to work, such as "sources/hotspot"; cd to it. 3. Use "hg qpush", "hg qpop" and similar commands to select the MLVM patch you want to work on. 4. Make new changes! 5. Use "hg st", "hg diff", etc., to examine and review those differences. 6. To push your new changes into the current patch (whichever it is), use "hg qrefresh". This should feel just like normal OpenJDK development, with the extra goodness of MQ (the hg patch queue). To think about updating the MLVM patches themselves, you need to start working with the patches forest. Because sources/hotspot/.hg/patches is a symlink to patches/hotspot, your "qref" in step 6 above modified some patch file patches/hotspot/ foo.patch, which itself is under source control. To work with the patch repo., bounce over to the corresponding patch directory. (I use pushd/popd in the shell.) 7. Jump over to the patch repo: "pushd ../../patches/hotspot". Note that foo.patch is newly updated. 8. Use "hg st" to examine the state of this patch repo. Make sure the right changes are in the right patches. 9. You can use "hg diff" to create a second-order diff. This is less interesting and useful than the diff made at step 5 above. 10. If all is well, and after review and adjustment, use "hg com -m '...'" to commit. If your changes are for several patches, use "hg qpush" and "hg qpop" in step 3 to spread your changes through different patch layers. You can also sometimes use the "-X" option to "hg qref" to exclude changes from an unrelated file that you have changed. But Mercurial doesn't work this way easily. Sometimes I will make a bunch of changes without worrying which patch they apply to. The commands "hg qnew -f temp.patch", "hg qpop", "hg qdel -k temp.patch" will export my changes as a temporary patch file, which I can then reapply piecemeal into the right permanent patches. (XEmacs has a great diff-mode that helps with this!) Does that help? -- John Ref: http://hg.openjdk.java.net/mlvm/mlvm/file/tip/README.txt _______________________________________________ mlvm-dev mailing list [email protected] http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
