I've an unique situation where I need to set-up subdomain which will point to svn.
so I need svn.domain.com to point to - svn server. And domain.com to hostgator shared server.
Should I use CNAME, or A-record?
Does cpanel provide this functionality?
cname is an indirection (alias) so it is slower, because it looks up and get an A record, which then looks up your ip. you can even cname a cname.
so for efficiency you want to use a record. however, it is not a cut and dry thing really so you just have to weigh it and see which way to go.
i am not familiar with cpanel so cannot answer that part.
A CNAME (canonical name) record can only point to an existing A record.
So you would need an A record anyway. The CNAME could be used later to make subversion point to svn for example.
cPanel is (to my understanding) a system management software. So, unless you're hosting your own DNS, or your hosting company provides you with cPanel to administer your DNS, it wouldn't be the right place to make this change.
It is more likely that you'll be able to edit your DNS zone in the web interface of your provider.