Synchronization with Upstream
Valgrind for Windows development will run in parallel with Valgrind's mainline development (a.k.a "upstream") for a long time. To keep Valgrind for Windows up-to-date with upstream Valgrind, changes have to be merged into Valgrind for Windows repository from time to time. This document describes how to perform this task. Even though this document exists, please leave synchronization with the project management for now. The process works but scripts need some finetuning. Python 2.x is required.
Precondition
- Valgrind for Windows code in its trunk revision T is a branch of upstream Valgrind's code from trunk revision A1 and upstream VEX's trunk revision A2. A1 and A2 are known
- upstream Valgrind's development has progressed to revision B1 and upstream VEX's to revision B2 (the most recent revision in both trunks)
Postcondition
- Have a Valgrind for Windows revision U which is a branch of upstream Valgrind's and VEX's code from revision B1/B2
Steps
- Check out the Valgrind for Windows trunk, most recent revision, into a directory of your choice, referred to as \<valgrind-for-windows-path>
- Check out the upstream Valgrind trunk revision A1, without externals, into a directory of your choice, referred to as \<valgrind-upstream-path>
- Check out the upstream VEX trunk revision A2 into \<valgrind-upstream-path>
- Copy Valgrind for Windows changes to upstream Valgrind's source tree using the pysynch tool
- \<valgrind-for-windows-path>\windows\pysynch.py -f -r 2 -u cachegrind -u include -u valgrind.h \<valgrind-for-windows-path> \<valgrind-upstream-path>
- Update upstream Valgrind's source tree (including VEX) to the most recent revision (i.e. from revision A1/A2 to revision B1/B2). This is a simple update of the source tree, including externals, to the most recent revision
- Resolve all merge conflicts, make sure that both Windows and Linux versions compile from this source tree
- Copy the changes from upstream Valgrind's source tree back to the Valgrind for Windows source tree using the pysynch tool
- \<valgrind-for-windows-path>\windows\pysynch.py -f -r 2 -u cachegrind -u include -u valgrind.h \<valgrind-upstream-path> \<valgrind-for-windows-path>
- Check in Valgrind for Windows
- Record the new upstream revision in the windows\valcheck.sh script, run this script to make sure that Valgrind for Windows code is in sync with upstream Valgrind, fix code if necessary
- Document upstream Valgrind and upstream VEXs revisions B1/B2 as well as the new Valgrind for Windows revision on this Wiki page for future merges
- Announce the merge to the valgrind4win-developers mailing list
Sync History
Date |
Upstream Valgrind |
Upstream VEX |
Valgrind for Windows |
2011-11-14 |
12269 |
2230 |
9 |
2012-03-21 |
12455 |
2266 |
10 |
2012-07-23 |
12776 |
2444 |
54 |
2012-08-10 |
12866 |
2465 |
62 |