I do want to see various Porcelains to agree on how to store state information in $GIT_DIR for doing common operations, when they are conceptually compatible. The way they handle branches may fall into that category. With the barebone GIT Porcelain, "seek" like operation may simply be done by creating another branch or tag and jumping to it, so there may not be the concept of "seek", in which case they may not be compatible after all.
Having said that, I do like the concept of keeping track of "which development line are we on, and what's most recent in it". The way I read your description of cg-seek, you currently have that information is either in .git/head-name and .git/refs/heads/<head-name> pair (when .git/head-name exists), or .git/HEAD. If you block certain operations while you have seeked to non-top anyway, wouldn't it be cleaner to have .git/seeked-to that records the commit ID you are at, which at the same time indicates that you are in a special situation, and not touching HEAD at all? Then .git/HEAD will always have that line of development information. Well, that was half tongue-in-cheek suggestion; I have a feeling that you may feel it is a bit too late to change this kind of thing easily. But if we are going to agree on using .git/head-name, I'd rather see it exist all times, so that cat "$GIT_DIR/head-name" would always tell us which branch we are working in. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html