On Wed, Oct 1, 2008 at 2:09 PM, Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> wrote: > On 10/1/08, Santi Béjar <santi@xxxxxxxxxxx> wrote: >> On Wed, Oct 1, 2008 at 12:20 PM, Santi Béjar <santi@xxxxxxxxxxx> wrote: >> > Not in this half but I've seen that you added a --default-sparse flag >> > to "git clone". I think it is useless as mostly always the one given >> > in -sparse-checkout should be used. >> >> >> To be more precise, whenever you do "git clone --sparse-checkout" you >> will want it to be the default sparse pattern. > > Yes, if only the default pattern gets updated properly when you update > your checkout area. I don't parse this sentence, but I cannot see the connection between the default sparse pattern for _clone_ and updating it or the working area. > If "git clone --sparse-checkout" makes the default > pattern, then "git checkout --reset-sparse" should reset the default > pattern as well. Makes sense. > The hard part is how to update default pattern with > --include-sparse and --exclude-sparse. Maybe you could let the core.defaultsparse be defined multiple times. [core] defaultsparse = Documentation/* defaultsparse = t/* defaultsparse = !t/*svn* equivalent to [core] defaultsparse = Documentation/*:t/*:!t/*svn* but it moves the complexity to the parsing of the config. > Also, people can use "git > update-index" to update checkout area, which should not touch default > pattern at all. I would prefer having a --not-update-sparse-pattern. The most common workflow should be the most straightforward. The most common use-case would be somebody working _only_ in some subdirectory (say Documentation), then what s/he normally does is: 1) cloning and default sparse chechout: $ git clone --sparse-checkout=Documentation/* ... or within an existing wd $ git checkout --reset-sparse=Documentation/* ... (maybe just --sparse?) 2) Work normally inside the Documentation directory... 3) Abort a merge with conflicts outside the sparse area: $ git reset --hard ORIG_HEAD) <Now there are files outside the default sparse area> $ git checkout --reset-sparse # with --sparse to set the sparse pattern Including/excluding more paths in the default sparse checkout is not something you would do normally, but I think it makes sense to add them to the default pattern. Please correct me if you think there are other use-cases, or more things in my use-case. > Maybe just throw a warning when default pattern no > longer matches the checkout area, then let them decide. Sure, and inform in the "git status" that you are in a sparse checkout. Best regards, Santi -- 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