On Thu, Jan 26, 2012 at 05:25:32PM -0500, Jeff King wrote: > There's a slight complication with when to clear the "I have seen this" > mark for each source. If you are interested only in breaking cycles, > then obviously you can just clear the marks as you pop the stack. But if > you want to stop repeated inclusion down different branches of the > include tree, you need to keep the marks until you're done (e.g., the > same file referenced by .git/config and ~/.gitconfig). But you do still > need to clear them, because we repeatedly call git_config with different > callback functions, and we need to re-parse each time. > > I think it should be sufficient to make the marks live through > git_config(), and get cleared after that (so all of .git/config, > ~/.gitconfig, and /etc/gitconfig will only load a given include once, > but another call to git_config will load it again). Ugh, actually it's a little trickier. Because a git_config callback can call git_config again, we want one set of marks per git_config invocation, but we need to handle two simultaneous invocations. But I think it's OK. We can stuff the data into the "git_config_include_data", which has the proper scope. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html