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

Re: [TopGit PATCH 1/4] provide fan-in and -out traversal interface

From
Bert Wesarg <bert.wesarg@googlemail.com>
Date
Oct 5, 2010, 07:54 UTC
Message-ID
<AANLkTi=wZUc0GnB8p0=3Hkd1xPsvqqdEMHn80GKsHUj6@mail.gmail.com>
In-Reply-To
<20101005071334.GF11737@pengutronix.de>
2010/10/5 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
> On Tue, Oct 05, 2010 at 12:28:17AM +0200, Bert Wesarg wrote:
>> This adds general functions to get the list of all offending branches for
> Is offending the right word here?  I don't understand that.

I'm unsure about the right wording here too. 'offending' is definitive the wrong word here. Somethink like this may be better:

This adds general functions to get the list of all branches which either depends on a given one (fan-in), or all dependencies of a given one (fan-out).

Show 7 quoted lines
>
>> a given one. Either which depends on the given branch (fan-in) or all
>> dependencies (fan-out).
>>
>> Two simple users are provided which just lists the names or generates dot
>> input.
> This should then be used for tg summary --graphviz, too, doesn't it?

No. tg summary --graphviz outputs the whole graph. These will generate only a subgraph based on a given topic. tg summary does not take a topic as argument.

Show 23 quoted lines
>
>>
>> Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>>
>> ---
>>  tg.sh |  170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  1 files changed, 170 insertions(+), 0 deletions(-)
>>
>> diff --git a/tg.sh b/tg.sh
>> index 3718702..926b31b 100644 tg.sh
>> --- a/tg.sh
>> +++ b/tg.sh
>> @@ -351,6 +351,176 @@ setup_pager()
>>       trap "exec >&-; rm \"$_pager_fifo\"; rmdir \"$_pager_fifo_dir\"; wait" EXIT
>>  }
>>
>> +# traverse_fan_out(for_each_name, for_each_dep, name, head_deps)
> This uses an unusual format.
>
> please make it
>
> # traverse_fan_out FOR_EACH_NAME FOR_EACH_DEP NAME HEAD_DEPS
>
Yes. this makes it more consistent.
Show 23 quoted lines
>> +#
>> +# traverse the dependencies of @name in bfs order and call @for_each_name
>> +# on each dep (i.e. node) and @for_each_dep on all dependencies (i.e. edge)
>> +# with source and dest as arguments.
>> +#
>> +# @name' needs to be a TopGit controlled branch
>> +#
>> +# @head_deps specifies where to take the .topdeps from for the HEAD branch
>> +# empty - from the committed tree
>> +# '(i)' - from the index
>> +# '(w)' - from the working dir
>> +#
>> +traverse_fan_out()
>> +{
>> +     local for_each_name=$1
>> +     local for_each_dep=$2
>> +     local name=$3
>> +     local head_deps=$4 || :
>> +     local deps_src
>> +     local head="$(git symbolic-ref HEAD | sed 's#^refs/\(heads\|top-bases\)/##')" || :
> I don't remember the exact problems, but some shells get using local and
> assignment in a single command wrong.  Can you please fix that up?  (I
> fixed that up for one of your commits.)
Yes, that should be the right thing to do.
Bert
Previous: Uwe Kleine-KönigNext: Bert Wesarg
Message 6 of 7 in “provide fan-in and -out traversal interface”
  1. 1/4 provide fan-in and -out traversal interfaceBert Wesarg, Oct 4, 2010
  2. 2/4 tg-depend: reduce: apply transitive reduction to the dependeciesBert Wesarg, Oct 4, 2010
  3. 3/4 tg-prev/tg-next: --all optionBert Wesarg, Oct 4, 2010
  4. 4/4 tg-graph: print dependency graph like git log --graphBert Wesarg, Oct 4, 2010
  5. Uwe Kleine-KönigOct 5, 2010
  6. Bert WesargOct 5, 2010
  7. provide fan-in and -out traversal interfaceBert Wesarg, Oct 5, 2010

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.