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

Re: [PATCH 3/5] setup_revisions: remember whether a ref was positive or not

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 24, 2011, 19:23 UTC
Message-ID
<7vy5znscst.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1311517282-24831-4-git-send-email-srabbelier@gmail.com>
Sverre Rabbelier <srabbelier@gmail.com> writes:
Show 5 quoted lines
>  void add_pending_object(struct rev_info *revs, struct object *obj, const char *name)
>  {
> -	add_pending_object_with_mode(revs, obj, name, S_IFINVALID);
> +	add_pending_object_with_mode(revs, obj, name, S_IFINVALID, 0);
>  }

This seems utterly broken. For example, fmt-merge-msg.c adds "^HEAD" and of course the flags on the object is UNINTERESTING. Has all the callers of add_pending_object() been verified? Why is it passing an unconditional 0 and not !!(obj->flags & UNINTERESTING) or something?

If the excuse is "this is only to help fast-export and other callers of add_pending_object() does not care", that is a sloppy attitude that breaks maintainability of the code (because it forgets to add "in the current code nobody looks at the new 'flags' field" to that excuse, and also does not have any comments around this code that says so); it is questionable if such a hack belongs to a patch that touches object.h.

Show 16 quoted lines
> @@ -1073,7 +1074,8 @@ int handle_revision_arg(const char *arg, struct rev_info *revs,
>  			} else
>  				a->object.flags |= flags_exclude;
>  			b->object.flags |= flags;
> -			add_pending_object(revs, &a->object, this);
> +			add_pending_object_with_mode(revs, &a->object, this,
> +						     S_IFINVALID, flags_exclude);
> ...
> @@ -1103,7 +1105,7 @@ int handle_revision_arg(const char *arg, struct rev_info *revs,
>  	if (!cant_be_filename)
>  		verify_non_filename(revs->prefix, arg);
>  	object = get_reference(revs, arg, sha1, flags ^ local_flags);
> -	add_pending_object_with_mode(revs, object, arg, mode);
> +	add_pending_object_with_mode(revs, object, arg, mode, local_flags);
>  	return 0;
>  }
Questionable.  Did the user mean to say Z is positive when he said
	$ git rev-list A B ^C ... --not G H ... ^Z
Previous: Sverre RabbelierNext: Junio C Hamano
Message 5 of 29 in “fast-export: prepare for remote helpers awesomeness”
  1. 0/5 fast-export: prepare for remote helpers awesomenessSverre Rabbelier, Jul 24, 2011
  2. 1/5 t9350: point out that refs are not updated correctlySverre Rabbelier, Jul 24, 2011
  3. 2/5 fast-export: do not refer to non-existing marksSverre Rabbelier, Jul 24, 2011
  4. 3/5 setup_revisions: remember whether a ref was positive or notSverre Rabbelier, Jul 24, 2011
  5. Junio C HamanoJul 24, 2011
  6. Junio C HamanoJul 24, 2011
  7. Sverre RabbelierAug 3, 2011
  8. Junio C HamanoAug 3, 2011
  9. Johannes SchindelinAug 8, 2011
  10. Junio C HamanoAug 8, 2011
  11. Sverre RabbelierAug 8, 2011
  12. Junio C HamanoAug 8, 2011
  13. Sverre RabbelierAug 8, 2011
  14. Junio C HamanoAug 8, 2011
  15. Sverre RabbelierAug 8, 2011
  16. Junio C HamanoAug 8, 2011
  17. Sverre RabbelierAug 8, 2011
  18. Junio C HamanoAug 8, 2011
  19. Sverre RabbelierAug 8, 2011
  20. Junio C HamanoAug 8, 2011
  21. Junio C HamanoAug 8, 2011
  22. Sverre RabbelierAug 8, 2011
  23. Junio C HamanoAug 8, 2011
  24. Sverre RabbelierAug 8, 2011
  25. Johannes SchindelinJul 26, 2011
  26. 4/5 fast-export: do not export negative refsSverre Rabbelier, Jul 24, 2011
  27. Junio C HamanoJul 24, 2011
  28. Johannes SchindelinJul 26, 2011
  29. 5/5 setup_revisions: remember whether a ref was positive or notSverre Rabbelier, Jul 24, 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.