.NET 開発でソースのバージョン管理するとなると、とりあえず VSS を使ってると思います。気に入らない点はあるものの、VS.NET なら直ぐに使えますからね。その VSS からソースを取得する NAnt の設定ファイルサンプルです。
<?xml version="1.0" encoding="utf-8"?>
<project name="SQLSeverCommand" default="vssget" basedir="."
xmlns="http://nant.sf.net/schemas/nant-0.85.win32.net-1.0.xsd">
<description>
VSS から指定したプロジェクトを取得する
</description>
<!-- Properties -->
<!-- ログインユーザー名 -->
<property name="Vss.User" value="Guest" readonly="true"/>
<!-- ログインパスワード -->
<property name="Vss.Password" value="" readonly="true"/>
<!-- VSSから取得したファイルの保存先
(未指定時は My Document 直下に Temp フォルダを作成して保存する) -->
<property name="WorkFolder" value=""/>
<!-- VSSDB の srcsafe.ini ファイルパス -->
<property name="Vss.Srcsafe.ini"
value="C:\Program Files\Microsoft Visual Studio\COMMON\VSS\srcsafe.ini"/>
<!-- VSSDB から取得するプロジェクト -->
<property name="Vss.Path" value="$/"/>
<!-- VSSDB から取得するバージョン(ラベル) -->
<property name="Vss.Version" value=""/>
<!-- End Properties -->
<target name="vssget" description="VSS Source Get">
<if test="${WorkFolder==''}" >
<property name="WorkFolder"
value="${environment::get-folder-path('Personal')}\Temp" />
</if>
<vssget
username="${Vss.User}"
password="${Vss.Password}"
localpath="${WorkFolder}"
version="${Vss.Version}"
recursive="true"
replace="true"
writable="false"
removedeleted="true"
filetimestamp="Updated"
dbpath="${Vss.Srcsafe.ini}"
path="${Vss.Path}"
/>
</target>
</project>