The 30-year-old left Championship outfit City by mutual consent on Monday and has now joined neighbours Rovers.
"I wasn't playing at Bristol City and as soon as I found out Rovers were interested I was happy to sign," he told Rovers' official website.
"I'm from south Wales, so I was pleased to be able to stay in the area as well.
"I would not have come here if I did not think there was enough talent here to get the club out of trouble, and I hope I can help get the team moving in the right direction."
Source: PA
Source: PA