Being such a noob, I always run into situations where I need to decide to check in changes for a single defect, changes for more than one defect, or changes with defects and project enhancements. Speaking of that, I have this issue where a project is at a point where bandage fixes aren’t cutting it, and we’re going to have to rollback multiple changesets to start from a point we know will suffice for multiple teams. A few of them include situations that are listed above – that’s the nightmare. I quickly learned it may be easier to just make changesets specifically for one fix. Here is an example of my thought process:
So what do I have to do now?
1) I have to go through the entire history of changesets and determine which ones are related to this defect and jot them down.
1A) Good thing I add in a lot of information in the comment section whenever I check in code.
1AA) What about the ones that I have no idea if they are or not? Guess I’ll have to take a look at each one of them.
2) Determine what which changesets I can keep and which ones to rollback – pending changes from other systems.
2A) If it is a changeset that has multiple fixes in them, make sure to note them and find a way to work around that issue.
2AA) If I can’t figure out a way, should I roll it back then make the other fix again, or leave it and manually remove the what I intended to rollback?
3) Get the working copy and test, test, and more testing to ensure that code works properly.
But wait, I have to wait for my patch to open so I can start developing there because there is a code-freeze. Maybe I can just get as much testing on my local machine as I can, promote it to an open dev server, and make it’s way to where it needs to.
But wait, what about all these other defects coming that will need to be changed as well? What about other developers? How do I manage those, and these, and thats, and whos, and what nots?
Relax, just do. That’s just part of the fun of programming. And I just made code changes to mimic the rollback because that took me 10 minutes.
So that’s my thought process. Remember to keep things simple.