Three. (25 points) Determine all rational numbers $r$ such that the equation $r x^{2}+(r+2) x+r-1=0$ has roots and only integer roots.

Translate the above text into English, please retain the original text's line breaks and format, and output the translation result directly. 

---

Three. (25 points) Determine all rational numbers $r$ such that the equation $r x^{2}+(r+2) x+r-1=0$ has roots and only integer roots.
If $r=0$, then the equation becomes $2 x-1=0$, solving for $x=\frac{1}{2}$ which is not an integer.
If $r \neq 0$. Let the two roots of the equation be $x_{1}, x_{2}\left(x_{1} \leqslant x_{2}\right)$, then $x_{1}+x_{2}=-\frac{r+2}{r}, x_{1} x_{2}=\frac{r-1}{r}$.
Thus, $2 x_{1} x_{2}-\left(x_{1}+x_{2}\right)=2\left(\frac{r-1}{r}\right)+\frac{r+2}{r}=3$.
We have $\left(2 x_{1}-1\right)\left(2 x_{2}-1\right)=7$.
Since $x_{1} 、 x_{2}$ are integers, and $x_{1} \leqslant x_{2}$,
Solving gives $\left\{\begin{array}{l}x_{1}=1, \\ x_{2}=4\end{array}\right.$ or $\left\{\begin{array}{l}x_{1}=-3, \\ x_{2}=0 .\end{array}\right.$
Then $r=-\frac{1}{3}$ or $r=1$.
Therefore, all the rational numbers $r$ are $-\frac{1}{3}$ and 1.