Sunday, May 1, 2011

Tracking Trunk or Using a Specific Branch

I am planning to port LLVM over to a new target processor. This is the first time that I am attempting to make changes onto a massive project. What is the best-practice for such a thing.

If I stick to the release 2.5 build, I have a baseline to build my modifications against. However, I may lose out on new features and bug fixes. If I track the trunk, it may create problems as it is the bleeding edge. It may introduce instability and/or bugs.

With some ports of GCC for example, they tend to fork at a specific point and build their modifications from there. They don't seem to merge back into the main-line and release their versions independently. While others, merge their changes into the main-line, but they may not maintain it as diligently, which causes it to break at some point in the future.

I'm looking for some advice on how best to proceed.

From stackoverflow
  • Is this a version-control question?

    If so.. the recommended best practice is to take a branch from a known point, then regularly merge the changes that have been made to the trunk into your branch. when you're finished, your branch is very easily merged back into the trunk (in fact, at that point, it should be the same as the trunk).

    If the trunk is receiving bleeding edge changes, then they should be made to a branch themselves.

    If you can't branch those changes, then you're best merging the trunk to your branch regularly as before, but being careful about what you merge - don't worry about taking everything, you can leave some things for later (just be careful when you do the final merge to make sure you've brought all changes in - do a diff between trunk and your finalised branch at that point).

    sybreon : What I see with some other processor companies is that they port a specific verion only. They do not track the main-line.

0 comments:

Post a Comment