Genom att använda ett distribuerat versionshanteringssystem som Mercurial, Git eller Bazaar kan ni jobba direkt mot varandra, utan behov av en dedikerad server. (Givetvis kan man, om man vill, också sätta upp ett centralt repository och använda systemet på ett traditionellt, centraliserat vis.)
Samtliga ovan nämnda system är open source, och man kan, som med så mycket annat, hitta ofantligt många åsikter på nätet om vilken som är bäst. Själv använder jag Mercurial i den utsträckning jag kan.
Tyvärr finns ingen XCode-integration med något av systemen, men det bör inte vara några större problem att få det att fungera från kommandolinjen. Troligtvis kan man behöva göra några inställningar för att få systemen att hantera ex. projektfilen, build-filer och liknande på ett korrekt sätt. (Jag gör tyvärr inte några större projekt i XCode själv, därför kan jag inte bidra med så värst mycket info om det.)
Principen är att man jobbar med koden i sitt repository (vilket är en vanlig mapp med lite extra data som systemet håller reda på), checkar (lokalt) in de ändringar man gör allt eftersom, och när det är dags att uppdatera sin partner gör man sitt repository tillgängligt för denne så att han/hon kan dra in ändringarna i sitt eget repository. Mer detaljerade instruktioner finns på resp. verktygs webbsida.
När det gäller att göra ett repository tillgängligt så tror jag alla verktyg kan använda SSH, vilket ju inte är alltför krångligt, men Mercurial har också en inbyggd webbserver. Man ger kommandot "hg serve" på toppnivån i sitt repository och sen kan partnern uppdatera genom att ge kommandot "hg pull http://ditt.ip.nr:8000" i sitt. Detta tycker jag gör det mycket enkelt att komma igång.