Sure, you can use 
portsnap(8)() or 
devel/subversion to do the trick. I recommend 
devel/subversion since you already have it, according to installation procedure. With it you can get the latest updates and have more control over your ports tree. For example, if you want to downgrade to the way it was yesterday or whatever date you wish, you can do it.
Before either of these methods are invoked, make sure your 
/usr/ports is empty. You can just remove whatever is in there with 
# rm -rf /usr/ports/*, and let everything to be populated later on.
Using portsnap, run 
# portsnap fetch extract to populate your ports database for the first time, and then 
# portsnap fetch update whenever you have to update it.
With 
devel/subversion use 
# svn co [url=svn://svn.freebsd.org/ports/head]svn://svn.freebsd.org/ports/head[/url] /usr/ports to populate the ports database, and later on use 
# svn up /usr/ports to update it. With this method, you'll have to fetch the index manually. You can do it with either 
# cd /usr/ports && make fetchindex or 
# portsdb -Fu, which is my preferred method.
To check for new ports you can try 
# portversion -v | grep -v =, but I've been told there are more efficient ways without 
grep(1)() 
Since you'll be compiling from source, ports should work for ARM (and other architectures) as well.