Re: [PATCH 1/2] Introduce git-run-with-user-path helper program.
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 17, 2005, 19:27 UTC
- Message-ID
- <7vk6lxfybc.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20050517190355.GA7136@pasky.ji.cz>
>>>>> "PB" == Petr Baudis <pasky@ucw.cz> writes:
Show 10 quoted lines
>> +int path_ignored(const char *path)
>> +{
>> + if (!verify_path(path))
>> + return 1;
>> +
>> + /* Put the Porcelain layer ignore logic here.
>> + * Return non-zero if path is to be ignored.
>> + */
>> + return 0;
>> +}PB> I actually think you shouldn't. All the Porcelain layers should PB> hopefully use the same git toolkit layer, not each one shipping own due PB> to differences in things like this.
What you said above _is_ exactly my intention. I phrased that comment very badly. It should have said:
/* We _will_ put the "ignore logic Porcelain layers agree upon"
* here, once we have a concensus.
*
* The code should return non-zero if path is to be ignored.
*/I did not put any implementation there because I do not think we have agreed upon anything yet. This patch is to establish the framework.
The second patch is separate, because it is _my_ version of the ignore logic proposal, to serve as a sample. Whatever ignore logic is agreed upon, that _will_ be in the place you pointed out and there will be no choice. Everybody _will_ use the ignore logic.
>> +/****************************************************************/ >> + >> +/* Path canonicalization part */
PB> And why is this in the library?
Why not? It is something other programs would eventually find useful.
Also the second patch, a sample implementation of ignore logic I proposed, wants to know GIT_PROJECT_TOP to figure out the file pointed at by GIT_DIR/.git/info/ignore-file.
Also it would not hurt if you are always running from the project top and give only verify_path() approved paths. Then canon_path would become identity function.
git-run-with-user-path is useful both in implementing porcelain-add if the porcelain's policy is to take filesystem paths not GIT paths, like this:
#!/bin/sh
# porcelain-add
exec git-run-with-user-path git-update-cache --add -- -- "$@"Also if the porcelain's policy is to take GIT paths not filesystem paths, then users can say:
$ find . ! -type d -print0 |
xargs -0 git-run-with-user-path cg-add --You cannot use both for obvious reasons.