On Thu, Mar 26, 2015 at 12:30:13AM +0600, Alexander Kuleshov wrote: > I'm not sure about two things: > > 1. Is there any way to do this with the current git? At least i didn't > find how to do it, so decided to write this patch. > If there is already ability to do the same without this patch, please > let me know. The reason we originally added "-c" to clone and not init is that clone performs several other follow-on actions after the repository is initialized. For example, you might want to run: git clone -c core.autocrlf=true ... to have that option in place before clone checks out files to the working tree. There is no direct way to have "git init" set the config for you, but there is no harm in doing: git init git config core.autocrlf=true because init returns control to you immediatel. > 2. Now current patch overwrite the value of the configuration option > from config, > if there is given option with the same key. For example, when we do git init, > .git/config contains core.filemode = true. If we will pass > core.filemode = false with this patch to git init, > there will be core.filemode = false in the .git/config. So, I'm not > sure about it. > I looked on git clone -c/--config, it just adds the same option to the > .git/config, but it looks strange to me.... Most options, when there are multiple present, will use the last-seen value (core.filemode is one of these, so having it there twice means the second one takes precedence). Some options form a list (e.g., fetch refspecs). So if you run: git clone -c remote.origin.fetch=refs/notes/*:refs/notes/* ... you add a new refspec, but do not replace the default one to fetch the actual branches. The knowledge of which config keys are which is known only to the config callbacks, so it is generally safer for generic config-munging code to add a potentially overriding key (the downside is that you cannot use "-c" to "clear" a list-like key, but the inability to do that is a failing of the config code in general). -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