I took Jeff Garzik's scripts for managing multiple trees and reworked them a little for cogito. I changed the names to something that makes more sense to me, but what does everyone think? Or can cogito already do this I just can't figure it out? In my terminology forks are different tree heads in the same git tree (local branches). cg-fork fname -- make a new tree head from the current tree and switch to it. cg-goto fname -- switch the current working tree to one of the forks. cg-goto -- display the name of the current fork cg-goto -l -- display the name of all forks cg-diff fname -- diff the current working tree to a fork cg-merge fname -- merge another fork into the current fork I fixed goto to not jump if there are pending changes. Is there a better way to do this? Is fork a good name since branches refer to other git trees? I'm somewhat confused about exactly what a branch consists of, it looks to me like the path to another external tree. I do find Jeff's work very useful since it allows me to keep twenty patches in a single tree and jump between them. This is better than bk where I had to keep multiple entire trees with a build in each of them. This way I only rebuild the files that changed after a jump. One problem I did notice is that if you add file in a fork and jump to a fork without the file, it doesn't get removed. That's not a big problem but it can be confusing. -- Jon Smirl jonsmirl@gmail.com