# [PATCH] Check for circular references causing 'lost' nodes

2 messages from 2008-04-03 to 2008-04-26. Participants: Stephen R. van den Berg.
Thread: https://gitlist.dev/t/13260

## Stephen R. van den Berg, 2008-04-03 08:48

Subject: [PATCH] Check for circular references causing 'lost' nodes
Message-ID: <20080425234556.C271E545D@aristoteles.cuci.nl>
URL: https://gitlist.dev/e/20080425234556.C271E545D%40aristoteles.cuci.nl

```
---
 commit.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/commit.c b/commit.c
index 94d5b3d..7524d2b 100644
--- a/commit.c
+++ b/commit.c
@@ -426,6 +426,7 @@ void sort_in_topological_order(struct commit_list ** list, int lifo)
 	struct commit_list *next, *orig = *list;
 	struct commit_list *work, **insert;
 	struct commit_list **pptr;
+	int nelements = 0;
 
 	if (!orig)
 		return;
@@ -436,6 +437,7 @@ void sort_in_topological_order(struct commit_list ** list, int lifo)
 		struct commit *commit = next->item;
 		commit->object.flags |= TOPOSORT;
 		commit->indegree = 0;
+		nelements++;
 	}
 
 	/* update the indegree */
@@ -506,7 +508,11 @@ void sort_in_topological_order(struct commit_list ** list, int lifo)
 		commit->object.flags &= ~TOPOSORT;
 		*pptr = work_item;
 		pptr = &work_item->next;
+		nelements--;
 	}
+	if (nelements)
+		fprintf(stderr, "Circular references in %d suppressed nodes\n",
+		 nelements);
 }
 
 /* merge-base stuff */
-- 
1.5.5.1.83.ge77a4.dirty

```

## Stephen R. van den Berg, 2008-04-26 14:41

Subject: Re: [PATCH] Check for circular references causing 'lost' nodes
Message-ID: <20080426144153.GA21197@cuci.nl>
URL: https://gitlist.dev/e/20080426144153.GA21197%40cuci.nl
In-Reply-To: <20080425234556.C271E545D@aristoteles.cuci.nl>

```
The most likely cause for circular references are bad entries in the
grafts file (like I did once); since basically noone tells you where you
went wrong, it can be a bit puzzling to find out that part of your tree
goes dark sometimes, depending on which tool/options you pick to walk the
commit-tree.
-- 
Sincerely,                                                          srb@cuci.nl
           Stephen R. van den Berg (AKA BuGless).
"God gave us a penis and a brain but not enough blood
 to use both at the same time." -- Robin Williams

```
