
I have a question for the git (or hg) people. Maybe the concrete situation will shed some light on some of the issues (or maybe I'll just get some help and stop pulling what's left of my hair out). I'm working on code.cpp and morecode.cpp. At the same time, I am writing scripts like review.sh (makes git work better with code collaborator) and, say, custom_make.bat. I am going back and forth on these as needed. In particular, as the cpp files get in shape I commit, and maybe post something for review. We leads me to change review.sh. Or as I get things working, I modify custom_build.bat. To me, once done, these are separate commits/branches/features/changelists (whatever you want to call them). But while working on them, I don't want to flip between branches - I find I'm always changing something in the wrong branch when I try separate branches. ie I change code.cpp while in the "scripts" branch. And it is often more than 2 things I am working on. And sometimes (not usually) they are at least somewhat related - ie code.cpp depends on yourstuff.h, and I need to make a small fix in yourstuff.h. In the end, that fix will be separate, but until i know it is correct, it tends to stay mixed with my other work. Now maybe the dependency case is different, I don't know. (obviously at the end of the day, the order of dependent changes needs to be pushed correctly). So basically, in something like perforce, I can group the files into changelists, and then forget about it until something is completely done and ready to commit. I understand I'm losing other features (small commits, being able to easily set it all aside, etc), but this is my common workflow. Should I do everything on a messy "work" branch and just sort it out when I am ready to push? Should I keep the features in separate branches, but pull from branch to branch all the time? (I don't think I want to spend that much time with the RCS. I like forgetting about it most of the time.) Am I just doing it wrong? (And did any of this make any sense?) Tony Sent from my portable Analytical Engine