Thread (26 messages) flat view 26 messages, 4 authors, 2016-06-15

Re: [PATCH v2 00/14] Sparse checkout

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:45:23

On Sat, 20 Sep 2008, Nguyen Thai Ngoc Duy wrote:
On 9/20/08, Jakub Narebski [off-list ref] wrote:
quoted
quoted
 - "git clone --path" => "git clone --narrow-path"
 - "git checkout --path" => "git checkout --reset-path"

I am not sure about that change, especially the fact that git-clone
and git-checkout use differently named options, because those options
affect clone only as they affect the checkout part of the clone.  One
would think that git-clone = git-init + git-remote add + git-fetch +
git-checkout, and that git-clone would simply pass sparse checkout
flags to git-checkout.
Johannes sixt said --path was too generic so I changed the name. Hmm..
I did not think the same option name for git-checkout and git-clone
was important, rather worry about people may misunderstand that it is
"narrow clone" (do not fetch objects outside given paths for all
history). Maybe "git clone --narrow-checkout" would be better.
True, I didn't thought that git-clone can have option with explicit
'checkout' in a name, for example --checkout-paths, or --checkout-only,
or --narrow-checkout (although for me this one doesn't look as it
accepts arguments, at least on first glance), or --sparse-checkout
(the same).
"--reset-path", I think, is a better name though. It would express the
relation compared to --add-path and --remove-path.
I don't like very much '--reset-path' option name, because it is not
about 'reset' or 'resetting', but about limiting checkout to specified
paths.  Unfortunately --include / --exclude looks like are for ignoring
files, not marking files with "no-checkout" bit etc.

But I am not native English speaker.

Further proposals: --only ("git checkout --only <pattern>") with
--checkout-only as counterpart in git-clone; --limit-to, --sparse.


GNU tar uses --exclude and --exclude-file (with --no-recurse,
--no-wildcards, --no-wildcards-match-slash). wget uses --accept
and --reject for filename patterns, and --include / --exclude for
directories.  Neither looks right for sparse checkout in Git.
quoted
quoted
 - New narrow spec (or "sparse patterns" from now) resembles
   .gitignore patterns

You mean here that rules for patterns to select which parts of tree
 mark as "no-checkout" and/or checkout/leave in checkout are the same
 (or nearly the same) as rules for ignoring files, isn't it?
Yes, almost the same, exceptions include "./" support (this may have
worked already for .gitignore, I dunno) and backslash escape for
colons.
'./', or rather '/' support works for gitignore: this is the only way
to have pattern which matches only files in given directory, 
nonrecursively.  For example last line in last example on gitignore(5)
man page.
quoted
 BTW I think that the same rules are used in gitattributes, aren't
 they?
They have different implementations. Though the rules may be the same.
Were you able to reuse either one?
quoted
quoted
Nguyễn Thái NgỠc Duy (14):
 Errr... what happened here? For me it doesn't look like correct UTF-8
 encoding, but perhaps that it is just my news client (Gnus)...
The cover letter lacks MIME-Version and Content-Type, hmm..
Bug in git-format-patch? IIRC --cover-letter was added quite late, and
is quite a new option; some bugs might have been not ironed out yet.

-- 
Jakub Narebski
Poland
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help