git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 09/19] Allow querying all attributes on a file

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Aug 4, 2011, 03:16 UTC
Message-ID
<4E3A0F0D.7050403@alum.mit.edu>
In-Reply-To
<7vwrevg73x.fsf@alter.siamese.dyndns.org>
On 08/02/2011 05:34 PM, Junio C Hamano wrote:
Show 23 quoted lines
> Michael Haggerty <mhagger@alum.mit.edu> writes:
> 
>> Add a function, git_allattrs(), that reports on all attributes that
>> are set on a path.
>>
>> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
>> ---
>>  Documentation/technical/api-gitattributes.txt |   45 +++++++++++++++++-------
>>  attr.c                                        |   43 +++++++++++++++++++++++
>>  attr.h                                        |    9 +++++
>>  3 files changed, 84 insertions(+), 13 deletions(-)
>>
>> diff --git a/Documentation/technical/api-gitattributes.txt b/Documentation/technical/api-gitattributes.txt
>> index ab3a84d..640240e 100644
>> --- a/Documentation/technical/api-gitattributes.txt
>> +++ b/Documentation/technical/api-gitattributes.txt
>> @@ -22,19 +22,6 @@ Data Structure
>> ...
>>  (JC)
> 
> The last line, I think, can now be dropped. This was a marker saying "we
> lack documentation for this API; bug this person for necessary information
> and write one".
OK; I will drop the line in the re-roll.
Show 31 quoted lines
>> diff --git a/attr.c b/attr.c
>> index bfa1f43..9c2fca8 100644
>> --- a/attr.c
>> +++ b/attr.c
>> @@ -737,6 +737,49 @@ int git_checkattr(const char *path, int num, struct git_attr_check *check)
>>  	return 0;
>>  }
>>  
>> +int git_allattrs(const char *path, int *num, struct git_attr_check **check)
>> +{
>> +	struct attr_stack *stk;
>> +	const char *cp;
>> +	int dirlen, pathlen, i, rem, count, j;
>> +
>> +	bootstrap_attr_stack();
>> +	for (i = 0; i < attr_nr; i++)
>> +		check_all_attr[i].value = ATTR__UNKNOWN;
>> +
>> +	pathlen = strlen(path);
>> +	cp = strrchr(path, '/');
>> +	if (!cp)
>> +		dirlen = 0;
>> +	else
>> +		dirlen = cp - path;
>> +	prepare_attr_stack(path, dirlen);
>> +	rem = attr_nr;
>> +	for (stk = attr_stack; 0 < rem && stk; stk = stk->prev)
>> +		rem = fill(path, pathlen, stk, rem);
> 
> Shouldn't the above part at least should be refactored instead of copied
> and pasted from git_checkattr()?
Quite right.  Will be fixed in re-roll.
Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
Previous: Junio C HamanoNext: Michael Haggerty
Message 12 of 24 in “Add --all option to git-check-attr”
  1. 00/19 Add --all option to git-check-attrMichael Haggerty, Jul 28, 2011
  2. 01/19 doc: Add a link from gitattributes(5) to git-check-attr(1)Michael Haggerty, Jul 28, 2011
  3. 02/19 doc: Correct git_attr() calls in example codeMichael Haggerty, Jul 28, 2011
  4. 03/19 Remove anachronism from commentMichael Haggerty, Jul 28, 2011
  5. 04/19 Disallow the empty string as an attribute nameMichael Haggerty, Jul 28, 2011
  6. 05/19 git-check-attr: Add missing "&&"Michael Haggerty, Jul 28, 2011
  7. 06/19 git-check-attr: Add tests of command-line parsingMichael Haggerty, Jul 28, 2011
  8. 07/19 Provide access to the name attribute of git_attrMichael Haggerty, Jul 28, 2011
  9. 08/19 git-check-attr: Use git_attr_name()Michael Haggerty, Jul 28, 2011
  10. 09/19 Allow querying all attributes on a fileMichael Haggerty, Jul 28, 2011
  11. Junio C HamanoAug 2, 2011
  12. Michael HaggertyAug 4, 2011
  13. 10/19 git-check-attr: Extract a function output_attr()Michael Haggerty, Jul 28, 2011
  14. 11/19 git-check-attr: Introduce a new variableMichael Haggerty, Jul 28, 2011
  15. 12/19 git-check-attr: Extract a function error_with_usage()Michael Haggerty, Jul 28, 2011
  16. 13/19 git-check-attr: Handle each error separatelyMichael Haggerty, Jul 28, 2011
  17. 14/19 git-check-attr: Process command-line args more systematicallyMichael Haggerty, Jul 28, 2011
  18. 15/19 git-check-attr: Error out if no pathnames are specifiedMichael Haggerty, Jul 28, 2011
  19. 16/19 git-check-attr: Add an --all option to show all attributesMichael Haggerty, Jul 28, 2011
  20. 17/19 git-check-attr: Drive two tests using the same raw dataMichael Haggerty, Jul 28, 2011
  21. 18/19 git-check-attr: Fix command-line handling to match docsMichael Haggerty, Jul 28, 2011
  22. 19/19 Rename struct git_attr_check to git_attr_valueMichael Haggerty, Jul 28, 2011
  23. Junio C HamanoAug 2, 2011
  24. Michael HaggertyAug 4, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.