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 Documentation/technical/api-diff.txt: correct name of diff_unmerge() 2011-05-26 14:50:24 -07:00
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 Rename git_checkattr() to git_check_attr() 2011-08-04 15:53:21 -07:00
api-grep.txt
api-hash.txt technical-docs: document hash API 2009-12-17 21:54:50 -08:00
api-history-graph.txt graph.c: infinite loop in git whatchanged --graph -m 2012-09-25 11:07:15 -07:00
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 docs: fix cross-directory linkgit references 2012-06-08 08:31:52 -07:00
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 Teach revision walking machinery to walk multiple times sequencially 2012-03-30 08:57:49 -07:00
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 Fix typos in the documentation 2011-01-04 11:23:42 -08:00
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 unpack_trees: group error messages by type 2010-08-11 10:36:06 -07:00
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 Documentation: Spelling fix in protocol-capabilities.txt 2010-07-09 17:36:28 -07:00
protocol-common.txt docs: stop using asciidoc no-inline-literal 2012-04-26 13:19:06 -07:00
racy-git.txt Documentation: Update 'linux-2.6.git' -> 'linux.git' 2013-06-22 23:36:48 -07:00
send-pack-pipeline.txt Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt 2012-10-16 16:09:09 -07:00
shallow.txt The name of the hash function is "SHA-1", not "SHA1" 2013-04-15 11:08:37 -07:00
trivial-merge.txt Documentation/technical: convert plain text files to asciidoc 2012-10-16 16:09:09 -07:00