On Thu, May 17, 2007 at 02:46:22PM +0200, Petr Baudis wrote: > > why can't I just have _repo_ configuration: > > > > [subproject "kernel/"] > > URL = http://www.kernel.org/pub/linux-2.6.git > > ? > > It can be first-time cloned from the upstream, but it stays after > > people change it to suit their systems. They can depend on it not to > > be broken by upstream. > > Because kernel/ can get removed, moved around, or point at entirely > *different* projects over time and branches - kernel/ can switch from > linux-2.4 to linux-2.6, libc/ can switch between glibc and uClibc, ... I think we clearly need a 2-level system: a tracked pointer to the repo, with an optional local override. However, I don't quite like Junio's idea of using the URL as a key, since it is intended to change. IOW, if I am overriding your URL via .git/config, if you change your URL then my config is now broken. Instead, why not: 1. url location is supplied in configuration as [subproject "kernel/"] url = git://git.kernel.org/pub/linux-2.4.git 2. .gitmodules is simply read as a lower-priority version of configuration One advantage of this approach is that it's totally general; instead of .gitmodules, we could in fact be talking about .gitconfig, a mechanism for projects to contain tracked configuration that can be overridden by individual repos. For some projects, I imagine some of the commit encoding config options might make sense. Thoughts? -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