I quote from __Artificial Intelligence: A Modern Approach__:

The properties of the depth-first search depend strongly on whether the graph-search or tree-search version is used. The graph-search version, which avoids repeated states and redundant paths, is complete in the finite state spaces because it will eventually expand every node. The tree-search version, on the other hand, is *not* complete [...]. Depth-first tree search can be modified at no extra memory cost so that it checks new states against those on the path from the root to the current node; this avoids infinite loops in the finite state spaces but does not avoid the proliferation of redundant paths.

I don't understand how can graph-search be complete and tree-search be not, being a tree a particular graph.

Besides, I don't clearly understand the difference between "infinite loops" and "redundant paths"...

Can someone explain this to me?

ps. For those who have the book, it's page 86 (3rd edition).