1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-01 06:47:52 +01:00
git/Documentation/technical
Nguyễn Thái Ngọc Duy 87323bdace add parse_pathspec() that converts cmdline args to struct pathspec
Currently to fill a struct pathspec, we do:

   const char **paths;
   paths = get_pathspec(prefix, argv);
   ...
   init_pathspec(&pathspec, paths);

"paths" can only carry bare strings, which loses information from
command line arguments such as pathspec magic or the prefix part's
length for each argument.

parse_pathspec() is introduced to combine the two calls into one. The
plan is gradually replace all get_pathspec() and init_pathspec() with
parse_pathspec(). get_pathspec() now becomes a thin wrapper of
parse_pathspec().

parse_pathspec() allows the caller to reject the pathspec magics that
it does not support. When a new pathspec magic is introduced, we can
enable it per command after making sure that all underlying code has no
problem with the new magic.

"flags" parameter is currently unused. But it would allow callers to
pass certain instructions to parse_pathspec, for example forcing
literal pathspec when no magic is used.

With the introduction of parse_pathspec, there are now two functions
that can initialize struct pathspec: init_pathspec and
parse_pathspec. Any semantic changes in struct pathspec must be
reflected in both functions. init_pathspec() will be phased out in
favor of parse_pathspec().

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-07-15 10:56:06 -07:00
..
.gitignore
api-allocation-growing.txt api-allocation-growing.txt: encourage better variable naming 2013-01-06 12:57:56 -08:00
api-argv-array.txt doc: various spelling fixes 2013-04-12 12:00:52 -07:00
api-builtin.txt Merge branch 'ph/builtin-srcs-are-in-subdir-these-days' 2013-06-26 15:07:48 -07:00
api-config.txt Documentation: the name of the system is 'Git', not 'git' 2013-02-01 13:53:33 -08:00
api-credentials.txt doc: various spelling fixes 2013-04-12 12:00:52 -07:00
api-decorate.txt
api-diff.txt
api-directory-listing.txt dir.c: git-status --ignored: don't scan the work tree twice 2013-04-15 12:36:42 -07:00
api-gitattributes.txt
api-grep.txt
api-hash.txt
api-history-graph.txt
api-in-core-index.txt
api-index-skel.txt Documentation: avoid poor-man's small caps GIT 2013-02-01 13:53:25 -08:00
api-index.sh
api-lockfile.txt
api-merge.txt
api-object-access.txt
api-parse-options.txt Merge branch 'ph/builtin-srcs-are-in-subdir-these-days' 2013-06-26 15:07:48 -07:00
api-quote.txt
api-ref-iteration.txt doc: various spelling fixes 2013-04-12 12:00:52 -07:00
api-remote.txt Documentation: the name of the system is 'Git', not 'git' 2013-02-01 13:53:33 -08:00
api-revision-walking.txt
api-run-command.txt run-command: encode signal death as a positive integer 2013-01-06 11:09:18 -08:00
api-setup.txt add parse_pathspec() that converts cmdline args to struct pathspec 2013-07-15 10:56:06 -07:00
api-sha1-array.txt The name of the hash function is "SHA-1", not "SHA1" 2013-04-15 11:08:37 -07:00
api-sigchain.txt
api-strbuf.txt strbuf: create strbuf_humanise_bytes() to show byte sizes 2013-04-10 12:58:33 -07:00
api-string-list.txt Merge branch 'mh/ceiling' into maint 2013-01-28 11:07:18 -08:00
api-tree-walking.txt
api-xdiff-interface.txt
index-format.txt Merge branch 'maint-1.8.1' into maint 2013-03-25 13:46:42 -07:00
pack-format.txt The name of the hash function is "SHA-1", not "SHA1" 2013-04-15 11:08:37 -07:00
pack-heuristics.txt The name of the hash function is "SHA-1", not "SHA1" 2013-04-15 11:08:37 -07:00
pack-protocol.txt upload-pack: ignore 'shallow' lines with unknown obj-ids 2013-04-28 22:33:53 -07:00
protocol-capabilities.txt
protocol-common.txt
racy-git.txt Documentation: Update 'linux-2.6.git' -> 'linux.git' 2013-06-22 23:36:48 -07:00
send-pack-pipeline.txt
shallow.txt The name of the hash function is "SHA-1", not "SHA1" 2013-04-15 11:08:37 -07:00
trivial-merge.txt