Catch symlink creation failures and report a better error

Some users have noticed that repo doesn't work on VFAT, as we
require a POSIX filesystem with POSIX symlink support.  Catching the
OSError during our symlink creation and raising a GitError with a
more descriptive message will help users to troubleshoot and fix
their own installation problems.

Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/project.py b/project.py
index ffbdfd1..874a40b 100644
--- a/project.py
+++ b/project.py
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import errno
 import filecmp
 import os
 import re
@@ -864,8 +865,14 @@
                    'refs',
                    'rr-cache',
                    'svn']:
-        os.symlink(os.path.join(relgit, name),
-                   os.path.join(dotgit, name))
+        try:
+          os.symlink(os.path.join(relgit, name),
+                     os.path.join(dotgit, name))
+        except OSError, e:
+          if e.errno == errno.EPERM:
+            raise GitError('filesystem must support symlinks')
+          else:
+            raise
 
       rev = self.GetRemote(self.remote.name).ToLocal(self.revision)
       rev = self.bare_git.rev_parse('%s^0' % rev)